@likec4/language-server 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 (268) hide show
  1. package/contrib/likec4.tmLanguage.json +1 -1
  2. package/dist/LikeC4FileSystem.d.ts +13 -0
  3. package/dist/LikeC4FileSystem.js +27 -0
  4. package/dist/Rpc.d.ts +9 -0
  5. package/dist/Rpc.js +126 -0
  6. package/dist/ast.d.ts +200 -0
  7. package/dist/ast.js +276 -0
  8. package/dist/browser.d.ts +6 -20
  9. package/dist/browser.js +13 -0
  10. package/dist/formatting/LikeC4Formatter.d.ts +27 -0
  11. package/dist/formatting/LikeC4Formatter.js +261 -0
  12. package/dist/formatting/utils.d.ts +6 -0
  13. package/dist/formatting/utils.js +15 -0
  14. package/dist/generated/ast.d.ts +1242 -0
  15. package/dist/generated/ast.js +1945 -0
  16. package/dist/generated/grammar.d.ts +6 -0
  17. package/dist/generated/grammar.js +3 -0
  18. package/dist/generated/module.d.ts +9 -0
  19. package/dist/generated/module.js +23 -0
  20. package/dist/generated-lib/icons.d.ts +1 -0
  21. package/dist/{likec4lib.mjs → generated-lib/icons.js} +1 -6
  22. package/dist/index.d.ts +8 -31
  23. package/dist/index.js +13 -0
  24. package/dist/like-c4.langium +845 -0
  25. package/dist/likec4lib.d.ts +4 -6
  26. package/dist/likec4lib.js +4 -0
  27. package/dist/logger.d.ts +7 -0
  28. package/dist/logger.js +73 -0
  29. package/dist/lsp/CodeLensProvider.d.ts +9 -0
  30. package/dist/lsp/CodeLensProvider.js +40 -0
  31. package/dist/lsp/CompletionProvider.d.ts +6 -0
  32. package/dist/lsp/CompletionProvider.js +135 -0
  33. package/dist/lsp/DocumentHighlightProvider.d.ts +9 -0
  34. package/dist/lsp/DocumentHighlightProvider.js +10 -0
  35. package/dist/lsp/DocumentLinkProvider.d.ts +11 -0
  36. package/dist/lsp/DocumentLinkProvider.js +49 -0
  37. package/dist/lsp/DocumentSymbolProvider.d.ts +23 -0
  38. package/dist/lsp/DocumentSymbolProvider.js +202 -0
  39. package/dist/lsp/HoverProvider.d.ts +10 -0
  40. package/dist/lsp/HoverProvider.js +69 -0
  41. package/dist/lsp/RenameProvider.d.ts +5 -0
  42. package/dist/lsp/RenameProvider.js +6 -0
  43. package/dist/lsp/SemanticTokenProvider.d.ts +7 -0
  44. package/dist/lsp/SemanticTokenProvider.js +297 -0
  45. package/dist/lsp/index.d.ts +7 -0
  46. package/dist/lsp/index.js +7 -0
  47. package/dist/model/deployments-index.d.ts +60 -0
  48. package/dist/model/deployments-index.js +181 -0
  49. package/dist/model/fqn-computation.d.ts +3 -0
  50. package/dist/model/fqn-computation.js +72 -0
  51. package/dist/model/fqn-index.d.ts +25 -0
  52. package/dist/model/fqn-index.js +96 -0
  53. package/dist/model/index.d.ts +6 -0
  54. package/dist/model/index.js +6 -0
  55. package/dist/model/model-builder.d.ts +32 -0
  56. package/dist/model/model-builder.js +598 -0
  57. package/dist/model/model-locator.d.ts +23 -0
  58. package/dist/model/model-locator.js +126 -0
  59. package/dist/model/model-parser-where.d.ts +3 -0
  60. package/dist/model/model-parser-where.js +70 -0
  61. package/dist/model/model-parser.d.ts +292 -0
  62. package/dist/model/model-parser.js +72 -0
  63. package/dist/model/parser/Base.d.ts +28 -0
  64. package/dist/model/parser/Base.js +87 -0
  65. package/dist/model/parser/DeploymentModelParser.d.ts +33 -0
  66. package/dist/model/parser/DeploymentModelParser.js +162 -0
  67. package/dist/model/parser/DeploymentViewParser.d.ts +38 -0
  68. package/dist/model/parser/DeploymentViewParser.js +98 -0
  69. package/dist/model/parser/FqnRefParser.d.ts +29 -0
  70. package/dist/model/parser/FqnRefParser.js +108 -0
  71. package/dist/model/parser/GlobalsParser.d.ts +66 -0
  72. package/dist/model/parser/GlobalsParser.js +80 -0
  73. package/dist/model/parser/ModelParser.d.ts +27 -0
  74. package/dist/model/parser/ModelParser.js +122 -0
  75. package/dist/model/parser/PredicatesParser.d.ts +34 -0
  76. package/dist/model/parser/PredicatesParser.js +272 -0
  77. package/dist/model/parser/SpecificationParser.d.ts +27 -0
  78. package/dist/model/parser/SpecificationParser.js +120 -0
  79. package/dist/model/parser/ViewsParser.d.ts +64 -0
  80. package/dist/model/parser/ViewsParser.js +377 -0
  81. package/dist/model-change/ModelChanges.d.ts +15 -0
  82. package/dist/model-change/ModelChanges.js +89 -0
  83. package/dist/model-change/changeElementStyle.d.ts +16 -0
  84. package/dist/model-change/changeElementStyle.js +136 -0
  85. package/dist/model-change/changeViewLayout.d.ts +12 -0
  86. package/dist/model-change/changeViewLayout.js +32 -0
  87. package/dist/model-change/saveManualLayout.d.ts +11 -0
  88. package/dist/model-change/saveManualLayout.js +27 -0
  89. package/dist/module.d.ts +62 -0
  90. package/dist/module.js +123 -0
  91. package/dist/protocol.d.ts +27 -27
  92. package/dist/protocol.js +14 -0
  93. package/dist/references/index.d.ts +3 -0
  94. package/dist/references/index.js +3 -0
  95. package/dist/references/name-provider.d.ts +9 -0
  96. package/dist/references/name-provider.js +33 -0
  97. package/dist/references/scope-computation.d.ts +20 -0
  98. package/dist/references/scope-computation.js +281 -0
  99. package/dist/references/scope-provider.d.ts +16 -0
  100. package/dist/references/scope-provider.js +165 -0
  101. package/dist/shared/NodeKindProvider.d.ts +15 -0
  102. package/dist/shared/NodeKindProvider.js +108 -0
  103. package/dist/shared/WorkspaceManager.d.ts +18 -0
  104. package/dist/shared/WorkspaceManager.js +36 -0
  105. package/dist/shared/WorkspaceSymbolProvider.d.ts +3 -0
  106. package/dist/shared/WorkspaceSymbolProvider.js +3 -0
  107. package/dist/shared/index.d.ts +3 -0
  108. package/dist/shared/index.js +3 -0
  109. package/dist/test/index.d.ts +1 -0
  110. package/dist/test/index.js +1 -0
  111. package/dist/test/setup.d.ts +1 -0
  112. package/dist/test/setup.js +7 -0
  113. package/dist/test/testServices.d.ts +22 -0
  114. package/dist/test/testServices.js +119 -0
  115. package/dist/utils/elementRef.d.ts +11 -0
  116. package/dist/utils/elementRef.js +15 -0
  117. package/dist/utils/fqnRef.d.ts +8 -0
  118. package/dist/utils/fqnRef.js +46 -0
  119. package/dist/utils/index.d.ts +1 -0
  120. package/dist/utils/index.js +1 -0
  121. package/dist/utils/printDocs.d.ts +2 -0
  122. package/dist/utils/printDocs.js +1 -0
  123. package/dist/utils/stringHash.d.ts +1 -0
  124. package/dist/utils/stringHash.js +5 -0
  125. package/dist/validation/_shared.d.ts +3 -0
  126. package/dist/validation/_shared.js +22 -0
  127. package/dist/validation/deployment-checks.d.ts +6 -0
  128. package/dist/validation/deployment-checks.js +114 -0
  129. package/dist/validation/dynamic-view-rule.d.ts +4 -0
  130. package/dist/validation/dynamic-view-rule.js +16 -0
  131. package/dist/validation/dynamic-view-step.d.ts +4 -0
  132. package/dist/validation/dynamic-view-step.js +33 -0
  133. package/dist/validation/element.d.ts +4 -0
  134. package/dist/validation/element.js +49 -0
  135. package/dist/validation/index.d.ts +15 -0
  136. package/dist/validation/index.js +152 -0
  137. package/dist/validation/property-checks.d.ts +6 -0
  138. package/dist/validation/property-checks.js +38 -0
  139. package/dist/validation/relation.d.ts +5 -0
  140. package/dist/validation/relation.js +56 -0
  141. package/dist/validation/specification.d.ts +11 -0
  142. package/dist/validation/specification.js +136 -0
  143. package/dist/validation/view-predicates/element-with.d.ts +4 -0
  144. package/dist/validation/view-predicates/element-with.js +30 -0
  145. package/dist/validation/view-predicates/expanded-element.d.ts +4 -0
  146. package/dist/validation/view-predicates/expanded-element.js +11 -0
  147. package/dist/validation/view-predicates/expression-v2.d.ts +5 -0
  148. package/dist/validation/view-predicates/expression-v2.js +83 -0
  149. package/dist/validation/view-predicates/incoming.d.ts +4 -0
  150. package/dist/validation/view-predicates/incoming.js +15 -0
  151. package/dist/validation/view-predicates/index.d.ts +6 -0
  152. package/dist/validation/view-predicates/index.js +6 -0
  153. package/dist/validation/view-predicates/outgoing.d.ts +4 -0
  154. package/dist/validation/view-predicates/outgoing.js +15 -0
  155. package/dist/validation/view-predicates/relation-with.d.ts +4 -0
  156. package/dist/validation/view-predicates/relation-with.js +12 -0
  157. package/dist/validation/view.d.ts +4 -0
  158. package/dist/validation/view.js +23 -0
  159. package/dist/view-utils/assignNavigateTo.d.ts +2 -0
  160. package/dist/view-utils/assignNavigateTo.js +25 -0
  161. package/dist/view-utils/index.d.ts +2 -0
  162. package/dist/view-utils/index.js +2 -0
  163. package/dist/view-utils/manual-layout.d.ts +7 -0
  164. package/dist/view-utils/manual-layout.js +99 -0
  165. package/dist/view-utils/resolve-relative-paths.d.ts +2 -0
  166. package/dist/view-utils/resolve-relative-paths.js +78 -0
  167. package/package.json +42 -73
  168. package/src/LikeC4FileSystem.ts +22 -21
  169. package/src/Rpc.ts +6 -3
  170. package/src/ast.ts +136 -172
  171. package/src/browser.ts +10 -11
  172. package/src/generated/ast.ts +656 -40
  173. package/src/generated/grammar.ts +1 -1
  174. package/src/index.ts +11 -8
  175. package/src/like-c4.langium +173 -22
  176. package/src/logger.ts +41 -57
  177. package/src/lsp/CodeLensProvider.ts +0 -1
  178. package/src/lsp/CompletionProvider.ts +20 -5
  179. package/src/lsp/DocumentSymbolProvider.ts +5 -2
  180. package/src/lsp/HoverProvider.ts +37 -3
  181. package/src/lsp/SemanticTokenProvider.ts +58 -32
  182. package/src/model/deployments-index.ts +222 -0
  183. package/src/model/fqn-computation.ts +1 -1
  184. package/src/model/fqn-index.ts +0 -1
  185. package/src/model/index.ts +1 -0
  186. package/src/model/model-builder.ts +176 -39
  187. package/src/model/model-locator.ts +36 -7
  188. package/src/model/model-parser.ts +69 -1119
  189. package/src/model/parser/Base.ts +107 -0
  190. package/src/model/parser/DeploymentModelParser.ts +192 -0
  191. package/src/model/parser/DeploymentViewParser.ts +116 -0
  192. package/src/model/parser/FqnRefParser.ts +118 -0
  193. package/src/model/parser/GlobalsParser.ts +96 -0
  194. package/src/model/parser/ModelParser.ts +141 -0
  195. package/src/model/parser/PredicatesParser.ts +291 -0
  196. package/src/model/parser/SpecificationParser.ts +133 -0
  197. package/src/model/parser/ViewsParser.ts +428 -0
  198. package/src/model-change/changeViewLayout.ts +2 -2
  199. package/src/module.ts +26 -21
  200. package/src/protocol.ts +10 -6
  201. package/src/references/index.ts +1 -0
  202. package/src/references/name-provider.ts +37 -0
  203. package/src/references/scope-computation.ts +130 -21
  204. package/src/references/scope-provider.ts +68 -35
  205. package/src/shared/NodeKindProvider.ts +15 -3
  206. package/src/{elementRef.ts → utils/elementRef.ts} +1 -1
  207. package/src/utils/fqnRef.ts +56 -0
  208. package/src/utils/stringHash.ts +2 -2
  209. package/src/validation/_shared.ts +6 -5
  210. package/src/validation/deployment-checks.ts +131 -0
  211. package/src/validation/dynamic-view-step.ts +1 -1
  212. package/src/validation/index.ts +104 -6
  213. package/src/validation/relation.ts +1 -1
  214. package/src/validation/view-predicates/expression-v2.ts +101 -0
  215. package/src/validation/view-predicates/index.ts +1 -0
  216. package/src/view-utils/assignNavigateTo.ts +6 -5
  217. package/src/view-utils/index.ts +0 -1
  218. package/src/view-utils/manual-layout.ts +25 -0
  219. package/dist/browser.cjs +0 -25
  220. package/dist/browser.d.cts +0 -23
  221. package/dist/browser.d.mts +0 -23
  222. package/dist/browser.mjs +0 -20
  223. package/dist/index.cjs +0 -53
  224. package/dist/index.d.cts +0 -34
  225. package/dist/index.d.mts +0 -34
  226. package/dist/index.mjs +0 -46
  227. package/dist/likec4lib.cjs +0 -1546
  228. package/dist/likec4lib.d.cts +0 -6
  229. package/dist/likec4lib.d.mts +0 -6
  230. package/dist/model-graph/index.cjs +0 -10
  231. package/dist/model-graph/index.d.cts +0 -81
  232. package/dist/model-graph/index.d.mts +0 -81
  233. package/dist/model-graph/index.d.ts +0 -81
  234. package/dist/model-graph/index.mjs +0 -1
  235. package/dist/protocol.cjs +0 -25
  236. package/dist/protocol.d.cts +0 -45
  237. package/dist/protocol.d.mts +0 -45
  238. package/dist/protocol.mjs +0 -17
  239. package/dist/shared/language-server.BIbAD1T-.mjs +0 -6292
  240. package/dist/shared/language-server.BQRvVmE0.d.cts +0 -1303
  241. package/dist/shared/language-server.BysPcTxr.d.ts +0 -1303
  242. package/dist/shared/language-server.D2QdbOJO.cjs +0 -1995
  243. package/dist/shared/language-server.DGrBGmsd.mjs +0 -1981
  244. package/dist/shared/language-server.DKV_FdPN.cjs +0 -6304
  245. package/dist/shared/language-server._wkyPgso.d.mts +0 -1303
  246. package/src/model-graph/LikeC4ModelGraph.ts +0 -338
  247. package/src/model-graph/compute-view/__test__/fixture.ts +0 -630
  248. package/src/model-graph/compute-view/compute.ts +0 -788
  249. package/src/model-graph/compute-view/index.ts +0 -33
  250. package/src/model-graph/compute-view/predicates.ts +0 -509
  251. package/src/model-graph/dynamic-view/__test__/fixture.ts +0 -61
  252. package/src/model-graph/dynamic-view/compute.ts +0 -313
  253. package/src/model-graph/dynamic-view/index.ts +0 -29
  254. package/src/model-graph/index.ts +0 -3
  255. package/src/model-graph/utils/applyCustomElementProperties.ts +0 -65
  256. package/src/model-graph/utils/applyCustomRelationProperties.ts +0 -41
  257. package/src/model-graph/utils/applyViewRuleStyles.ts +0 -49
  258. package/src/model-graph/utils/buildComputeNodes.ts +0 -113
  259. package/src/model-graph/utils/buildElementNotations.ts +0 -63
  260. package/src/model-graph/utils/elementExpressionToPredicate.ts +0 -39
  261. package/src/model-graph/utils/relationExpressionToPredicates.ts +0 -43
  262. package/src/model-graph/utils/sortNodes.ts +0 -105
  263. package/src/model-graph/utils/uniqueTags.test.ts +0 -42
  264. package/src/model-graph/utils/uniqueTags.ts +0 -19
  265. package/src/utils/graphlib.ts +0 -9
  266. package/src/view-utils/resolve-extended-views.ts +0 -66
  267. package/src/view-utils/resolve-global-rules.ts +0 -88
  268. package/src/view-utils/view-hash.ts +0 -27
@@ -15,8 +15,8 @@ export const LikeC4Terminals = {
15
15
  LIB_ICON: /(aws|azure|gcp|tech):[-\w]*/,
16
16
  URI_WITH_SCHEMA: /\w+:\/\/\S+/,
17
17
  URI_RELATIVE: /\.{0,2}\/[^\/]\S+/,
18
- DotUnderscore: /\b\._/,
19
- DotWildcard: /\b\.\*/,
18
+ DotUnderscore: /\b\._(?![_a-zA-Z])/,
19
+ DotWildcard: /\b\.\*{1,2}/,
20
20
  Hash: /#/,
21
21
  StickyDot: /\b\./,
22
22
  Dot: /\./,
@@ -57,6 +57,8 @@ export type LikeC4KeywordNames =
57
57
  | "crow"
58
58
  | "cylinder"
59
59
  | "dashed"
60
+ | "deployment"
61
+ | "deploymentNode"
60
62
  | "description"
61
63
  | "diamond"
62
64
  | "dot"
@@ -78,6 +80,8 @@ export type LikeC4KeywordNames =
78
80
  | "icons"
79
81
  | "include"
80
82
  | "indigo"
83
+ | "instance"
84
+ | "instanceOf"
81
85
  | "is"
82
86
  | "kind"
83
87
  | "likec4lib"
@@ -88,6 +92,7 @@ export type LikeC4KeywordNames =
88
92
  | "model"
89
93
  | "muted"
90
94
  | "navigateTo"
95
+ | "node"
91
96
  | "none"
92
97
  | "normal"
93
98
  | "not"
@@ -157,6 +162,22 @@ export function isCustomColorValue(item: unknown): item is CustomColorValue {
157
162
  return typeof item === 'string';
158
163
  }
159
164
 
165
+ export type DeploymentElement = DeployedInstance | DeploymentNode;
166
+
167
+ export const DeploymentElement = 'DeploymentElement';
168
+
169
+ export function isDeploymentElement(item: unknown): item is DeploymentElement {
170
+ return reflection.isInstance(item, DeploymentElement);
171
+ }
172
+
173
+ export type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout;
174
+
175
+ export const DeploymentViewRule = 'DeploymentViewRule';
176
+
177
+ export function isDeploymentViewRule(item: unknown): item is DeploymentViewRule {
178
+ return reflection.isInstance(item, DeploymentViewRule);
179
+ }
180
+
160
181
  export type DotId = string;
161
182
 
162
183
  export function isDotId(item: unknown): item is DotId {
@@ -209,19 +230,43 @@ export function isElementShape(item: unknown): item is ElementShape {
209
230
  return item === 'rectangle' || item === 'person' || item === 'browser' || item === 'mobile' || item === 'cylinder' || item === 'storage' || item === 'queue';
210
231
  }
211
232
 
233
+ export type ExpressionV2 = FqnExpr | RelationExpr;
234
+
235
+ export const ExpressionV2 = 'ExpressionV2';
236
+
237
+ export function isExpressionV2(item: unknown): item is ExpressionV2 {
238
+ return reflection.isInstance(item, ExpressionV2);
239
+ }
240
+
241
+ export type FqnExpr = FqnRefExpr | WildcardExpression;
242
+
243
+ export const FqnExpr = 'FqnExpr';
244
+
245
+ export function isFqnExpr(item: unknown): item is FqnExpr {
246
+ return reflection.isInstance(item, FqnExpr);
247
+ }
248
+
249
+ export type FqnReferenceable = Element | ExtendElement | Referenceable;
250
+
251
+ export const FqnReferenceable = 'FqnReferenceable';
252
+
253
+ export function isFqnReferenceable(item: unknown): item is FqnReferenceable {
254
+ return reflection.isInstance(item, FqnReferenceable);
255
+ }
256
+
212
257
  export type IconId = string;
213
258
 
214
259
  export function isIconId(item: unknown): item is IconId {
215
260
  return (typeof item === 'string' && (/(aws|azure|gcp|tech):[-\w]*/.test(item)));
216
261
  }
217
262
 
218
- export type Id = 'element' | 'group' | 'model' | ArrowType | ElementShape | LineOptions | ThemeColor | string;
263
+ export type Id = 'deployment' | 'element' | 'group' | 'instance' | 'model' | 'node' | ArrowType | ElementShape | LineOptions | ThemeColor | string;
219
264
 
220
265
  export function isId(item: unknown): item is Id {
221
- return isElementShape(item) || isThemeColor(item) || isArrowType(item) || isLineOptions(item) || item === 'element' || item === 'model' || item === 'group' || (typeof item === 'string' && (/[_]*[a-zA-Z][-\w]*/.test(item)));
266
+ return isElementShape(item) || isThemeColor(item) || isArrowType(item) || isLineOptions(item) || item === 'element' || item === 'model' || item === 'group' || item === 'node' || item === 'deployment' || item === 'instance' || (typeof item === 'string' && (/[_]*[a-zA-Z][-\w]*/.test(item)));
222
267
  }
223
268
 
224
- export type LikeC4View = DynamicView | ElementView;
269
+ export type LikeC4View = DeploymentView | DynamicView | ElementView;
225
270
 
226
271
  export const LikeC4View = 'LikeC4View';
227
272
 
@@ -251,6 +296,22 @@ export function isPredicate(item: unknown): item is Predicate {
251
296
  return reflection.isInstance(item, Predicate);
252
297
  }
253
298
 
299
+ export type Referenceable = DeployedInstance | DeploymentNode | Element;
300
+
301
+ export const Referenceable = 'Referenceable';
302
+
303
+ export function isReferenceable(item: unknown): item is Referenceable {
304
+ return reflection.isInstance(item, Referenceable);
305
+ }
306
+
307
+ export type RelationExpr = DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr;
308
+
309
+ export const RelationExpr = 'RelationExpr';
310
+
311
+ export function isRelationExpr(item: unknown): item is RelationExpr {
312
+ return reflection.isInstance(item, RelationExpr);
313
+ }
314
+
254
315
  export type RelationExpression = DirectedRelationExpression | InOutRelationExpression | IncomingRelationExpression | OutgoingRelationExpression;
255
316
 
256
317
  export const RelationExpression = 'RelationExpression';
@@ -433,7 +494,7 @@ export function isArrowProperty(item: unknown): item is ArrowProperty {
433
494
  }
434
495
 
435
496
  export interface BorderProperty extends AstNode {
436
- readonly $container: CustomElementProperties | ElementStyleProperty | GlobalStyle | ViewRuleGroup | ViewRuleStyle;
497
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleGroup | ViewRuleStyle;
437
498
  readonly $type: 'BorderProperty';
438
499
  key: 'border';
439
500
  value: BorderStyleValue;
@@ -446,7 +507,7 @@ export function isBorderProperty(item: unknown): item is BorderProperty {
446
507
  }
447
508
 
448
509
  export interface ColorProperty extends AstNode {
449
- readonly $container: CustomElementProperties | CustomRelationProperties | ElementStyleProperty | GlobalStyle | RelationStyleProperty | SpecificationRelationshipKind | ViewRuleGroup | ViewRuleStyle;
510
+ readonly $container: CustomElementProperties | CustomRelationProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | RelationStyleProperty | SpecificationRelationshipKind | ViewRuleGroup | ViewRuleStyle;
450
511
  readonly $type: 'ColorProperty';
451
512
  customColor?: Reference<CustomColor>;
452
513
  key: 'color';
@@ -495,6 +556,185 @@ export function isCustomRelationProperties(item: unknown): item is CustomRelatio
495
556
  return reflection.isInstance(item, CustomRelationProperties);
496
557
  }
497
558
 
559
+ export interface DeployedInstance extends AstNode {
560
+ readonly $container: DeploymentNodeBody;
561
+ readonly $type: 'DeployedInstance';
562
+ body?: DeployedInstanceBody;
563
+ element: ElementRef;
564
+ name?: Id;
565
+ title?: string;
566
+ }
567
+
568
+ export const DeployedInstance = 'DeployedInstance';
569
+
570
+ export function isDeployedInstance(item: unknown): item is DeployedInstance {
571
+ return reflection.isInstance(item, DeployedInstance);
572
+ }
573
+
574
+ export interface DeployedInstanceBody extends AstNode {
575
+ readonly $container: DeployedInstance;
576
+ readonly $type: 'DeployedInstanceBody';
577
+ props: Array<ElementProperty>;
578
+ tags?: Tags;
579
+ }
580
+
581
+ export const DeployedInstanceBody = 'DeployedInstanceBody';
582
+
583
+ export function isDeployedInstanceBody(item: unknown): item is DeployedInstanceBody {
584
+ return reflection.isInstance(item, DeployedInstanceBody);
585
+ }
586
+
587
+ export interface DeploymentNode extends AstNode {
588
+ readonly $container: DeploymentNodeBody | ModelDeployments;
589
+ readonly $type: 'DeploymentNode';
590
+ body?: DeploymentNodeBody;
591
+ kind: Reference<DeploymentNodeKind>;
592
+ name: Id;
593
+ title?: string;
594
+ }
595
+
596
+ export const DeploymentNode = 'DeploymentNode';
597
+
598
+ export function isDeploymentNode(item: unknown): item is DeploymentNode {
599
+ return reflection.isInstance(item, DeploymentNode);
600
+ }
601
+
602
+ export interface DeploymentNodeBody extends AstNode {
603
+ readonly $container: DeploymentNode;
604
+ readonly $type: 'DeploymentNodeBody';
605
+ elements: Array<DeployedInstance | DeploymentNode | DeploymentRelation>;
606
+ props: Array<ElementProperty>;
607
+ tags?: Tags;
608
+ }
609
+
610
+ export const DeploymentNodeBody = 'DeploymentNodeBody';
611
+
612
+ export function isDeploymentNodeBody(item: unknown): item is DeploymentNodeBody {
613
+ return reflection.isInstance(item, DeploymentNodeBody);
614
+ }
615
+
616
+ export interface DeploymentNodeKind extends AstNode {
617
+ readonly $container: SpecificationDeploymentNodeKind;
618
+ readonly $type: 'DeploymentNodeKind';
619
+ name: Id;
620
+ }
621
+
622
+ export const DeploymentNodeKind = 'DeploymentNodeKind';
623
+
624
+ export function isDeploymentNodeKind(item: unknown): item is DeploymentNodeKind {
625
+ return reflection.isInstance(item, DeploymentNodeKind);
626
+ }
627
+
628
+ export interface DeploymentRelation extends AstNode {
629
+ readonly $container: DeploymentNodeBody | ModelDeployments;
630
+ readonly $type: 'DeploymentRelation';
631
+ body?: DeploymentRelationBody;
632
+ kind?: Reference<RelationshipKind>;
633
+ source: FqnRef;
634
+ tags?: Tags;
635
+ target: FqnRef;
636
+ technology?: string;
637
+ title?: string;
638
+ }
639
+
640
+ export const DeploymentRelation = 'DeploymentRelation';
641
+
642
+ export function isDeploymentRelation(item: unknown): item is DeploymentRelation {
643
+ return reflection.isInstance(item, DeploymentRelation);
644
+ }
645
+
646
+ export interface DeploymentRelationBody extends AstNode {
647
+ readonly $container: DeploymentRelation;
648
+ readonly $type: 'DeploymentRelationBody';
649
+ props: Array<RelationProperty>;
650
+ tags?: Tags;
651
+ }
652
+
653
+ export const DeploymentRelationBody = 'DeploymentRelationBody';
654
+
655
+ export function isDeploymentRelationBody(item: unknown): item is DeploymentRelationBody {
656
+ return reflection.isInstance(item, DeploymentRelationBody);
657
+ }
658
+
659
+ export interface DeploymentView extends AstNode {
660
+ readonly $container: ModelViews;
661
+ readonly $type: 'DeploymentView';
662
+ body?: DeploymentViewBody;
663
+ name: Id;
664
+ }
665
+
666
+ export const DeploymentView = 'DeploymentView';
667
+
668
+ export function isDeploymentView(item: unknown): item is DeploymentView {
669
+ return reflection.isInstance(item, DeploymentView);
670
+ }
671
+
672
+ export interface DeploymentViewBody extends AstNode {
673
+ readonly $container: DeploymentView;
674
+ readonly $type: 'DeploymentViewBody';
675
+ props: Array<ViewProperty>;
676
+ rules: Array<DeploymentViewRule>;
677
+ tags?: Tags;
678
+ }
679
+
680
+ export const DeploymentViewBody = 'DeploymentViewBody';
681
+
682
+ export function isDeploymentViewBody(item: unknown): item is DeploymentViewBody {
683
+ return reflection.isInstance(item, DeploymentViewBody);
684
+ }
685
+
686
+ export interface DeploymentViewRulePredicate extends AstNode {
687
+ readonly $container: DeploymentViewBody;
688
+ readonly $type: 'DeploymentViewRulePredicate';
689
+ expr: DeploymentViewRulePredicateExpression;
690
+ isInclude: boolean;
691
+ }
692
+
693
+ export const DeploymentViewRulePredicate = 'DeploymentViewRulePredicate';
694
+
695
+ export function isDeploymentViewRulePredicate(item: unknown): item is DeploymentViewRulePredicate {
696
+ return reflection.isInstance(item, DeploymentViewRulePredicate);
697
+ }
698
+
699
+ export interface DeploymentViewRulePredicateExpression extends AstNode {
700
+ readonly $container: DeploymentViewRulePredicate | DeploymentViewRulePredicateExpression;
701
+ readonly $type: 'DeploymentViewRulePredicateExpression';
702
+ prev?: DeploymentViewRulePredicateExpression;
703
+ value: ExpressionV2;
704
+ }
705
+
706
+ export const DeploymentViewRulePredicateExpression = 'DeploymentViewRulePredicateExpression';
707
+
708
+ export function isDeploymentViewRulePredicateExpression(item: unknown): item is DeploymentViewRulePredicateExpression {
709
+ return reflection.isInstance(item, DeploymentViewRulePredicateExpression);
710
+ }
711
+
712
+ export interface DeploymentViewRuleStyle extends AstNode {
713
+ readonly $container: DeploymentViewBody;
714
+ readonly $type: 'DeploymentViewRuleStyle';
715
+ props: Array<NotationProperty | StyleProperty>;
716
+ targets: FqnExpressions;
717
+ }
718
+
719
+ export const DeploymentViewRuleStyle = 'DeploymentViewRuleStyle';
720
+
721
+ export function isDeploymentViewRuleStyle(item: unknown): item is DeploymentViewRuleStyle {
722
+ return reflection.isInstance(item, DeploymentViewRuleStyle);
723
+ }
724
+
725
+ export interface DirectedRelationExpr extends AstNode {
726
+ readonly $container: DeploymentViewRulePredicateExpression;
727
+ readonly $type: 'DirectedRelationExpr';
728
+ source: OutgoingRelationExpr;
729
+ target: FqnExpr;
730
+ }
731
+
732
+ export const DirectedRelationExpr = 'DirectedRelationExpr';
733
+
734
+ export function isDirectedRelationExpr(item: unknown): item is DirectedRelationExpr {
735
+ return reflection.isInstance(item, DirectedRelationExpr);
736
+ }
737
+
498
738
  export interface DirectedRelationExpression extends AstNode {
499
739
  readonly $container: Predicates | RelationPredicateWhere | RelationPredicateWith;
500
740
  readonly $type: 'DirectedRelationExpression';
@@ -647,6 +887,7 @@ export interface ElementDescedantsExpression extends AstNode {
647
887
  readonly $container: DirectedRelationExpression | DynamicViewPredicateIterator | ElementExpressionsIterator | ElementPredicateWhere | ElementPredicateWith | IncomingRelationExpression | OutgoingRelationExpression | Predicates;
648
888
  readonly $type: 'ElementDescedantsExpression';
649
889
  parent: ElementRef;
890
+ suffix: string;
650
891
  }
651
892
 
652
893
  export const ElementDescedantsExpression = 'ElementDescedantsExpression';
@@ -720,7 +961,7 @@ export function isElementPredicateWith(item: unknown): item is ElementPredicateW
720
961
  }
721
962
 
722
963
  export interface ElementRef extends AstNode {
723
- readonly $container: DirectedRelationExpression | DynamicViewPredicateIterator | DynamicViewStep | ElementDescedantsExpression | ElementExpressionsIterator | ElementPredicateWhere | ElementPredicateWith | ElementRef | ElementView | ExpandElementExpression | IncomingRelationExpression | OutgoingRelationExpression | Predicates | Relation;
964
+ readonly $container: DeployedInstance | DirectedRelationExpression | DynamicViewPredicateIterator | DynamicViewStep | ElementDescedantsExpression | ElementExpressionsIterator | ElementPredicateWhere | ElementPredicateWith | ElementRef | ElementView | ExpandElementExpression | IncomingRelationExpression | OutgoingRelationExpression | Predicates | Relation;
724
965
  readonly $type: 'ElementRef';
725
966
  el: Reference<Element>;
726
967
  parent?: ElementRef;
@@ -733,7 +974,7 @@ export function isElementRef(item: unknown): item is ElementRef {
733
974
  }
734
975
 
735
976
  export interface ElementStringProperty extends AstNode {
736
- readonly $container: CustomElementProperties | ElementBody;
977
+ readonly $container: CustomElementProperties | DeployedInstanceBody | DeploymentNodeBody | ElementBody;
737
978
  readonly $type: 'ElementStringProperty';
738
979
  key: 'description' | 'technology' | 'title';
739
980
  value: string;
@@ -746,7 +987,7 @@ export function isElementStringProperty(item: unknown): item is ElementStringPro
746
987
  }
747
988
 
748
989
  export interface ElementStyleProperty extends AstNode {
749
- readonly $container: ElementBody | SpecificationElementKind;
990
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | ElementBody | SpecificationDeploymentNodeKind | SpecificationElementKind;
750
991
  readonly $type: 'ElementStyleProperty';
751
992
  key: 'style';
752
993
  props: Array<StyleProperty>;
@@ -874,6 +1115,45 @@ export function isFqnElementRef(item: unknown): item is FqnElementRef {
874
1115
  return reflection.isInstance(item, FqnElementRef);
875
1116
  }
876
1117
 
1118
+ export interface FqnExpressions extends AstNode {
1119
+ readonly $container: DeploymentViewRuleStyle | FqnExpressions;
1120
+ readonly $type: 'FqnExpressions';
1121
+ prev?: FqnExpressions;
1122
+ value: FqnExpr;
1123
+ }
1124
+
1125
+ export const FqnExpressions = 'FqnExpressions';
1126
+
1127
+ export function isFqnExpressions(item: unknown): item is FqnExpressions {
1128
+ return reflection.isInstance(item, FqnExpressions);
1129
+ }
1130
+
1131
+ export interface FqnRef extends AstNode {
1132
+ readonly $container: DeploymentRelation | FqnRef | FqnRefExpr;
1133
+ readonly $type: 'FqnRef';
1134
+ parent?: FqnRef;
1135
+ value: Reference<Referenceable>;
1136
+ }
1137
+
1138
+ export const FqnRef = 'FqnRef';
1139
+
1140
+ export function isFqnRef(item: unknown): item is FqnRef {
1141
+ return reflection.isInstance(item, FqnRef);
1142
+ }
1143
+
1144
+ export interface FqnRefExpr extends AstNode {
1145
+ readonly $container: DeploymentViewRulePredicateExpression | DirectedRelationExpr | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
1146
+ readonly $type: 'FqnRefExpr';
1147
+ ref: FqnRef;
1148
+ selector?: string;
1149
+ }
1150
+
1151
+ export const FqnRefExpr = 'FqnRefExpr';
1152
+
1153
+ export function isFqnRefExpr(item: unknown): item is FqnRefExpr {
1154
+ return reflection.isInstance(item, FqnRefExpr);
1155
+ }
1156
+
877
1157
  export interface GlobalDynamicPredicateGroup extends AstNode {
878
1158
  readonly $container: Globals;
879
1159
  readonly $type: 'GlobalDynamicPredicateGroup';
@@ -954,7 +1234,7 @@ export function isGlobalStyleId(item: unknown): item is GlobalStyleId {
954
1234
  }
955
1235
 
956
1236
  export interface IconProperty extends AstNode {
957
- readonly $container: CustomElementProperties | ElementBody | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
1237
+ readonly $container: CustomElementProperties | DeployedInstanceBody | DeploymentNodeBody | DeploymentViewRuleStyle | ElementBody | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
958
1238
  readonly $type: 'IconProperty';
959
1239
  key: 'icon';
960
1240
  libicon?: Reference<LibIcon>;
@@ -979,6 +1259,18 @@ export function isIncludePredicate(item: unknown): item is IncludePredicate {
979
1259
  return reflection.isInstance(item, IncludePredicate);
980
1260
  }
981
1261
 
1262
+ export interface IncomingRelationExpr extends AstNode {
1263
+ readonly $container: DeploymentViewRulePredicateExpression | InOutRelationExpr;
1264
+ readonly $type: 'IncomingRelationExpr';
1265
+ to: FqnExpr;
1266
+ }
1267
+
1268
+ export const IncomingRelationExpr = 'IncomingRelationExpr';
1269
+
1270
+ export function isIncomingRelationExpr(item: unknown): item is IncomingRelationExpr {
1271
+ return reflection.isInstance(item, IncomingRelationExpr);
1272
+ }
1273
+
982
1274
  export interface IncomingRelationExpression extends AstNode {
983
1275
  readonly $container: InOutRelationExpression | Predicates | RelationPredicateWhere | RelationPredicateWith;
984
1276
  readonly $type: 'IncomingRelationExpression';
@@ -991,6 +1283,18 @@ export function isIncomingRelationExpression(item: unknown): item is IncomingRel
991
1283
  return reflection.isInstance(item, IncomingRelationExpression);
992
1284
  }
993
1285
 
1286
+ export interface InOutRelationExpr extends AstNode {
1287
+ readonly $container: DeploymentViewRulePredicateExpression;
1288
+ readonly $type: 'InOutRelationExpr';
1289
+ inout: IncomingRelationExpr;
1290
+ }
1291
+
1292
+ export const InOutRelationExpr = 'InOutRelationExpr';
1293
+
1294
+ export function isInOutRelationExpr(item: unknown): item is InOutRelationExpr {
1295
+ return reflection.isInstance(item, InOutRelationExpr);
1296
+ }
1297
+
994
1298
  export interface InOutRelationExpression extends AstNode {
995
1299
  readonly $container: Predicates | RelationPredicateWhere | RelationPredicateWith;
996
1300
  readonly $type: 'InOutRelationExpression';
@@ -1017,6 +1321,7 @@ export function isLibIcon(item: unknown): item is LibIcon {
1017
1321
 
1018
1322
  export interface LikeC4Grammar extends AstNode {
1019
1323
  readonly $type: 'LikeC4Grammar';
1324
+ deployments: Array<ModelDeployments>;
1020
1325
  globals: Array<Globals>;
1021
1326
  likec4lib: Array<LikeC4Lib>;
1022
1327
  models: Array<Model>;
@@ -1056,7 +1361,7 @@ export function isLineProperty(item: unknown): item is LineProperty {
1056
1361
  }
1057
1362
 
1058
1363
  export interface LinkProperty extends AstNode {
1059
- readonly $container: DynamicViewBody | ElementBody | ElementViewBody | RelationBody;
1364
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | RelationBody;
1060
1365
  readonly $type: 'LinkProperty';
1061
1366
  key: 'link';
1062
1367
  title?: string;
@@ -1083,7 +1388,7 @@ export function isMetadataAttribute(item: unknown): item is MetadataAttribute {
1083
1388
  }
1084
1389
 
1085
1390
  export interface MetadataBody extends AstNode {
1086
- readonly $container: ElementBody | RelationBody;
1391
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelationBody | ElementBody | RelationBody;
1087
1392
  readonly $type: 'MetadataBody';
1088
1393
  props: Array<MetadataAttribute>;
1089
1394
  }
@@ -1107,6 +1412,19 @@ export function isModel(item: unknown): item is Model {
1107
1412
  return reflection.isInstance(item, Model);
1108
1413
  }
1109
1414
 
1415
+ export interface ModelDeployments extends AstNode {
1416
+ readonly $container: LikeC4Grammar;
1417
+ readonly $type: 'ModelDeployments';
1418
+ elements: Array<DeploymentNode | DeploymentRelation>;
1419
+ name: 'deployment';
1420
+ }
1421
+
1422
+ export const ModelDeployments = 'ModelDeployments';
1423
+
1424
+ export function isModelDeployments(item: unknown): item is ModelDeployments {
1425
+ return reflection.isInstance(item, ModelDeployments);
1426
+ }
1427
+
1110
1428
  export interface ModelViews extends AstNode {
1111
1429
  readonly $container: LikeC4Grammar;
1112
1430
  readonly $type: 'ModelViews';
@@ -1135,7 +1453,7 @@ export function isNavigateToProperty(item: unknown): item is NavigateToProperty
1135
1453
  }
1136
1454
 
1137
1455
  export interface NotationProperty extends AstNode {
1138
- readonly $container: CustomElementProperties | CustomRelationProperties | GlobalStyle | ViewRuleStyle;
1456
+ readonly $container: CustomElementProperties | CustomRelationProperties | DeploymentViewRuleStyle | GlobalStyle | ViewRuleStyle;
1139
1457
  readonly $type: 'NotationProperty';
1140
1458
  key: 'notation';
1141
1459
  value: string;
@@ -1161,7 +1479,7 @@ export function isNotesProperty(item: unknown): item is NotesProperty {
1161
1479
  }
1162
1480
 
1163
1481
  export interface OpacityProperty extends AstNode {
1164
- readonly $container: CustomElementProperties | ElementStyleProperty | GlobalStyle | ViewRuleGroup | ViewRuleStyle;
1482
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleGroup | ViewRuleStyle;
1165
1483
  readonly $type: 'OpacityProperty';
1166
1484
  key: 'opacity';
1167
1485
  value: string;
@@ -1173,6 +1491,20 @@ export function isOpacityProperty(item: unknown): item is OpacityProperty {
1173
1491
  return reflection.isInstance(item, OpacityProperty);
1174
1492
  }
1175
1493
 
1494
+ export interface OutgoingRelationExpr extends AstNode {
1495
+ readonly $container: DeploymentViewRulePredicateExpression | DirectedRelationExpr;
1496
+ readonly $type: 'OutgoingRelationExpr';
1497
+ from: FqnExpr;
1498
+ isBidirectional: boolean;
1499
+ kind?: Reference<RelationshipKind>;
1500
+ }
1501
+
1502
+ export const OutgoingRelationExpr = 'OutgoingRelationExpr';
1503
+
1504
+ export function isOutgoingRelationExpr(item: unknown): item is OutgoingRelationExpr {
1505
+ return reflection.isInstance(item, OutgoingRelationExpr);
1506
+ }
1507
+
1176
1508
  export interface OutgoingRelationExpression extends AstNode {
1177
1509
  readonly $container: DirectedRelationExpression | Predicates | RelationPredicateWhere | RelationPredicateWith;
1178
1510
  readonly $type: 'OutgoingRelationExpression';
@@ -1232,7 +1564,7 @@ export function isRelationBody(item: unknown): item is RelationBody {
1232
1564
  }
1233
1565
 
1234
1566
  export interface RelationNavigateToProperty extends AstNode {
1235
- readonly $container: CustomRelationProperties | RelationBody;
1567
+ readonly $container: CustomRelationProperties | DeploymentRelationBody | RelationBody;
1236
1568
  readonly $type: 'RelationNavigateToProperty';
1237
1569
  key: 'navigateTo';
1238
1570
  value: DynamicViewRef;
@@ -1283,7 +1615,7 @@ export function isRelationshipKind(item: unknown): item is RelationshipKind {
1283
1615
  }
1284
1616
 
1285
1617
  export interface RelationStringProperty extends AstNode {
1286
- readonly $container: CustomRelationProperties | RelationBody;
1618
+ readonly $container: CustomRelationProperties | DeploymentRelationBody | RelationBody;
1287
1619
  readonly $type: 'RelationStringProperty';
1288
1620
  key: 'description' | 'technology' | 'title';
1289
1621
  value: string;
@@ -1296,7 +1628,7 @@ export function isRelationStringProperty(item: unknown): item is RelationStringP
1296
1628
  }
1297
1629
 
1298
1630
  export interface RelationStyleProperty extends AstNode {
1299
- readonly $container: RelationBody;
1631
+ readonly $container: DeploymentRelationBody | RelationBody;
1300
1632
  readonly $type: 'RelationStyleProperty';
1301
1633
  key: 'style';
1302
1634
  props: Array<RelationshipStyleProperty>;
@@ -1309,7 +1641,7 @@ export function isRelationStyleProperty(item: unknown): item is RelationStylePro
1309
1641
  }
1310
1642
 
1311
1643
  export interface ShapeProperty extends AstNode {
1312
- readonly $container: CustomElementProperties | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
1644
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
1313
1645
  readonly $type: 'ShapeProperty';
1314
1646
  key: 'shape';
1315
1647
  value: ElementShape;
@@ -1334,6 +1666,19 @@ export function isSpecificationColor(item: unknown): item is SpecificationColor
1334
1666
  return reflection.isInstance(item, SpecificationColor);
1335
1667
  }
1336
1668
 
1669
+ export interface SpecificationDeploymentNodeKind extends AstNode {
1670
+ readonly $container: SpecificationRule;
1671
+ readonly $type: 'SpecificationDeploymentNodeKind';
1672
+ kind: DeploymentNodeKind;
1673
+ props: Array<ElementStyleProperty | SpecificationElementStringProperty>;
1674
+ }
1675
+
1676
+ export const SpecificationDeploymentNodeKind = 'SpecificationDeploymentNodeKind';
1677
+
1678
+ export function isSpecificationDeploymentNodeKind(item: unknown): item is SpecificationDeploymentNodeKind {
1679
+ return reflection.isInstance(item, SpecificationDeploymentNodeKind);
1680
+ }
1681
+
1337
1682
  export interface SpecificationElementKind extends AstNode {
1338
1683
  readonly $container: SpecificationRule;
1339
1684
  readonly $type: 'SpecificationElementKind';
@@ -1348,7 +1693,7 @@ export function isSpecificationElementKind(item: unknown): item is Specification
1348
1693
  }
1349
1694
 
1350
1695
  export interface SpecificationElementStringProperty extends AstNode {
1351
- readonly $container: SpecificationElementKind;
1696
+ readonly $container: SpecificationDeploymentNodeKind | SpecificationElementKind;
1352
1697
  readonly $type: 'SpecificationElementStringProperty';
1353
1698
  key: 'notation' | 'technology';
1354
1699
  value: string;
@@ -1390,6 +1735,7 @@ export interface SpecificationRule extends AstNode {
1390
1735
  readonly $container: LikeC4Grammar;
1391
1736
  readonly $type: 'SpecificationRule';
1392
1737
  colors: Array<SpecificationColor>;
1738
+ deploymentNodes: Array<SpecificationDeploymentNodeKind>;
1393
1739
  elements: Array<SpecificationElementKind>;
1394
1740
  name: 'specification';
1395
1741
  relationships: Array<SpecificationRelationshipKind>;
@@ -1427,7 +1773,7 @@ export function isTag(item: unknown): item is Tag {
1427
1773
  }
1428
1774
 
1429
1775
  export interface Tags extends AstNode {
1430
- readonly $container: DynamicViewBody | ElementBody | ElementViewBody | Relation | RelationBody | Tags;
1776
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelation | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | Relation | RelationBody | Tags;
1431
1777
  readonly $type: 'Tags';
1432
1778
  prev?: Tags;
1433
1779
  values: Array<Reference<Tag>>;
@@ -1452,7 +1798,7 @@ export function isViewRef(item: unknown): item is ViewRef {
1452
1798
  }
1453
1799
 
1454
1800
  export interface ViewRuleAutoLayout extends AstNode {
1455
- readonly $container: DynamicViewBody | ElementViewBody;
1801
+ readonly $container: DeploymentViewBody | DynamicViewBody | ElementViewBody;
1456
1802
  readonly $type: 'ViewRuleAutoLayout';
1457
1803
  direction: ViewLayoutDirection;
1458
1804
  nodeSep?: number;
@@ -1517,7 +1863,7 @@ export function isViewRuleStyle(item: unknown): item is ViewRuleStyle {
1517
1863
  }
1518
1864
 
1519
1865
  export interface ViewStringProperty extends AstNode {
1520
- readonly $container: DynamicViewBody | ElementViewBody;
1866
+ readonly $container: DeploymentViewBody | DynamicViewBody | ElementViewBody;
1521
1867
  readonly $type: 'ViewStringProperty';
1522
1868
  key: 'description' | 'title';
1523
1869
  value: string;
@@ -1624,7 +1970,7 @@ export function isWhereRelationTag(item: unknown): item is WhereRelationTag {
1624
1970
  }
1625
1971
 
1626
1972
  export interface WildcardExpression extends AstNode {
1627
- readonly $container: DirectedRelationExpression | DynamicViewPredicateIterator | ElementExpressionsIterator | ElementPredicateWhere | ElementPredicateWith | IncomingRelationExpression | OutgoingRelationExpression | Predicates;
1973
+ readonly $container: DeploymentViewRulePredicateExpression | DirectedRelationExpr | DirectedRelationExpression | DynamicViewPredicateIterator | ElementExpressionsIterator | ElementPredicateWhere | ElementPredicateWith | FqnExpressions | IncomingRelationExpr | IncomingRelationExpression | OutgoingRelationExpr | OutgoingRelationExpression | Predicates;
1628
1974
  readonly $type: 'WildcardExpression';
1629
1975
  isWildcard: boolean;
1630
1976
  }
@@ -1642,6 +1988,21 @@ export type LikeC4AstType = {
1642
1988
  CustomColor: CustomColor
1643
1989
  CustomElementProperties: CustomElementProperties
1644
1990
  CustomRelationProperties: CustomRelationProperties
1991
+ DeployedInstance: DeployedInstance
1992
+ DeployedInstanceBody: DeployedInstanceBody
1993
+ DeploymentElement: DeploymentElement
1994
+ DeploymentNode: DeploymentNode
1995
+ DeploymentNodeBody: DeploymentNodeBody
1996
+ DeploymentNodeKind: DeploymentNodeKind
1997
+ DeploymentRelation: DeploymentRelation
1998
+ DeploymentRelationBody: DeploymentRelationBody
1999
+ DeploymentView: DeploymentView
2000
+ DeploymentViewBody: DeploymentViewBody
2001
+ DeploymentViewRule: DeploymentViewRule
2002
+ DeploymentViewRulePredicate: DeploymentViewRulePredicate
2003
+ DeploymentViewRulePredicateExpression: DeploymentViewRulePredicateExpression
2004
+ DeploymentViewRuleStyle: DeploymentViewRuleStyle
2005
+ DirectedRelationExpr: DirectedRelationExpr
1645
2006
  DirectedRelationExpression: DirectedRelationExpression
1646
2007
  DynamicView: DynamicView
1647
2008
  DynamicViewBody: DynamicViewBody
@@ -1673,9 +2034,15 @@ export type LikeC4AstType = {
1673
2034
  ElementViewRef: ElementViewRef
1674
2035
  ExcludePredicate: ExcludePredicate
1675
2036
  ExpandElementExpression: ExpandElementExpression
2037
+ ExpressionV2: ExpressionV2
1676
2038
  ExtendElement: ExtendElement
1677
2039
  ExtendElementBody: ExtendElementBody
1678
2040
  FqnElementRef: FqnElementRef
2041
+ FqnExpr: FqnExpr
2042
+ FqnExpressions: FqnExpressions
2043
+ FqnRef: FqnRef
2044
+ FqnRefExpr: FqnRefExpr
2045
+ FqnReferenceable: FqnReferenceable
1679
2046
  GlobalDynamicPredicateGroup: GlobalDynamicPredicateGroup
1680
2047
  GlobalPredicateGroup: GlobalPredicateGroup
1681
2048
  GlobalStyle: GlobalStyle
@@ -1683,8 +2050,10 @@ export type LikeC4AstType = {
1683
2050
  GlobalStyleId: GlobalStyleId
1684
2051
  Globals: Globals
1685
2052
  IconProperty: IconProperty
2053
+ InOutRelationExpr: InOutRelationExpr
1686
2054
  InOutRelationExpression: InOutRelationExpression
1687
2055
  IncludePredicate: IncludePredicate
2056
+ IncomingRelationExpr: IncomingRelationExpr
1688
2057
  IncomingRelationExpression: IncomingRelationExpression
1689
2058
  LibIcon: LibIcon
1690
2059
  LikeC4Grammar: LikeC4Grammar
@@ -1696,16 +2065,20 @@ export type LikeC4AstType = {
1696
2065
  MetadataBody: MetadataBody
1697
2066
  MetadataProperty: MetadataProperty
1698
2067
  Model: Model
2068
+ ModelDeployments: ModelDeployments
1699
2069
  ModelViews: ModelViews
1700
2070
  NavigateToProperty: NavigateToProperty
1701
2071
  NotationProperty: NotationProperty
1702
2072
  NotesProperty: NotesProperty
1703
2073
  OpacityProperty: OpacityProperty
2074
+ OutgoingRelationExpr: OutgoingRelationExpr
1704
2075
  OutgoingRelationExpression: OutgoingRelationExpression
1705
2076
  Predicate: Predicate
1706
2077
  Predicates: Predicates
2078
+ Referenceable: Referenceable
1707
2079
  Relation: Relation
1708
2080
  RelationBody: RelationBody
2081
+ RelationExpr: RelationExpr
1709
2082
  RelationExpression: RelationExpression
1710
2083
  RelationNavigateToProperty: RelationNavigateToProperty
1711
2084
  RelationPredicate: RelationPredicate
@@ -1719,6 +2092,7 @@ export type LikeC4AstType = {
1719
2092
  RelationshipStyleProperty: RelationshipStyleProperty
1720
2093
  ShapeProperty: ShapeProperty
1721
2094
  SpecificationColor: SpecificationColor
2095
+ SpecificationDeploymentNodeKind: SpecificationDeploymentNodeKind
1722
2096
  SpecificationElementKind: SpecificationElementKind
1723
2097
  SpecificationElementStringProperty: SpecificationElementStringProperty
1724
2098
  SpecificationRelationshipKind: SpecificationRelationshipKind
@@ -1760,7 +2134,7 @@ export type LikeC4AstType = {
1760
2134
  export class LikeC4AstReflection extends AbstractAstReflection {
1761
2135
 
1762
2136
  getAllTypes(): string[] {
1763
- return [ArrowProperty, BorderProperty, ColorProperty, CustomColor, CustomElementProperties, CustomRelationProperties, DirectedRelationExpression, DynamicView, DynamicViewBody, DynamicViewGlobalPredicateRef, DynamicViewIncludePredicate, DynamicViewParallelSteps, DynamicViewPredicateIterator, DynamicViewRef, DynamicViewRule, DynamicViewStep, Element, ElementBody, ElementDescedantsExpression, ElementExpression, ElementExpressionsIterator, ElementKind, ElementKindExpression, ElementPredicate, ElementPredicateOrWhere, ElementPredicateWhere, ElementPredicateWith, ElementProperty, ElementRef, ElementStringProperty, ElementStyleProperty, ElementTagExpression, ElementView, ElementViewBody, ElementViewRef, ExcludePredicate, ExpandElementExpression, ExtendElement, ExtendElementBody, FqnElementRef, GlobalDynamicPredicateGroup, GlobalPredicateGroup, GlobalStyle, GlobalStyleGroup, GlobalStyleId, Globals, IconProperty, InOutRelationExpression, IncludePredicate, IncomingRelationExpression, LibIcon, LikeC4Grammar, LikeC4Lib, LikeC4View, LineProperty, LinkProperty, MetadataAttribute, MetadataBody, MetadataProperty, Model, ModelViews, NavigateToProperty, NotationProperty, NotesProperty, OpacityProperty, OutgoingRelationExpression, Predicate, Predicates, Relation, RelationBody, RelationExpression, RelationNavigateToProperty, RelationPredicate, RelationPredicateOrWhere, RelationPredicateWhere, RelationPredicateWith, RelationProperty, RelationStringProperty, RelationStyleProperty, RelationshipKind, RelationshipStyleProperty, ShapeProperty, SpecificationColor, SpecificationElementKind, SpecificationElementStringProperty, SpecificationRelationshipKind, SpecificationRelationshipStringProperty, SpecificationRule, SpecificationTag, StringProperty, StyleProperty, Tag, Tags, ViewProperty, ViewRef, ViewRule, ViewRuleAutoLayout, ViewRuleGlobalPredicateRef, ViewRuleGlobalStyle, ViewRuleGroup, ViewRulePredicate, ViewRuleStyle, ViewRuleStyleOrGlobalRef, ViewStringProperty, WhereBinaryExpression, WhereElement, WhereElementExpression, WhereElementKind, WhereElementNegation, WhereElementTag, WhereExpression, WhereKindEqual, WhereRelation, WhereRelationExpression, WhereRelationKind, WhereRelationNegation, WhereRelationTag, WhereTagEqual, WildcardExpression];
2137
+ return [ArrowProperty, BorderProperty, ColorProperty, CustomColor, CustomElementProperties, CustomRelationProperties, DeployedInstance, DeployedInstanceBody, DeploymentElement, DeploymentNode, DeploymentNodeBody, DeploymentNodeKind, DeploymentRelation, DeploymentRelationBody, DeploymentView, DeploymentViewBody, DeploymentViewRule, DeploymentViewRulePredicate, DeploymentViewRulePredicateExpression, DeploymentViewRuleStyle, DirectedRelationExpr, DirectedRelationExpression, DynamicView, DynamicViewBody, DynamicViewGlobalPredicateRef, DynamicViewIncludePredicate, DynamicViewParallelSteps, DynamicViewPredicateIterator, DynamicViewRef, DynamicViewRule, DynamicViewStep, Element, ElementBody, ElementDescedantsExpression, ElementExpression, ElementExpressionsIterator, ElementKind, ElementKindExpression, ElementPredicate, ElementPredicateOrWhere, ElementPredicateWhere, ElementPredicateWith, ElementProperty, ElementRef, ElementStringProperty, ElementStyleProperty, ElementTagExpression, ElementView, ElementViewBody, ElementViewRef, ExcludePredicate, ExpandElementExpression, ExpressionV2, ExtendElement, ExtendElementBody, FqnElementRef, FqnExpr, FqnExpressions, FqnRef, FqnRefExpr, FqnReferenceable, GlobalDynamicPredicateGroup, GlobalPredicateGroup, GlobalStyle, GlobalStyleGroup, GlobalStyleId, Globals, IconProperty, InOutRelationExpr, InOutRelationExpression, IncludePredicate, IncomingRelationExpr, IncomingRelationExpression, LibIcon, LikeC4Grammar, LikeC4Lib, LikeC4View, LineProperty, LinkProperty, MetadataAttribute, MetadataBody, MetadataProperty, Model, ModelDeployments, ModelViews, NavigateToProperty, NotationProperty, NotesProperty, OpacityProperty, OutgoingRelationExpr, OutgoingRelationExpression, Predicate, Predicates, Referenceable, Relation, RelationBody, RelationExpr, RelationExpression, RelationNavigateToProperty, RelationPredicate, RelationPredicateOrWhere, RelationPredicateWhere, RelationPredicateWith, RelationProperty, RelationStringProperty, RelationStyleProperty, RelationshipKind, RelationshipStyleProperty, ShapeProperty, SpecificationColor, SpecificationDeploymentNodeKind, SpecificationElementKind, SpecificationElementStringProperty, SpecificationRelationshipKind, SpecificationRelationshipStringProperty, SpecificationRule, SpecificationTag, StringProperty, StyleProperty, Tag, Tags, ViewProperty, ViewRef, ViewRule, ViewRuleAutoLayout, ViewRuleGlobalPredicateRef, ViewRuleGlobalStyle, ViewRuleGroup, ViewRulePredicate, ViewRuleStyle, ViewRuleStyleOrGlobalRef, ViewStringProperty, WhereBinaryExpression, WhereElement, WhereElementExpression, WhereElementKind, WhereElementNegation, WhereElementTag, WhereExpression, WhereKindEqual, WhereRelation, WhereRelationExpression, WhereRelationKind, WhereRelationNegation, WhereRelationTag, WhereTagEqual, WildcardExpression];
1764
2138
  }
1765
2139
 
1766
2140
  protected override computeIsSubtype(subtype: string, supertype: string): boolean {
@@ -1777,26 +2151,43 @@ export class LikeC4AstReflection extends AbstractAstReflection {
1777
2151
  case ColorProperty: {
1778
2152
  return this.isSubtype(RelationshipStyleProperty, supertype) || this.isSubtype(StyleProperty, supertype);
1779
2153
  }
2154
+ case DeployedInstance:
2155
+ case DeploymentNode: {
2156
+ return this.isSubtype(DeploymentElement, supertype) || this.isSubtype(Referenceable, supertype);
2157
+ }
2158
+ case DeploymentView:
2159
+ case DynamicView:
2160
+ case ElementView: {
2161
+ return this.isSubtype(LikeC4View, supertype);
2162
+ }
2163
+ case DeploymentViewRulePredicate:
2164
+ case DeploymentViewRuleStyle: {
2165
+ return this.isSubtype(DeploymentViewRule, supertype);
2166
+ }
2167
+ case DirectedRelationExpr:
2168
+ case IncomingRelationExpr:
2169
+ case InOutRelationExpr:
2170
+ case OutgoingRelationExpr: {
2171
+ return this.isSubtype(RelationExpr, supertype);
2172
+ }
1780
2173
  case DirectedRelationExpression:
1781
2174
  case IncomingRelationExpression:
1782
2175
  case InOutRelationExpression:
1783
2176
  case OutgoingRelationExpression: {
1784
2177
  return this.isSubtype(RelationExpression, supertype);
1785
2178
  }
1786
- case DynamicView:
1787
- case ElementView: {
1788
- return this.isSubtype(LikeC4View, supertype);
1789
- }
1790
2179
  case DynamicViewGlobalPredicateRef:
1791
2180
  case DynamicViewIncludePredicate: {
1792
2181
  return this.isSubtype(DynamicViewRule, supertype);
1793
2182
  }
2183
+ case Element: {
2184
+ return this.isSubtype(FqnReferenceable, supertype) || this.isSubtype(Referenceable, supertype);
2185
+ }
1794
2186
  case ElementDescedantsExpression:
1795
2187
  case ElementKindExpression:
1796
2188
  case ElementRef:
1797
2189
  case ElementTagExpression:
1798
- case ExpandElementExpression:
1799
- case WildcardExpression: {
2190
+ case ExpandElementExpression: {
1800
2191
  return this.isSubtype(ElementExpression, supertype);
1801
2192
  }
1802
2193
  case ElementExpression:
@@ -1821,6 +2212,17 @@ export class LikeC4AstReflection extends AbstractAstReflection {
1821
2212
  case IncludePredicate: {
1822
2213
  return this.isSubtype(ViewRulePredicate, supertype);
1823
2214
  }
2215
+ case ExtendElement:
2216
+ case Referenceable: {
2217
+ return this.isSubtype(FqnReferenceable, supertype);
2218
+ }
2219
+ case FqnExpr:
2220
+ case RelationExpr: {
2221
+ return this.isSubtype(ExpressionV2, supertype);
2222
+ }
2223
+ case FqnRefExpr: {
2224
+ return this.isSubtype(FqnExpr, supertype);
2225
+ }
1824
2226
  case IconProperty: {
1825
2227
  return this.isSubtype(ElementProperty, supertype) || this.isSubtype(StyleProperty, supertype);
1826
2228
  }
@@ -1855,9 +2257,8 @@ export class LikeC4AstReflection extends AbstractAstReflection {
1855
2257
  case RelationStringProperty: {
1856
2258
  return this.isSubtype(RelationProperty, supertype) || this.isSubtype(StringProperty, supertype);
1857
2259
  }
1858
- case ViewRuleAutoLayout:
1859
- case ViewRuleStyleOrGlobalRef: {
1860
- return this.isSubtype(DynamicViewRule, supertype) || this.isSubtype(ViewRule, supertype);
2260
+ case ViewRuleAutoLayout: {
2261
+ return this.isSubtype(DeploymentViewRule, supertype) || this.isSubtype(DynamicViewRule, supertype) || this.isSubtype(ViewRule, supertype);
1861
2262
  }
1862
2263
  case ViewRuleGlobalPredicateRef:
1863
2264
  case ViewRuleGroup:
@@ -1868,6 +2269,9 @@ export class LikeC4AstReflection extends AbstractAstReflection {
1868
2269
  case ViewRuleStyle: {
1869
2270
  return this.isSubtype(ViewRuleStyleOrGlobalRef, supertype);
1870
2271
  }
2272
+ case ViewRuleStyleOrGlobalRef: {
2273
+ return this.isSubtype(DynamicViewRule, supertype) || this.isSubtype(ViewRule, supertype);
2274
+ }
1871
2275
  case ViewStringProperty: {
1872
2276
  return this.isSubtype(StringProperty, supertype) || this.isSubtype(ViewProperty, supertype);
1873
2277
  }
@@ -1898,6 +2302,9 @@ export class LikeC4AstReflection extends AbstractAstReflection {
1898
2302
  case WhereRelationTag: {
1899
2303
  return this.isSubtype(WhereRelation, supertype) || this.isSubtype(WhereTagEqual, supertype);
1900
2304
  }
2305
+ case WildcardExpression: {
2306
+ return this.isSubtype(ElementExpression, supertype) || this.isSubtype(FqnExpr, supertype);
2307
+ }
1901
2308
  default: {
1902
2309
  return false;
1903
2310
  }
@@ -1910,18 +2317,23 @@ export class LikeC4AstReflection extends AbstractAstReflection {
1910
2317
  case 'ColorProperty:customColor': {
1911
2318
  return CustomColor;
1912
2319
  }
1913
- case 'DynamicViewGlobalPredicateRef:predicate': {
1914
- return GlobalDynamicPredicateGroup;
1915
- }
1916
- case 'DynamicViewRef:view': {
1917
- return DynamicView;
2320
+ case 'DeploymentNode:kind': {
2321
+ return DeploymentNodeKind;
1918
2322
  }
2323
+ case 'DeploymentRelation:kind':
1919
2324
  case 'DynamicViewStep:kind':
2325
+ case 'OutgoingRelationExpr:kind':
1920
2326
  case 'OutgoingRelationExpression:kind':
1921
2327
  case 'Relation:kind':
1922
2328
  case 'WhereRelationKind:value': {
1923
2329
  return RelationshipKind;
1924
2330
  }
2331
+ case 'DynamicViewGlobalPredicateRef:predicate': {
2332
+ return GlobalDynamicPredicateGroup;
2333
+ }
2334
+ case 'DynamicViewRef:view': {
2335
+ return DynamicView;
2336
+ }
1925
2337
  case 'Element:kind':
1926
2338
  case 'ElementKindExpression:kind':
1927
2339
  case 'WhereElementKind:value': {
@@ -1940,6 +2352,9 @@ export class LikeC4AstReflection extends AbstractAstReflection {
1940
2352
  case 'ElementViewRef:view': {
1941
2353
  return ElementView;
1942
2354
  }
2355
+ case 'FqnRef:value': {
2356
+ return Referenceable;
2357
+ }
1943
2358
  case 'IconProperty:libicon': {
1944
2359
  return LibIcon;
1945
2360
  }
@@ -2012,6 +2427,133 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2012
2427
  ]
2013
2428
  };
2014
2429
  }
2430
+ case DeployedInstance: {
2431
+ return {
2432
+ name: DeployedInstance,
2433
+ properties: [
2434
+ { name: 'body' },
2435
+ { name: 'element' },
2436
+ { name: 'name' },
2437
+ { name: 'title' }
2438
+ ]
2439
+ };
2440
+ }
2441
+ case DeployedInstanceBody: {
2442
+ return {
2443
+ name: DeployedInstanceBody,
2444
+ properties: [
2445
+ { name: 'props', defaultValue: [] },
2446
+ { name: 'tags' }
2447
+ ]
2448
+ };
2449
+ }
2450
+ case DeploymentNode: {
2451
+ return {
2452
+ name: DeploymentNode,
2453
+ properties: [
2454
+ { name: 'body' },
2455
+ { name: 'kind' },
2456
+ { name: 'name' },
2457
+ { name: 'title' }
2458
+ ]
2459
+ };
2460
+ }
2461
+ case DeploymentNodeBody: {
2462
+ return {
2463
+ name: DeploymentNodeBody,
2464
+ properties: [
2465
+ { name: 'elements', defaultValue: [] },
2466
+ { name: 'props', defaultValue: [] },
2467
+ { name: 'tags' }
2468
+ ]
2469
+ };
2470
+ }
2471
+ case DeploymentNodeKind: {
2472
+ return {
2473
+ name: DeploymentNodeKind,
2474
+ properties: [
2475
+ { name: 'name' }
2476
+ ]
2477
+ };
2478
+ }
2479
+ case DeploymentRelation: {
2480
+ return {
2481
+ name: DeploymentRelation,
2482
+ properties: [
2483
+ { name: 'body' },
2484
+ { name: 'kind' },
2485
+ { name: 'source' },
2486
+ { name: 'tags' },
2487
+ { name: 'target' },
2488
+ { name: 'technology' },
2489
+ { name: 'title' }
2490
+ ]
2491
+ };
2492
+ }
2493
+ case DeploymentRelationBody: {
2494
+ return {
2495
+ name: DeploymentRelationBody,
2496
+ properties: [
2497
+ { name: 'props', defaultValue: [] },
2498
+ { name: 'tags' }
2499
+ ]
2500
+ };
2501
+ }
2502
+ case DeploymentView: {
2503
+ return {
2504
+ name: DeploymentView,
2505
+ properties: [
2506
+ { name: 'body' },
2507
+ { name: 'name' }
2508
+ ]
2509
+ };
2510
+ }
2511
+ case DeploymentViewBody: {
2512
+ return {
2513
+ name: DeploymentViewBody,
2514
+ properties: [
2515
+ { name: 'props', defaultValue: [] },
2516
+ { name: 'rules', defaultValue: [] },
2517
+ { name: 'tags' }
2518
+ ]
2519
+ };
2520
+ }
2521
+ case DeploymentViewRulePredicate: {
2522
+ return {
2523
+ name: DeploymentViewRulePredicate,
2524
+ properties: [
2525
+ { name: 'expr' },
2526
+ { name: 'isInclude', defaultValue: false }
2527
+ ]
2528
+ };
2529
+ }
2530
+ case DeploymentViewRulePredicateExpression: {
2531
+ return {
2532
+ name: DeploymentViewRulePredicateExpression,
2533
+ properties: [
2534
+ { name: 'prev' },
2535
+ { name: 'value' }
2536
+ ]
2537
+ };
2538
+ }
2539
+ case DeploymentViewRuleStyle: {
2540
+ return {
2541
+ name: DeploymentViewRuleStyle,
2542
+ properties: [
2543
+ { name: 'props', defaultValue: [] },
2544
+ { name: 'targets' }
2545
+ ]
2546
+ };
2547
+ }
2548
+ case DirectedRelationExpr: {
2549
+ return {
2550
+ name: DirectedRelationExpr,
2551
+ properties: [
2552
+ { name: 'source' },
2553
+ { name: 'target' }
2554
+ ]
2555
+ };
2556
+ }
2015
2557
  case DirectedRelationExpression: {
2016
2558
  return {
2017
2559
  name: DirectedRelationExpression,
@@ -2120,7 +2662,8 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2120
2662
  return {
2121
2663
  name: ElementDescedantsExpression,
2122
2664
  properties: [
2123
- { name: 'parent' }
2665
+ { name: 'parent' },
2666
+ { name: 'suffix' }
2124
2667
  ]
2125
2668
  };
2126
2669
  }
@@ -2275,6 +2818,33 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2275
2818
  ]
2276
2819
  };
2277
2820
  }
2821
+ case FqnExpressions: {
2822
+ return {
2823
+ name: FqnExpressions,
2824
+ properties: [
2825
+ { name: 'prev' },
2826
+ { name: 'value' }
2827
+ ]
2828
+ };
2829
+ }
2830
+ case FqnRef: {
2831
+ return {
2832
+ name: FqnRef,
2833
+ properties: [
2834
+ { name: 'parent' },
2835
+ { name: 'value' }
2836
+ ]
2837
+ };
2838
+ }
2839
+ case FqnRefExpr: {
2840
+ return {
2841
+ name: FqnRefExpr,
2842
+ properties: [
2843
+ { name: 'ref' },
2844
+ { name: 'selector' }
2845
+ ]
2846
+ };
2847
+ }
2278
2848
  case GlobalDynamicPredicateGroup: {
2279
2849
  return {
2280
2850
  name: GlobalDynamicPredicateGroup,
@@ -2348,6 +2918,14 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2348
2918
  ]
2349
2919
  };
2350
2920
  }
2921
+ case IncomingRelationExpr: {
2922
+ return {
2923
+ name: IncomingRelationExpr,
2924
+ properties: [
2925
+ { name: 'to' }
2926
+ ]
2927
+ };
2928
+ }
2351
2929
  case IncomingRelationExpression: {
2352
2930
  return {
2353
2931
  name: IncomingRelationExpression,
@@ -2356,6 +2934,14 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2356
2934
  ]
2357
2935
  };
2358
2936
  }
2937
+ case InOutRelationExpr: {
2938
+ return {
2939
+ name: InOutRelationExpr,
2940
+ properties: [
2941
+ { name: 'inout' }
2942
+ ]
2943
+ };
2944
+ }
2359
2945
  case InOutRelationExpression: {
2360
2946
  return {
2361
2947
  name: InOutRelationExpression,
@@ -2376,6 +2962,7 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2376
2962
  return {
2377
2963
  name: LikeC4Grammar,
2378
2964
  properties: [
2965
+ { name: 'deployments', defaultValue: [] },
2379
2966
  { name: 'globals', defaultValue: [] },
2380
2967
  { name: 'likec4lib', defaultValue: [] },
2381
2968
  { name: 'models', defaultValue: [] },
@@ -2437,6 +3024,15 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2437
3024
  ]
2438
3025
  };
2439
3026
  }
3027
+ case ModelDeployments: {
3028
+ return {
3029
+ name: ModelDeployments,
3030
+ properties: [
3031
+ { name: 'elements', defaultValue: [] },
3032
+ { name: 'name' }
3033
+ ]
3034
+ };
3035
+ }
2440
3036
  case ModelViews: {
2441
3037
  return {
2442
3038
  name: ModelViews,
@@ -2483,6 +3079,16 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2483
3079
  ]
2484
3080
  };
2485
3081
  }
3082
+ case OutgoingRelationExpr: {
3083
+ return {
3084
+ name: OutgoingRelationExpr,
3085
+ properties: [
3086
+ { name: 'from' },
3087
+ { name: 'isBidirectional', defaultValue: false },
3088
+ { name: 'kind' }
3089
+ ]
3090
+ };
3091
+ }
2486
3092
  case OutgoingRelationExpression: {
2487
3093
  return {
2488
3094
  name: OutgoingRelationExpression,
@@ -2596,6 +3202,15 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2596
3202
  ]
2597
3203
  };
2598
3204
  }
3205
+ case SpecificationDeploymentNodeKind: {
3206
+ return {
3207
+ name: SpecificationDeploymentNodeKind,
3208
+ properties: [
3209
+ { name: 'kind' },
3210
+ { name: 'props', defaultValue: [] }
3211
+ ]
3212
+ };
3213
+ }
2599
3214
  case SpecificationElementKind: {
2600
3215
  return {
2601
3216
  name: SpecificationElementKind,
@@ -2637,6 +3252,7 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2637
3252
  name: SpecificationRule,
2638
3253
  properties: [
2639
3254
  { name: 'colors', defaultValue: [] },
3255
+ { name: 'deploymentNodes', defaultValue: [] },
2640
3256
  { name: 'elements', defaultValue: [] },
2641
3257
  { name: 'name' },
2642
3258
  { name: 'relationships', defaultValue: [] },