@likec4/language-server 1.19.2 → 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.
@@ -413,11 +413,13 @@ WhereRelationNegation:
413
413
 
414
414
  WhereRelation:
415
415
  {infer WhereRelationTag} 'tag' EqOperator value=[Tag:TagId]? |
416
- {infer WhereRelationKind} 'kind' EqOperator value=[RelationshipKind:Id]?
416
+ {infer WhereRelationKind} 'kind' EqOperator value=[RelationshipKind:Id]? |
417
+ {infer WhereRelationParticipantTag} participant=Participant StickyDot 'tag' EqOperator value=[Tag:TagId]? |
418
+ {infer WhereRelationParticipantKind} participant=Participant StickyDot 'kind' EqOperator value=[DeploymentNodeOrElementKind:Id]?
417
419
  ;
418
-
419
- type WhereTagEqual = WhereElementTag | WhereRelationTag;
420
- type WhereKindEqual = WhereElementKind | WhereRelationKind;
420
+ type DeploymentNodeOrElementKind = ElementKind | DeploymentNodeKind
421
+ type WhereTagEqual = WhereElementTag | WhereRelationTag | WhereRelationParticipantTag;
422
+ type WhereKindEqual = WhereElementKind | WhereRelationKind | WhereRelationParticipantKind;
421
423
 
422
424
  type WhereExpression = WhereElementExpression | WhereRelationExpression;
423
425
 
@@ -769,6 +771,8 @@ ThemeColor returns string:
769
771
  'primary' | 'secondary' | 'muted' | 'slate' | 'blue' | 'indigo' | 'sky' | 'red' | 'gray' | 'green' | 'amber';
770
772
  ElementShape returns string:
771
773
  'rectangle' | 'person' | 'browser' | 'mobile' | 'cylinder' | 'storage' | 'queue';
774
+ Participant returns string:
775
+ 'source' | 'target';
772
776
 
773
777
  CustomColorValue returns string:
774
778
  Hash (Id | Hex | Number);
@@ -789,7 +793,7 @@ CustomColorId returns string:
789
793
  IdTerminal | ElementShape | ArrowType | LineOptions | 'element' | 'model';
790
794
 
791
795
  Id returns string:
792
- IdTerminal | ElementShape | ThemeColor | ArrowType | LineOptions | 'element' | 'model' | 'group' | 'node' | 'deployment' | 'instance';
796
+ IdTerminal | ElementShape | ThemeColor | ArrowType | LineOptions | Participant | 'element' | 'model' | 'group' | 'node' | 'deployment' | 'instance';
793
797
 
794
798
  fragment EqOperator:
795
799
  (
@@ -1,5 +1,5 @@
1
1
  import type { AstNode } from 'langium';
2
- import { AbstractSemanticTokenProvider, type SemanticTokenAcceptor } from 'langium/lsp';
2
+ import { type SemanticTokenAcceptor, AbstractSemanticTokenProvider } from 'langium/lsp';
3
3
  export declare class LikeC4SemanticTokenProvider extends AbstractSemanticTokenProvider {
4
4
  protected highlightElement(node: AstNode, acceptor: SemanticTokenAcceptor): void | undefined | 'prune';
5
5
  private highlightNameAndKind;
@@ -118,6 +118,13 @@ export class LikeC4SemanticTokenProvider extends AbstractSemanticTokenProvider {
118
118
  });
119
119
  return;
120
120
  }
121
+ if (ast.isWhereRelationParticipantKind(node) || ast.isWhereRelationParticipantTag(node)) {
122
+ acceptor({
123
+ node,
124
+ property: "participant",
125
+ type: SemanticTokenTypes.keyword
126
+ });
127
+ }
121
128
  if (ast.isElementKindExpression(node) && isTruthy(node.kind)) {
122
129
  acceptor({
123
130
  node,
@@ -14,21 +14,27 @@ const parseEquals = ({ operator, not }, value) => {
14
14
  }
15
15
  return not ? { neq: value } : { eq: value };
16
16
  };
17
+ function parseParticipant(astNode) {
18
+ if (!ast.isWhereRelationParticipantKind(astNode) && !ast.isWhereRelationParticipantTag(astNode)) {
19
+ return null;
20
+ }
21
+ return astNode.participant;
22
+ }
17
23
  export function parseWhereClause(astNode) {
18
24
  switch (true) {
19
25
  case ast.isWhereTagEqual(astNode): {
20
26
  const tag = astNode.value?.ref?.name;
27
+ const participant = parseParticipant(astNode);
21
28
  invariant(tag, "Expected tag name");
22
- return {
23
- tag: parseEquals(astNode, tag)
24
- };
29
+ const tagOperator = { tag: parseEquals(astNode, tag) };
30
+ return participant ? { participant, operator: tagOperator } : tagOperator;
25
31
  }
26
32
  case ast.isWhereKindEqual(astNode): {
27
33
  const kind = astNode.value?.ref?.name;
34
+ const participant = parseParticipant(astNode);
28
35
  invariant(kind, "Expected kind name");
29
- return {
30
- kind: parseEquals(astNode, kind)
31
- };
36
+ const kindOperator = { kind: parseEquals(astNode, kind) };
37
+ return participant ? { participant, operator: kindOperator } : kindOperator;
32
38
  }
33
39
  case (ast.isWhereElementNegation(astNode) || ast.isWhereRelationNegation(astNode)): {
34
40
  return {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@likec4/language-server",
3
3
  "description": "LikeC4 Language Server",
4
- "version": "1.19.2",
4
+ "version": "1.20.0",
5
5
  "license": "MIT",
6
6
  "bugs": "https://github.com/likec4/likec4/issues",
7
7
  "homepage": "https://likec4.dev",
@@ -17,7 +17,7 @@
17
17
  ],
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "https://github.com/likec4/likec4.git",
20
+ "url": "git+https://github.com/likec4/likec4.git",
21
21
  "directory": "packages/language-server"
22
22
  },
23
23
  "type": "module",
@@ -82,9 +82,9 @@
82
82
  "test:watch": "vitest"
83
83
  },
84
84
  "dependencies": {
85
- "@likec4/core": "1.19.2",
86
- "@likec4/layouts": "1.19.2",
87
- "@likec4/log": "1.19.2",
85
+ "@likec4/core": "1.20.0",
86
+ "@likec4/layouts": "1.20.0",
87
+ "@likec4/log": "1.20.0",
88
88
  "@msgpack/msgpack": "^3.0.0-beta2",
89
89
  "@smithy/util-base64": "^3.0.0",
90
90
  "esm-env": "^1.2.1",
@@ -94,7 +94,7 @@
94
94
  "json5": "^2.2.3",
95
95
  "langium": "3.3.0",
96
96
  "p-debounce": "^4.0.0",
97
- "remeda": "^2.17.4",
97
+ "remeda": "^2.19.0",
98
98
  "strip-indent": "^4.0.0",
99
99
  "type-fest": "4.28.1",
100
100
  "ufo": "^1.5.4",
@@ -105,8 +105,8 @@
105
105
  "which": "^4.0.0"
106
106
  },
107
107
  "devDependencies": {
108
- "@likec4/icons": "1.19.2",
109
- "@likec4/tsconfig": "1.19.2",
108
+ "@likec4/icons": "1.20.0",
109
+ "@likec4/tsconfig": "1.20.0",
110
110
  "@types/node": "^20.17.7",
111
111
  "@types/which": "^3.0.4",
112
112
  "@vitest/coverage-v8": "^2.1.8",
@@ -116,8 +116,8 @@
116
116
  "npm-run-all2": "^7.0.1",
117
117
  "tsx": "~4.19.2",
118
118
  "turbo": "^2.3.3",
119
- "typescript": "^5.7.2",
120
- "unbuild": "^3.1.0",
119
+ "typescript": "^5.7.3",
120
+ "unbuild": "^3.2.0",
121
121
  "vitest": "^2.1.8"
122
122
  },
123
123
  "packageManager": "yarn@4.6.0"
@@ -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';
@@ -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';
@@ -456,7 +472,7 @@ export function isWhereExpression(item: unknown): item is WhereExpression {
456
472
  return reflection.isInstance(item, WhereExpression);
457
473
  }
458
474
 
459
- export type WhereKindEqual = WhereElementKind | WhereRelationKind;
475
+ export type WhereKindEqual = WhereElementKind | WhereRelationKind | WhereRelationParticipantKind;
460
476
 
461
477
  export const WhereKindEqual = 'WhereKindEqual';
462
478
 
@@ -464,7 +480,7 @@ export function isWhereKindEqual(item: unknown): item is WhereKindEqual {
464
480
  return reflection.isInstance(item, WhereKindEqual);
465
481
  }
466
482
 
467
- export type WhereRelation = WhereRelationKind | WhereRelationTag;
483
+ export type WhereRelation = WhereRelationKind | WhereRelationParticipantKind | WhereRelationParticipantTag | WhereRelationTag;
468
484
 
469
485
  export const WhereRelation = 'WhereRelation';
470
486
 
@@ -480,7 +496,7 @@ export function isWhereRelationExpression(item: unknown): item is WhereRelationE
480
496
  return reflection.isInstance(item, WhereRelationExpression);
481
497
  }
482
498
 
483
- export type WhereTagEqual = WhereElementTag | WhereRelationTag;
499
+ export type WhereTagEqual = WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
484
500
 
485
501
  export const WhereTagEqual = 'WhereTagEqual';
486
502
 
@@ -1976,6 +1992,36 @@ export function isWhereRelationNegation(item: unknown): item is WhereRelationNeg
1976
1992
  return reflection.isInstance(item, WhereRelationNegation);
1977
1993
  }
1978
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
+
1979
2025
  export interface WhereRelationTag extends AstNode {
1980
2026
  readonly $container: RelationPredicateWhere | RelationPredicateWhereV2 | WhereBinaryExpression | WhereRelationNegation;
1981
2027
  readonly $type: 'WhereRelationTag';
@@ -2015,6 +2061,7 @@ export type LikeC4AstType = {
2015
2061
  DeploymentNode: DeploymentNode
2016
2062
  DeploymentNodeBody: DeploymentNodeBody
2017
2063
  DeploymentNodeKind: DeploymentNodeKind
2064
+ DeploymentNodeOrElementKind: DeploymentNodeOrElementKind
2018
2065
  DeploymentRelation: DeploymentRelation
2019
2066
  DeploymentRelationBody: DeploymentRelationBody
2020
2067
  DeploymentView: DeploymentView
@@ -2149,6 +2196,8 @@ export type LikeC4AstType = {
2149
2196
  WhereRelationExpression: WhereRelationExpression
2150
2197
  WhereRelationKind: WhereRelationKind
2151
2198
  WhereRelationNegation: WhereRelationNegation
2199
+ WhereRelationParticipantKind: WhereRelationParticipantKind
2200
+ WhereRelationParticipantTag: WhereRelationParticipantTag
2152
2201
  WhereRelationTag: WhereRelationTag
2153
2202
  WhereTagEqual: WhereTagEqual
2154
2203
  WildcardExpression: WildcardExpression
@@ -2157,7 +2206,7 @@ export type LikeC4AstType = {
2157
2206
  export class LikeC4AstReflection extends AbstractAstReflection {
2158
2207
 
2159
2208
  getAllTypes(): string[] {
2160
- 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, 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, 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];
2161
2210
  }
2162
2211
 
2163
2212
  protected override computeIsSubtype(subtype: string, supertype: string): boolean {
@@ -2178,6 +2227,10 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2178
2227
  case DeploymentNode: {
2179
2228
  return this.isSubtype(DeploymentElement, supertype) || this.isSubtype(Referenceable, supertype);
2180
2229
  }
2230
+ case DeploymentNodeKind:
2231
+ case ElementKind: {
2232
+ return this.isSubtype(DeploymentNodeOrElementKind, supertype);
2233
+ }
2181
2234
  case DeploymentView:
2182
2235
  case DynamicView:
2183
2236
  case ElementView: {
@@ -2323,9 +2376,11 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2323
2376
  case WhereRelationNegation: {
2324
2377
  return this.isSubtype(WhereRelationExpression, supertype);
2325
2378
  }
2326
- case WhereRelationKind: {
2379
+ case WhereRelationKind:
2380
+ case WhereRelationParticipantKind: {
2327
2381
  return this.isSubtype(WhereKindEqual, supertype) || this.isSubtype(WhereRelation, supertype);
2328
2382
  }
2383
+ case WhereRelationParticipantTag:
2329
2384
  case WhereRelationTag: {
2330
2385
  return this.isSubtype(WhereRelation, supertype) || this.isSubtype(WhereTagEqual, supertype);
2331
2386
  }
@@ -2373,6 +2428,7 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2373
2428
  case 'ElementTagExpression:tag':
2374
2429
  case 'Tags:values':
2375
2430
  case 'WhereElementTag:value':
2431
+ case 'WhereRelationParticipantTag:value':
2376
2432
  case 'WhereRelationTag:value': {
2377
2433
  return Tag;
2378
2434
  }
@@ -2394,6 +2450,9 @@ export class LikeC4AstReflection extends AbstractAstReflection {
2394
2450
  case 'ViewRuleGlobalStyle:style': {
2395
2451
  return GlobalStyleId;
2396
2452
  }
2453
+ case 'WhereRelationParticipantKind:value': {
2454
+ return DeploymentNodeOrElementKind;
2455
+ }
2397
2456
  default: {
2398
2457
  throw new Error(`${referenceId} is not a valid reference id.`);
2399
2458
  }
@@ -3439,6 +3498,28 @@ export class LikeC4AstReflection extends AbstractAstReflection {
3439
3498
  ]
3440
3499
  };
3441
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
+ }
3442
3523
  case WhereRelationTag: {
3443
3524
  return {
3444
3525
  name: WhereRelationTag,