@likec4/language-server 1.24.0 → 1.24.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.
@@ -1,4 +1,4 @@
1
- import { invariant } from '@likec4/core';
1
+ import { DefaultWeakMap } from '@likec4/core/utils';
2
2
  import { type LangiumDocument, type Stream } from 'langium';
3
3
  import type { ParsedLikeC4LangiumDocument } from '../ast';
4
4
  import type { LikeC4Services } from '../module';
@@ -7,40 +7,40 @@ export type ModelParsedListener = () => void;
7
7
  declare const DocumentParserFromMixins: {
8
8
  new (...args: any[]): {
9
9
  parseGlobals(): void;
10
- parseAndStoreGlobalPredicateGroupOrDynamic(astRule: import("../generated/ast").GlobalPredicateGroup | import("../generated/ast").GlobalDynamicPredicateGroup, id: invariant, c4Globals: import("../ast").ParsedAstGlobals): void;
11
- parseGlobalPredicateGroup(astRule: import("../generated/ast").GlobalPredicateGroup): invariant[];
12
- parseGlobalDynamicPredicateGroup(astRule: import("../generated/ast").GlobalDynamicPredicateGroup): invariant[];
13
- parseGlobalStyleOrGroup(astRule: import("../generated/ast").GlobalStyle | import("../generated/ast").GlobalStyleGroup): invariant[];
10
+ parseAndStoreGlobalPredicateGroupOrDynamic(astRule: import("../generated/ast").GlobalPredicateGroup | import("../generated/ast").GlobalDynamicPredicateGroup, id: DefaultWeakMap, c4Globals: import("../ast").ParsedAstGlobals): void;
11
+ parseGlobalPredicateGroup(astRule: import("../generated/ast").GlobalPredicateGroup): DefaultWeakMap[];
12
+ parseGlobalDynamicPredicateGroup(astRule: import("../generated/ast").GlobalDynamicPredicateGroup): DefaultWeakMap[];
13
+ parseGlobalStyleOrGroup(astRule: import("../generated/ast").GlobalStyle | import("../generated/ast").GlobalStyleGroup): DefaultWeakMap[];
14
14
  parseViews(): void;
15
- parseElementView(astNode: import("../generated/ast").ElementView, additionalStyles: invariant[]): import("../ast").ParsedAstElementView;
16
- parseViewRule(astRule: import("../generated/ast").ViewRule): invariant;
17
- parseViewRulePredicate(astNode: import("../generated/ast").ViewRulePredicate): invariant;
18
- parseViewRuleGlobalPredicateRef(astRule: import("../generated/ast").ViewRuleGlobalPredicateRef | import("../generated/ast").DynamicViewGlobalPredicateRef): invariant;
19
- parseViewRuleStyleOrGlobalRef(astRule: import("../generated/ast").ViewRuleStyleOrGlobalRef): invariant;
20
- parseViewRuleGroup(astNode: import("../generated/ast").ViewRuleGroup): invariant;
21
- parseViewRuleStyle(astRule: import("../generated/ast").ViewRuleStyle | import("../generated/ast").GlobalStyle): invariant;
22
- parseRuleStyle(styleProperties: import("../generated/ast").StyleProperty[], elementExpressionsIterator: import("../generated/ast").ElementExpressionsIterator, notationProperty?: import("../generated/ast").NotationProperty): invariant;
23
- parseViewRuleGlobalStyle(astRule: import("../generated/ast").ViewRuleGlobalStyle): invariant;
24
- parseDynamicElementView(astNode: import("../generated/ast").DynamicView, additionalStyles: invariant[]): import("../ast").ParsedAstDynamicView;
25
- parseDynamicViewRule(astRule: import("../generated/ast").DynamicViewRule): invariant;
26
- parseDynamicViewIncludePredicate(astRule: import("../generated/ast").DynamicViewIncludePredicate): invariant;
27
- parseDynamicParallelSteps(node: import("../generated/ast").DynamicViewParallelSteps): invariant;
28
- parseDynamicStep(node: import("../generated/ast").DynamicViewStep): invariant;
29
- parsePredicate(astNode: import("../generated/ast").Predicate): invariant;
30
- parseElementPredicate(astNode: import("../generated/ast").ElementPredicate): invariant;
31
- parseElementExpressionsIterator(astNode: import("../generated/ast").ElementExpressionsIterator): invariant[];
32
- parseElementExpression(astNode: import("../generated/ast").ElementExpression): invariant;
33
- parseElementPredicateWhere(astNode: import("../generated/ast").ElementPredicateWhere): invariant;
34
- parseElementPredicateWith(astNode: import("../generated/ast").ElementPredicateWith): invariant;
35
- parseRelationPredicate(astNode: import("../generated/ast").RelationPredicate): invariant;
36
- parseRelationPredicateWhere(astNode: import("../generated/ast").RelationPredicateWhere): invariant;
37
- parseRelationPredicateWith(astNode: import("../generated/ast").RelationPredicateWith, relation: invariant | invariant): invariant;
38
- parseRelationExpression(astNode: import("../generated/ast").RelationExpression): invariant;
15
+ parseElementView(astNode: import("../generated/ast").ElementView, additionalStyles: DefaultWeakMap[]): import("../ast").ParsedAstElementView;
16
+ parseViewRule(astRule: import("../generated/ast").ViewRule): DefaultWeakMap;
17
+ parseViewRulePredicate(astNode: import("../generated/ast").ViewRulePredicate): DefaultWeakMap;
18
+ parseViewRuleGlobalPredicateRef(astRule: import("../generated/ast").ViewRuleGlobalPredicateRef | import("../generated/ast").DynamicViewGlobalPredicateRef): DefaultWeakMap;
19
+ parseViewRuleStyleOrGlobalRef(astRule: import("../generated/ast").ViewRuleStyleOrGlobalRef): DefaultWeakMap;
20
+ parseViewRuleGroup(astNode: import("../generated/ast").ViewRuleGroup): DefaultWeakMap;
21
+ parseViewRuleStyle(astRule: import("../generated/ast").ViewRuleStyle | import("../generated/ast").GlobalStyle): DefaultWeakMap;
22
+ parseRuleStyle(styleProperties: import("../generated/ast").StyleProperty[], elementExpressionsIterator: import("../generated/ast").ElementExpressionsIterator, notationProperty?: import("../generated/ast").NotationProperty): DefaultWeakMap;
23
+ parseViewRuleGlobalStyle(astRule: import("../generated/ast").ViewRuleGlobalStyle): DefaultWeakMap;
24
+ parseDynamicElementView(astNode: import("../generated/ast").DynamicView, additionalStyles: DefaultWeakMap[]): import("../ast").ParsedAstDynamicView;
25
+ parseDynamicViewRule(astRule: import("../generated/ast").DynamicViewRule): DefaultWeakMap;
26
+ parseDynamicViewIncludePredicate(astRule: import("../generated/ast").DynamicViewIncludePredicate): DefaultWeakMap;
27
+ parseDynamicParallelSteps(node: import("../generated/ast").DynamicViewParallelSteps): DefaultWeakMap;
28
+ parseDynamicStep(node: import("../generated/ast").DynamicViewStep): DefaultWeakMap;
29
+ parsePredicate(astNode: import("../generated/ast").Predicate): DefaultWeakMap;
30
+ parseElementPredicate(astNode: import("../generated/ast").ElementPredicate): DefaultWeakMap;
31
+ parseElementExpressionsIterator(astNode: import("../generated/ast").ElementExpressionsIterator): DefaultWeakMap[];
32
+ parseElementExpression(astNode: import("../generated/ast").ElementExpression): DefaultWeakMap;
33
+ parseElementPredicateWhere(astNode: import("../generated/ast").ElementPredicateWhere): DefaultWeakMap;
34
+ parseElementPredicateWith(astNode: import("../generated/ast").ElementPredicateWith): DefaultWeakMap;
35
+ parseRelationPredicate(astNode: import("../generated/ast").RelationPredicate): DefaultWeakMap;
36
+ parseRelationPredicateWhere(astNode: import("../generated/ast").RelationPredicateWhere): DefaultWeakMap;
37
+ parseRelationPredicateWith(astNode: import("../generated/ast").RelationPredicateWith, relation: DefaultWeakMap | DefaultWeakMap): DefaultWeakMap;
38
+ parseRelationExpression(astNode: import("../generated/ast").RelationExpression): DefaultWeakMap;
39
39
  isValid: import("../validation").IsValidFn;
40
40
  readonly services: LikeC4Services;
41
41
  readonly doc: ParsedLikeC4LangiumDocument;
42
- resolveFqn(node: import("../generated/ast").FqnReferenceable): invariant;
43
- getAstNodePath(node: invariant): any;
42
+ resolveFqn(node: import("../generated/ast").FqnReferenceable): DefaultWeakMap;
43
+ getAstNodePath(node: DefaultWeakMap): any;
44
44
  getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
45
45
  [key: string]: string;
46
46
  } | undefined;
@@ -49,20 +49,20 @@ declare const DocumentParserFromMixins: {
49
49
  }>(withTags?: E | undefined): any;
50
50
  parseTags<E extends {
51
51
  tags?: import("../generated/ast").Tags;
52
- }>(withTags?: E): invariant<invariant> | null;
53
- convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
54
- parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
52
+ }>(withTags?: E): DefaultWeakMap<DefaultWeakMap> | null;
53
+ convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
54
+ parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
55
55
  parseDeploymentView(astNode: import("../generated/ast").DeploymentView): import("../ast").ParsedAstDeploymentView;
56
- parseDeploymentViewRule(astRule: import("../generated/ast").DeploymentViewRule): invariant;
57
- parseDeploymentViewRulePredicate(astRule: import("../generated/ast").DeploymentViewRulePredicate): invariant;
58
- parseDeploymentViewRuleStyle(astRule: import("../generated/ast").DeploymentViewRuleStyle): invariant;
59
- parseFqnRef(astNode: import("../generated/ast").FqnRef): invariant;
60
- parseFqnExpr(astNode: import("../generated/ast").FqnExpr): invariant;
61
- parseFqnRefExpr(astNode: import("../generated/ast").FqnRefExpr): invariant;
62
- parseElementWhereExpr(astNode: import("../generated/ast").ElementPredicateWhereV2): invariant;
63
- parseFqnExpressions(astNode: import("../generated/ast").FqnExpressions): invariant[];
64
- parseRelationWhereExpr(astNode: import("../generated/ast").RelationPredicateWhereV2): invariant;
65
- parseRelationExpr(astNode: import("../generated/ast").RelationExpr): invariant;
56
+ parseDeploymentViewRule(astRule: import("../generated/ast").DeploymentViewRule): DefaultWeakMap;
57
+ parseDeploymentViewRulePredicate(astRule: import("../generated/ast").DeploymentViewRulePredicate): DefaultWeakMap;
58
+ parseDeploymentViewRuleStyle(astRule: import("../generated/ast").DeploymentViewRuleStyle): DefaultWeakMap;
59
+ parseFqnRef(astNode: import("../generated/ast").FqnRef): DefaultWeakMap;
60
+ parseFqnExpr(astNode: import("../generated/ast").FqnExpr): DefaultWeakMap;
61
+ parseFqnRefExpr(astNode: import("../generated/ast").FqnRefExpr): DefaultWeakMap;
62
+ parseElementWhereExpr(astNode: import("../generated/ast").ElementPredicateWhereV2): DefaultWeakMap;
63
+ parseFqnExpressions(astNode: import("../generated/ast").FqnExpressions): DefaultWeakMap[];
64
+ parseRelationWhereExpr(astNode: import("../generated/ast").RelationPredicateWhereV2): DefaultWeakMap;
65
+ parseRelationExpr(astNode: import("../generated/ast").RelationExpr): DefaultWeakMap;
66
66
  parseDeployment(): void;
67
67
  parseDeploymentNode(astNode: import("../generated/ast").DeploymentNode): import("../ast").ParsedAstDeployment.Node;
68
68
  parseDeployedInstance(astNode: import("../generated/ast").DeployedInstance): import("../ast").ParsedAstDeployment.Instance;
@@ -72,35 +72,35 @@ declare const DocumentParserFromMixins: {
72
72
  } & {
73
73
  new (...args: any[]): {
74
74
  parseViews(): void;
75
- parseElementView(astNode: import("../generated/ast").ElementView, additionalStyles: invariant[]): import("../ast").ParsedAstElementView;
76
- parseViewRule(astRule: import("../generated/ast").ViewRule): invariant;
77
- parseViewRulePredicate(astNode: import("../generated/ast").ViewRulePredicate): invariant;
78
- parseViewRuleGlobalPredicateRef(astRule: import("../generated/ast").ViewRuleGlobalPredicateRef | import("../generated/ast").DynamicViewGlobalPredicateRef): invariant;
79
- parseViewRuleStyleOrGlobalRef(astRule: import("../generated/ast").ViewRuleStyleOrGlobalRef): invariant;
80
- parseViewRuleGroup(astNode: import("../generated/ast").ViewRuleGroup): invariant;
81
- parseViewRuleStyle(astRule: import("../generated/ast").ViewRuleStyle | import("../generated/ast").GlobalStyle): invariant;
82
- parseRuleStyle(styleProperties: import("../generated/ast").StyleProperty[], elementExpressionsIterator: import("../generated/ast").ElementExpressionsIterator, notationProperty?: import("../generated/ast").NotationProperty): invariant;
83
- parseViewRuleGlobalStyle(astRule: import("../generated/ast").ViewRuleGlobalStyle): invariant;
84
- parseDynamicElementView(astNode: import("../generated/ast").DynamicView, additionalStyles: invariant[]): import("../ast").ParsedAstDynamicView;
85
- parseDynamicViewRule(astRule: import("../generated/ast").DynamicViewRule): invariant;
86
- parseDynamicViewIncludePredicate(astRule: import("../generated/ast").DynamicViewIncludePredicate): invariant;
87
- parseDynamicParallelSteps(node: import("../generated/ast").DynamicViewParallelSteps): invariant;
88
- parseDynamicStep(node: import("../generated/ast").DynamicViewStep): invariant;
89
- parsePredicate(astNode: import("../generated/ast").Predicate): invariant;
90
- parseElementPredicate(astNode: import("../generated/ast").ElementPredicate): invariant;
91
- parseElementExpressionsIterator(astNode: import("../generated/ast").ElementExpressionsIterator): invariant[];
92
- parseElementExpression(astNode: import("../generated/ast").ElementExpression): invariant;
93
- parseElementPredicateWhere(astNode: import("../generated/ast").ElementPredicateWhere): invariant;
94
- parseElementPredicateWith(astNode: import("../generated/ast").ElementPredicateWith): invariant;
95
- parseRelationPredicate(astNode: import("../generated/ast").RelationPredicate): invariant;
96
- parseRelationPredicateWhere(astNode: import("../generated/ast").RelationPredicateWhere): invariant;
97
- parseRelationPredicateWith(astNode: import("../generated/ast").RelationPredicateWith, relation: invariant | invariant): invariant;
98
- parseRelationExpression(astNode: import("../generated/ast").RelationExpression): invariant;
75
+ parseElementView(astNode: import("../generated/ast").ElementView, additionalStyles: DefaultWeakMap[]): import("../ast").ParsedAstElementView;
76
+ parseViewRule(astRule: import("../generated/ast").ViewRule): DefaultWeakMap;
77
+ parseViewRulePredicate(astNode: import("../generated/ast").ViewRulePredicate): DefaultWeakMap;
78
+ parseViewRuleGlobalPredicateRef(astRule: import("../generated/ast").ViewRuleGlobalPredicateRef | import("../generated/ast").DynamicViewGlobalPredicateRef): DefaultWeakMap;
79
+ parseViewRuleStyleOrGlobalRef(astRule: import("../generated/ast").ViewRuleStyleOrGlobalRef): DefaultWeakMap;
80
+ parseViewRuleGroup(astNode: import("../generated/ast").ViewRuleGroup): DefaultWeakMap;
81
+ parseViewRuleStyle(astRule: import("../generated/ast").ViewRuleStyle | import("../generated/ast").GlobalStyle): DefaultWeakMap;
82
+ parseRuleStyle(styleProperties: import("../generated/ast").StyleProperty[], elementExpressionsIterator: import("../generated/ast").ElementExpressionsIterator, notationProperty?: import("../generated/ast").NotationProperty): DefaultWeakMap;
83
+ parseViewRuleGlobalStyle(astRule: import("../generated/ast").ViewRuleGlobalStyle): DefaultWeakMap;
84
+ parseDynamicElementView(astNode: import("../generated/ast").DynamicView, additionalStyles: DefaultWeakMap[]): import("../ast").ParsedAstDynamicView;
85
+ parseDynamicViewRule(astRule: import("../generated/ast").DynamicViewRule): DefaultWeakMap;
86
+ parseDynamicViewIncludePredicate(astRule: import("../generated/ast").DynamicViewIncludePredicate): DefaultWeakMap;
87
+ parseDynamicParallelSteps(node: import("../generated/ast").DynamicViewParallelSteps): DefaultWeakMap;
88
+ parseDynamicStep(node: import("../generated/ast").DynamicViewStep): DefaultWeakMap;
89
+ parsePredicate(astNode: import("../generated/ast").Predicate): DefaultWeakMap;
90
+ parseElementPredicate(astNode: import("../generated/ast").ElementPredicate): DefaultWeakMap;
91
+ parseElementExpressionsIterator(astNode: import("../generated/ast").ElementExpressionsIterator): DefaultWeakMap[];
92
+ parseElementExpression(astNode: import("../generated/ast").ElementExpression): DefaultWeakMap;
93
+ parseElementPredicateWhere(astNode: import("../generated/ast").ElementPredicateWhere): DefaultWeakMap;
94
+ parseElementPredicateWith(astNode: import("../generated/ast").ElementPredicateWith): DefaultWeakMap;
95
+ parseRelationPredicate(astNode: import("../generated/ast").RelationPredicate): DefaultWeakMap;
96
+ parseRelationPredicateWhere(astNode: import("../generated/ast").RelationPredicateWhere): DefaultWeakMap;
97
+ parseRelationPredicateWith(astNode: import("../generated/ast").RelationPredicateWith, relation: DefaultWeakMap | DefaultWeakMap): DefaultWeakMap;
98
+ parseRelationExpression(astNode: import("../generated/ast").RelationExpression): DefaultWeakMap;
99
99
  isValid: import("../validation").IsValidFn;
100
100
  readonly services: LikeC4Services;
101
101
  readonly doc: ParsedLikeC4LangiumDocument;
102
- resolveFqn(node: import("../generated/ast").FqnReferenceable): invariant;
103
- getAstNodePath(node: invariant): any;
102
+ resolveFqn(node: import("../generated/ast").FqnReferenceable): DefaultWeakMap;
103
+ getAstNodePath(node: DefaultWeakMap): any;
104
104
  getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
105
105
  [key: string]: string;
106
106
  } | undefined;
@@ -109,20 +109,20 @@ declare const DocumentParserFromMixins: {
109
109
  }>(withTags?: E | undefined): any;
110
110
  parseTags<E extends {
111
111
  tags?: import("../generated/ast").Tags;
112
- }>(withTags?: E): invariant<invariant> | null;
113
- convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
114
- parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
112
+ }>(withTags?: E): DefaultWeakMap<DefaultWeakMap> | null;
113
+ convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
114
+ parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
115
115
  parseDeploymentView(astNode: import("../generated/ast").DeploymentView): import("../ast").ParsedAstDeploymentView;
116
- parseDeploymentViewRule(astRule: import("../generated/ast").DeploymentViewRule): invariant;
117
- parseDeploymentViewRulePredicate(astRule: import("../generated/ast").DeploymentViewRulePredicate): invariant;
118
- parseDeploymentViewRuleStyle(astRule: import("../generated/ast").DeploymentViewRuleStyle): invariant;
119
- parseFqnRef(astNode: import("../generated/ast").FqnRef): invariant;
120
- parseFqnExpr(astNode: import("../generated/ast").FqnExpr): invariant;
121
- parseFqnRefExpr(astNode: import("../generated/ast").FqnRefExpr): invariant;
122
- parseElementWhereExpr(astNode: import("../generated/ast").ElementPredicateWhereV2): invariant;
123
- parseFqnExpressions(astNode: import("../generated/ast").FqnExpressions): invariant[];
124
- parseRelationWhereExpr(astNode: import("../generated/ast").RelationPredicateWhereV2): invariant;
125
- parseRelationExpr(astNode: import("../generated/ast").RelationExpr): invariant;
116
+ parseDeploymentViewRule(astRule: import("../generated/ast").DeploymentViewRule): DefaultWeakMap;
117
+ parseDeploymentViewRulePredicate(astRule: import("../generated/ast").DeploymentViewRulePredicate): DefaultWeakMap;
118
+ parseDeploymentViewRuleStyle(astRule: import("../generated/ast").DeploymentViewRuleStyle): DefaultWeakMap;
119
+ parseFqnRef(astNode: import("../generated/ast").FqnRef): DefaultWeakMap;
120
+ parseFqnExpr(astNode: import("../generated/ast").FqnExpr): DefaultWeakMap;
121
+ parseFqnRefExpr(astNode: import("../generated/ast").FqnRefExpr): DefaultWeakMap;
122
+ parseElementWhereExpr(astNode: import("../generated/ast").ElementPredicateWhereV2): DefaultWeakMap;
123
+ parseFqnExpressions(astNode: import("../generated/ast").FqnExpressions): DefaultWeakMap[];
124
+ parseRelationWhereExpr(astNode: import("../generated/ast").RelationPredicateWhereV2): DefaultWeakMap;
125
+ parseRelationExpr(astNode: import("../generated/ast").RelationExpr): DefaultWeakMap;
126
126
  parseDeployment(): void;
127
127
  parseDeploymentNode(astNode: import("../generated/ast").DeploymentNode): import("../ast").ParsedAstDeployment.Node;
128
128
  parseDeployedInstance(astNode: import("../generated/ast").DeployedInstance): import("../ast").ParsedAstDeployment.Instance;
@@ -136,8 +136,8 @@ declare const DocumentParserFromMixins: {
136
136
  isValid: import("../validation").IsValidFn;
137
137
  readonly services: LikeC4Services;
138
138
  readonly doc: ParsedLikeC4LangiumDocument;
139
- resolveFqn(node: import("../generated/ast").FqnReferenceable): invariant;
140
- getAstNodePath(node: invariant): any;
139
+ resolveFqn(node: import("../generated/ast").FqnReferenceable): DefaultWeakMap;
140
+ getAstNodePath(node: DefaultWeakMap): any;
141
141
  getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
142
142
  [key: string]: string;
143
143
  } | undefined;
@@ -146,27 +146,27 @@ declare const DocumentParserFromMixins: {
146
146
  }>(withTags?: E | undefined): any;
147
147
  parseTags<E extends {
148
148
  tags?: import("../generated/ast").Tags;
149
- }>(withTags?: E): invariant<invariant> | null;
150
- convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
151
- parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
149
+ }>(withTags?: E): DefaultWeakMap<DefaultWeakMap> | null;
150
+ convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
151
+ parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
152
152
  };
153
153
  } & {
154
154
  new (...args: any[]): {
155
- parsePredicate(astNode: import("../generated/ast").Predicate): invariant;
156
- parseElementPredicate(astNode: import("../generated/ast").ElementPredicate): invariant;
157
- parseElementExpressionsIterator(astNode: import("../generated/ast").ElementExpressionsIterator): invariant[];
158
- parseElementExpression(astNode: import("../generated/ast").ElementExpression): invariant;
159
- parseElementPredicateWhere(astNode: import("../generated/ast").ElementPredicateWhere): invariant;
160
- parseElementPredicateWith(astNode: import("../generated/ast").ElementPredicateWith): invariant;
161
- parseRelationPredicate(astNode: import("../generated/ast").RelationPredicate): invariant;
162
- parseRelationPredicateWhere(astNode: import("../generated/ast").RelationPredicateWhere): invariant;
163
- parseRelationPredicateWith(astNode: import("../generated/ast").RelationPredicateWith, relation: invariant | invariant): invariant;
164
- parseRelationExpression(astNode: import("../generated/ast").RelationExpression): invariant;
155
+ parsePredicate(astNode: import("../generated/ast").Predicate): DefaultWeakMap;
156
+ parseElementPredicate(astNode: import("../generated/ast").ElementPredicate): DefaultWeakMap;
157
+ parseElementExpressionsIterator(astNode: import("../generated/ast").ElementExpressionsIterator): DefaultWeakMap[];
158
+ parseElementExpression(astNode: import("../generated/ast").ElementExpression): DefaultWeakMap;
159
+ parseElementPredicateWhere(astNode: import("../generated/ast").ElementPredicateWhere): DefaultWeakMap;
160
+ parseElementPredicateWith(astNode: import("../generated/ast").ElementPredicateWith): DefaultWeakMap;
161
+ parseRelationPredicate(astNode: import("../generated/ast").RelationPredicate): DefaultWeakMap;
162
+ parseRelationPredicateWhere(astNode: import("../generated/ast").RelationPredicateWhere): DefaultWeakMap;
163
+ parseRelationPredicateWith(astNode: import("../generated/ast").RelationPredicateWith, relation: DefaultWeakMap | DefaultWeakMap): DefaultWeakMap;
164
+ parseRelationExpression(astNode: import("../generated/ast").RelationExpression): DefaultWeakMap;
165
165
  isValid: import("../validation").IsValidFn;
166
166
  readonly services: LikeC4Services;
167
167
  readonly doc: ParsedLikeC4LangiumDocument;
168
- resolveFqn(node: import("../generated/ast").FqnReferenceable): invariant;
169
- getAstNodePath(node: invariant): any;
168
+ resolveFqn(node: import("../generated/ast").FqnReferenceable): DefaultWeakMap;
169
+ getAstNodePath(node: DefaultWeakMap): any;
170
170
  getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
171
171
  [key: string]: string;
172
172
  } | undefined;
@@ -175,28 +175,28 @@ declare const DocumentParserFromMixins: {
175
175
  }>(withTags?: E | undefined): any;
176
176
  parseTags<E extends {
177
177
  tags?: import("../generated/ast").Tags;
178
- }>(withTags?: E): invariant<invariant> | null;
179
- convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
180
- parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
178
+ }>(withTags?: E): DefaultWeakMap<DefaultWeakMap> | null;
179
+ convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
180
+ parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
181
181
  };
182
182
  } & {
183
183
  new (...args: any[]): {
184
184
  parseDeploymentView(astNode: import("../generated/ast").DeploymentView): import("../ast").ParsedAstDeploymentView;
185
- parseDeploymentViewRule(astRule: import("../generated/ast").DeploymentViewRule): invariant;
186
- parseDeploymentViewRulePredicate(astRule: import("../generated/ast").DeploymentViewRulePredicate): invariant;
187
- parseDeploymentViewRuleStyle(astRule: import("../generated/ast").DeploymentViewRuleStyle): invariant;
188
- parseFqnRef(astNode: import("../generated/ast").FqnRef): invariant;
189
- parseFqnExpr(astNode: import("../generated/ast").FqnExpr): invariant;
190
- parseFqnRefExpr(astNode: import("../generated/ast").FqnRefExpr): invariant;
191
- parseElementWhereExpr(astNode: import("../generated/ast").ElementPredicateWhereV2): invariant;
192
- parseFqnExpressions(astNode: import("../generated/ast").FqnExpressions): invariant[];
193
- parseRelationWhereExpr(astNode: import("../generated/ast").RelationPredicateWhereV2): invariant;
194
- parseRelationExpr(astNode: import("../generated/ast").RelationExpr): invariant;
185
+ parseDeploymentViewRule(astRule: import("../generated/ast").DeploymentViewRule): DefaultWeakMap;
186
+ parseDeploymentViewRulePredicate(astRule: import("../generated/ast").DeploymentViewRulePredicate): DefaultWeakMap;
187
+ parseDeploymentViewRuleStyle(astRule: import("../generated/ast").DeploymentViewRuleStyle): DefaultWeakMap;
188
+ parseFqnRef(astNode: import("../generated/ast").FqnRef): DefaultWeakMap;
189
+ parseFqnExpr(astNode: import("../generated/ast").FqnExpr): DefaultWeakMap;
190
+ parseFqnRefExpr(astNode: import("../generated/ast").FqnRefExpr): DefaultWeakMap;
191
+ parseElementWhereExpr(astNode: import("../generated/ast").ElementPredicateWhereV2): DefaultWeakMap;
192
+ parseFqnExpressions(astNode: import("../generated/ast").FqnExpressions): DefaultWeakMap[];
193
+ parseRelationWhereExpr(astNode: import("../generated/ast").RelationPredicateWhereV2): DefaultWeakMap;
194
+ parseRelationExpr(astNode: import("../generated/ast").RelationExpr): DefaultWeakMap;
195
195
  isValid: import("../validation").IsValidFn;
196
196
  readonly services: LikeC4Services;
197
197
  readonly doc: ParsedLikeC4LangiumDocument;
198
- resolveFqn(node: import("../generated/ast").FqnReferenceable): invariant;
199
- getAstNodePath(node: invariant): any;
198
+ resolveFqn(node: import("../generated/ast").FqnReferenceable): DefaultWeakMap;
199
+ getAstNodePath(node: DefaultWeakMap): any;
200
200
  getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
201
201
  [key: string]: string;
202
202
  } | undefined;
@@ -205,9 +205,9 @@ declare const DocumentParserFromMixins: {
205
205
  }>(withTags?: E | undefined): any;
206
206
  parseTags<E extends {
207
207
  tags?: import("../generated/ast").Tags;
208
- }>(withTags?: E): invariant<invariant> | null;
209
- convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
210
- parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
208
+ }>(withTags?: E): DefaultWeakMap<DefaultWeakMap> | null;
209
+ convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
210
+ parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
211
211
  parseDeployment(): void;
212
212
  parseDeploymentNode(astNode: import("../generated/ast").DeploymentNode): import("../ast").ParsedAstDeployment.Node;
213
213
  parseDeployedInstance(astNode: import("../generated/ast").DeployedInstance): import("../ast").ParsedAstDeployment.Instance;
@@ -221,18 +221,18 @@ declare const DocumentParserFromMixins: {
221
221
  parseDeployedInstance(astNode: import("../generated/ast").DeployedInstance): import("../ast").ParsedAstDeployment.Instance;
222
222
  parseExtendDeployment(astNode: import("../generated/ast").ExtendDeployment): import("../ast").ParsedAstExtend | null;
223
223
  parseDeploymentRelation(astNode: import("../generated/ast").DeploymentRelation): import("../ast").ParsedAstDeploymentRelation;
224
- parseFqnRef(astNode: import("../generated/ast").FqnRef): invariant;
225
- parseFqnExpr(astNode: import("../generated/ast").FqnExpr): invariant;
226
- parseFqnRefExpr(astNode: import("../generated/ast").FqnRefExpr): invariant;
227
- parseElementWhereExpr(astNode: import("../generated/ast").ElementPredicateWhereV2): invariant;
228
- parseFqnExpressions(astNode: import("../generated/ast").FqnExpressions): invariant[];
229
- parseRelationWhereExpr(astNode: import("../generated/ast").RelationPredicateWhereV2): invariant;
230
- parseRelationExpr(astNode: import("../generated/ast").RelationExpr): invariant;
224
+ parseFqnRef(astNode: import("../generated/ast").FqnRef): DefaultWeakMap;
225
+ parseFqnExpr(astNode: import("../generated/ast").FqnExpr): DefaultWeakMap;
226
+ parseFqnRefExpr(astNode: import("../generated/ast").FqnRefExpr): DefaultWeakMap;
227
+ parseElementWhereExpr(astNode: import("../generated/ast").ElementPredicateWhereV2): DefaultWeakMap;
228
+ parseFqnExpressions(astNode: import("../generated/ast").FqnExpressions): DefaultWeakMap[];
229
+ parseRelationWhereExpr(astNode: import("../generated/ast").RelationPredicateWhereV2): DefaultWeakMap;
230
+ parseRelationExpr(astNode: import("../generated/ast").RelationExpr): DefaultWeakMap;
231
231
  isValid: import("../validation").IsValidFn;
232
232
  readonly services: LikeC4Services;
233
233
  readonly doc: ParsedLikeC4LangiumDocument;
234
- resolveFqn(node: import("../generated/ast").FqnReferenceable): invariant;
235
- getAstNodePath(node: invariant): any;
234
+ resolveFqn(node: import("../generated/ast").FqnReferenceable): DefaultWeakMap;
235
+ getAstNodePath(node: DefaultWeakMap): any;
236
236
  getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
237
237
  [key: string]: string;
238
238
  } | undefined;
@@ -241,9 +241,9 @@ declare const DocumentParserFromMixins: {
241
241
  }>(withTags?: E | undefined): any;
242
242
  parseTags<E extends {
243
243
  tags?: import("../generated/ast").Tags;
244
- }>(withTags?: E): invariant<invariant> | null;
245
- convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
246
- parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
244
+ }>(withTags?: E): DefaultWeakMap<DefaultWeakMap> | null;
245
+ convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
246
+ parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
247
247
  };
248
248
  } & {
249
249
  new (...args: any[]): {
@@ -254,8 +254,8 @@ declare const DocumentParserFromMixins: {
254
254
  isValid: import("../validation").IsValidFn;
255
255
  readonly services: LikeC4Services;
256
256
  readonly doc: ParsedLikeC4LangiumDocument;
257
- resolveFqn(node: import("../generated/ast").FqnReferenceable): invariant;
258
- getAstNodePath(node: invariant): any;
257
+ resolveFqn(node: import("../generated/ast").FqnReferenceable): DefaultWeakMap;
258
+ getAstNodePath(node: DefaultWeakMap): any;
259
259
  getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
260
260
  [key: string]: string;
261
261
  } | undefined;
@@ -264,24 +264,24 @@ declare const DocumentParserFromMixins: {
264
264
  }>(withTags?: E | undefined): any;
265
265
  parseTags<E extends {
266
266
  tags?: import("../generated/ast").Tags;
267
- }>(withTags?: E): invariant<invariant> | null;
268
- convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
269
- parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
267
+ }>(withTags?: E): DefaultWeakMap<DefaultWeakMap> | null;
268
+ convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
269
+ parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
270
270
  };
271
271
  } & {
272
272
  new (...args: any[]): {
273
- parseFqnRef(astNode: import("../generated/ast").FqnRef): invariant;
274
- parseFqnExpr(astNode: import("../generated/ast").FqnExpr): invariant;
275
- parseFqnRefExpr(astNode: import("../generated/ast").FqnRefExpr): invariant;
276
- parseElementWhereExpr(astNode: import("../generated/ast").ElementPredicateWhereV2): invariant;
277
- parseFqnExpressions(astNode: import("../generated/ast").FqnExpressions): invariant[];
278
- parseRelationWhereExpr(astNode: import("../generated/ast").RelationPredicateWhereV2): invariant;
279
- parseRelationExpr(astNode: import("../generated/ast").RelationExpr): invariant;
273
+ parseFqnRef(astNode: import("../generated/ast").FqnRef): DefaultWeakMap;
274
+ parseFqnExpr(astNode: import("../generated/ast").FqnExpr): DefaultWeakMap;
275
+ parseFqnRefExpr(astNode: import("../generated/ast").FqnRefExpr): DefaultWeakMap;
276
+ parseElementWhereExpr(astNode: import("../generated/ast").ElementPredicateWhereV2): DefaultWeakMap;
277
+ parseFqnExpressions(astNode: import("../generated/ast").FqnExpressions): DefaultWeakMap[];
278
+ parseRelationWhereExpr(astNode: import("../generated/ast").RelationPredicateWhereV2): DefaultWeakMap;
279
+ parseRelationExpr(astNode: import("../generated/ast").RelationExpr): DefaultWeakMap;
280
280
  isValid: import("../validation").IsValidFn;
281
281
  readonly services: LikeC4Services;
282
282
  readonly doc: ParsedLikeC4LangiumDocument;
283
- resolveFqn(node: import("../generated/ast").FqnReferenceable): invariant;
284
- getAstNodePath(node: invariant): any;
283
+ resolveFqn(node: import("../generated/ast").FqnReferenceable): DefaultWeakMap;
284
+ getAstNodePath(node: DefaultWeakMap): any;
285
285
  getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
286
286
  [key: string]: string;
287
287
  } | undefined;
@@ -290,16 +290,16 @@ declare const DocumentParserFromMixins: {
290
290
  }>(withTags?: E | undefined): any;
291
291
  parseTags<E extends {
292
292
  tags?: import("../generated/ast").Tags;
293
- }>(withTags?: E): invariant<invariant> | null;
294
- convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
295
- parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): invariant[] | undefined;
293
+ }>(withTags?: E): DefaultWeakMap<DefaultWeakMap> | null;
294
+ convertLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
295
+ parseLinks(source?: import("../generated/ast").LinkProperty["$container"]): DefaultWeakMap[] | undefined;
296
296
  };
297
297
  } & typeof BaseParser;
298
298
  export declare class DocumentParser extends DocumentParserFromMixins {
299
299
  }
300
300
  export declare class LikeC4ModelParser {
301
301
  private services;
302
- private cachedParsers;
302
+ protected cachedParsers: any;
303
303
  constructor(services: LikeC4Services);
304
304
  documents(): Stream<ParsedLikeC4LangiumDocument>;
305
305
  parse(doc: LangiumDocument): ParsedLikeC4LangiumDocument;
@@ -1,7 +1,10 @@
1
- import { invariant } from "@likec4/core";
2
- import { DocumentCache, DocumentState } from "langium";
1
+ import { DefaultWeakMap } from "@likec4/core/utils";
2
+ import { loggable } from "@likec4/log";
3
+ import { DocumentState } from "langium";
3
4
  import { pipe } from "remeda";
4
- import { logger } from "../logger.js";
5
+ import { DiagnosticSeverity } from "vscode-languageserver-types";
6
+ import { isLikeC4Builtin } from "../likec4lib.js";
7
+ import { logger as rootLogger } from "../logger.js";
5
8
  import { BaseParser } from "./parser/Base.js";
6
9
  import { DeploymentModelParser } from "./parser/DeploymentModelParser.js";
7
10
  import { DeploymentViewParser } from "./parser/DeploymentViewParser.js";
@@ -24,23 +27,32 @@ const DocumentParserFromMixins = pipe(
24
27
  );
25
28
  export class DocumentParser extends DocumentParserFromMixins {
26
29
  }
30
+ const logger = rootLogger.getChild("ModelParser");
27
31
  export class LikeC4ModelParser {
28
32
  constructor(services) {
29
33
  this.services = services;
30
- this.cachedParsers = new DocumentCache(services.shared, DocumentState.IndexedReferences);
31
34
  services.shared.workspace.DocumentBuilder.onDocumentPhase(
32
- DocumentState.Validated,
35
+ DocumentState.Linked,
33
36
  (doc) => {
34
37
  try {
35
- this.cachedParsers.set(doc.uri, "DocumentParser", this.createParser(doc));
36
- } catch (error) {
37
- logger.error(`Error caching parser for document ${doc.uri.toString()}`, { error });
38
+ if (!isLikeC4Builtin(doc.uri)) {
39
+ this.cachedParsers.set(doc, this.createParser(doc));
40
+ }
41
+ } catch (e) {
42
+ logger.warn(loggable(e));
43
+ }
44
+ }
45
+ );
46
+ services.shared.workspace.DocumentBuilder.onDocumentPhase(
47
+ DocumentState.Validated,
48
+ (doc) => {
49
+ if (doc.diagnostics?.some((d) => d.severity === DiagnosticSeverity.Error)) {
50
+ this.cachedParsers.delete(doc);
38
51
  }
39
- return Promise.resolve();
40
52
  }
41
53
  );
42
54
  }
43
- cachedParsers;
55
+ cachedParsers = new DefaultWeakMap((doc) => this.createParser(doc));
44
56
  documents() {
45
57
  return this.services.shared.workspace.LangiumDocuments.all.map(
46
58
  (d) => this.parse(d)
@@ -55,12 +67,10 @@ export class LikeC4ModelParser {
55
67
  }
56
68
  }
57
69
  forDocument(doc) {
58
- invariant(doc.state >= DocumentState.IndexedReferences, `Not a IndexedReferences: ${doc.uri.toString(true)}`);
59
- return this.cachedParsers.get(
60
- doc.uri,
61
- "DocumentParser",
62
- () => this.createParser(doc)
63
- );
70
+ if (doc.state < DocumentState.Linked) {
71
+ logger.warn(`Document ${doc.uri.toString()} is not linked`);
72
+ }
73
+ return this.cachedParsers.get(doc);
64
74
  }
65
75
  createParser(doc) {
66
76
  const props = {
@@ -20,11 +20,8 @@ export function createTestServices(workspace = "file:///test/workspace") {
20
20
  let documentIndex = 1;
21
21
  const addDocument = async (input, uri) => {
22
22
  if (!isInitialized) {
23
+ isInitialized = true;
23
24
  await services.shared.workspace.WorkspaceLock.write(async (_cancelToken) => {
24
- if (isInitialized) {
25
- return;
26
- }
27
- isInitialized = true;
28
25
  services.shared.workspace.WorkspaceManager.initialize({
29
26
  capabilities: {},
30
27
  processId: null,
@@ -88,7 +85,6 @@ export function createTestServices(workspace = "file:///test/workspace") {
88
85
  await services.shared.workspace.WorkspaceLock.write(async (cancelToken) => {
89
86
  await documentBuilder.build(docs, { validation: true }, cancelToken);
90
87
  });
91
- await documentBuilder.waitUntil(DocumentState.Validated);
92
88
  const diagnostics = docs.flatMap((doc) => doc.diagnostics ?? []);
93
89
  const warnings = diagnostics.flatMap((d) => d.severity === DiagnosticSeverity.Warning ? d.message : []);
94
90
  const errors = diagnostics.flatMap((d) => d.severity === DiagnosticSeverity.Error ? d.message : []);
@@ -99,13 +95,17 @@ export function createTestServices(workspace = "file:///test/workspace") {
99
95
  };
100
96
  };
101
97
  const buildModel = async () => {
102
- await validateAll();
98
+ if (langiumDocuments.all.some((doc) => doc.state < DocumentState.Validated)) {
99
+ await validateAll();
100
+ }
103
101
  const likec4model = await modelBuilder.buildLikeC4Model();
104
102
  if (!likec4model) throw new Error("No model found");
105
103
  return likec4model.$model;
106
104
  };
107
105
  const buildLikeC4Model = async () => {
108
- await validateAll();
106
+ if (langiumDocuments.all.some((doc) => doc.state < DocumentState.Validated)) {
107
+ await validateAll();
108
+ }
109
109
  const likec4model = await modelBuilder.buildLikeC4Model();
110
110
  if (!likec4model) throw new Error("No model found");
111
111
  return likec4model;