@likec4/core 1.31.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.
Files changed (186) hide show
  1. package/README.md +407 -5
  2. package/dist/builder/index.d.mts +221 -42
  3. package/dist/builder/index.mjs +118 -65
  4. package/dist/compute-view/index.d.mts +23 -7
  5. package/dist/compute-view/index.mjs +11 -6
  6. package/dist/compute-view/relationships-view/index.d.mts +9 -7
  7. package/dist/compute-view/relationships-view/index.mjs +3 -2
  8. package/dist/index.d.mts +10 -14
  9. package/dist/index.mjs +9 -6
  10. package/dist/model/index.d.mts +173 -19
  11. package/dist/model/index.mjs +6 -1
  12. package/dist/shared/core.BaYE_r29.d.mts +258 -0
  13. package/dist/shared/core.Bk7wEZFG.mjs +276 -0
  14. package/dist/shared/core.BrCnZFTn.mjs +32 -0
  15. package/dist/shared/core.BuO4ncfY.d.mts +146 -0
  16. package/dist/shared/{core.Bq753SYD.mjs → core.CBpKAlhj.mjs} +2012 -4422
  17. package/dist/shared/core.CCWXGc6G.d.mts +920 -0
  18. package/dist/shared/core.CUYDgv2-.mjs +214 -0
  19. package/dist/shared/{core.Cu-UdkSl.mjs → core.CpXlRyE5.mjs} +7 -494
  20. package/dist/shared/{core.C-YXI-43.mjs → core.Cy9smucx.mjs} +3 -1
  21. package/dist/shared/core.CywrQs86.d.mts +31 -0
  22. package/dist/shared/core.DoK86JEe.mjs +518 -0
  23. package/dist/shared/core.Dpq3P3YJ.d.mts +1265 -0
  24. package/dist/shared/{core.D2830qgg.d.mts → core.Pf5I9o0e.d.mts} +1 -1
  25. package/dist/shared/core.cbA9VZ02.mjs +2681 -0
  26. package/dist/shared/{core.CQXU9DF7.mjs → core.rmvsy0n3.mjs} +23 -32
  27. package/dist/types/aux.d.mts +3 -0
  28. package/dist/types/aux.mjs +1 -0
  29. package/dist/types/index.d.mts +7 -45
  30. package/dist/types/index.mjs +130 -3
  31. package/dist/utils/index.d.mts +221 -53
  32. package/dist/utils/index.mjs +14 -10
  33. package/package.json +15 -7
  34. package/src/builder/Builder.deploymentModel.ts +82 -18
  35. package/src/builder/Builder.element.ts +40 -20
  36. package/src/builder/Builder.model.ts +66 -17
  37. package/src/builder/Builder.ts +168 -76
  38. package/src/builder/Builder.view-common.ts +35 -17
  39. package/src/builder/Builder.view-deployment.ts +25 -25
  40. package/src/builder/Builder.view-element.ts +13 -12
  41. package/src/builder/Builder.views.ts +12 -7
  42. package/src/builder/__snapshots__/Builder-style1.spec.ts.snap +62 -34
  43. package/src/builder/__snapshots__/Builder-style2.compute-model.json5 +319 -0
  44. package/src/builder/__snapshots__/Builder-style2.spec.ts.snap +45 -24
  45. package/src/builder/_types.ts +34 -27
  46. package/src/compute-view/compute-view.ts +31 -34
  47. package/src/compute-view/deployment-view/__test__/TestHelper.ts +27 -14
  48. package/src/compute-view/deployment-view/__test__/fixture.ts +15 -13
  49. package/src/compute-view/deployment-view/_types.ts +10 -10
  50. package/src/compute-view/deployment-view/clean-connections.ts +5 -7
  51. package/src/compute-view/deployment-view/compute.ts +16 -13
  52. package/src/compute-view/deployment-view/memory/memory.ts +5 -6
  53. package/src/compute-view/deployment-view/predicates/deploymentRefs.ts +4 -5
  54. package/src/compute-view/deployment-view/predicates/relation-direct.ts +25 -50
  55. package/src/compute-view/deployment-view/predicates/relation-in-out.ts +5 -7
  56. package/src/compute-view/deployment-view/predicates/relation-incoming.ts +7 -11
  57. package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +7 -10
  58. package/src/compute-view/deployment-view/predicates/utils.ts +37 -31
  59. package/src/compute-view/deployment-view/predicates/wildcard.ts +3 -2
  60. package/src/compute-view/deployment-view/stages/stage-final.ts +2 -2
  61. package/src/compute-view/deployment-view/stages/stage-include.ts +1 -1
  62. package/src/compute-view/deployment-view/utils.ts +79 -72
  63. package/src/compute-view/dynamic-view/__test__/fixture.ts +20 -11
  64. package/src/compute-view/dynamic-view/compute.ts +60 -53
  65. package/src/compute-view/element-view/__test__/TestHelper.ts +53 -29
  66. package/src/compute-view/element-view/__test__/__snapshots__/legacy.spec.ts.snap +26 -26
  67. package/src/compute-view/element-view/__test__/fixture.ts +134 -83
  68. package/src/compute-view/element-view/_types.ts +14 -19
  69. package/src/compute-view/element-view/clean-connections.ts +12 -8
  70. package/src/compute-view/element-view/compute.ts +61 -51
  71. package/src/compute-view/element-view/memory/NodeGroup.ts +8 -9
  72. package/src/compute-view/element-view/memory/memory.ts +22 -22
  73. package/src/compute-view/element-view/memory/stage-include.ts +5 -3
  74. package/src/compute-view/element-view/predicates/_utils.ts +18 -14
  75. package/src/compute-view/element-view/predicates/element-expand.ts +4 -5
  76. package/src/compute-view/element-view/predicates/element-kind-tag.ts +3 -4
  77. package/src/compute-view/element-view/predicates/element-ref.ts +3 -4
  78. package/src/compute-view/element-view/predicates/relation-direct.ts +16 -12
  79. package/src/compute-view/element-view/predicates/relation-in-out.ts +7 -8
  80. package/src/compute-view/element-view/predicates/relation-in.ts +19 -26
  81. package/src/compute-view/element-view/predicates/relation-out.ts +20 -21
  82. package/src/compute-view/element-view/predicates/wildcard.ts +3 -3
  83. package/src/compute-view/element-view/utils.ts +25 -23
  84. package/src/compute-view/index.ts +1 -1
  85. package/src/compute-view/memory/AbstractStageExclude.ts +3 -4
  86. package/src/compute-view/memory/AbstractStageInclude.ts +1 -1
  87. package/src/compute-view/memory/_types.ts +3 -2
  88. package/src/compute-view/relationships-view/_types.ts +3 -4
  89. package/src/compute-view/relationships-view/compute.ts +8 -11
  90. package/src/compute-view/relationships-view/layout.ts +6 -6
  91. package/src/compute-view/relationships-view/utils.ts +4 -4
  92. package/src/compute-view/utils/ancestorsOfNode.ts +7 -7
  93. package/src/compute-view/utils/applyCustomElementProperties.ts +16 -8
  94. package/src/compute-view/utils/applyCustomRelationProperties.ts +19 -9
  95. package/src/compute-view/utils/applyViewRuleStyles.ts +18 -10
  96. package/src/compute-view/utils/buildComputedNodes.ts +40 -40
  97. package/src/compute-view/utils/buildElementNotations.ts +14 -14
  98. package/src/compute-view/utils/elementExpressionToPredicate.ts +14 -15
  99. package/src/compute-view/utils/link-nodes-with-edges.ts +6 -4
  100. package/src/compute-view/utils/merge-props-from-relationships.ts +52 -20
  101. package/src/compute-view/utils/relationExpressionToPredicates.ts +19 -19
  102. package/src/compute-view/utils/resolve-extended-views.ts +8 -7
  103. package/src/compute-view/utils/resolve-global-rules.ts +31 -26
  104. package/src/compute-view/utils/topological-sort.ts +14 -14
  105. package/src/compute-view/utils/view-hash.ts +2 -2
  106. package/src/compute-view/utils/with-readable-edges.ts +9 -5
  107. package/src/index.ts +0 -32
  108. package/src/model/DeploymentElementModel.ts +171 -144
  109. package/src/model/DeploymentModel.ts +88 -65
  110. package/src/model/ElementModel.ts +85 -74
  111. package/src/model/LikeC4Model.ts +430 -241
  112. package/src/model/RelationModel.ts +63 -29
  113. package/src/model/__test__/fixture.ts +50 -36
  114. package/src/model/connection/Connection.ts +2 -2
  115. package/src/model/connection/deployment/DeploymentConnectionModel.ts +21 -24
  116. package/src/model/connection/deployment/find.ts +1 -1
  117. package/src/model/connection/model/ConnectionModel.ts +21 -20
  118. package/src/model/connection/model/find.ts +7 -7
  119. package/src/model/connection/ops.ts +6 -6
  120. package/src/model/guards.ts +66 -14
  121. package/src/model/index.ts +20 -7
  122. package/src/model/types.ts +41 -97
  123. package/src/model/view/EdgeModel.ts +47 -41
  124. package/src/model/view/LikeC4ViewModel.ts +130 -80
  125. package/src/model/view/NodeModel.ts +102 -96
  126. package/src/theme/element.ts +1 -1
  127. package/src/theme/index.ts +9 -9
  128. package/src/theme/relationships.ts +1 -1
  129. package/src/types/_common.ts +21 -15
  130. package/src/types/aux.ts +285 -0
  131. package/src/types/const.ts +34 -0
  132. package/src/types/expression-model.ts +292 -0
  133. package/src/types/expression.ts +311 -0
  134. package/src/types/fqnRef.ts +88 -0
  135. package/src/types/geometry.ts +131 -0
  136. package/src/types/global.ts +10 -8
  137. package/src/types/index.ts +39 -201
  138. package/src/types/model-data.ts +52 -84
  139. package/src/types/model-deployment.ts +87 -0
  140. package/src/types/model-dump.ts +72 -0
  141. package/src/types/model-logical.ts +111 -0
  142. package/src/types/model-spec.ts +81 -0
  143. package/src/types/operators.ts +51 -52
  144. package/src/types/scalar.ts +114 -0
  145. package/src/types/styles.ts +123 -0
  146. package/src/types/view-changes.ts +4 -5
  147. package/src/types/view-common.ts +157 -0
  148. package/src/types/view-computed.ts +113 -0
  149. package/src/types/view-layouted.ts +82 -0
  150. package/src/types/view-parsed.deployment.ts +40 -0
  151. package/src/types/view-parsed.dynamic.ts +78 -0
  152. package/src/types/view-parsed.element.ts +65 -0
  153. package/src/types/view.ts +122 -542
  154. package/src/utils/compare-natural.ts +43 -1
  155. package/src/utils/getOrCreate.ts +0 -34
  156. package/src/utils/index.ts +7 -12
  157. package/src/utils/iterable/filter.ts +1 -1
  158. package/src/utils/iterable/find.ts +3 -1
  159. package/src/utils/iterable/head.ts +22 -0
  160. package/src/utils/iterable/index.ts +1 -0
  161. package/src/utils/iterable/map.ts +1 -1
  162. package/src/utils/iterable/reduce.ts +1 -1
  163. package/src/utils/iterable/some.ts +1 -1
  164. package/src/utils/memoize-prop.ts +30 -0
  165. package/src/utils/object-hash.ts +1 -1
  166. package/src/utils/relations.ts +14 -11
  167. package/src/utils/string-hash.ts +1 -1
  168. package/dist/shared/core.CQDU11hR.d.mts +0 -753
  169. package/dist/shared/core.DJvmfnEi.d.mts +0 -1153
  170. package/dist/shared/core.DgfwjBtu.mjs +0 -495
  171. package/dist/shared/core.Dx7siloV.d.mts +0 -146
  172. package/dist/shared/core.SjLhMA7a.d.mts +0 -62
  173. package/src/builder/__snapshots__/Builder.spec.ts.snap +0 -374
  174. package/src/compute-view/element-view/predicates.ts +0 -520
  175. package/src/compute-view/utils/uniqueTags.ts +0 -21
  176. package/src/types/deployments.ts +0 -170
  177. package/src/types/element.ts +0 -109
  178. package/src/types/expression-v2-model.ts +0 -314
  179. package/src/types/expression-v2.ts +0 -392
  180. package/src/types/overview-graph.ts +0 -43
  181. package/src/types/relation.ts +0 -61
  182. package/src/types/scalars.ts +0 -39
  183. package/src/types/theme.ts +0 -82
  184. package/src/types/view-notation.ts +0 -9
  185. package/src/utils/graphlib.ts +0 -10
  186. /package/src/{errors/index.ts → utils/invariant.ts} +0 -0
@@ -1,374 +0,0 @@
1
- // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
-
3
- exports[`Builder > should build nested elements and relTo 1`] = `
4
- {
5
- "deployments": {
6
- "elements": {},
7
- "relations": {},
8
- },
9
- "elements": {
10
- "s1": {
11
- "color": "green",
12
- "description": null,
13
- "id": "s1",
14
- "kind": "system",
15
- "links": null,
16
- "shape": "rectangle",
17
- "style": {
18
- "opacity": 10,
19
- },
20
- "tags": null,
21
- "technology": null,
22
- "title": "s1",
23
- },
24
- "s1.1": {
25
- "color": "primary",
26
- "description": null,
27
- "id": "s1.1",
28
- "kind": "component",
29
- "links": null,
30
- "shape": "browser",
31
- "style": {},
32
- "tags": null,
33
- "technology": null,
34
- "title": "1",
35
- },
36
- "s2": {
37
- "color": "green",
38
- "description": null,
39
- "id": "s2",
40
- "kind": "system",
41
- "links": null,
42
- "shape": "rectangle",
43
- "style": {
44
- "opacity": 10,
45
- },
46
- "tags": null,
47
- "technology": null,
48
- "title": "s2",
49
- },
50
- "s2.1": {
51
- "color": "primary",
52
- "description": null,
53
- "id": "s2.1",
54
- "kind": "component",
55
- "links": null,
56
- "shape": "browser",
57
- "style": {},
58
- "tags": null,
59
- "technology": null,
60
- "title": "Component s2.1",
61
- },
62
- "s2.1.2": {
63
- "color": "primary",
64
- "description": null,
65
- "id": "s2.1.2",
66
- "kind": "component",
67
- "links": null,
68
- "shape": "browser",
69
- "style": {},
70
- "tags": null,
71
- "technology": null,
72
- "title": "Component s2.1.2",
73
- },
74
- "s2.1.2.3": {
75
- "color": "primary",
76
- "description": null,
77
- "id": "s2.1.2.3",
78
- "kind": "component",
79
- "links": null,
80
- "shape": "browser",
81
- "style": {},
82
- "tags": null,
83
- "technology": null,
84
- "title": "3",
85
- },
86
- },
87
- "globals": {
88
- "dynamicPredicates": {},
89
- "predicates": {},
90
- "styles": {},
91
- },
92
- "relations": {
93
- "rel1": {
94
- "id": "rel1",
95
- "source": "s2.1.2.3",
96
- "target": "s1.1",
97
- "title": "relation from s2.1.2.3 to s1.1",
98
- },
99
- "rel2": {
100
- "id": "rel2",
101
- "source": "s2.1",
102
- "target": "s1.1",
103
- "title": "relation from s2.1 to s1.1",
104
- },
105
- "rel3": {
106
- "id": "rel3",
107
- "source": "s1.1",
108
- "target": "s2.1.2",
109
- "title": "relation from s1.1 to s2.1.2",
110
- },
111
- },
112
- "specification": {
113
- "deployments": {},
114
- "elements": {
115
- "component": {
116
- "style": {
117
- "shape": "browser",
118
- },
119
- },
120
- "system": {
121
- "style": {
122
- "color": "green",
123
- "opacity": 10,
124
- },
125
- },
126
- },
127
- "relationships": {},
128
- "tags": [],
129
- },
130
- "views": {},
131
- }
132
- `;
133
-
134
- exports[`Builder > should build view 1`] = `
135
- {
136
- "deployments": {
137
- "elements": {},
138
- "relations": {},
139
- },
140
- "elements": {
141
- "1": {
142
- "color": "primary",
143
- "description": null,
144
- "id": "1",
145
- "kind": "component",
146
- "links": null,
147
- "shape": "rectangle",
148
- "style": {},
149
- "tags": null,
150
- "technology": null,
151
- "title": "1",
152
- },
153
- "2": {
154
- "color": "primary",
155
- "description": null,
156
- "id": "2",
157
- "kind": "component",
158
- "links": null,
159
- "shape": "rectangle",
160
- "style": {},
161
- "tags": null,
162
- "technology": null,
163
- "title": "2",
164
- },
165
- "3": {
166
- "color": "primary",
167
- "description": null,
168
- "id": "3",
169
- "kind": "component",
170
- "links": null,
171
- "shape": "rectangle",
172
- "style": {},
173
- "tags": null,
174
- "technology": null,
175
- "title": "3",
176
- },
177
- },
178
- "globals": {
179
- "dynamicPredicates": {},
180
- "predicates": {},
181
- "styles": {},
182
- },
183
- "relations": {},
184
- "specification": {
185
- "deployments": {},
186
- "elements": {
187
- "component": {},
188
- },
189
- "relationships": {},
190
- "tags": [],
191
- },
192
- "views": {
193
- "1": {
194
- "__": "element",
195
- "customColorDefinitions": {},
196
- "description": null,
197
- "id": "1",
198
- "links": null,
199
- "rules": [
200
- {
201
- "include": [
202
- {
203
- "wildcard": true,
204
- },
205
- ],
206
- },
207
- ],
208
- "tags": null,
209
- "title": "View 1",
210
- },
211
- "2": {
212
- "__": "element",
213
- "customColorDefinitions": {},
214
- "description": null,
215
- "id": "2",
216
- "links": null,
217
- "rules": [
218
- {
219
- "include": [
220
- {
221
- "wildcard": true,
222
- },
223
- ],
224
- },
225
- {
226
- "include": [
227
- {
228
- "element": "2",
229
- "isChildren": true,
230
- },
231
- ],
232
- },
233
- ],
234
- "tags": null,
235
- "title": "view 2",
236
- },
237
- "3": {
238
- "__": "element",
239
- "customColorDefinitions": {},
240
- "description": null,
241
- "id": "3",
242
- "links": null,
243
- "rules": [
244
- {
245
- "include": [
246
- {
247
- "expanded": "3",
248
- },
249
- ],
250
- },
251
- ],
252
- "tags": null,
253
- "title": "",
254
- },
255
- },
256
- }
257
- `;
258
-
259
- exports[`Builder > should build viewOf 1`] = `
260
- {
261
- "deployments": {
262
- "elements": {},
263
- "relations": {},
264
- },
265
- "elements": {
266
- "1": {
267
- "color": "primary",
268
- "description": null,
269
- "id": "1",
270
- "kind": "component",
271
- "links": null,
272
- "shape": "rectangle",
273
- "style": {},
274
- "tags": null,
275
- "technology": null,
276
- "title": "1",
277
- },
278
- "2": {
279
- "color": "primary",
280
- "description": null,
281
- "id": "2",
282
- "kind": "component",
283
- "links": null,
284
- "shape": "rectangle",
285
- "style": {},
286
- "tags": null,
287
- "technology": null,
288
- "title": "2",
289
- },
290
- "2.3": {
291
- "color": "primary",
292
- "description": null,
293
- "id": "2.3",
294
- "kind": "component",
295
- "links": null,
296
- "shape": "rectangle",
297
- "style": {},
298
- "tags": null,
299
- "technology": null,
300
- "title": "3",
301
- },
302
- "2.3.4": {
303
- "color": "primary",
304
- "description": null,
305
- "id": "2.3.4",
306
- "kind": "component",
307
- "links": null,
308
- "shape": "rectangle",
309
- "style": {},
310
- "tags": null,
311
- "technology": null,
312
- "title": "4",
313
- },
314
- },
315
- "globals": {
316
- "dynamicPredicates": {},
317
- "predicates": {},
318
- "styles": {},
319
- },
320
- "relations": {},
321
- "specification": {
322
- "deployments": {},
323
- "elements": {
324
- "component": {},
325
- },
326
- "relationships": {},
327
- "tags": [],
328
- },
329
- "views": {
330
- "1": {
331
- "__": "element",
332
- "customColorDefinitions": {},
333
- "description": null,
334
- "id": "1",
335
- "links": null,
336
- "rules": [
337
- {
338
- "include": [
339
- {
340
- "wildcard": true,
341
- },
342
- ],
343
- },
344
- {
345
- "include": [
346
- {
347
- "inout": {
348
- "element": "2.3",
349
- "isChildren": true,
350
- },
351
- },
352
- ],
353
- },
354
- {
355
- "exclude": [
356
- {
357
- "source": {
358
- "expanded": "1",
359
- },
360
- "target": {
361
- "element": "2.3",
362
- "isChildren": true,
363
- },
364
- },
365
- ],
366
- },
367
- ],
368
- "tags": null,
369
- "title": "View 1",
370
- "viewOf": "2",
371
- },
372
- },
373
- }
374
- `;