@likec4/core 1.17.1 → 1.19.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/LICENSE +1 -1
- package/dist/builder/index.d.mts +502 -0
- package/dist/builder/index.d.ts +502 -0
- package/dist/builder/index.js +871 -0
- package/dist/compute-view/index.d.mts +22 -0
- package/dist/compute-view/index.d.ts +22 -0
- package/dist/compute-view/index.js +78 -0
- package/dist/index.d.mts +10 -919
- package/dist/index.d.ts +10 -919
- package/dist/{index.mjs → index.js} +7 -1688
- package/dist/model/index.d.mts +254 -0
- package/dist/model/index.d.ts +254 -0
- package/dist/model/index.js +1 -0
- package/dist/shared/chunk-RAAYCPUM.M-JWF7SS.js +21 -0
- package/dist/shared/core.BIfgabEw.d.ts +719 -0
- package/dist/shared/core.BZ9Msq7w.d.mts +719 -0
- package/dist/shared/{core.CoLQkcYL.d.cts → core.C05RDLhi.d.ts} +460 -362
- package/dist/shared/{core.CoLQkcYL.d.mts → core.CmYMqgha.d.mts} +460 -362
- package/dist/shared/core.D6-fWbM3.d.ts +127 -0
- package/dist/shared/core.D74xkKkG.d.mts +148 -0
- package/dist/shared/core.D74xkKkG.d.ts +148 -0
- package/dist/shared/core.sLaWHBjR.d.mts +127 -0
- package/dist/shared/index.-BdzdI2C.js +7443 -0
- package/dist/shared/object_hash.CE_oF3I3.js +1222 -0
- package/dist/shared/{core.BXTs-8n7.mjs → view.CyZrG8BJ.js} +108 -47
- package/dist/types/index.d.mts +71 -1
- package/dist/types/index.d.ts +71 -1
- package/dist/types/index.js +20 -0
- package/dist/utils/index.d.mts +404 -0
- package/dist/utils/index.d.ts +404 -0
- package/dist/utils/index.js +330 -0
- package/package.json +59 -47
- package/src/builder/Builder-style1.test-d.ts +190 -0
- package/src/builder/Builder-style2.test-d.ts +175 -0
- package/src/builder/Builder.deployment.ts +224 -0
- package/src/builder/Builder.deploymentModel.ts +385 -0
- package/src/builder/Builder.element.ts +19 -19
- package/src/builder/Builder.model.ts +67 -42
- package/src/builder/Builder.ts +533 -367
- package/src/builder/Builder.view-common.ts +234 -0
- package/src/builder/Builder.view-deployment.ts +135 -0
- package/src/builder/Builder.view-element.ts +189 -0
- package/src/builder/Builder.views.ts +109 -33
- package/src/builder/Builder.with.ts +475 -0
- package/src/builder/__snapshots__/Builder-style1.spec.ts.snap +374 -0
- package/src/builder/__snapshots__/Builder-style2.spec.ts.snap +183 -0
- package/src/builder/__snapshots__/Builder.spec.ts.snap +374 -0
- package/src/builder/_types.ts +113 -18
- package/src/builder/index.ts +10 -4
- package/src/colors/index.ts +2 -2
- package/src/compute-view/compute-view.ts +83 -0
- package/src/compute-view/deployment-view/__test__/TestHelper.ts +236 -0
- package/src/compute-view/deployment-view/__test__/fixture.ts +198 -0
- package/src/compute-view/deployment-view/_types.ts +37 -0
- package/src/compute-view/deployment-view/clean-connections.ts +238 -0
- package/src/compute-view/deployment-view/compute.ts +125 -0
- package/src/compute-view/deployment-view/memory/index.ts +9 -0
- package/src/compute-view/deployment-view/memory/memory.ts +97 -0
- package/src/compute-view/deployment-view/predicates/elements.ts +144 -0
- package/src/compute-view/deployment-view/predicates/relation-direct.ts +237 -0
- package/src/compute-view/deployment-view/predicates/relation-in-out.ts +61 -0
- package/src/compute-view/deployment-view/predicates/relation-incoming.ts +95 -0
- package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +88 -0
- package/src/compute-view/deployment-view/predicates/wildcard.ts +29 -0
- package/src/compute-view/deployment-view/stages/stage-exclude.ts +5 -0
- package/src/compute-view/deployment-view/stages/stage-final.ts +245 -0
- package/src/compute-view/deployment-view/stages/stage-include.ts +95 -0
- package/src/compute-view/deployment-view/utils.ts +276 -0
- package/src/compute-view/dynamic-view/__test__/fixture.ts +58 -0
- package/src/compute-view/dynamic-view/compute.ts +324 -0
- package/src/compute-view/element-view/__test__/TestHelper.ts +258 -0
- package/src/compute-view/element-view/__test__/__snapshots__/legacy.spec.ts.snap +458 -0
- package/src/compute-view/element-view/__test__/fixture.ts +675 -0
- package/src/compute-view/element-view/_types.ts +48 -0
- package/src/compute-view/element-view/clean-connections.ts +113 -0
- package/src/compute-view/element-view/compute.ts +315 -0
- package/src/compute-view/element-view/memory/NodeGroup.ts +31 -0
- package/src/compute-view/element-view/memory/index.ts +10 -0
- package/src/compute-view/element-view/memory/memory.ts +177 -0
- package/src/compute-view/element-view/memory/stage-exclude.ts +59 -0
- package/src/compute-view/element-view/memory/stage-final.ts +129 -0
- package/src/compute-view/element-view/memory/stage-include.ts +128 -0
- package/src/compute-view/element-view/predicates/_utils.ts +86 -0
- package/src/compute-view/element-view/predicates/element-expand.ts +33 -0
- package/src/compute-view/element-view/predicates/element-kind-tag.ts +26 -0
- package/src/compute-view/element-view/predicates/element-ref.ts +37 -0
- package/src/compute-view/element-view/predicates/relation-direct.ts +309 -0
- package/src/compute-view/element-view/predicates/relation-in-out.ts +66 -0
- package/src/compute-view/element-view/predicates/relation-in.ts +118 -0
- package/src/compute-view/element-view/predicates/relation-out.ts +116 -0
- package/src/compute-view/element-view/predicates/wildcard.ts +88 -0
- package/src/compute-view/element-view/utils.ts +59 -0
- package/src/compute-view/index.ts +4 -0
- package/src/compute-view/memory/AbstractMemory.ts +45 -0
- package/src/compute-view/memory/AbstractStageExclude.ts +216 -0
- package/src/compute-view/memory/AbstractStageInclude.ts +200 -0
- package/src/compute-view/memory/_types.ts +147 -0
- package/src/compute-view/memory/index.ts +5 -0
- package/src/compute-view/memory/ops.ts +43 -0
- package/src/compute-view/utils/__snapshots__/sortNodes.spec.ts.snap +113 -0
- package/src/compute-view/utils/ancestorsOfNode.ts +19 -0
- package/src/compute-view/utils/applyCustomElementProperties.ts +66 -0
- package/src/compute-view/utils/applyCustomRelationProperties.ts +41 -0
- package/src/compute-view/utils/applyViewRuleStyles.ts +53 -0
- package/src/compute-view/utils/buildComputedNodes.ts +148 -0
- package/src/compute-view/utils/buildElementNotations.ts +63 -0
- package/src/compute-view/utils/elementExpressionToPredicate.ts +50 -0
- package/src/compute-view/utils/link-nodes-with-edges.ts +54 -0
- package/src/compute-view/utils/merge-props-from-relationships.ts +128 -0
- package/src/compute-view/utils/relationExpressionToPredicates.ts +55 -0
- package/src/compute-view/utils/resolve-extended-views.ts +69 -0
- package/src/compute-view/utils/resolve-global-rules.ts +83 -0
- package/src/compute-view/utils/topological-sort.ts +256 -0
- package/src/compute-view/utils/uniqueTags.test.ts +42 -0
- package/src/compute-view/utils/uniqueTags.ts +21 -0
- package/src/compute-view/utils/view-hash.ts +27 -0
- package/src/compute-view/utils/with-readable-edges.ts +36 -0
- package/src/index.ts +22 -12
- package/src/model/DeploymentElementModel.ts +599 -0
- package/src/model/DeploymentModel.ts +370 -0
- package/src/model/ElementModel.ts +221 -0
- package/src/model/LikeC4Model.test-d.ts +152 -0
- package/src/model/LikeC4Model.ts +336 -457
- package/src/model/RelationModel.ts +85 -0
- package/src/model/__test__/fixture.ts +149 -338
- package/src/model/connection/Connection.ts +72 -0
- package/src/model/connection/deployment/DeploymentConnectionModel.ts +178 -0
- package/src/model/connection/deployment/find.ts +120 -0
- package/src/model/connection/deployment/index.ts +8 -0
- package/src/model/connection/index.ts +22 -0
- package/src/model/connection/model/ConnectionModel.ts +157 -0
- package/src/model/connection/model/find.ts +117 -0
- package/src/model/connection/model/index.ts +8 -0
- package/src/model/connection/ops.ts +274 -0
- package/src/model/guards.ts +9 -0
- package/src/model/index.ts +46 -2
- package/src/model/types.ts +112 -15
- package/src/model/view/EdgeModel.ts +103 -0
- package/src/model/view/LikeC4ViewModel.ts +226 -0
- package/src/model/view/NodeModel.ts +229 -0
- package/src/types/_common.ts +55 -1
- package/src/types/deployments.ts +169 -0
- package/src/types/element.ts +9 -5
- package/src/types/expression-v2.ts +172 -0
- package/src/types/expression.ts +17 -11
- package/src/types/global.ts +3 -3
- package/src/types/index.ts +220 -12
- package/src/types/model.ts +75 -12
- package/src/types/operators.ts +1 -1
- package/src/types/overview-graph.ts +2 -2
- package/src/types/relation.ts +18 -14
- package/src/types/theme.ts +0 -1
- package/src/types/view-notation.ts +2 -2
- package/src/types/view.ts +117 -41
- package/src/utils/{commonHead.ts → common-head.ts} +2 -0
- package/src/utils/const.ts +1 -0
- package/src/utils/fqn.ts +203 -56
- package/src/utils/getOrCreate.ts +42 -0
- package/src/utils/graphlib.ts +10 -0
- package/src/utils/index.ts +74 -6
- package/src/utils/iterable/_types.ts +5 -0
- package/src/utils/iterable/filter.ts +55 -0
- package/src/utils/iterable/flat.ts +17 -0
- package/src/utils/iterable/index.ts +12 -0
- package/src/utils/iterable/map.ts +40 -0
- package/src/utils/iterable/reduce.ts +24 -0
- package/src/utils/iterable/some.ts +36 -0
- package/src/utils/iterable/to.ts +19 -0
- package/src/utils/iterable/unique.ts +29 -0
- package/src/utils/object-hash.ts +3 -0
- package/src/utils/relations.ts +3 -64
- package/src/utils/set.ts +78 -0
- package/src/utils/string-hash.ts +16 -0
- package/dist/index.cjs +0 -5452
- package/dist/index.d.cts +0 -1053
- package/dist/shared/core.CoLQkcYL.d.ts +0 -734
- package/dist/shared/core.DIYZvpVg.cjs +0 -353
- package/dist/types/index.cjs +0 -70
- package/dist/types/index.d.cts +0 -2
- package/dist/types/index.mjs +0 -1
- package/src/builder/Builder.test-d.ts +0 -69
- package/src/builder/Builder.view.ts +0 -358
- package/src/model/LikeC4DiagramModel.ts +0 -338
- package/src/model/LikeC4ViewModel.ts +0 -320
package/dist/index.d.ts
CHANGED
|
@@ -1,265 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
};
|
|
10
|
-
relationships?: Record<string, Partial<RelationshipKindSpecification>>;
|
|
11
|
-
tags?: [string, ...string[]];
|
|
12
|
-
metadataKeys?: [string, ...string[]];
|
|
13
|
-
};
|
|
14
|
-
type Metadata<MetadataKey extends string> = IfNever<MetadataKey, never, Record<MetadataKey, string>>;
|
|
15
|
-
type NewElementProps<Tag, Metadata> = {
|
|
16
|
-
title?: string;
|
|
17
|
-
description?: string;
|
|
18
|
-
technology?: string;
|
|
19
|
-
tags?: IfNever<Tag, never, [Tag, ...Tag[]]>;
|
|
20
|
-
metadata?: Metadata;
|
|
21
|
-
icon?: string;
|
|
22
|
-
shape?: ElementShape;
|
|
23
|
-
color?: Color;
|
|
24
|
-
links?: Array<string | {
|
|
25
|
-
title?: string;
|
|
26
|
-
url: string;
|
|
27
|
-
}>;
|
|
28
|
-
style?: {
|
|
29
|
-
border?: BorderStyle;
|
|
30
|
-
opacity?: number;
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
type NewViewProps<Tag> = {
|
|
34
|
-
title?: string;
|
|
35
|
-
description?: string;
|
|
36
|
-
tags?: IfNever<Tag, never, [Tag, ...Tag[]]>;
|
|
37
|
-
links?: Array<string | {
|
|
38
|
-
title?: string;
|
|
39
|
-
url: string;
|
|
40
|
-
}>;
|
|
41
|
-
};
|
|
42
|
-
type NewRelationProps<Kind, Tag, Metadata> = {
|
|
43
|
-
kind?: Kind;
|
|
44
|
-
title?: string;
|
|
45
|
-
description?: string;
|
|
46
|
-
technology?: string;
|
|
47
|
-
tags?: IfNever<Tag, never, [Tag, ...Tag[]]>;
|
|
48
|
-
metadata?: Metadata;
|
|
49
|
-
head?: RelationshipArrowType;
|
|
50
|
-
tail?: RelationshipArrowType;
|
|
51
|
-
line?: RelationshipLineType;
|
|
52
|
-
color?: Color;
|
|
53
|
-
links?: Array<string | {
|
|
54
|
-
title?: string;
|
|
55
|
-
url: string;
|
|
56
|
-
}>;
|
|
57
|
-
};
|
|
58
|
-
type Invalid<Message extends string> = Tagged<Message, 'Error'>;
|
|
59
|
-
/**
|
|
60
|
-
* When building nested objects
|
|
61
|
-
*/
|
|
62
|
-
interface TypesNested<Parent extends string, ElementKind extends string, Fqn extends string, ViewId extends string, RelationshipKind extends string, Tag extends string, MetadataKey extends string> extends Types<ElementKind, Fqn, ViewId, RelationshipKind, Tag, MetadataKey> {
|
|
63
|
-
Parent: Parent;
|
|
64
|
-
}
|
|
65
|
-
type AnyTypes = Types<any, any, any, any, any, any>;
|
|
66
|
-
type AnyTypesNested = TypesNested<any, any, any, any, any, any, any>;
|
|
67
|
-
/**
|
|
68
|
-
* Auxilary type to keep track of the types in builder
|
|
69
|
-
*/
|
|
70
|
-
interface Types<ElementKind extends string, Fqn extends string, ViewId extends string, RelationshipKind extends string, Tag extends string, MetadataKey extends string> {
|
|
71
|
-
ElementKind: ElementKind;
|
|
72
|
-
Fqn: Fqn;
|
|
73
|
-
ViewId: ViewId;
|
|
74
|
-
RelationshipKind: RelationshipKind;
|
|
75
|
-
Tag: Tag;
|
|
76
|
-
MetadataKey: MetadataKey;
|
|
77
|
-
Tags: IfNever<Tag, never, [Tag, ...Tag[]]>;
|
|
78
|
-
NewElementProps: NewElementProps<Tag, Metadata<MetadataKey>>;
|
|
79
|
-
NewRelationshipProps: NewRelationProps<RelationshipKind, Tag, Metadata<MetadataKey>>;
|
|
80
|
-
NewViewProps: NewViewProps<Tag>;
|
|
81
|
-
}
|
|
82
|
-
declare namespace Types {
|
|
83
|
-
type FromSpecification<Spec> = Spec extends BuilderSpecification ? Types<KeysOf<Spec['elements']>, never, never, KeysOf<Spec['relationships']>, TupleToUnion<Spec['tags']>, TupleToUnion<Spec['metadataKeys']>> : never;
|
|
84
|
-
type AddFqn<T, Id extends string> = T extends TypesNested<infer P, any, any, any, any, any, any> ? TypesNested<P, T['ElementKind'], `${P}.${Id}` | T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey']> : T extends AnyTypes ? Types<T['ElementKind'], Id | T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey']> : never;
|
|
85
|
-
type AddView<T, Id extends string> = T extends TypesNested<infer P, any, any, any, any, any, any> ? TypesNested<P, T['ElementKind'], T['Fqn'], Id | T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey']> : T extends AnyTypes ? Types<T['ElementKind'], T['Fqn'], Id | T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey']> : never;
|
|
86
|
-
type ToParsedLikeC4Model<T> = T extends AnyTypes ? ParsedLikeC4Model<T['ElementKind'], T['RelationshipKind'], T['Tag'], T['Fqn'], T['ViewId']> : never;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
type ToNested<T, Id extends string> = T extends TypesNested<infer P, any, infer F, any, any, any, any> ? TypesNested<`${P}.${Id}`, T['ElementKind'], `${P}.${Id}` | F, T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey']> : T extends AnyTypes ? TypesNested<Id, T['ElementKind'], Id | T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey']> : never;
|
|
90
|
-
type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, infer F, any, any, any, any> ? T extends TypesNested<infer P, any, any, any, any, any, any> ? TypesNested<P, T['ElementKind'], F, T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey']> : T extends AnyTypes ? Types<T['ElementKind'], F, T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey']> : never : never;
|
|
91
|
-
/**
|
|
92
|
-
* Chainable builder to create element
|
|
93
|
-
*/
|
|
94
|
-
interface AddElement<Id extends string> {
|
|
95
|
-
<T extends AnyTypes>(builder: ModelBuilder<T>): ModelBuilder<Types.AddFqn<T, Id>>;
|
|
96
|
-
with<T extends AnyTypes, A extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, A>>;
|
|
97
|
-
with<T extends AnyTypes, A extends AnyTypes, B extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>, op2: (input: ModelBuilder<A>) => ModelBuilder<B>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, B>>;
|
|
98
|
-
with<T extends AnyTypes, A extends AnyTypes, B extends AnyTypes, C extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>, op2: (input: ModelBuilder<A>) => ModelBuilder<B>, op3: (input: ModelBuilder<B>) => ModelBuilder<C>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, C>>;
|
|
99
|
-
with<T extends AnyTypes, A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>, op2: (input: ModelBuilder<A>) => ModelBuilder<B>, op3: (input: ModelBuilder<B>) => ModelBuilder<C>, op4: (input: ModelBuilder<C>) => ModelBuilder<D>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, D>>;
|
|
100
|
-
with<T extends AnyTypes, A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>, op2: (input: ModelBuilder<A>) => ModelBuilder<B>, op3: (input: ModelBuilder<B>) => ModelBuilder<C>, op4: (input: ModelBuilder<C>) => ModelBuilder<D>, op5: (input: ModelBuilder<D>) => ModelBuilder<E>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, E>>;
|
|
101
|
-
with<T extends AnyTypes, A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>, op2: (input: ModelBuilder<A>) => ModelBuilder<B>, op3: (input: ModelBuilder<B>) => ModelBuilder<C>, op4: (input: ModelBuilder<C>) => ModelBuilder<D>, op5: (input: ModelBuilder<D>) => ModelBuilder<E>, op6: (input: ModelBuilder<E>) => ModelBuilder<F>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, F>>;
|
|
102
|
-
with<T extends AnyTypes, A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>, op2: (input: ModelBuilder<A>) => ModelBuilder<B>, op3: (input: ModelBuilder<B>) => ModelBuilder<C>, op4: (input: ModelBuilder<C>) => ModelBuilder<D>, op5: (input: ModelBuilder<D>) => ModelBuilder<E>, op6: (input: ModelBuilder<E>) => ModelBuilder<F>, op7: (input: ModelBuilder<F>) => ModelBuilder<G>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, G>>;
|
|
103
|
-
with<T extends AnyTypes, A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>, op2: (input: ModelBuilder<A>) => ModelBuilder<B>, op3: (input: ModelBuilder<B>) => ModelBuilder<C>, op4: (input: ModelBuilder<C>) => ModelBuilder<D>, op5: (input: ModelBuilder<D>) => ModelBuilder<E>, op6: (input: ModelBuilder<E>) => ModelBuilder<F>, op7: (input: ModelBuilder<F>) => ModelBuilder<G>, op8: (input: ModelBuilder<G>) => ModelBuilder<H>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, H>>;
|
|
104
|
-
with<T extends AnyTypes, A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>, op2: (input: ModelBuilder<A>) => ModelBuilder<B>, op3: (input: ModelBuilder<B>) => ModelBuilder<C>, op4: (input: ModelBuilder<C>) => ModelBuilder<D>, op5: (input: ModelBuilder<D>) => ModelBuilder<E>, op6: (input: ModelBuilder<E>) => ModelBuilder<F>, op7: (input: ModelBuilder<F>) => ModelBuilder<G>, op8: (input: ModelBuilder<G>) => ModelBuilder<H>, op9: (input: ModelBuilder<H>) => ModelBuilder<I>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, I>>;
|
|
105
|
-
with<T extends AnyTypes, A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>, op2: (input: ModelBuilder<A>) => ModelBuilder<B>, op3: (input: ModelBuilder<B>) => ModelBuilder<C>, op4: (input: ModelBuilder<C>) => ModelBuilder<D>, op5: (input: ModelBuilder<D>) => ModelBuilder<E>, op6: (input: ModelBuilder<E>) => ModelBuilder<F>, op7: (input: ModelBuilder<F>) => ModelBuilder<G>, op8: (input: ModelBuilder<G>) => ModelBuilder<H>, op9: (input: ModelBuilder<H>) => ModelBuilder<I>, op10: (input: ModelBuilder<I>) => ModelBuilder<J>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, J>>;
|
|
106
|
-
}
|
|
107
|
-
type AddElementHelper<T = unknown> = <const Id extends string>(id: Id, titleOrProps?: string | T) => AddElement<Id>;
|
|
108
|
-
type AddElementHelpers<T extends AnyTypes> = T extends Types<infer Kinds extends string, any, any, any, any, any> ? {
|
|
109
|
-
[Kind in Kinds]: AddElementHelper<T['NewElementProps']>;
|
|
110
|
-
} : Invalid<'No Element Kinds'>;
|
|
111
|
-
|
|
112
|
-
interface ModelBuilder<T extends AnyTypes> {
|
|
113
|
-
addElement(element: Element): Builder<T>;
|
|
114
|
-
addRelation(relation: Omit<Relation, 'id'>): Builder<T>;
|
|
115
|
-
/**
|
|
116
|
-
* Create a fully qualified name from an id (for nested models)
|
|
117
|
-
*/
|
|
118
|
-
fqn(id: string): Fqn$1;
|
|
119
|
-
addSourcelessRelation(relation: Omit<Relation, 'id' | 'source'>): Builder<T>;
|
|
120
|
-
}
|
|
121
|
-
declare function model<A extends AnyTypes, B extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>): (input: Builder<A>) => Builder<B>;
|
|
122
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>): (input: Builder<A>) => Builder<C>;
|
|
123
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>): (input: Builder<A>) => Builder<D>;
|
|
124
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>): (input: Builder<A>) => Builder<E>;
|
|
125
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>): (input: Builder<A>) => Builder<F>;
|
|
126
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>, op6: (input: ModelBuilder<F>) => ModelBuilder<G>): (input: Builder<A>) => Builder<G>;
|
|
127
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>, op6: (input: ModelBuilder<F>) => ModelBuilder<G>, op7: (input: ModelBuilder<G>) => ModelBuilder<H>): (input: Builder<A>) => Builder<H>;
|
|
128
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>, op6: (input: ModelBuilder<F>) => ModelBuilder<G>, op7: (input: ModelBuilder<G>) => ModelBuilder<H>, op8: (input: ModelBuilder<H>) => ModelBuilder<I>): (input: Builder<A>) => Builder<I>;
|
|
129
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>, op6: (input: ModelBuilder<F>) => ModelBuilder<G>, op7: (input: ModelBuilder<G>) => ModelBuilder<H>, op8: (input: ModelBuilder<H>) => ModelBuilder<I>, op9: (input: ModelBuilder<I>) => ModelBuilder<J>): (input: Builder<A>) => Builder<J>;
|
|
130
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>, op6: (input: ModelBuilder<F>) => ModelBuilder<G>, op7: (input: ModelBuilder<G>) => ModelBuilder<H>, op8: (input: ModelBuilder<H>) => ModelBuilder<I>, op9: (input: ModelBuilder<I>) => ModelBuilder<J>, op10: (input: ModelBuilder<J>) => ModelBuilder<K>): (input: Builder<A>) => Builder<K>;
|
|
131
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes, L extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>, op6: (input: ModelBuilder<F>) => ModelBuilder<G>, op7: (input: ModelBuilder<G>) => ModelBuilder<H>, op8: (input: ModelBuilder<H>) => ModelBuilder<I>, op9: (input: ModelBuilder<I>) => ModelBuilder<J>, op10: (input: ModelBuilder<J>) => ModelBuilder<K>, op11: (input: ModelBuilder<K>) => ModelBuilder<L>): (input: Builder<A>) => Builder<L>;
|
|
132
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes, L extends AnyTypes, M extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>, op6: (input: ModelBuilder<F>) => ModelBuilder<G>, op7: (input: ModelBuilder<G>) => ModelBuilder<H>, op8: (input: ModelBuilder<H>) => ModelBuilder<I>, op9: (input: ModelBuilder<I>) => ModelBuilder<J>, op10: (input: ModelBuilder<J>) => ModelBuilder<K>, op11: (input: ModelBuilder<K>) => ModelBuilder<L>, op12: (input: ModelBuilder<L>) => ModelBuilder<M>): (input: Builder<A>) => Builder<M>;
|
|
133
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes, L extends AnyTypes, M extends AnyTypes, N extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>, op6: (input: ModelBuilder<F>) => ModelBuilder<G>, op7: (input: ModelBuilder<G>) => ModelBuilder<H>, op8: (input: ModelBuilder<H>) => ModelBuilder<I>, op9: (input: ModelBuilder<I>) => ModelBuilder<J>, op10: (input: ModelBuilder<J>) => ModelBuilder<K>, op11: (input: ModelBuilder<K>) => ModelBuilder<L>, op12: (input: ModelBuilder<L>) => ModelBuilder<M>, op13: (input: ModelBuilder<M>) => ModelBuilder<N>): (input: Builder<A>) => Builder<N>;
|
|
134
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes, L extends AnyTypes, M extends AnyTypes, N extends AnyTypes, O extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>, op6: (input: ModelBuilder<F>) => ModelBuilder<G>, op7: (input: ModelBuilder<G>) => ModelBuilder<H>, op8: (input: ModelBuilder<H>) => ModelBuilder<I>, op9: (input: ModelBuilder<I>) => ModelBuilder<J>, op10: (input: ModelBuilder<J>) => ModelBuilder<K>, op11: (input: ModelBuilder<K>) => ModelBuilder<L>, op12: (input: ModelBuilder<L>) => ModelBuilder<M>, op13: (input: ModelBuilder<M>) => ModelBuilder<N>, op14: (input: ModelBuilder<N>) => ModelBuilder<O>): (input: Builder<A>) => Builder<O>;
|
|
135
|
-
declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes, L extends AnyTypes, M extends AnyTypes, N extends AnyTypes, O extends AnyTypes, P extends AnyTypes>(op1: (input: ModelBuilder<A>) => ModelBuilder<B>, op2: (input: ModelBuilder<B>) => ModelBuilder<C>, op3: (input: ModelBuilder<C>) => ModelBuilder<D>, op4: (input: ModelBuilder<D>) => ModelBuilder<E>, op5: (input: ModelBuilder<E>) => ModelBuilder<F>, op6: (input: ModelBuilder<F>) => ModelBuilder<G>, op7: (input: ModelBuilder<G>) => ModelBuilder<H>, op8: (input: ModelBuilder<H>) => ModelBuilder<I>, op9: (input: ModelBuilder<I>) => ModelBuilder<J>, op10: (input: ModelBuilder<J>) => ModelBuilder<K>, op11: (input: ModelBuilder<K>) => ModelBuilder<L>, op12: (input: ModelBuilder<L>) => ModelBuilder<M>, op13: (input: ModelBuilder<M>) => ModelBuilder<N>, op14: (input: ModelBuilder<N>) => ModelBuilder<O>, op15: (input: ModelBuilder<O>) => ModelBuilder<P>): (input: Builder<A>) => Builder<P>;
|
|
136
|
-
type RelationshipHelper<Props = unknown> = <T extends AnyTypes, From extends string & T['Fqn'], To extends string & T['Fqn']>(from: From, to: To, titleOrProps?: string | Props) => (builder: ModelBuilder<T>) => ModelBuilder<T>;
|
|
137
|
-
type NestedRelationshipHelper<Props = unknown> = <T extends AnyTypesNested, To extends string & T['Fqn']>(to: To, titleOrProps?: string | Props) => (builder: ModelBuilder<T>) => ModelBuilder<T>;
|
|
138
|
-
type ModelHelpers<T extends AnyTypes> = AddElementHelpers<T> & {
|
|
139
|
-
model: typeof model;
|
|
140
|
-
rel: RelationshipHelper<T['NewRelationshipProps']>;
|
|
141
|
-
relTo: NestedRelationshipHelper<T['NewRelationshipProps']>;
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
interface ViewsBuilder<T extends AnyTypes> {
|
|
145
|
-
addView(view: LikeC4View): Builder<T>;
|
|
146
|
-
}
|
|
147
|
-
declare function views<A extends AnyTypes, B extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>): (input: Builder<A>) => Builder<B>;
|
|
148
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>): (input: Builder<A>) => Builder<C>;
|
|
149
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>): (input: Builder<A>) => Builder<D>;
|
|
150
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>): (input: Builder<A>) => Builder<E>;
|
|
151
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>): (input: Builder<A>) => Builder<F>;
|
|
152
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>, op6: (input: ViewsBuilder<F>) => ViewsBuilder<G>): (input: Builder<A>) => Builder<G>;
|
|
153
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>, op6: (input: ViewsBuilder<F>) => ViewsBuilder<G>, op7: (input: ViewsBuilder<G>) => ViewsBuilder<H>): (input: Builder<A>) => Builder<H>;
|
|
154
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>, op6: (input: ViewsBuilder<F>) => ViewsBuilder<G>, op7: (input: ViewsBuilder<G>) => ViewsBuilder<H>, op8: (input: ViewsBuilder<H>) => ViewsBuilder<I>): (input: Builder<A>) => Builder<I>;
|
|
155
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>, op6: (input: ViewsBuilder<F>) => ViewsBuilder<G>, op7: (input: ViewsBuilder<G>) => ViewsBuilder<H>, op8: (input: ViewsBuilder<H>) => ViewsBuilder<I>, op9: (input: ViewsBuilder<I>) => ViewsBuilder<J>): (input: Builder<A>) => Builder<J>;
|
|
156
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>, op6: (input: ViewsBuilder<F>) => ViewsBuilder<G>, op7: (input: ViewsBuilder<G>) => ViewsBuilder<H>, op8: (input: ViewsBuilder<H>) => ViewsBuilder<I>, op9: (input: ViewsBuilder<I>) => ViewsBuilder<J>, op10: (input: ViewsBuilder<J>) => ViewsBuilder<K>): (input: Builder<A>) => Builder<K>;
|
|
157
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes, L extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>, op6: (input: ViewsBuilder<F>) => ViewsBuilder<G>, op7: (input: ViewsBuilder<G>) => ViewsBuilder<H>, op8: (input: ViewsBuilder<H>) => ViewsBuilder<I>, op9: (input: ViewsBuilder<I>) => ViewsBuilder<J>, op10: (input: ViewsBuilder<J>) => ViewsBuilder<K>, op11: (input: ViewsBuilder<K>) => ViewsBuilder<L>): (input: Builder<A>) => Builder<L>;
|
|
158
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes, L extends AnyTypes, M extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>, op6: (input: ViewsBuilder<F>) => ViewsBuilder<G>, op7: (input: ViewsBuilder<G>) => ViewsBuilder<H>, op8: (input: ViewsBuilder<H>) => ViewsBuilder<I>, op9: (input: ViewsBuilder<I>) => ViewsBuilder<J>, op10: (input: ViewsBuilder<J>) => ViewsBuilder<K>, op11: (input: ViewsBuilder<K>) => ViewsBuilder<L>, op12: (input: ViewsBuilder<L>) => ViewsBuilder<M>): (input: Builder<A>) => Builder<M>;
|
|
159
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes, L extends AnyTypes, M extends AnyTypes, N extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>, op6: (input: ViewsBuilder<F>) => ViewsBuilder<G>, op7: (input: ViewsBuilder<G>) => ViewsBuilder<H>, op8: (input: ViewsBuilder<H>) => ViewsBuilder<I>, op9: (input: ViewsBuilder<I>) => ViewsBuilder<J>, op10: (input: ViewsBuilder<J>) => ViewsBuilder<K>, op11: (input: ViewsBuilder<K>) => ViewsBuilder<L>, op12: (input: ViewsBuilder<L>) => ViewsBuilder<M>, op13: (input: ViewsBuilder<M>) => ViewsBuilder<N>): (input: Builder<A>) => Builder<N>;
|
|
160
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes, L extends AnyTypes, M extends AnyTypes, N extends AnyTypes, O extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>, op6: (input: ViewsBuilder<F>) => ViewsBuilder<G>, op7: (input: ViewsBuilder<G>) => ViewsBuilder<H>, op8: (input: ViewsBuilder<H>) => ViewsBuilder<I>, op9: (input: ViewsBuilder<I>) => ViewsBuilder<J>, op10: (input: ViewsBuilder<J>) => ViewsBuilder<K>, op11: (input: ViewsBuilder<K>) => ViewsBuilder<L>, op12: (input: ViewsBuilder<L>) => ViewsBuilder<M>, op13: (input: ViewsBuilder<M>) => ViewsBuilder<N>, op14: (input: ViewsBuilder<N>) => ViewsBuilder<O>): (input: Builder<A>) => Builder<O>;
|
|
161
|
-
declare function views<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes, K extends AnyTypes, L extends AnyTypes, M extends AnyTypes, N extends AnyTypes, O extends AnyTypes, P extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>, op2: (input: ViewsBuilder<B>) => ViewsBuilder<C>, op3: (input: ViewsBuilder<C>) => ViewsBuilder<D>, op4: (input: ViewsBuilder<D>) => ViewsBuilder<E>, op5: (input: ViewsBuilder<E>) => ViewsBuilder<F>, op6: (input: ViewsBuilder<F>) => ViewsBuilder<G>, op7: (input: ViewsBuilder<G>) => ViewsBuilder<H>, op8: (input: ViewsBuilder<H>) => ViewsBuilder<I>, op9: (input: ViewsBuilder<I>) => ViewsBuilder<J>, op10: (input: ViewsBuilder<J>) => ViewsBuilder<K>, op11: (input: ViewsBuilder<K>) => ViewsBuilder<L>, op12: (input: ViewsBuilder<L>) => ViewsBuilder<M>, op13: (input: ViewsBuilder<M>) => ViewsBuilder<N>, op14: (input: ViewsBuilder<N>) => ViewsBuilder<O>, op15: (input: ViewsBuilder<O>) => ViewsBuilder<P>): (input: Builder<A>) => Builder<P>;
|
|
162
|
-
|
|
163
|
-
interface ViewBuilder<T extends AnyTypes> {
|
|
164
|
-
include(...exprs: Expression[]): ViewBuilder<T>;
|
|
165
|
-
exclude(...exprs: Expression[]): ViewBuilder<T>;
|
|
166
|
-
style(rule: ViewRuleStyle): ViewBuilder<T>;
|
|
167
|
-
autoLayout(layout: AutoLayoutDirection): ViewBuilder<T>;
|
|
168
|
-
}
|
|
169
|
-
declare namespace ViewPredicate {
|
|
170
|
-
export type ElementExpr<Fqn extends string> = '*' | Fqn | `${Fqn}.*` | `${Fqn}._`;
|
|
171
|
-
type AllExpression<ElementExpr extends string> = ElementExpr | `-> ${ElementExpr} ->` | `-> ${ElementExpr}` | `${ElementExpr} ->` | `${ElementExpr} ${'->' | '<->'} ${ElementExpr}`;
|
|
172
|
-
export type Expression<T extends AnyTypes> = T extends Types<any, infer F extends string, any, any, any, any> ? AllExpression<ViewPredicate.ElementExpr<F>> : never;
|
|
173
|
-
export type WhereTag<Tag extends string> = `tag ${'is' | 'is not'} #${Tag}`;
|
|
174
|
-
export type WhereKind<Kind extends string> = `kind ${'is' | 'is not'} ${Kind}`;
|
|
175
|
-
export type WhereEq<Types extends AnyTypes> = ViewPredicate.WhereTag<Types['Tag']> | ViewPredicate.WhereKind<Types['ElementKind']>;
|
|
176
|
-
export type WhereOperator<Types extends AnyTypes> = ViewPredicate.WhereEq<Types> | {
|
|
177
|
-
and: NonEmptyArray<ViewPredicate.WhereOperator<Types>>;
|
|
178
|
-
or?: never;
|
|
179
|
-
not?: never;
|
|
180
|
-
} | {
|
|
181
|
-
or: NonEmptyArray<ViewPredicate.WhereOperator<Types>>;
|
|
182
|
-
and?: never;
|
|
183
|
-
not?: never;
|
|
184
|
-
} | {
|
|
185
|
-
not: ViewPredicate.WhereOperator<Types>;
|
|
186
|
-
and?: never;
|
|
187
|
-
or?: never;
|
|
188
|
-
};
|
|
189
|
-
export type Custom<Types extends AnyTypes> = {
|
|
190
|
-
where?: ViewPredicate.WhereOperator<Types>;
|
|
191
|
-
with?: Simplify<Omit<CustomElementExpr['custom'] & CustomRelationExpr['customRelation'], 'expr' | 'relation' | 'navigateTo'> & {
|
|
192
|
-
navigateTo?: Types['ViewId'];
|
|
193
|
-
}>;
|
|
194
|
-
};
|
|
195
|
-
export { };
|
|
196
|
-
}
|
|
197
|
-
type ViewRuleBuilderOp<Types extends AnyTypes> = (b: ViewBuilder<Types>) => ViewBuilder<Types>;
|
|
198
|
-
interface AddViewHelper<Props = unknown> {
|
|
199
|
-
<const Id extends string, T extends AnyTypes>(id: Id, builder: (b: ViewBuilder<T>) => ViewBuilder<T>): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>;
|
|
200
|
-
<const Id extends string, T extends AnyTypes>(id: Id, propsOrTitle: Props | string): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>;
|
|
201
|
-
<const Id extends string, T extends AnyTypes>(id: Id, propsOrTitle: Props | string | undefined, builder: (b: ViewBuilder<T>) => ViewBuilder<T>): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>;
|
|
202
|
-
}
|
|
203
|
-
interface AddViewOfHelper<Props = unknown> {
|
|
204
|
-
<const Id extends string, T extends AnyTypes, Of extends string & T['Fqn']>(id: Id, of: Of): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>;
|
|
205
|
-
<const Id extends string, T extends AnyTypes, Of extends string & T['Fqn']>(id: Id, of: Of, builder: (b: ViewBuilder<T>) => ViewBuilder<T>): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>;
|
|
206
|
-
<const Id extends string, T extends AnyTypes, Of extends string & T['Fqn']>(id: Id, of: Of, propsOrTitle: Props | string): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>;
|
|
207
|
-
<const Id extends string, T extends AnyTypes, Of extends string & T['Fqn']>(id: Id, of: Of, propsOrTitle: Props | string | undefined, builder: (b: ViewBuilder<T>) => ViewBuilder<T>): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>;
|
|
208
|
-
}
|
|
209
|
-
type TypedC4Expression<Types extends AnyTypes> = Tagged<Expression, 'typed', Types>;
|
|
210
|
-
declare function $include<Types extends AnyTypes>(...args: [ViewPredicate.Expression<Types>] | [TypedC4Expression<Types>] | [ViewPredicate.Expression<Types>, ViewPredicate.Custom<Types>]): (b: ViewBuilder<Types>) => ViewBuilder<Types>;
|
|
211
|
-
declare function $exclude<Types extends AnyTypes>(...args: [ViewPredicate.Expression<Types>] | [TypedC4Expression<Types>] | [ViewPredicate.Expression<Types>, ViewPredicate.Custom<Types>]): (b: ViewBuilder<Types>) => ViewBuilder<Types>;
|
|
212
|
-
declare function $style<Types extends AnyTypes>(element: ViewPredicate.ElementExpr<Types['Fqn']> | NonEmptyArray<ViewPredicate.ElementExpr<Types['Fqn']>>, { notation, ...style }: ViewRuleStyle['style'] & {
|
|
213
|
-
notation?: string;
|
|
214
|
-
}): (b: ViewBuilder<Types>) => ViewBuilder<Types>;
|
|
215
|
-
declare function $autoLayout<Types extends AnyTypes>(layout: AutoLayoutDirection): (b: ViewBuilder<Types>) => ViewBuilder<Types>;
|
|
216
|
-
declare function $rules<T extends AnyTypes>(...rules: ViewRuleBuilderOp<T>[]): (b: ViewBuilder<T>) => ViewBuilder<T>;
|
|
217
|
-
|
|
218
|
-
type ViewHelpers<T = unknown> = {
|
|
219
|
-
views: typeof views;
|
|
220
|
-
view: AddViewHelper<T>;
|
|
221
|
-
viewOf: AddViewOfHelper<T>;
|
|
222
|
-
$include: typeof $include;
|
|
223
|
-
$exclude: typeof $exclude;
|
|
224
|
-
$style: typeof $style;
|
|
225
|
-
$rules: typeof $rules;
|
|
226
|
-
$autoLayout: typeof $autoLayout;
|
|
227
|
-
};
|
|
228
|
-
|
|
229
|
-
interface Builder<T extends AnyTypes> {
|
|
230
|
-
/**
|
|
231
|
-
* Only available in compile time
|
|
232
|
-
*/
|
|
233
|
-
readonly Types: T;
|
|
234
|
-
clone(): Builder<T>;
|
|
235
|
-
/**
|
|
236
|
-
* Builders for each element kind
|
|
237
|
-
*/
|
|
238
|
-
helpers(): {
|
|
239
|
-
model: ModelHelpers<T>;
|
|
240
|
-
views: ViewHelpers<T['NewViewProps']>;
|
|
241
|
-
};
|
|
242
|
-
__model(): ModelBuilder<T>;
|
|
243
|
-
__views(): ViewsBuilder<T>;
|
|
244
|
-
build(): ParsedLikeC4Model<T['ElementKind'], T['RelationshipKind'], T['Tag'], T['Fqn'], T['ViewId']>;
|
|
245
|
-
with<A extends AnyTypes>(op1: (input: Builder<T>) => Builder<A>): Builder<A>;
|
|
246
|
-
with<A extends AnyTypes, B extends AnyTypes>(op1: (input: Builder<T>) => Builder<A>, op2: (input: Builder<A>) => Builder<B>): Builder<B>;
|
|
247
|
-
with<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes>(op1: (input: Builder<T>) => Builder<A>, op2: (input: Builder<A>) => Builder<B>, op3: (input: Builder<B>) => Builder<C>): Builder<C>;
|
|
248
|
-
with<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes>(op1: (input: Builder<T>) => Builder<A>, op2: (input: Builder<A>) => Builder<B>, op3: (input: Builder<B>) => Builder<C>, op4: (input: Builder<C>) => Builder<D>): Builder<D>;
|
|
249
|
-
with<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes>(op1: (input: Builder<T>) => Builder<A>, op2: (input: Builder<A>) => Builder<B>, op3: (input: Builder<B>) => Builder<C>, op4: (input: Builder<C>) => Builder<D>, op5: (input: Builder<D>) => Builder<E>): Builder<E>;
|
|
250
|
-
with<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes>(op1: (input: Builder<T>) => Builder<A>, op2: (input: Builder<A>) => Builder<B>, op3: (input: Builder<B>) => Builder<C>, op4: (input: Builder<C>) => Builder<D>, op5: (input: Builder<D>) => Builder<E>, op6: (input: Builder<E>) => Builder<F>): Builder<F>;
|
|
251
|
-
with<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes>(op1: (input: Builder<T>) => Builder<A>, op2: (input: Builder<A>) => Builder<B>, op3: (input: Builder<B>) => Builder<C>, op4: (input: Builder<C>) => Builder<D>, op5: (input: Builder<D>) => Builder<E>, op6: (input: Builder<E>) => Builder<F>, op7: (input: Builder<F>) => Builder<G>): Builder<G>;
|
|
252
|
-
with<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes>(op1: (input: Builder<T>) => Builder<A>, op2: (input: Builder<A>) => Builder<B>, op3: (input: Builder<B>) => Builder<C>, op4: (input: Builder<C>) => Builder<D>, op5: (input: Builder<D>) => Builder<E>, op6: (input: Builder<E>) => Builder<F>, op7: (input: Builder<F>) => Builder<G>, op8: (input: Builder<G>) => Builder<H>): Builder<H>;
|
|
253
|
-
with<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes>(op1: (input: Builder<T>) => Builder<A>, op2: (input: Builder<A>) => Builder<B>, op3: (input: Builder<B>) => Builder<C>, op4: (input: Builder<C>) => Builder<D>, op5: (input: Builder<D>) => Builder<E>, op6: (input: Builder<E>) => Builder<F>, op7: (input: Builder<F>) => Builder<G>, op8: (input: Builder<G>) => Builder<H>, op9: (input: Builder<H>) => Builder<I>): Builder<I>;
|
|
254
|
-
with<A extends AnyTypes, B extends AnyTypes, C extends AnyTypes, D extends AnyTypes, E extends AnyTypes, F extends AnyTypes, G extends AnyTypes, H extends AnyTypes, I extends AnyTypes, J extends AnyTypes>(op1: (input: Builder<T>) => Builder<A>, op2: (input: Builder<A>) => Builder<B>, op3: (input: Builder<B>) => Builder<C>, op4: (input: Builder<C>) => Builder<D>, op5: (input: Builder<D>) => Builder<E>, op6: (input: Builder<E>) => Builder<F>, op7: (input: Builder<F>) => Builder<G>, op8: (input: Builder<G>) => Builder<H>, op9: (input: Builder<H>) => Builder<I>, op10: (input: Builder<I>) => Builder<J>): Builder<J>;
|
|
255
|
-
}
|
|
256
|
-
declare namespace Builder {
|
|
257
|
-
function forSpecification<const Spec extends BuilderSpecification>(spec: Spec): {
|
|
258
|
-
builder: Builder<Types.FromSpecification<Spec>>;
|
|
259
|
-
model: ModelHelpers<Types.FromSpecification<Spec>>;
|
|
260
|
-
views: ViewHelpers<Types.FromSpecification<Spec>['NewViewProps']>;
|
|
261
|
-
};
|
|
262
|
-
}
|
|
1
|
+
import { L as LikeC4Theme, H as HexColorLiteral, T as ThemeColorValues } from './shared/core.D74xkKkG.js';
|
|
2
|
+
export { A as AsFqn, h as BorderStyle, B as BorderStyles, s as Color, t as ColorLiteral, C as CustomColor, D as DefaultElementShape, e as DefaultThemeColor, i as Element, f as ElementKind, j as ElementKindSpecification, k as ElementKindSpecificationStyle, l as ElementShape, g as ElementShapes, m as ElementStyle, v as ElementThemeColorValues, u as ElementThemeColors, E as ExclusiveUnion, F as Fqn, I as IconUrl, a as IteratorLike, K as KeysOf, n as Link, c as NTuple, N as NonEmptyArray, b as NonEmptyReadonlyArray, P as Point, d as Predicate, w as RelationshipThemeColorValues, R as RelationshipThemeColors, o as Tag, p as TagSpec, x as ThemeColor, q as TypedElement, X as XYPoint, r as isThemeColor } from './shared/core.D74xkKkG.js';
|
|
3
|
+
export { ar as AbstractRelation, ag as AndOperator, a5 as AnyParsedLikeC4Model, aS as AutoLayoutDirection, aV as BBox, aT as BasicElementView, aU as BasicView, aW as ComputedDeploymentView, aX as ComputedDynamicView, aY as ComputedEdge, aZ as ComputedElementView, a as ComputedLikeC4Model, ay as ComputedNode, C as ComputedView, a_ as CustomColorDefinitions, A as CustomElementExpr, B as CustomRelationExpr, ao as DefaultArrowType, ap as DefaultLineStyle, aq as DefaultRelationshipColor, b as DeployedInstance, D as DeploymentElement, c as DeploymentElementStyle, d as DeploymentNode, f as DeploymentNodeKind, g as DeploymentNodeKindSpecification, h as DeploymentRef, i as DeploymentRelation, a$ as DeploymentView, b0 as DeploymentViewRule, b1 as DeploymentViewRulePredicate, b2 as DeploymentViewRuleStyle, b3 as DiagramEdge, az as DiagramNode, b4 as DiagramView, E as DirectRelationExpr, b5 as DynamicView, b6 as DynamicViewIncludeRule, b7 as DynamicViewParallelSteps, b8 as DynamicViewRule, b9 as DynamicViewStep, ba as DynamicViewStepOrParallel, bb as EdgeId, F as ElementExpression, G as ElementKindExpr, bv as ElementNotation, H as ElementPredicateExpression, I as ElementRefExpr, J as ElementTagExpr, bc as ElementView, K as ElementWhereExpr, ah as EqualOperator, M as ExpandedElementExpr, e as Expr, N as Expression, X as ExpressionV2, bd as ExtendsElementView, ai as Filterable, Y as FqnExpr, Z as FqnRef, a6 as GenericLikeC4Model, $ as GlobalDynamicPredicates, a0 as GlobalPredicateId, a1 as GlobalPredicates, a2 as GlobalStyleID, a3 as GlobalStyles, Q as InOutExpr, O as IncomingExpr, aj as KindEqual, a7 as LayoutedLikeC4Model, a8 as LikeC4ModelDump, L as LikeC4View, a4 as ModelGlobals, as as ModelRelation, be as NodeId, R as NonWilcard, ak as NotOperator, al as OrOperator, S as OutgoingExpr, a9 as ParsedLikeC4Model, P as PredicateSelector, _ as RelationExpr, T as RelationExpression, at as RelationId, U as RelationPredicateExpression, V as RelationWhereExpr, au as RelationshipArrowType, av as RelationshipKind, aw as RelationshipKindSpecification, ax as RelationshipLineType, bf as ScopedElementView, bg as StepEdgeId, bh as StepEdgeIdLiteral, am as TagEqual, bi as ViewAutoLayout, bj as ViewId, bk as ViewManualLayout, bl as ViewRule, bm as ViewRuleAutoLayout, bn as ViewRuleGlobalPredicateRef, bo as ViewRuleGlobalStyle, bp as ViewRuleGroup, bq as ViewRulePredicate, br as ViewRuleStyle, bs as ViewRuleStyleOrGlobalRef, bt as ViewWithHash, bu as ViewWithNotation, an as WhereOperator, W as WildcardExpr, aA as extractStep, aB as getBBoxCenter, aC as getParallelStepsPrefix, aa as isAndOperator, aD as isAutoLayoutDirection, j as isCustomElement, k as isCustomRelationExpr, aE as isDeploymentView, aF as isDynamicView, aG as isDynamicViewParallelSteps, l as isElement, m as isElementKindExpr, n as isElementPredicateExpr, o as isElementRef, p as isElementTagExpr, aH as isElementView, q as isElementWhere, r as isExpandedElementExpr, aI as isExtendsElementView, t as isInOut, s as isIncoming, ab as isKindEqual, ac as isNotOperator, ad as isOrOperator, u as isOutgoing, v as isRelation, w as isRelationExpression, x as isRelationPredicateExpr, y as isRelationWhere, aJ as isScopedElementView, aK as isStepEdgeId, ae as isTagEqual, aL as isViewRuleAutoLayout, aM as isViewRuleGlobalPredicateRef, aN as isViewRuleGlobalStyle, aO as isViewRuleGroup, aP as isViewRulePredicate, aQ as isViewRuleStyle, z as isWildcard, aR as stepEdgeId, af as whereOperatorAsPredicate } from './shared/core.C05RDLhi.js';
|
|
4
|
+
export { DefaultMap, LinkedList, commonHead, compareNatural, compareRelations, delay, difference, equalsSet, getOrCreate, hasAtLeast, ifilter, iflat, imap, intersection, ireduce, isIterable, isNonEmptyArray, isString, isome, iunique, objectHash, stringHash, symmetricDifference, toArray, toSet, union } from './utils/index.js';
|
|
5
|
+
export { A as AnyAux, b as Aux, L as LikeC4DeploymentModel, d as LikeC4Model, e as LikeC4ViewModel } from './shared/core.BIfgabEw.js';
|
|
6
|
+
export { OverviewGraph, ViewChange } from './types/index.js';
|
|
7
|
+
export { I as IterableContainer, R as ReorderedArray, a as ancestorsFqn, c as commonAncestor, b as compareByFqnHierarchically, d as compareFqnHierarchically, h as hierarchyDistance, e as hierarchyLevel, i as isAncestor, f as isDescendantOf, g as isSameHierarchy, n as nameFromFqn, p as parentFqn, s as sortByFqnHierarchically, j as sortNaturalByFqn, k as sortParentsFirst } from './shared/core.D6-fWbM3.js';
|
|
8
|
+
import 'type-fest';
|
|
263
9
|
|
|
264
10
|
declare const ElementColors: {
|
|
265
11
|
readonly primary: {
|
|
@@ -388,666 +134,11 @@ declare const RelationshipColors: {
|
|
|
388
134
|
};
|
|
389
135
|
};
|
|
390
136
|
|
|
391
|
-
declare const defaultTheme:
|
|
392
|
-
elements: {
|
|
393
|
-
readonly primary: {
|
|
394
|
-
fill: "#3b82f6";
|
|
395
|
-
stroke: "#2563eb";
|
|
396
|
-
hiContrast: "#eff6ff";
|
|
397
|
-
loContrast: "#bfdbfe";
|
|
398
|
-
};
|
|
399
|
-
readonly blue: {
|
|
400
|
-
fill: "#3b82f6";
|
|
401
|
-
stroke: "#2563eb";
|
|
402
|
-
hiContrast: "#eff6ff";
|
|
403
|
-
loContrast: "#bfdbfe";
|
|
404
|
-
};
|
|
405
|
-
readonly secondary: {
|
|
406
|
-
fill: "#0284c7";
|
|
407
|
-
stroke: "#0369a1";
|
|
408
|
-
hiContrast: "#f0f9ff";
|
|
409
|
-
loContrast: "#B6ECF7";
|
|
410
|
-
};
|
|
411
|
-
readonly sky: {
|
|
412
|
-
fill: "#0284c7";
|
|
413
|
-
stroke: "#0369a1";
|
|
414
|
-
hiContrast: "#f0f9ff";
|
|
415
|
-
loContrast: "#B6ECF7";
|
|
416
|
-
};
|
|
417
|
-
readonly muted: {
|
|
418
|
-
fill: "#64748b";
|
|
419
|
-
stroke: "#475569";
|
|
420
|
-
hiContrast: "#f8fafc";
|
|
421
|
-
loContrast: "#cbd5e1";
|
|
422
|
-
};
|
|
423
|
-
readonly slate: {
|
|
424
|
-
fill: "#64748b";
|
|
425
|
-
stroke: "#475569";
|
|
426
|
-
hiContrast: "#f8fafc";
|
|
427
|
-
loContrast: "#cbd5e1";
|
|
428
|
-
};
|
|
429
|
-
readonly gray: {
|
|
430
|
-
readonly fill: "#737373";
|
|
431
|
-
readonly stroke: "#525252";
|
|
432
|
-
readonly hiContrast: "#fafafa";
|
|
433
|
-
readonly loContrast: "#d4d4d4";
|
|
434
|
-
};
|
|
435
|
-
readonly red: {
|
|
436
|
-
readonly fill: "#AC4D39";
|
|
437
|
-
readonly stroke: "#853A2D";
|
|
438
|
-
readonly hiContrast: "#FBD3CB";
|
|
439
|
-
readonly loContrast: "#f5b2a3";
|
|
440
|
-
};
|
|
441
|
-
readonly green: {
|
|
442
|
-
readonly fill: "#428a4f";
|
|
443
|
-
readonly stroke: "#2d5d39";
|
|
444
|
-
readonly hiContrast: "#f8fafc";
|
|
445
|
-
readonly loContrast: "#c2f0c2";
|
|
446
|
-
};
|
|
447
|
-
readonly amber: {
|
|
448
|
-
readonly fill: "#A35829";
|
|
449
|
-
readonly stroke: "#7E451D";
|
|
450
|
-
readonly hiContrast: "#FFE0C2";
|
|
451
|
-
readonly loContrast: "#f9b27c";
|
|
452
|
-
};
|
|
453
|
-
readonly indigo: {
|
|
454
|
-
readonly fill: "#6366f1";
|
|
455
|
-
readonly stroke: "#4f46e5";
|
|
456
|
-
readonly hiContrast: "#eef2ff";
|
|
457
|
-
readonly loContrast: "#c7d2fe";
|
|
458
|
-
};
|
|
459
|
-
};
|
|
460
|
-
relationships: {
|
|
461
|
-
amber: {
|
|
462
|
-
lineColor: "#b45309";
|
|
463
|
-
labelBgColor: "#78350f";
|
|
464
|
-
labelColor: "#FFE0C2";
|
|
465
|
-
};
|
|
466
|
-
blue: {
|
|
467
|
-
lineColor: "#3b82f6";
|
|
468
|
-
labelBgColor: "#172554";
|
|
469
|
-
labelColor: "#60a5fa";
|
|
470
|
-
};
|
|
471
|
-
gray: {
|
|
472
|
-
lineColor: "#6E6E6E";
|
|
473
|
-
labelBgColor: "#18191b";
|
|
474
|
-
labelColor: "#C6C6C6";
|
|
475
|
-
};
|
|
476
|
-
green: {
|
|
477
|
-
lineColor: "#15803d";
|
|
478
|
-
labelBgColor: "#052e16";
|
|
479
|
-
labelColor: "#22c55e";
|
|
480
|
-
};
|
|
481
|
-
indigo: {
|
|
482
|
-
lineColor: "#6366f1";
|
|
483
|
-
labelBgColor: "#1e1b4b";
|
|
484
|
-
labelColor: "#818cf8";
|
|
485
|
-
};
|
|
486
|
-
muted: {
|
|
487
|
-
lineColor: "#64748b";
|
|
488
|
-
labelBgColor: "#0f172a";
|
|
489
|
-
labelColor: "#cbd5e1";
|
|
490
|
-
};
|
|
491
|
-
primary: {
|
|
492
|
-
lineColor: "#3b82f6";
|
|
493
|
-
labelBgColor: "#172554";
|
|
494
|
-
labelColor: "#60a5fa";
|
|
495
|
-
};
|
|
496
|
-
red: {
|
|
497
|
-
lineColor: "#AC4D39";
|
|
498
|
-
labelBgColor: "#b91c1c";
|
|
499
|
-
labelColor: "#f5b2a3";
|
|
500
|
-
};
|
|
501
|
-
secondary: {
|
|
502
|
-
lineColor: "#0ea5e9";
|
|
503
|
-
labelBgColor: "#082f49";
|
|
504
|
-
labelColor: "#38bdf8";
|
|
505
|
-
};
|
|
506
|
-
sky: {
|
|
507
|
-
lineColor: "#0ea5e9";
|
|
508
|
-
labelBgColor: "#082f49";
|
|
509
|
-
labelColor: "#38bdf8";
|
|
510
|
-
};
|
|
511
|
-
slate: {
|
|
512
|
-
lineColor: "#64748b";
|
|
513
|
-
labelBgColor: "#0f172a";
|
|
514
|
-
labelColor: "#cbd5e1";
|
|
515
|
-
};
|
|
516
|
-
};
|
|
517
|
-
font: "Arial";
|
|
518
|
-
shadow: "#0a0a0a";
|
|
519
|
-
};
|
|
137
|
+
declare const defaultTheme: LikeC4Theme;
|
|
520
138
|
declare function computeColorValues(color: HexColorLiteral): ThemeColorValues;
|
|
521
139
|
|
|
522
140
|
declare function nonNullable<T>(value: T, message?: string): NonNullable<T>;
|
|
523
141
|
declare function invariant(condition: any, message?: string): asserts condition;
|
|
524
142
|
declare function nonexhaustive(value: never): never;
|
|
525
143
|
|
|
526
|
-
|
|
527
|
-
type RelationID = LiteralUnion<RelationID$1, string>;
|
|
528
|
-
type ViewID = LiteralUnion<ViewID$1, string>;
|
|
529
|
-
type EdgeId = LiteralUnion<EdgeId$1, string>;
|
|
530
|
-
type IncomingFilter = 'all' | 'direct' | 'to-descendants';
|
|
531
|
-
type OutgoingFilter = 'all' | 'direct' | 'from-descendants';
|
|
532
|
-
type ElementOrFqn = Fqn | {
|
|
533
|
-
id: Fqn;
|
|
534
|
-
};
|
|
535
|
-
|
|
536
|
-
/**
|
|
537
|
-
* All methods are view-scoped, i.e. only return elements and connections in the view.
|
|
538
|
-
*/
|
|
539
|
-
declare class LikeC4ViewModel {
|
|
540
|
-
readonly view: ComputedView;
|
|
541
|
-
readonly model: LikeC4Model<LikeC4ViewModel>;
|
|
542
|
-
private readonly _rootElements;
|
|
543
|
-
private readonly _elements;
|
|
544
|
-
private readonly _connections;
|
|
545
|
-
constructor(view: ComputedView, model: LikeC4Model<LikeC4ViewModel>);
|
|
546
|
-
get id(): ViewID$1<string>;
|
|
547
|
-
get title(): string;
|
|
548
|
-
get viewOf(): LikeC4Model.ElementModel<LikeC4ViewModel>;
|
|
549
|
-
get tags(): Tag[];
|
|
550
|
-
roots(): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
551
|
-
elements(): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
552
|
-
element(id: Fqn): LikeC4ViewModel.Element;
|
|
553
|
-
hasElement(id: Fqn): boolean;
|
|
554
|
-
connections(): ReadonlyArray<LikeC4ViewModel.Connection>;
|
|
555
|
-
connection(id: EdgeId): LikeC4ViewModel.Connection;
|
|
556
|
-
findConnections(source: ElementOrFqn, target: ElementOrFqn, direction?: 'both' | 'direct'): ReadonlyArray<LikeC4ViewModel.Connection>;
|
|
557
|
-
parent(element: ElementOrFqn): LikeC4ViewModel.Element | null;
|
|
558
|
-
children(element: ElementOrFqn): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
559
|
-
siblings(element: ElementOrFqn): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
560
|
-
/**
|
|
561
|
-
* Get all ancestor elements (i.e. parent, parent’s parent, etc.)
|
|
562
|
-
* (from closest to root)
|
|
563
|
-
*/
|
|
564
|
-
ancestors(element: ElementOrFqn): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
565
|
-
descendants(element: ElementOrFqn): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
566
|
-
incoming(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4ViewModel.Connection>;
|
|
567
|
-
incomers(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
568
|
-
/**
|
|
569
|
-
* Outgoing relationships from the element and its descendants
|
|
570
|
-
*/
|
|
571
|
-
outgoing(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4ViewModel.Connection>;
|
|
572
|
-
outgoers(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
573
|
-
}
|
|
574
|
-
declare namespace LikeC4ViewModel {
|
|
575
|
-
/**
|
|
576
|
-
* Represents an element in the view. (Diagram node)
|
|
577
|
-
* All methods are view-scoped, i.e. `children` returns only children of the element in the view.
|
|
578
|
-
*/
|
|
579
|
-
class Element {
|
|
580
|
-
readonly node: ComputedNode;
|
|
581
|
-
private readonly viewmodel;
|
|
582
|
-
constructor(node: ComputedNode, viewmodel: LikeC4ViewModel);
|
|
583
|
-
get id(): NodeId<string>;
|
|
584
|
-
get title(): string;
|
|
585
|
-
get kind(): ElementKind;
|
|
586
|
-
get isRoot(): boolean;
|
|
587
|
-
get hasNested(): boolean;
|
|
588
|
-
get shape(): ElementShape;
|
|
589
|
-
get color(): Color;
|
|
590
|
-
get tags(): Tag[];
|
|
591
|
-
model(): LikeC4Model.ElementModel<LikeC4ViewModel>;
|
|
592
|
-
parent(): LikeC4ViewModel.Element | null;
|
|
593
|
-
metadata(key: string): string | undefined;
|
|
594
|
-
metadata(key: string, defaultValue: string): string;
|
|
595
|
-
hasMetadata(key: string): boolean;
|
|
596
|
-
ancestors(): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
597
|
-
siblings(): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
598
|
-
descendants(): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
599
|
-
children(): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
600
|
-
incoming(filter?: 'all' | 'direct' | 'to-descendants'): ReadonlyArray<LikeC4ViewModel.Connection>;
|
|
601
|
-
incomers(filter?: 'all' | 'direct' | 'to-descendants'): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
602
|
-
outgoing(filter?: OutgoingFilter): ReadonlyArray<LikeC4ViewModel.Connection>;
|
|
603
|
-
outgoers(filter?: OutgoingFilter): ReadonlyArray<LikeC4ViewModel.Element>;
|
|
604
|
-
connectionsTo(target: Fqn | LikeC4ViewModel.Element): ReadonlyArray<LikeC4ViewModel.Connection>;
|
|
605
|
-
}
|
|
606
|
-
/**
|
|
607
|
-
* Represents a connection between two elements.
|
|
608
|
-
* May be source from multiple model relationships.
|
|
609
|
-
*/
|
|
610
|
-
class Connection {
|
|
611
|
-
readonly edge: ComputedEdge;
|
|
612
|
-
private readonly viewmodel;
|
|
613
|
-
constructor(edge: ComputedEdge, viewmodel: LikeC4ViewModel);
|
|
614
|
-
get id(): EdgeId$1;
|
|
615
|
-
get source(): LikeC4ViewModel.Element;
|
|
616
|
-
get target(): LikeC4ViewModel.Element;
|
|
617
|
-
get tags(): Tag[];
|
|
618
|
-
/**
|
|
619
|
-
* Model relationships
|
|
620
|
-
*/
|
|
621
|
-
relationships(): ReadonlyArray<LikeC4Model.Relationship<LikeC4ViewModel>>;
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
type PickBySource<Source> = Source extends LikeC4Model.Layouted.SourceModel ? LikeC4Model.Layouted : Source extends LikeC4Model.Computed.SourceModel ? LikeC4Model.Computed : never;
|
|
626
|
-
declare class LikeC4Model<M extends LikeC4Model.ViewModel = LikeC4Model.ViewModel> {
|
|
627
|
-
readonly type: LikeC4Model.ModelType<M>;
|
|
628
|
-
readonly sourcemodel: LikeC4Model.SourceModel<M>;
|
|
629
|
-
private _elements;
|
|
630
|
-
private _parents;
|
|
631
|
-
private _children;
|
|
632
|
-
private _rootElements;
|
|
633
|
-
private _relations;
|
|
634
|
-
private _incoming;
|
|
635
|
-
private _outgoing;
|
|
636
|
-
private _internal;
|
|
637
|
-
private _cacheAscendingSiblings;
|
|
638
|
-
private _views;
|
|
639
|
-
constructor(type: LikeC4Model.ModelType<M>, sourcemodel: LikeC4Model.SourceModel<M>, elements: Element[], relations: Relation[], views: LikeC4Model.SourceModel<M>['views'], ViewModelClass: Class<M>);
|
|
640
|
-
/**
|
|
641
|
-
* Returns the root elements of the model.
|
|
642
|
-
*/
|
|
643
|
-
roots(): ReadonlyArray<LikeC4Model.ElementModel<M>>;
|
|
644
|
-
/**
|
|
645
|
-
* Returns all elements in the model.
|
|
646
|
-
*/
|
|
647
|
-
elements(): ReadonlyArray<LikeC4Model.ElementModel<M>>;
|
|
648
|
-
/**
|
|
649
|
-
* Returns a specific element by its FQN.
|
|
650
|
-
*/
|
|
651
|
-
element(id: Fqn): LikeC4Model.ElementModel<M>;
|
|
652
|
-
/**
|
|
653
|
-
* Returns all relationships in the model.
|
|
654
|
-
*/
|
|
655
|
-
relationships(): ReadonlyArray<LikeC4Model.Relationship<M>>;
|
|
656
|
-
/**
|
|
657
|
-
* Returns a specific relationship by its ID.
|
|
658
|
-
*/
|
|
659
|
-
relationship(id: RelationID): LikeC4Model.Relationship<M>;
|
|
660
|
-
/**
|
|
661
|
-
* Returns all views in the model.
|
|
662
|
-
*/
|
|
663
|
-
views(): ReadonlyArray<M>;
|
|
664
|
-
/**
|
|
665
|
-
* Returns a specific view by its ID.
|
|
666
|
-
*/
|
|
667
|
-
view(viewId: ViewID): M;
|
|
668
|
-
/**
|
|
669
|
-
* Returns the parent element of given element.
|
|
670
|
-
* @see ancestors
|
|
671
|
-
*/
|
|
672
|
-
parent(element: ElementOrFqn): LikeC4Model.ElementModel<M> | null;
|
|
673
|
-
/**
|
|
674
|
-
* Get all children of the element (only direct children),
|
|
675
|
-
* @see descendants
|
|
676
|
-
*/
|
|
677
|
-
children(element: ElementOrFqn): ReadonlyArray<LikeC4Model.ElementModel<M>>;
|
|
678
|
-
/**
|
|
679
|
-
* Get all sibling (i.e. same parent)
|
|
680
|
-
*/
|
|
681
|
-
siblings(element: ElementOrFqn): ReadonlyArray<LikeC4Model.ElementModel<M>>;
|
|
682
|
-
/**
|
|
683
|
-
* Get all ancestor elements (i.e. parent, parent’s parent, etc.)
|
|
684
|
-
* (from closest to root)
|
|
685
|
-
*/
|
|
686
|
-
ancestors(element: ElementOrFqn): ReadonlyArray<LikeC4Model.ElementModel<M>>;
|
|
687
|
-
/**
|
|
688
|
-
* Get all descendant elements (i.e. children, children’s children, etc.)
|
|
689
|
-
*/
|
|
690
|
-
descendants(element: ElementOrFqn): ReadonlyArray<LikeC4Model.ElementModel<M>>;
|
|
691
|
-
/**
|
|
692
|
-
* Incoming relationships to the element and its descendants
|
|
693
|
-
* @see incomers
|
|
694
|
-
*/
|
|
695
|
-
incoming(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4Model.Relationship<M>>;
|
|
696
|
-
/**
|
|
697
|
-
* Source elements of incoming relationships
|
|
698
|
-
*/
|
|
699
|
-
incomers(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4Model.ElementModel<M>>;
|
|
700
|
-
/**
|
|
701
|
-
* Outgoing relationships from the element and its descendants
|
|
702
|
-
* @see outgoers
|
|
703
|
-
*/
|
|
704
|
-
outgoing(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4Model.Relationship<M>>;
|
|
705
|
-
/**
|
|
706
|
-
* Target elements of outgoing relationships
|
|
707
|
-
*/
|
|
708
|
-
outgoers(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4Model.ElementModel<M>>;
|
|
709
|
-
/**
|
|
710
|
-
* Relationships inside the element, among descendants
|
|
711
|
-
*/
|
|
712
|
-
internal(element: ElementOrFqn): ReadonlyArray<LikeC4Model.Relationship<M>>;
|
|
713
|
-
/**
|
|
714
|
-
* Resolve siblings of the element and siblings of ancestors
|
|
715
|
-
* (from closest to root)
|
|
716
|
-
*/
|
|
717
|
-
ascendingSiblings(element: ElementOrFqn): ReadonlyArray<LikeC4Model.ElementModel<M>>;
|
|
718
|
-
/**
|
|
719
|
-
* Resolve all views that contain the element
|
|
720
|
-
*/
|
|
721
|
-
viewsWithElement(element: ElementOrFqn): ReadonlyArray<M>;
|
|
722
|
-
private addElement;
|
|
723
|
-
private addRelation;
|
|
724
|
-
private _childrenOf;
|
|
725
|
-
private _incomingTo;
|
|
726
|
-
private _outgoingFrom;
|
|
727
|
-
private _internalOf;
|
|
728
|
-
}
|
|
729
|
-
declare namespace LikeC4Model {
|
|
730
|
-
function create(source: LikeC4Model.SourceModel): PickBySource<typeof source>;
|
|
731
|
-
function computed(source: ComputedLikeC4Model): LikeC4Model<LikeC4ViewModel>;
|
|
732
|
-
function layouted(source: LayoutedLikeC4Model): LikeC4Model<LikeC4DiagramModel>;
|
|
733
|
-
function isModel(model: any): model is LikeC4Model;
|
|
734
|
-
type SourceModel<M extends ViewModel = ViewModel> = M extends LikeC4DiagramModel ? LayoutedLikeC4Model : ComputedLikeC4Model;
|
|
735
|
-
type ViewModel = LikeC4ViewModel | LikeC4DiagramModel;
|
|
736
|
-
namespace ViewModel {
|
|
737
|
-
type ElementModel = LikeC4ViewModel.Element | LikeC4DiagramModel.Element;
|
|
738
|
-
type Relationship = LikeC4Model.Relationship<ViewModel>;
|
|
739
|
-
function isLayouted(model: ViewModel): model is LikeC4DiagramModel;
|
|
740
|
-
}
|
|
741
|
-
type Computed = LikeC4Model<LikeC4ViewModel>;
|
|
742
|
-
namespace Computed {
|
|
743
|
-
type ViewModel = LikeC4ViewModel;
|
|
744
|
-
type SourceModel = LikeC4Model.SourceModel<ViewModel>;
|
|
745
|
-
}
|
|
746
|
-
type Layouted = LikeC4Model<LikeC4DiagramModel>;
|
|
747
|
-
namespace Layouted {
|
|
748
|
-
type ViewModel = LikeC4DiagramModel;
|
|
749
|
-
type SourceModel = LikeC4Model.SourceModel<ViewModel>;
|
|
750
|
-
}
|
|
751
|
-
type ModelType<M extends ViewModel = ViewModel> = M extends LikeC4DiagramModel ? 'layouted' : M extends LikeC4ViewModel ? 'computed' : never;
|
|
752
|
-
function isLayouted(model: LikeC4Model): model is Layouted;
|
|
753
|
-
class Relationship<M extends ViewModel = ViewModel> {
|
|
754
|
-
readonly relationship: Relation;
|
|
755
|
-
private readonly model;
|
|
756
|
-
constructor(relationship: Relation, model: LikeC4Model<M>);
|
|
757
|
-
get id(): RelationID$1;
|
|
758
|
-
get title(): string;
|
|
759
|
-
get kind(): RelationshipKind<string>;
|
|
760
|
-
get tags(): Tag[];
|
|
761
|
-
get source(): ElementModel<M>;
|
|
762
|
-
get target(): ElementModel<M>;
|
|
763
|
-
metadata(key: string): string | undefined;
|
|
764
|
-
metadata(key: string, defaultValue: string): string;
|
|
765
|
-
hasMetadata(key: string): boolean;
|
|
766
|
-
}
|
|
767
|
-
class ElementModel<M extends ViewModel = ViewModel> {
|
|
768
|
-
readonly element: Element;
|
|
769
|
-
private readonly model;
|
|
770
|
-
constructor(element: Element, model: LikeC4Model<M>);
|
|
771
|
-
get id(): Fqn$1<string>;
|
|
772
|
-
get title(): string;
|
|
773
|
-
get kind(): ElementKind;
|
|
774
|
-
get isRoot(): boolean;
|
|
775
|
-
get hasNested(): boolean;
|
|
776
|
-
get shape(): ElementShape;
|
|
777
|
-
get color(): Color;
|
|
778
|
-
get tags(): Tag[];
|
|
779
|
-
parent(): ElementModel<M> | null;
|
|
780
|
-
metadata(key: string): string | undefined;
|
|
781
|
-
metadata(key: string, defaultValue: string): string;
|
|
782
|
-
hasMetadata(key: string): boolean;
|
|
783
|
-
ancestors(): readonly ElementModel<M>[];
|
|
784
|
-
siblings(): readonly ElementModel<M>[];
|
|
785
|
-
descendants(): readonly ElementModel<M>[];
|
|
786
|
-
children(): readonly ElementModel<M>[];
|
|
787
|
-
/**
|
|
788
|
-
* First 'view of' current element
|
|
789
|
-
*/
|
|
790
|
-
viewOf(): M;
|
|
791
|
-
/**
|
|
792
|
-
* All views 'view of' current element
|
|
793
|
-
*/
|
|
794
|
-
viewsOf(): M[];
|
|
795
|
-
/**
|
|
796
|
-
* Views that contain this element
|
|
797
|
-
*/
|
|
798
|
-
views(): readonly M[];
|
|
799
|
-
incoming(filter?: IncomingFilter): readonly Relationship<M>[];
|
|
800
|
-
incomers(filter?: IncomingFilter): readonly ElementModel<M>[];
|
|
801
|
-
outgoing(filter?: OutgoingFilter): readonly Relationship<M>[];
|
|
802
|
-
outgoers(filter?: OutgoingFilter): readonly ElementModel<M>[];
|
|
803
|
-
internal(): readonly Relationship<M>[];
|
|
804
|
-
/**
|
|
805
|
-
* Resolve siblings of the element and siblings of ancestors
|
|
806
|
-
* (from closest to root)
|
|
807
|
-
*/
|
|
808
|
-
ascendingSiblings(): readonly ElementModel<M>[];
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
|
|
812
|
-
/**
|
|
813
|
-
* All methods are view-scoped, i.e. only return elements and connections in the view.
|
|
814
|
-
*/
|
|
815
|
-
declare class LikeC4DiagramModel {
|
|
816
|
-
readonly view: DiagramView;
|
|
817
|
-
readonly model: LikeC4Model.Layouted;
|
|
818
|
-
private readonly _rootElements;
|
|
819
|
-
private readonly _elements;
|
|
820
|
-
private readonly _connections;
|
|
821
|
-
constructor(view: DiagramView, model: LikeC4Model.Layouted);
|
|
822
|
-
get isDynamic(): boolean;
|
|
823
|
-
get id(): ViewID$1<string>;
|
|
824
|
-
get title(): string;
|
|
825
|
-
get viewOf(): LikeC4Model.ElementModel<LikeC4DiagramModel>;
|
|
826
|
-
get tags(): Tag[];
|
|
827
|
-
roots(): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
828
|
-
elements(): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
829
|
-
element(id: Fqn): LikeC4DiagramModel.Element;
|
|
830
|
-
hasElement(id: Fqn): boolean;
|
|
831
|
-
connections(): ReadonlyArray<LikeC4DiagramModel.Connection>;
|
|
832
|
-
connection(id: EdgeId): LikeC4DiagramModel.Connection;
|
|
833
|
-
findConnections(source: ElementOrFqn, target: ElementOrFqn, direction?: 'both' | 'direct'): ReadonlyArray<LikeC4DiagramModel.Connection>;
|
|
834
|
-
parent(element: ElementOrFqn): LikeC4DiagramModel.Element | null;
|
|
835
|
-
children(element: ElementOrFqn): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
836
|
-
siblings(element: ElementOrFqn): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
837
|
-
/**
|
|
838
|
-
* Get all ancestor elements (i.e. parent, parent’s parent, etc.)
|
|
839
|
-
* (from closest to root)
|
|
840
|
-
*/
|
|
841
|
-
ancestors(element: ElementOrFqn): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
842
|
-
descendants(element: ElementOrFqn): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
843
|
-
incoming(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4DiagramModel.Connection>;
|
|
844
|
-
incomers(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
845
|
-
/**
|
|
846
|
-
* Outgoing relationships from the element and its descendants
|
|
847
|
-
*/
|
|
848
|
-
outgoing(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4DiagramModel.Connection>;
|
|
849
|
-
outgoers(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
850
|
-
}
|
|
851
|
-
declare namespace LikeC4DiagramModel {
|
|
852
|
-
/**
|
|
853
|
-
* Represents an element in the view. (Diagram node)
|
|
854
|
-
* All methods are view-scoped, i.e. `children` returns only children of the element in the view.
|
|
855
|
-
*/
|
|
856
|
-
class Element {
|
|
857
|
-
readonly node: DiagramNode;
|
|
858
|
-
private readonly view;
|
|
859
|
-
constructor(node: DiagramNode, view: LikeC4DiagramModel);
|
|
860
|
-
get id(): NodeId<string>;
|
|
861
|
-
get title(): string;
|
|
862
|
-
get kind(): ElementKind;
|
|
863
|
-
get isRoot(): boolean;
|
|
864
|
-
get hasNested(): boolean;
|
|
865
|
-
get shape(): ElementShape;
|
|
866
|
-
get color(): Color;
|
|
867
|
-
get tags(): Tag[];
|
|
868
|
-
get level(): number;
|
|
869
|
-
get depth(): number;
|
|
870
|
-
model(): LikeC4Model.ElementModel<LikeC4DiagramModel>;
|
|
871
|
-
parent(): LikeC4DiagramModel.Element | null;
|
|
872
|
-
metadata(key: string): string | undefined;
|
|
873
|
-
metadata(key: string, defaultValue: string): string;
|
|
874
|
-
hasMetadata(key: string): boolean;
|
|
875
|
-
ancestors(): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
876
|
-
siblings(): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
877
|
-
descendants(): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
878
|
-
children(): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
879
|
-
incoming(filter?: IncomingFilter): ReadonlyArray<LikeC4DiagramModel.Connection>;
|
|
880
|
-
incomers(filter?: IncomingFilter): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
881
|
-
outgoing(filter?: OutgoingFilter): ReadonlyArray<LikeC4DiagramModel.Connection>;
|
|
882
|
-
outgoers(filter?: OutgoingFilter): ReadonlyArray<LikeC4DiagramModel.Element>;
|
|
883
|
-
connectionsTo(target: Fqn | LikeC4DiagramModel.Element): ReadonlyArray<LikeC4DiagramModel.Connection>;
|
|
884
|
-
}
|
|
885
|
-
/**
|
|
886
|
-
* Represents a connection between two elements.
|
|
887
|
-
* May be source from multiple model relationships.
|
|
888
|
-
*/
|
|
889
|
-
class Connection {
|
|
890
|
-
readonly edge: DiagramEdge;
|
|
891
|
-
private readonly view;
|
|
892
|
-
constructor(edge: DiagramEdge, view: LikeC4DiagramModel);
|
|
893
|
-
get id(): EdgeId$1;
|
|
894
|
-
get source(): LikeC4DiagramModel.Element;
|
|
895
|
-
get target(): LikeC4DiagramModel.Element;
|
|
896
|
-
get tags(): Tag[];
|
|
897
|
-
get color(): Color;
|
|
898
|
-
/**
|
|
899
|
-
* Model relationships
|
|
900
|
-
*/
|
|
901
|
-
relationships(): ReadonlyArray<LikeC4Model.Relationship<LikeC4DiagramModel>>;
|
|
902
|
-
}
|
|
903
|
-
}
|
|
904
|
-
|
|
905
|
-
/**
|
|
906
|
-
* Common head of two arrays
|
|
907
|
-
*/
|
|
908
|
-
declare function commonHead<T>(sources: ReadonlyArray<T>, targets: ReadonlyArray<T>, equals?: (a: T, b: T) => boolean): T[];
|
|
909
|
-
|
|
910
|
-
declare function compareNatural(a: string | undefined, b: string | undefined): -1 | 0 | 1;
|
|
911
|
-
|
|
912
|
-
type Predicate<T> = (x: T) => boolean;
|
|
913
|
-
declare function nameFromFqn(fqn: LiteralUnion<Fqn$1, string>): string;
|
|
914
|
-
declare function isAncestor<E extends {
|
|
915
|
-
id: Fqn$1;
|
|
916
|
-
}>(...args: [ancestor: string, another: string] | [ancestor: E, another: E]): boolean;
|
|
917
|
-
declare function isSameHierarchy<E extends {
|
|
918
|
-
id: Fqn$1;
|
|
919
|
-
}>(one: E | Fqn$1, another: E | Fqn$1): boolean;
|
|
920
|
-
declare function isDescendantOf<E extends {
|
|
921
|
-
id: Fqn$1;
|
|
922
|
-
}>(ancestors: E[]): (e: E) => boolean;
|
|
923
|
-
declare function notDescendantOf(ancestors: Element[]): (e: Element) => boolean;
|
|
924
|
-
declare function commonAncestor<IDs extends string>(first: Fqn$1<IDs>, second: Fqn$1<IDs>): Fqn$1<IDs>;
|
|
925
|
-
declare function parentFqn<IDs extends string>(fqn: Fqn$1<IDs>): Fqn$1<IDs> | null;
|
|
926
|
-
declare function parentFqnPredicate<T extends {
|
|
927
|
-
parent: Fqn$1 | null;
|
|
928
|
-
}>(parent: Fqn$1): Predicate<T>;
|
|
929
|
-
/**
|
|
930
|
-
* Get all ancestor elements (i.e. parent, parent’s parent, etc.)
|
|
931
|
-
* (from closest to root)
|
|
932
|
-
*/
|
|
933
|
-
declare function ancestorsFqn<IDs extends string>(fqn: Fqn$1<IDs>): Fqn$1<IDs>[];
|
|
934
|
-
/**
|
|
935
|
-
* Compares two fully qualified names (fqns) hierarchically based on their depth.
|
|
936
|
-
* From parent nodes to leaves
|
|
937
|
-
*
|
|
938
|
-
* @param {string} a - The first fqn to compare.
|
|
939
|
-
* @param {string} b - The second fqn to compare.
|
|
940
|
-
* @returns {number} - 0 if the fqns have the same depth.
|
|
941
|
-
* - Positive number if a is deeper than b.
|
|
942
|
-
* - Negative number if b is deeper than a.
|
|
943
|
-
*/
|
|
944
|
-
declare function compareFqnHierarchically<T extends string = string>(a: T, b: T): -1 | 0 | 1;
|
|
945
|
-
declare function compareByFqnHierarchically<T extends {
|
|
946
|
-
id: string;
|
|
947
|
-
}>(a: T, b: T): 0 | 1 | -1;
|
|
948
|
-
type IterableContainer$1<T = unknown> = ReadonlyArray<T> | readonly [];
|
|
949
|
-
type ReorderedArray<T extends IterableContainer$1> = {
|
|
950
|
-
-readonly [P in keyof T]: T[number];
|
|
951
|
-
};
|
|
952
|
-
declare function sortByFqnHierarchically<T extends {
|
|
953
|
-
id: string;
|
|
954
|
-
}, A extends IterableContainer$1<T>>(array: A): ReorderedArray<A>;
|
|
955
|
-
declare function sortNaturalByFqn<T extends {
|
|
956
|
-
id: string;
|
|
957
|
-
}, A extends IterableContainer$1<T>>(array: A): ReorderedArray<A>;
|
|
958
|
-
|
|
959
|
-
/**
|
|
960
|
-
* This should only be used for defining generics which extend any kind of JS
|
|
961
|
-
* array under the hood, this includes arrays *AND* tuples (of the form [x, y],
|
|
962
|
-
* and of the form [x, ...y[]], etc...), and their readonly equivalent. This
|
|
963
|
-
* allows us to be more inclusive to what functions can process.
|
|
964
|
-
*
|
|
965
|
-
* @example
|
|
966
|
-
* function map<T extends IterableContainer>(items: T) { ... }
|
|
967
|
-
*
|
|
968
|
-
* We would've named this `ArrayLike`, but that's already used by typescript...
|
|
969
|
-
* @see This was inspired by the type-definition of Promise.all (https://github.com/microsoft/TypeScript/blob/1df5717b120cddd325deab8b0f2b2c3eecaf2b01/src/lib/es2015.promise.d.ts#L21)
|
|
970
|
-
*/
|
|
971
|
-
type IterableContainer<T = unknown> = ReadonlyArray<T> | readonly [];
|
|
972
|
-
|
|
973
|
-
type ArraySetRequired<T extends IterableContainer, Min extends number, Iteration extends ReadonlyArray<unknown> = []> = number extends Min ? never : Iteration["length"] extends Min ? T : T extends readonly [] ? never : T extends [infer Head, ...infer Rest] ? [
|
|
974
|
-
Head,
|
|
975
|
-
...ArraySetRequired<Rest, Min, [unknown, ...Iteration]>
|
|
976
|
-
] : T extends readonly [infer Head, ...infer Rest] ? readonly [
|
|
977
|
-
Head,
|
|
978
|
-
...ArraySetRequired<Rest, Min, [unknown, ...Iteration]>
|
|
979
|
-
] : T extends Array<infer Item> ? [
|
|
980
|
-
Item,
|
|
981
|
-
...ArraySetRequired<T, Min, [unknown, ...Iteration]>
|
|
982
|
-
] : T extends ReadonlyArray<infer Item> ? readonly [
|
|
983
|
-
Item,
|
|
984
|
-
...ArraySetRequired<T, Min, [unknown, ...Iteration]>
|
|
985
|
-
] : never;
|
|
986
|
-
/**
|
|
987
|
-
* Checks if the given array has at least the defined number of elements. When
|
|
988
|
-
* the minimum used is a literal (e.g. `3`) the output is refined accordingly so
|
|
989
|
-
* that those indices are defined when accessing the array even when using
|
|
990
|
-
* typescript's 'noUncheckedIndexAccess'.
|
|
991
|
-
*
|
|
992
|
-
* @param data - The input array.
|
|
993
|
-
* @param minimum - The minimum number of elements the array must have.
|
|
994
|
-
* @returns True if the array's length is *at least* `minimum`. When `minimum`
|
|
995
|
-
* is a literal value, the output is narrowed to ensure the first items are
|
|
996
|
-
* guaranteed.
|
|
997
|
-
* @signature
|
|
998
|
-
* R.hasAtLeast(data, minimum)
|
|
999
|
-
* @example
|
|
1000
|
-
* R.hasAtLeast([], 4); // => false
|
|
1001
|
-
*
|
|
1002
|
-
* const data: number[] = [1,2,3,4];
|
|
1003
|
-
* R.hasAtLeast(data, 1); // => true
|
|
1004
|
-
* data[0]; // 1, with type `number`
|
|
1005
|
-
* @dataFirst
|
|
1006
|
-
* @category Array
|
|
1007
|
-
*/
|
|
1008
|
-
declare function hasAtLeast<T extends IterableContainer, N extends number>(data: IterableContainer | T, minimum: IsNumericLiteral<N> extends true ? N : never): data is ArraySetRequired<T, N>;
|
|
1009
|
-
declare function hasAtLeast(data: IterableContainer, minimum: number): boolean;
|
|
1010
|
-
/**
|
|
1011
|
-
* Checks if the given array has at least the defined number of elements. When
|
|
1012
|
-
* the minimum used is a literal (e.g. `3`) the output is refined accordingly so
|
|
1013
|
-
* that those indices are defined when accessing the array even when using
|
|
1014
|
-
* typescript's 'noUncheckedIndexAccess'.
|
|
1015
|
-
*
|
|
1016
|
-
* @param minimum - The minimum number of elements the array must have.
|
|
1017
|
-
* @returns True if the array's length is *at least* `minimum`. When `minimum`
|
|
1018
|
-
* is a literal value, the output is narrowed to ensure the first items are
|
|
1019
|
-
* guaranteed.
|
|
1020
|
-
* @signature
|
|
1021
|
-
* R.hasAtLeast(minimum)(data)
|
|
1022
|
-
* @example
|
|
1023
|
-
* R.pipe([], R.hasAtLeast(4)); // => false
|
|
1024
|
-
*
|
|
1025
|
-
* const data = [[1,2], [3], [4,5]];
|
|
1026
|
-
* R.pipe(
|
|
1027
|
-
* data,
|
|
1028
|
-
* R.filter(R.hasAtLeast(2)),
|
|
1029
|
-
* R.map(([, second]) => second),
|
|
1030
|
-
* ); // => [2,5], with type `number[]`
|
|
1031
|
-
* @dataLast
|
|
1032
|
-
* @category Array
|
|
1033
|
-
*/
|
|
1034
|
-
declare function hasAtLeast<N extends number>(minimum: IsNumericLiteral<N> extends true ? N : never): <T extends IterableContainer>(data: IterableContainer | T) => data is ArraySetRequired<T, N>;
|
|
1035
|
-
declare function hasAtLeast(minimum: number): (data: IterableContainer) => boolean;
|
|
1036
|
-
|
|
1037
|
-
declare function isString(value: unknown): value is string;
|
|
1038
|
-
declare function isNonEmptyArray<A>(arr: ArrayLike<A> | undefined): arr is NonEmptyArray<A>;
|
|
1039
|
-
|
|
1040
|
-
declare function delay(): Promise<string>;
|
|
1041
|
-
declare function delay(ms: number): Promise<string>;
|
|
1042
|
-
declare function delay(randomFrom: number, randomTo: number): Promise<string>;
|
|
1043
|
-
|
|
1044
|
-
/**
|
|
1045
|
-
* Compares two relations hierarchically.
|
|
1046
|
-
* From the most general (implicit) to the most specific.
|
|
1047
|
-
*/
|
|
1048
|
-
declare const compareRelations: <T extends {
|
|
1049
|
-
source: string;
|
|
1050
|
-
target: string;
|
|
1051
|
-
}>(a: T, b: T) => 0 | 1 | -1;
|
|
1052
|
-
|
|
1053
|
-
export { type AnyTypes, type AnyTypesNested, AutoLayoutDirection, BorderStyle, Builder, type BuilderSpecification, Color, ComputedEdge, ComputedLikeC4Model, ComputedNode, ComputedView, CustomElementExpr, CustomRelationExpr, DiagramEdge, DiagramNode, DiagramView, EdgeId$1 as EdgeId, Element, ElementColors, ElementKind, ElementKindSpecification, ElementShape, type Expression, Fqn$1 as Fqn, HexColorLiteral, LayoutedLikeC4Model, LikeC4DiagramModel, LikeC4Model, LikeC4View, LikeC4ViewModel, type ModelBuilder, type ModelHelpers, NodeId, NonEmptyArray, ParsedLikeC4Model, Relation, RelationID$1 as RelationID, RelationshipArrowType, RelationshipColors, RelationshipKind, RelationshipKindSpecification, RelationshipLineType, Tag, ThemeColorValues, Types, type TypesNested, type ViewBuilder, type ViewHelpers, ViewID$1 as ViewID, ViewRuleStyle, type ViewsBuilder, ancestorsFqn, commonAncestor, commonHead, compareByFqnHierarchically, compareFqnHierarchically, compareNatural, compareRelations, computeColorValues, defaultTheme, delay, hasAtLeast, invariant, isAncestor, isDescendantOf, isNonEmptyArray, isSameHierarchy, isString, nameFromFqn, nonNullable, nonexhaustive, notDescendantOf, parentFqn, parentFqnPredicate, sortByFqnHierarchically, sortNaturalByFqn };
|
|
144
|
+
export { ElementColors, HexColorLiteral, LikeC4Theme, RelationshipColors, ThemeColorValues, computeColorValues, defaultTheme, invariant, nonNullable, nonexhaustive };
|