@likec4/core 1.30.0 → 1.32.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/README.md +407 -5
- package/dist/builder/index.d.mts +221 -42
- package/dist/builder/index.mjs +118 -65
- package/dist/compute-view/index.d.mts +23 -7
- package/dist/compute-view/index.mjs +11 -6
- package/dist/compute-view/relationships-view/index.d.mts +9 -7
- package/dist/compute-view/relationships-view/index.mjs +3 -2
- package/dist/index.d.mts +10 -14
- package/dist/index.mjs +10 -6
- package/dist/model/index.d.mts +173 -19
- package/dist/model/index.mjs +6 -1
- package/dist/shared/core.BaYE_r29.d.mts +258 -0
- package/dist/shared/core.Bk7wEZFG.mjs +276 -0
- package/dist/shared/core.BrCnZFTn.mjs +32 -0
- package/dist/shared/core.BuO4ncfY.d.mts +146 -0
- package/dist/shared/{core.CAcZ6_cP.mjs → core.CBpKAlhj.mjs} +1742 -4128
- package/dist/shared/core.CCWXGc6G.d.mts +920 -0
- package/dist/shared/core.CUYDgv2-.mjs +214 -0
- package/dist/shared/{core.Cu-UdkSl.mjs → core.CpXlRyE5.mjs} +7 -494
- package/dist/shared/{core.C-YXI-43.mjs → core.Cy9smucx.mjs} +3 -1
- package/dist/shared/core.CywrQs86.d.mts +31 -0
- package/dist/shared/core.DoK86JEe.mjs +518 -0
- package/dist/shared/core.Dpq3P3YJ.d.mts +1265 -0
- package/dist/shared/{core.D2830qgg.d.mts → core.Pf5I9o0e.d.mts} +1 -1
- package/dist/shared/core.cbA9VZ02.mjs +2681 -0
- package/dist/shared/{core.CQXU9DF7.mjs → core.rmvsy0n3.mjs} +23 -32
- package/dist/types/aux.d.mts +3 -0
- package/dist/types/aux.mjs +1 -0
- package/dist/types/index.d.mts +7 -45
- package/dist/types/index.mjs +130 -3
- package/dist/utils/index.d.mts +221 -53
- package/dist/utils/index.mjs +14 -10
- package/package.json +19 -10
- package/src/builder/Builder.deploymentModel.ts +82 -18
- package/src/builder/Builder.element.ts +40 -20
- package/src/builder/Builder.model.ts +66 -17
- package/src/builder/Builder.ts +168 -76
- package/src/builder/Builder.view-common.ts +35 -17
- package/src/builder/Builder.view-deployment.ts +25 -25
- package/src/builder/Builder.view-element.ts +13 -12
- package/src/builder/Builder.views.ts +12 -7
- package/src/builder/__snapshots__/Builder-style1.spec.ts.snap +62 -34
- package/src/builder/__snapshots__/Builder-style2.compute-model.json5 +319 -0
- package/src/builder/__snapshots__/Builder-style2.spec.ts.snap +45 -24
- package/src/builder/_types.ts +34 -27
- package/src/compute-view/compute-view.ts +31 -34
- package/src/compute-view/deployment-view/__test__/TestHelper.ts +27 -14
- package/src/compute-view/deployment-view/__test__/fixture.ts +15 -13
- package/src/compute-view/deployment-view/_types.ts +10 -10
- package/src/compute-view/deployment-view/clean-connections.ts +5 -7
- package/src/compute-view/deployment-view/compute.ts +16 -13
- package/src/compute-view/deployment-view/memory/memory.ts +5 -6
- package/src/compute-view/deployment-view/predicates/deploymentRefs.ts +4 -5
- package/src/compute-view/deployment-view/predicates/relation-direct.ts +25 -50
- package/src/compute-view/deployment-view/predicates/relation-in-out.ts +5 -7
- package/src/compute-view/deployment-view/predicates/relation-incoming.ts +7 -11
- package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +7 -10
- package/src/compute-view/deployment-view/predicates/utils.ts +37 -31
- package/src/compute-view/deployment-view/predicates/wildcard.ts +3 -2
- package/src/compute-view/deployment-view/stages/stage-final.ts +2 -2
- package/src/compute-view/deployment-view/stages/stage-include.ts +1 -1
- package/src/compute-view/deployment-view/utils.ts +79 -72
- package/src/compute-view/dynamic-view/__test__/fixture.ts +20 -11
- package/src/compute-view/dynamic-view/compute.ts +60 -53
- package/src/compute-view/element-view/__test__/TestHelper.ts +53 -29
- package/src/compute-view/element-view/__test__/__snapshots__/legacy.spec.ts.snap +26 -26
- package/src/compute-view/element-view/__test__/fixture.ts +134 -83
- package/src/compute-view/element-view/_types.ts +14 -19
- package/src/compute-view/element-view/clean-connections.ts +12 -8
- package/src/compute-view/element-view/compute.ts +61 -51
- package/src/compute-view/element-view/memory/NodeGroup.ts +8 -9
- package/src/compute-view/element-view/memory/memory.ts +22 -22
- package/src/compute-view/element-view/memory/stage-include.ts +5 -3
- package/src/compute-view/element-view/predicates/_utils.ts +18 -14
- package/src/compute-view/element-view/predicates/element-expand.ts +4 -5
- package/src/compute-view/element-view/predicates/element-kind-tag.ts +3 -4
- package/src/compute-view/element-view/predicates/element-ref.ts +3 -4
- package/src/compute-view/element-view/predicates/relation-direct.ts +16 -12
- package/src/compute-view/element-view/predicates/relation-in-out.ts +7 -8
- package/src/compute-view/element-view/predicates/relation-in.ts +19 -26
- package/src/compute-view/element-view/predicates/relation-out.ts +20 -21
- package/src/compute-view/element-view/predicates/wildcard.ts +3 -3
- package/src/compute-view/element-view/utils.ts +25 -23
- package/src/compute-view/index.ts +1 -1
- package/src/compute-view/memory/AbstractStageExclude.ts +3 -4
- package/src/compute-view/memory/AbstractStageInclude.ts +1 -1
- package/src/compute-view/memory/_types.ts +3 -2
- package/src/compute-view/relationships-view/_types.ts +3 -4
- package/src/compute-view/relationships-view/compute.ts +8 -11
- package/src/compute-view/relationships-view/layout.ts +6 -6
- package/src/compute-view/relationships-view/utils.ts +4 -4
- package/src/compute-view/utils/ancestorsOfNode.ts +7 -7
- package/src/compute-view/utils/applyCustomElementProperties.ts +16 -8
- package/src/compute-view/utils/applyCustomRelationProperties.ts +19 -9
- package/src/compute-view/utils/applyViewRuleStyles.ts +18 -10
- package/src/compute-view/utils/buildComputedNodes.ts +40 -40
- package/src/compute-view/utils/buildElementNotations.ts +14 -14
- package/src/compute-view/utils/elementExpressionToPredicate.ts +14 -15
- package/src/compute-view/utils/link-nodes-with-edges.ts +6 -4
- package/src/compute-view/utils/merge-props-from-relationships.ts +52 -20
- package/src/compute-view/utils/relationExpressionToPredicates.ts +19 -19
- package/src/compute-view/utils/resolve-extended-views.ts +8 -7
- package/src/compute-view/utils/resolve-global-rules.ts +31 -26
- package/src/compute-view/utils/topological-sort.ts +14 -14
- package/src/compute-view/utils/view-hash.ts +2 -2
- package/src/compute-view/utils/with-readable-edges.ts +9 -5
- package/src/index.ts +0 -32
- package/src/model/DeploymentElementModel.ts +182 -137
- package/src/model/DeploymentModel.ts +88 -65
- package/src/model/ElementModel.ts +92 -72
- package/src/model/LikeC4Model.ts +430 -241
- package/src/model/RelationModel.ts +69 -26
- package/src/model/__test__/fixture.ts +50 -36
- package/src/model/connection/Connection.ts +2 -2
- package/src/model/connection/deployment/DeploymentConnectionModel.ts +21 -24
- package/src/model/connection/deployment/find.ts +1 -1
- package/src/model/connection/model/ConnectionModel.ts +21 -20
- package/src/model/connection/model/find.ts +7 -7
- package/src/model/connection/ops.ts +6 -6
- package/src/model/guards.ts +66 -14
- package/src/model/index.ts +20 -7
- package/src/model/types.ts +41 -97
- package/src/model/view/EdgeModel.ts +47 -41
- package/src/model/view/LikeC4ViewModel.ts +130 -80
- package/src/model/view/NodeModel.ts +102 -96
- package/src/theme/element.ts +1 -1
- package/src/theme/index.ts +9 -9
- package/src/theme/relationships.ts +1 -1
- package/src/types/_common.ts +21 -15
- package/src/types/aux.ts +285 -0
- package/src/types/const.ts +34 -0
- package/src/types/expression-model.ts +292 -0
- package/src/types/expression.ts +311 -0
- package/src/types/fqnRef.ts +88 -0
- package/src/types/geometry.ts +131 -0
- package/src/types/global.ts +10 -8
- package/src/types/index.ts +39 -201
- package/src/types/model-data.ts +52 -84
- package/src/types/model-deployment.ts +87 -0
- package/src/types/model-dump.ts +72 -0
- package/src/types/model-logical.ts +111 -0
- package/src/types/model-spec.ts +81 -0
- package/src/types/operators.ts +51 -52
- package/src/types/scalar.ts +114 -0
- package/src/types/styles.ts +123 -0
- package/src/types/view-changes.ts +4 -5
- package/src/types/view-common.ts +157 -0
- package/src/types/view-computed.ts +113 -0
- package/src/types/view-layouted.ts +82 -0
- package/src/types/view-parsed.deployment.ts +40 -0
- package/src/types/view-parsed.dynamic.ts +78 -0
- package/src/types/view-parsed.element.ts +65 -0
- package/src/types/view.ts +122 -542
- package/src/utils/compare-natural.ts +43 -1
- package/src/utils/getOrCreate.ts +0 -34
- package/src/utils/index.ts +7 -12
- package/src/utils/iterable/filter.ts +1 -1
- package/src/utils/iterable/find.ts +3 -1
- package/src/utils/iterable/head.ts +22 -0
- package/src/utils/iterable/index.ts +1 -0
- package/src/utils/iterable/map.ts +1 -1
- package/src/utils/iterable/reduce.ts +1 -1
- package/src/utils/iterable/some.ts +1 -1
- package/src/utils/memoize-prop.ts +30 -0
- package/src/utils/object-hash.ts +1 -1
- package/src/utils/relations.ts +14 -11
- package/src/utils/string-hash.ts +1 -1
- package/dist/shared/core.CZR9J1Qx.d.mts +0 -146
- package/dist/shared/core.CiFKryGW.d.mts +0 -745
- package/dist/shared/core.DJvmfnEi.d.mts +0 -1153
- package/dist/shared/core.DgfwjBtu.mjs +0 -495
- package/dist/shared/core.SjLhMA7a.d.mts +0 -62
- package/src/builder/__snapshots__/Builder.spec.ts.snap +0 -374
- package/src/compute-view/element-view/predicates.ts +0 -520
- package/src/compute-view/utils/uniqueTags.ts +0 -21
- package/src/types/deployments.ts +0 -170
- package/src/types/element.ts +0 -109
- package/src/types/expression-v2-model.ts +0 -314
- package/src/types/expression-v2.ts +0 -392
- package/src/types/overview-graph.ts +0 -43
- package/src/types/relation.ts +0 -61
- package/src/types/scalars.ts +0 -39
- package/src/types/theme.ts +0 -82
- package/src/types/view-notation.ts +0 -9
- package/src/utils/graphlib.ts +0 -10
- /package/src/{errors/index.ts → utils/invariant.ts} +0 -0
package/dist/builder/index.d.mts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { LastArrayElement, Split, Simplify, Writable, IfNever, TupleToUnion, Tagged
|
|
2
|
-
import { L as LikeC4Model } from '../shared/core.
|
|
3
|
-
import { D as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { LastArrayElement, Split, Simplify, IsLiteral, Writable, IfNever, TupleToUnion, Tagged } from 'type-fest';
|
|
2
|
+
import { L as LikeC4Model } from '../shared/core.CCWXGc6G.mjs';
|
|
3
|
+
import { D as DeploymentFqn, F as Fqn, d as NonEmptyArray, K as KeysOf } from '../shared/core.BuO4ncfY.mjs';
|
|
4
|
+
import { q as DeploymentElement, u as DeploymentRelationship, O as Element, Z as ModelRelation, a8 as Participant, M as ModelFqnExpr, a as ModelRelationExpr, aZ as AnyViewRuleStyle, b2 as AutoLayoutDirection, E as Expression, aF as ParsedView, bt as ParsedDeploymentView, bJ as ParsedElementView, k as ParsedLikeC4ModelData, ar as ElementShape, ay as ThemeColor, ap as BorderStyle, an as ShapeSize, al as SpacingSize, am as TextSize, aw as RelationshipArrowType, av as RelationshipLineType, _ as ElementSpecification$1, a1 as RelationshipSpecification, $ as TagSpecification } from '../shared/core.Dpq3P3YJ.mjs';
|
|
5
|
+
import { b as Aux, S as SpecAux, A as Any } from '../shared/core.BaYE_r29.mjs';
|
|
6
|
+
import '../shared/core.CywrQs86.mjs';
|
|
6
7
|
|
|
7
8
|
type ToNested$1<T, Id extends string> = T extends TypesNested<infer P, any, any, any, any, any, any, any, infer F> ? TypesNested<`${P}.${Id}`, T['ElementKind'], T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey'], T['DeploymentKind'], `${P}.${Id}` | F> : T extends AnyTypes ? TypesNested<Id, T['ElementKind'], T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey'], T['DeploymentKind'], Id | T['DeploymentFqn']> : never;
|
|
8
9
|
type FromNested$1<T extends AnyTypes, N> = N extends TypesNested<any, any, any, any, any, any, any, any, infer F> ? T extends TypesNested<infer P, any, any, any, any, any, any, any, any> ? TypesNested<P, T['ElementKind'], T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey'], T['DeploymentKind'], F> : T extends AnyTypes ? Types<T['ElementKind'], T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey'], T['DeploymentKind'], F> : never : never;
|
|
@@ -26,11 +27,11 @@ interface AddDeploymentNode<Id extends string> {
|
|
|
26
27
|
|
|
27
28
|
interface DeploymentModelBuilder<T extends AnyTypes> extends Builder<T> {
|
|
28
29
|
__addDeployment(node: DeploymentElement): Builder<T>;
|
|
29
|
-
__addDeploymentRelation(rel: Omit<
|
|
30
|
+
__addDeploymentRelation(rel: Omit<DeploymentRelationship, 'id'>): Builder<T>;
|
|
30
31
|
/**
|
|
31
32
|
* Create a fully qualified name from an id (for nested models)
|
|
32
33
|
*/
|
|
33
|
-
|
|
34
|
+
__deploymentFqn(id: string): DeploymentFqn;
|
|
34
35
|
}
|
|
35
36
|
declare function deployment<A extends AnyTypes>(): (input: Builder<A>) => Builder<A>;
|
|
36
37
|
declare function deployment<A extends AnyTypes, B extends AnyTypes>(op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>): (input: Builder<A>) => Builder<B>;
|
|
@@ -50,14 +51,80 @@ declare function deployment<A extends AnyTypes, B extends AnyTypes, C extends An
|
|
|
50
51
|
declare function deployment<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: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>, op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>, op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>, op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>, op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>, op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>, op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>, op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>, op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>, op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>, op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>, op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>, op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N>, op14: (input: DeploymentModelBuilder<N>) => DeploymentModelBuilder<O>, op15: (input: DeploymentModelBuilder<O>) => DeploymentModelBuilder<P>): (input: Builder<A>) => Builder<P>;
|
|
51
52
|
type NameFromFqn<FQN extends string> = LastArrayElement<Split<FQN, '.'>>;
|
|
52
53
|
type AddDeployedInstance<Props = unknown> = {
|
|
54
|
+
/**
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* builder.deployment(({ node, instanceOf }, _) =>
|
|
58
|
+
* _(
|
|
59
|
+
* node('node1').with(
|
|
60
|
+
* // Only FQN of the element
|
|
61
|
+
* instanceOf('cloud.backend'),
|
|
62
|
+
* // ID, FQN of the element and additional props
|
|
63
|
+
* instanceOf('b2', 'cloud.backend', {
|
|
64
|
+
* tags: ['tag2'],
|
|
65
|
+
* }),
|
|
66
|
+
* ),
|
|
67
|
+
* )
|
|
68
|
+
* )
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
53
71
|
<const T extends AnyTypes, Id extends string & T['Fqn']>(target: Id): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<Types.AddDeploymentFqn<T, NameFromFqn<Id>>>;
|
|
72
|
+
/**
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* builder.deployment(({ node, instanceOf }, _) =>
|
|
76
|
+
* _(
|
|
77
|
+
* node('node1').with(
|
|
78
|
+
* // Only FQN of the element
|
|
79
|
+
* instanceOf('cloud.backend'),
|
|
80
|
+
* // ID, FQN of the element and additional props
|
|
81
|
+
* instanceOf('b2', 'cloud.backend', {
|
|
82
|
+
* tags: ['tag2'],
|
|
83
|
+
* }),
|
|
84
|
+
* ),
|
|
85
|
+
* )
|
|
86
|
+
* )
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
54
89
|
<const Id extends string, T extends AnyTypes, Target extends string & T['Fqn']>(id: ValidId<Id>, target: Target, titleOrProps?: string | Props | undefined): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<Types.AddDeploymentFqn<T, Id>>;
|
|
55
90
|
};
|
|
56
|
-
type AddDeploymentNodeHelper<T = unknown> =
|
|
91
|
+
type AddDeploymentNodeHelper<T = unknown> =
|
|
92
|
+
/**
|
|
93
|
+
* Adds deployment model
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* builder.deployment(({ node }, _) =>
|
|
97
|
+
* _(
|
|
98
|
+
* node('node1').with(
|
|
99
|
+
* node('child1')
|
|
100
|
+
* ),
|
|
101
|
+
* )
|
|
102
|
+
* )
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* builder.deployment((_,d) =>
|
|
106
|
+
* d(
|
|
107
|
+
* _.node('node1').with(
|
|
108
|
+
* _.node('child1')
|
|
109
|
+
* ),
|
|
110
|
+
* )
|
|
111
|
+
* )
|
|
112
|
+
*/
|
|
113
|
+
<const Id extends string>(id: ValidId<Id>, titleOrProps?: string | T) => AddDeploymentNode<Id>;
|
|
57
114
|
type AddDeploymentNodeHelpers<T extends AnyTypes> = T extends Types<any, any, any, any, any, any, infer Kinds extends string, any> ? {
|
|
58
115
|
[Kind in Kinds]: AddDeploymentNodeHelper<T['NewDeploymentNodeProps']>;
|
|
59
116
|
} : Invalid<'No Deployment Kinds'>;
|
|
60
|
-
type AddDeploymentRelation<Props = unknown> =
|
|
117
|
+
type AddDeploymentRelation<Props = unknown> =
|
|
118
|
+
/**
|
|
119
|
+
* @example
|
|
120
|
+
* ```ts
|
|
121
|
+
* rel('source.deployment', 'target.deployment', {
|
|
122
|
+
* title: 'title',
|
|
123
|
+
* tags: ['tag1'],
|
|
124
|
+
* })
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
<T extends AnyTypes, Source extends string & T['DeploymentFqn'], Target extends string & T['DeploymentFqn']>(source: Source, target: Target, titleOrProps?: string | Props) => (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<T>;
|
|
61
128
|
type DeloymentModelHelpers<T extends AnyTypes> = AddDeploymentNodeHelpers<T> & {
|
|
62
129
|
instanceOf: AddDeployedInstance<T['NewDeploymentNodeProps']>;
|
|
63
130
|
rel: AddDeploymentRelation<T['NewRelationshipProps']>;
|
|
@@ -73,8 +140,28 @@ type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, infer F
|
|
|
73
140
|
* Chainable builder to create element
|
|
74
141
|
*/
|
|
75
142
|
interface AddElement<Id extends string> {
|
|
143
|
+
/**
|
|
144
|
+
* @example
|
|
145
|
+
* ```ts
|
|
146
|
+
* el('a')
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
76
149
|
<T extends AnyTypes>(builder: ModelBuilder<T>): ModelBuilder<Types.AddFqn<T, Id>>;
|
|
150
|
+
/**
|
|
151
|
+
* @example
|
|
152
|
+
* ```ts
|
|
153
|
+
* el('a').with()
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
77
156
|
with<T extends AnyTypes>(): (builder: ModelBuilder<T>) => ModelBuilder<Types.AddFqn<T, Id>>;
|
|
157
|
+
/**
|
|
158
|
+
* @example
|
|
159
|
+
* ```ts
|
|
160
|
+
* el('a').with(
|
|
161
|
+
* relTo('b')
|
|
162
|
+
* )
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
78
165
|
with<T extends AnyTypes, A extends AnyTypes>(op1: (input: ModelBuilder<ToNested<T, Id>>) => ModelBuilder<A>): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, A>>;
|
|
79
166
|
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>>;
|
|
80
167
|
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>>;
|
|
@@ -114,9 +201,58 @@ declare function model<A extends AnyTypes, B extends AnyTypes, C extends AnyType
|
|
|
114
201
|
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>;
|
|
115
202
|
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, Q 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>, op16: (input: ModelBuilder<P>) => ModelBuilder<Q>): (input: Builder<A>) => Builder<Q>;
|
|
116
203
|
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, Q extends AnyTypes, R 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>, op16: (input: ModelBuilder<P>) => ModelBuilder<Q>, op17: (input: ModelBuilder<Q>) => ModelBuilder<R>): (input: Builder<A>) => Builder<R>;
|
|
117
|
-
type RelationshipHelper<Props = unknown> =
|
|
118
|
-
|
|
119
|
-
|
|
204
|
+
type RelationshipHelper<Props = unknown> =
|
|
205
|
+
/**
|
|
206
|
+
* @example
|
|
207
|
+
* ```ts
|
|
208
|
+
* rel('a', 'b')
|
|
209
|
+
* ```
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```ts
|
|
213
|
+
* rel('a', 'b', {
|
|
214
|
+
* title: 'title',
|
|
215
|
+
* tags: ['tag1'],
|
|
216
|
+
* })
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
<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>;
|
|
220
|
+
type NestedRelationshipHelper<Props = unknown> =
|
|
221
|
+
/**
|
|
222
|
+
* @example
|
|
223
|
+
* ```ts
|
|
224
|
+
* el('a').with(
|
|
225
|
+
* relTo('b')
|
|
226
|
+
* )
|
|
227
|
+
* ```
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* ```ts
|
|
231
|
+
* el('a').with(
|
|
232
|
+
* relTo('b', {
|
|
233
|
+
* title: 'title',
|
|
234
|
+
* tags: ['tag1'],
|
|
235
|
+
* })
|
|
236
|
+
* )
|
|
237
|
+
* ```
|
|
238
|
+
*/
|
|
239
|
+
<T extends AnyTypesNested, To extends string & T['Fqn']>(to: To, titleOrProps?: string | Props) => (builder: ModelBuilder<T>) => ModelBuilder<T>;
|
|
240
|
+
type AddElementHelper<T = unknown> =
|
|
241
|
+
/**
|
|
242
|
+
* @example
|
|
243
|
+
* ```ts
|
|
244
|
+
* el('some.id')
|
|
245
|
+
* ```
|
|
246
|
+
*
|
|
247
|
+
* @example
|
|
248
|
+
* ```ts
|
|
249
|
+
* el('some.id', {
|
|
250
|
+
* title: 'title',
|
|
251
|
+
* tags: ['tag1'],
|
|
252
|
+
* })
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
255
|
+
<const Id extends string>(id: ValidId<Id>, titleOrProps?: string | T) => AddElement<Id>;
|
|
120
256
|
type AddElementHelpers<T extends AnyTypes> = T extends Types<infer Kinds extends string, any, any, any, any, any, any, any> ? {
|
|
121
257
|
[Kind in Kinds]: AddElementHelper<T['NewElementProps']>;
|
|
122
258
|
} : Invalid<'No Element Kinds'>;
|
|
@@ -137,7 +273,7 @@ interface LikeC4ViewBuilder<Types extends AnyTypes, Fqn extends string, TypedExp
|
|
|
137
273
|
$expr(expr: Expr | TypedExpr): TypedExpr;
|
|
138
274
|
include(...exprs: Expr[]): this;
|
|
139
275
|
exclude(...exprs: Expr[]): this;
|
|
140
|
-
style(rule:
|
|
276
|
+
style(rule: AnyViewRuleStyle<any>): this;
|
|
141
277
|
autoLayout(layout: AutoLayoutDirection): this;
|
|
142
278
|
}
|
|
143
279
|
declare namespace ViewPredicate {
|
|
@@ -166,14 +302,29 @@ declare namespace ViewPredicate {
|
|
|
166
302
|
};
|
|
167
303
|
type Custom<Types extends AnyTypes> = {
|
|
168
304
|
where?: ViewPredicate.WhereOperator<Types>;
|
|
169
|
-
with?: Simplify<Omit<
|
|
305
|
+
with?: Simplify<Omit<ModelFqnExpr.Custom['custom'] & ModelRelationExpr.Custom['customRelation'], 'expr' | 'relation' | 'navigateTo'> & {
|
|
170
306
|
navigateTo?: Types['ViewId'];
|
|
171
307
|
}>;
|
|
172
308
|
};
|
|
173
309
|
}
|
|
174
310
|
declare function $include<B extends LikeC4ViewBuilder<AnyTypes, any, any>>(...args: [B['Expr']] | [B['TypedExpr']] | [B['Expr'], ViewPredicate.Custom<B['Types']>]): (b: B) => B;
|
|
175
311
|
declare function $exclude<B extends LikeC4ViewBuilder<AnyTypes, any, any>>(...args: [B['Expr']] | [B['TypedExpr']] | [B['Expr'], ViewPredicate.Custom<B['Types']>] | [B['TypedExpr'], ViewPredicate.Custom<B['Types']>]): (b: B) => B;
|
|
176
|
-
|
|
312
|
+
/**
|
|
313
|
+
* @example
|
|
314
|
+
* builder.views(({ view, $style }, _) =>
|
|
315
|
+
* _(
|
|
316
|
+
* view('view1').with(
|
|
317
|
+
* $style('*', {
|
|
318
|
+
* color: 'red',
|
|
319
|
+
* }),
|
|
320
|
+
* $style(['bob', 'alice'], {
|
|
321
|
+
* color: 'blue',
|
|
322
|
+
* }),
|
|
323
|
+
* ),
|
|
324
|
+
* )
|
|
325
|
+
* )
|
|
326
|
+
*/
|
|
327
|
+
declare function $style<B extends LikeC4ViewBuilder<AnyTypes, any, any>>(element: B['ElementExpr'] | B['TypedExpr'] | NonEmptyArray<B['ElementExpr']>, { notation, ...style }: AnyViewRuleStyle<any>['style'] & {
|
|
177
328
|
notation?: string;
|
|
178
329
|
}): (b: B) => B;
|
|
179
330
|
declare function $autoLayout<B extends LikeC4ViewBuilder<AnyTypes, any, any>>(layout: AutoLayoutDirection): (b: B) => B;
|
|
@@ -199,9 +350,9 @@ interface AddDeploymentViewHelper {
|
|
|
199
350
|
};
|
|
200
351
|
<const Id extends string, T extends AnyTypes>(id: Id, propsOrTitle: T['NewViewProps'] | string, bulder: (b: DeploymentViewBuilder<T>) => DeploymentViewBuilder<T>): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>;
|
|
201
352
|
}
|
|
202
|
-
declare function $deploymentExpr<T extends AnyTypes>(expr: ViewPredicate.DeploymentExpression<T> |
|
|
353
|
+
declare function $deploymentExpr<T extends AnyTypes>(expr: ViewPredicate.DeploymentExpression<T> | Expression): Types.ToExpression<T>;
|
|
203
354
|
|
|
204
|
-
interface ElementViewBuilder<T extends AnyTypes> extends LikeC4ViewBuilder<T, T['Fqn'], Types.
|
|
355
|
+
interface ElementViewBuilder<T extends AnyTypes> extends LikeC4ViewBuilder<T, T['Fqn'], Expression<Types.ToAux<T>>> {
|
|
205
356
|
}
|
|
206
357
|
type ElementViewRulesBuilder<T extends AnyTypes> = (b: ElementViewBuilder<T>) => ElementViewBuilder<T>;
|
|
207
358
|
interface AddViewRules<Id extends string> {
|
|
@@ -221,7 +372,7 @@ interface AddViewHelper {
|
|
|
221
372
|
(builder: ViewsBuilder<T>): ViewsBuilder<Types.AddView<T, Id>>;
|
|
222
373
|
};
|
|
223
374
|
}
|
|
224
|
-
type ValidFqn<T extends AnyTypes> =
|
|
375
|
+
type ValidFqn<T extends AnyTypes> = IsLiteral<T['Fqn']> extends true ? T['Fqn'] : Invalid<'Fqn must be a literal'>;
|
|
225
376
|
interface AddViewOfHelper {
|
|
226
377
|
<const Id extends string, T extends AnyTypes>(id: Id, of: ValidFqn<T>): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>;
|
|
227
378
|
<const Id extends string, T extends AnyTypes>(id: Id, of: ValidFqn<T>, propsOrTitle: T['NewViewProps'] | string | ElementViewRulesBuilder<T>): (builder: ViewsBuilder<T>) => ViewsBuilder<Types.AddView<T, Id>>;
|
|
@@ -238,10 +389,10 @@ interface TypedAddViewOfHelper<A extends AnyTypes> {
|
|
|
238
389
|
(builder: ViewsBuilder<T>): ViewsBuilder<Types.AddView<T, Id>>;
|
|
239
390
|
};
|
|
240
391
|
}
|
|
241
|
-
declare function $expr<
|
|
392
|
+
declare function $expr<T extends AnyTypes>(expr: ViewPredicate.Expression<T> | Expression): Expression<Types.ToAux<T>>;
|
|
242
393
|
|
|
243
394
|
interface ViewsBuilder<T extends AnyTypes> extends Builder<T> {
|
|
244
|
-
__addView(view:
|
|
395
|
+
__addView(view: ParsedView): Builder<T>;
|
|
245
396
|
}
|
|
246
397
|
declare function views<A extends AnyTypes>(): (input: Builder<A>) => Builder<A>;
|
|
247
398
|
declare function views<A extends AnyTypes, B extends AnyTypes>(op1: (input: ViewsBuilder<A>) => ViewsBuilder<B>): (input: Builder<A>) => Builder<B>;
|
|
@@ -274,8 +425,8 @@ type ViewsBuilderFunction<A extends AnyTypes, B extends AnyTypes> = (helpers: Si
|
|
|
274
425
|
viewOf: TypedAddViewOfHelper<A>;
|
|
275
426
|
_: ViewsHelpers['views'];
|
|
276
427
|
}>, add: ViewsHelpers['views']) => ((builder: ViewsBuilder<A>) => ViewsBuilder<B>) | ((builder: Builder<A>) => Builder<B>);
|
|
277
|
-
declare function mkViewBuilder(view: Writable<
|
|
278
|
-
declare function mkViewBuilder(view: Writable<
|
|
428
|
+
declare function mkViewBuilder(view: Writable<ParsedDeploymentView<any>>): DeploymentViewBuilder<AnyTypes>;
|
|
429
|
+
declare function mkViewBuilder(view: Writable<ParsedElementView<any>>): ElementViewBuilder<AnyTypes>;
|
|
279
430
|
|
|
280
431
|
interface BuilderMethods<T extends AnyTypes> {
|
|
281
432
|
with<A extends AnyTypes>(): Builder<A>;
|
|
@@ -341,10 +492,11 @@ interface Builder<T extends AnyTypes> extends BuilderMethods<T> {
|
|
|
341
492
|
* )
|
|
342
493
|
* )
|
|
343
494
|
*
|
|
495
|
+
* @example
|
|
344
496
|
* builder.deployment((_,d) =>
|
|
345
497
|
* d(
|
|
346
498
|
* _.node('node1'),
|
|
347
|
-
*
|
|
499
|
+
* _.node('node1.child1').with(
|
|
348
500
|
* _.instanceOf('model.element')
|
|
349
501
|
* )
|
|
350
502
|
* )
|
|
@@ -355,11 +507,34 @@ interface Builder<T extends AnyTypes> extends BuilderMethods<T> {
|
|
|
355
507
|
* Adds views
|
|
356
508
|
*
|
|
357
509
|
* @example
|
|
358
|
-
* builder.views(({ view, $include }, _) =>
|
|
510
|
+
* builder.views(({ view, viewOf, deploymentView, $include, $style, $rules }, _) =>
|
|
359
511
|
* _(
|
|
360
|
-
* view('
|
|
512
|
+
* view('view1').with(
|
|
513
|
+
* $include('a -> b'),
|
|
514
|
+
* ),
|
|
515
|
+
* view('view2', {
|
|
516
|
+
* title: 'View 2',
|
|
517
|
+
* }).with(
|
|
518
|
+
* $include('*')
|
|
519
|
+
* ),
|
|
520
|
+
* view(
|
|
521
|
+
* 'view3',
|
|
522
|
+
* {
|
|
523
|
+
* title: 'View 3',
|
|
524
|
+
* },
|
|
525
|
+
* $rules(
|
|
526
|
+
* $include('*'),
|
|
527
|
+
* $style(['*', 'alice'], {
|
|
528
|
+
* color: 'red',
|
|
529
|
+
* }),
|
|
530
|
+
* ),
|
|
531
|
+
* ),
|
|
532
|
+
* viewOf('viewOfA', 'a').with(
|
|
533
|
+
* $include('*')
|
|
534
|
+
* ),
|
|
535
|
+
* deploymentView('deploymentView1').with(
|
|
361
536
|
* $include('a -> b')
|
|
362
|
-
* )
|
|
537
|
+
* ),
|
|
363
538
|
* )
|
|
364
539
|
* )
|
|
365
540
|
*/
|
|
@@ -369,11 +544,11 @@ interface Builder<T extends AnyTypes> extends BuilderMethods<T> {
|
|
|
369
544
|
* Views are not computed or layouted
|
|
370
545
|
* {@link toLikeC4Model} should be used to get model with computed views
|
|
371
546
|
*/
|
|
372
|
-
build(): Types.
|
|
547
|
+
build(): ParsedLikeC4ModelData<Types.ToAux<T>>;
|
|
373
548
|
/**
|
|
374
|
-
* Returns LikeC4Model
|
|
549
|
+
* Returns Computed LikeC4Model
|
|
375
550
|
*/
|
|
376
|
-
toLikeC4Model(): Types.
|
|
551
|
+
toLikeC4Model(): LikeC4Model.Computed<Types.ToAux<T>>;
|
|
377
552
|
}
|
|
378
553
|
declare namespace Builder {
|
|
379
554
|
type Any = Builder<AnyTypes>;
|
|
@@ -386,18 +561,23 @@ declare namespace Builder {
|
|
|
386
561
|
function specification<const Spec extends BuilderSpecification>(spec: Spec): Builder<Types.FromSpecification<Spec>>;
|
|
387
562
|
}
|
|
388
563
|
|
|
564
|
+
type ElementSpecification = Omit<ElementSpecification$1, 'tags'> & {
|
|
565
|
+
tags?: string[];
|
|
566
|
+
};
|
|
389
567
|
type BuilderSpecification = {
|
|
390
568
|
elements: {
|
|
391
|
-
[kind: string]: Partial<
|
|
569
|
+
[kind: string]: Partial<ElementSpecification>;
|
|
392
570
|
};
|
|
393
571
|
relationships?: {
|
|
394
|
-
[kind: string]: Partial<
|
|
572
|
+
[kind: string]: Partial<RelationshipSpecification>;
|
|
395
573
|
};
|
|
396
574
|
deployments?: {
|
|
397
|
-
[kind: string]: Partial<
|
|
575
|
+
[kind: string]: Partial<ElementSpecification>;
|
|
576
|
+
};
|
|
577
|
+
tags?: {
|
|
578
|
+
[kind: string]: Partial<TagSpecification>;
|
|
398
579
|
};
|
|
399
|
-
|
|
400
|
-
metadataKeys?: [string, ...string[]];
|
|
580
|
+
metadataKeys?: string[];
|
|
401
581
|
};
|
|
402
582
|
type Metadata<MetadataKey extends string> = IfNever<MetadataKey, never, Record<MetadataKey, string>>;
|
|
403
583
|
type NewElementProps<Tag, Metadata> = {
|
|
@@ -408,7 +588,7 @@ type NewElementProps<Tag, Metadata> = {
|
|
|
408
588
|
metadata?: Metadata;
|
|
409
589
|
icon?: string;
|
|
410
590
|
shape?: ElementShape;
|
|
411
|
-
color?:
|
|
591
|
+
color?: ThemeColor;
|
|
412
592
|
links?: Array<string | {
|
|
413
593
|
title?: string;
|
|
414
594
|
url: string;
|
|
@@ -429,7 +609,7 @@ type NewDeploymentNodeProps<Tag, Metadata> = {
|
|
|
429
609
|
metadata?: Metadata;
|
|
430
610
|
icon?: string;
|
|
431
611
|
shape?: ElementShape;
|
|
432
|
-
color?:
|
|
612
|
+
color?: ThemeColor;
|
|
433
613
|
links?: NonEmptyArray<string | {
|
|
434
614
|
title?: string;
|
|
435
615
|
url: string;
|
|
@@ -461,7 +641,7 @@ type NewRelationProps<Kind, Tag, Metadata> = {
|
|
|
461
641
|
head?: RelationshipArrowType;
|
|
462
642
|
tail?: RelationshipArrowType;
|
|
463
643
|
line?: RelationshipLineType;
|
|
464
|
-
color?:
|
|
644
|
+
color?: ThemeColor;
|
|
465
645
|
links?: NonEmptyArray<string | {
|
|
466
646
|
title?: string;
|
|
467
647
|
url: string;
|
|
@@ -469,7 +649,7 @@ type NewRelationProps<Kind, Tag, Metadata> = {
|
|
|
469
649
|
};
|
|
470
650
|
type Invalid<Message extends string> = Tagged<Message, 'Error'>;
|
|
471
651
|
type Warn<Id, Existing> = IsLiteral<Existing> extends true ? Id extends Existing ? Invalid<'Already exists'> : Id : Id;
|
|
472
|
-
type ValidId<Id> = Id extends `${number}${string}` ? Invalid<'Id must not start with number'> :
|
|
652
|
+
type ValidId<Id> = Id extends `${number}${string}` ? Invalid<'Id must not start with number'> : IsLiteral<Id> extends true ? Id : Invalid<'Id must be a literal'>;
|
|
473
653
|
/**
|
|
474
654
|
* When building nested objects
|
|
475
655
|
*/
|
|
@@ -497,13 +677,12 @@ interface Types<ElementKind extends string, Fqn extends string, ViewId extends s
|
|
|
497
677
|
NewDeploymentNodeProps: NewDeploymentNodeProps<Tag, Metadata<MetadataKey>>;
|
|
498
678
|
}
|
|
499
679
|
declare namespace Types {
|
|
500
|
-
type FromSpecification<Spec> = Spec extends BuilderSpecification ? Types<KeysOf<Spec['elements']>, never, never, KeysOf<Spec['relationships']>,
|
|
680
|
+
type FromSpecification<Spec> = Spec extends BuilderSpecification ? Types<KeysOf<Spec['elements']>, never, never, KeysOf<Spec['relationships']>, KeysOf<Spec['tags']>, TupleToUnion<Spec['metadataKeys']>, KeysOf<Spec['deployments']>, never> : never;
|
|
501
681
|
type AddFqn<T, Id extends string> = T extends TypesNested<infer P, any, any, any, any, any, any, any, any> ? TypesNested<P, T['ElementKind'], `${P}.${Id}` | T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey'], T['DeploymentKind'], T['DeploymentFqn']> : T extends AnyTypes ? Types<T['ElementKind'], Id | T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey'], T['DeploymentKind'], T['DeploymentFqn']> : never;
|
|
502
682
|
type AddDeploymentFqn<T, Id extends string> = T extends TypesNested<infer P, any, any, any, any, any, any, any, any> ? TypesNested<P, T['ElementKind'], T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey'], T['DeploymentKind'], `${P}.${Id}` | T['DeploymentFqn']> : T extends AnyTypes ? Types<T['ElementKind'], T['Fqn'], T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey'], T['DeploymentKind'], Id | T['DeploymentFqn']> : never;
|
|
503
683
|
type AddView<T, Id extends string> = T extends TypesNested<infer P, any, any, any, any, any, any, any, any> ? TypesNested<P, T['ElementKind'], T['Fqn'], Id | T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey'], T['DeploymentKind'], T['DeploymentFqn']> : T extends AnyTypes ? Types<T['ElementKind'], T['Fqn'], Id | T['ViewId'], T['RelationshipKind'], T['Tag'], T['MetadataKey'], T['DeploymentKind'], T['DeploymentFqn']> : never;
|
|
504
|
-
type
|
|
505
|
-
type
|
|
506
|
-
type ToExpression<T> = T extends AnyTypes ? ExpressionV2<T['DeploymentFqn'], T['Fqn']> : never;
|
|
684
|
+
type ToAux<T> = T extends AnyTypes ? Aux<'parsed', T['Fqn'], T['DeploymentFqn'], T['ViewId'], 'from-builder', SpecAux<T['ElementKind'], T['DeploymentKind'], T['RelationshipKind'], T['Tag'], T['MetadataKey']>> : Any;
|
|
685
|
+
type ToExpression<T> = T extends AnyTypes ? Expression<ToAux<T>> : never;
|
|
507
686
|
type From<B> = B extends Builder<infer T> ? B['Types'] extends AnyTypes ? T : AnyTypes : never;
|
|
508
687
|
type DeploymentRules<B> = DeploymentRulesBuilderOp<From<B>>;
|
|
509
688
|
}
|