@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.
Files changed (184) hide show
  1. package/LICENSE +1 -1
  2. package/dist/builder/index.d.mts +502 -0
  3. package/dist/builder/index.d.ts +502 -0
  4. package/dist/builder/index.js +871 -0
  5. package/dist/compute-view/index.d.mts +22 -0
  6. package/dist/compute-view/index.d.ts +22 -0
  7. package/dist/compute-view/index.js +78 -0
  8. package/dist/index.d.mts +10 -919
  9. package/dist/index.d.ts +10 -919
  10. package/dist/{index.mjs → index.js} +7 -1688
  11. package/dist/model/index.d.mts +254 -0
  12. package/dist/model/index.d.ts +254 -0
  13. package/dist/model/index.js +1 -0
  14. package/dist/shared/chunk-RAAYCPUM.M-JWF7SS.js +21 -0
  15. package/dist/shared/core.BIfgabEw.d.ts +719 -0
  16. package/dist/shared/core.BZ9Msq7w.d.mts +719 -0
  17. package/dist/shared/{core.CoLQkcYL.d.cts → core.C05RDLhi.d.ts} +460 -362
  18. package/dist/shared/{core.CoLQkcYL.d.mts → core.CmYMqgha.d.mts} +460 -362
  19. package/dist/shared/core.D6-fWbM3.d.ts +127 -0
  20. package/dist/shared/core.D74xkKkG.d.mts +148 -0
  21. package/dist/shared/core.D74xkKkG.d.ts +148 -0
  22. package/dist/shared/core.sLaWHBjR.d.mts +127 -0
  23. package/dist/shared/index.-BdzdI2C.js +7443 -0
  24. package/dist/shared/object_hash.CE_oF3I3.js +1222 -0
  25. package/dist/shared/{core.BXTs-8n7.mjs → view.CyZrG8BJ.js} +108 -47
  26. package/dist/types/index.d.mts +71 -1
  27. package/dist/types/index.d.ts +71 -1
  28. package/dist/types/index.js +20 -0
  29. package/dist/utils/index.d.mts +404 -0
  30. package/dist/utils/index.d.ts +404 -0
  31. package/dist/utils/index.js +330 -0
  32. package/package.json +59 -47
  33. package/src/builder/Builder-style1.test-d.ts +190 -0
  34. package/src/builder/Builder-style2.test-d.ts +175 -0
  35. package/src/builder/Builder.deployment.ts +224 -0
  36. package/src/builder/Builder.deploymentModel.ts +385 -0
  37. package/src/builder/Builder.element.ts +19 -19
  38. package/src/builder/Builder.model.ts +67 -42
  39. package/src/builder/Builder.ts +533 -367
  40. package/src/builder/Builder.view-common.ts +234 -0
  41. package/src/builder/Builder.view-deployment.ts +135 -0
  42. package/src/builder/Builder.view-element.ts +189 -0
  43. package/src/builder/Builder.views.ts +109 -33
  44. package/src/builder/Builder.with.ts +475 -0
  45. package/src/builder/__snapshots__/Builder-style1.spec.ts.snap +374 -0
  46. package/src/builder/__snapshots__/Builder-style2.spec.ts.snap +183 -0
  47. package/src/builder/__snapshots__/Builder.spec.ts.snap +374 -0
  48. package/src/builder/_types.ts +113 -18
  49. package/src/builder/index.ts +10 -4
  50. package/src/colors/index.ts +2 -2
  51. package/src/compute-view/compute-view.ts +83 -0
  52. package/src/compute-view/deployment-view/__test__/TestHelper.ts +236 -0
  53. package/src/compute-view/deployment-view/__test__/fixture.ts +198 -0
  54. package/src/compute-view/deployment-view/_types.ts +37 -0
  55. package/src/compute-view/deployment-view/clean-connections.ts +238 -0
  56. package/src/compute-view/deployment-view/compute.ts +125 -0
  57. package/src/compute-view/deployment-view/memory/index.ts +9 -0
  58. package/src/compute-view/deployment-view/memory/memory.ts +97 -0
  59. package/src/compute-view/deployment-view/predicates/elements.ts +144 -0
  60. package/src/compute-view/deployment-view/predicates/relation-direct.ts +237 -0
  61. package/src/compute-view/deployment-view/predicates/relation-in-out.ts +61 -0
  62. package/src/compute-view/deployment-view/predicates/relation-incoming.ts +95 -0
  63. package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +88 -0
  64. package/src/compute-view/deployment-view/predicates/wildcard.ts +29 -0
  65. package/src/compute-view/deployment-view/stages/stage-exclude.ts +5 -0
  66. package/src/compute-view/deployment-view/stages/stage-final.ts +245 -0
  67. package/src/compute-view/deployment-view/stages/stage-include.ts +95 -0
  68. package/src/compute-view/deployment-view/utils.ts +276 -0
  69. package/src/compute-view/dynamic-view/__test__/fixture.ts +58 -0
  70. package/src/compute-view/dynamic-view/compute.ts +324 -0
  71. package/src/compute-view/element-view/__test__/TestHelper.ts +258 -0
  72. package/src/compute-view/element-view/__test__/__snapshots__/legacy.spec.ts.snap +458 -0
  73. package/src/compute-view/element-view/__test__/fixture.ts +675 -0
  74. package/src/compute-view/element-view/_types.ts +48 -0
  75. package/src/compute-view/element-view/clean-connections.ts +113 -0
  76. package/src/compute-view/element-view/compute.ts +315 -0
  77. package/src/compute-view/element-view/memory/NodeGroup.ts +31 -0
  78. package/src/compute-view/element-view/memory/index.ts +10 -0
  79. package/src/compute-view/element-view/memory/memory.ts +177 -0
  80. package/src/compute-view/element-view/memory/stage-exclude.ts +59 -0
  81. package/src/compute-view/element-view/memory/stage-final.ts +129 -0
  82. package/src/compute-view/element-view/memory/stage-include.ts +128 -0
  83. package/src/compute-view/element-view/predicates/_utils.ts +86 -0
  84. package/src/compute-view/element-view/predicates/element-expand.ts +33 -0
  85. package/src/compute-view/element-view/predicates/element-kind-tag.ts +26 -0
  86. package/src/compute-view/element-view/predicates/element-ref.ts +37 -0
  87. package/src/compute-view/element-view/predicates/relation-direct.ts +309 -0
  88. package/src/compute-view/element-view/predicates/relation-in-out.ts +66 -0
  89. package/src/compute-view/element-view/predicates/relation-in.ts +118 -0
  90. package/src/compute-view/element-view/predicates/relation-out.ts +116 -0
  91. package/src/compute-view/element-view/predicates/wildcard.ts +88 -0
  92. package/src/compute-view/element-view/utils.ts +59 -0
  93. package/src/compute-view/index.ts +4 -0
  94. package/src/compute-view/memory/AbstractMemory.ts +45 -0
  95. package/src/compute-view/memory/AbstractStageExclude.ts +216 -0
  96. package/src/compute-view/memory/AbstractStageInclude.ts +200 -0
  97. package/src/compute-view/memory/_types.ts +147 -0
  98. package/src/compute-view/memory/index.ts +5 -0
  99. package/src/compute-view/memory/ops.ts +43 -0
  100. package/src/compute-view/utils/__snapshots__/sortNodes.spec.ts.snap +113 -0
  101. package/src/compute-view/utils/ancestorsOfNode.ts +19 -0
  102. package/src/compute-view/utils/applyCustomElementProperties.ts +66 -0
  103. package/src/compute-view/utils/applyCustomRelationProperties.ts +41 -0
  104. package/src/compute-view/utils/applyViewRuleStyles.ts +53 -0
  105. package/src/compute-view/utils/buildComputedNodes.ts +148 -0
  106. package/src/compute-view/utils/buildElementNotations.ts +63 -0
  107. package/src/compute-view/utils/elementExpressionToPredicate.ts +50 -0
  108. package/src/compute-view/utils/link-nodes-with-edges.ts +54 -0
  109. package/src/compute-view/utils/merge-props-from-relationships.ts +128 -0
  110. package/src/compute-view/utils/relationExpressionToPredicates.ts +55 -0
  111. package/src/compute-view/utils/resolve-extended-views.ts +69 -0
  112. package/src/compute-view/utils/resolve-global-rules.ts +83 -0
  113. package/src/compute-view/utils/topological-sort.ts +256 -0
  114. package/src/compute-view/utils/uniqueTags.test.ts +42 -0
  115. package/src/compute-view/utils/uniqueTags.ts +21 -0
  116. package/src/compute-view/utils/view-hash.ts +27 -0
  117. package/src/compute-view/utils/with-readable-edges.ts +36 -0
  118. package/src/index.ts +22 -12
  119. package/src/model/DeploymentElementModel.ts +599 -0
  120. package/src/model/DeploymentModel.ts +370 -0
  121. package/src/model/ElementModel.ts +221 -0
  122. package/src/model/LikeC4Model.test-d.ts +152 -0
  123. package/src/model/LikeC4Model.ts +336 -457
  124. package/src/model/RelationModel.ts +85 -0
  125. package/src/model/__test__/fixture.ts +149 -338
  126. package/src/model/connection/Connection.ts +72 -0
  127. package/src/model/connection/deployment/DeploymentConnectionModel.ts +178 -0
  128. package/src/model/connection/deployment/find.ts +120 -0
  129. package/src/model/connection/deployment/index.ts +8 -0
  130. package/src/model/connection/index.ts +22 -0
  131. package/src/model/connection/model/ConnectionModel.ts +157 -0
  132. package/src/model/connection/model/find.ts +117 -0
  133. package/src/model/connection/model/index.ts +8 -0
  134. package/src/model/connection/ops.ts +274 -0
  135. package/src/model/guards.ts +9 -0
  136. package/src/model/index.ts +46 -2
  137. package/src/model/types.ts +112 -15
  138. package/src/model/view/EdgeModel.ts +103 -0
  139. package/src/model/view/LikeC4ViewModel.ts +226 -0
  140. package/src/model/view/NodeModel.ts +229 -0
  141. package/src/types/_common.ts +55 -1
  142. package/src/types/deployments.ts +169 -0
  143. package/src/types/element.ts +9 -5
  144. package/src/types/expression-v2.ts +172 -0
  145. package/src/types/expression.ts +17 -11
  146. package/src/types/global.ts +3 -3
  147. package/src/types/index.ts +220 -12
  148. package/src/types/model.ts +75 -12
  149. package/src/types/operators.ts +1 -1
  150. package/src/types/overview-graph.ts +2 -2
  151. package/src/types/relation.ts +18 -14
  152. package/src/types/theme.ts +0 -1
  153. package/src/types/view-notation.ts +2 -2
  154. package/src/types/view.ts +117 -41
  155. package/src/utils/{commonHead.ts → common-head.ts} +2 -0
  156. package/src/utils/const.ts +1 -0
  157. package/src/utils/fqn.ts +203 -56
  158. package/src/utils/getOrCreate.ts +42 -0
  159. package/src/utils/graphlib.ts +10 -0
  160. package/src/utils/index.ts +74 -6
  161. package/src/utils/iterable/_types.ts +5 -0
  162. package/src/utils/iterable/filter.ts +55 -0
  163. package/src/utils/iterable/flat.ts +17 -0
  164. package/src/utils/iterable/index.ts +12 -0
  165. package/src/utils/iterable/map.ts +40 -0
  166. package/src/utils/iterable/reduce.ts +24 -0
  167. package/src/utils/iterable/some.ts +36 -0
  168. package/src/utils/iterable/to.ts +19 -0
  169. package/src/utils/iterable/unique.ts +29 -0
  170. package/src/utils/object-hash.ts +3 -0
  171. package/src/utils/relations.ts +3 -64
  172. package/src/utils/set.ts +78 -0
  173. package/src/utils/string-hash.ts +16 -0
  174. package/dist/index.cjs +0 -5452
  175. package/dist/index.d.cts +0 -1053
  176. package/dist/shared/core.CoLQkcYL.d.ts +0 -734
  177. package/dist/shared/core.DIYZvpVg.cjs +0 -353
  178. package/dist/types/index.cjs +0 -70
  179. package/dist/types/index.d.cts +0 -2
  180. package/dist/types/index.mjs +0 -1
  181. package/src/builder/Builder.test-d.ts +0 -69
  182. package/src/builder/Builder.view.ts +0 -358
  183. package/src/model/LikeC4DiagramModel.ts +0 -338
  184. package/src/model/LikeC4ViewModel.ts +0 -320
@@ -0,0 +1,175 @@
1
+ import { expectTypeOf, test } from 'vitest'
2
+ import type { LikeC4Model } from '../model/LikeC4Model'
3
+ import type { ParsedLikeC4Model } from '../types'
4
+ import { Builder } from './Builder'
5
+
6
+ test('Builder types - style 2', () => {
7
+ const m = Builder
8
+ .specification({
9
+ elements: {
10
+ actor: {
11
+ style: {
12
+ shape: 'person',
13
+ },
14
+ },
15
+ system: {},
16
+ component: {},
17
+ },
18
+ deployments: {
19
+ env: {},
20
+ vm: {},
21
+ },
22
+ relationships: {
23
+ like: {},
24
+ dislike: {},
25
+ },
26
+ tags: ['tag1', 'tag2', 'tag1'],
27
+ })
28
+ .model(({ actor, system, component, relTo }, _) =>
29
+ _(
30
+ actor('alice'),
31
+ actor('bob'),
32
+ system('cloud').with(
33
+ component('backend').with(
34
+ component('api'),
35
+ component('db'),
36
+ ),
37
+ component('frontend').with(
38
+ // @ts-expect-error
39
+ relTo('non-existing'),
40
+ ),
41
+ ),
42
+ )
43
+ )
44
+ .deployment(({ env, vm, instanceOf }, _) =>
45
+ _(
46
+ env('prod').with(
47
+ vm('vm1'),
48
+ vm('vm2'),
49
+ ),
50
+ env('dev').with(
51
+ vm('vm1'),
52
+ instanceOf('cloud.backend.api'),
53
+ instanceOf(
54
+ 'wrong',
55
+ // @ts-expect-error
56
+ 'non-existing',
57
+ ),
58
+ vm('vm2'),
59
+ ),
60
+ )
61
+ )
62
+ // Test Element View
63
+ .views(({ view, $include, $style }, _) =>
64
+ _(
65
+ // rules inside
66
+ view(
67
+ 'view',
68
+ // @ts-expect-error
69
+ $include('wrong'),
70
+ // @ts-expect-error #tag22 is not defined
71
+ $include('cloud.backend', {
72
+ where: 'tag is #tag22',
73
+ }),
74
+ ),
75
+ // using with
76
+ view('view').with(
77
+ // @ts-expect-error
78
+ $include('wrong'),
79
+ // @ts-expect-error
80
+ $style('wrong', { color: 'red' }),
81
+ ),
82
+ )
83
+ )
84
+ // Test Element View Of
85
+ .views(({ viewOf, $rules, $include }, _) =>
86
+ _(
87
+ viewOf('view-of', 'cloud.backend'),
88
+ // @ts-expect-error
89
+ viewOf('view-of', 'wrong'),
90
+ viewOf(
91
+ 'view-of',
92
+ 'cloud.backend.api',
93
+ $rules(
94
+ // @ts-expect-error
95
+ $include('wrong'),
96
+ ),
97
+ ),
98
+ viewOf(
99
+ 'view-of',
100
+ 'cloud.backend.api',
101
+ $rules(
102
+ // @ts-expect-error
103
+ $include('wrong'),
104
+ ),
105
+ ).with(
106
+ $include('* -> alice.*'),
107
+ // @ts-expect-error
108
+ $include('wrong'),
109
+ ),
110
+ viewOf(
111
+ 'view-of',
112
+ // @ts-expect-error
113
+ 'cloud.backensd.api',
114
+ 'Title',
115
+ ).with(
116
+ $include('* -> alice.*'),
117
+ // @ts-expect-error
118
+ $include('wrong'),
119
+ ),
120
+ )
121
+ )
122
+ // Test Deployment View
123
+ .views(({ deploymentView, $rules, $include }, _) =>
124
+ _(
125
+ deploymentView(
126
+ 'deployment',
127
+ $rules(
128
+ // @ts-expect-error
129
+ $include('pr'),
130
+ ),
131
+ ),
132
+ deploymentView(
133
+ 'deployment',
134
+ 'Title',
135
+ $rules(
136
+ // @ts-expect-error
137
+ $include('pr'),
138
+ ),
139
+ ),
140
+ deploymentView('deployment').with(
141
+ // @ts-expect-error
142
+ $include('pr'),
143
+ ),
144
+ )
145
+ )
146
+
147
+ expectTypeOf(m.Types.Fqn).toEqualTypeOf(
148
+ '' as 'alice' | 'bob' | 'cloud' | 'cloud.backend' | 'cloud.backend.api' | 'cloud.backend.db' | 'cloud.frontend',
149
+ )
150
+ expectTypeOf(m.Types.ViewId).toEqualTypeOf(
151
+ '' as 'view' | 'view-of' | 'deployment',
152
+ )
153
+ expectTypeOf(m.Types.DeploymentFqn).toEqualTypeOf(
154
+ '' as 'prod' | 'dev' | 'prod.vm1' | 'prod.vm2' | 'dev.vm1' | 'dev.vm2' | 'dev.api' | 'dev.wrong',
155
+ )
156
+
157
+ expectTypeOf(m.build()).toEqualTypeOf(
158
+ {} as ParsedLikeC4Model<
159
+ 'actor' | 'system' | 'component',
160
+ 'like' | 'dislike',
161
+ 'tag1' | 'tag2',
162
+ 'alice' | 'bob' | 'cloud' | 'cloud.backend' | 'cloud.backend.api' | 'cloud.backend.db' | 'cloud.frontend',
163
+ 'view' | 'view-of' | 'deployment',
164
+ 'prod' | 'dev' | 'prod.vm1' | 'prod.vm2' | 'dev.vm1' | 'dev.vm2' | 'dev.api' | 'dev.wrong'
165
+ >,
166
+ )
167
+
168
+ expectTypeOf(m.toLikeC4Model()).toEqualTypeOf(
169
+ {} as LikeC4Model.Computed<
170
+ 'alice' | 'bob' | 'cloud' | 'cloud.backend' | 'cloud.backend.api' | 'cloud.backend.db' | 'cloud.frontend',
171
+ 'prod' | 'dev' | 'prod.vm1' | 'prod.vm2' | 'dev.vm1' | 'dev.vm2' | 'dev.api' | 'dev.wrong',
172
+ 'view' | 'view-of' | 'deployment'
173
+ >,
174
+ )
175
+ })
@@ -0,0 +1,224 @@
1
+ import type { AnyTypes, Types, TypesNested } from './_types'
2
+ import type { DeploymentModelBuilder } from './Builder.deploymentModel'
3
+ import type { ModelBuilder } from './Builder.model'
4
+
5
+ type ToNested<T, Id extends string> = T extends TypesNested<infer P, any, any, any, any, any, any, any, infer F>
6
+ ? TypesNested<
7
+ `${P}.${Id}`,
8
+ T['ElementKind'],
9
+ T['Fqn'],
10
+ T['ViewId'],
11
+ T['RelationshipKind'],
12
+ T['Tag'],
13
+ T['MetadataKey'],
14
+ T['DeploymentKind'],
15
+ `${P}.${Id}` | F
16
+ >
17
+ : T extends AnyTypes ? TypesNested<
18
+ Id,
19
+ T['ElementKind'],
20
+ T['Fqn'],
21
+ T['ViewId'],
22
+ T['RelationshipKind'],
23
+ T['Tag'],
24
+ T['MetadataKey'],
25
+ T['DeploymentKind'],
26
+ Id | T['DeploymentFqn']
27
+ >
28
+ : never
29
+
30
+ type FromNested<T extends AnyTypes, N> = N extends TypesNested<any, any, any, any, any, any, any, any, infer F>
31
+ ? T extends TypesNested<infer P, any, any, any, any, any, any, any, any> ? TypesNested<
32
+ P,
33
+ T['ElementKind'],
34
+ T['Fqn'],
35
+ T['ViewId'],
36
+ T['RelationshipKind'],
37
+ T['Tag'],
38
+ T['MetadataKey'],
39
+ T['DeploymentKind'],
40
+ F
41
+ >
42
+ : T extends AnyTypes ? Types<
43
+ T['ElementKind'],
44
+ T['Fqn'],
45
+ T['ViewId'],
46
+ T['RelationshipKind'],
47
+ T['Tag'],
48
+ T['MetadataKey'],
49
+ T['DeploymentKind'],
50
+ F
51
+ >
52
+ : never
53
+ : never
54
+
55
+ /**
56
+ * Chainable builder to create deployment node
57
+ */
58
+ export interface AddDeploymentNode<Id extends string> {
59
+ <T extends AnyTypes>(builder: DeploymentModelBuilder<T>): DeploymentModelBuilder<Types.AddDeploymentFqn<T, Id>>
60
+
61
+ with<T extends AnyTypes>(): (
62
+ builder: DeploymentModelBuilder<T>,
63
+ ) => DeploymentModelBuilder<Types.AddDeploymentFqn<T, Id>>
64
+
65
+ with<
66
+ T extends AnyTypes,
67
+ A extends AnyTypes,
68
+ >(
69
+ op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
70
+ ): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, A>>
71
+
72
+ with<
73
+ T extends AnyTypes,
74
+ A extends AnyTypes,
75
+ B extends AnyTypes,
76
+ >(
77
+ op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
78
+ op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
79
+ ): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, B>>
80
+
81
+ with<
82
+ T extends AnyTypes,
83
+ A extends AnyTypes,
84
+ B extends AnyTypes,
85
+ C extends AnyTypes,
86
+ >(
87
+ op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
88
+ op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
89
+ op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
90
+ ): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, C>>
91
+
92
+ with<
93
+ T extends AnyTypes,
94
+ A extends AnyTypes,
95
+ B extends AnyTypes,
96
+ C extends AnyTypes,
97
+ D extends AnyTypes,
98
+ >(
99
+ op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
100
+ op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
101
+ op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
102
+ op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
103
+ ): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, D>>
104
+
105
+ with<
106
+ T extends AnyTypes,
107
+ A extends AnyTypes,
108
+ B extends AnyTypes,
109
+ C extends AnyTypes,
110
+ D extends AnyTypes,
111
+ E extends AnyTypes,
112
+ >(
113
+ op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
114
+ op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
115
+ op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
116
+ op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
117
+ op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
118
+ ): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, E>>
119
+
120
+ with<
121
+ T extends AnyTypes,
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
+ >(
129
+ op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
130
+ op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
131
+ op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
132
+ op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
133
+ op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
134
+ op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
135
+ ): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, F>>
136
+
137
+ with<
138
+ T extends AnyTypes,
139
+ A extends AnyTypes,
140
+ B extends AnyTypes,
141
+ C extends AnyTypes,
142
+ D extends AnyTypes,
143
+ E extends AnyTypes,
144
+ F extends AnyTypes,
145
+ G extends AnyTypes,
146
+ >(
147
+ op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
148
+ op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
149
+ op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
150
+ op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
151
+ op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
152
+ op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
153
+ op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
154
+ ): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, G>>
155
+
156
+ with<
157
+ T extends AnyTypes,
158
+ A extends AnyTypes,
159
+ B extends AnyTypes,
160
+ C extends AnyTypes,
161
+ D extends AnyTypes,
162
+ E extends AnyTypes,
163
+ F extends AnyTypes,
164
+ G extends AnyTypes,
165
+ H extends AnyTypes,
166
+ >(
167
+ op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
168
+ op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
169
+ op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
170
+ op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
171
+ op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
172
+ op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
173
+ op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
174
+ op8: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
175
+ ): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, H>>
176
+
177
+ with<
178
+ T extends AnyTypes,
179
+ A extends AnyTypes,
180
+ B extends AnyTypes,
181
+ C extends AnyTypes,
182
+ D extends AnyTypes,
183
+ E extends AnyTypes,
184
+ F extends AnyTypes,
185
+ G extends AnyTypes,
186
+ H extends AnyTypes,
187
+ I extends AnyTypes,
188
+ >(
189
+ op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
190
+ op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
191
+ op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
192
+ op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
193
+ op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
194
+ op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
195
+ op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
196
+ op8: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
197
+ op9: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
198
+ ): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, I>>
199
+
200
+ with<
201
+ T extends AnyTypes,
202
+ A extends AnyTypes,
203
+ B extends AnyTypes,
204
+ C extends AnyTypes,
205
+ D extends AnyTypes,
206
+ E extends AnyTypes,
207
+ F extends AnyTypes,
208
+ G extends AnyTypes,
209
+ H extends AnyTypes,
210
+ I extends AnyTypes,
211
+ J extends AnyTypes,
212
+ >(
213
+ op1: (input: DeploymentModelBuilder<ToNested<T, Id>>) => DeploymentModelBuilder<A>,
214
+ op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>,
215
+ op3: (input: DeploymentModelBuilder<B>) => DeploymentModelBuilder<C>,
216
+ op4: (input: DeploymentModelBuilder<C>) => DeploymentModelBuilder<D>,
217
+ op5: (input: DeploymentModelBuilder<D>) => DeploymentModelBuilder<E>,
218
+ op6: (input: DeploymentModelBuilder<E>) => DeploymentModelBuilder<F>,
219
+ op7: (input: DeploymentModelBuilder<F>) => DeploymentModelBuilder<G>,
220
+ op8: (input: DeploymentModelBuilder<G>) => DeploymentModelBuilder<H>,
221
+ op9: (input: DeploymentModelBuilder<H>) => DeploymentModelBuilder<I>,
222
+ op10: (input: DeploymentModelBuilder<I>) => DeploymentModelBuilder<J>,
223
+ ): (builder: DeploymentModelBuilder<T>) => DeploymentModelBuilder<FromNested<T, J>>
224
+ }