@likec4/language-server 1.19.1 → 1.20.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.
- package/contrib/likec4.tmLanguage.json +1 -1
- package/dist/generated/ast.d.ts +55 -14
- package/dist/generated/ast.js +72 -4
- package/dist/generated/grammar.js +1 -1
- package/dist/like-c4.langium +13 -6
- package/dist/lsp/SemanticTokenProvider.d.ts +1 -1
- package/dist/lsp/SemanticTokenProvider.js +7 -0
- package/dist/model/model-parser-where.js +12 -6
- package/dist/model/model-parser.d.ts +5 -0
- package/dist/model/parser/DeploymentModelParser.d.ts +1 -0
- package/dist/model/parser/DeploymentViewParser.d.ts +2 -1
- package/dist/model/parser/DeploymentViewParser.js +3 -0
- package/dist/model/parser/FqnRefParser.d.ts +1 -0
- package/dist/model/parser/FqnRefParser.js +13 -0
- package/dist/model/parser/GlobalsParser.d.ts +1 -0
- package/dist/model/parser/ViewsParser.d.ts +1 -0
- package/dist/validation/index.d.ts +1 -1
- package/package.json +11 -11
- package/src/generated/ast.ts +134 -17
- package/src/generated/grammar.ts +1 -1
- package/src/like-c4.langium +13 -6
- package/src/lsp/SemanticTokenProvider.ts +51 -44
- package/src/model/model-parser-where.ts +22 -14
- package/src/model/parser/DeploymentViewParser.ts +10 -7
- package/src/model/parser/FqnRefParser.ts +14 -0
package/src/generated/ast.ts
CHANGED
|
@@ -120,12 +120,14 @@ export type LikeC4KeywordNames =
|
|
|
120
120
|
| "sky"
|
|
121
121
|
| "slate"
|
|
122
122
|
| "solid"
|
|
123
|
+
| "source"
|
|
123
124
|
| "specification"
|
|
124
125
|
| "storage"
|
|
125
126
|
| "style"
|
|
126
127
|
| "styleGroup"
|
|
127
128
|
| "tag"
|
|
128
129
|
| "tail"
|
|
130
|
+
| "target"
|
|
129
131
|
| "technology"
|
|
130
132
|
| "title"
|
|
131
133
|
| "vee"
|
|
@@ -170,6 +172,14 @@ export function isDeploymentElement(item: unknown): item is DeploymentElement {
|
|
|
170
172
|
return reflection.isInstance(item, DeploymentElement);
|
|
171
173
|
}
|
|
172
174
|
|
|
175
|
+
export type DeploymentNodeOrElementKind = DeploymentNodeKind | ElementKind;
|
|
176
|
+
|
|
177
|
+
export const DeploymentNodeOrElementKind = 'DeploymentNodeOrElementKind';
|
|
178
|
+
|
|
179
|
+
export function isDeploymentNodeOrElementKind(item: unknown): item is DeploymentNodeOrElementKind {
|
|
180
|
+
return reflection.isInstance(item, DeploymentNodeOrElementKind);
|
|
181
|
+
}
|
|
182
|
+
|
|
173
183
|
export type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout;
|
|
174
184
|
|
|
175
185
|
export const DeploymentViewRule = 'DeploymentViewRule';
|
|
@@ -230,7 +240,7 @@ export function isElementShape(item: unknown): item is ElementShape {
|
|
|
230
240
|
return item === 'rectangle' || item === 'person' || item === 'browser' || item === 'mobile' || item === 'cylinder' || item === 'storage' || item === 'queue';
|
|
231
241
|
}
|
|
232
242
|
|
|
233
|
-
export type ExpressionV2 = FqnExpr |
|
|
243
|
+
export type ExpressionV2 = FqnExpr | RelationPredicateOrWhereV2;
|
|
234
244
|
|
|
235
245
|
export const ExpressionV2 = 'ExpressionV2';
|
|
236
246
|
|
|
@@ -260,10 +270,10 @@ export function isIconId(item: unknown): item is IconId {
|
|
|
260
270
|
return (typeof item === 'string' && (/(aws|azure|gcp|tech):[-\w]*/.test(item)));
|
|
261
271
|
}
|
|
262
272
|
|
|
263
|
-
export type Id = 'deployment' | 'element' | 'group' | 'instance' | 'model' | 'node' | ArrowType | ElementShape | LineOptions | ThemeColor | string;
|
|
273
|
+
export type Id = 'deployment' | 'element' | 'group' | 'instance' | 'model' | 'node' | ArrowType | ElementShape | LineOptions | Participant | ThemeColor | string;
|
|
264
274
|
|
|
265
275
|
export function isId(item: unknown): item is Id {
|
|
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)));
|
|
276
|
+
return isElementShape(item) || isThemeColor(item) || isArrowType(item) || isLineOptions(item) || isParticipant(item) || item === 'element' || item === 'model' || item === 'group' || item === 'node' || item === 'deployment' || item === 'instance' || (typeof item === 'string' && (/[_]*[a-zA-Z][-\w]*/.test(item)));
|
|
267
277
|
}
|
|
268
278
|
|
|
269
279
|
export type LikeC4View = DeploymentView | DynamicView | ElementView;
|
|
@@ -288,6 +298,12 @@ export function isMetadataProperty(item: unknown): item is MetadataProperty {
|
|
|
288
298
|
return reflection.isInstance(item, MetadataProperty);
|
|
289
299
|
}
|
|
290
300
|
|
|
301
|
+
export type Participant = 'source' | 'target';
|
|
302
|
+
|
|
303
|
+
export function isParticipant(item: unknown): item is Participant {
|
|
304
|
+
return item === 'source' || item === 'target';
|
|
305
|
+
}
|
|
306
|
+
|
|
291
307
|
export type Predicate = ElementPredicate | RelationPredicate;
|
|
292
308
|
|
|
293
309
|
export const Predicate = 'Predicate';
|
|
@@ -336,6 +352,14 @@ export function isRelationPredicateOrWhere(item: unknown): item is RelationPredi
|
|
|
336
352
|
return reflection.isInstance(item, RelationPredicateOrWhere);
|
|
337
353
|
}
|
|
338
354
|
|
|
355
|
+
export type RelationPredicateOrWhereV2 = RelationExpr | RelationPredicateWhereV2;
|
|
356
|
+
|
|
357
|
+
export const RelationPredicateOrWhereV2 = 'RelationPredicateOrWhereV2';
|
|
358
|
+
|
|
359
|
+
export function isRelationPredicateOrWhereV2(item: unknown): item is RelationPredicateOrWhereV2 {
|
|
360
|
+
return reflection.isInstance(item, RelationPredicateOrWhereV2);
|
|
361
|
+
}
|
|
362
|
+
|
|
339
363
|
export type RelationProperty = LinkProperty | MetadataProperty | RelationNavigateToProperty | RelationStringProperty | RelationStyleProperty;
|
|
340
364
|
|
|
341
365
|
export const RelationProperty = 'RelationProperty';
|
|
@@ -448,7 +472,7 @@ export function isWhereExpression(item: unknown): item is WhereExpression {
|
|
|
448
472
|
return reflection.isInstance(item, WhereExpression);
|
|
449
473
|
}
|
|
450
474
|
|
|
451
|
-
export type WhereKindEqual = WhereElementKind | WhereRelationKind;
|
|
475
|
+
export type WhereKindEqual = WhereElementKind | WhereRelationKind | WhereRelationParticipantKind;
|
|
452
476
|
|
|
453
477
|
export const WhereKindEqual = 'WhereKindEqual';
|
|
454
478
|
|
|
@@ -456,7 +480,7 @@ export function isWhereKindEqual(item: unknown): item is WhereKindEqual {
|
|
|
456
480
|
return reflection.isInstance(item, WhereKindEqual);
|
|
457
481
|
}
|
|
458
482
|
|
|
459
|
-
export type WhereRelation = WhereRelationKind | WhereRelationTag;
|
|
483
|
+
export type WhereRelation = WhereRelationKind | WhereRelationParticipantKind | WhereRelationParticipantTag | WhereRelationTag;
|
|
460
484
|
|
|
461
485
|
export const WhereRelation = 'WhereRelation';
|
|
462
486
|
|
|
@@ -472,7 +496,7 @@ export function isWhereRelationExpression(item: unknown): item is WhereRelationE
|
|
|
472
496
|
return reflection.isInstance(item, WhereRelationExpression);
|
|
473
497
|
}
|
|
474
498
|
|
|
475
|
-
export type WhereTagEqual = WhereElementTag | WhereRelationTag;
|
|
499
|
+
export type WhereTagEqual = WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
|
|
476
500
|
|
|
477
501
|
export const WhereTagEqual = 'WhereTagEqual';
|
|
478
502
|
|
|
@@ -723,7 +747,7 @@ export function isDeploymentViewRuleStyle(item: unknown): item is DeploymentView
|
|
|
723
747
|
}
|
|
724
748
|
|
|
725
749
|
export interface DirectedRelationExpr extends AstNode {
|
|
726
|
-
readonly $container: DeploymentViewRulePredicateExpression;
|
|
750
|
+
readonly $container: DeploymentViewRulePredicateExpression | RelationPredicateWhereV2;
|
|
727
751
|
readonly $type: 'DirectedRelationExpr';
|
|
728
752
|
source: OutgoingRelationExpr;
|
|
729
753
|
target: FqnExpr;
|
|
@@ -1260,7 +1284,7 @@ export function isIncludePredicate(item: unknown): item is IncludePredicate {
|
|
|
1260
1284
|
}
|
|
1261
1285
|
|
|
1262
1286
|
export interface IncomingRelationExpr extends AstNode {
|
|
1263
|
-
readonly $container: DeploymentViewRulePredicateExpression | InOutRelationExpr;
|
|
1287
|
+
readonly $container: DeploymentViewRulePredicateExpression | InOutRelationExpr | RelationPredicateWhereV2;
|
|
1264
1288
|
readonly $type: 'IncomingRelationExpr';
|
|
1265
1289
|
to: FqnExpr;
|
|
1266
1290
|
}
|
|
@@ -1284,7 +1308,7 @@ export function isIncomingRelationExpression(item: unknown): item is IncomingRel
|
|
|
1284
1308
|
}
|
|
1285
1309
|
|
|
1286
1310
|
export interface InOutRelationExpr extends AstNode {
|
|
1287
|
-
readonly $container: DeploymentViewRulePredicateExpression;
|
|
1311
|
+
readonly $container: DeploymentViewRulePredicateExpression | RelationPredicateWhereV2;
|
|
1288
1312
|
readonly $type: 'InOutRelationExpr';
|
|
1289
1313
|
inout: IncomingRelationExpr;
|
|
1290
1314
|
}
|
|
@@ -1492,7 +1516,7 @@ export function isOpacityProperty(item: unknown): item is OpacityProperty {
|
|
|
1492
1516
|
}
|
|
1493
1517
|
|
|
1494
1518
|
export interface OutgoingRelationExpr extends AstNode {
|
|
1495
|
-
readonly $container: DeploymentViewRulePredicateExpression | DirectedRelationExpr;
|
|
1519
|
+
readonly $container: DeploymentViewRulePredicateExpression | DirectedRelationExpr | RelationPredicateWhereV2;
|
|
1496
1520
|
readonly $type: 'OutgoingRelationExpr';
|
|
1497
1521
|
from: FqnExpr;
|
|
1498
1522
|
isBidirectional: boolean;
|
|
@@ -1589,6 +1613,19 @@ export function isRelationPredicateWhere(item: unknown): item is RelationPredica
|
|
|
1589
1613
|
return reflection.isInstance(item, RelationPredicateWhere);
|
|
1590
1614
|
}
|
|
1591
1615
|
|
|
1616
|
+
export interface RelationPredicateWhereV2 extends AstNode {
|
|
1617
|
+
readonly $container: DeploymentViewRulePredicateExpression;
|
|
1618
|
+
readonly $type: 'RelationPredicateWhereV2';
|
|
1619
|
+
subject: RelationExpr;
|
|
1620
|
+
where?: WhereRelationExpression;
|
|
1621
|
+
}
|
|
1622
|
+
|
|
1623
|
+
export const RelationPredicateWhereV2 = 'RelationPredicateWhereV2';
|
|
1624
|
+
|
|
1625
|
+
export function isRelationPredicateWhereV2(item: unknown): item is RelationPredicateWhereV2 {
|
|
1626
|
+
return reflection.isInstance(item, RelationPredicateWhereV2);
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1592
1629
|
export interface RelationPredicateWith extends AstNode {
|
|
1593
1630
|
readonly $container: Predicates;
|
|
1594
1631
|
readonly $type: 'RelationPredicateWith';
|
|
@@ -1876,7 +1913,7 @@ export function isViewStringProperty(item: unknown): item is ViewStringProperty
|
|
|
1876
1913
|
}
|
|
1877
1914
|
|
|
1878
1915
|
export interface WhereBinaryExpression extends AstNode {
|
|
1879
|
-
readonly $container: ElementPredicateWhere | RelationPredicateWhere | WhereBinaryExpression | WhereElementNegation | WhereRelationNegation;
|
|
1916
|
+
readonly $container: ElementPredicateWhere | RelationPredicateWhere | RelationPredicateWhereV2 | WhereBinaryExpression | WhereElementNegation | WhereRelationNegation;
|
|
1880
1917
|
readonly $type: 'WhereBinaryExpression';
|
|
1881
1918
|
left: WhereElementExpression | WhereRelationExpression;
|
|
1882
1919
|
operator: 'and' | 'or';
|
|
@@ -1930,7 +1967,7 @@ export function isWhereElementTag(item: unknown): item is WhereElementTag {
|
|
|
1930
1967
|
}
|
|
1931
1968
|
|
|
1932
1969
|
export interface WhereRelationKind extends AstNode {
|
|
1933
|
-
readonly $container: RelationPredicateWhere | WhereBinaryExpression | WhereRelationNegation;
|
|
1970
|
+
readonly $container: RelationPredicateWhere | RelationPredicateWhereV2 | WhereBinaryExpression | WhereRelationNegation;
|
|
1934
1971
|
readonly $type: 'WhereRelationKind';
|
|
1935
1972
|
not: boolean;
|
|
1936
1973
|
operator: 'is' | string;
|
|
@@ -1944,7 +1981,7 @@ export function isWhereRelationKind(item: unknown): item is WhereRelationKind {
|
|
|
1944
1981
|
}
|
|
1945
1982
|
|
|
1946
1983
|
export interface WhereRelationNegation extends AstNode {
|
|
1947
|
-
readonly $container: RelationPredicateWhere | WhereBinaryExpression | WhereRelationNegation;
|
|
1984
|
+
readonly $container: RelationPredicateWhere | RelationPredicateWhereV2 | WhereBinaryExpression | WhereRelationNegation;
|
|
1948
1985
|
readonly $type: 'WhereRelationNegation';
|
|
1949
1986
|
value: WhereRelationExpression;
|
|
1950
1987
|
}
|
|
@@ -1955,8 +1992,38 @@ export function isWhereRelationNegation(item: unknown): item is WhereRelationNeg
|
|
|
1955
1992
|
return reflection.isInstance(item, WhereRelationNegation);
|
|
1956
1993
|
}
|
|
1957
1994
|
|
|
1995
|
+
export interface WhereRelationParticipantKind extends AstNode {
|
|
1996
|
+
readonly $container: RelationPredicateWhere | RelationPredicateWhereV2 | WhereBinaryExpression | WhereRelationNegation;
|
|
1997
|
+
readonly $type: 'WhereRelationParticipantKind';
|
|
1998
|
+
not: boolean;
|
|
1999
|
+
operator: 'is' | string;
|
|
2000
|
+
participant: Participant;
|
|
2001
|
+
value?: Reference<DeploymentNodeOrElementKind>;
|
|
2002
|
+
}
|
|
2003
|
+
|
|
2004
|
+
export const WhereRelationParticipantKind = 'WhereRelationParticipantKind';
|
|
2005
|
+
|
|
2006
|
+
export function isWhereRelationParticipantKind(item: unknown): item is WhereRelationParticipantKind {
|
|
2007
|
+
return reflection.isInstance(item, WhereRelationParticipantKind);
|
|
2008
|
+
}
|
|
2009
|
+
|
|
2010
|
+
export interface WhereRelationParticipantTag extends AstNode {
|
|
2011
|
+
readonly $container: RelationPredicateWhere | RelationPredicateWhereV2 | WhereBinaryExpression | WhereRelationNegation;
|
|
2012
|
+
readonly $type: 'WhereRelationParticipantTag';
|
|
2013
|
+
not: boolean;
|
|
2014
|
+
operator: 'is' | string;
|
|
2015
|
+
participant: Participant;
|
|
2016
|
+
value?: Reference<Tag>;
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
export const WhereRelationParticipantTag = 'WhereRelationParticipantTag';
|
|
2020
|
+
|
|
2021
|
+
export function isWhereRelationParticipantTag(item: unknown): item is WhereRelationParticipantTag {
|
|
2022
|
+
return reflection.isInstance(item, WhereRelationParticipantTag);
|
|
2023
|
+
}
|
|
2024
|
+
|
|
1958
2025
|
export interface WhereRelationTag extends AstNode {
|
|
1959
|
-
readonly $container: RelationPredicateWhere | WhereBinaryExpression | WhereRelationNegation;
|
|
2026
|
+
readonly $container: RelationPredicateWhere | RelationPredicateWhereV2 | WhereBinaryExpression | WhereRelationNegation;
|
|
1960
2027
|
readonly $type: 'WhereRelationTag';
|
|
1961
2028
|
not: boolean;
|
|
1962
2029
|
operator: 'is' | string;
|
|
@@ -1994,6 +2061,7 @@ export type LikeC4AstType = {
|
|
|
1994
2061
|
DeploymentNode: DeploymentNode
|
|
1995
2062
|
DeploymentNodeBody: DeploymentNodeBody
|
|
1996
2063
|
DeploymentNodeKind: DeploymentNodeKind
|
|
2064
|
+
DeploymentNodeOrElementKind: DeploymentNodeOrElementKind
|
|
1997
2065
|
DeploymentRelation: DeploymentRelation
|
|
1998
2066
|
DeploymentRelationBody: DeploymentRelationBody
|
|
1999
2067
|
DeploymentView: DeploymentView
|
|
@@ -2083,7 +2151,9 @@ export type LikeC4AstType = {
|
|
|
2083
2151
|
RelationNavigateToProperty: RelationNavigateToProperty
|
|
2084
2152
|
RelationPredicate: RelationPredicate
|
|
2085
2153
|
RelationPredicateOrWhere: RelationPredicateOrWhere
|
|
2154
|
+
RelationPredicateOrWhereV2: RelationPredicateOrWhereV2
|
|
2086
2155
|
RelationPredicateWhere: RelationPredicateWhere
|
|
2156
|
+
RelationPredicateWhereV2: RelationPredicateWhereV2
|
|
2087
2157
|
RelationPredicateWith: RelationPredicateWith
|
|
2088
2158
|
RelationProperty: RelationProperty
|
|
2089
2159
|
RelationStringProperty: RelationStringProperty
|
|
@@ -2126,6 +2196,8 @@ export type LikeC4AstType = {
|
|
|
2126
2196
|
WhereRelationExpression: WhereRelationExpression
|
|
2127
2197
|
WhereRelationKind: WhereRelationKind
|
|
2128
2198
|
WhereRelationNegation: WhereRelationNegation
|
|
2199
|
+
WhereRelationParticipantKind: WhereRelationParticipantKind
|
|
2200
|
+
WhereRelationParticipantTag: WhereRelationParticipantTag
|
|
2129
2201
|
WhereRelationTag: WhereRelationTag
|
|
2130
2202
|
WhereTagEqual: WhereTagEqual
|
|
2131
2203
|
WildcardExpression: WildcardExpression
|
|
@@ -2134,7 +2206,7 @@ export type LikeC4AstType = {
|
|
|
2134
2206
|
export class LikeC4AstReflection extends AbstractAstReflection {
|
|
2135
2207
|
|
|
2136
2208
|
getAllTypes(): string[] {
|
|
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];
|
|
2209
|
+
return [ArrowProperty, BorderProperty, ColorProperty, CustomColor, CustomElementProperties, CustomRelationProperties, DeployedInstance, DeployedInstanceBody, DeploymentElement, DeploymentNode, DeploymentNodeBody, DeploymentNodeKind, DeploymentNodeOrElementKind, 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, RelationPredicateOrWhereV2, RelationPredicateWhere, RelationPredicateWhereV2, 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, WhereRelationParticipantKind, WhereRelationParticipantTag, WhereRelationTag, WhereTagEqual, WildcardExpression];
|
|
2138
2210
|
}
|
|
2139
2211
|
|
|
2140
2212
|
protected override computeIsSubtype(subtype: string, supertype: string): boolean {
|
|
@@ -2155,6 +2227,10 @@ export class LikeC4AstReflection extends AbstractAstReflection {
|
|
|
2155
2227
|
case DeploymentNode: {
|
|
2156
2228
|
return this.isSubtype(DeploymentElement, supertype) || this.isSubtype(Referenceable, supertype);
|
|
2157
2229
|
}
|
|
2230
|
+
case DeploymentNodeKind:
|
|
2231
|
+
case ElementKind: {
|
|
2232
|
+
return this.isSubtype(DeploymentNodeOrElementKind, supertype);
|
|
2233
|
+
}
|
|
2158
2234
|
case DeploymentView:
|
|
2159
2235
|
case DynamicView:
|
|
2160
2236
|
case ElementView: {
|
|
@@ -2217,7 +2293,7 @@ export class LikeC4AstReflection extends AbstractAstReflection {
|
|
|
2217
2293
|
return this.isSubtype(FqnReferenceable, supertype);
|
|
2218
2294
|
}
|
|
2219
2295
|
case FqnExpr:
|
|
2220
|
-
case
|
|
2296
|
+
case RelationPredicateOrWhereV2: {
|
|
2221
2297
|
return this.isSubtype(ExpressionV2, supertype);
|
|
2222
2298
|
}
|
|
2223
2299
|
case FqnRefExpr: {
|
|
@@ -2242,6 +2318,10 @@ export class LikeC4AstReflection extends AbstractAstReflection {
|
|
|
2242
2318
|
case MetadataProperty: {
|
|
2243
2319
|
return this.isSubtype(ElementProperty, supertype) || this.isSubtype(RelationProperty, supertype);
|
|
2244
2320
|
}
|
|
2321
|
+
case RelationExpr:
|
|
2322
|
+
case RelationPredicateWhereV2: {
|
|
2323
|
+
return this.isSubtype(RelationPredicateOrWhereV2, supertype);
|
|
2324
|
+
}
|
|
2245
2325
|
case RelationExpression:
|
|
2246
2326
|
case RelationPredicateWhere: {
|
|
2247
2327
|
return this.isSubtype(RelationPredicateOrWhere, supertype);
|
|
@@ -2296,9 +2376,11 @@ export class LikeC4AstReflection extends AbstractAstReflection {
|
|
|
2296
2376
|
case WhereRelationNegation: {
|
|
2297
2377
|
return this.isSubtype(WhereRelationExpression, supertype);
|
|
2298
2378
|
}
|
|
2299
|
-
case WhereRelationKind:
|
|
2379
|
+
case WhereRelationKind:
|
|
2380
|
+
case WhereRelationParticipantKind: {
|
|
2300
2381
|
return this.isSubtype(WhereKindEqual, supertype) || this.isSubtype(WhereRelation, supertype);
|
|
2301
2382
|
}
|
|
2383
|
+
case WhereRelationParticipantTag:
|
|
2302
2384
|
case WhereRelationTag: {
|
|
2303
2385
|
return this.isSubtype(WhereRelation, supertype) || this.isSubtype(WhereTagEqual, supertype);
|
|
2304
2386
|
}
|
|
@@ -2346,6 +2428,7 @@ export class LikeC4AstReflection extends AbstractAstReflection {
|
|
|
2346
2428
|
case 'ElementTagExpression:tag':
|
|
2347
2429
|
case 'Tags:values':
|
|
2348
2430
|
case 'WhereElementTag:value':
|
|
2431
|
+
case 'WhereRelationParticipantTag:value':
|
|
2349
2432
|
case 'WhereRelationTag:value': {
|
|
2350
2433
|
return Tag;
|
|
2351
2434
|
}
|
|
@@ -2367,6 +2450,9 @@ export class LikeC4AstReflection extends AbstractAstReflection {
|
|
|
2367
2450
|
case 'ViewRuleGlobalStyle:style': {
|
|
2368
2451
|
return GlobalStyleId;
|
|
2369
2452
|
}
|
|
2453
|
+
case 'WhereRelationParticipantKind:value': {
|
|
2454
|
+
return DeploymentNodeOrElementKind;
|
|
2455
|
+
}
|
|
2370
2456
|
default: {
|
|
2371
2457
|
throw new Error(`${referenceId} is not a valid reference id.`);
|
|
2372
2458
|
}
|
|
@@ -3149,6 +3235,15 @@ export class LikeC4AstReflection extends AbstractAstReflection {
|
|
|
3149
3235
|
]
|
|
3150
3236
|
};
|
|
3151
3237
|
}
|
|
3238
|
+
case RelationPredicateWhereV2: {
|
|
3239
|
+
return {
|
|
3240
|
+
name: RelationPredicateWhereV2,
|
|
3241
|
+
properties: [
|
|
3242
|
+
{ name: 'subject' },
|
|
3243
|
+
{ name: 'where' }
|
|
3244
|
+
]
|
|
3245
|
+
};
|
|
3246
|
+
}
|
|
3152
3247
|
case RelationPredicateWith: {
|
|
3153
3248
|
return {
|
|
3154
3249
|
name: RelationPredicateWith,
|
|
@@ -3403,6 +3498,28 @@ export class LikeC4AstReflection extends AbstractAstReflection {
|
|
|
3403
3498
|
]
|
|
3404
3499
|
};
|
|
3405
3500
|
}
|
|
3501
|
+
case WhereRelationParticipantKind: {
|
|
3502
|
+
return {
|
|
3503
|
+
name: WhereRelationParticipantKind,
|
|
3504
|
+
properties: [
|
|
3505
|
+
{ name: 'not', defaultValue: false },
|
|
3506
|
+
{ name: 'operator' },
|
|
3507
|
+
{ name: 'participant' },
|
|
3508
|
+
{ name: 'value' }
|
|
3509
|
+
]
|
|
3510
|
+
};
|
|
3511
|
+
}
|
|
3512
|
+
case WhereRelationParticipantTag: {
|
|
3513
|
+
return {
|
|
3514
|
+
name: WhereRelationParticipantTag,
|
|
3515
|
+
properties: [
|
|
3516
|
+
{ name: 'not', defaultValue: false },
|
|
3517
|
+
{ name: 'operator' },
|
|
3518
|
+
{ name: 'participant' },
|
|
3519
|
+
{ name: 'value' }
|
|
3520
|
+
]
|
|
3521
|
+
};
|
|
3522
|
+
}
|
|
3406
3523
|
case WhereRelationTag: {
|
|
3407
3524
|
return {
|
|
3408
3525
|
name: WhereRelationTag,
|