@likec4/core 1.18.0 → 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 (176) 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 +9 -78
  6. package/dist/compute-view/index.d.ts +9 -78
  7. package/dist/compute-view/index.js +78 -0
  8. package/dist/index.d.mts +9 -730
  9. package/dist/index.d.ts +9 -730
  10. package/dist/{index.mjs → index.js} +7 -784
  11. package/dist/model/index.d.mts +218 -606
  12. package/dist/model/index.d.ts +218 -606
  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.DMYY7C8s.d.mts → core.C05RDLhi.d.ts} +179 -230
  18. package/dist/shared/{core.DMYY7C8s.d.ts → core.CmYMqgha.d.mts} +179 -230
  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/view.CyZrG8BJ.js +354 -0
  26. package/dist/types/index.d.mts +4 -2
  27. package/dist/types/index.d.ts +4 -2
  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 +47 -33
  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 +25 -20
  36. package/src/builder/Builder.deploymentModel.ts +80 -55
  37. package/src/builder/Builder.element.ts +2 -0
  38. package/src/builder/Builder.model.ts +57 -43
  39. package/src/builder/Builder.ts +412 -431
  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 +28 -5
  49. package/src/builder/index.ts +10 -4
  50. package/src/colors/index.ts +2 -2
  51. package/src/compute-view/compute-view.ts +45 -54
  52. package/src/compute-view/deployment-view/__test__/TestHelper.ts +236 -0
  53. package/src/compute-view/deployment-view/__test__/fixture.ts +50 -62
  54. package/src/compute-view/deployment-view/_types.ts +26 -18
  55. package/src/compute-view/deployment-view/clean-connections.ts +173 -164
  56. package/src/compute-view/deployment-view/compute.ts +51 -37
  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 +183 -76
  61. package/src/compute-view/deployment-view/predicates/relation-in-out.ts +38 -20
  62. package/src/compute-view/deployment-view/predicates/relation-incoming.ts +72 -23
  63. package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +61 -22
  64. package/src/compute-view/deployment-view/predicates/wildcard.ts +15 -15
  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 +95 -31
  69. package/src/compute-view/dynamic-view/__test__/fixture.ts +4 -4
  70. package/src/compute-view/dynamic-view/compute.ts +59 -45
  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 +64 -62
  73. package/src/compute-view/element-view/__test__/fixture.ts +147 -117
  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 +264 -683
  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 +3 -4
  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/buildComputedNodes.ts +4 -4
  101. package/src/compute-view/utils/elementExpressionToPredicate.ts +1 -3
  102. package/src/compute-view/utils/link-nodes-with-edges.ts +3 -7
  103. package/src/compute-view/utils/{derive-edge-props-from-relationships.ts → merge-props-from-relationships.ts} +54 -23
  104. package/src/compute-view/utils/relationExpressionToPredicates.ts +2 -2
  105. package/src/compute-view/utils/resolve-extended-views.ts +44 -40
  106. package/src/compute-view/utils/resolve-global-rules.ts +6 -6
  107. package/src/compute-view/utils/topological-sort.ts +167 -71
  108. package/src/compute-view/utils/with-readable-edges.ts +14 -9
  109. package/src/index.ts +22 -16
  110. package/src/model/DeploymentElementModel.ts +150 -85
  111. package/src/model/DeploymentModel.ts +27 -21
  112. package/src/model/ElementModel.ts +51 -25
  113. package/src/model/LikeC4Model.test-d.ts +4 -3
  114. package/src/model/LikeC4Model.ts +98 -42
  115. package/src/model/RelationModel.ts +5 -4
  116. package/src/model/__test__/fixture.ts +5 -9
  117. package/src/model/connection/Connection.ts +72 -0
  118. package/src/model/connection/deployment/DeploymentConnectionModel.ts +178 -0
  119. package/src/model/connection/{deployment.ts → deployment/find.ts} +14 -18
  120. package/src/model/connection/deployment/index.ts +8 -0
  121. package/src/model/connection/index.ts +22 -0
  122. package/src/model/connection/model/ConnectionModel.ts +157 -0
  123. package/src/model/connection/{model.ts → model/find.ts} +43 -49
  124. package/src/model/connection/model/index.ts +8 -0
  125. package/src/model/connection/ops.ts +274 -0
  126. package/src/model/guards.ts +9 -0
  127. package/src/model/index.ts +45 -3
  128. package/src/model/types.ts +35 -18
  129. package/src/model/view/EdgeModel.ts +6 -6
  130. package/src/model/view/LikeC4ViewModel.ts +14 -8
  131. package/src/model/view/NodeModel.ts +6 -5
  132. package/src/types/_common.ts +53 -1
  133. package/src/types/deployments.ts +88 -156
  134. package/src/types/element.ts +2 -2
  135. package/src/types/expression-v2.ts +172 -0
  136. package/src/types/expression.ts +9 -5
  137. package/src/types/global.ts +3 -3
  138. package/src/types/index.ts +220 -13
  139. package/src/types/model.ts +28 -24
  140. package/src/types/operators.ts +1 -1
  141. package/src/types/relation.ts +14 -10
  142. package/src/types/theme.ts +0 -1
  143. package/src/types/view.ts +20 -18
  144. package/src/utils/const.ts +1 -0
  145. package/src/utils/fqn.ts +140 -49
  146. package/src/utils/getOrCreate.ts +1 -1
  147. package/src/utils/index.ts +74 -9
  148. package/src/utils/iterable/_types.ts +5 -0
  149. package/src/utils/iterable/filter.ts +55 -0
  150. package/src/utils/iterable/flat.ts +17 -0
  151. package/src/utils/iterable/index.ts +12 -0
  152. package/src/utils/iterable/map.ts +40 -0
  153. package/src/utils/iterable/reduce.ts +24 -0
  154. package/src/utils/iterable/some.ts +36 -0
  155. package/src/utils/iterable/to.ts +19 -0
  156. package/src/utils/iterable/unique.ts +29 -0
  157. package/src/utils/relations.ts +3 -64
  158. package/src/utils/set.ts +11 -9
  159. package/src/utils/string-hash.ts +1 -1
  160. package/dist/compute-view/index.mjs +0 -79
  161. package/dist/model/index.mjs +0 -2
  162. package/dist/shared/core.BBgiAAv1.mjs +0 -144
  163. package/dist/shared/core.BPyJvuMU.mjs +0 -2420
  164. package/dist/shared/core.BQ4AbfvB.mjs +0 -9228
  165. package/dist/shared/core.k12s_keD.mjs +0 -203
  166. package/dist/types/index.mjs +0 -21
  167. package/src/builder/Builder.test-d.ts +0 -124
  168. package/src/builder/Builder.view.ts +0 -543
  169. package/src/compute-view/LikeC4ModelGraph.ts +0 -330
  170. package/src/compute-view/deployment-view/Memory.ts +0 -108
  171. package/src/compute-view/deployment-view/Stage.ts +0 -145
  172. package/src/compute-view/deployment-view/predicates/deployment-ref.ts +0 -146
  173. package/src/compute-view/element-view/predicates.ts +0 -517
  174. package/src/compute-view/utils/sortNodes.ts +0 -101
  175. package/src/model/connection/ConnectionModel.ts +0 -94
  176. package/src/model/connection/DeploymentConnectionModel.ts +0 -99
@@ -1,203 +0,0 @@
1
- function u$1(t,n,a){let o=r=>t(r,...n);return a===void 0?o:Object.assign(o,{lazy:a,lazyArgs:n})}
2
-
3
- function u(r,n,a){let o=r.length-n.length;if(o===0)return r(...n);if(o===1)return u$1(r,n,a);throw new Error("Wrong number of arguments")}
4
-
5
- function n(e){return e==null}
6
-
7
- function o(r){return Array.isArray(r)}
8
-
9
- function nonNullable(value, message) {
10
- if (typeof value === "undefined" || value == null) {
11
- throw new Error(message ?? `Expected defined value, but received ${value}`);
12
- }
13
- return value;
14
- }
15
- function invariant(condition, message) {
16
- if (condition) {
17
- return;
18
- }
19
- throw new Error(message ?? "Invariant failed");
20
- }
21
- function nonexhaustive(value) {
22
- throw new Error(`NonExhaustive value: ${value}`);
23
- }
24
-
25
- var DeploymentElement;
26
- ((DeploymentElement2) => {
27
- DeploymentElement2.isDeploymentNode = (el) => {
28
- return "kind" in el && !("element" in el);
29
- };
30
- DeploymentElement2.isInstance = (el) => {
31
- return "element" in el && !("kind" in el);
32
- };
33
- })(DeploymentElement || (DeploymentElement = {}));
34
- var DeploymentRelationExpression;
35
- ((DeploymentRelationExpression2) => {
36
- DeploymentRelationExpression2.isDirect = (expr) => {
37
- return "source" in expr && "target" in expr;
38
- };
39
- DeploymentRelationExpression2.isIncoming = (expr) => {
40
- return "incoming" in expr;
41
- };
42
- DeploymentRelationExpression2.isOutgoing = (expr) => {
43
- return "outgoing" in expr;
44
- };
45
- DeploymentRelationExpression2.isInOut = (expr) => {
46
- return "inout" in expr;
47
- };
48
- })(DeploymentRelationExpression || (DeploymentRelationExpression = {}));
49
- var DeploymentElementExpression;
50
- ((DeploymentElementExpression2) => {
51
- DeploymentElementExpression2.isRef = (expr) => {
52
- return "ref" in expr;
53
- };
54
- DeploymentElementExpression2.isWildcard = (expr) => {
55
- return "wildcard" in expr && expr.wildcard === true;
56
- };
57
- })(DeploymentElementExpression || (DeploymentElementExpression = {}));
58
- var DeploymentExpression;
59
- ((DeploymentExpression2) => {
60
- DeploymentExpression2.isElement = (expr) => {
61
- return DeploymentElementExpression.isRef(expr) || DeploymentElementExpression.isWildcard(expr);
62
- };
63
- DeploymentExpression2.isRelation = (expr) => {
64
- return !DeploymentExpression2.isElement(expr);
65
- };
66
- })(DeploymentExpression || (DeploymentExpression = {}));
67
-
68
- function AsFqn(name, parent) {
69
- return parent ? parent + "." + name : name;
70
- }
71
- const BorderStyles = ["solid", "dashed", "dotted", "none"];
72
- var ElementKind;
73
- ((ElementKind2) => {
74
- ElementKind2.Group = "@group";
75
- })(ElementKind || (ElementKind = {}));
76
- const ElementShapes = [
77
- "rectangle",
78
- "person",
79
- "browser",
80
- "mobile",
81
- "cylinder",
82
- "storage",
83
- "queue"
84
- ];
85
- const DefaultThemeColor = "primary";
86
- const DefaultElementShape = "rectangle";
87
-
88
- function isViewRulePredicate(rule) {
89
- return "include" in rule && Array.isArray(rule.include) || "exclude" in rule && Array.isArray(rule.exclude);
90
- }
91
- function isViewRuleGlobalPredicateRef(rule) {
92
- return "predicateId" in rule;
93
- }
94
- function isViewRuleStyle(rule) {
95
- return "style" in rule && "targets" in rule && Array.isArray(rule.targets);
96
- }
97
- function isViewRuleGlobalStyle(rule) {
98
- return "styleId" in rule;
99
- }
100
- function isAutoLayoutDirection(autoLayout) {
101
- return autoLayout === "TB" || autoLayout === "BT" || autoLayout === "LR" || autoLayout === "RL";
102
- }
103
- function isViewRuleAutoLayout(rule) {
104
- return "direction" in rule;
105
- }
106
- function isViewRuleGroup(rule) {
107
- return "title" in rule && "groupRules" in rule && Array.isArray(rule.groupRules);
108
- }
109
- function isDynamicViewParallelSteps(step) {
110
- return "__parallel" in step && o(step.__parallel);
111
- }
112
- function isDeploymentView(view) {
113
- return view.__ === "deployment";
114
- }
115
- function isDynamicView(view) {
116
- return view.__ === "dynamic";
117
- }
118
- function isElementView(view) {
119
- return n(view.__) || view.__ === "element";
120
- }
121
- function isExtendsElementView(view) {
122
- return isElementView(view) && "extends" in view;
123
- }
124
- function isScopedElementView(view) {
125
- return isElementView(view) && "viewOf" in view;
126
- }
127
- function stepEdgeId(step, parallelStep) {
128
- const id = `step-${String(step).padStart(2, "0")}`;
129
- return parallelStep ? `${id}.${parallelStep}` : id;
130
- }
131
- function isStepEdgeId(id) {
132
- return id.startsWith("step-");
133
- }
134
- function extractStep(id) {
135
- if (!isStepEdgeId(id)) {
136
- throw new Error(`Invalid step edge id: ${id}`);
137
- }
138
- return parseFloat(id.slice("step-".length));
139
- }
140
- function getParallelStepsPrefix(id) {
141
- if (isStepEdgeId(id) && id.includes(".")) {
142
- return id.slice(0, id.indexOf(".") + 1);
143
- }
144
- return null;
145
- }
146
- var ComputedNode;
147
- ((ComputedNode2) => {
148
- function modelRef(node) {
149
- return node.modelRef === 1 ? node.id : node.modelRef ?? null;
150
- }
151
- ComputedNode2.modelRef = modelRef;
152
- function deploymentRef(node) {
153
- return node.deploymentRef === 1 ? node.id : node.deploymentRef ?? null;
154
- }
155
- ComputedNode2.deploymentRef = deploymentRef;
156
- function isNodesGroup(node) {
157
- return node.kind === ElementKind.Group;
158
- }
159
- ComputedNode2.isNodesGroup = isNodesGroup;
160
- })(ComputedNode || (ComputedNode = {}));
161
- var ComputedView;
162
- ((ComputedView2) => {
163
- function isDeployment(view) {
164
- return view.__ === "deployment";
165
- }
166
- ComputedView2.isDeployment = isDeployment;
167
- function isDynamic(view) {
168
- return view.__ === "dynamic";
169
- }
170
- ComputedView2.isDynamic = isDynamic;
171
- function isElement(view) {
172
- return n(view.__) || view.__ === "element";
173
- }
174
- ComputedView2.isElement = isElement;
175
- })(ComputedView || (ComputedView = {}));
176
- function getBBoxCenter({
177
- x,
178
- y,
179
- width,
180
- height
181
- }) {
182
- return {
183
- x: x + width / 2,
184
- y: y + height / 2
185
- };
186
- }
187
- var DiagramNode;
188
- ((DiagramNode2) => {
189
- function modelRef(node) {
190
- return node.modelRef === 1 ? node.id : node.modelRef ?? null;
191
- }
192
- DiagramNode2.modelRef = modelRef;
193
- function deploymentRef(node) {
194
- return node.deploymentRef === 1 ? node.id : node.deploymentRef ?? null;
195
- }
196
- DiagramNode2.deploymentRef = deploymentRef;
197
- function isNodesGroup(node) {
198
- return node.kind === ElementKind.Group;
199
- }
200
- DiagramNode2.isNodesGroup = isNodesGroup;
201
- })(DiagramNode || (DiagramNode = {}));
202
-
203
- export { AsFqn as A, BorderStyles as B, isStepEdgeId as C, DeploymentElement as D, ElementKind as E, extractStep as F, getParallelStepsPrefix as G, ComputedNode as H, ComputedView as I, getBBoxCenter as J, DiagramNode as K, n as a, invariant as b, isScopedElementView as c, DefaultThemeColor as d, DefaultElementShape as e, nonNullable as f, DeploymentRelationExpression as g, DeploymentElementExpression as h, isExtendsElementView as i, DeploymentExpression as j, ElementShapes as k, isViewRulePredicate as l, isViewRuleGlobalPredicateRef as m, nonexhaustive as n, o, isViewRuleStyle as p, isViewRuleGlobalStyle as q, isAutoLayoutDirection as r, isViewRuleAutoLayout as s, isViewRuleGroup as t, u, isDynamicViewParallelSteps as v, isDeploymentView as w, isDynamicView as x, isElementView as y, stepEdgeId as z };
@@ -1,21 +0,0 @@
1
- export { A as AsFqn, B as BorderStyles, H as ComputedNode, I as ComputedView, e as DefaultElementShape, d as DefaultThemeColor, D as DeploymentElement, h as DeploymentElementExpression, j as DeploymentExpression, g as DeploymentRelationExpression, K as DiagramNode, E as ElementKind, k as ElementShapes, F as extractStep, J as getBBoxCenter, G as getParallelStepsPrefix, r as isAutoLayoutDirection, w as isDeploymentView, x as isDynamicView, v as isDynamicViewParallelSteps, y as isElementView, i as isExtendsElementView, c as isScopedElementView, C as isStepEdgeId, s as isViewRuleAutoLayout, m as isViewRuleGlobalPredicateRef, q as isViewRuleGlobalStyle, t as isViewRuleGroup, l as isViewRulePredicate, p as isViewRuleStyle, z as stepEdgeId } from '../shared/core.k12s_keD.mjs';
2
- export { y as DefaultArrowType, D as DefaultLineStyle, z as DefaultRelationshipColor, v as isAndOperator, c as isCustomElement, q as isCustomRelationExpr, h as isElement, f as isElementKindExpr, i as isElementPredicateExpr, a as isElementRef, g as isElementTagExpr, j as isElementWhere, b as isExpandedElementExpr, l as isInOut, m as isIncoming, t as isKindEqual, u as isNotOperator, w as isOrOperator, n as isOutgoing, k as isRelation, o as isRelationExpression, r as isRelationPredicateExpr, p as isRelationWhere, s as isTagEqual, d as isWildcard, x as whereOperatorAsPredicate } from '../shared/core.BBgiAAv1.mjs';
3
-
4
- const ThemeColors = [
5
- "amber",
6
- "blue",
7
- "gray",
8
- "slate",
9
- "green",
10
- "indigo",
11
- "muted",
12
- "primary",
13
- "red",
14
- "secondary",
15
- "sky"
16
- ];
17
- function isThemeColor(color) {
18
- return color in ThemeColors;
19
- }
20
-
21
- export { isThemeColor };
@@ -1,124 +0,0 @@
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('should have types', () => {
7
- const {
8
- model: {
9
- model,
10
- actor,
11
- system,
12
- component,
13
- relTo
14
- },
15
- deployment: {
16
- deployment,
17
- instanceOf,
18
- env,
19
- vm
20
- },
21
- views: {
22
- deploymentView,
23
- views,
24
- view,
25
- viewOf,
26
- $rules,
27
- $include
28
- },
29
- builder
30
- } = Builder.forSpecification({
31
- elements: {
32
- actor: {
33
- style: {
34
- shape: 'person'
35
- }
36
- },
37
- system: {},
38
- component: {}
39
- },
40
- deployments: {
41
- env: {},
42
- vm: {}
43
- },
44
- relationships: {
45
- like: {},
46
- dislike: {}
47
- },
48
- tags: ['tag1', 'tag2', 'tag1']
49
- })
50
-
51
- const m = builder
52
- .with(
53
- model(
54
- actor('alice'),
55
- actor('bob'),
56
- system('cloud').with(
57
- component('backend').with(
58
- component('api'),
59
- component('db')
60
- ),
61
- component('frontend').with(
62
- relTo('cloud.backend.api')
63
- )
64
- )
65
- ),
66
- deployment(
67
- env('prod').with(
68
- vm('vm1'),
69
- vm('vm2')
70
- ),
71
- env('dev').with(
72
- vm('vm1'),
73
- instanceOf('api', 'cloud.backend.api'),
74
- vm('vm2')
75
- )
76
- ),
77
- views(
78
- view('index', $include('*')),
79
- viewOf(
80
- 'cloud',
81
- 'cloud',
82
- $rules(
83
- $include('*'),
84
- $include('cloud.backend.*')
85
- )
86
- ),
87
- deploymentView(
88
- 'prod',
89
- $rules(
90
- $include('prod.*')
91
- )
92
- )
93
- )
94
- )
95
-
96
- expectTypeOf(m.Types.Fqn).toEqualTypeOf(
97
- '' as 'alice' | 'bob' | 'cloud' | 'cloud.backend' | 'cloud.backend.api' | 'cloud.backend.db' | 'cloud.frontend'
98
- )
99
- expectTypeOf(m.Types.ViewId).toEqualTypeOf(
100
- '' as 'index' | 'cloud' | 'prod'
101
- )
102
- expectTypeOf(m.Types.DeploymentFqn).toEqualTypeOf(
103
- '' as 'prod' | 'dev' | 'prod.vm1' | 'prod.vm2' | 'dev.vm1' | 'dev.vm2' | 'dev.api'
104
- )
105
-
106
- expectTypeOf(m.build()).toEqualTypeOf(
107
- {} as ParsedLikeC4Model<
108
- 'actor' | 'system' | 'component',
109
- 'like' | 'dislike',
110
- 'tag1' | 'tag2',
111
- 'alice' | 'bob' | 'cloud' | 'cloud.backend' | 'cloud.backend.api' | 'cloud.backend.db' | 'cloud.frontend',
112
- 'index' | 'cloud' | 'prod',
113
- 'prod' | 'dev' | 'prod.vm1' | 'prod.vm2' | 'dev.vm1' | 'dev.vm2' | 'dev.api'
114
- >
115
- )
116
-
117
- expectTypeOf(m.buildComputedModel()).toEqualTypeOf(
118
- {} as LikeC4Model.Computed<
119
- 'alice' | 'bob' | 'cloud' | 'cloud.backend' | 'cloud.backend.api' | 'cloud.backend.db' | 'cloud.frontend',
120
- 'prod' | 'dev' | 'prod.vm1' | 'prod.vm2' | 'dev.vm1' | 'dev.vm2' | 'dev.api',
121
- 'index' | 'cloud' | 'prod'
122
- >
123
- )
124
- })