@likec4/language-server 1.42.1 → 1.43.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/dist/ast.d.ts +5 -5
- package/dist/bundled.mjs +3510 -3498
- package/dist/generated/ast.d.ts +19 -3
- package/dist/generated/ast.mjs +35 -3
- package/dist/generated/grammar.mjs +1 -1
- package/dist/lsp/SemanticTokenProvider.d.ts +5 -0
- package/dist/lsp/SemanticTokenProvider.mjs +249 -323
- package/dist/mcp/tools/read-deployment.mjs +1 -1
- package/dist/mcp/tools/read-element.mjs +1 -1
- package/dist/mcp/tools/search-element.mjs +2 -2
- package/dist/model/builder/MergedExtends.d.ts +2 -1
- package/dist/model/builder/MergedExtends.mjs +17 -8
- package/dist/model/model-parser.d.ts +9 -9
- package/dist/model/parser/Base.d.ts +1 -1
- package/dist/model/parser/Base.mjs +40 -6
- package/dist/model/parser/DeploymentModelParser.d.ts +1 -1
- package/dist/model/parser/DeploymentViewParser.d.ts +1 -1
- package/dist/model/parser/FqnRefParser.d.ts +1 -1
- package/dist/model/parser/GlobalsParser.d.ts +1 -1
- package/dist/model/parser/ImportsParser.d.ts +1 -1
- package/dist/model/parser/ModelParser.d.ts +1 -1
- package/dist/model/parser/PredicatesParser.d.ts +1 -1
- package/dist/model/parser/SpecificationParser.d.ts +1 -1
- package/dist/model/parser/ViewsParser.d.ts +1 -1
- package/dist/validation/index.d.ts +1 -1
- package/package.json +16 -16
|
@@ -5,6 +5,21 @@ import {
|
|
|
5
5
|
} from "remeda";
|
|
6
6
|
export class MergedExtends {
|
|
7
7
|
mergedData = /* @__PURE__ */ new Map();
|
|
8
|
+
mergeMetadata(existing, incoming) {
|
|
9
|
+
const result = { ...existing };
|
|
10
|
+
for (const [key, incomingValue] of Object.entries(incoming)) {
|
|
11
|
+
const existingValue = result[key];
|
|
12
|
+
if (existingValue === void 0) {
|
|
13
|
+
result[key] = incomingValue;
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const existingArray = Array.isArray(existingValue) ? existingValue : [existingValue];
|
|
17
|
+
const incomingArray = Array.isArray(incomingValue) ? incomingValue : [incomingValue];
|
|
18
|
+
const merged = unique([...existingArray, ...incomingArray]);
|
|
19
|
+
result[key] = merged.length === 1 ? merged[0] : merged;
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
8
23
|
merge(parsedExtends) {
|
|
9
24
|
for (const parsedExtend of parsedExtends) {
|
|
10
25
|
const { id, links, tags, metadata } = parsedExtend;
|
|
@@ -23,10 +38,7 @@ export class MergedExtends {
|
|
|
23
38
|
]);
|
|
24
39
|
}
|
|
25
40
|
if (metadata) {
|
|
26
|
-
existing.metadata =
|
|
27
|
-
...existing.metadata,
|
|
28
|
-
...metadata
|
|
29
|
-
};
|
|
41
|
+
existing.metadata = this.mergeMetadata(existing.metadata, metadata);
|
|
30
42
|
}
|
|
31
43
|
this.mergedData.set(id, existing);
|
|
32
44
|
}
|
|
@@ -52,10 +64,7 @@ export class MergedExtends {
|
|
|
52
64
|
}
|
|
53
65
|
let metadata = extendData.metadata;
|
|
54
66
|
if (el.metadata) {
|
|
55
|
-
metadata =
|
|
56
|
-
...el.metadata,
|
|
57
|
-
...extendData.metadata
|
|
58
|
-
};
|
|
67
|
+
metadata = this.mergeMetadata(el.metadata, extendData.metadata);
|
|
59
68
|
}
|
|
60
69
|
return {
|
|
61
70
|
...el,
|
|
@@ -65,7 +65,7 @@ declare const DocumentParserFromMixins: {
|
|
|
65
65
|
resolveFqn(node: import("../generated/ast").FqnReferenceable): ProjectId;
|
|
66
66
|
getAstNodePath(node: ProjectId): any;
|
|
67
67
|
getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
|
|
68
|
-
[key: string]: string;
|
|
68
|
+
[key: string]: string | string[];
|
|
69
69
|
} | undefined;
|
|
70
70
|
parseMarkdownOrString(markdownOrString: import("../generated/ast").MarkdownOrString | undefined): ProjectId | undefined;
|
|
71
71
|
convertTags<E extends {
|
|
@@ -164,7 +164,7 @@ declare const DocumentParserFromMixins: {
|
|
|
164
164
|
resolveFqn(node: import("../generated/ast").FqnReferenceable): ProjectId;
|
|
165
165
|
getAstNodePath(node: ProjectId): any;
|
|
166
166
|
getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
|
|
167
|
-
[key: string]: string;
|
|
167
|
+
[key: string]: string | string[];
|
|
168
168
|
} | undefined;
|
|
169
169
|
parseMarkdownOrString(markdownOrString: import("../generated/ast").MarkdownOrString | undefined): ProjectId | undefined;
|
|
170
170
|
convertTags<E extends {
|
|
@@ -219,7 +219,7 @@ declare const DocumentParserFromMixins: {
|
|
|
219
219
|
resolveFqn(node: import("../generated/ast").FqnReferenceable): ProjectId;
|
|
220
220
|
getAstNodePath(node: ProjectId): any;
|
|
221
221
|
getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
|
|
222
|
-
[key: string]: string;
|
|
222
|
+
[key: string]: string | string[];
|
|
223
223
|
} | undefined;
|
|
224
224
|
parseMarkdownOrString(markdownOrString: import("../generated/ast").MarkdownOrString | undefined): ProjectId | undefined;
|
|
225
225
|
convertTags<E extends {
|
|
@@ -289,7 +289,7 @@ declare const DocumentParserFromMixins: {
|
|
|
289
289
|
resolveFqn(node: import("../generated/ast").FqnReferenceable): ProjectId;
|
|
290
290
|
getAstNodePath(node: ProjectId): any;
|
|
291
291
|
getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
|
|
292
|
-
[key: string]: string;
|
|
292
|
+
[key: string]: string | string[];
|
|
293
293
|
} | undefined;
|
|
294
294
|
parseMarkdownOrString(markdownOrString: import("../generated/ast").MarkdownOrString | undefined): ProjectId | undefined;
|
|
295
295
|
convertTags<E extends {
|
|
@@ -352,7 +352,7 @@ declare const DocumentParserFromMixins: {
|
|
|
352
352
|
resolveFqn(node: import("../generated/ast").FqnReferenceable): ProjectId;
|
|
353
353
|
getAstNodePath(node: ProjectId): any;
|
|
354
354
|
getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
|
|
355
|
-
[key: string]: string;
|
|
355
|
+
[key: string]: string | string[];
|
|
356
356
|
} | undefined;
|
|
357
357
|
parseMarkdownOrString(markdownOrString: import("../generated/ast").MarkdownOrString | undefined): ProjectId | undefined;
|
|
358
358
|
convertTags<E extends {
|
|
@@ -423,7 +423,7 @@ declare const DocumentParserFromMixins: {
|
|
|
423
423
|
resolveFqn(node: import("../generated/ast").FqnReferenceable): ProjectId;
|
|
424
424
|
getAstNodePath(node: ProjectId): any;
|
|
425
425
|
getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
|
|
426
|
-
[key: string]: string;
|
|
426
|
+
[key: string]: string | string[];
|
|
427
427
|
} | undefined;
|
|
428
428
|
parseMarkdownOrString(markdownOrString: import("../generated/ast").MarkdownOrString | undefined): ProjectId | undefined;
|
|
429
429
|
convertTags<E extends {
|
|
@@ -487,7 +487,7 @@ declare const DocumentParserFromMixins: {
|
|
|
487
487
|
resolveFqn(node: import("../generated/ast").FqnReferenceable): ProjectId;
|
|
488
488
|
getAstNodePath(node: ProjectId): any;
|
|
489
489
|
getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
|
|
490
|
-
[key: string]: string;
|
|
490
|
+
[key: string]: string | string[];
|
|
491
491
|
} | undefined;
|
|
492
492
|
parseMarkdownOrString(markdownOrString: import("../generated/ast").MarkdownOrString | undefined): ProjectId | undefined;
|
|
493
493
|
convertTags<E extends {
|
|
@@ -530,7 +530,7 @@ declare const DocumentParserFromMixins: {
|
|
|
530
530
|
resolveFqn(node: import("../generated/ast").FqnReferenceable): ProjectId;
|
|
531
531
|
getAstNodePath(node: ProjectId): any;
|
|
532
532
|
getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
|
|
533
|
-
[key: string]: string;
|
|
533
|
+
[key: string]: string | string[];
|
|
534
534
|
} | undefined;
|
|
535
535
|
parseMarkdownOrString(markdownOrString: import("../generated/ast").MarkdownOrString | undefined): ProjectId | undefined;
|
|
536
536
|
convertTags<E extends {
|
|
@@ -589,7 +589,7 @@ declare const DocumentParserFromMixins: {
|
|
|
589
589
|
resolveFqn(node: import("../generated/ast").FqnReferenceable): ProjectId;
|
|
590
590
|
getAstNodePath(node: ProjectId): any;
|
|
591
591
|
getMetadata(metadataAstNode: import("../generated/ast").MetadataProperty | undefined): {
|
|
592
|
-
[key: string]: string;
|
|
592
|
+
[key: string]: string | string[];
|
|
593
593
|
} | undefined;
|
|
594
594
|
parseMarkdownOrString(markdownOrString: import("../generated/ast").MarkdownOrString | undefined): ProjectId | undefined;
|
|
595
595
|
convertTags<E extends {
|
|
@@ -27,7 +27,7 @@ export declare class BaseParser {
|
|
|
27
27
|
resolveFqn(node: ast.FqnReferenceable): c4.Fqn;
|
|
28
28
|
getAstNodePath(node: AstNode): any;
|
|
29
29
|
getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
|
|
30
|
-
[key: string]: string;
|
|
30
|
+
[key: string]: string | string[];
|
|
31
31
|
} | undefined;
|
|
32
32
|
parseMarkdownOrString(markdownOrString: ast.MarkdownOrString | undefined): c4.MarkdownOrString | undefined;
|
|
33
33
|
convertTags<E extends {
|
|
@@ -8,14 +8,14 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
filter,
|
|
10
10
|
flatMap,
|
|
11
|
-
|
|
11
|
+
groupBy,
|
|
12
12
|
isArray,
|
|
13
13
|
isBoolean,
|
|
14
14
|
isEmpty,
|
|
15
15
|
isNumber,
|
|
16
16
|
isString,
|
|
17
17
|
isTruthy,
|
|
18
|
-
|
|
18
|
+
mapValues,
|
|
19
19
|
pipe,
|
|
20
20
|
unique
|
|
21
21
|
} from "remeda";
|
|
@@ -107,13 +107,47 @@ export class BaseParser {
|
|
|
107
107
|
if (!metadataAstNode || !this.isValid(metadataAstNode) || isEmpty(metadataAstNode.props)) {
|
|
108
108
|
return void 0;
|
|
109
109
|
}
|
|
110
|
-
const
|
|
110
|
+
const extractValues = (value) => {
|
|
111
|
+
if (ast.isMarkdownOrString(value)) {
|
|
112
|
+
const mdOrStr = removeIndent(value);
|
|
113
|
+
if (!mdOrStr) return [];
|
|
114
|
+
if (typeof mdOrStr === "string") {
|
|
115
|
+
return isTruthy(mdOrStr) ? [mdOrStr] : [];
|
|
116
|
+
} else {
|
|
117
|
+
const strValue = mdOrStr.md || mdOrStr.txt;
|
|
118
|
+
return isTruthy(strValue) ? [strValue] : [];
|
|
119
|
+
}
|
|
120
|
+
} else if (ast.isMetadataArray(value)) {
|
|
121
|
+
return value.values.map((v) => removeIndent(v)).map((v) => {
|
|
122
|
+
if (typeof v === "string") {
|
|
123
|
+
return v;
|
|
124
|
+
} else {
|
|
125
|
+
return v.md || v.txt;
|
|
126
|
+
}
|
|
127
|
+
}).filter(isTruthy);
|
|
128
|
+
}
|
|
129
|
+
return [];
|
|
130
|
+
};
|
|
131
|
+
const keyValuePairs = pipe(
|
|
111
132
|
metadataAstNode.props,
|
|
112
|
-
|
|
113
|
-
map(([key, value]) => [key, value.md || value.txt]),
|
|
133
|
+
flatMap((p) => extractValues(p.value).map((v) => [p.key, v])),
|
|
114
134
|
filter(([_, value]) => isTruthy(value))
|
|
115
135
|
);
|
|
116
|
-
|
|
136
|
+
if (isEmpty(keyValuePairs)) {
|
|
137
|
+
return void 0;
|
|
138
|
+
}
|
|
139
|
+
const groupedData = pipe(
|
|
140
|
+
keyValuePairs,
|
|
141
|
+
groupBy(([key]) => key),
|
|
142
|
+
mapValues((pairs) => pairs.map(([_, value]) => value))
|
|
143
|
+
);
|
|
144
|
+
const data = {};
|
|
145
|
+
for (const [key, values] of Object.entries(groupedData)) {
|
|
146
|
+
if (values && values.length > 0) {
|
|
147
|
+
data[key] = values.length === 1 ? values[0] : values;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return isEmpty(data) ? void 0 : data;
|
|
117
151
|
}
|
|
118
152
|
parseMarkdownOrString(markdownOrString) {
|
|
119
153
|
if (ast.isMarkdownOrString(markdownOrString)) {
|
|
@@ -35,7 +35,7 @@ export declare function DeploymentModelParser<TBase extends WithExpressionV2>(B:
|
|
|
35
35
|
resolveFqn(node: ast.FqnReferenceable): c4.Fqn;
|
|
36
36
|
getAstNodePath(node: c4): any;
|
|
37
37
|
getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
|
|
38
|
-
[key: string]: string;
|
|
38
|
+
[key: string]: string | string[];
|
|
39
39
|
} | undefined;
|
|
40
40
|
parseMarkdownOrString(markdownOrString: ast.MarkdownOrString | undefined): c4.MarkdownOrString | undefined;
|
|
41
41
|
convertTags<E extends {
|
|
@@ -33,7 +33,7 @@ export declare function DeploymentViewParser<TBase extends WithExpressionV2 & Wi
|
|
|
33
33
|
resolveFqn(node: ast.FqnReferenceable): c4.Fqn;
|
|
34
34
|
getAstNodePath(node: c4): any;
|
|
35
35
|
getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
|
|
36
|
-
[key: string]: string;
|
|
36
|
+
[key: string]: string | string[];
|
|
37
37
|
} | undefined;
|
|
38
38
|
parseMarkdownOrString(markdownOrString: ast.MarkdownOrString | undefined): c4.MarkdownOrString | undefined;
|
|
39
39
|
convertTags<E extends {
|
|
@@ -30,7 +30,7 @@ export declare function ExpressionV2Parser<TBase extends Base>(B: TBase): {
|
|
|
30
30
|
resolveFqn(node: ast.FqnReferenceable): c4.Fqn;
|
|
31
31
|
getAstNodePath(node: AstNode): any;
|
|
32
32
|
getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
|
|
33
|
-
[key: string]: string;
|
|
33
|
+
[key: string]: string | string[];
|
|
34
34
|
} | undefined;
|
|
35
35
|
parseMarkdownOrString(markdownOrString: ast.MarkdownOrString | undefined): c4.MarkdownOrString | undefined;
|
|
36
36
|
convertTags<E extends {
|
|
@@ -62,7 +62,7 @@ export declare function GlobalsParser<TBase extends WithViewsParser>(B: TBase):
|
|
|
62
62
|
resolveFqn(node: ast.FqnReferenceable): c4.Fqn;
|
|
63
63
|
getAstNodePath(node: c4): any;
|
|
64
64
|
getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
|
|
65
|
-
[key: string]: string;
|
|
65
|
+
[key: string]: string | string[];
|
|
66
66
|
} | undefined;
|
|
67
67
|
parseMarkdownOrString(markdownOrString: ast.MarkdownOrString | undefined): c4.MarkdownOrString | undefined;
|
|
68
68
|
convertTags<E extends {
|
|
@@ -11,7 +11,7 @@ export declare function ImportsParser<TBase extends Base>(B: TBase): {
|
|
|
11
11
|
resolveFqn(node: ast.FqnReferenceable): ProjectId;
|
|
12
12
|
getAstNodePath(node: ProjectId): any;
|
|
13
13
|
getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
|
|
14
|
-
[key: string]: string;
|
|
14
|
+
[key: string]: string | string[];
|
|
15
15
|
} | undefined;
|
|
16
16
|
parseMarkdownOrString(markdownOrString: ast.MarkdownOrString | undefined): ProjectId | undefined;
|
|
17
17
|
convertTags<E extends {
|
|
@@ -34,7 +34,7 @@ export declare function ModelParser<TBase extends WithExpressionV2>(B: TBase): {
|
|
|
34
34
|
resolveFqn(node: ast.FqnReferenceable): c4.Fqn;
|
|
35
35
|
getAstNodePath(node: c4): any;
|
|
36
36
|
getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
|
|
37
|
-
[key: string]: string;
|
|
37
|
+
[key: string]: string | string[];
|
|
38
38
|
} | undefined;
|
|
39
39
|
parseMarkdownOrString(markdownOrString: ast.MarkdownOrString | undefined): c4.MarkdownOrString | undefined;
|
|
40
40
|
convertTags<E extends {
|
|
@@ -39,7 +39,7 @@ export declare function PredicatesParser<TBase extends WithExpressionV2>(B: TBas
|
|
|
39
39
|
resolveFqn(node: ast.FqnReferenceable): c4.Fqn;
|
|
40
40
|
getAstNodePath(node: c4): any;
|
|
41
41
|
getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
|
|
42
|
-
[key: string]: string;
|
|
42
|
+
[key: string]: string | string[];
|
|
43
43
|
} | undefined;
|
|
44
44
|
parseMarkdownOrString(markdownOrString: ast.MarkdownOrString | undefined): c4.MarkdownOrString | undefined;
|
|
45
45
|
convertTags<E extends {
|
|
@@ -17,7 +17,7 @@ export declare function SpecificationParser<TBase extends Base>(B: TBase): {
|
|
|
17
17
|
resolveFqn(node: ast.FqnReferenceable): c4.Fqn;
|
|
18
18
|
getAstNodePath(node: c4): any;
|
|
19
19
|
getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
|
|
20
|
-
[key: string]: string;
|
|
20
|
+
[key: string]: string | string[];
|
|
21
21
|
} | undefined;
|
|
22
22
|
parseMarkdownOrString(markdownOrString: ast.MarkdownOrString | undefined): c4.MarkdownOrString | undefined;
|
|
23
23
|
convertTags<E extends {
|
|
@@ -64,7 +64,7 @@ export declare function ViewsParser<TBase extends WithPredicates & WithDeploymen
|
|
|
64
64
|
resolveFqn(node: ast.FqnReferenceable): c4.Fqn;
|
|
65
65
|
getAstNodePath(node: c4): any;
|
|
66
66
|
getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
|
|
67
|
-
[key: string]: string;
|
|
67
|
+
[key: string]: string | string[];
|
|
68
68
|
} | undefined;
|
|
69
69
|
parseMarkdownOrString(markdownOrString: ast.MarkdownOrString | undefined): c4.MarkdownOrString | undefined;
|
|
70
70
|
convertTags<E extends {
|
|
@@ -4,7 +4,7 @@ import type { LikeC4Services } from '../module';
|
|
|
4
4
|
export { LikeC4DocumentValidator } from './DocumentValidator';
|
|
5
5
|
type Guard<N extends AstNode> = (n: AstNode) => n is N;
|
|
6
6
|
type Guarded<G> = G extends Guard<infer N> ? N : never;
|
|
7
|
-
declare const isValidatableAstNode: (n: AstNode) => n is ast.
|
|
7
|
+
declare const isValidatableAstNode: (n: AstNode) => n is ast.DynamicViewDisplayVariantProperty | ast.LinkProperty | ast.ViewStringProperty | ast.ElementStringProperty | ast.ElementStyleProperty | ast.IconProperty | ast.MetadataBody | ast.RelationStringProperty | ast.MetadataAttribute | ast.NotationProperty | ast.NotesProperty | ast.SpecificationElementStringProperty | ast.SpecificationRelationshipStringProperty | ast.HexColor | ast.RGBAColor | ast.DeployedInstance | ast.DeploymentNode | ast.DeploymentViewRulePredicate | ast.DeploymentViewRuleStyle | ast.ViewRuleAutoLayout | ast.DynamicViewGlobalPredicateRef | ast.DynamicViewIncludePredicate | ast.ViewRuleGlobalStyle | ast.ViewRuleStyle | ast.DynamicStepChain | ast.DynamicStepSingle | ast.ElementKindExpression | ast.ElementTagExpression | ast.FqnRefExpr | ast.WildcardExpression | ast.FqnExprWhere | ast.FqnExprWith | ast.DirectedRelationExpr | ast.InOutRelationExpr | ast.IncomingRelationExpr | ast.OutgoingRelationExpr | ast.RelationExprWhere | ast.RelationExprWith | ast.Element | ast.ExtendDeployment | ast.ExtendElement | ast.Imported | ast.DeploymentView | ast.DynamicView | ast.ElementView | ast.ArrowProperty | ast.ColorProperty | ast.LineProperty | ast.PaddingSizeProperty | ast.ShapeSizeProperty | ast.TextSizeProperty | ast.BorderProperty | ast.MultipleProperty | ast.OpacityProperty | ast.ShapeProperty | ast.ViewRuleGlobalPredicateRef | ast.ViewRuleGroup | ast.ViewRulePredicate | ast.DynamicViewParallelSteps | ast.ElementRef | ast.SpecificationRelationshipKind | ast.GlobalStyle | ast.SpecificationColor | ast.NavigateToProperty | ast.DeploymentRelation | ast.Tags | ast.SpecificationDeploymentNodeKind | ast.GlobalDynamicPredicateGroup | ast.Relation | ast.SpecificationElementKind | ast.Globals | ast.GlobalPredicateGroup | ast.GlobalStyleGroup | ast.SpecificationTag | ast.ImportsFromPoject | ast.SpecificationRule;
|
|
8
8
|
type ValidatableAstNode = Guarded<typeof isValidatableAstNode>;
|
|
9
9
|
export declare function checksFromDiagnostics(doc: LikeC4LangiumDocument): {
|
|
10
10
|
isValid: (n: ValidatableAstNode) => boolean;
|
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.
|
|
4
|
+
"version": "1.43.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bugs": "https://github.com/likec4/likec4/issues",
|
|
7
7
|
"homepage": "https://likec4.dev",
|
|
@@ -78,42 +78,42 @@
|
|
|
78
78
|
"dependencies": {
|
|
79
79
|
"@hpcc-js/wasm-graphviz": "1.12.0",
|
|
80
80
|
"bundle-require": "^5.1.0",
|
|
81
|
-
"esbuild": "0.25.
|
|
81
|
+
"esbuild": "0.25.11"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
|
-
"@hono/node-server": "^1.19.
|
|
84
|
+
"@hono/node-server": "^1.19.5",
|
|
85
85
|
"@modelcontextprotocol/sdk": "^1.17.5",
|
|
86
86
|
"@msgpack/msgpack": "^3.1.2",
|
|
87
87
|
"@smithy/util-base64": "^4.0.0",
|
|
88
88
|
"@types/natural-compare-lite": "^1.4.2",
|
|
89
|
-
"@types/node": "~20.19.
|
|
89
|
+
"@types/node": "~20.19.22",
|
|
90
90
|
"@types/picomatch": "^4.0.2",
|
|
91
91
|
"@types/vscode": "^1.84.0",
|
|
92
92
|
"@types/which": "^3.0.4",
|
|
93
93
|
"chokidar": "^4.0.3",
|
|
94
94
|
"defu": "^6.1.4",
|
|
95
95
|
"esm-env": "^1.2.2",
|
|
96
|
-
"fast-equals": "^5.
|
|
96
|
+
"fast-equals": "^5.3.2",
|
|
97
97
|
"fdir": "6.4.0",
|
|
98
98
|
"fetch-to-node": "^2.1.0",
|
|
99
|
-
"hono": "^4.
|
|
99
|
+
"hono": "^4.10.1",
|
|
100
100
|
"indent-string": "^5.0.0",
|
|
101
101
|
"json5": "^2.2.3",
|
|
102
102
|
"langium": "3.5.0",
|
|
103
103
|
"langium-cli": "3.5.2",
|
|
104
104
|
"natural-compare-lite": "^1.4.0",
|
|
105
|
-
"oxlint": "1.
|
|
105
|
+
"oxlint": "1.24.0",
|
|
106
106
|
"p-debounce": "4.0.0",
|
|
107
107
|
"p-queue": "8.1.1",
|
|
108
108
|
"p-timeout": "6.1.4",
|
|
109
109
|
"picomatch": "^4.0.3",
|
|
110
110
|
"pretty-ms": "^9.2.0",
|
|
111
|
-
"remeda": "^2.
|
|
112
|
-
"strip-indent": "^4.
|
|
111
|
+
"remeda": "^2.32.0",
|
|
112
|
+
"strip-indent": "^4.1.1",
|
|
113
113
|
"tsx": "4.20.6",
|
|
114
114
|
"turbo": "2.5.8",
|
|
115
115
|
"type-fest": "^4.41.0",
|
|
116
|
-
"typescript": "5.9.
|
|
116
|
+
"typescript": "5.9.3",
|
|
117
117
|
"ufo": "1.6.1",
|
|
118
118
|
"unbuild": "3.5.0",
|
|
119
119
|
"vitest": "3.2.4",
|
|
@@ -124,12 +124,12 @@
|
|
|
124
124
|
"vscode-uri": "3.1.0",
|
|
125
125
|
"which": "^5.0.0",
|
|
126
126
|
"zod": "^3.25.76",
|
|
127
|
-
"@likec4/core": "1.
|
|
128
|
-
"@likec4/config": "1.
|
|
129
|
-
"@likec4/icons": "1.
|
|
130
|
-
"@likec4/
|
|
131
|
-
"@likec4/
|
|
132
|
-
"@likec4/tsconfig": "1.
|
|
127
|
+
"@likec4/core": "1.43.0",
|
|
128
|
+
"@likec4/config": "1.43.0",
|
|
129
|
+
"@likec4/icons": "1.43.0",
|
|
130
|
+
"@likec4/layouts": "1.43.0",
|
|
131
|
+
"@likec4/log": "1.43.0",
|
|
132
|
+
"@likec4/tsconfig": "1.43.0",
|
|
133
133
|
"@likec4/devops": "1.42.0"
|
|
134
134
|
},
|
|
135
135
|
"scripts": {
|