@likec4/language-server 1.18.0 → 1.19.1

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 (250) hide show
  1. package/dist/LikeC4FileSystem.d.ts +13 -0
  2. package/dist/LikeC4FileSystem.js +27 -0
  3. package/dist/Rpc.d.ts +9 -0
  4. package/dist/Rpc.js +132 -0
  5. package/dist/ast.d.ts +200 -0
  6. package/dist/ast.js +276 -0
  7. package/dist/browser.d.ts +7 -20
  8. package/dist/browser.js +13 -0
  9. package/dist/documentation/documentation-provider.d.ts +8 -0
  10. package/dist/documentation/documentation-provider.js +46 -0
  11. package/dist/documentation/index.d.ts +1 -0
  12. package/dist/documentation/index.js +1 -0
  13. package/dist/formatting/LikeC4Formatter.d.ts +27 -0
  14. package/dist/formatting/LikeC4Formatter.js +261 -0
  15. package/dist/formatting/utils.d.ts +6 -0
  16. package/dist/formatting/utils.js +15 -0
  17. package/dist/generated/ast.d.ts +1242 -0
  18. package/dist/generated/ast.js +1945 -0
  19. package/dist/generated/grammar.d.ts +6 -0
  20. package/dist/generated/grammar.js +3 -0
  21. package/dist/generated/module.d.ts +9 -0
  22. package/dist/generated/module.js +23 -0
  23. package/dist/generated-lib/icons.d.ts +1 -0
  24. package/dist/{likec4lib.mjs → generated-lib/icons.js} +1 -6
  25. package/dist/index.d.ts +9 -31
  26. package/dist/index.js +14 -0
  27. package/dist/like-c4.langium +845 -0
  28. package/dist/likec4lib.d.ts +4 -6
  29. package/dist/likec4lib.js +4 -0
  30. package/dist/logger.d.ts +7 -0
  31. package/dist/logger.js +73 -0
  32. package/dist/lsp/CodeLensProvider.d.ts +9 -0
  33. package/dist/lsp/CodeLensProvider.js +40 -0
  34. package/dist/lsp/CompletionProvider.d.ts +6 -0
  35. package/dist/lsp/CompletionProvider.js +135 -0
  36. package/dist/lsp/DocumentHighlightProvider.d.ts +9 -0
  37. package/dist/lsp/DocumentHighlightProvider.js +10 -0
  38. package/dist/lsp/DocumentLinkProvider.d.ts +11 -0
  39. package/dist/lsp/DocumentLinkProvider.js +49 -0
  40. package/dist/lsp/DocumentSymbolProvider.d.ts +32 -0
  41. package/dist/lsp/DocumentSymbolProvider.js +274 -0
  42. package/dist/lsp/HoverProvider.d.ts +10 -0
  43. package/dist/lsp/HoverProvider.js +69 -0
  44. package/dist/lsp/RenameProvider.d.ts +5 -0
  45. package/dist/lsp/RenameProvider.js +6 -0
  46. package/dist/lsp/SemanticTokenProvider.d.ts +7 -0
  47. package/dist/lsp/SemanticTokenProvider.js +297 -0
  48. package/dist/lsp/index.d.ts +7 -0
  49. package/dist/lsp/index.js +7 -0
  50. package/dist/model/deployments-index.d.ts +60 -0
  51. package/dist/model/deployments-index.js +181 -0
  52. package/dist/model/fqn-computation.d.ts +3 -0
  53. package/dist/model/fqn-computation.js +72 -0
  54. package/dist/model/fqn-index.d.ts +25 -0
  55. package/dist/model/fqn-index.js +96 -0
  56. package/dist/model/index.d.ts +6 -0
  57. package/dist/model/index.js +6 -0
  58. package/dist/model/model-builder.d.ts +32 -0
  59. package/dist/model/model-builder.js +598 -0
  60. package/dist/model/model-locator.d.ts +23 -0
  61. package/dist/model/model-locator.js +126 -0
  62. package/dist/model/model-parser-where.d.ts +3 -0
  63. package/dist/model/model-parser-where.js +70 -0
  64. package/dist/model/model-parser.d.ts +292 -0
  65. package/dist/model/model-parser.js +72 -0
  66. package/dist/model/parser/Base.d.ts +28 -0
  67. package/dist/model/parser/Base.js +87 -0
  68. package/dist/model/parser/DeploymentModelParser.d.ts +33 -0
  69. package/dist/model/parser/DeploymentModelParser.js +162 -0
  70. package/dist/model/parser/DeploymentViewParser.d.ts +38 -0
  71. package/dist/model/parser/DeploymentViewParser.js +98 -0
  72. package/dist/model/parser/FqnRefParser.d.ts +29 -0
  73. package/dist/model/parser/FqnRefParser.js +108 -0
  74. package/dist/model/parser/GlobalsParser.d.ts +66 -0
  75. package/dist/model/parser/GlobalsParser.js +80 -0
  76. package/dist/model/parser/ModelParser.d.ts +27 -0
  77. package/dist/model/parser/ModelParser.js +122 -0
  78. package/dist/model/parser/PredicatesParser.d.ts +34 -0
  79. package/dist/model/parser/PredicatesParser.js +272 -0
  80. package/dist/model/parser/SpecificationParser.d.ts +27 -0
  81. package/dist/model/parser/SpecificationParser.js +120 -0
  82. package/dist/model/parser/ViewsParser.d.ts +64 -0
  83. package/dist/model/parser/ViewsParser.js +377 -0
  84. package/dist/model-change/ModelChanges.d.ts +15 -0
  85. package/dist/model-change/ModelChanges.js +89 -0
  86. package/dist/model-change/changeElementStyle.d.ts +16 -0
  87. package/dist/model-change/changeElementStyle.js +136 -0
  88. package/dist/model-change/changeViewLayout.d.ts +12 -0
  89. package/dist/model-change/changeViewLayout.js +32 -0
  90. package/dist/model-change/saveManualLayout.d.ts +11 -0
  91. package/dist/model-change/saveManualLayout.js +27 -0
  92. package/dist/module.d.ts +70 -0
  93. package/dist/module.js +162 -0
  94. package/dist/protocol.d.ts +38 -23
  95. package/dist/protocol.js +15 -0
  96. package/dist/references/index.d.ts +3 -0
  97. package/dist/references/index.js +3 -0
  98. package/dist/references/name-provider.d.ts +9 -0
  99. package/dist/references/name-provider.js +33 -0
  100. package/dist/references/scope-computation.d.ts +20 -0
  101. package/dist/references/scope-computation.js +281 -0
  102. package/dist/references/scope-provider.d.ts +16 -0
  103. package/dist/references/scope-provider.js +165 -0
  104. package/dist/shared/NodeKindProvider.d.ts +15 -0
  105. package/dist/shared/NodeKindProvider.js +108 -0
  106. package/dist/shared/WorkspaceManager.d.ts +18 -0
  107. package/dist/shared/WorkspaceManager.js +36 -0
  108. package/dist/shared/WorkspaceSymbolProvider.d.ts +3 -0
  109. package/dist/shared/WorkspaceSymbolProvider.js +3 -0
  110. package/dist/shared/index.d.ts +3 -0
  111. package/dist/shared/index.js +3 -0
  112. package/dist/test/index.d.ts +1 -0
  113. package/dist/test/index.js +1 -0
  114. package/dist/test/setup.d.ts +1 -0
  115. package/dist/test/setup.js +7 -0
  116. package/dist/test/testServices.d.ts +22 -0
  117. package/dist/test/testServices.js +119 -0
  118. package/dist/utils/elementRef.d.ts +11 -0
  119. package/dist/utils/elementRef.js +15 -0
  120. package/dist/utils/fqnRef.d.ts +8 -0
  121. package/dist/utils/fqnRef.js +46 -0
  122. package/dist/utils/index.d.ts +1 -0
  123. package/dist/utils/index.js +1 -0
  124. package/dist/utils/printDocs.d.ts +2 -0
  125. package/dist/utils/printDocs.js +1 -0
  126. package/dist/utils/stringHash.d.ts +1 -0
  127. package/dist/utils/stringHash.js +5 -0
  128. package/dist/validation/_shared.d.ts +3 -0
  129. package/dist/validation/_shared.js +22 -0
  130. package/dist/validation/deployment-checks.d.ts +6 -0
  131. package/dist/validation/deployment-checks.js +114 -0
  132. package/dist/validation/dynamic-view-rule.d.ts +4 -0
  133. package/dist/validation/dynamic-view-rule.js +17 -0
  134. package/dist/validation/dynamic-view-step.d.ts +4 -0
  135. package/dist/validation/dynamic-view-step.js +29 -0
  136. package/dist/validation/element.d.ts +4 -0
  137. package/dist/validation/element.js +49 -0
  138. package/dist/validation/index.d.ts +15 -0
  139. package/dist/validation/index.js +152 -0
  140. package/dist/validation/property-checks.d.ts +6 -0
  141. package/dist/validation/property-checks.js +39 -0
  142. package/dist/validation/relation.d.ts +5 -0
  143. package/dist/validation/relation.js +56 -0
  144. package/dist/validation/specification.d.ts +11 -0
  145. package/dist/validation/specification.js +136 -0
  146. package/dist/validation/view-predicates/element-with.d.ts +4 -0
  147. package/dist/validation/view-predicates/element-with.js +31 -0
  148. package/dist/validation/view-predicates/expanded-element.d.ts +4 -0
  149. package/dist/validation/view-predicates/expanded-element.js +12 -0
  150. package/dist/validation/view-predicates/expression-v2.d.ts +5 -0
  151. package/dist/validation/view-predicates/expression-v2.js +83 -0
  152. package/dist/validation/view-predicates/incoming.d.ts +4 -0
  153. package/dist/validation/view-predicates/incoming.js +16 -0
  154. package/dist/validation/view-predicates/index.d.ts +6 -0
  155. package/dist/validation/view-predicates/index.js +6 -0
  156. package/dist/validation/view-predicates/outgoing.d.ts +4 -0
  157. package/dist/validation/view-predicates/outgoing.js +16 -0
  158. package/dist/validation/view-predicates/relation-with.d.ts +4 -0
  159. package/dist/validation/view-predicates/relation-with.js +13 -0
  160. package/dist/validation/view.d.ts +4 -0
  161. package/dist/validation/view.js +23 -0
  162. package/dist/view-utils/assignNavigateTo.d.ts +2 -0
  163. package/dist/view-utils/assignNavigateTo.js +25 -0
  164. package/dist/view-utils/index.d.ts +2 -0
  165. package/dist/view-utils/index.js +2 -0
  166. package/dist/view-utils/manual-layout.d.ts +7 -0
  167. package/dist/view-utils/manual-layout.js +99 -0
  168. package/dist/view-utils/resolve-relative-paths.d.ts +2 -0
  169. package/dist/view-utils/resolve-relative-paths.js +78 -0
  170. package/dist/views/configurable-layouter.d.ts +7 -0
  171. package/dist/views/configurable-layouter.js +55 -0
  172. package/dist/views/index.d.ts +1 -0
  173. package/dist/views/index.js +1 -0
  174. package/dist/views/likec4-views.d.ts +26 -0
  175. package/dist/views/likec4-views.js +113 -0
  176. package/package.json +40 -54
  177. package/src/LikeC4FileSystem.ts +22 -21
  178. package/src/Rpc.ts +13 -7
  179. package/src/ast.ts +44 -133
  180. package/src/browser.ts +11 -11
  181. package/src/documentation/documentation-provider.ts +52 -0
  182. package/src/documentation/index.ts +1 -0
  183. package/src/generated/ast.ts +177 -177
  184. package/src/generated/grammar.ts +1 -1
  185. package/src/index.ts +13 -9
  186. package/src/like-c4.langium +37 -34
  187. package/src/logger.ts +34 -55
  188. package/src/lsp/CompletionProvider.ts +4 -4
  189. package/src/lsp/DocumentSymbolProvider.ts +110 -28
  190. package/src/lsp/HoverProvider.ts +5 -3
  191. package/src/lsp/SemanticTokenProvider.ts +2 -2
  192. package/src/model/deployments-index.ts +18 -14
  193. package/src/model/fqn-computation.ts +8 -8
  194. package/src/model/model-builder.ts +62 -60
  195. package/src/model/model-parser.ts +62 -1574
  196. package/src/model/parser/Base.ts +107 -0
  197. package/src/model/parser/DeploymentModelParser.ts +192 -0
  198. package/src/model/parser/DeploymentViewParser.ts +116 -0
  199. package/src/model/parser/FqnRefParser.ts +118 -0
  200. package/src/model/parser/GlobalsParser.ts +96 -0
  201. package/src/model/parser/ModelParser.ts +141 -0
  202. package/src/model/parser/PredicatesParser.ts +291 -0
  203. package/src/model/parser/SpecificationParser.ts +133 -0
  204. package/src/model/parser/ViewsParser.ts +428 -0
  205. package/src/module.ts +71 -25
  206. package/src/protocol.ts +29 -4
  207. package/src/references/scope-computation.ts +35 -35
  208. package/src/references/scope-provider.ts +13 -7
  209. package/src/utils/{deploymentRef.ts → fqnRef.ts} +27 -2
  210. package/src/validation/_shared.ts +0 -1
  211. package/src/validation/deployment-checks.ts +49 -62
  212. package/src/validation/dynamic-view-rule.ts +5 -4
  213. package/src/validation/dynamic-view-step.ts +23 -26
  214. package/src/validation/index.ts +100 -9
  215. package/src/validation/property-checks.ts +11 -10
  216. package/src/validation/specification.ts +38 -38
  217. package/src/validation/view-predicates/element-with.ts +6 -5
  218. package/src/validation/view-predicates/expanded-element.ts +6 -5
  219. package/src/validation/view-predicates/expression-v2.ts +101 -0
  220. package/src/validation/view-predicates/incoming.ts +6 -5
  221. package/src/validation/view-predicates/index.ts +1 -1
  222. package/src/validation/view-predicates/outgoing.ts +6 -5
  223. package/src/validation/view-predicates/relation-with.ts +6 -5
  224. package/src/validation/view.ts +5 -5
  225. package/src/view-utils/assignNavigateTo.ts +1 -1
  226. package/src/view-utils/manual-layout.ts +25 -0
  227. package/src/views/configurable-layouter.ts +65 -0
  228. package/src/views/index.ts +1 -0
  229. package/src/views/likec4-views.ts +139 -0
  230. package/dist/browser.cjs +0 -25
  231. package/dist/browser.d.cts +0 -23
  232. package/dist/browser.d.mts +0 -23
  233. package/dist/browser.mjs +0 -20
  234. package/dist/index.cjs +0 -53
  235. package/dist/index.d.cts +0 -34
  236. package/dist/index.d.mts +0 -34
  237. package/dist/index.mjs +0 -46
  238. package/dist/likec4lib.cjs +0 -1546
  239. package/dist/likec4lib.d.cts +0 -6
  240. package/dist/likec4lib.d.mts +0 -6
  241. package/dist/protocol.cjs +0 -25
  242. package/dist/protocol.d.cts +0 -48
  243. package/dist/protocol.d.mts +0 -48
  244. package/dist/protocol.mjs +0 -17
  245. package/dist/shared/language-server.CO_nmHiL.cjs +0 -7689
  246. package/dist/shared/language-server.Da6ey08o.d.cts +0 -1619
  247. package/dist/shared/language-server.De7S3e5Z.d.ts +0 -1619
  248. package/dist/shared/language-server.Dj4iDjtB.d.mts +0 -1619
  249. package/dist/shared/language-server.oO_9JoAG.mjs +0 -7666
  250. package/src/validation/view-predicates/deployments.ts +0 -56
@@ -170,38 +170,6 @@ export function isDeploymentElement(item: unknown): item is DeploymentElement {
170
170
  return reflection.isInstance(item, DeploymentElement);
171
171
  }
172
172
 
173
- export type DeploymentElementExpression = DeploymentRefExpression | WildcardExpression;
174
-
175
- export const DeploymentElementExpression = 'DeploymentElementExpression';
176
-
177
- export function isDeploymentElementExpression(item: unknown): item is DeploymentElementExpression {
178
- return reflection.isInstance(item, DeploymentElementExpression);
179
- }
180
-
181
- export type DeploymentExpression = DeploymentElementExpression | DeploymentRelationExpression;
182
-
183
- export const DeploymentExpression = 'DeploymentExpression';
184
-
185
- export function isDeploymentExpression(item: unknown): item is DeploymentExpression {
186
- return reflection.isInstance(item, DeploymentExpression);
187
- }
188
-
189
- export type DeploymentReferenceable = DeployedInstance | DeploymentNode | Element;
190
-
191
- export const DeploymentReferenceable = 'DeploymentReferenceable';
192
-
193
- export function isDeploymentReferenceable(item: unknown): item is DeploymentReferenceable {
194
- return reflection.isInstance(item, DeploymentReferenceable);
195
- }
196
-
197
- export type DeploymentRelationExpression = DirectedDeploymentRelationExpression | InOutDeploymentRelationExpression | IncomingDeploymentRelationExpression | OutgoingDeploymentRelationExpression;
198
-
199
- export const DeploymentRelationExpression = 'DeploymentRelationExpression';
200
-
201
- export function isDeploymentRelationExpression(item: unknown): item is DeploymentRelationExpression {
202
- return reflection.isInstance(item, DeploymentRelationExpression);
203
- }
204
-
205
173
  export type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout;
206
174
 
207
175
  export const DeploymentViewRule = 'DeploymentViewRule';
@@ -262,7 +230,23 @@ export function isElementShape(item: unknown): item is ElementShape {
262
230
  return item === 'rectangle' || item === 'person' || item === 'browser' || item === 'mobile' || item === 'cylinder' || item === 'storage' || item === 'queue';
263
231
  }
264
232
 
265
- export type FqnReferenceable = DeploymentReferenceable | Element | ExtendElement;
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;
266
250
 
267
251
  export const FqnReferenceable = 'FqnReferenceable';
268
252
 
@@ -276,10 +260,10 @@ export function isIconId(item: unknown): item is IconId {
276
260
  return (typeof item === 'string' && (/(aws|azure|gcp|tech):[-\w]*/.test(item)));
277
261
  }
278
262
 
279
- export type Id = 'deployment' | 'element' | 'group' | 'model' | 'node' | ArrowType | ElementShape | LineOptions | ThemeColor | string;
263
+ export type Id = 'deployment' | 'element' | 'group' | 'instance' | 'model' | 'node' | ArrowType | ElementShape | LineOptions | ThemeColor | string;
280
264
 
281
265
  export function isId(item: unknown): item is Id {
282
- return isElementShape(item) || isThemeColor(item) || isArrowType(item) || isLineOptions(item) || item === 'element' || item === 'model' || item === 'group' || item === 'node' || item === 'deployment' || (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)));
283
267
  }
284
268
 
285
269
  export type LikeC4View = DeploymentView | DynamicView | ElementView;
@@ -312,6 +296,22 @@ export function isPredicate(item: unknown): item is Predicate {
312
296
  return reflection.isInstance(item, Predicate);
313
297
  }
314
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
+
315
315
  export type RelationExpression = DirectedRelationExpression | InOutRelationExpression | IncomingRelationExpression | OutgoingRelationExpression;
316
316
 
317
317
  export const RelationExpression = 'RelationExpression';
@@ -584,19 +584,6 @@ export function isDeployedInstanceBody(item: unknown): item is DeployedInstanceB
584
584
  return reflection.isInstance(item, DeployedInstanceBody);
585
585
  }
586
586
 
587
- export interface DeploymentExpressionIterator extends AstNode {
588
- readonly $container: DeploymentExpressionIterator | DeploymentViewRuleStyle;
589
- readonly $type: 'DeploymentExpressionIterator';
590
- prev?: DeploymentExpressionIterator;
591
- value: DeploymentElementExpression;
592
- }
593
-
594
- export const DeploymentExpressionIterator = 'DeploymentExpressionIterator';
595
-
596
- export function isDeploymentExpressionIterator(item: unknown): item is DeploymentExpressionIterator {
597
- return reflection.isInstance(item, DeploymentExpressionIterator);
598
- }
599
-
600
587
  export interface DeploymentNode extends AstNode {
601
588
  readonly $container: DeploymentNodeBody | ModelDeployments;
602
589
  readonly $type: 'DeploymentNode';
@@ -638,40 +625,14 @@ export function isDeploymentNodeKind(item: unknown): item is DeploymentNodeKind
638
625
  return reflection.isInstance(item, DeploymentNodeKind);
639
626
  }
640
627
 
641
- export interface DeploymentRef extends AstNode {
642
- readonly $container: DeploymentRef | DeploymentRefExpression | DeploymentRelation;
643
- readonly $type: 'DeploymentRef';
644
- parent?: DeploymentRef;
645
- value: Reference<DeploymentReferenceable>;
646
- }
647
-
648
- export const DeploymentRef = 'DeploymentRef';
649
-
650
- export function isDeploymentRef(item: unknown): item is DeploymentRef {
651
- return reflection.isInstance(item, DeploymentRef);
652
- }
653
-
654
- export interface DeploymentRefExpression extends AstNode {
655
- readonly $container: DeploymentExpressionIterator | DeploymentViewRulePredicateExpression | DirectedDeploymentRelationExpression | IncomingDeploymentRelationExpression | OutgoingDeploymentRelationExpression;
656
- readonly $type: 'DeploymentRefExpression';
657
- ref: DeploymentRef;
658
- selector?: string;
659
- }
660
-
661
- export const DeploymentRefExpression = 'DeploymentRefExpression';
662
-
663
- export function isDeploymentRefExpression(item: unknown): item is DeploymentRefExpression {
664
- return reflection.isInstance(item, DeploymentRefExpression);
665
- }
666
-
667
628
  export interface DeploymentRelation extends AstNode {
668
629
  readonly $container: DeploymentNodeBody | ModelDeployments;
669
630
  readonly $type: 'DeploymentRelation';
670
631
  body?: DeploymentRelationBody;
671
632
  kind?: Reference<RelationshipKind>;
672
- source: DeploymentRef;
633
+ source: FqnRef;
673
634
  tags?: Tags;
674
- target: DeploymentRef;
635
+ target: FqnRef;
675
636
  technology?: string;
676
637
  title?: string;
677
638
  }
@@ -739,7 +700,7 @@ export interface DeploymentViewRulePredicateExpression extends AstNode {
739
700
  readonly $container: DeploymentViewRulePredicate | DeploymentViewRulePredicateExpression;
740
701
  readonly $type: 'DeploymentViewRulePredicateExpression';
741
702
  prev?: DeploymentViewRulePredicateExpression;
742
- value: DeploymentExpression;
703
+ value: ExpressionV2;
743
704
  }
744
705
 
745
706
  export const DeploymentViewRulePredicateExpression = 'DeploymentViewRulePredicateExpression';
@@ -752,7 +713,7 @@ export interface DeploymentViewRuleStyle extends AstNode {
752
713
  readonly $container: DeploymentViewBody;
753
714
  readonly $type: 'DeploymentViewRuleStyle';
754
715
  props: Array<NotationProperty | StyleProperty>;
755
- target: DeploymentExpressionIterator;
716
+ targets: FqnExpressions;
756
717
  }
757
718
 
758
719
  export const DeploymentViewRuleStyle = 'DeploymentViewRuleStyle';
@@ -761,17 +722,17 @@ export function isDeploymentViewRuleStyle(item: unknown): item is DeploymentView
761
722
  return reflection.isInstance(item, DeploymentViewRuleStyle);
762
723
  }
763
724
 
764
- export interface DirectedDeploymentRelationExpression extends AstNode {
725
+ export interface DirectedRelationExpr extends AstNode {
765
726
  readonly $container: DeploymentViewRulePredicateExpression;
766
- readonly $type: 'DirectedDeploymentRelationExpression';
767
- source: OutgoingDeploymentRelationExpression;
768
- target: DeploymentElementExpression;
727
+ readonly $type: 'DirectedRelationExpr';
728
+ source: OutgoingRelationExpr;
729
+ target: FqnExpr;
769
730
  }
770
731
 
771
- export const DirectedDeploymentRelationExpression = 'DirectedDeploymentRelationExpression';
732
+ export const DirectedRelationExpr = 'DirectedRelationExpr';
772
733
 
773
- export function isDirectedDeploymentRelationExpression(item: unknown): item is DirectedDeploymentRelationExpression {
774
- return reflection.isInstance(item, DirectedDeploymentRelationExpression);
734
+ export function isDirectedRelationExpr(item: unknown): item is DirectedRelationExpr {
735
+ return reflection.isInstance(item, DirectedRelationExpr);
775
736
  }
776
737
 
777
738
  export interface DirectedRelationExpression extends AstNode {
@@ -1154,6 +1115,45 @@ export function isFqnElementRef(item: unknown): item is FqnElementRef {
1154
1115
  return reflection.isInstance(item, FqnElementRef);
1155
1116
  }
1156
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
+
1157
1157
  export interface GlobalDynamicPredicateGroup extends AstNode {
1158
1158
  readonly $container: Globals;
1159
1159
  readonly $type: 'GlobalDynamicPredicateGroup';
@@ -1259,16 +1259,16 @@ export function isIncludePredicate(item: unknown): item is IncludePredicate {
1259
1259
  return reflection.isInstance(item, IncludePredicate);
1260
1260
  }
1261
1261
 
1262
- export interface IncomingDeploymentRelationExpression extends AstNode {
1263
- readonly $container: DeploymentViewRulePredicateExpression | InOutDeploymentRelationExpression;
1264
- readonly $type: 'IncomingDeploymentRelationExpression';
1265
- to: DeploymentElementExpression;
1262
+ export interface IncomingRelationExpr extends AstNode {
1263
+ readonly $container: DeploymentViewRulePredicateExpression | InOutRelationExpr;
1264
+ readonly $type: 'IncomingRelationExpr';
1265
+ to: FqnExpr;
1266
1266
  }
1267
1267
 
1268
- export const IncomingDeploymentRelationExpression = 'IncomingDeploymentRelationExpression';
1268
+ export const IncomingRelationExpr = 'IncomingRelationExpr';
1269
1269
 
1270
- export function isIncomingDeploymentRelationExpression(item: unknown): item is IncomingDeploymentRelationExpression {
1271
- return reflection.isInstance(item, IncomingDeploymentRelationExpression);
1270
+ export function isIncomingRelationExpr(item: unknown): item is IncomingRelationExpr {
1271
+ return reflection.isInstance(item, IncomingRelationExpr);
1272
1272
  }
1273
1273
 
1274
1274
  export interface IncomingRelationExpression extends AstNode {
@@ -1283,16 +1283,16 @@ export function isIncomingRelationExpression(item: unknown): item is IncomingRel
1283
1283
  return reflection.isInstance(item, IncomingRelationExpression);
1284
1284
  }
1285
1285
 
1286
- export interface InOutDeploymentRelationExpression extends AstNode {
1286
+ export interface InOutRelationExpr extends AstNode {
1287
1287
  readonly $container: DeploymentViewRulePredicateExpression;
1288
- readonly $type: 'InOutDeploymentRelationExpression';
1289
- inout: IncomingDeploymentRelationExpression;
1288
+ readonly $type: 'InOutRelationExpr';
1289
+ inout: IncomingRelationExpr;
1290
1290
  }
1291
1291
 
1292
- export const InOutDeploymentRelationExpression = 'InOutDeploymentRelationExpression';
1292
+ export const InOutRelationExpr = 'InOutRelationExpr';
1293
1293
 
1294
- export function isInOutDeploymentRelationExpression(item: unknown): item is InOutDeploymentRelationExpression {
1295
- return reflection.isInstance(item, InOutDeploymentRelationExpression);
1294
+ export function isInOutRelationExpr(item: unknown): item is InOutRelationExpr {
1295
+ return reflection.isInstance(item, InOutRelationExpr);
1296
1296
  }
1297
1297
 
1298
1298
  export interface InOutRelationExpression extends AstNode {
@@ -1491,18 +1491,18 @@ export function isOpacityProperty(item: unknown): item is OpacityProperty {
1491
1491
  return reflection.isInstance(item, OpacityProperty);
1492
1492
  }
1493
1493
 
1494
- export interface OutgoingDeploymentRelationExpression extends AstNode {
1495
- readonly $container: DeploymentViewRulePredicateExpression | DirectedDeploymentRelationExpression;
1496
- readonly $type: 'OutgoingDeploymentRelationExpression';
1497
- from: DeploymentElementExpression;
1494
+ export interface OutgoingRelationExpr extends AstNode {
1495
+ readonly $container: DeploymentViewRulePredicateExpression | DirectedRelationExpr;
1496
+ readonly $type: 'OutgoingRelationExpr';
1497
+ from: FqnExpr;
1498
1498
  isBidirectional: boolean;
1499
1499
  kind?: Reference<RelationshipKind>;
1500
1500
  }
1501
1501
 
1502
- export const OutgoingDeploymentRelationExpression = 'OutgoingDeploymentRelationExpression';
1502
+ export const OutgoingRelationExpr = 'OutgoingRelationExpr';
1503
1503
 
1504
- export function isOutgoingDeploymentRelationExpression(item: unknown): item is OutgoingDeploymentRelationExpression {
1505
- return reflection.isInstance(item, OutgoingDeploymentRelationExpression);
1504
+ export function isOutgoingRelationExpr(item: unknown): item is OutgoingRelationExpr {
1505
+ return reflection.isInstance(item, OutgoingRelationExpr);
1506
1506
  }
1507
1507
 
1508
1508
  export interface OutgoingRelationExpression extends AstNode {
@@ -1970,7 +1970,7 @@ export function isWhereRelationTag(item: unknown): item is WhereRelationTag {
1970
1970
  }
1971
1971
 
1972
1972
  export interface WildcardExpression extends AstNode {
1973
- readonly $container: DeploymentExpressionIterator | DeploymentViewRulePredicateExpression | DirectedDeploymentRelationExpression | DirectedRelationExpression | DynamicViewPredicateIterator | ElementExpressionsIterator | ElementPredicateWhere | ElementPredicateWith | IncomingDeploymentRelationExpression | IncomingRelationExpression | OutgoingDeploymentRelationExpression | OutgoingRelationExpression | Predicates;
1973
+ readonly $container: DeploymentViewRulePredicateExpression | DirectedRelationExpr | DirectedRelationExpression | DynamicViewPredicateIterator | ElementExpressionsIterator | ElementPredicateWhere | ElementPredicateWith | FqnExpressions | IncomingRelationExpr | IncomingRelationExpression | OutgoingRelationExpr | OutgoingRelationExpression | Predicates;
1974
1974
  readonly $type: 'WildcardExpression';
1975
1975
  isWildcard: boolean;
1976
1976
  }
@@ -1991,25 +1991,18 @@ export type LikeC4AstType = {
1991
1991
  DeployedInstance: DeployedInstance
1992
1992
  DeployedInstanceBody: DeployedInstanceBody
1993
1993
  DeploymentElement: DeploymentElement
1994
- DeploymentElementExpression: DeploymentElementExpression
1995
- DeploymentExpression: DeploymentExpression
1996
- DeploymentExpressionIterator: DeploymentExpressionIterator
1997
1994
  DeploymentNode: DeploymentNode
1998
1995
  DeploymentNodeBody: DeploymentNodeBody
1999
1996
  DeploymentNodeKind: DeploymentNodeKind
2000
- DeploymentRef: DeploymentRef
2001
- DeploymentRefExpression: DeploymentRefExpression
2002
- DeploymentReferenceable: DeploymentReferenceable
2003
1997
  DeploymentRelation: DeploymentRelation
2004
1998
  DeploymentRelationBody: DeploymentRelationBody
2005
- DeploymentRelationExpression: DeploymentRelationExpression
2006
1999
  DeploymentView: DeploymentView
2007
2000
  DeploymentViewBody: DeploymentViewBody
2008
2001
  DeploymentViewRule: DeploymentViewRule
2009
2002
  DeploymentViewRulePredicate: DeploymentViewRulePredicate
2010
2003
  DeploymentViewRulePredicateExpression: DeploymentViewRulePredicateExpression
2011
2004
  DeploymentViewRuleStyle: DeploymentViewRuleStyle
2012
- DirectedDeploymentRelationExpression: DirectedDeploymentRelationExpression
2005
+ DirectedRelationExpr: DirectedRelationExpr
2013
2006
  DirectedRelationExpression: DirectedRelationExpression
2014
2007
  DynamicView: DynamicView
2015
2008
  DynamicViewBody: DynamicViewBody
@@ -2041,9 +2034,14 @@ export type LikeC4AstType = {
2041
2034
  ElementViewRef: ElementViewRef
2042
2035
  ExcludePredicate: ExcludePredicate
2043
2036
  ExpandElementExpression: ExpandElementExpression
2037
+ ExpressionV2: ExpressionV2
2044
2038
  ExtendElement: ExtendElement
2045
2039
  ExtendElementBody: ExtendElementBody
2046
2040
  FqnElementRef: FqnElementRef
2041
+ FqnExpr: FqnExpr
2042
+ FqnExpressions: FqnExpressions
2043
+ FqnRef: FqnRef
2044
+ FqnRefExpr: FqnRefExpr
2047
2045
  FqnReferenceable: FqnReferenceable
2048
2046
  GlobalDynamicPredicateGroup: GlobalDynamicPredicateGroup
2049
2047
  GlobalPredicateGroup: GlobalPredicateGroup
@@ -2052,10 +2050,10 @@ export type LikeC4AstType = {
2052
2050
  GlobalStyleId: GlobalStyleId
2053
2051
  Globals: Globals
2054
2052
  IconProperty: IconProperty
2055
- InOutDeploymentRelationExpression: InOutDeploymentRelationExpression
2053
+ InOutRelationExpr: InOutRelationExpr
2056
2054
  InOutRelationExpression: InOutRelationExpression
2057
2055
  IncludePredicate: IncludePredicate
2058
- IncomingDeploymentRelationExpression: IncomingDeploymentRelationExpression
2056
+ IncomingRelationExpr: IncomingRelationExpr
2059
2057
  IncomingRelationExpression: IncomingRelationExpression
2060
2058
  LibIcon: LibIcon
2061
2059
  LikeC4Grammar: LikeC4Grammar
@@ -2073,12 +2071,14 @@ export type LikeC4AstType = {
2073
2071
  NotationProperty: NotationProperty
2074
2072
  NotesProperty: NotesProperty
2075
2073
  OpacityProperty: OpacityProperty
2076
- OutgoingDeploymentRelationExpression: OutgoingDeploymentRelationExpression
2074
+ OutgoingRelationExpr: OutgoingRelationExpr
2077
2075
  OutgoingRelationExpression: OutgoingRelationExpression
2078
2076
  Predicate: Predicate
2079
2077
  Predicates: Predicates
2078
+ Referenceable: Referenceable
2080
2079
  Relation: Relation
2081
2080
  RelationBody: RelationBody
2081
+ RelationExpr: RelationExpr
2082
2082
  RelationExpression: RelationExpression
2083
2083
  RelationNavigateToProperty: RelationNavigateToProperty
2084
2084
  RelationPredicate: RelationPredicate
@@ -2134,7 +2134,7 @@ export type LikeC4AstType = {
2134
2134
  export class LikeC4AstReflection extends AbstractAstReflection {
2135
2135
 
2136
2136
  getAllTypes(): string[] {
2137
- return [ArrowProperty, BorderProperty, ColorProperty, CustomColor, CustomElementProperties, CustomRelationProperties, DeployedInstance, DeployedInstanceBody, DeploymentElement, DeploymentElementExpression, DeploymentExpression, DeploymentExpressionIterator, DeploymentNode, DeploymentNodeBody, DeploymentNodeKind, DeploymentRef, DeploymentRefExpression, DeploymentReferenceable, DeploymentRelation, DeploymentRelationBody, DeploymentRelationExpression, DeploymentView, DeploymentViewBody, DeploymentViewRule, DeploymentViewRulePredicate, DeploymentViewRulePredicateExpression, DeploymentViewRuleStyle, DirectedDeploymentRelationExpression, 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, FqnReferenceable, GlobalDynamicPredicateGroup, GlobalPredicateGroup, GlobalStyle, GlobalStyleGroup, GlobalStyleId, Globals, IconProperty, InOutDeploymentRelationExpression, InOutRelationExpression, IncludePredicate, IncomingDeploymentRelationExpression, IncomingRelationExpression, LibIcon, LikeC4Grammar, LikeC4Lib, LikeC4View, LineProperty, LinkProperty, MetadataAttribute, MetadataBody, MetadataProperty, Model, ModelDeployments, ModelViews, NavigateToProperty, NotationProperty, NotesProperty, OpacityProperty, OutgoingDeploymentRelationExpression, OutgoingRelationExpression, Predicate, Predicates, Relation, RelationBody, 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];
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];
2138
2138
  }
2139
2139
 
2140
2140
  protected override computeIsSubtype(subtype: string, supertype: string): boolean {
@@ -2153,18 +2153,7 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2153
2153
  }
2154
2154
  case DeployedInstance:
2155
2155
  case DeploymentNode: {
2156
- return this.isSubtype(DeploymentElement, supertype) || this.isSubtype(DeploymentReferenceable, supertype);
2157
- }
2158
- case DeploymentElementExpression:
2159
- case DeploymentRelationExpression: {
2160
- return this.isSubtype(DeploymentExpression, supertype);
2161
- }
2162
- case DeploymentReferenceable:
2163
- case ExtendElement: {
2164
- return this.isSubtype(FqnReferenceable, supertype);
2165
- }
2166
- case DeploymentRefExpression: {
2167
- return this.isSubtype(DeploymentElementExpression, supertype);
2156
+ return this.isSubtype(DeploymentElement, supertype) || this.isSubtype(Referenceable, supertype);
2168
2157
  }
2169
2158
  case DeploymentView:
2170
2159
  case DynamicView:
@@ -2175,11 +2164,11 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2175
2164
  case DeploymentViewRuleStyle: {
2176
2165
  return this.isSubtype(DeploymentViewRule, supertype);
2177
2166
  }
2178
- case DirectedDeploymentRelationExpression:
2179
- case IncomingDeploymentRelationExpression:
2180
- case InOutDeploymentRelationExpression:
2181
- case OutgoingDeploymentRelationExpression: {
2182
- return this.isSubtype(DeploymentRelationExpression, supertype);
2167
+ case DirectedRelationExpr:
2168
+ case IncomingRelationExpr:
2169
+ case InOutRelationExpr:
2170
+ case OutgoingRelationExpr: {
2171
+ return this.isSubtype(RelationExpr, supertype);
2183
2172
  }
2184
2173
  case DirectedRelationExpression:
2185
2174
  case IncomingRelationExpression:
@@ -2192,7 +2181,7 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2192
2181
  return this.isSubtype(DynamicViewRule, supertype);
2193
2182
  }
2194
2183
  case Element: {
2195
- return this.isSubtype(DeploymentReferenceable, supertype) || this.isSubtype(FqnReferenceable, supertype);
2184
+ return this.isSubtype(FqnReferenceable, supertype) || this.isSubtype(Referenceable, supertype);
2196
2185
  }
2197
2186
  case ElementDescedantsExpression:
2198
2187
  case ElementKindExpression:
@@ -2223,6 +2212,17 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2223
2212
  case IncludePredicate: {
2224
2213
  return this.isSubtype(ViewRulePredicate, supertype);
2225
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
+ }
2226
2226
  case IconProperty: {
2227
2227
  return this.isSubtype(ElementProperty, supertype) || this.isSubtype(StyleProperty, supertype);
2228
2228
  }
@@ -2303,7 +2303,7 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2303
2303
  return this.isSubtype(WhereRelation, supertype) || this.isSubtype(WhereTagEqual, supertype);
2304
2304
  }
2305
2305
  case WildcardExpression: {
2306
- return this.isSubtype(DeploymentElementExpression, supertype) || this.isSubtype(ElementExpression, supertype);
2306
+ return this.isSubtype(ElementExpression, supertype) || this.isSubtype(FqnExpr, supertype);
2307
2307
  }
2308
2308
  default: {
2309
2309
  return false;
@@ -2320,12 +2320,9 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2320
2320
  case 'DeploymentNode:kind': {
2321
2321
  return DeploymentNodeKind;
2322
2322
  }
2323
- case 'DeploymentRef:value': {
2324
- return DeploymentReferenceable;
2325
- }
2326
2323
  case 'DeploymentRelation:kind':
2327
2324
  case 'DynamicViewStep:kind':
2328
- case 'OutgoingDeploymentRelationExpression:kind':
2325
+ case 'OutgoingRelationExpr:kind':
2329
2326
  case 'OutgoingRelationExpression:kind':
2330
2327
  case 'Relation:kind':
2331
2328
  case 'WhereRelationKind:value': {
@@ -2355,6 +2352,9 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2355
2352
  case 'ElementViewRef:view': {
2356
2353
  return ElementView;
2357
2354
  }
2355
+ case 'FqnRef:value': {
2356
+ return Referenceable;
2357
+ }
2358
2358
  case 'IconProperty:libicon': {
2359
2359
  return LibIcon;
2360
2360
  }
@@ -2447,15 +2447,6 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2447
2447
  ]
2448
2448
  };
2449
2449
  }
2450
- case DeploymentExpressionIterator: {
2451
- return {
2452
- name: DeploymentExpressionIterator,
2453
- properties: [
2454
- { name: 'prev' },
2455
- { name: 'value' }
2456
- ]
2457
- };
2458
- }
2459
2450
  case DeploymentNode: {
2460
2451
  return {
2461
2452
  name: DeploymentNode,
@@ -2485,24 +2476,6 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2485
2476
  ]
2486
2477
  };
2487
2478
  }
2488
- case DeploymentRef: {
2489
- return {
2490
- name: DeploymentRef,
2491
- properties: [
2492
- { name: 'parent' },
2493
- { name: 'value' }
2494
- ]
2495
- };
2496
- }
2497
- case DeploymentRefExpression: {
2498
- return {
2499
- name: DeploymentRefExpression,
2500
- properties: [
2501
- { name: 'ref' },
2502
- { name: 'selector' }
2503
- ]
2504
- };
2505
- }
2506
2479
  case DeploymentRelation: {
2507
2480
  return {
2508
2481
  name: DeploymentRelation,
@@ -2568,13 +2541,13 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2568
2541
  name: DeploymentViewRuleStyle,
2569
2542
  properties: [
2570
2543
  { name: 'props', defaultValue: [] },
2571
- { name: 'target' }
2544
+ { name: 'targets' }
2572
2545
  ]
2573
2546
  };
2574
2547
  }
2575
- case DirectedDeploymentRelationExpression: {
2548
+ case DirectedRelationExpr: {
2576
2549
  return {
2577
- name: DirectedDeploymentRelationExpression,
2550
+ name: DirectedRelationExpr,
2578
2551
  properties: [
2579
2552
  { name: 'source' },
2580
2553
  { name: 'target' }
@@ -2845,6 +2818,33 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2845
2818
  ]
2846
2819
  };
2847
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
+ }
2848
2848
  case GlobalDynamicPredicateGroup: {
2849
2849
  return {
2850
2850
  name: GlobalDynamicPredicateGroup,
@@ -2918,9 +2918,9 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2918
2918
  ]
2919
2919
  };
2920
2920
  }
2921
- case IncomingDeploymentRelationExpression: {
2921
+ case IncomingRelationExpr: {
2922
2922
  return {
2923
- name: IncomingDeploymentRelationExpression,
2923
+ name: IncomingRelationExpr,
2924
2924
  properties: [
2925
2925
  { name: 'to' }
2926
2926
  ]
@@ -2934,9 +2934,9 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2934
2934
  ]
2935
2935
  };
2936
2936
  }
2937
- case InOutDeploymentRelationExpression: {
2937
+ case InOutRelationExpr: {
2938
2938
  return {
2939
- name: InOutDeploymentRelationExpression,
2939
+ name: InOutRelationExpr,
2940
2940
  properties: [
2941
2941
  { name: 'inout' }
2942
2942
  ]
@@ -3079,9 +3079,9 @@ export class LikeC4AstReflection extends AbstractAstReflection {
3079
3079
  ]
3080
3080
  };
3081
3081
  }
3082
- case OutgoingDeploymentRelationExpression: {
3082
+ case OutgoingRelationExpr: {
3083
3083
  return {
3084
- name: OutgoingDeploymentRelationExpression,
3084
+ name: OutgoingRelationExpr,
3085
3085
  properties: [
3086
3086
  { name: 'from' },
3087
3087
  { name: 'isBidirectional', defaultValue: false },