@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
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
import type { LastArrayElement, Split } from 'type-fest'
|
|
2
|
+
import type { DeploymentElement, DeploymentRelation, Fqn } from '../types'
|
|
3
|
+
import type { AnyTypes, Invalid, Types, ValidId } from './_types'
|
|
4
|
+
import type { Builder } from './Builder'
|
|
5
|
+
import type { AddDeploymentNode } from './Builder.deployment'
|
|
6
|
+
|
|
7
|
+
export interface DeploymentModelBuilder<T extends AnyTypes> extends Builder<T> {
|
|
8
|
+
__addDeployment(node: DeploymentElement): Builder<T>
|
|
9
|
+
__addDeploymentRelation(rel: Omit<DeploymentRelation, 'id'>): Builder<T>
|
|
10
|
+
/**
|
|
11
|
+
* Create a fully qualified name from an id (for nested models)
|
|
12
|
+
*/
|
|
13
|
+
__fqn(id: string): Fqn
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function deployment<A extends AnyTypes>(): (input: Builder<A>) => Builder<A>
|
|
17
|
+
export function deployment<
|
|
18
|
+
A extends AnyTypes,
|
|
19
|
+
B extends AnyTypes,
|
|
20
|
+
>(
|
|
21
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
22
|
+
): (input: Builder<A>) => Builder<B>
|
|
23
|
+
export function deployment<
|
|
24
|
+
A extends AnyTypes,
|
|
25
|
+
B extends AnyTypes,
|
|
26
|
+
C extends AnyTypes,
|
|
27
|
+
>(
|
|
28
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
29
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
30
|
+
): (input: Builder<A>) => Builder<C>
|
|
31
|
+
export function deployment<
|
|
32
|
+
A extends AnyTypes,
|
|
33
|
+
B extends AnyTypes,
|
|
34
|
+
C extends AnyTypes,
|
|
35
|
+
D extends AnyTypes,
|
|
36
|
+
>(
|
|
37
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
38
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
39
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
40
|
+
): (input: Builder<A>) => Builder<D>
|
|
41
|
+
export function deployment<
|
|
42
|
+
A extends AnyTypes,
|
|
43
|
+
B extends AnyTypes,
|
|
44
|
+
C extends AnyTypes,
|
|
45
|
+
D extends AnyTypes,
|
|
46
|
+
E extends AnyTypes,
|
|
47
|
+
>(
|
|
48
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
49
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
50
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
51
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
52
|
+
): (input: Builder<A>) => Builder<E>
|
|
53
|
+
export function deployment<
|
|
54
|
+
A extends AnyTypes,
|
|
55
|
+
B extends AnyTypes,
|
|
56
|
+
C extends AnyTypes,
|
|
57
|
+
D extends AnyTypes,
|
|
58
|
+
E extends AnyTypes,
|
|
59
|
+
F extends AnyTypes,
|
|
60
|
+
>(
|
|
61
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
62
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
63
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
64
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
65
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
66
|
+
): (input: Builder<A>) => Builder<F>
|
|
67
|
+
export function deployment<
|
|
68
|
+
A extends AnyTypes,
|
|
69
|
+
B extends AnyTypes,
|
|
70
|
+
C extends AnyTypes,
|
|
71
|
+
D extends AnyTypes,
|
|
72
|
+
E extends AnyTypes,
|
|
73
|
+
F extends AnyTypes,
|
|
74
|
+
G extends AnyTypes,
|
|
75
|
+
>(
|
|
76
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
77
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
78
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
79
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
80
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
81
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
82
|
+
): (input: Builder<A>) => Builder<G>
|
|
83
|
+
export function deployment<
|
|
84
|
+
A extends AnyTypes,
|
|
85
|
+
B extends AnyTypes,
|
|
86
|
+
C extends AnyTypes,
|
|
87
|
+
D extends AnyTypes,
|
|
88
|
+
E extends AnyTypes,
|
|
89
|
+
F extends AnyTypes,
|
|
90
|
+
G extends AnyTypes,
|
|
91
|
+
H extends AnyTypes,
|
|
92
|
+
>(
|
|
93
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
94
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
95
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
96
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
97
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
98
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
99
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
100
|
+
): (input: Builder<A>) => Builder<H>
|
|
101
|
+
export function deployment<
|
|
102
|
+
A extends AnyTypes,
|
|
103
|
+
B extends AnyTypes,
|
|
104
|
+
C extends AnyTypes,
|
|
105
|
+
D extends AnyTypes,
|
|
106
|
+
E extends AnyTypes,
|
|
107
|
+
F extends AnyTypes,
|
|
108
|
+
G extends AnyTypes,
|
|
109
|
+
H extends AnyTypes,
|
|
110
|
+
I extends AnyTypes,
|
|
111
|
+
>(
|
|
112
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
113
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
114
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
115
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
116
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
117
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
118
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
119
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
120
|
+
): (input: Builder<A>) => Builder<I>
|
|
121
|
+
export function deployment<
|
|
122
|
+
A extends AnyTypes,
|
|
123
|
+
B extends AnyTypes,
|
|
124
|
+
C extends AnyTypes,
|
|
125
|
+
D extends AnyTypes,
|
|
126
|
+
E extends AnyTypes,
|
|
127
|
+
F extends AnyTypes,
|
|
128
|
+
G extends AnyTypes,
|
|
129
|
+
H extends AnyTypes,
|
|
130
|
+
I extends AnyTypes,
|
|
131
|
+
J extends AnyTypes,
|
|
132
|
+
>(
|
|
133
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
134
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
135
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
136
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
137
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
138
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
139
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
140
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
141
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
142
|
+
): (input: Builder<A>) => Builder<J>
|
|
143
|
+
export function deployment<
|
|
144
|
+
A extends AnyTypes,
|
|
145
|
+
B extends AnyTypes,
|
|
146
|
+
C extends AnyTypes,
|
|
147
|
+
D extends AnyTypes,
|
|
148
|
+
E extends AnyTypes,
|
|
149
|
+
F extends AnyTypes,
|
|
150
|
+
G extends AnyTypes,
|
|
151
|
+
H extends AnyTypes,
|
|
152
|
+
I extends AnyTypes,
|
|
153
|
+
J extends AnyTypes,
|
|
154
|
+
K extends AnyTypes,
|
|
155
|
+
>(
|
|
156
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
157
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
158
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
159
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
160
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
161
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
162
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
163
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
164
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
165
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
166
|
+
): (input: Builder<A>) => Builder<K>
|
|
167
|
+
export function deployment<
|
|
168
|
+
A extends AnyTypes,
|
|
169
|
+
B extends AnyTypes,
|
|
170
|
+
C extends AnyTypes,
|
|
171
|
+
D extends AnyTypes,
|
|
172
|
+
E extends AnyTypes,
|
|
173
|
+
F extends AnyTypes,
|
|
174
|
+
G extends AnyTypes,
|
|
175
|
+
H extends AnyTypes,
|
|
176
|
+
I extends AnyTypes,
|
|
177
|
+
J extends AnyTypes,
|
|
178
|
+
K extends AnyTypes,
|
|
179
|
+
L extends AnyTypes,
|
|
180
|
+
>(
|
|
181
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
182
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
183
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
184
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
185
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
186
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
187
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
188
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
189
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
190
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
191
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
192
|
+
): (input: Builder<A>) => Builder<L>
|
|
193
|
+
export function deployment<
|
|
194
|
+
A extends AnyTypes,
|
|
195
|
+
B extends AnyTypes,
|
|
196
|
+
C extends AnyTypes,
|
|
197
|
+
D extends AnyTypes,
|
|
198
|
+
E extends AnyTypes,
|
|
199
|
+
F extends AnyTypes,
|
|
200
|
+
G extends AnyTypes,
|
|
201
|
+
H extends AnyTypes,
|
|
202
|
+
I extends AnyTypes,
|
|
203
|
+
J extends AnyTypes,
|
|
204
|
+
K extends AnyTypes,
|
|
205
|
+
L extends AnyTypes,
|
|
206
|
+
M extends AnyTypes,
|
|
207
|
+
>(
|
|
208
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
209
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
210
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
211
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
212
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
213
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
214
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
215
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
216
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
217
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
218
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
219
|
+
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
220
|
+
): (input: Builder<A>) => Builder<M>
|
|
221
|
+
export function deployment<
|
|
222
|
+
A extends AnyTypes,
|
|
223
|
+
B extends AnyTypes,
|
|
224
|
+
C extends AnyTypes,
|
|
225
|
+
D extends AnyTypes,
|
|
226
|
+
E extends AnyTypes,
|
|
227
|
+
F extends AnyTypes,
|
|
228
|
+
G extends AnyTypes,
|
|
229
|
+
H extends AnyTypes,
|
|
230
|
+
I extends AnyTypes,
|
|
231
|
+
J extends AnyTypes,
|
|
232
|
+
K extends AnyTypes,
|
|
233
|
+
L extends AnyTypes,
|
|
234
|
+
M extends AnyTypes,
|
|
235
|
+
N extends AnyTypes,
|
|
236
|
+
>(
|
|
237
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
238
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
239
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
240
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
241
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
242
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
243
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
244
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
245
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
246
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
247
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
248
|
+
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
249
|
+
op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N>,
|
|
250
|
+
): (input: Builder<A>) => Builder<N>
|
|
251
|
+
export function deployment<
|
|
252
|
+
A extends AnyTypes,
|
|
253
|
+
B extends AnyTypes,
|
|
254
|
+
C extends AnyTypes,
|
|
255
|
+
D extends AnyTypes,
|
|
256
|
+
E extends AnyTypes,
|
|
257
|
+
F extends AnyTypes,
|
|
258
|
+
G extends AnyTypes,
|
|
259
|
+
H extends AnyTypes,
|
|
260
|
+
I extends AnyTypes,
|
|
261
|
+
J extends AnyTypes,
|
|
262
|
+
K extends AnyTypes,
|
|
263
|
+
L extends AnyTypes,
|
|
264
|
+
M extends AnyTypes,
|
|
265
|
+
N extends AnyTypes,
|
|
266
|
+
O extends AnyTypes,
|
|
267
|
+
>(
|
|
268
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
269
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
270
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
271
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
272
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
273
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
274
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
275
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
276
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
277
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
278
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
279
|
+
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
280
|
+
op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N>,
|
|
281
|
+
op14: (input: DeploymentModelBuilder<N>) => DeploymentModelBuilder<O>,
|
|
282
|
+
): (input: Builder<A>) => Builder<O>
|
|
283
|
+
export function deployment<
|
|
284
|
+
A extends AnyTypes,
|
|
285
|
+
B extends AnyTypes,
|
|
286
|
+
C extends AnyTypes,
|
|
287
|
+
D extends AnyTypes,
|
|
288
|
+
E extends AnyTypes,
|
|
289
|
+
F extends AnyTypes,
|
|
290
|
+
G extends AnyTypes,
|
|
291
|
+
H extends AnyTypes,
|
|
292
|
+
I extends AnyTypes,
|
|
293
|
+
J extends AnyTypes,
|
|
294
|
+
K extends AnyTypes,
|
|
295
|
+
L extends AnyTypes,
|
|
296
|
+
M extends AnyTypes,
|
|
297
|
+
N extends AnyTypes,
|
|
298
|
+
O extends AnyTypes,
|
|
299
|
+
P extends AnyTypes,
|
|
300
|
+
>(
|
|
301
|
+
op1: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
|
|
302
|
+
op2: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
|
|
303
|
+
op3: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
|
|
304
|
+
op4: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
|
|
305
|
+
op5: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
|
|
306
|
+
op6: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
|
|
307
|
+
op7: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
|
|
308
|
+
op8: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
|
|
309
|
+
op9: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
|
|
310
|
+
op10: (input: DeploymentModelBuilder<J>) => DeploymentModelBuilder<K>,
|
|
311
|
+
op11: (input: DeploymentModelBuilder<K>) => DeploymentModelBuilder<L>,
|
|
312
|
+
op12: (input: DeploymentModelBuilder<L>) => DeploymentModelBuilder<M>,
|
|
313
|
+
op13: (input: DeploymentModelBuilder<M>) => DeploymentModelBuilder<N>,
|
|
314
|
+
op14: (input: DeploymentModelBuilder<N>) => DeploymentModelBuilder<O>,
|
|
315
|
+
op15: (input: DeploymentModelBuilder<O>) => DeploymentModelBuilder<P>,
|
|
316
|
+
): (input: Builder<A>) => Builder<P>
|
|
317
|
+
|
|
318
|
+
export function deployment(...ops: any[]) {
|
|
319
|
+
return (input: Builder<any>) => {
|
|
320
|
+
let builder = input
|
|
321
|
+
for (const op of ops) {
|
|
322
|
+
builder = op(builder)
|
|
323
|
+
}
|
|
324
|
+
return builder
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
type NameFromFqn<FQN extends string> = LastArrayElement<Split<FQN, '.'>>
|
|
329
|
+
|
|
330
|
+
export type AddDeployedInstance<Props = unknown> = {
|
|
331
|
+
// instanceOf(target, titleOrProps?)
|
|
332
|
+
<
|
|
333
|
+
const T extends AnyTypes,
|
|
334
|
+
Id extends string & T['Fqn'],
|
|
335
|
+
>(
|
|
336
|
+
target: Id,
|
|
337
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<Types.AddDeploymentFqn<T, NameFromFqn<Id>>>
|
|
338
|
+
|
|
339
|
+
// instanceOf(id, target, titleOrProps?)
|
|
340
|
+
<
|
|
341
|
+
const Id extends string,
|
|
342
|
+
T extends AnyTypes,
|
|
343
|
+
Target extends string & T['Fqn'],
|
|
344
|
+
>(
|
|
345
|
+
id: ValidId<Id>,
|
|
346
|
+
target: Target,
|
|
347
|
+
titleOrProps?: string | Props | undefined,
|
|
348
|
+
): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<Types.AddDeploymentFqn<T, Id>>
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
type AddDeploymentNodeHelper<T = unknown> = <const Id extends string>(
|
|
352
|
+
id: ValidId<Id>,
|
|
353
|
+
titleOrProps?: string | T,
|
|
354
|
+
) => AddDeploymentNode<Id>
|
|
355
|
+
|
|
356
|
+
export type AddDeploymentNodeHelpers<T extends AnyTypes> = T extends
|
|
357
|
+
Types<any, any, any, any, any, any, infer Kinds extends string, any> ? {
|
|
358
|
+
[Kind in Kinds]: AddDeploymentNodeHelper<T['NewDeploymentNodeProps']>
|
|
359
|
+
}
|
|
360
|
+
: Invalid<'No Deployment Kinds'>
|
|
361
|
+
|
|
362
|
+
export type AddDeploymentRelation<Props = unknown> = <
|
|
363
|
+
T extends AnyTypes,
|
|
364
|
+
Source extends string & T['DeploymentFqn'],
|
|
365
|
+
Target extends string & T['DeploymentFqn'],
|
|
366
|
+
>(
|
|
367
|
+
source: Source,
|
|
368
|
+
target: Target,
|
|
369
|
+
titleOrProps?: string | Props,
|
|
370
|
+
) => (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<T>
|
|
371
|
+
|
|
372
|
+
export type DeloymentModelHelpers<T extends AnyTypes> = AddDeploymentNodeHelpers<T> & {
|
|
373
|
+
instanceOf: AddDeployedInstance<T['NewDeploymentNodeProps']>
|
|
374
|
+
rel: AddDeploymentRelation<T['NewRelationshipProps']>
|
|
375
|
+
deployment: typeof deployment
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
export type DeloymentModelBuildFunction<A extends AnyTypes, B extends AnyTypes> = (
|
|
379
|
+
helpers: DeloymentModelHelpers<A> & {
|
|
380
|
+
_: DeloymentModelHelpers<A>['deployment']
|
|
381
|
+
},
|
|
382
|
+
add: DeloymentModelHelpers<A>['deployment'],
|
|
383
|
+
) =>
|
|
384
|
+
| ((builder: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>)
|
|
385
|
+
| ((builder: Builder<A>) => Builder<B>)
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import type { AnyTypes,
|
|
1
|
+
import type { AnyTypes, Types, TypesNested } from './_types'
|
|
2
2
|
import type { ModelBuilder } from './Builder.model'
|
|
3
3
|
|
|
4
|
-
type ToNested<T, Id extends string> = T extends TypesNested<infer P, any, infer F, any, any, any, any
|
|
4
|
+
type ToNested<T, Id extends string> = T extends TypesNested<infer P, any, infer F, any, any, any, any, any, any>
|
|
5
|
+
? TypesNested<
|
|
5
6
|
`${P}.${Id}`,
|
|
6
7
|
T['ElementKind'],
|
|
7
8
|
`${P}.${Id}` | F,
|
|
8
9
|
T['ViewId'],
|
|
9
10
|
T['RelationshipKind'],
|
|
10
11
|
T['Tag'],
|
|
11
|
-
T['MetadataKey']
|
|
12
|
+
T['MetadataKey'],
|
|
13
|
+
T['DeploymentKind'],
|
|
14
|
+
T['DeploymentFqn']
|
|
12
15
|
>
|
|
13
16
|
: T extends AnyTypes ? TypesNested<
|
|
14
17
|
Id,
|
|
@@ -17,19 +20,23 @@ type ToNested<T, Id extends string> = T extends TypesNested<infer P, any, infer
|
|
|
17
20
|
T['ViewId'],
|
|
18
21
|
T['RelationshipKind'],
|
|
19
22
|
T['Tag'],
|
|
20
|
-
T['MetadataKey']
|
|
23
|
+
T['MetadataKey'],
|
|
24
|
+
T['DeploymentKind'],
|
|
25
|
+
T['DeploymentFqn']
|
|
21
26
|
>
|
|
22
27
|
: never
|
|
23
28
|
|
|
24
|
-
type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, infer F, any, any, any, any>
|
|
25
|
-
? T extends TypesNested<infer P, any, any, any, any, any, any> ? TypesNested<
|
|
29
|
+
type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, infer F, any, any, any, any, any, any>
|
|
30
|
+
? T extends TypesNested<infer P, any, any, any, any, any, any, any, any> ? TypesNested<
|
|
26
31
|
P,
|
|
27
32
|
T['ElementKind'],
|
|
28
33
|
F,
|
|
29
34
|
T['ViewId'],
|
|
30
35
|
T['RelationshipKind'],
|
|
31
36
|
T['Tag'],
|
|
32
|
-
T['MetadataKey']
|
|
37
|
+
T['MetadataKey'],
|
|
38
|
+
T['DeploymentKind'],
|
|
39
|
+
T['DeploymentFqn']
|
|
33
40
|
>
|
|
34
41
|
: T extends AnyTypes ? Types<
|
|
35
42
|
T['ElementKind'],
|
|
@@ -37,7 +44,9 @@ type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, infer F
|
|
|
37
44
|
T['ViewId'],
|
|
38
45
|
T['RelationshipKind'],
|
|
39
46
|
T['Tag'],
|
|
40
|
-
T['MetadataKey']
|
|
47
|
+
T['MetadataKey'],
|
|
48
|
+
T['DeploymentKind'],
|
|
49
|
+
T['DeploymentFqn']
|
|
41
50
|
>
|
|
42
51
|
: never
|
|
43
52
|
: never
|
|
@@ -48,6 +57,8 @@ type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, infer F
|
|
|
48
57
|
export interface AddElement<Id extends string> {
|
|
49
58
|
<T extends AnyTypes>(builder: ModelBuilder<T>): ModelBuilder<Types.AddFqn<T, Id>>
|
|
50
59
|
|
|
60
|
+
with<T extends AnyTypes>(): (builder: ModelBuilder<T>) => ModelBuilder<Types.AddFqn<T, Id>>
|
|
61
|
+
|
|
51
62
|
with<
|
|
52
63
|
T extends AnyTypes,
|
|
53
64
|
A extends AnyTypes
|
|
@@ -208,14 +219,3 @@ export interface AddElement<Id extends string> {
|
|
|
208
219
|
op10: (input: ModelBuilder<I>) => ModelBuilder<J>
|
|
209
220
|
): (builder: ModelBuilder<T>) => ModelBuilder<FromNested<T, J>>
|
|
210
221
|
}
|
|
211
|
-
|
|
212
|
-
type AddElementHelper<T = unknown> = <const Id extends string>(
|
|
213
|
-
id: Id,
|
|
214
|
-
titleOrProps?: string | T
|
|
215
|
-
) => AddElement<Id>
|
|
216
|
-
|
|
217
|
-
export type AddElementHelpers<T extends AnyTypes> = T extends Types<infer Kinds extends string, any, any, any, any, any>
|
|
218
|
-
? {
|
|
219
|
-
[Kind in Kinds]: AddElementHelper<T['NewElementProps']>
|
|
220
|
-
}
|
|
221
|
-
: Invalid<'No Element Kinds'>
|