@likec4/core 1.17.1 → 1.18.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 (112) hide show
  1. package/dist/compute-view/index.d.mts +91 -0
  2. package/dist/compute-view/index.d.ts +91 -0
  3. package/dist/compute-view/index.mjs +79 -0
  4. package/dist/index.d.mts +246 -434
  5. package/dist/index.d.ts +246 -434
  6. package/dist/index.mjs +418 -1322
  7. package/dist/model/index.d.mts +642 -0
  8. package/dist/model/index.d.ts +642 -0
  9. package/dist/model/index.mjs +2 -0
  10. package/dist/shared/core.BBgiAAv1.mjs +144 -0
  11. package/dist/shared/core.BPyJvuMU.mjs +2420 -0
  12. package/dist/shared/core.BQ4AbfvB.mjs +9228 -0
  13. package/dist/shared/{core.CoLQkcYL.d.mts → core.DMYY7C8s.d.mts} +398 -249
  14. package/dist/shared/{core.CoLQkcYL.d.ts → core.DMYY7C8s.d.ts} +398 -249
  15. package/dist/shared/core.k12s_keD.mjs +203 -0
  16. package/dist/types/index.d.mts +69 -1
  17. package/dist/types/index.d.ts +69 -1
  18. package/dist/types/index.mjs +21 -1
  19. package/package.json +38 -40
  20. package/src/builder/Builder.deployment.ts +219 -0
  21. package/src/builder/Builder.deploymentModel.ts +360 -0
  22. package/src/builder/Builder.element.ts +17 -19
  23. package/src/builder/Builder.model.ts +13 -2
  24. package/src/builder/Builder.test-d.ts +59 -4
  25. package/src/builder/Builder.ts +238 -53
  26. package/src/builder/Builder.view.ts +238 -53
  27. package/src/builder/_types.ts +87 -15
  28. package/src/compute-view/LikeC4ModelGraph.ts +330 -0
  29. package/src/compute-view/compute-view.ts +92 -0
  30. package/src/compute-view/deployment-view/Memory.ts +108 -0
  31. package/src/compute-view/deployment-view/Stage.ts +145 -0
  32. package/src/compute-view/deployment-view/__test__/fixture.ts +210 -0
  33. package/src/compute-view/deployment-view/_types.ts +29 -0
  34. package/src/compute-view/deployment-view/clean-connections.ts +229 -0
  35. package/src/compute-view/deployment-view/compute.ts +111 -0
  36. package/src/compute-view/deployment-view/predicates/deployment-ref.ts +146 -0
  37. package/src/compute-view/deployment-view/predicates/relation-direct.ts +130 -0
  38. package/src/compute-view/deployment-view/predicates/relation-in-out.ts +43 -0
  39. package/src/compute-view/deployment-view/predicates/relation-incoming.ts +46 -0
  40. package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +49 -0
  41. package/src/compute-view/deployment-view/predicates/wildcard.ts +29 -0
  42. package/src/compute-view/deployment-view/utils.ts +212 -0
  43. package/src/compute-view/dynamic-view/__test__/fixture.ts +58 -0
  44. package/src/compute-view/dynamic-view/compute.ts +310 -0
  45. package/src/compute-view/element-view/__test__/__snapshots__/legacy.spec.ts.snap +456 -0
  46. package/src/compute-view/element-view/__test__/fixture.ts +645 -0
  47. package/src/compute-view/element-view/compute.ts +734 -0
  48. package/src/compute-view/element-view/predicates.ts +517 -0
  49. package/src/compute-view/index.ts +5 -0
  50. package/src/compute-view/utils/__snapshots__/sortNodes.spec.ts.snap +113 -0
  51. package/src/compute-view/utils/ancestorsOfNode.ts +19 -0
  52. package/src/compute-view/utils/applyCustomElementProperties.ts +66 -0
  53. package/src/compute-view/utils/applyCustomRelationProperties.ts +41 -0
  54. package/src/compute-view/utils/applyViewRuleStyles.ts +53 -0
  55. package/src/compute-view/utils/buildComputedNodes.ts +148 -0
  56. package/src/compute-view/utils/buildElementNotations.ts +63 -0
  57. package/src/compute-view/utils/derive-edge-props-from-relationships.ts +97 -0
  58. package/src/compute-view/utils/elementExpressionToPredicate.ts +52 -0
  59. package/src/compute-view/utils/link-nodes-with-edges.ts +58 -0
  60. package/src/compute-view/utils/relationExpressionToPredicates.ts +55 -0
  61. package/src/compute-view/utils/resolve-extended-views.ts +65 -0
  62. package/src/compute-view/utils/resolve-global-rules.ts +83 -0
  63. package/src/compute-view/utils/sortNodes.ts +101 -0
  64. package/src/compute-view/utils/topological-sort.ts +160 -0
  65. package/src/compute-view/utils/uniqueTags.test.ts +42 -0
  66. package/src/compute-view/utils/uniqueTags.ts +21 -0
  67. package/src/compute-view/utils/view-hash.ts +27 -0
  68. package/src/compute-view/utils/with-readable-edges.ts +31 -0
  69. package/src/index.ts +5 -1
  70. package/src/model/DeploymentElementModel.ts +534 -0
  71. package/src/model/DeploymentModel.ts +364 -0
  72. package/src/model/ElementModel.ts +195 -0
  73. package/src/model/LikeC4Model.test-d.ts +151 -0
  74. package/src/model/LikeC4Model.ts +280 -457
  75. package/src/model/RelationModel.ts +84 -0
  76. package/src/model/__test__/fixture.ts +153 -338
  77. package/src/model/connection/ConnectionModel.ts +94 -0
  78. package/src/model/connection/DeploymentConnectionModel.ts +99 -0
  79. package/src/model/connection/deployment.ts +124 -0
  80. package/src/model/connection/model.ts +123 -0
  81. package/src/model/index.ts +4 -2
  82. package/src/model/types.ts +95 -15
  83. package/src/model/view/EdgeModel.ts +103 -0
  84. package/src/model/view/LikeC4ViewModel.ts +220 -0
  85. package/src/model/view/NodeModel.ts +228 -0
  86. package/src/types/_common.ts +2 -0
  87. package/src/types/deployments.ts +237 -0
  88. package/src/types/element.ts +7 -3
  89. package/src/types/expression.ts +8 -6
  90. package/src/types/index.ts +1 -0
  91. package/src/types/model.ts +68 -9
  92. package/src/types/overview-graph.ts +2 -2
  93. package/src/types/relation.ts +4 -4
  94. package/src/types/view-notation.ts +2 -2
  95. package/src/types/view.ts +104 -30
  96. package/src/utils/{commonHead.ts → common-head.ts} +2 -0
  97. package/src/utils/fqn.ts +83 -27
  98. package/src/utils/getOrCreate.ts +42 -0
  99. package/src/utils/graphlib.ts +10 -0
  100. package/src/utils/index.ts +4 -1
  101. package/src/utils/object-hash.ts +3 -0
  102. package/src/utils/set.ts +76 -0
  103. package/src/utils/string-hash.ts +16 -0
  104. package/dist/index.cjs +0 -5452
  105. package/dist/index.d.cts +0 -1053
  106. package/dist/shared/core.BXTs-8n7.mjs +0 -293
  107. package/dist/shared/core.CoLQkcYL.d.cts +0 -734
  108. package/dist/shared/core.DIYZvpVg.cjs +0 -353
  109. package/dist/types/index.cjs +0 -70
  110. package/dist/types/index.d.cts +0 -2
  111. package/src/model/LikeC4DiagramModel.ts +0 -338
  112. package/src/model/LikeC4ViewModel.ts +0 -320
@@ -0,0 +1,456 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`compute-element-view > view of cloud 1`] = `
4
+ {
5
+ "__": "element",
6
+ "autoLayout": {
7
+ "direction": "TB",
8
+ },
9
+ "customColorDefinitions": {},
10
+ "description": null,
11
+ "edges": [
12
+ {
13
+ "id": "customer:cloud.frontend",
14
+ "label": "opens in browser",
15
+ "parent": null,
16
+ "relations": [
17
+ "customer:cloud.frontend.dashboard",
18
+ ],
19
+ "source": "customer",
20
+ "target": "cloud.frontend",
21
+ },
22
+ {
23
+ "id": "support:cloud.frontend",
24
+ "label": "manages",
25
+ "parent": null,
26
+ "relations": [
27
+ "support:cloud.frontend.adminPanel",
28
+ ],
29
+ "source": "support",
30
+ "target": "cloud.frontend",
31
+ },
32
+ {
33
+ "id": "cloud.frontend:cloud.backend",
34
+ "label": "requests",
35
+ "parent": "cloud",
36
+ "relations": [
37
+ "cloud.frontend:cloud.backend",
38
+ "cloud.frontend.dashboard:cloud.backend.graphql",
39
+ "cloud.frontend.adminPanel:cloud.backend.graphql",
40
+ ],
41
+ "source": "cloud.frontend",
42
+ "tags": [
43
+ "next",
44
+ "old",
45
+ ],
46
+ "target": "cloud.backend",
47
+ },
48
+ {
49
+ "id": "cloud.backend:amazon",
50
+ "label": "uploads",
51
+ "parent": null,
52
+ "relations": [
53
+ "cloud.backend.storage:amazon.s3",
54
+ ],
55
+ "source": "cloud.backend",
56
+ "tags": [
57
+ "aws",
58
+ "legacy",
59
+ "storage",
60
+ ],
61
+ "target": "amazon",
62
+ },
63
+ {
64
+ "id": "cloud.backend:email",
65
+ "label": "schedule",
66
+ "parent": null,
67
+ "relations": [
68
+ "cloud.backend:email",
69
+ ],
70
+ "source": "cloud.backend",
71
+ "tags": [
72
+ "communication",
73
+ ],
74
+ "target": "email",
75
+ },
76
+ ],
77
+ "hash": "3e66b5ad85ed469ae32e87604c15a6e7e186dcba",
78
+ "id": "index",
79
+ "links": null,
80
+ "nodes": [
81
+ {
82
+ "children": [],
83
+ "color": "primary",
84
+ "description": null,
85
+ "id": "customer",
86
+ "inEdges": [],
87
+ "kind": "actor",
88
+ "level": 0,
89
+ "links": null,
90
+ "modelRef": 1,
91
+ "outEdges": [
92
+ "customer:cloud.frontend",
93
+ ],
94
+ "parent": null,
95
+ "shape": "person",
96
+ "style": {},
97
+ "tags": null,
98
+ "technology": null,
99
+ "title": "customer",
100
+ },
101
+ {
102
+ "children": [],
103
+ "color": "primary",
104
+ "description": null,
105
+ "id": "support",
106
+ "inEdges": [],
107
+ "kind": "actor",
108
+ "level": 0,
109
+ "links": null,
110
+ "modelRef": 1,
111
+ "outEdges": [
112
+ "support:cloud.frontend",
113
+ ],
114
+ "parent": null,
115
+ "shape": "person",
116
+ "style": {},
117
+ "tags": null,
118
+ "technology": null,
119
+ "title": "support",
120
+ },
121
+ {
122
+ "children": [
123
+ "cloud.frontend",
124
+ "cloud.backend",
125
+ ],
126
+ "color": "primary",
127
+ "depth": 1,
128
+ "description": null,
129
+ "id": "cloud",
130
+ "inEdges": [
131
+ "support:cloud.frontend",
132
+ "customer:cloud.frontend",
133
+ ],
134
+ "kind": "system",
135
+ "level": 0,
136
+ "links": null,
137
+ "modelRef": 1,
138
+ "outEdges": [
139
+ "cloud.backend:amazon",
140
+ "cloud.backend:email",
141
+ ],
142
+ "parent": null,
143
+ "shape": "rectangle",
144
+ "style": {},
145
+ "tags": [
146
+ "next",
147
+ "old",
148
+ ],
149
+ "technology": null,
150
+ "title": "cloud",
151
+ },
152
+ {
153
+ "children": [],
154
+ "color": "primary",
155
+ "description": null,
156
+ "id": "cloud.frontend",
157
+ "inEdges": [
158
+ "support:cloud.frontend",
159
+ "customer:cloud.frontend",
160
+ ],
161
+ "kind": "container",
162
+ "level": 1,
163
+ "links": null,
164
+ "modelRef": 1,
165
+ "outEdges": [
166
+ "cloud.frontend:cloud.backend",
167
+ ],
168
+ "parent": "cloud",
169
+ "shape": "browser",
170
+ "style": {},
171
+ "tags": null,
172
+ "technology": null,
173
+ "title": "frontend",
174
+ },
175
+ {
176
+ "children": [],
177
+ "color": "primary",
178
+ "description": null,
179
+ "id": "cloud.backend",
180
+ "inEdges": [
181
+ "cloud.frontend:cloud.backend",
182
+ ],
183
+ "kind": "container",
184
+ "level": 1,
185
+ "links": null,
186
+ "modelRef": 1,
187
+ "outEdges": [
188
+ "cloud.backend:amazon",
189
+ "cloud.backend:email",
190
+ ],
191
+ "parent": "cloud",
192
+ "shape": "rectangle",
193
+ "style": {},
194
+ "tags": null,
195
+ "technology": null,
196
+ "title": "backend",
197
+ },
198
+ {
199
+ "children": [],
200
+ "color": "primary",
201
+ "description": null,
202
+ "id": "email",
203
+ "inEdges": [
204
+ "cloud.backend:email",
205
+ ],
206
+ "kind": "system",
207
+ "level": 0,
208
+ "links": null,
209
+ "modelRef": 1,
210
+ "outEdges": [],
211
+ "parent": null,
212
+ "shape": "rectangle",
213
+ "style": {},
214
+ "tags": null,
215
+ "technology": null,
216
+ "title": "email",
217
+ },
218
+ {
219
+ "children": [],
220
+ "color": "primary",
221
+ "description": null,
222
+ "icon": "tech:aws",
223
+ "id": "amazon",
224
+ "inEdges": [
225
+ "cloud.backend:amazon",
226
+ ],
227
+ "kind": "system",
228
+ "level": 0,
229
+ "links": null,
230
+ "modelRef": 1,
231
+ "outEdges": [],
232
+ "parent": null,
233
+ "shape": "rectangle",
234
+ "style": {},
235
+ "tags": [
236
+ "aws",
237
+ ],
238
+ "technology": null,
239
+ "title": "amazon",
240
+ },
241
+ ],
242
+ "tags": null,
243
+ "title": null,
244
+ "viewOf": "cloud",
245
+ }
246
+ `;
247
+
248
+ exports[`compute-element-view > view of cloud.frontend 1`] = `
249
+ {
250
+ "__": "element",
251
+ "autoLayout": {
252
+ "direction": "TB",
253
+ },
254
+ "customColorDefinitions": {},
255
+ "description": null,
256
+ "edges": [
257
+ {
258
+ "id": "support:cloud.frontend.adminPanel",
259
+ "label": "manages",
260
+ "parent": null,
261
+ "relations": [
262
+ "support:cloud.frontend.adminPanel",
263
+ ],
264
+ "source": "support",
265
+ "target": "cloud.frontend.adminPanel",
266
+ },
267
+ {
268
+ "id": "customer:cloud.frontend.dashboard",
269
+ "label": "opens in browser",
270
+ "parent": null,
271
+ "relations": [
272
+ "customer:cloud.frontend.dashboard",
273
+ ],
274
+ "source": "customer",
275
+ "target": "cloud.frontend.dashboard",
276
+ },
277
+ {
278
+ "id": "cloud.frontend.adminPanel:cloud.backend",
279
+ "kind": "graphlql",
280
+ "label": "fetches",
281
+ "line": "dashed",
282
+ "parent": null,
283
+ "relations": [
284
+ "cloud.frontend.adminPanel:cloud.backend.graphql",
285
+ ],
286
+ "source": "cloud.frontend.adminPanel",
287
+ "tags": [
288
+ "old",
289
+ ],
290
+ "tail": "odiamond",
291
+ "target": "cloud.backend",
292
+ },
293
+ {
294
+ "id": "cloud.frontend.dashboard:cloud.backend",
295
+ "kind": "graphlql",
296
+ "label": "requests",
297
+ "line": "solid",
298
+ "parent": null,
299
+ "relations": [
300
+ "cloud.frontend.dashboard:cloud.backend.graphql",
301
+ ],
302
+ "source": "cloud.frontend.dashboard",
303
+ "tags": [
304
+ "next",
305
+ ],
306
+ "target": "cloud.backend",
307
+ },
308
+ ],
309
+ "hash": "c187cb8d56ed752122754d1937d8598e8c1544f7",
310
+ "id": "index",
311
+ "links": null,
312
+ "nodes": [
313
+ {
314
+ "children": [],
315
+ "color": "primary",
316
+ "description": null,
317
+ "id": "support",
318
+ "inEdges": [],
319
+ "kind": "actor",
320
+ "level": 0,
321
+ "links": null,
322
+ "modelRef": 1,
323
+ "outEdges": [
324
+ "support:cloud.frontend.adminPanel",
325
+ ],
326
+ "parent": null,
327
+ "shape": "person",
328
+ "style": {},
329
+ "tags": null,
330
+ "technology": null,
331
+ "title": "support",
332
+ },
333
+ {
334
+ "children": [],
335
+ "color": "primary",
336
+ "description": null,
337
+ "id": "customer",
338
+ "inEdges": [],
339
+ "kind": "actor",
340
+ "level": 0,
341
+ "links": null,
342
+ "modelRef": 1,
343
+ "outEdges": [
344
+ "customer:cloud.frontend.dashboard",
345
+ ],
346
+ "parent": null,
347
+ "shape": "person",
348
+ "style": {},
349
+ "tags": null,
350
+ "technology": null,
351
+ "title": "customer",
352
+ },
353
+ {
354
+ "children": [
355
+ "cloud.frontend.adminPanel",
356
+ "cloud.frontend.dashboard",
357
+ ],
358
+ "color": "primary",
359
+ "depth": 1,
360
+ "description": null,
361
+ "id": "cloud.frontend",
362
+ "inEdges": [
363
+ "customer:cloud.frontend.dashboard",
364
+ "support:cloud.frontend.adminPanel",
365
+ ],
366
+ "kind": "container",
367
+ "level": 0,
368
+ "links": null,
369
+ "modelRef": 1,
370
+ "outEdges": [
371
+ "cloud.frontend.dashboard:cloud.backend",
372
+ "cloud.frontend.adminPanel:cloud.backend",
373
+ ],
374
+ "parent": null,
375
+ "shape": "browser",
376
+ "style": {},
377
+ "tags": null,
378
+ "technology": null,
379
+ "title": "frontend",
380
+ },
381
+ {
382
+ "children": [],
383
+ "color": "primary",
384
+ "description": null,
385
+ "id": "cloud.frontend.adminPanel",
386
+ "inEdges": [
387
+ "support:cloud.frontend.adminPanel",
388
+ ],
389
+ "kind": "component",
390
+ "level": 1,
391
+ "links": null,
392
+ "modelRef": 1,
393
+ "outEdges": [
394
+ "cloud.frontend.adminPanel:cloud.backend",
395
+ ],
396
+ "parent": "cloud.frontend",
397
+ "shape": "rectangle",
398
+ "style": {},
399
+ "tags": [
400
+ "old",
401
+ ],
402
+ "technology": null,
403
+ "title": "adminPanel",
404
+ },
405
+ {
406
+ "children": [],
407
+ "color": "primary",
408
+ "description": null,
409
+ "icon": "tech:react",
410
+ "id": "cloud.frontend.dashboard",
411
+ "inEdges": [
412
+ "customer:cloud.frontend.dashboard",
413
+ ],
414
+ "kind": "component",
415
+ "level": 1,
416
+ "links": null,
417
+ "modelRef": 1,
418
+ "outEdges": [
419
+ "cloud.frontend.dashboard:cloud.backend",
420
+ ],
421
+ "parent": "cloud.frontend",
422
+ "shape": "rectangle",
423
+ "style": {},
424
+ "tags": [
425
+ "next",
426
+ ],
427
+ "technology": null,
428
+ "title": "dashboard",
429
+ },
430
+ {
431
+ "children": [],
432
+ "color": "primary",
433
+ "description": null,
434
+ "id": "cloud.backend",
435
+ "inEdges": [
436
+ "cloud.frontend.dashboard:cloud.backend",
437
+ "cloud.frontend.adminPanel:cloud.backend",
438
+ ],
439
+ "kind": "container",
440
+ "level": 0,
441
+ "links": null,
442
+ "modelRef": 1,
443
+ "outEdges": [],
444
+ "parent": null,
445
+ "shape": "rectangle",
446
+ "style": {},
447
+ "tags": null,
448
+ "technology": null,
449
+ "title": "backend",
450
+ },
451
+ ],
452
+ "tags": null,
453
+ "title": null,
454
+ "viewOf": "cloud.frontend",
455
+ }
456
+ `;