likec4 1.48.0 → 1.49.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.
Files changed (113) hide show
  1. package/README.md +11 -1
  2. package/__app__/src/likec4.js +5595 -4127
  3. package/__app__/src/routes/index.js +3 -153
  4. package/__app__/src/routes/projects.js +21 -1087
  5. package/__app__/src/routes/single.js +1221 -16
  6. package/__app__/src/style.css +1 -1
  7. package/__app__/src/vendors.js +3507 -894
  8. package/__app__/src/webcomponent.js +1 -1
  9. package/config/schema.json +155 -143
  10. package/dist/THIRD-PARTY-LICENSES.md +1739 -0
  11. package/dist/_chunks/GraphvizBinaryAdapter.mjs +72 -0
  12. package/dist/_chunks/filenames.mjs +14 -0
  13. package/dist/_chunks/index.d.mts +224 -129
  14. package/dist/_chunks/index2.d.mts +2033 -1908
  15. package/dist/_chunks/libs/@chevrotain/gast.mjs +1 -3969
  16. package/dist/_chunks/libs/@chevrotain/regexp-to-ast.mjs +9 -785
  17. package/dist/_chunks/libs/@chevrotain/utils.mjs +1 -37
  18. package/dist/_chunks/libs/@hono/mcp.mjs +34 -0
  19. package/dist/_chunks/libs/@hono/node-server.mjs +1 -436
  20. package/dist/_chunks/libs/@logtape/logtape.d.mts +741 -0
  21. package/dist/_chunks/libs/@logtape/logtape.mjs +6 -1354
  22. package/dist/_chunks/libs/@lume/kiwi.mjs +1 -1355
  23. package/dist/_chunks/libs/@modelcontextprotocol/sdk.d.mts +14 -14
  24. package/dist/_chunks/libs/@modelcontextprotocol/sdk.mjs +12 -25105
  25. package/dist/_chunks/libs/@msgpack/msgpack.mjs +1 -1503
  26. package/dist/_chunks/libs/@nanostores/react.mjs +1 -30
  27. package/dist/_chunks/libs/@smithy/util-base64.mjs +1 -100
  28. package/dist/_chunks/libs/ajv.mjs +1 -777
  29. package/dist/_chunks/libs/atomically.mjs +1 -362
  30. package/dist/_chunks/libs/birpc.mjs +1 -201
  31. package/dist/_chunks/libs/chevrotain-allstar.mjs +2 -850
  32. package/dist/_chunks/libs/chevrotain.mjs +55 -6229
  33. package/dist/_chunks/libs/conf.mjs +1 -2258
  34. package/dist/_chunks/libs/defu.mjs +1 -42
  35. package/dist/_chunks/libs/esm-env.mjs +1 -5
  36. package/dist/_chunks/libs/eventemitter3.mjs +1 -243
  37. package/dist/_chunks/libs/fast-equals.mjs +1 -446
  38. package/dist/_chunks/libs/find-up-simple.mjs +1 -24
  39. package/dist/_chunks/libs/get-port.mjs +1 -107
  40. package/dist/_chunks/libs/is-docker.mjs +1 -26
  41. package/dist/_chunks/libs/is-error-instance.mjs +1 -26
  42. package/dist/_chunks/libs/is-inside-container.mjs +1 -20
  43. package/dist/_chunks/libs/is-plain-obj.mjs +1 -9
  44. package/dist/_chunks/libs/isexe.mjs +1 -127
  45. package/dist/_chunks/libs/json5.mjs +14 -959
  46. package/dist/_chunks/libs/khroma.mjs +1 -605
  47. package/dist/_chunks/libs/ky.mjs +2 -807
  48. package/dist/_chunks/libs/langium.d.mts +2880 -2844
  49. package/dist/_chunks/libs/langium.mjs +32 -20351
  50. package/dist/_chunks/libs/merge-error-cause.mjs +2 -746
  51. package/dist/_chunks/libs/nanostores.mjs +1 -198
  52. package/dist/_chunks/libs/p-limit.mjs +1 -120
  53. package/dist/_chunks/libs/p-queue.mjs +1 -449
  54. package/dist/_chunks/libs/package-manager-detector.mjs +1 -559
  55. package/dist/_chunks/libs/package-up.mjs +1 -10
  56. package/dist/_chunks/libs/parse-ms.mjs +1 -36
  57. package/dist/_chunks/libs/pathe.mjs +1 -0
  58. package/dist/_chunks/libs/picomatch.mjs +1 -1673
  59. package/dist/_chunks/libs/pretty-ms.mjs +1 -80
  60. package/dist/_chunks/libs/remeda.mjs +1 -690
  61. package/dist/_chunks/libs/safe-stringify.mjs +1 -21
  62. package/dist/_chunks/libs/strip-indent.mjs +1 -15
  63. package/dist/_chunks/libs/tinyrainbow.mjs +1 -88
  64. package/dist/_chunks/libs/ts-graphviz.mjs +4 -725
  65. package/dist/_chunks/libs/ufo.mjs +1 -240
  66. package/dist/_chunks/libs/which.mjs +1 -84
  67. package/dist/_chunks/libs/word-wrap.mjs +12 -43
  68. package/dist/_chunks/node.mjs +481 -0
  69. package/dist/_chunks/plugin.mjs +98 -772
  70. package/dist/_chunks/rolldown-runtime.mjs +1 -48
  71. package/dist/_chunks/sequence-view.mjs +1 -575
  72. package/dist/cli/index.mjs +127 -1846
  73. package/dist/config/index.d.mts +2 -2
  74. package/dist/config/index.mjs +1 -6
  75. package/dist/index.d.mts +148 -7
  76. package/dist/index.mjs +1 -21
  77. package/dist/model/builder.mjs +1 -3
  78. package/dist/model/index.d.mts +57 -3
  79. package/dist/model/index.mjs +1 -5
  80. package/dist/vite-plugin/index.d.mts +4 -3
  81. package/dist/vite-plugin/index.mjs +1 -22
  82. package/dist/vite-plugin/internal.d.mts +5 -5
  83. package/dist/vite-plugin/internal.mjs +1 -68
  84. package/package.json +60 -41
  85. package/react/{index.d.ts → index.d.mts} +112 -70
  86. package/react/{index.js → index.mjs} +21361 -22064
  87. package/react/package.json +2 -5
  88. package/vite-plugin-modules.d.ts +5 -5
  89. package/dist/_chunks/LikeC4.d.mts +0 -121
  90. package/dist/_chunks/LikeC4.mjs +0 -202
  91. package/dist/_chunks/config-app.prod.d.mts +0 -18
  92. package/dist/_chunks/config-app.prod.mjs +0 -188
  93. package/dist/_chunks/config-webcomponent.prod.mjs +0 -71
  94. package/dist/_chunks/define-config.mjs +0 -409
  95. package/dist/_chunks/index3.d.mts +0 -60
  96. package/dist/_chunks/index4.d.mts +0 -1
  97. package/dist/_chunks/libs/@smithy/is-array-buffer.mjs +0 -10
  98. package/dist/_chunks/libs/hono.mjs +0 -1829
  99. package/dist/_chunks/libs/nanoid.mjs +0 -29
  100. package/dist/_chunks/model.mjs +0 -12
  101. package/dist/_chunks/module.d.mts +0 -71
  102. package/dist/_chunks/module.mjs +0 -18657
  103. package/dist/_chunks/vite-build.mjs +0 -69
  104. package/dist/_chunks/vite-dev.mjs +0 -79
  105. package/dist/_chunks/vite-preview.mjs +0 -27
  106. package/dist/language/module.d.mts +0 -5
  107. package/dist/language/module.mjs +0 -20
  108. package/dist/vite/vite-build.d.mts +0 -26
  109. package/dist/vite/vite-build.mjs +0 -27
  110. package/dist/vite/vite-dev.d.mts +0 -34
  111. package/dist/vite/vite-dev.mjs +0 -29
  112. package/dist/vite/vite-preview.d.mts +0 -20
  113. package/dist/vite/vite-preview.mjs +0 -26
@@ -1,337 +1,1011 @@
1
1
  import { n as ServerOptions, t as McpServer } from "./libs/@modelcontextprotocol/sdk.mjs";
2
2
  import { a as LikeC4ProjectConfig, i as IncludeConfig, o as LikeC4ProjectConfigInput } from "./index.mjs";
3
- import { $ as DefaultLangiumDocuments, A as NotificationType, B as Scope, C as CodeActionParams, Ct as WorkspaceFolder, D as SemanticTokensDeltaParams, E as DocumentSymbolParams, F as DefaultScopeComputation, G as WorkspaceCache, H as DefaultIndexManager, I as DefaultValueConverter, J as AstNode, K as AsyncDisposable, L as ValueType, M as DefaultDocumentValidator, N as ValidationOptions, O as SemanticTokensParams, P as DiagnosticInfo, Q as ReferenceInfo, R as MaybePromise, S as BuildOptions, St as TextEdit, T as DocumentLinkParams, Tt as URI, U as ReferenceDescription, V as DocumentationProvider, W as DefaultNameProvider, X as CstNode, Y as AstNodeDescription, Z as Reference, _ as CodeLensProvider, _t as Location, a as LangiumServices, at as FileSystemNode, b as DefaultWorkspaceManager, bt as SemanticTokensDelta, c as AbstractSemanticTokenProvider, ct as CodeLens, d as AbstractFormatter, dt as Diagnostic, et as LangiumDocument, f as FormattingRegion, ft as DocumentHighlight, g as DefaultDocumentHighlightProvider, gt as Hover, h as DocumentLinkProvider, ht as FormattingOptions, i as NextFeature, it as Stream, j as RequestType, k as SemanticTokensRangeParams, l as SemanticTokenAcceptor, lt as Command, m as NodeKindProvider, mt as DocumentSymbol, n as CompletionContext, nt as PrecomputedScopes, o as LangiumSharedServices, ot as FileSystemProvider, p as DocumentSymbolProvider, pt as DocumentLink, q as Disposable$1, r as DefaultCompletionProvider, rt as CancellationToken$1, s as DefaultWorkspaceSymbolProvider, st as CodeAction, t as CompletionAcceptor, tt as LangiumDocumentFactory, u as AstNodeHoverProvider, ut as CompletionItemKind, v as CodeActionProvider, vt as Range, w as CodeLensParams, wt as Keyword, x as FileSelector, xt as SymbolKind, yt as SemanticTokens, z as DefaultScopeProvider } from "./libs/langium.mjs";
3
+ import { $ as PrecomputedScopes, A as ValidationOptions, B as ReferenceDescription, C as CodeLensParams, Ct as TextEdit, D as SemanticTokensParams, E as SemanticTokensDeltaParams, F as MaybePromise, G as AstNode, H as WorkspaceCache, I as DefaultScopeProvider, J as Reference, K as AstNodeDescription, L as Scope, M as DefaultScopeComputation, N as DefaultValueConverter, O as SemanticTokensRangeParams, P as ValueType, Q as LangiumDocumentFactory, R as JSDocDocumentationProvider, S as CodeActionParams, St as SymbolKind, T as DocumentSymbolParams, U as AsyncDisposable, V as DefaultNameProvider, W as Disposable$1, X as DefaultLangiumDocuments, Y as ReferenceInfo, Z as LangiumDocument, _ as CodeLensProvider, _t as Hover, a as LangiumServices, at as CancellationToken$1, b as FileSelector, bt as SemanticTokens, c as AbstractSemanticTokenProvider, ct as CodeAction, d as AbstractFormatter, dt as CompletionItemKind, et as Stream, f as FormattingRegion, ft as Diagnostic, g as DefaultDocumentHighlightProvider, gt as FormattingOptions, h as DocumentLinkProvider, ht as DocumentSymbol, i as NextFeature, it as URI, j as DiagnosticInfo, k as DefaultDocumentValidator, l as SemanticTokenAcceptor, lt as CodeLens, m as NodeKindProvider, mt as DocumentLink, n as CompletionContext, nt as FileSystemProvider, o as LangiumSharedServices, ot as NotificationType, p as DocumentSymbolProvider, pt as DocumentHighlight, q as CstNode, r as DefaultCompletionProvider, rt as Keyword, s as DefaultWorkspaceSymbolProvider, st as RequestType, t as CompletionAcceptor, tt as FileSystemNode, u as AstNodeHoverProvider, ut as Command, v as CodeActionProvider, vt as Location, w as DocumentLinkParams, wt as WorkspaceFolder, x as BuildOptions, xt as SemanticTokensDelta, y as DefaultWorkspaceManager, yt as Range, z as DefaultIndexManager } from "./libs/langium.mjs";
4
4
  import { t as $keywords } from "./libs/ts-graphviz.mjs";
5
- import { Fqn, LayoutedView, ProjectId, ViewId } from "@likec4/core/types";
5
+ import { ElementModel, LikeC4Model } from "@likec4/core/model";
6
6
  import * as c4 from "@likec4/core";
7
- import { AnyAux, ComputedView, DeploymentFqn, DiagramView, EdgeId, Fqn as Fqn$1, LayoutType, LayoutedView as LayoutedView$1, LikeC4Styles, NonEmptyArray, NonEmptyReadonlyArray, ProjectId as ProjectId$1, RelationId, UnknownComputed, UnknownLayouted, UnknownParsed, ViewChange as ViewChange$1, ViewId as ViewId$1, aux as aux$1 } from "@likec4/core";
7
+ import { AnyAux, ComputedView, DeploymentFqn, DiagramView, EdgeId, Fqn, LayoutType, LayoutedView, LikeC4Styles, NonEmptyArray, NonEmptyReadonlyArray, ProjectId, RelationId, Tag, UnknownComputed, UnknownLayouted, UnknownParsed, ViewChange, ViewId, aux } from "@likec4/core";
8
+ import { LikeC4Styles as LikeC4Styles$1 } from "@likec4/core/styles";
9
+ import { Fqn as Fqn$1, GuardedBy, LayoutedView as LayoutedView$1, ProjectId as ProjectId$1, ViewId as ViewId$1 } from "@likec4/core/types";
8
10
  import { DefaultWeakMap, MultiMap } from "@likec4/core/utils";
9
- import { LikeC4Model } from "@likec4/core/model";
10
11
  import { AdhocViewPredicate, ComputedProjectsView, LayoutedProjectsView } from "@likec4/core/compute-view";
11
12
  import * as type_fest0 from "type-fest";
12
13
  import { ConditionalPick, MergeExclusive, Simplify, Tagged, ValueOf, Writable } from "type-fest";
13
14
 
14
- //#region ../language-server/dist/_chunks/ast.d.mts
15
- type AnyProperty = DynamicViewProperty | ElementProperty | RelationProperty | StringProperty | ViewProperty;
16
- declare const AnyProperty = "AnyProperty";
17
- type ArrowType = 'crow' | 'diamond' | 'dot' | 'none' | 'normal' | 'odiamond' | 'odot' | 'onormal' | 'open' | 'vee';
18
- type BorderStyleValue = 'none' | LineOptions;
19
- type ColorLiteral = HexColor | RGBAColor;
20
- declare const ColorLiteral = "ColorLiteral";
21
- type CustomColorId = 'element' | 'model' | ArrowType | ElementShape | LineOptions | Participant | string;
22
- type DeploymentElement = DeployedInstance | DeploymentNode;
23
- declare const DeploymentElement = "DeploymentElement";
24
- type DeploymentNodeOrElementKind = DeploymentNodeKind | ElementKind;
25
- declare const DeploymentNodeOrElementKind = "DeploymentNodeOrElementKind";
26
- type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout;
27
- declare const DeploymentViewRule = "DeploymentViewRule";
28
- type DynamicViewDisplayVariantValue = 'diagram' | 'sequence';
29
- type DynamicViewProperty = DynamicViewDisplayVariantProperty | ViewProperty;
30
- declare const DynamicViewProperty = "DynamicViewProperty";
31
- type DynamicViewRule = DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleAutoLayout | ViewRuleStyleOrGlobalRef;
32
- declare const DynamicViewRule = "DynamicViewRule";
33
- type DynamicViewStep = DynamicStepChain | DynamicStepSingle;
34
- declare const DynamicViewStep = "DynamicViewStep";
35
- type ElementProperty = ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataProperty;
36
- declare const ElementProperty = "ElementProperty";
37
- type ElementShape = 'browser' | 'bucket' | 'cylinder' | 'document' | 'mobile' | 'person' | 'queue' | 'rectangle' | 'storage';
38
- type ExpressionV2 = FqnExprOrWith | RelationExprOrWith;
39
- declare const ExpressionV2 = "ExpressionV2";
40
- type ExtendElementProperty = LinkProperty | MetadataProperty;
41
- declare const ExtendElementProperty = "ExtendElementProperty";
42
- type ExtendRelationProperty = LinkProperty | MetadataProperty;
43
- declare const ExtendRelationProperty = "ExtendRelationProperty";
44
- type FqnExpr$2 = ElementKindExpression | ElementTagExpression | FqnRefExpr | WildcardExpression;
45
- declare const FqnExpr$2 = "FqnExpr";
46
- type FqnExprOrWhere = FqnExpr$2 | FqnExprWhere;
47
- declare const FqnExprOrWhere = "FqnExprOrWhere";
48
- type FqnExprOrWith = FqnExprOrWhere | FqnExprWith;
49
- declare const FqnExprOrWith = "FqnExprOrWith";
50
- type FqnReferenceable = Element | ExtendDeployment | ExtendElement | Referenceable;
51
- declare const FqnReferenceable = "FqnReferenceable";
52
- type IconId = string;
53
- type IconPositionValue = 'bottom' | 'left' | 'right' | 'top';
54
- type Id = 'deployment' | 'element' | 'group' | 'instance' | 'model' | 'node' | ArrowType | DynamicViewDisplayVariantValue | ElementShape | IconPositionValue | LineOptions | Participant | RankValue | SizeValue | ThemeColor | string;
55
- type LikeC4View = DeploymentView | DynamicView | ElementView;
56
- declare const LikeC4View = "LikeC4View";
57
- type LineOptions = 'dashed' | 'dotted' | 'solid';
58
- type MetadataProperty = MetadataBody;
59
- declare const MetadataProperty = "MetadataProperty";
60
- type MetadataValue = MarkdownOrString | MetadataArray;
61
- declare const MetadataValue = "MetadataValue";
62
- type ModelReferenceable = Element | Imported;
63
- declare const ModelReferenceable = "ModelReferenceable";
64
- type Participant = 'source' | 'target';
65
- type RankValue = 'max' | 'min' | 'same' | 'sink' | 'source';
66
- type Referenceable = DeployedInstance | DeploymentNode | Element | Imported;
67
- declare const Referenceable = "Referenceable";
68
- type RelationExpr$1 = DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr;
69
- declare const RelationExpr$1 = "RelationExpr";
70
- type RelationExprOrWhere = RelationExpr$1 | RelationExprWhere;
71
- declare const RelationExprOrWhere = "RelationExprOrWhere";
72
- type RelationExprOrWith = RelationExprOrWhere | RelationExprWith;
73
- declare const RelationExprOrWith = "RelationExprOrWith";
74
- type RelationProperty = LinkProperty | MetadataProperty | RelationNavigateToProperty | RelationStringProperty | RelationStyleProperty;
75
- declare const RelationProperty = "RelationProperty";
76
- type RelationshipStyleProperty = ArrowProperty | ColorProperty | LineProperty;
77
- declare const RelationshipStyleProperty = "RelationshipStyleProperty";
78
- type SizeProperty = IconSizeProperty | PaddingSizeProperty | ShapeSizeProperty | TextSizeProperty;
79
- declare const SizeProperty = "SizeProperty";
80
- type SizeValue = 'large' | 'lg' | 'md' | 'medium' | 'sm' | 'small' | 'xl' | 'xlarge' | 'xs' | 'xsmall';
81
- type StringProperty = ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty;
82
- declare const StringProperty = "StringProperty";
83
- type StyleProperty = BorderProperty | ColorProperty | IconColorProperty | IconPositionProperty | IconProperty | IconSizeProperty | MultipleProperty | OpacityProperty | PaddingSizeProperty | ShapeProperty | ShapeSizeProperty | TextSizeProperty;
84
- declare const StyleProperty = "StyleProperty";
85
- type ThemeColor = 'amber' | 'blue' | 'gray' | 'green' | 'indigo' | 'muted' | 'primary' | 'red' | 'secondary' | 'sky' | 'slate';
86
- type Uri = string;
87
- type ViewLayoutDirection = 'BottomTop' | 'LeftRight' | 'RightLeft' | 'TopBottom';
88
- type ViewProperty = LinkProperty | ViewStringProperty;
89
- declare const ViewProperty = "ViewProperty";
90
- type ViewRule = ViewRuleAutoLayout | ViewRuleGlobalPredicateRef | ViewRuleGroup | ViewRulePredicate | ViewRuleRank | ViewRuleStyleOrGlobalRef;
91
- declare const ViewRule = "ViewRule";
92
- type ViewRuleStyleOrGlobalRef = ViewRuleGlobalStyle | ViewRuleStyle;
93
- declare const ViewRuleStyleOrGlobalRef = "ViewRuleStyleOrGlobalRef";
94
- type WhereElement = WhereElementKind | WhereElementTag;
95
- declare const WhereElement = "WhereElement";
96
- type WhereElementExpression = WhereBinaryExpression | WhereElement | WhereElementNegation;
97
- declare const WhereElementExpression = "WhereElementExpression";
98
- type WhereExpression = WhereElementExpression | WhereRelationExpression;
99
- declare const WhereExpression = "WhereExpression";
100
- type WhereKindEqual = WhereElementKind | WhereRelationKind | WhereRelationParticipantKind;
101
- declare const WhereKindEqual = "WhereKindEqual";
102
- type WhereRelation = WhereRelationKind | WhereRelationParticipantKind | WhereRelationParticipantTag | WhereRelationTag;
103
- declare const WhereRelation = "WhereRelation";
104
- type WhereRelationExpression = WhereBinaryExpression | WhereRelation | WhereRelationNegation;
105
- declare const WhereRelationExpression = "WhereRelationExpression";
106
- type WhereTagEqual = WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
107
- declare const WhereTagEqual = "WhereTagEqual";
108
- interface AbstractDynamicStep extends AstNode {
109
- readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
110
- readonly $type: 'AbstractDynamicStep' | 'DynamicStepChain' | 'DynamicStepSingle';
111
- custom?: CustomRelationProperties;
112
- dotKind?: RelationKindDotRef;
113
- kind?: Reference<RelationshipKind>;
114
- target: ElementRef;
115
- title?: string;
116
- }
117
- declare const AbstractDynamicStep = "AbstractDynamicStep";
118
- interface ArrowProperty extends AstNode {
119
- readonly $container: CustomRelationProperties | RelationStyleProperty | SpecificationRelationshipKind;
120
- readonly $type: 'ArrowProperty';
121
- key: 'head' | 'tail';
122
- value: ArrowType;
123
- }
124
- declare const ArrowProperty = "ArrowProperty";
125
- interface BorderProperty extends AstNode {
126
- readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleGroup | ViewRuleStyle;
127
- readonly $type: 'BorderProperty';
128
- key: 'border';
129
- value: BorderStyleValue;
130
- }
131
- declare const BorderProperty = "BorderProperty";
132
- interface ColorProperty extends AstNode {
133
- readonly $container: CustomElementProperties | CustomRelationProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | RelationStyleProperty | SpecificationRelationshipKind | ViewRuleGroup | ViewRuleStyle;
134
- readonly $type: 'ColorProperty';
135
- customColor?: Reference<CustomColor>;
136
- key: 'color';
137
- themeColor?: ThemeColor;
15
+ //#region ../language-server/dist/protocol.d.mts
16
+ /**
17
+ * When server requests to open a likec4 preview panel
18
+ * (available only in the editor).
19
+ * (not the best place, but seems to be working)
20
+ */
21
+ declare namespace DidRequestOpenViewNotification {
22
+ type Params = {
23
+ viewId: ViewId;
24
+ projectId: ProjectId;
25
+ };
26
+ const type: NotificationType<Params>;
27
+ type Type = typeof type;
138
28
  }
139
- declare const ColorProperty = "ColorProperty";
140
- interface CustomColor extends AstNode {
141
- readonly $container: SpecificationColor;
142
- readonly $type: 'CustomColor';
143
- name: CustomColorId;
29
+ /**
30
+ * Request to fetch the computed model data
31
+ * If LSP has multiple projects, the projectId is required.
32
+ * otherwise throws an error.
33
+ */
34
+ /**
35
+ * Request to locate an element, relation, deployment or view.
36
+ * If LSP has multiple projects, the projectId is required.
37
+ */
38
+ declare namespace Locate {
39
+ type Params =
40
+ /**
41
+ * Locate an element by its fqn
42
+ */
43
+ {
44
+ element: Fqn;
45
+ projectId?: string | undefined;
46
+ property?: string;
47
+ }
48
+ /**
49
+ * Locate a relation by its id
50
+ */
51
+ | {
52
+ projectId?: string | undefined;
53
+ relation: RelationId;
54
+ }
55
+ /**
56
+ * Locate a deployment by its fqn
57
+ */
58
+ | {
59
+ deployment: DeploymentFqn;
60
+ projectId?: string | undefined;
61
+ property?: string;
62
+ }
63
+ /**
64
+ * Locate a step in a dynamic view by its astPath
65
+ */
66
+ | {
67
+ view: ViewId;
68
+ astPath: string;
69
+ projectId?: string | undefined;
70
+ }
71
+ /**
72
+ * Locate a view by its id
73
+ */
74
+ | {
75
+ view: ViewId;
76
+ projectId?: string | undefined;
77
+ };
78
+ type Res = Location | null;
79
+ const req: RequestType<Params, Res, void>;
80
+ type Req = typeof req;
144
81
  }
145
- declare const CustomColor = "CustomColor";
146
- interface CustomElementProperties extends AstNode {
147
- readonly $container: FqnExprWith;
148
- readonly $type: 'CustomElementProperties';
149
- props: Array<ElementStringProperty | NavigateToProperty | NotationProperty | StyleProperty>;
82
+ /**
83
+ * Request to change the view
84
+ * If LSP has multiple projects, the projectId is required.
85
+ */
86
+ declare namespace ChangeView {
87
+ type Params = {
88
+ viewId: ViewId;
89
+ change: ViewChange;
90
+ projectId?: string | undefined;
91
+ };
92
+ type Res = {
93
+ success: true;
94
+ location: Location | null;
95
+ } | {
96
+ success: false;
97
+ location?: Location | null;
98
+ error: string;
99
+ };
100
+ const req: RequestType<Params, Res, void>;
101
+ type Req = typeof req;
150
102
  }
151
- declare const CustomElementProperties = "CustomElementProperties";
152
- interface CustomRelationProperties extends AstNode {
153
- readonly $container: AbstractDynamicStep | RelationExprWith;
154
- readonly $type: 'CustomRelationProperties';
155
- props: Array<NotationProperty | NotesProperty | RelationNavigateToProperty | RelationStringProperty | RelationshipStyleProperty>;
103
+ /**
104
+ * Request to fetch telemetry metrics
105
+ */
106
+ //#endregion
107
+ //#region ../layouts/dist/_chunks/GraphvizLayoter.d.mts
108
+ //#region src/graphviz/types.d.ts
109
+ /**
110
+ * Partially implements CancellationToken interface from vscode-jsonrpc
111
+ */
112
+ type CancellationToken = {
113
+ /**
114
+ * Is `true` when the token has been cancelled, `false` otherwise.
115
+ */
116
+ readonly isCancellationRequested: boolean;
117
+ };
118
+ declare module 'ts-graphviz' {
119
+ namespace GraphAttributeKey {
120
+ interface $values extends $keywords<'likec4_viewId'> {}
121
+ }
122
+ namespace ClusterSubgraphAttributeKey {
123
+ interface $values extends $keywords<'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_level' | 'likec4_depth'> {}
124
+ }
125
+ namespace NodeAttributeKey {
126
+ interface $values extends $keywords<'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_project' | 'likec4_level'> {}
127
+ }
128
+ namespace EdgeAttributeKey {
129
+ interface $values extends $keywords<'likec4_id' | 'likec4_project'> {}
130
+ }
131
+ namespace Attribute {
132
+ interface $keys extends $keywords<'likec4_viewId' | 'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_project' | 'likec4_level' | 'likec4_depth'> {}
133
+ interface $types {
134
+ likec4_viewId: string;
135
+ likec4_type: 'folder' | 'file' | 'view';
136
+ likec4_path: string;
137
+ likec4_id: string;
138
+ likec4_project: string;
139
+ likec4_level: number;
140
+ likec4_depth: number;
141
+ }
142
+ }
156
143
  }
157
- declare const CustomRelationProperties = "CustomRelationProperties";
158
- interface DeployedInstance extends AstNode {
159
- readonly $container: DeploymentNodeBody | ExtendDeploymentBody;
160
- readonly $type: 'DeployedInstance';
161
- body?: DeployedInstanceBody;
162
- name?: Id;
163
- summary?: string;
164
- target: ElementRef;
165
- title?: string;
166
- }
167
- declare const DeployedInstance = "DeployedInstance";
168
- interface DeployedInstanceBody extends AstNode {
169
- readonly $container: DeployedInstance;
170
- readonly $type: 'DeployedInstanceBody';
171
- elements: Array<DeploymentRelation>;
172
- props: Array<ElementProperty>;
173
- tags?: Tags;
174
- }
175
- declare const DeployedInstanceBody = "DeployedInstanceBody";
176
- interface DeploymentNode extends AstNode {
177
- readonly $container: DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
178
- readonly $type: 'DeploymentNode';
179
- body?: DeploymentNodeBody;
180
- kind: Reference<DeploymentNodeKind>;
181
- name: Id;
182
- summary?: string;
183
- title?: string;
144
+ type DotSource = Tagged<string, 'DotSource'>; //#endregion
145
+ //#region src/graphviz/types-dot.d.ts
146
+ type GvNodeName = Tagged<string, 'GvNodeName'>;
147
+ type GvId = Tagged<number, 'GvId'>;
148
+ type Point = [x: number, y: number];
149
+ interface GraphvizJson {
150
+ name: GvNodeName;
151
+ directed: boolean;
152
+ strict: boolean;
153
+ _draw_: GraphvizJson.Draw[];
154
+ bb: string;
155
+ compound: string;
156
+ fontname: string;
157
+ fontsize: string;
158
+ label: string;
159
+ nodesep: string;
160
+ outputorder: string;
161
+ rankdir: string;
162
+ ranksep: string;
163
+ splines: string;
164
+ xdotversion: string;
165
+ _subgraph_cnt: number;
166
+ objects?: GraphvizJson.GvObject[];
167
+ edges?: GraphvizJson.Edge[];
184
168
  }
185
- declare const DeploymentNode = "DeploymentNode";
186
- interface DeploymentNodeBody extends AstNode {
187
- readonly $container: DeploymentNode;
188
- readonly $type: 'DeploymentNodeBody';
189
- elements: Array<DeployedInstance | DeploymentNode | DeploymentRelation>;
190
- props: Array<ElementProperty>;
191
- tags?: Tags;
169
+ declare namespace GraphvizJson {
170
+ interface Draw {
171
+ op: string;
172
+ grad: string;
173
+ color: string;
174
+ points: Point[];
175
+ }
176
+ interface Draw2 {
177
+ op: string;
178
+ grad: string;
179
+ color: string;
180
+ points: Point[];
181
+ }
182
+ namespace DrawOps {
183
+ type Style = {
184
+ op: 'S';
185
+ style: string;
186
+ };
187
+ type BSpline = {
188
+ op: 'b' | 'B';
189
+ points: Point[];
190
+ };
191
+ type Color = {
192
+ op: 'c';
193
+ grad: string;
194
+ color: string;
195
+ };
196
+ type Polygon = {
197
+ op: 'p' | 'P';
198
+ points: Point[];
199
+ };
200
+ }
201
+ type DrawOp = DrawOps.Style | DrawOps.BSpline | DrawOps.Color | DrawOps.Polygon;
202
+ type LabelDrawOps = {
203
+ op: 'F';
204
+ size: number;
205
+ face: string;
206
+ } | {
207
+ op: 'c';
208
+ color: string;
209
+ } | {
210
+ op: 't';
211
+ fontchar: number;
212
+ } | {
213
+ op: 'T';
214
+ pt: Point;
215
+ align: 'l' | 'r' | 'c';
216
+ width: number;
217
+ text: string;
218
+ };
219
+ type GvObject = GvNodeObject | GvSubgraph;
220
+ interface GvSubgraph {
221
+ bb: string;
222
+ label?: string;
223
+ compound: 'true';
224
+ _ldraw_?: LabelDrawOps[];
225
+ likec4_type?: 'folder' | 'file';
226
+ likec4_path?: string;
227
+ likec4_id?: Fqn;
228
+ likec4_level?: number;
229
+ likec4_depth?: number;
230
+ _gvid: GvId;
231
+ subgraphs?: GvId[];
232
+ nodes?: GvId[];
233
+ edges?: GvId[];
234
+ }
235
+ interface GvNodeObject {
236
+ _draw_: Draw[];
237
+ _ldraw_?: LabelDrawOps[];
238
+ likec4_type?: 'folder' | 'file' | 'view';
239
+ likec4_path?: string;
240
+ likec4_id?: Fqn;
241
+ likec4_level?: number;
242
+ _gvid: GvId;
243
+ height: string;
244
+ pos: string;
245
+ shape: 'rect';
246
+ width: string;
247
+ label?: string;
248
+ }
249
+ interface Draw3 {
250
+ op: string;
251
+ grad: string;
252
+ color: string;
253
+ points: Point[];
254
+ }
255
+ interface Hdraw {
256
+ op: string;
257
+ style: string;
258
+ grad: string;
259
+ color: string;
260
+ points: Point[];
261
+ }
262
+ interface Edge {
263
+ _gvid: GvId;
264
+ tail: GvId;
265
+ head: GvId;
266
+ dir?: 'forward' | 'back' | 'both' | 'none';
267
+ _draw_: DrawOp[];
268
+ _hdraw_?: DrawOp[];
269
+ _tdraw_?: DrawOp[];
270
+ _ldraw_?: LabelDrawOps[];
271
+ _tldraw_?: LabelDrawOps[];
272
+ _hldraw_?: LabelDrawOps[];
273
+ fontname: string;
274
+ fontsize: string;
275
+ likec4_id?: EdgeId;
276
+ label: string;
277
+ lp: string;
278
+ nojustify?: 'true' | 'false';
279
+ pos?: string;
280
+ }
281
+ } //#endregion
282
+ //#region src/graphviz/GraphvizLayoter.d.ts
283
+ interface GraphvizPort extends Disposable {
284
+ get concurrency(): number;
285
+ unflatten(dot: DotSource): Promise<DotSource>;
286
+ acyclic(dot: DotSource): Promise<DotSource>;
287
+ layoutJson(dot: DotSource): Promise<string>;
288
+ svg(dot: DotSource): Promise<string>;
289
+ dispose(): void;
192
290
  }
193
- declare const DeploymentNodeBody = "DeploymentNodeBody";
194
- interface DeploymentNodeKind extends AstNode {
195
- readonly $container: SpecificationDeploymentNodeKind;
196
- readonly $type: 'DeploymentNodeKind';
197
- name: Id;
291
+ type LayoutTaskParams<A extends aux.Any = aux.Any> = {
292
+ view: ComputedView<A>;
293
+ styles: LikeC4Styles;
294
+ };
295
+ type LayoutResult<A extends aux.Any = aux.Any> = {
296
+ dot: DotSource;
297
+ diagram: DiagramView<A>;
298
+ };
299
+ declare class GraphvizLayouter implements Disposable {
300
+ private graphviz;
301
+ constructor(graphviz?: GraphvizPort);
302
+ dispose(): void;
303
+ [Symbol.dispose](): void;
304
+ get graphvizPort(): GraphvizPort;
305
+ changePort(graphviz: GraphvizPort): void;
306
+ dotToJson(dot: DotSource): Promise<GraphvizJson>;
307
+ layout<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<LayoutResult<A>>;
308
+ svg<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<{
309
+ svg: string;
310
+ dot: DotSource;
311
+ }>;
312
+ dot<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<DotSource>;
313
+ layoutProjectsView(view: ComputedProjectsView): Promise<LayoutedProjectsView>;
314
+ } //#endregion
315
+ //#endregion
316
+ //#region ../layouts/dist/index.d.mts
317
+ //#region src/graphviz/QueueGraphvizLayoter.d.ts
318
+ declare class QueueGraphvizLayoter extends GraphvizLayouter {
319
+ private queue;
320
+ private isProcessingBatch;
321
+ constructor(options?: {
322
+ graphviz?: GraphvizPort;
323
+ /**
324
+ * Concurrency limit.
325
+ * Minimum: `1`.
326
+ * @default 2
327
+ */
328
+ concurrency?: number;
329
+ /**
330
+ * Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.
331
+ * @default 20_000
332
+ */
333
+ timeout?: number;
334
+ /**
335
+ * Whether or not a timeout is considered an exception.
336
+ * @default true
337
+ */
338
+ throwOnTimeout?: boolean;
339
+ });
340
+ private runInQueue;
341
+ changePort(graphvizPort: GraphvizPort): void;
342
+ layout<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<LayoutResult<A>>;
343
+ layoutProjectsView(view: ComputedProjectsView): Promise<LayoutedProjectsView>;
344
+ batchLayout<A extends AnyAux>(params: {
345
+ batch: LayoutTaskParams<A>[];
346
+ cancelToken?: CancellationToken | undefined;
347
+ onSuccess?: (task: LayoutTaskParams<A>, result: LayoutResult<A>) => void;
348
+ onError?: (task: LayoutTaskParams<A>, error: unknown) => void;
349
+ }): Promise<LayoutResult<A>[]>;
350
+ dispose(): void;
351
+ } //#endregion
352
+ //#region src/graphviz/wasm/GraphvizWasmAdapter.d.ts
353
+ //#endregion
354
+ //#region ../language-server/dist/module.d.mts
355
+ interface LikeC4AddedSharedServices {
356
+ lsp: {
357
+ NodeKindProvider: NodeKindProvider$1;
358
+ WorkspaceSymbolProvider: WorkspaceSymbolProvider;
359
+ };
360
+ workspace: {
361
+ Cache: WorkspaceCache<string, any>;
362
+ ProjectsManager: ProjectsManager;
363
+ IndexManager: IndexManager;
364
+ LangiumDocuments: LangiumDocuments;
365
+ WorkspaceManager: LikeC4WorkspaceManager;
366
+ FileSystemProvider: FileSystemProvider$1;
367
+ FileSystemWatcher: FileSystemWatcher;
368
+ ManualLayouts: LikeC4ManualLayouts;
369
+ };
198
370
  }
199
- declare const DeploymentNodeKind = "DeploymentNodeKind";
200
- interface DeploymentRelation extends AstNode {
201
- readonly $container: DeployedInstanceBody | DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
202
- readonly $type: 'DeploymentRelation';
203
- body?: DeploymentRelationBody;
204
- description?: string;
205
- dotKind?: RelationKindDotRef;
206
- kind?: Reference<RelationshipKind>;
207
- source?: FqnRef$2;
208
- tags?: Tags;
209
- target: FqnRef$2;
210
- technology?: string;
211
- title?: string;
371
+ type LikeC4SharedServices = LangiumSharedServices & LikeC4AddedSharedServices;
372
+ /**
373
+ * Declaration of custom services - add your own service classes here.
374
+ */
375
+ interface LikeC4AddedServices {
376
+ documentation: {
377
+ DocumentationProvider: LikeC4DocumentationProvider;
378
+ };
379
+ validation: {
380
+ DocumentValidator: LikeC4DocumentValidator;
381
+ };
382
+ Rpc: Rpc;
383
+ mcp: {
384
+ Server: LikeC4MCPServer;
385
+ ServerFactory: LikeC4MCPServerFactory;
386
+ };
387
+ likec4: {
388
+ LanguageServices: LikeC4LanguageServices;
389
+ Views: LikeC4Views;
390
+ Layouter: QueueGraphvizLayoter;
391
+ DeploymentsIndex: DeploymentsIndex;
392
+ FqnIndex: FqnIndex;
393
+ ModelParser: LikeC4ModelParser;
394
+ ModelBuilder: LikeC4ModelBuilder;
395
+ ModelLocator: LikeC4ModelLocator;
396
+ ModelChanges: LikeC4ModelChanges;
397
+ LastSeen: LastSeenArtifacts;
398
+ };
399
+ lsp: {
400
+ CompletionProvider: LikeC4CompletionProvider;
401
+ DocumentHighlightProvider: LikeC4DocumentHighlightProvider;
402
+ DocumentSymbolProvider: LikeC4DocumentSymbolProvider;
403
+ SemanticTokenProvider: LikeC4SemanticTokenProvider;
404
+ HoverProvider: LikeC4HoverProvider;
405
+ CodeLensProvider: LikeC4CodeLensProvider;
406
+ DocumentLinkProvider: LikeC4DocumentLinkProvider;
407
+ Formatter: LikeC4Formatter;
408
+ CodeActionProvider: LikeC4CodeActionProvider;
409
+ };
410
+ references: {
411
+ NameProvider: LikeC4NameProvider;
412
+ ScopeComputation: LikeC4ScopeComputation;
413
+ ScopeProvider: LikeC4ScopeProvider;
414
+ };
415
+ shared?: LikeC4SharedServices;
416
+ parser: {
417
+ ValueConverter: LikeC4ValueConverter;
418
+ };
212
419
  }
213
- declare const DeploymentRelation = "DeploymentRelation";
214
- interface DeploymentRelationBody extends AstNode {
215
- readonly $container: DeploymentRelation;
216
- readonly $type: 'DeploymentRelationBody';
217
- props: Array<RelationProperty>;
218
- tags?: Tags;
420
+ type LikeC4Services = LangiumServices & LikeC4AddedServices;
421
+ /**
422
+ * Most probably you don't need to use this function directly.
423
+ * Use {@link createLanguageServices} instead.
424
+ * @internal
425
+ */
426
+ //#endregion
427
+ //#region ../language-server/dist/_chunks/index.d.mts
428
+ //#region src/documentation/documentation-provider.d.ts
429
+ declare class LikeC4DocumentationProvider extends JSDocDocumentationProvider {
430
+ private parser;
431
+ private locator;
432
+ constructor(services: LikeC4Services);
433
+ getDocumentation(node: AstNode): string | undefined;
434
+ } //#endregion
435
+ //#region src/workspace/ProjectsManager.d.ts
436
+ type DocOrUri = LangiumDocument | string | URI;
437
+ /**
438
+ * A tagged string that represents a project folder URI
439
+ * Always has trailing slash.
440
+ */
441
+ type ProjectFolder = Tagged<string, 'ProjectFolder'>;
442
+ declare function ProjectFolder(folder: URI | string): ProjectFolder;
443
+ interface Project {
444
+ id: ProjectId$1;
445
+ folderUri: URI;
446
+ config: LikeC4ProjectConfig;
219
447
  }
220
- declare const DeploymentRelationBody = "DeploymentRelationBody";
221
- interface DeploymentView extends AstNode {
222
- readonly $container: ModelViews;
223
- readonly $type: 'DeploymentView';
224
- body?: DeploymentViewBody;
225
- name: Id;
448
+ interface ProjectData extends Project {
449
+ id: ProjectId$1;
450
+ folder: ProjectFolder;
451
+ config: LikeC4ProjectConfig;
452
+ configUri: URI;
453
+ folderUri: URI;
454
+ exclude?: {
455
+ (test: string): boolean;
456
+ };
457
+ /**
458
+ * Resolved include paths with both URI and folder string representations.
459
+ * These are additional directories that are part of this project.
460
+ */
461
+ includePaths?: NonEmptyArray<{
462
+ uri: URI;
463
+ folder: ProjectFolder;
464
+ }>;
465
+ /**
466
+ * Normalized include configuration (paths, maxDepth, fileThreshold).
467
+ */
468
+ includeConfig: IncludeConfig;
226
469
  }
227
- declare const DeploymentView = "DeploymentView";
228
- interface DeploymentViewBody extends AstNode {
229
- readonly $container: DeploymentView;
230
- readonly $type: 'DeploymentViewBody';
231
- props: Array<ViewProperty>;
232
- rules: Array<DeploymentViewRule>;
233
- tags?: Tags;
470
+ type RegisterProjectOptions = {
471
+ config: LikeC4ProjectConfig | LikeC4ProjectConfigInput;
472
+ } & ({
473
+ configUri: URI | string;
474
+ } | {
475
+ folderUri: URI | string;
476
+ });
477
+ declare class ProjectsManager {
478
+ #private;
479
+ protected services: LikeC4SharedServices;
480
+ /**
481
+ * The global project ID used for all documents
482
+ * that are not part of a specific project.
483
+ */
484
+ static readonly DefaultProjectId: ProjectId$1;
485
+ constructor(services: LikeC4SharedServices);
486
+ /**
487
+ * Returns:
488
+ * - configured default project ID if set
489
+ * - the default project ID if there are no projects.
490
+ * - the ID of the only project
491
+ * - undefined if there are multiple projects.
492
+ */
493
+ get defaultProjectId(): ProjectId$1 | undefined;
494
+ set defaultProjectId(id: string | ProjectId$1 | undefined);
495
+ get default(): ProjectData;
496
+ get all(): NonEmptyReadonlyArray<ProjectId$1>;
497
+ getProject(arg: ProjectId$1 | LangiumDocument): ProjectData;
498
+ /**
499
+ * Returns all projects that overlap with the specified folder (is parent or child)
500
+ */
501
+ findOverlaped(folder: URI | string): ProjectData[];
502
+ /**
503
+ * Validates and ensures the project ID.
504
+ * If no project ID is specified, returns default project ID
505
+ * If there are multiple projects and default project is not set, throws an error
506
+ */
507
+ ensureProjectId(projectId?: ProjectId$1 | undefined): ProjectId$1;
508
+ /**
509
+ * Validates and ensures the project.
510
+ */
511
+ ensureProject(projectId?: ProjectId$1 | undefined): ProjectData;
512
+ hasMultipleProjects(): boolean;
513
+ /**
514
+ * Checks if the specified document should be excluded from processing.
515
+ */
516
+ isExcluded(document: DocOrUri): boolean;
517
+ isExcluded(projectId: ProjectId$1, document: DocOrUri): boolean;
518
+ /**
519
+ * Checks if the specified document is included by the project:
520
+ * - if the document belongs to the project and is not excluded
521
+ * - if the document is included by the project
522
+ */
523
+ isIncluded(projectId: ProjectId$1, document: LangiumDocument | URI | string): boolean;
524
+ /**
525
+ * Registers likec4 project by config file.
526
+ */
527
+ registerConfigFile(configUri: URI, cancelToken?: CancellationToken$1): Promise<ProjectData>;
528
+ /**
529
+ * Registers (or reloads) likec4 project by config file or config object.
530
+ * If there is some project registered at same folder, it will be reloaded.
531
+ */
532
+ registerProject(opts: RegisterProjectOptions, cancelToken?: CancellationToken$1): Promise<ProjectData>;
533
+ /**
534
+ * Determines which project the given document belongs to.
535
+ * If the document does not belong to any project, returns the default project ID.
536
+ */
537
+ ownerProjectId(document: LangiumDocument | URI | string): ProjectId$1;
538
+ reloadProjects(cancelToken?: CancellationToken$1): Promise<void>;
539
+ protected _reloadProjects(cancelToken?: CancellationToken$1): Promise<void>;
540
+ protected uniqueProjectId(name: string): ProjectId$1;
541
+ protected resetCaches(): void;
542
+ rebuildProject(projectId: ProjectId$1, cancelToken?: CancellationToken$1): Promise<void>;
543
+ /**
544
+ * Returns all include paths from all projects.
545
+ * Used by WorkspaceManager to scan additional directories for C4 files.
546
+ */
547
+ getAllIncludePaths(): Array<{
548
+ projectId: ProjectId$1;
549
+ includePath: URI;
550
+ includeConfig: IncludeConfig;
551
+ }>;
552
+ /**
553
+ * Register a listener to be called when the projects configuration has changed.
554
+ * @returns A disposable that can be used to unregister the callback.
555
+ */
556
+ onProjectsUpdate(callback: () => void): Disposable$1;
557
+ private getWorkspaceFolder;
558
+ private notifyListeners;
559
+ private updateIncludesExcludes;
560
+ } //#endregion
561
+ //#region src/filesystem/types.d.ts
562
+ interface FileNode extends FileSystemNode {
563
+ readonly isFile: true;
564
+ readonly isDirectory: false;
234
565
  }
235
- declare const DeploymentViewBody = "DeploymentViewBody";
236
- interface DeploymentViewRulePredicate extends AstNode {
237
- readonly $container: DeploymentViewBody;
238
- readonly $type: 'DeploymentViewRulePredicate';
239
- expr: Expressions;
240
- isInclude: boolean;
566
+ interface FileSystemProvider$1 extends FileSystemProvider {
567
+ /**
568
+ * Scans the project files for the given URI.
569
+ * @returns The list of file system entries that are contained within the specified directory.
570
+ */
571
+ scanProjectFiles(folderUri: URI): Promise<FileNode[]>;
572
+ /**
573
+ * Loads the project config from the given file.
574
+ * @returns The project config.
575
+ * @throws Error if the file does not exist or is not a valid project config.
576
+ */
577
+ loadProjectConfig(filepath: URI): Promise<LikeC4ProjectConfig>;
578
+ /**
579
+ * Reads the directory information for the given URI.
580
+ * @param options.recursive If true, recursively reads the directory,
581
+ * @param options.maxDepth Maximum depth to traverse when recursive is true (default: Infinity)
582
+ */
583
+ readDirectory(uri: URI, options?: {
584
+ recursive?: boolean;
585
+ maxDepth?: number;
586
+ }): Promise<FileNode[]>;
587
+ /**
588
+ * Finds all files in the given directory, matching the given filter.
589
+ */
590
+ scanDirectory(directory: URI, filter: (filepath: string) => boolean): Promise<FileNode[]>;
591
+ /**
592
+ * Writes the content to the file system.
593
+ * Used by manual layouts.
594
+ */
595
+ writeFile(uri: URI, content: string): Promise<void>;
596
+ /**
597
+ * Deletes the file from the file system.
598
+ * Used by manual layouts.
599
+ * @return true if the file was deleted, false if the file did not exist.
600
+ */
601
+ deleteFile(uri: URI): Promise<boolean>;
241
602
  }
242
- declare const DeploymentViewRulePredicate = "DeploymentViewRulePredicate";
243
- interface DeploymentViewRuleStyle extends AstNode {
244
- readonly $container: DeploymentViewBody;
245
- readonly $type: 'DeploymentViewRuleStyle';
246
- props: Array<NotationProperty | StyleProperty>;
247
- targets: FqnExpressions;
603
+ interface FileSystemWatcher extends AsyncDisposable {
604
+ /**
605
+ * Watches a folder for changes and triggers a reload of the documents and projects.
606
+ */
607
+ watch(folder: string): void;
248
608
  }
249
- declare const DeploymentViewRuleStyle = "DeploymentViewRuleStyle";
250
- interface DirectedRelationExpr extends AstNode {
251
- readonly $container: Expressions | RelationExprWhere | RelationExprWith;
252
- readonly $type: 'DirectedRelationExpr';
253
- source: OutgoingRelationExpr;
254
- target: FqnExpr$2;
609
+ type ManualLayoutsSnapshot = {
610
+ hash: string;
611
+ views: Record<ViewId$1, LayoutedView$1>;
612
+ };
613
+ interface LikeC4ManualLayouts {
614
+ read(project: Project): Promise<ManualLayoutsSnapshot | null>;
615
+ write(project: Project, layouted: LayoutedView$1): Promise<Location>;
616
+ remove(project: Project, view: ViewId$1): Promise<Location | null>;
617
+ clearCaches(): void;
618
+ } //#endregion
619
+ //#region src/filesystem/noop.d.ts
620
+ //#endregion
621
+ //#region src/formatting/LikeC4Formatter.d.ts
622
+ type QuoteStyle = 'single' | 'double' | 'ignore' | 'auto';
623
+ interface LikeC4FormatterOptions {
624
+ quoteStyle: QuoteStyle;
255
625
  }
256
- declare const DirectedRelationExpr = "DirectedRelationExpr";
257
- interface DynamicView extends AstNode {
258
- readonly $container: ModelViews;
259
- readonly $type: 'DynamicView';
260
- body?: DynamicViewBody;
261
- name: Id;
262
- }
263
- declare const DynamicView = "DynamicView";
264
- interface DynamicViewBody extends AstNode {
265
- readonly $container: DynamicView;
266
- readonly $type: 'DynamicViewBody';
267
- props: Array<DynamicViewProperty>;
268
- rules: Array<DynamicViewRule>;
269
- steps: Array<DynamicViewParallelSteps | DynamicViewStep>;
270
- tags?: Tags;
626
+ type ExtendedFormattingCommandType = 'normalizeQuotes';
627
+ interface ExtendedFormattingCommand {
628
+ type: ExtendedFormattingCommandType;
629
+ region: FormattingRegion;
271
630
  }
272
- declare const DynamicViewBody = "DynamicViewBody";
273
- interface DynamicViewDisplayVariantProperty extends AstNode {
274
- readonly $container: DynamicViewBody;
275
- readonly $type: 'DynamicViewDisplayVariantProperty';
276
- key: 'variant';
277
- value: DynamicViewDisplayVariantValue;
631
+ declare class LikeC4Formatter extends AbstractFormatter {
632
+ protected options: LikeC4FormatterOptions;
633
+ extendedFormattingCommands: ExtendedFormattingCommand[];
634
+ constructor(services: LikeC4Services);
635
+ protected doDocumentFormat(document: LangiumDocument, options: FormattingOptions, range?: Range): TextEdit[];
636
+ protected format(node: AstNode): void;
637
+ protected formatTags(node: AstNode): void;
638
+ protected formatDeploymentRelation(node: AstNode): void;
639
+ protected formatExtendDeployment(node: AstNode): void;
640
+ protected formatRelation(node: AstNode): void;
641
+ protected removeIndentFromTopLevelStatements(node: AstNode): void;
642
+ protected indentContentInBraces(node: AstNode): void;
643
+ protected appendKeywordsWithSpace(node: AstNode): void;
644
+ protected formatView(node: AstNode): void;
645
+ protected formatLeafProperty(node: AstNode): void;
646
+ protected formatLinkProperty(node: AstNode): void;
647
+ protected formatNavigateToProperty(node: AstNode): void;
648
+ protected formatAutolayoutProperty(node: AstNode): void;
649
+ protected formatMetadataProperty(node: AstNode): void;
650
+ protected formatElementDeclaration(node: AstNode): void;
651
+ protected formatExtendElement(node: AstNode): void;
652
+ protected formatGlobals(node: AstNode): void;
653
+ protected formatImports(node: AstNode): void;
654
+ protected formatSpecificationRule(node: AstNode): void;
655
+ protected formatWithPredicate(node: AstNode): void;
656
+ protected formatDeploymentNodeDeclaration(node: AstNode): void;
657
+ protected formatDeployedInstance(node: AstNode): void;
658
+ protected formatViewRuleGlobalStyle(node: AstNode): void;
659
+ protected formatViewRuleGlobalPredicate(node: AstNode): void;
660
+ protected formatViewRuleGroup(node: AstNode): void;
661
+ protected formatViewRuleStyle(node: AstNode): void;
662
+ protected formatWhereExpression(node: AstNode): void;
663
+ protected formatWhereRelationExpression(node: AstNode): void;
664
+ protected formatWhereElementExpression(node: AstNode): void;
665
+ protected formatIncludeExcludeExpressions(node: AstNode): void;
666
+ protected formatRelationExpression(node: AstNode): void;
667
+ private findPredicateExpressionRoot;
668
+ private on;
669
+ private doExtendedFormatting;
670
+ protected normalizeQuotes(node: AstNode): void;
671
+ private quotesNormalizerFactory;
672
+ private escapeQuotesInternalQuotes;
673
+ private getAutoQuoteStyle;
674
+ private onConfigurationUpdate;
675
+ } //#endregion
676
+ //#region src/mcp/types.d.ts
677
+ interface LikeC4MCPServer {
678
+ readonly mcp: McpServer;
679
+ readonly isStarted: boolean;
680
+ readonly port: number;
681
+ start(port?: number): Promise<void>;
682
+ stop(): Promise<void>;
278
683
  }
279
- declare const DynamicViewDisplayVariantProperty = "DynamicViewDisplayVariantProperty";
280
- interface DynamicViewGlobalPredicateRef extends AstNode {
281
- readonly $container: DynamicViewBody;
282
- readonly $type: 'DynamicViewGlobalPredicateRef';
283
- predicate: Reference<GlobalDynamicPredicateGroup>;
684
+ interface LikeC4MCPServerFactory {
685
+ create(options?: ServerOptions): McpServer;
284
686
  }
285
- declare const DynamicViewGlobalPredicateRef = "DynamicViewGlobalPredicateRef";
286
- interface DynamicViewIncludePredicate extends AstNode {
287
- readonly $container: DynamicViewBody | GlobalDynamicPredicateGroup;
288
- readonly $type: 'DynamicViewIncludePredicate';
289
- exprs: Expressions;
687
+ //#endregion
688
+ //#region src/generated/ast.d.ts
689
+ type AnyProperty = DynamicViewProperty | ElementProperty | RelationProperty | StringProperty | ViewProperty;
690
+ declare const AnyProperty = "AnyProperty";
691
+ type ArrowType = 'crow' | 'diamond' | 'dot' | 'none' | 'normal' | 'odiamond' | 'odot' | 'onormal' | 'open' | 'vee';
692
+ type BorderStyleValue = 'none' | LineOptions;
693
+ type ColorLiteral$1 = HexColor | RGBAColor;
694
+ declare const ColorLiteral$1 = "ColorLiteral";
695
+ type CustomColorId = 'element' | 'model' | ArrowType | ElementShape | LineOptions | Participant | string;
696
+ type DeploymentElement = DeployedInstance | DeploymentNode;
697
+ declare const DeploymentElement = "DeploymentElement";
698
+ type DeploymentNodeOrElementKind = DeploymentNodeKind | ElementKind;
699
+ declare const DeploymentNodeOrElementKind = "DeploymentNodeOrElementKind";
700
+ type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout;
701
+ declare const DeploymentViewRule = "DeploymentViewRule";
702
+ type DynamicViewDisplayVariantValue = 'diagram' | 'sequence';
703
+ type DynamicViewProperty = DynamicViewDisplayVariantProperty | ViewProperty;
704
+ declare const DynamicViewProperty = "DynamicViewProperty";
705
+ type DynamicViewRule = DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleAutoLayout | ViewRuleStyleOrGlobalRef;
706
+ declare const DynamicViewRule = "DynamicViewRule";
707
+ type DynamicViewStep = DynamicStepChain | DynamicStepSingle;
708
+ declare const DynamicViewStep = "DynamicViewStep";
709
+ type ElementProperty = ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataProperty;
710
+ declare const ElementProperty = "ElementProperty";
711
+ type ElementShape = 'browser' | 'bucket' | 'component' | 'cylinder' | 'document' | 'mobile' | 'person' | 'queue' | 'rectangle' | 'storage';
712
+ type ExpressionV2 = FqnExprOrWith | RelationExprOrWith;
713
+ declare const ExpressionV2 = "ExpressionV2";
714
+ type ExtendElementProperty = LinkProperty | MetadataProperty;
715
+ declare const ExtendElementProperty = "ExtendElementProperty";
716
+ type ExtendRelationProperty = LinkProperty | MetadataProperty;
717
+ declare const ExtendRelationProperty = "ExtendRelationProperty";
718
+ type FqnExpr$2 = ElementKindExpression | ElementTagExpression | FqnRefExpr | WildcardExpression;
719
+ declare const FqnExpr$2 = "FqnExpr";
720
+ type FqnExprOrWhere = FqnExpr$2 | FqnExprWhere;
721
+ declare const FqnExprOrWhere = "FqnExprOrWhere";
722
+ type FqnExprOrWith = FqnExprOrWhere | FqnExprWith;
723
+ declare const FqnExprOrWith = "FqnExprOrWith";
724
+ type FqnReferenceable = Element | ExtendDeployment | ExtendElement | Referenceable;
725
+ declare const FqnReferenceable = "FqnReferenceable";
726
+ type IconId = string;
727
+ type IconPositionValue = 'bottom' | 'left' | 'right' | 'top';
728
+ type Id = 'deployment' | 'element' | 'group' | 'instance' | 'model' | 'node' | ArrowType | DynamicViewDisplayVariantValue | ElementShape | IconPositionValue | LineOptions | Participant | RankValue | SizeValue | ThemeColor | string;
729
+ type LikeC4View = DeploymentView | DynamicView | ElementView;
730
+ declare const LikeC4View = "LikeC4View";
731
+ type LineOptions = 'dashed' | 'dotted' | 'solid';
732
+ type MetadataProperty = MetadataBody;
733
+ declare const MetadataProperty = "MetadataProperty";
734
+ type MetadataValue = MarkdownOrString | MetadataArray;
735
+ declare const MetadataValue = "MetadataValue";
736
+ type ModelReferenceable = Element | Imported;
737
+ declare const ModelReferenceable = "ModelReferenceable";
738
+ type Participant = 'source' | 'target';
739
+ type RankValue = 'max' | 'min' | 'same' | 'sink' | 'source';
740
+ type Referenceable = DeployedInstance | DeploymentNode | Element | Imported;
741
+ declare const Referenceable = "Referenceable";
742
+ type RelationExpr$1 = DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr;
743
+ declare const RelationExpr$1 = "RelationExpr";
744
+ type RelationExprOrWhere = RelationExpr$1 | RelationExprWhere;
745
+ declare const RelationExprOrWhere = "RelationExprOrWhere";
746
+ type RelationExprOrWith = RelationExprOrWhere | RelationExprWith;
747
+ declare const RelationExprOrWith = "RelationExprOrWith";
748
+ type RelationProperty = LinkProperty | MetadataProperty | RelationNavigateToProperty | RelationStringProperty | RelationStyleProperty;
749
+ declare const RelationProperty = "RelationProperty";
750
+ type RelationshipStyleProperty = ArrowProperty | ColorProperty | LineProperty;
751
+ declare const RelationshipStyleProperty = "RelationshipStyleProperty";
752
+ type SizeProperty = IconSizeProperty | PaddingSizeProperty | ShapeSizeProperty | TextSizeProperty;
753
+ declare const SizeProperty = "SizeProperty";
754
+ type SizeValue = 'large' | 'lg' | 'md' | 'medium' | 'sm' | 'small' | 'xl' | 'xlarge' | 'xs' | 'xsmall';
755
+ type StringProperty = ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty;
756
+ declare const StringProperty = "StringProperty";
757
+ type StyleProperty = BorderProperty | ColorProperty | IconColorProperty | IconPositionProperty | IconProperty | IconSizeProperty | MultipleProperty | OpacityProperty | PaddingSizeProperty | ShapeProperty | ShapeSizeProperty | TextSizeProperty;
758
+ declare const StyleProperty = "StyleProperty";
759
+ type ThemeColor = 'amber' | 'blue' | 'gray' | 'green' | 'indigo' | 'muted' | 'primary' | 'red' | 'secondary' | 'sky' | 'slate';
760
+ type Uri = string;
761
+ type ViewLayoutDirection = 'BottomTop' | 'LeftRight' | 'RightLeft' | 'TopBottom';
762
+ type ViewProperty = LinkProperty | ViewStringProperty;
763
+ declare const ViewProperty = "ViewProperty";
764
+ type ViewRule = ViewRuleAutoLayout | ViewRuleGlobalPredicateRef | ViewRuleGroup | ViewRulePredicate | ViewRuleRank | ViewRuleStyleOrGlobalRef;
765
+ declare const ViewRule = "ViewRule";
766
+ type ViewRuleStyleOrGlobalRef = ViewRuleGlobalStyle | ViewRuleStyle;
767
+ declare const ViewRuleStyleOrGlobalRef = "ViewRuleStyleOrGlobalRef";
768
+ type WhereElement = WhereElementKind | WhereElementTag;
769
+ declare const WhereElement = "WhereElement";
770
+ type WhereElementExpression = WhereBinaryExpression | WhereElement | WhereElementNegation;
771
+ declare const WhereElementExpression = "WhereElementExpression";
772
+ type WhereExpression = WhereElementExpression | WhereRelationExpression;
773
+ declare const WhereExpression = "WhereExpression";
774
+ type WhereKindEqual = WhereElementKind | WhereRelationKind | WhereRelationParticipantKind;
775
+ declare const WhereKindEqual = "WhereKindEqual";
776
+ type WhereRelation = WhereRelationKind | WhereRelationParticipantKind | WhereRelationParticipantTag | WhereRelationTag;
777
+ declare const WhereRelation = "WhereRelation";
778
+ type WhereRelationExpression = WhereBinaryExpression | WhereRelation | WhereRelationNegation;
779
+ declare const WhereRelationExpression = "WhereRelationExpression";
780
+ type WhereTagEqual = WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
781
+ declare const WhereTagEqual = "WhereTagEqual";
782
+ interface AbstractDynamicStep extends AstNode {
783
+ readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
784
+ readonly $type: 'AbstractDynamicStep' | 'DynamicStepChain' | 'DynamicStepSingle';
785
+ custom?: CustomRelationProperties;
786
+ dotKind?: RelationKindDotRef;
787
+ kind?: Reference<RelationshipKind>;
788
+ target: ElementRef;
789
+ title?: string;
290
790
  }
291
- declare const DynamicViewIncludePredicate = "DynamicViewIncludePredicate";
292
- interface DynamicViewParallelSteps extends AstNode {
293
- readonly $container: DynamicViewBody;
294
- readonly $type: 'DynamicViewParallelSteps';
295
- steps: Array<DynamicViewStep>;
791
+ declare const AbstractDynamicStep = "AbstractDynamicStep";
792
+ interface ArrowProperty extends AstNode {
793
+ readonly $container: CustomRelationProperties | RelationStyleProperty | SpecificationRelationshipKind;
794
+ readonly $type: 'ArrowProperty';
795
+ key: 'head' | 'tail';
796
+ value: ArrowType;
296
797
  }
297
- declare const DynamicViewParallelSteps = "DynamicViewParallelSteps";
298
- interface DynamicViewRef extends AstNode {
299
- readonly $container: RelationNavigateToProperty;
300
- readonly $type: 'DynamicViewRef';
301
- view: Reference<DynamicView>;
798
+ declare const ArrowProperty = "ArrowProperty";
799
+ interface BorderProperty extends AstNode {
800
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleGroup | ViewRuleStyle;
801
+ readonly $type: 'BorderProperty';
802
+ key: 'border';
803
+ value: BorderStyleValue;
302
804
  }
303
- declare const DynamicViewRef = "DynamicViewRef";
304
- interface Element extends AstNode {
305
- readonly $container: ElementBody | ExtendElementBody | Model;
306
- readonly $type: 'Element';
307
- body?: ElementBody;
308
- kind: Reference<ElementKind>;
309
- name: Id;
310
- props: Array<string>;
805
+ declare const BorderProperty = "BorderProperty";
806
+ interface ColorProperty extends AstNode {
807
+ readonly $container: CustomElementProperties | CustomRelationProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | RelationStyleProperty | SpecificationRelationshipKind | ViewRuleGroup | ViewRuleStyle;
808
+ readonly $type: 'ColorProperty';
809
+ customColor?: Reference<CustomColor>;
810
+ key: 'color';
811
+ themeColor?: ThemeColor;
311
812
  }
312
- declare const Element = "Element";
313
- interface ElementBody extends AstNode {
314
- readonly $container: Element;
315
- readonly $type: 'ElementBody';
316
- elements: Array<Element | Relation>;
317
- props: Array<ElementProperty>;
318
- tags?: Tags;
813
+ declare const ColorProperty = "ColorProperty";
814
+ interface CustomColor extends AstNode {
815
+ readonly $container: SpecificationColor;
816
+ readonly $type: 'CustomColor';
817
+ name: CustomColorId;
319
818
  }
320
- declare const ElementBody = "ElementBody";
321
- interface ElementKind extends AstNode {
322
- readonly $container: SpecificationElementKind;
323
- readonly $type: 'ElementKind';
324
- name: Id;
819
+ declare const CustomColor = "CustomColor";
820
+ interface CustomElementProperties extends AstNode {
821
+ readonly $container: FqnExprWith;
822
+ readonly $type: 'CustomElementProperties';
823
+ props: Array<ElementStringProperty | NavigateToProperty | NotationProperty | NotesProperty | StyleProperty>;
325
824
  }
326
- declare const ElementKind = "ElementKind";
327
- interface ElementKindExpression extends AstNode {
328
- readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
329
- readonly $type: 'ElementKindExpression';
330
- isEqual: boolean;
331
- kind: Reference<ElementKind>;
825
+ declare const CustomElementProperties = "CustomElementProperties";
826
+ interface CustomRelationProperties extends AstNode {
827
+ readonly $container: AbstractDynamicStep | RelationExprWith;
828
+ readonly $type: 'CustomRelationProperties';
829
+ props: Array<NotationProperty | NotesProperty | RelationNavigateToProperty | RelationStringProperty | RelationshipStyleProperty>;
332
830
  }
333
- declare const ElementKindExpression = "ElementKindExpression";
334
- interface ElementRef extends AstNode {
831
+ declare const CustomRelationProperties = "CustomRelationProperties";
832
+ interface DeployedInstance extends AstNode {
833
+ readonly $container: DeploymentNodeBody | ExtendDeploymentBody;
834
+ readonly $type: 'DeployedInstance';
835
+ body?: DeployedInstanceBody;
836
+ name?: Id;
837
+ summary?: string;
838
+ target: ElementRef;
839
+ title?: string;
840
+ }
841
+ declare const DeployedInstance = "DeployedInstance";
842
+ interface DeployedInstanceBody extends AstNode {
843
+ readonly $container: DeployedInstance;
844
+ readonly $type: 'DeployedInstanceBody';
845
+ elements: Array<DeploymentRelation>;
846
+ props: Array<ElementProperty>;
847
+ tags?: Tags;
848
+ }
849
+ declare const DeployedInstanceBody = "DeployedInstanceBody";
850
+ interface DeploymentNode extends AstNode {
851
+ readonly $container: DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
852
+ readonly $type: 'DeploymentNode';
853
+ body?: DeploymentNodeBody;
854
+ kind: Reference<DeploymentNodeKind>;
855
+ name: Id;
856
+ summary?: string;
857
+ title?: string;
858
+ }
859
+ declare const DeploymentNode = "DeploymentNode";
860
+ interface DeploymentNodeBody extends AstNode {
861
+ readonly $container: DeploymentNode;
862
+ readonly $type: 'DeploymentNodeBody';
863
+ elements: Array<DeployedInstance | DeploymentNode | DeploymentRelation>;
864
+ props: Array<ElementProperty>;
865
+ tags?: Tags;
866
+ }
867
+ declare const DeploymentNodeBody = "DeploymentNodeBody";
868
+ interface DeploymentNodeKind extends AstNode {
869
+ readonly $container: SpecificationDeploymentNodeKind;
870
+ readonly $type: 'DeploymentNodeKind';
871
+ name: Id;
872
+ }
873
+ declare const DeploymentNodeKind = "DeploymentNodeKind";
874
+ interface DeploymentRelation extends AstNode {
875
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
876
+ readonly $type: 'DeploymentRelation';
877
+ body?: DeploymentRelationBody;
878
+ description?: string;
879
+ dotKind?: RelationKindDotRef;
880
+ kind?: Reference<RelationshipKind>;
881
+ source?: FqnRef$2;
882
+ tags?: Tags;
883
+ target: FqnRef$2;
884
+ technology?: string;
885
+ title?: string;
886
+ }
887
+ declare const DeploymentRelation = "DeploymentRelation";
888
+ interface DeploymentRelationBody extends AstNode {
889
+ readonly $container: DeploymentRelation;
890
+ readonly $type: 'DeploymentRelationBody';
891
+ props: Array<RelationProperty>;
892
+ tags?: Tags;
893
+ }
894
+ declare const DeploymentRelationBody = "DeploymentRelationBody";
895
+ interface DeploymentView extends AstNode {
896
+ readonly $container: ModelViews;
897
+ readonly $type: 'DeploymentView';
898
+ body?: DeploymentViewBody;
899
+ name: Id;
900
+ }
901
+ declare const DeploymentView = "DeploymentView";
902
+ interface DeploymentViewBody extends AstNode {
903
+ readonly $container: DeploymentView;
904
+ readonly $type: 'DeploymentViewBody';
905
+ props: Array<ViewProperty>;
906
+ rules: Array<DeploymentViewRule>;
907
+ tags?: Tags;
908
+ }
909
+ declare const DeploymentViewBody = "DeploymentViewBody";
910
+ interface DeploymentViewRulePredicate extends AstNode {
911
+ readonly $container: DeploymentViewBody;
912
+ readonly $type: 'DeploymentViewRulePredicate';
913
+ expr: Expressions;
914
+ isInclude: boolean;
915
+ }
916
+ declare const DeploymentViewRulePredicate = "DeploymentViewRulePredicate";
917
+ interface DeploymentViewRuleStyle extends AstNode {
918
+ readonly $container: DeploymentViewBody;
919
+ readonly $type: 'DeploymentViewRuleStyle';
920
+ props: Array<NotationProperty | StyleProperty>;
921
+ targets: FqnExpressions;
922
+ }
923
+ declare const DeploymentViewRuleStyle = "DeploymentViewRuleStyle";
924
+ interface DirectedRelationExpr extends AstNode {
925
+ readonly $container: Expressions | RelationExprWhere | RelationExprWith;
926
+ readonly $type: 'DirectedRelationExpr';
927
+ source: OutgoingRelationExpr;
928
+ target: FqnExpr$2;
929
+ }
930
+ declare const DirectedRelationExpr = "DirectedRelationExpr";
931
+ interface DynamicView extends AstNode {
932
+ readonly $container: ModelViews;
933
+ readonly $type: 'DynamicView';
934
+ body?: DynamicViewBody;
935
+ name: Id;
936
+ }
937
+ declare const DynamicView = "DynamicView";
938
+ interface DynamicViewBody extends AstNode {
939
+ readonly $container: DynamicView;
940
+ readonly $type: 'DynamicViewBody';
941
+ props: Array<DynamicViewProperty>;
942
+ rules: Array<DynamicViewRule>;
943
+ steps: Array<DynamicViewParallelSteps | DynamicViewStep>;
944
+ tags?: Tags;
945
+ }
946
+ declare const DynamicViewBody = "DynamicViewBody";
947
+ interface DynamicViewDisplayVariantProperty extends AstNode {
948
+ readonly $container: DynamicViewBody;
949
+ readonly $type: 'DynamicViewDisplayVariantProperty';
950
+ key: 'variant';
951
+ value: DynamicViewDisplayVariantValue;
952
+ }
953
+ declare const DynamicViewDisplayVariantProperty = "DynamicViewDisplayVariantProperty";
954
+ interface DynamicViewGlobalPredicateRef extends AstNode {
955
+ readonly $container: DynamicViewBody;
956
+ readonly $type: 'DynamicViewGlobalPredicateRef';
957
+ predicate: Reference<GlobalDynamicPredicateGroup>;
958
+ }
959
+ declare const DynamicViewGlobalPredicateRef = "DynamicViewGlobalPredicateRef";
960
+ interface DynamicViewIncludePredicate extends AstNode {
961
+ readonly $container: DynamicViewBody | GlobalDynamicPredicateGroup;
962
+ readonly $type: 'DynamicViewIncludePredicate';
963
+ exprs: Expressions;
964
+ }
965
+ declare const DynamicViewIncludePredicate = "DynamicViewIncludePredicate";
966
+ interface DynamicViewParallelSteps extends AstNode {
967
+ readonly $container: DynamicViewBody;
968
+ readonly $type: 'DynamicViewParallelSteps';
969
+ steps: Array<DynamicViewStep>;
970
+ }
971
+ declare const DynamicViewParallelSteps = "DynamicViewParallelSteps";
972
+ interface DynamicViewRef extends AstNode {
973
+ readonly $container: RelationNavigateToProperty;
974
+ readonly $type: 'DynamicViewRef';
975
+ view: Reference<DynamicView>;
976
+ }
977
+ declare const DynamicViewRef = "DynamicViewRef";
978
+ interface Element extends AstNode {
979
+ readonly $container: ElementBody | ExtendElementBody | Model;
980
+ readonly $type: 'Element';
981
+ body?: ElementBody;
982
+ kind: Reference<ElementKind>;
983
+ name: Id;
984
+ props: Array<string>;
985
+ }
986
+ declare const Element = "Element";
987
+ interface ElementBody extends AstNode {
988
+ readonly $container: Element;
989
+ readonly $type: 'ElementBody';
990
+ elements: Array<Element | Relation>;
991
+ props: Array<ElementProperty>;
992
+ tags?: Tags;
993
+ }
994
+ declare const ElementBody = "ElementBody";
995
+ interface ElementKind extends AstNode {
996
+ readonly $container: SpecificationElementKind;
997
+ readonly $type: 'ElementKind';
998
+ name: Id;
999
+ }
1000
+ declare const ElementKind = "ElementKind";
1001
+ interface ElementKindExpression extends AstNode {
1002
+ readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
1003
+ readonly $type: 'ElementKindExpression';
1004
+ isEqual: boolean;
1005
+ kind: Reference<ElementKind>;
1006
+ }
1007
+ declare const ElementKindExpression = "ElementKindExpression";
1008
+ interface ElementRef extends AstNode {
335
1009
  readonly $container: AbstractDynamicStep | DeployedInstance | DynamicStepSingle | ElementView;
336
1010
  readonly $type: 'ElementRef';
337
1011
  modelElement: FqnRef$2;
@@ -685,7 +1359,7 @@ interface NotationProperty extends AstNode {
685
1359
  }
686
1360
  declare const NotationProperty = "NotationProperty";
687
1361
  interface NotesProperty extends AstNode {
688
- readonly $container: CustomRelationProperties;
1362
+ readonly $container: CustomElementProperties | CustomRelationProperties;
689
1363
  readonly $type: 'NotesProperty';
690
1364
  key: 'notes';
691
1365
  value: MarkdownOrString;
@@ -808,7 +1482,7 @@ declare const ShapeSizeProperty = "ShapeSizeProperty";
808
1482
  interface SpecificationColor extends AstNode {
809
1483
  readonly $container: SpecificationRule;
810
1484
  readonly $type: 'SpecificationColor';
811
- color: ColorLiteral;
1485
+ color: ColorLiteral$1;
812
1486
  name: CustomColor;
813
1487
  }
814
1488
  declare const SpecificationColor = "SpecificationColor";
@@ -863,8 +1537,8 @@ declare const SpecificationRule = "SpecificationRule";
863
1537
  interface SpecificationTag extends AstNode {
864
1538
  readonly $container: SpecificationRule;
865
1539
  readonly $type: 'SpecificationTag';
866
- color?: ColorLiteral;
867
- tag: Tag;
1540
+ color?: ColorLiteral$1;
1541
+ tag: Tag$1;
868
1542
  }
869
1543
  declare const SpecificationTag = "SpecificationTag";
870
1544
  interface StrictFqnElementRef extends AstNode {
@@ -881,16 +1555,16 @@ interface StrictFqnRef extends AstNode {
881
1555
  value: Reference<Referenceable>;
882
1556
  }
883
1557
  declare const StrictFqnRef = "StrictFqnRef";
884
- interface Tag extends AstNode {
1558
+ interface Tag$1 extends AstNode {
885
1559
  readonly $container: SpecificationTag;
886
1560
  readonly $type: 'Tag';
887
1561
  name: Id;
888
1562
  }
889
- declare const Tag = "Tag";
1563
+ declare const Tag$1 = "Tag";
890
1564
  interface TagRef extends AstNode {
891
1565
  readonly $container: ElementTagExpression | Tags | WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
892
1566
  readonly $type: 'TagRef';
893
- tag: Reference<Tag>;
1567
+ tag: Reference<Tag$1>;
894
1568
  }
895
1569
  declare const TagRef = "TagRef";
896
1570
  interface Tags extends AstNode {
@@ -968,1277 +1642,267 @@ interface ViewStringProperty extends AstNode {
968
1642
  key: 'description' | 'title';
969
1643
  value: MarkdownOrString;
970
1644
  }
971
- declare const ViewStringProperty = "ViewStringProperty";
972
- interface WhereBinaryExpression extends AstNode {
973
- readonly $container: FqnExprWhere | RelationExprWhere | WhereBinaryExpression | WhereElementNegation | WhereRelationNegation;
974
- readonly $type: 'WhereBinaryExpression';
975
- left: WhereElementExpression | WhereRelationExpression;
976
- operator: 'and' | 'or';
977
- right: WhereElementExpression | WhereRelationExpression;
978
- }
979
- declare const WhereBinaryExpression = "WhereBinaryExpression";
980
- interface WhereElementKind extends AstNode {
981
- readonly $container: FqnExprWhere | WhereBinaryExpression | WhereElementNegation;
982
- readonly $type: 'WhereElementKind';
983
- not: boolean;
984
- operator: 'is' | string;
985
- value: Reference<DeploymentNodeOrElementKind>;
986
- }
987
- declare const WhereElementKind = "WhereElementKind";
988
- interface WhereElementNegation extends AstNode {
989
- readonly $container: FqnExprWhere | WhereBinaryExpression | WhereElementNegation;
990
- readonly $type: 'WhereElementNegation';
991
- value: WhereElementExpression;
992
- }
993
- declare const WhereElementNegation = "WhereElementNegation";
994
- interface WhereElementTag extends AstNode {
995
- readonly $container: FqnExprWhere | WhereBinaryExpression | WhereElementNegation;
996
- readonly $type: 'WhereElementTag';
997
- not: boolean;
998
- operator: 'is' | string;
999
- value: TagRef;
1000
- }
1001
- declare const WhereElementTag = "WhereElementTag";
1002
- interface WhereRelationKind extends AstNode {
1003
- readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1004
- readonly $type: 'WhereRelationKind';
1005
- not: boolean;
1006
- operator: 'is' | string;
1007
- value: Reference<RelationshipKind>;
1008
- }
1009
- declare const WhereRelationKind = "WhereRelationKind";
1010
- interface WhereRelationNegation extends AstNode {
1011
- readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1012
- readonly $type: 'WhereRelationNegation';
1013
- value: WhereRelationExpression;
1014
- }
1015
- declare const WhereRelationNegation = "WhereRelationNegation";
1016
- interface WhereRelationParticipantKind extends AstNode {
1017
- readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1018
- readonly $type: 'WhereRelationParticipantKind';
1019
- not: boolean;
1020
- operator: 'is' | string;
1021
- participant: Participant;
1022
- value: Reference<DeploymentNodeOrElementKind>;
1023
- }
1024
- declare const WhereRelationParticipantKind = "WhereRelationParticipantKind";
1025
- interface WhereRelationParticipantTag extends AstNode {
1026
- readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1027
- readonly $type: 'WhereRelationParticipantTag';
1028
- not: boolean;
1029
- operator: 'is' | string;
1030
- participant: Participant;
1031
- value: TagRef;
1032
- }
1033
- declare const WhereRelationParticipantTag = "WhereRelationParticipantTag";
1034
- interface WhereRelationTag extends AstNode {
1035
- readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1036
- readonly $type: 'WhereRelationTag';
1037
- not: boolean;
1038
- operator: 'is' | string;
1039
- value: TagRef;
1040
- }
1041
- declare const WhereRelationTag = "WhereRelationTag";
1042
- interface WildcardExpression extends AstNode {
1043
- readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
1044
- readonly $type: 'WildcardExpression';
1045
- isWildcard: boolean;
1046
- }
1047
- declare const WildcardExpression = "WildcardExpression";
1048
- interface DynamicStepChain extends AbstractDynamicStep {
1049
- readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
1050
- readonly $type: 'DynamicStepChain';
1051
- source: DynamicStepChain | DynamicStepSingle;
1052
- }
1053
- declare const DynamicStepChain = "DynamicStepChain";
1054
- interface DynamicStepSingle extends AbstractDynamicStep {
1055
- readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
1056
- readonly $type: 'DynamicStepSingle';
1057
- isBackward: boolean;
1058
- source: ElementRef;
1059
- }
1060
- declare const DynamicStepSingle = "DynamicStepSingle";
1061
- type LikeC4AstType = {
1062
- AbstractDynamicStep: AbstractDynamicStep;
1063
- AnyProperty: AnyProperty;
1064
- ArrowProperty: ArrowProperty;
1065
- BorderProperty: BorderProperty;
1066
- ColorLiteral: ColorLiteral;
1067
- ColorProperty: ColorProperty;
1068
- CustomColor: CustomColor;
1069
- CustomElementProperties: CustomElementProperties;
1070
- CustomRelationProperties: CustomRelationProperties;
1071
- DeployedInstance: DeployedInstance;
1072
- DeployedInstanceBody: DeployedInstanceBody;
1073
- DeploymentElement: DeploymentElement;
1074
- DeploymentNode: DeploymentNode;
1075
- DeploymentNodeBody: DeploymentNodeBody;
1076
- DeploymentNodeKind: DeploymentNodeKind;
1077
- DeploymentNodeOrElementKind: DeploymentNodeOrElementKind;
1078
- DeploymentRelation: DeploymentRelation;
1079
- DeploymentRelationBody: DeploymentRelationBody;
1080
- DeploymentView: DeploymentView;
1081
- DeploymentViewBody: DeploymentViewBody;
1082
- DeploymentViewRule: DeploymentViewRule;
1083
- DeploymentViewRulePredicate: DeploymentViewRulePredicate;
1084
- DeploymentViewRuleStyle: DeploymentViewRuleStyle;
1085
- DirectedRelationExpr: DirectedRelationExpr;
1086
- DynamicStepChain: DynamicStepChain;
1087
- DynamicStepSingle: DynamicStepSingle;
1088
- DynamicView: DynamicView;
1089
- DynamicViewBody: DynamicViewBody;
1090
- DynamicViewDisplayVariantProperty: DynamicViewDisplayVariantProperty;
1091
- DynamicViewGlobalPredicateRef: DynamicViewGlobalPredicateRef;
1092
- DynamicViewIncludePredicate: DynamicViewIncludePredicate;
1093
- DynamicViewParallelSteps: DynamicViewParallelSteps;
1094
- DynamicViewProperty: DynamicViewProperty;
1095
- DynamicViewRef: DynamicViewRef;
1096
- DynamicViewRule: DynamicViewRule;
1097
- DynamicViewStep: DynamicViewStep;
1098
- Element: Element;
1099
- ElementBody: ElementBody;
1100
- ElementKind: ElementKind;
1101
- ElementKindExpression: ElementKindExpression;
1102
- ElementProperty: ElementProperty;
1103
- ElementRef: ElementRef;
1104
- ElementStringProperty: ElementStringProperty;
1105
- ElementStyleProperty: ElementStyleProperty;
1106
- ElementTagExpression: ElementTagExpression;
1107
- ElementView: ElementView;
1108
- ElementViewBody: ElementViewBody;
1109
- ElementViewRef: ElementViewRef;
1110
- ExpressionV2: ExpressionV2;
1111
- Expressions: Expressions;
1112
- ExtendDeployment: ExtendDeployment;
1113
- ExtendDeploymentBody: ExtendDeploymentBody;
1114
- ExtendElement: ExtendElement;
1115
- ExtendElementBody: ExtendElementBody;
1116
- ExtendElementProperty: ExtendElementProperty;
1117
- ExtendRelation: ExtendRelation;
1118
- ExtendRelationBody: ExtendRelationBody;
1119
- ExtendRelationProperty: ExtendRelationProperty;
1120
- FqnExpr: FqnExpr$2;
1121
- FqnExprOrWhere: FqnExprOrWhere;
1122
- FqnExprOrWith: FqnExprOrWith;
1123
- FqnExprWhere: FqnExprWhere;
1124
- FqnExprWith: FqnExprWith;
1125
- FqnExpressions: FqnExpressions;
1126
- FqnRef: FqnRef$2;
1127
- FqnRefExpr: FqnRefExpr;
1128
- FqnReferenceable: FqnReferenceable;
1129
- GlobalDynamicPredicateGroup: GlobalDynamicPredicateGroup;
1130
- GlobalPredicateGroup: GlobalPredicateGroup;
1131
- GlobalStyle: GlobalStyle;
1132
- GlobalStyleGroup: GlobalStyleGroup;
1133
- GlobalStyleId: GlobalStyleId;
1134
- Globals: Globals;
1135
- HexColor: HexColor;
1136
- IconColorProperty: IconColorProperty;
1137
- IconPositionProperty: IconPositionProperty;
1138
- IconProperty: IconProperty;
1139
- IconSizeProperty: IconSizeProperty;
1140
- Imported: Imported;
1141
- ImportsFromPoject: ImportsFromPoject;
1142
- InOutRelationExpr: InOutRelationExpr;
1143
- IncomingRelationExpr: IncomingRelationExpr;
1144
- LibIcon: LibIcon;
1145
- LikeC4Grammar: LikeC4Grammar;
1146
- LikeC4Lib: LikeC4Lib;
1147
- LikeC4View: LikeC4View;
1148
- LineProperty: LineProperty;
1149
- LinkProperty: LinkProperty;
1150
- MarkdownOrString: MarkdownOrString;
1151
- MetadataArray: MetadataArray;
1152
- MetadataAttribute: MetadataAttribute;
1153
- MetadataBody: MetadataBody;
1154
- MetadataProperty: MetadataProperty;
1155
- MetadataValue: MetadataValue;
1156
- Model: Model;
1157
- ModelDeployments: ModelDeployments;
1158
- ModelReferenceable: ModelReferenceable;
1159
- ModelViews: ModelViews;
1160
- MultipleProperty: MultipleProperty;
1161
- NavigateToProperty: NavigateToProperty;
1162
- NotationProperty: NotationProperty;
1163
- NotesProperty: NotesProperty;
1164
- OpacityProperty: OpacityProperty;
1165
- OutgoingRelationExpr: OutgoingRelationExpr;
1166
- PaddingSizeProperty: PaddingSizeProperty;
1167
- RGBAColor: RGBAColor;
1168
- Referenceable: Referenceable;
1169
- Relation: Relation;
1170
- RelationBody: RelationBody;
1171
- RelationExpr: RelationExpr$1;
1172
- RelationExprOrWhere: RelationExprOrWhere;
1173
- RelationExprOrWith: RelationExprOrWith;
1174
- RelationExprWhere: RelationExprWhere;
1175
- RelationExprWith: RelationExprWith;
1176
- RelationKindDotRef: RelationKindDotRef;
1177
- RelationNavigateToProperty: RelationNavigateToProperty;
1178
- RelationProperty: RelationProperty;
1179
- RelationStringProperty: RelationStringProperty;
1180
- RelationStyleProperty: RelationStyleProperty;
1181
- RelationshipKind: RelationshipKind;
1182
- RelationshipStyleProperty: RelationshipStyleProperty;
1183
- ShapeProperty: ShapeProperty;
1184
- ShapeSizeProperty: ShapeSizeProperty;
1185
- SizeProperty: SizeProperty;
1186
- SpecificationColor: SpecificationColor;
1187
- SpecificationDeploymentNodeKind: SpecificationDeploymentNodeKind;
1188
- SpecificationElementKind: SpecificationElementKind;
1189
- SpecificationElementStringProperty: SpecificationElementStringProperty;
1190
- SpecificationRelationshipKind: SpecificationRelationshipKind;
1191
- SpecificationRelationshipStringProperty: SpecificationRelationshipStringProperty;
1192
- SpecificationRule: SpecificationRule;
1193
- SpecificationTag: SpecificationTag;
1194
- StrictFqnElementRef: StrictFqnElementRef;
1195
- StrictFqnRef: StrictFqnRef;
1196
- StringProperty: StringProperty;
1197
- StyleProperty: StyleProperty;
1198
- Tag: Tag;
1199
- TagRef: TagRef;
1200
- Tags: Tags;
1201
- TextSizeProperty: TextSizeProperty;
1202
- ViewProperty: ViewProperty;
1203
- ViewRef: ViewRef;
1204
- ViewRule: ViewRule;
1205
- ViewRuleAutoLayout: ViewRuleAutoLayout;
1206
- ViewRuleGlobalPredicateRef: ViewRuleGlobalPredicateRef;
1207
- ViewRuleGlobalStyle: ViewRuleGlobalStyle;
1208
- ViewRuleGroup: ViewRuleGroup;
1209
- ViewRulePredicate: ViewRulePredicate;
1210
- ViewRuleRank: ViewRuleRank;
1211
- ViewRuleStyle: ViewRuleStyle;
1212
- ViewRuleStyleOrGlobalRef: ViewRuleStyleOrGlobalRef;
1213
- ViewStringProperty: ViewStringProperty;
1214
- WhereBinaryExpression: WhereBinaryExpression;
1215
- WhereElement: WhereElement;
1216
- WhereElementExpression: WhereElementExpression;
1217
- WhereElementKind: WhereElementKind;
1218
- WhereElementNegation: WhereElementNegation;
1219
- WhereElementTag: WhereElementTag;
1220
- WhereExpression: WhereExpression;
1221
- WhereKindEqual: WhereKindEqual;
1222
- WhereRelation: WhereRelation;
1223
- WhereRelationExpression: WhereRelationExpression;
1224
- WhereRelationKind: WhereRelationKind;
1225
- WhereRelationNegation: WhereRelationNegation;
1226
- WhereRelationParticipantKind: WhereRelationParticipantKind;
1227
- WhereRelationParticipantTag: WhereRelationParticipantTag;
1228
- WhereRelationTag: WhereRelationTag;
1229
- WhereTagEqual: WhereTagEqual;
1230
- WildcardExpression: WildcardExpression;
1231
- };
1232
- //#endregion
1233
- //#region ../language-server/dist/_chunks/protocol.d.mts
1234
- /**
1235
- * When server requests to open a likec4 preview panel
1236
- * (available only in the editor).
1237
- * (not the best place, but seems to be working)
1238
- */
1239
- declare namespace DidRequestOpenViewNotification {
1240
- type Params = {
1241
- viewId: ViewId$1;
1242
- projectId: ProjectId$1;
1243
- };
1244
- const type: NotificationType<Params>;
1245
- type Type = typeof type;
1246
- }
1247
- /**
1248
- * Request to fetch the computed model data
1249
- * If LSP has multiple projects, the projectId is required.
1250
- * otherwise throws an error.
1251
- */
1252
- /**
1253
- * Request to locate an element, relation, deployment or view.
1254
- * If LSP has multiple projects, the projectId is required.
1255
- */
1256
- declare namespace Locate {
1257
- type Params =
1258
- /**
1259
- * Locate an element by its fqn
1260
- */
1261
- {
1262
- element: Fqn$1;
1263
- projectId?: string | undefined;
1264
- property?: string;
1265
- }
1266
- /**
1267
- * Locate a relation by its id
1268
- */
1269
- | {
1270
- projectId?: string | undefined;
1271
- relation: RelationId;
1272
- }
1273
- /**
1274
- * Locate a deployment by its fqn
1275
- */
1276
- | {
1277
- deployment: DeploymentFqn;
1278
- projectId?: string | undefined;
1279
- property?: string;
1280
- }
1281
- /**
1282
- * Locate a step in a dynamic view by its astPath
1283
- */
1284
- | {
1285
- view: ViewId$1;
1286
- astPath: string;
1287
- projectId?: string | undefined;
1288
- }
1289
- /**
1290
- * Locate a view by its id
1291
- */
1292
- | {
1293
- view: ViewId$1;
1294
- projectId?: string | undefined;
1295
- };
1296
- type Res = Location | null;
1297
- const req: RequestType<Params, Res, void>;
1298
- type Req = typeof req;
1299
- }
1300
- /**
1301
- * Request to change the view
1302
- * If LSP has multiple projects, the projectId is required.
1303
- */
1304
- declare namespace ChangeView {
1305
- type Params = {
1306
- viewId: ViewId$1;
1307
- change: ViewChange$1;
1308
- projectId?: string | undefined;
1309
- };
1310
- type Res = {
1311
- success: true;
1312
- location: Location | null;
1313
- } | {
1314
- success: false;
1315
- location?: Location | null;
1316
- error: string;
1317
- };
1318
- const req: RequestType<Params, Res, void>;
1319
- type Req = typeof req;
1320
- }
1321
- /**
1322
- * Request to fetch telemetry metrics
1323
- */
1324
- //#endregion
1325
- //#region ../layouts/dist/_chunks/GraphvizLayoter.d.mts
1326
- //#region src/graphviz/types.d.ts
1327
- /**
1328
- * Partially implements CancellationToken interface from vscode-jsonrpc
1329
- */
1330
- type CancellationToken = {
1331
- /**
1332
- * Is `true` when the token has been cancelled, `false` otherwise.
1333
- */
1334
- readonly isCancellationRequested: boolean;
1335
- };
1336
- declare module 'ts-graphviz' {
1337
- namespace GraphAttributeKey {
1338
- interface $values extends $keywords<'likec4_viewId'> {}
1339
- }
1340
- namespace ClusterSubgraphAttributeKey {
1341
- interface $values extends $keywords<'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_level' | 'likec4_depth'> {}
1342
- }
1343
- namespace NodeAttributeKey {
1344
- interface $values extends $keywords<'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_project' | 'likec4_level'> {}
1345
- }
1346
- namespace EdgeAttributeKey {
1347
- interface $values extends $keywords<'likec4_id' | 'likec4_project'> {}
1348
- }
1349
- namespace Attribute {
1350
- interface $keys extends $keywords<'likec4_viewId' | 'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_project' | 'likec4_level' | 'likec4_depth'> {}
1351
- interface $types {
1352
- likec4_viewId: string;
1353
- likec4_type: 'folder' | 'file' | 'view';
1354
- likec4_path: string;
1355
- likec4_id: string;
1356
- likec4_project: string;
1357
- likec4_level: number;
1358
- likec4_depth: number;
1359
- }
1360
- }
1361
- }
1362
- type DotSource = Tagged<string, 'DotSource'>; //#endregion
1363
- //#region src/graphviz/types-dot.d.ts
1364
- type GvNodeName = Tagged<string, 'GvNodeName'>;
1365
- type GvId = Tagged<number, 'GvId'>;
1366
- type Point = [x: number, y: number];
1367
- interface GraphvizJson {
1368
- name: GvNodeName;
1369
- directed: boolean;
1370
- strict: boolean;
1371
- _draw_: GraphvizJson.Draw[];
1372
- bb: string;
1373
- compound: string;
1374
- fontname: string;
1375
- fontsize: string;
1376
- label: string;
1377
- nodesep: string;
1378
- outputorder: string;
1379
- rankdir: string;
1380
- ranksep: string;
1381
- splines: string;
1382
- xdotversion: string;
1383
- _subgraph_cnt: number;
1384
- objects?: GraphvizJson.GvObject[];
1385
- edges?: GraphvizJson.Edge[];
1386
- }
1387
- declare namespace GraphvizJson {
1388
- interface Draw {
1389
- op: string;
1390
- grad: string;
1391
- color: string;
1392
- points: Point[];
1393
- }
1394
- interface Draw2 {
1395
- op: string;
1396
- grad: string;
1397
- color: string;
1398
- points: Point[];
1399
- }
1400
- namespace DrawOps {
1401
- type Style = {
1402
- op: 'S';
1403
- style: string;
1404
- };
1405
- type BSpline = {
1406
- op: 'b' | 'B';
1407
- points: Point[];
1408
- };
1409
- type Color = {
1410
- op: 'c';
1411
- grad: string;
1412
- color: string;
1413
- };
1414
- type Polygon = {
1415
- op: 'p' | 'P';
1416
- points: Point[];
1417
- };
1418
- }
1419
- type DrawOp = DrawOps.Style | DrawOps.BSpline | DrawOps.Color | DrawOps.Polygon;
1420
- type LabelDrawOps = {
1421
- op: 'F';
1422
- size: number;
1423
- face: string;
1424
- } | {
1425
- op: 'c';
1426
- color: string;
1427
- } | {
1428
- op: 't';
1429
- fontchar: number;
1430
- } | {
1431
- op: 'T';
1432
- pt: Point;
1433
- align: 'l' | 'r' | 'c';
1434
- width: number;
1435
- text: string;
1436
- };
1437
- type GvObject = GvNodeObject | GvSubgraph;
1438
- interface GvSubgraph {
1439
- bb: string;
1440
- label?: string;
1441
- compound: 'true';
1442
- _ldraw_?: LabelDrawOps[];
1443
- likec4_type?: 'folder' | 'file';
1444
- likec4_path?: string;
1445
- likec4_id?: Fqn$1;
1446
- likec4_level?: number;
1447
- likec4_depth?: number;
1448
- _gvid: GvId;
1449
- subgraphs?: GvId[];
1450
- nodes?: GvId[];
1451
- edges?: GvId[];
1452
- }
1453
- interface GvNodeObject {
1454
- _draw_: Draw[];
1455
- _ldraw_?: LabelDrawOps[];
1456
- likec4_type?: 'folder' | 'file' | 'view';
1457
- likec4_path?: string;
1458
- likec4_id?: Fqn$1;
1459
- likec4_level?: number;
1460
- _gvid: GvId;
1461
- height: string;
1462
- pos: string;
1463
- shape: 'rect';
1464
- width: string;
1465
- label?: string;
1466
- }
1467
- interface Draw3 {
1468
- op: string;
1469
- grad: string;
1470
- color: string;
1471
- points: Point[];
1472
- }
1473
- interface Hdraw {
1474
- op: string;
1475
- style: string;
1476
- grad: string;
1477
- color: string;
1478
- points: Point[];
1479
- }
1480
- interface Edge {
1481
- _gvid: GvId;
1482
- tail: GvId;
1483
- head: GvId;
1484
- dir?: 'forward' | 'back' | 'both' | 'none';
1485
- _draw_: DrawOp[];
1486
- _hdraw_?: DrawOp[];
1487
- _tdraw_?: DrawOp[];
1488
- _ldraw_?: LabelDrawOps[];
1489
- _tldraw_?: LabelDrawOps[];
1490
- _hldraw_?: LabelDrawOps[];
1491
- fontname: string;
1492
- fontsize: string;
1493
- likec4_id?: EdgeId;
1494
- label: string;
1495
- lp: string;
1496
- nojustify?: 'true' | 'false';
1497
- pos?: string;
1498
- }
1499
- } //#endregion
1500
- //#region src/graphviz/GraphvizLayoter.d.ts
1501
- interface GraphvizPort extends Disposable {
1502
- get concurrency(): number;
1503
- unflatten(dot: DotSource): Promise<DotSource>;
1504
- acyclic(dot: DotSource): Promise<DotSource>;
1505
- layoutJson(dot: DotSource): Promise<string>;
1506
- svg(dot: DotSource): Promise<string>;
1507
- dispose(): void;
1508
- }
1509
- type LayoutTaskParams<A extends aux$1.Any = aux$1.Any> = {
1510
- view: ComputedView<A>;
1511
- styles: LikeC4Styles;
1512
- };
1513
- type LayoutResult<A extends aux$1.Any = aux$1.Any> = {
1514
- dot: DotSource;
1515
- diagram: DiagramView<A>;
1516
- };
1517
- declare class GraphvizLayouter implements Disposable {
1518
- private graphviz;
1519
- constructor(graphviz?: GraphvizPort);
1520
- dispose(): void;
1521
- [Symbol.dispose](): void;
1522
- get graphvizPort(): GraphvizPort;
1523
- changePort(graphviz: GraphvizPort): void;
1524
- dotToJson(dot: DotSource): Promise<GraphvizJson>;
1525
- layout<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<LayoutResult<A>>;
1526
- svg<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<{
1527
- svg: string;
1528
- dot: DotSource;
1529
- }>;
1530
- dot<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<DotSource>;
1531
- layoutProjectsView(view: ComputedProjectsView): Promise<LayoutedProjectsView>;
1532
- } //#endregion
1533
- //#endregion
1534
- //#region ../layouts/dist/graphviz/QueueGraphvizLayoter.d.mts
1535
- //#region src/graphviz/QueueGraphvizLayoter.d.ts
1536
- declare class QueueGraphvizLayoter extends GraphvizLayouter {
1537
- private queue;
1538
- private isProcessingBatch;
1539
- constructor(options?: {
1540
- graphviz?: GraphvizPort;
1541
- /**
1542
- * Concurrency limit.
1543
- * Minimum: `1`.
1544
- * @default 2
1545
- */
1546
- concurrency?: number;
1547
- /**
1548
- * Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.
1549
- * @default 20_000
1550
- */
1551
- timeout?: number;
1552
- /**
1553
- * Whether or not a timeout is considered an exception.
1554
- * @default true
1555
- */
1556
- throwOnTimeout?: boolean;
1557
- });
1558
- private runInQueue;
1559
- changePort(graphvizPort: GraphvizPort): void;
1560
- layout<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<LayoutResult<A>>;
1561
- layoutProjectsView(view: ComputedProjectsView): Promise<LayoutedProjectsView>;
1562
- batchLayout<A extends AnyAux>(params: {
1563
- batch: LayoutTaskParams<A>[];
1564
- cancelToken?: CancellationToken | undefined;
1565
- onSuccess?: (task: LayoutTaskParams<A>, result: LayoutResult<A>) => void;
1566
- onError?: (task: LayoutTaskParams<A>, error: unknown) => void;
1567
- }): Promise<LayoutResult<A>[]>;
1568
- dispose(): void;
1569
- } //#endregion
1570
- //#endregion
1571
- //#region ../language-server/dist/_chunks/LikeC4LanguageServices.d.mts
1572
- //#region src/documentation/documentation-provider.d.ts
1573
- declare class LikeC4DocumentationProvider implements DocumentationProvider {
1574
- private parser;
1575
- private locator;
1576
- constructor(services: LikeC4Services);
1577
- getDocumentation(node: AstNode): string | undefined;
1578
- } //#endregion
1579
- //#region src/workspace/ProjectsManager.d.ts
1580
- /**
1581
- * A tagged string that represents a project folder URI
1582
- * Always has trailing slash.
1583
- */
1584
- type ProjectFolder = Tagged<string, 'ProjectFolder'>;
1585
- declare function ProjectFolder(folder: URI | string): ProjectFolder;
1586
- interface ProjectData {
1587
- id: ProjectId;
1588
- config: LikeC4ProjectConfig;
1589
- folder: ProjectFolder;
1590
- folderUri: URI;
1591
- exclude?: {
1592
- (test: string): boolean;
1593
- };
1594
- /**
1595
- * Resolved include paths with both URI and folder string representations.
1596
- * These are additional directories that are part of this project.
1597
- */
1598
- includePaths?: NonEmptyArray<{
1599
- uri: URI;
1600
- folder: ProjectFolder;
1601
- }>;
1602
- /**
1603
- * Normalized include configuration (paths, maxDepth, fileThreshold).
1604
- */
1605
- includeConfig: IncludeConfig;
1606
- }
1607
- interface Project {
1608
- id: ProjectId;
1609
- folderUri: URI;
1610
- config: LikeC4ProjectConfig;
1611
- /**
1612
- * Resolved include paths as URIs (if configured).
1613
- */
1614
- includePaths?: NonEmptyReadonlyArray<URI>;
1615
- }
1616
- declare class ProjectsManager {
1617
- #private;
1618
- protected services: LikeC4SharedServices;
1619
- /**
1620
- * The global project ID used for all documents
1621
- * that are not part of a specific project.
1622
- */
1623
- static readonly DefaultProjectId: ProjectId;
1624
- constructor(services: LikeC4SharedServices);
1625
- /**
1626
- * Returns:
1627
- * - configured default project ID if set
1628
- * - the default project ID if there are no projects.
1629
- * - the ID of the only project
1630
- * - undefined if there are multiple projects.
1631
- */
1632
- get defaultProjectId(): ProjectId | undefined;
1633
- set defaultProjectId(id: string | ProjectId | undefined);
1634
- get default(): ProjectData;
1635
- get all(): NonEmptyReadonlyArray<ProjectId>;
1636
- getProject(arg: ProjectId | LangiumDocument): Project;
1637
- /**
1638
- * Returns all projects that include the specified folder, or inside the folder.
1639
- */
1640
- findAllProjectsByFolder(folder: URI | string): ProjectData[];
1641
- /**
1642
- * Validates and ensures the project ID.
1643
- * If no project ID is specified, returns default project ID
1644
- * If there are multiple projects and default project is not set, throws an error
1645
- */
1646
- ensureProjectId(projectId?: ProjectId | undefined): ProjectId;
1647
- /**
1648
- * Validates and ensures the project.
1649
- */
1650
- ensureProject(projectId?: ProjectId | undefined): Project;
1651
- hasMultipleProjects(): boolean;
1652
- /**
1653
- * Checks if the specified document should be excluded from processing.
1654
- */
1655
- isExcluded(document: LangiumDocument | URI | string): boolean;
1656
- /**
1657
- * Checks if the specified document is included by the project:
1658
- * - if the document belongs to the project and is not excluded
1659
- * - if the document is included by the project
1660
- */
1661
- isIncluded(projectId: ProjectId, document: LangiumDocument | URI | string): boolean;
1662
- /**
1663
- * Checks if it is a config file and it is not excluded by default exclude pattern
1664
- *
1665
- * @param entry The file system entry to check
1666
- */
1667
- isConfigFile(entry: URI): boolean;
1668
- /**
1669
- * Registers likec4 project by config file.
1670
- */
1671
- registerConfigFile(configFile: URI, cancelToken?: CancellationToken$1): Promise<ProjectData>;
1672
- /**
1673
- * Registers (or reloads) likec4 project by config file or config object.
1674
- * If there is some project registered at same folder, it will be reloaded.
1675
- */
1676
- registerProject(opts: {
1677
- config: LikeC4ProjectConfig | LikeC4ProjectConfigInput;
1678
- folderUri: URI | string;
1679
- }, cancelToken?: CancellationToken$1): Promise<ProjectData>;
1680
- /**
1681
- * Determines which project the given document belongs to.
1682
- * If the document does not belong to any project, returns the default project ID.
1683
- */
1684
- belongsTo(document: LangiumDocument | URI | string): ProjectId;
1685
- reloadProjects(cancelToken?: CancellationToken$1): Promise<void>;
1686
- protected _reloadProjects(cancelToken?: CancellationToken$1): Promise<void>;
1687
- protected uniqueProjectId(name: string): ProjectId;
1688
- protected reset(): void;
1689
- rebuidProject(projectId: ProjectId, cancelToken?: CancellationToken$1): Promise<void>;
1690
- protected findProjectForDocument(documentUri: string): ProjectData;
1691
- protected get mappingsToProject(): WorkspaceCache<string, ProjectData>;
1692
- /**
1693
- * The mapping between documents and projects they belong to.
1694
- * Lazy-created due to initialization order of the LanguageServer
1695
- */
1696
- protected get documentBelongsTo(): WorkspaceCache<LangiumDocument, ProjectData>;
1697
- /**
1698
- * Returns all include paths from all projects.
1699
- * Used by WorkspaceManager to scan additional directories for C4 files.
1700
- */
1701
- getAllIncludePaths(): Array<{
1702
- projectId: ProjectId;
1703
- includePath: URI;
1704
- includeConfig: IncludeConfig;
1705
- }>;
1706
- /**
1707
- * Register a listener to be called when the projects configuration has changed.
1708
- * @returns A disposable that can be used to unregister the callback.
1709
- */
1710
- onProjectsUpdate(callback: () => void): Disposable$1;
1711
- private getWorkspaceFolder;
1712
- private notifyListeners;
1713
- } //#endregion
1714
- //#region src/filesystem/types.d.ts
1715
- interface FileNode extends FileSystemNode {
1716
- readonly isFile: true;
1717
- readonly isDirectory: false;
1718
- }
1719
- interface FileSystemProvider$1 extends FileSystemProvider {
1720
- /**
1721
- * Scans the project files for the given URI.
1722
- * @returns The list of file system entries that are contained within the specified directory.
1723
- */
1724
- scanProjectFiles(folderUri: URI): Promise<FileNode[]>;
1725
- /**
1726
- * Loads the project config from the given file.
1727
- * @returns The project config.
1728
- */
1729
- loadProjectConfig(filepath: URI): Promise<LikeC4ProjectConfig>;
1730
- /**
1731
- * Reads the directory information for the given URI.
1732
- * @param options.recursive If true, recursively reads the directory,
1733
- * @param options.maxDepth Maximum depth to traverse when recursive is true (default: Infinity)
1734
- */
1735
- readDirectory(uri: URI, options?: {
1736
- recursive?: boolean;
1737
- maxDepth?: number;
1738
- }): Promise<FileNode[]>;
1739
- /**
1740
- * Finds all files in the given directory, matching the given filter.
1741
- */
1742
- scanDirectory(directory: URI, filter: (filepath: string) => boolean): Promise<FileNode[]>;
1743
- /**
1744
- * Writes the content to the file system.
1745
- * Used by manual layouts.
1746
- */
1747
- writeFile(uri: URI, content: string): Promise<void>;
1748
- /**
1749
- * Deletes the file from the file system.
1750
- * Used by manual layouts.
1751
- * @return true if the file was deleted, false if the file did not exist.
1752
- */
1753
- deleteFile(uri: URI): Promise<boolean>;
1754
- }
1755
- interface FileSystemWatcher extends AsyncDisposable {
1756
- /**
1757
- * Watches a folder for changes and triggers a reload of the documents and projects.
1758
- */
1759
- watch(folder: string): void;
1760
- }
1761
- interface LikeC4ManualLayouts {
1762
- read(project: Project): Promise<Record<ViewId, LayoutedView> | null>;
1763
- write(project: Project, layouted: LayoutedView): Promise<Location>;
1764
- remove(project: Project, view: ViewId): Promise<Location | null>;
1765
- clearCaches(): void;
1766
- } //#endregion
1767
- //#region src/filesystem/noop.d.ts
1768
- //#endregion
1769
- //#region src/formatting/LikeC4Formatter.d.ts
1770
- type QuoteStyle = 'single' | 'double' | 'ignore' | 'auto';
1771
- interface LikeC4FormatterOptions {
1772
- quoteStyle: QuoteStyle;
1773
- }
1774
- type ExtendedFormattingCommandType = 'normalizeQuotes';
1775
- interface ExtendedFormattingCommand {
1776
- type: ExtendedFormattingCommandType;
1777
- region: FormattingRegion;
1778
- }
1779
- declare class LikeC4Formatter extends AbstractFormatter {
1780
- protected options: LikeC4FormatterOptions;
1781
- extendedFormattingCommands: ExtendedFormattingCommand[];
1782
- constructor(services: LikeC4Services);
1783
- protected doDocumentFormat(document: LangiumDocument, options: FormattingOptions, range?: Range): TextEdit[];
1784
- protected format(node: AstNode): void;
1785
- protected formatTags(node: AstNode): void;
1786
- protected formatDeploymentRelation(node: AstNode): void;
1787
- protected formatExtendDeployment(node: AstNode): void;
1788
- protected formatRelation(node: AstNode): void;
1789
- protected removeIndentFromTopLevelStatements(node: AstNode): void;
1790
- protected indentContentInBraces(node: AstNode): void;
1791
- protected appendKeywordsWithSpace(node: AstNode): void;
1792
- protected formatView(node: AstNode): void;
1793
- protected formatLeafProperty(node: AstNode): void;
1794
- protected formatLinkProperty(node: AstNode): void;
1795
- protected formatNavigateToProperty(node: AstNode): void;
1796
- protected formatAutolayoutProperty(node: AstNode): void;
1797
- protected formatMetadataProperty(node: AstNode): void;
1798
- protected formatElementDeclaration(node: AstNode): void;
1799
- protected formatExtendElement(node: AstNode): void;
1800
- protected formatGlobals(node: AstNode): void;
1801
- protected formatImports(node: AstNode): void;
1802
- protected formatSpecificationRule(node: AstNode): void;
1803
- protected formatWithPredicate(node: AstNode): void;
1804
- protected formatDeploymentNodeDeclaration(node: AstNode): void;
1805
- protected formatDeployedInstance(node: AstNode): void;
1806
- protected formatViewRuleGlobalStyle(node: AstNode): void;
1807
- protected formatViewRuleGlobalPredicate(node: AstNode): void;
1808
- protected formatViewRuleGroup(node: AstNode): void;
1809
- protected formatViewRuleStyle(node: AstNode): void;
1810
- protected formatWhereExpression(node: AstNode): void;
1811
- protected formatWhereRelationExpression(node: AstNode): void;
1812
- protected formatWhereElementExpression(node: AstNode): void;
1813
- protected formatIncludeExcludeExpressions(node: AstNode): void;
1814
- protected formatRelationExpression(node: AstNode): void;
1815
- private findPredicateExpressionRoot;
1816
- private on;
1817
- private doExtendedFormatting;
1818
- protected normalizeQuotes(node: AstNode): void;
1819
- private quotesNormalizerFactory;
1820
- private escapeQuotesInternalQuotes;
1821
- private getAutoQuoteStyle;
1822
- private onConfigurationUpdate;
1823
- } //#endregion
1824
- //#region src/lsp/CodeLensProvider.d.ts
1825
- declare class LikeC4CodeLensProvider implements CodeLensProvider {
1826
- private services;
1827
- constructor(services: LikeC4Services);
1828
- provideCodeLens(doc: LangiumDocument, _params: CodeLensParams, cancelToken?: CancellationToken$1): Promise<CodeLens[] | undefined>;
1829
- } //#endregion
1830
- //#region src/lsp/CompletionProvider.d.ts
1831
- declare class LikeC4CompletionProvider extends DefaultCompletionProvider {
1832
- protected services: LikeC4Services;
1833
- constructor(services: LikeC4Services);
1834
- readonly completionOptions: {
1835
- triggerCharacters: string[];
1836
- };
1837
- protected completionFor(context: CompletionContext, next: NextFeature, acceptor: CompletionAcceptor): MaybePromise<void>;
1838
- protected completionForKeyword(context: CompletionContext, keyword: Keyword, acceptor: CompletionAcceptor): MaybePromise<void>;
1839
- protected completionForImportedProject(context: CompletionContext, acceptor: CompletionAcceptor): void;
1840
- } //#endregion
1841
- //#region src/lsp/DocumentHighlightProvider.d.ts
1842
- declare class LikeC4DocumentHighlightProvider extends DefaultDocumentHighlightProvider {
1843
- /**
1844
- * Override this method to determine the highlight kind of the given reference.
1845
- */
1846
- protected createDocumentHighlight(reference: ReferenceDescription): DocumentHighlight;
1847
- } //#endregion
1848
- //#region src/lsp/DocumentLinkProvider.d.ts
1849
- declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
1850
- private services;
1851
- constructor(services: LikeC4Services);
1852
- getDocumentLinks(doc: LangiumDocument, _params: DocumentLinkParams, _cancelToken?: CancellationToken$1): Promise<DocumentLink[]>;
1853
- resolveLink(doc: LangiumDocument, link: string): string;
1854
- relativeLink(doc: LangiumDocument, link: string): string | null;
1855
- } //#endregion
1856
- //#region src/references/name-provider.d.ts
1857
- declare class LikeC4NameProvider extends DefaultNameProvider {
1858
- protected services: LikeC4Services;
1859
- constructor(services: LikeC4Services);
1860
- getNameStrict(node: AstNode): string;
1861
- getName(node: AstNode): string | undefined;
1862
- getNameNode(node: AstNode): CstNode | undefined;
1863
- } //#endregion
1864
- //#region src/references/scope-computation.d.ts
1865
- type ElementsContainer = Model | ElementBody | ExtendElementBody;
1866
- type DeploymentsContainer = ModelDeployments | DeploymentNodeBody | ExtendDeploymentBody | DeployedInstanceBody;
1867
- declare class LikeC4ScopeComputation extends DefaultScopeComputation {
1868
- constructor(services: LikeC4Services);
1869
- computeExports(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken$1): Promise<AstNodeDescription[]>;
1870
- private exportViews;
1871
- private exportGlobals;
1872
- private exportModel;
1873
- private exportLibrary;
1874
- private exportSpecification;
1875
- private exportDeployments;
1876
- computeLocalScopes(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken$1): Promise<PrecomputedScopes>;
1877
- protected processContainer(container: ElementsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
1878
- protected processDeployments(container: DeploymentsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
1879
- } //#endregion
1880
- //#region src/workspace/IndexManager.d.ts
1881
- declare class IndexManager extends DefaultIndexManager {
1882
- protected services: LikeC4SharedServices;
1883
- constructor(services: LikeC4SharedServices);
1884
- updateContent(document: LangiumDocument, cancelToken?: CancellationToken$1): Promise<void>;
1885
- projectElements(projectId: ProjectId$1, nodeType?: string, uris?: Set<string>): Stream<AstNodeDescription>;
1886
- } //#endregion
1887
- //#region src/workspace/LangiumDocuments.d.ts
1888
- declare class LangiumDocuments extends DefaultLangiumDocuments {
1889
- protected services: LikeC4SharedServices;
1890
- constructor(services: LikeC4SharedServices);
1891
- addDocument(document: LangiumDocument): void;
1892
- getDocument(uri: URI): LikeC4LangiumDocument | undefined;
1893
- /**
1894
- * Returns all known documents, without any filtering.
1895
- */
1896
- get allKnownDocuments(): Stream<LangiumDocument>;
1897
- get all(): Stream<LikeC4LangiumDocument>;
1898
- /**
1899
- * Returns all documents, excluding built-in documents and documents excluded by ProjectsManager.
1900
- */
1901
- get allExcludingBuiltin(): Stream<LikeC4LangiumDocument>;
1902
- /**
1903
- * Returns all documents for a project, including both project documents and documents included by the project.
1904
- */
1905
- projectDocuments(projectId: ProjectId$1): Stream<LikeC4LangiumDocument>;
1906
- groupedByProject(): Record<ProjectId$1, NonEmptyArray<LikeC4LangiumDocument>>;
1907
- /**
1908
- * Reset the project IDs of all documents.
1909
- */
1910
- resetProjectIds(): void;
1911
- } //#endregion
1912
- //#region src/workspace/WorkspaceManager.d.ts
1913
- declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
1914
- private services;
1915
- protected readonly documentFactory: LangiumDocumentFactory;
1916
- protected readonly fileSystemProvider: FileSystemProvider$1;
1917
- initialBuildOptions: BuildOptions;
1918
- constructor(services: LikeC4SharedServices);
1919
- /**
1920
- * First load all project config files, then load all documents in the workspace.
1921
- */
1922
- protected performStartup(folders: WorkspaceFolder[]): Promise<LangiumDocument[]>;
1923
- /**
1924
- * Load all additional documents that shall be visible in the context of the given workspace
1925
- * folders and add them to the collector. This can be used to include built-in libraries of
1926
- * your language, which can be either loaded from provided files or constructed in memory.
1927
- */
1928
- protected loadAdditionalDocuments(folders: WorkspaceFolder[], collector: (document: LangiumDocument) => void): Promise<void>;
1929
- /**
1930
- * Determine whether the given folder entry shall be included while indexing the workspace.
1931
- */
1932
- protected includeEntry(_workspaceFolder: WorkspaceFolder, entry: FileSystemNode, selector: FileSelector): boolean;
1933
- workspace(): WorkspaceFolder | null;
1934
- rebuildAll(cancelToken?: CancellationToken$1): Promise<void>;
1935
- get workspaceUri(): URI;
1936
- get workspaceURL(): URL;
1937
- } //#endregion
1938
- //#region src/references/scope-provider.d.ts
1939
- declare class LikeC4ScopeProvider extends DefaultScopeProvider {
1940
- protected deploymentsIndex: DeploymentsIndex;
1941
- protected fqnIndex: FqnIndex;
1942
- protected readonly indexManager: IndexManager;
1943
- constructor(services: LikeC4Services);
1944
- getScope(context: ReferenceInfo): Scope;
1945
- protected genUniqueDescedants(element: Element | DeploymentNode | undefined): Generator<AstNodeDescriptionWithFqn, void, any>;
1946
- protected genScopeExtendElement({
1947
- element
1948
- }: ExtendElement): Generator<AstNodeDescription>;
1949
- protected genScopeElementView({
1950
- viewOf,
1951
- extends: ext
1952
- }: ElementView): Generator<AstNodeDescription>;
1953
- protected getScopeForStrictFqnRef(projectId: ProjectId$1, container: StrictFqnRef, context: ReferenceInfo): Scope;
1954
- protected genScopeExtendDeployment({
1955
- deploymentNode
1956
- }: ExtendDeployment): Generator<AstNodeDescription>;
1957
- protected streamForFqnRef(projectId: ProjectId$1, container: FqnRef$2, context: ReferenceInfo): Stream<AstNodeDescription>;
1958
- protected genScopeForParentlessFqnRef(projectId: ProjectId$1, container: FqnRef$2, context: ReferenceInfo): Generator<AstNodeDescription>;
1959
- /**
1960
- * Computes the scope for a given reference context.
1961
- *
1962
- * @param context - The reference information containing the context for which the scope is being computed.
1963
- * @param referenceType - The type of reference being resolved. Defaults to the reference type derived from the context.
1964
- * @returns A scope containing the relevant AST node descriptions for the given reference context.
1965
- *
1966
- * This method first checks if there are precomputed scopes available in the document. If not, it falls back to the global scope.
1967
- * It then iterates through the container hierarchy, collecting relevant scopes based on the reference type and container type.
1968
- * Finally, it combines the collected scopes with the global scope to produce the final scope.
1969
- */
1970
- protected computeScope(projectId: ProjectId$1, context: ReferenceInfo, referenceType?: string): Generator<AstNodeDescription>;
1971
- /**
1972
- * Create a global scope filtered for the given reference type.
1973
- */
1974
- protected getProjectScope(projectId: ProjectId$1, referenceType: string, context: ReferenceInfo): Scope;
1975
- /**
1976
- * Create a global scope filtered for the given reference type.
1977
- */
1978
- protected getGlobalScope(referenceType: string, context: ReferenceInfo): Scope;
1979
- } //#endregion
1980
- //#region src/lsp/DocumentSymbolProvider.d.ts
1981
- declare class LikeC4DocumentSymbolProvider implements DocumentSymbolProvider {
1982
- private services;
1983
- protected readonly nodeKindProvider: NodeKindProvider;
1984
- protected readonly nameProvider: LikeC4NameProvider;
1985
- protected readonly parser: LikeC4ModelParser;
1986
- protected readonly locator: LikeC4ModelLocator;
1987
- constructor(services: LikeC4Services);
1988
- getSymbols(doc: LangiumDocument, _params: DocumentSymbolParams, cancelToken?: CancellationToken$1): Promise<DocumentSymbol[]>;
1989
- protected getLikec4LibSymbol(astLib: LikeC4Lib): DocumentSymbol[];
1990
- protected getSpecSymbol(astSpec: SpecificationRule): DocumentSymbol[];
1991
- protected getModelSymbol(astModel: Model): DocumentSymbol[];
1992
- protected getDeploymentModelSymbol(astModel: ModelDeployments): DocumentSymbol[];
1993
- protected getElementsSymbol(el: Element | Relation | ExtendElement): DocumentSymbol[];
1994
- protected getExtendElementSymbol(astElement: ExtendElement): DocumentSymbol[];
1995
- protected getElementSymbol(astElement: Element): DocumentSymbol[];
1996
- protected getModelViewsSymbol(astViews: ModelViews): DocumentSymbol[];
1997
- protected getKindSymbol(astKind: SpecificationElementKind | SpecificationRelationshipKind): DocumentSymbol | null;
1998
- protected getTagSymbol(astTag: SpecificationTag): DocumentSymbol | null;
1999
- protected getLibIconSymbol(astTag: LibIcon): DocumentSymbol | null;
2000
- protected getViewSymbol(astView: LikeC4View): DocumentSymbol[];
2001
- protected getDeploymentElementSymbol(el: DeploymentElement | DeploymentRelation | ExtendDeployment): DocumentSymbol[];
2002
- protected getDeploymentNodeSymbol(astElement: DeploymentNode): DocumentSymbol[];
2003
- protected getDeployedInstanceSymbol(astElement: DeployedInstance): DocumentSymbol[];
2004
- protected symbolKind(node: AstNode): SymbolKind;
2005
- } //#endregion
2006
- //#region src/lsp/HoverProvider.d.ts
2007
- declare class LikeC4HoverProvider extends AstNodeHoverProvider {
2008
- private parser;
2009
- private locator;
2010
- constructor(services: LikeC4Services);
2011
- protected getAstNodeHoverContent(node: AstNode): MaybePromise<Hover | undefined>;
2012
- } //#endregion
2013
- //#region src/lsp/CodeActionProvider.d.ts
2014
- type CommandOrCodeAction = Command | CodeAction;
2015
- declare class LikeC4CodeActionProvider implements CodeActionProvider {
2016
- /**
2017
- * Handle a code action request.
2018
- *
2019
- * @throws `OperationCancelled` if cancellation is detected during execution
2020
- * @throws `ResponseError` if an error is detected that should be sent as response to the client
2021
- */
2022
- getCodeActions(document: LangiumDocument, params: CodeActionParams): CommandOrCodeAction[] | undefined;
2023
- } //#endregion
2024
- //#region src/lsp/SemanticTokenProvider.d.ts
2025
- declare class LikeC4SemanticTokenProvider extends AbstractSemanticTokenProvider {
2026
- protected services: LikeC4Services;
2027
- private rules;
2028
- constructor(services: LikeC4Services);
2029
- protected initRules(): void;
2030
- semanticHighlight(document: LangiumDocument, params: SemanticTokensParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens>;
2031
- semanticHighlightRange(document: LangiumDocument, params: SemanticTokensRangeParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens>;
2032
- semanticHighlightDelta(document: LangiumDocument, params: SemanticTokensDeltaParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens | SemanticTokensDelta>;
2033
- protected ensureState(document: LangiumDocument, cancelToken: CancellationToken$1): Promise<void>;
2034
- protected highlightElement(node: AstNode, acceptor: SemanticTokenAcceptor): void | undefined | 'prune';
2035
- private highlightNameAndKind;
2036
- private highlightView;
2037
- private mark;
2038
- } //#endregion
2039
- //#region src/mcp/types.d.ts
2040
- interface LikeC4MCPServer {
2041
- readonly mcp: McpServer;
2042
- readonly isStarted: boolean;
2043
- readonly port: number;
2044
- start(port?: number): Promise<void>;
2045
- stop(): Promise<void>;
1645
+ declare const ViewStringProperty = "ViewStringProperty";
1646
+ interface WhereBinaryExpression extends AstNode {
1647
+ readonly $container: FqnExprWhere | RelationExprWhere | WhereBinaryExpression | WhereElementNegation | WhereRelationNegation;
1648
+ readonly $type: 'WhereBinaryExpression';
1649
+ left: WhereElementExpression | WhereRelationExpression;
1650
+ operator: 'and' | 'or';
1651
+ right: WhereElementExpression | WhereRelationExpression;
2046
1652
  }
2047
- interface LikeC4MCPServerFactory {
2048
- create(options?: ServerOptions): McpServer;
1653
+ declare const WhereBinaryExpression = "WhereBinaryExpression";
1654
+ interface WhereElementKind extends AstNode {
1655
+ readonly $container: FqnExprWhere | WhereBinaryExpression | WhereElementNegation;
1656
+ readonly $type: 'WhereElementKind';
1657
+ not: boolean;
1658
+ operator: 'is' | string;
1659
+ value: Reference<DeploymentNodeOrElementKind>;
2049
1660
  }
2050
- //#endregion
2051
- //#region src/model-change/ModelChanges.d.ts
2052
- declare class LikeC4ModelChanges {
2053
- private services;
2054
- private locator;
2055
- constructor(services: LikeC4Services);
2056
- applyChange(changeView: ChangeView.Params): Promise<ChangeView.Res>;
2057
- protected convertToTextEdit({
2058
- lookup,
2059
- change
2060
- }: {
2061
- lookup: ViewLocateResult;
2062
- change: Exclude<ViewChange$1, ViewChange$1.SaveViewSnapshot | ViewChange$1.ResetManualLayout>;
2063
- }): {
2064
- modifiedRange: Range;
2065
- edits: TextEdit[];
2066
- };
2067
- } //#endregion
2068
- //#region src/utils/disposable.d.ts
2069
- declare abstract class ADisposable implements Disposable$1 {
2070
- protected toDispose: Disposable$1[];
2071
- protected isDisposed: boolean;
2072
- onDispose(...disposable: Disposable$1[]): void;
2073
- dispose(): void;
2074
- protected throwIfDisposed(): void;
2075
- } //#endregion
2076
- //#region src/Rpc.d.ts
2077
- declare class Rpc extends ADisposable {
2078
- private services;
2079
- constructor(services: LikeC4Services);
2080
- init(): void;
2081
- openView(params: DidRequestOpenViewNotification.Params): Promise<void>;
2082
- } //#endregion
2083
- //#region src/shared/NodeKindProvider.d.ts
2084
- declare class NodeKindProvider$1 implements NodeKindProvider {
2085
- private services;
2086
- constructor(services: LangiumSharedServices);
2087
- /**
2088
- * Returns a `SymbolKind` as used by `WorkspaceSymbolProvider` or `DocumentSymbolProvider`.
2089
- */
2090
- getSymbolKind(node: AstNode | AstNodeDescription): SymbolKind;
2091
- /**
2092
- * Returns a `CompletionItemKind` as used by the `CompletionProvider`.
2093
- */
2094
- getCompletionItemKind(node: AstNode | AstNodeDescription): CompletionItemKind;
2095
- } //#endregion
2096
- //#region src/shared/WorkspaceSymbolProvider.d.ts
2097
- declare class WorkspaceSymbolProvider extends DefaultWorkspaceSymbolProvider {} //#endregion
2098
- //#region src/views/LikeC4Views.d.ts
2099
- type GraphvizOut = {
2100
- readonly dot: string;
2101
- readonly diagram: LayoutedView$1;
2102
- };
2103
- type GraphvizSvgOut = {
2104
- readonly id: ViewId$1;
2105
- readonly dot: string;
2106
- readonly svg: string;
2107
- };
2108
- type LayoutViewParams = {
2109
- viewId: ViewId$1;
2110
- /**
2111
- * Type of layout to apply
2112
- * - 'manual' - applies manual layout if any
2113
- * - 'auto' - returns latest version with drifts from manual layout if any
2114
- * - undefined - returns latest layout as is
2115
- */
2116
- layoutType?: LayoutType | undefined;
2117
- projectId?: ProjectId$1 | undefined;
2118
- cancelToken?: CancellationToken$1 | undefined;
2119
- };
2120
- interface LikeC4Views {
2121
- readonly layouter: GraphvizLayouter;
2122
- /**
2123
- * Returns computed views (i.e. views with predicates computed)
2124
- *
2125
- * @param projectId - project id, if not specified - uses the default project
2126
- */
2127
- computedViews(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<ComputedView[]>;
2128
- /**
2129
- * Layouts all views (ignoring any manual snapshots)
2130
- *
2131
- * @param projectId - project id, if not specified - uses the default project
2132
- */
2133
- layoutAllViews(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<GraphvizOut[]>;
2134
- /**
2135
- * Layouts a view.
2136
- * If layoutType is 'manual' - applies manual layout if any.
2137
- * If layoutType is 'auto' - returns latest version with drifts from manual layout if any
2138
- * If not specified - returns latest layout as is
2139
- *
2140
- * If view not found in model, but there is a snapshot - it will be returned (with empty DOT)
2141
- *
2142
- * @param projectId - project id, if not specified - uses the default project
2143
- */
2144
- layoutView(params: LayoutViewParams): Promise<GraphvizOut | null>;
2145
- /**
2146
- * Returns diagrams.
2147
- * If diagram has manual layout, it will be used.
2148
- * @param projectId - project id, if not specified - uses the default project
2149
- */
2150
- diagrams(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<Array<DiagramView>>;
2151
- /**
2152
- * Returns all layouted views as Graphviz output (i.e. views with layout computed)
2153
- * @param projectId - project id, if not specified - uses the default project
2154
- */
2155
- viewsAsGraphvizOut(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<Array<GraphvizSvgOut>>;
2156
- /**
2157
- * Open view in the preview panel.
2158
- * (works only if running as a vscode extension)
2159
- *
2160
- * @param projectId - project id, if not specified - uses the default project
2161
- */
2162
- openView(viewId: ViewId$1, projectId?: ProjectId$1 | undefined): Promise<void>;
2163
- /**
2164
- * Computes and layouts an adhoc view (not defined in the model)
2165
- *
2166
- * @param projectId - project id, if not specified - uses the default project
2167
- */
2168
- adhocView(predicates: AdhocViewPredicate[], projectId?: ProjectId$1 | undefined): Promise<LayoutedView$1>;
2169
- } //#endregion
2170
- //#region src/module.d.ts
2171
- interface LikeC4AddedSharedServices {
2172
- lsp: {
2173
- NodeKindProvider: NodeKindProvider$1;
2174
- WorkspaceSymbolProvider: WorkspaceSymbolProvider;
2175
- };
2176
- workspace: {
2177
- Cache: WorkspaceCache<string, any>;
2178
- ProjectsManager: ProjectsManager;
2179
- IndexManager: IndexManager;
2180
- LangiumDocuments: LangiumDocuments;
2181
- WorkspaceManager: LikeC4WorkspaceManager;
2182
- FileSystemProvider: FileSystemProvider$1;
2183
- FileSystemWatcher: FileSystemWatcher;
2184
- ManualLayouts: LikeC4ManualLayouts;
2185
- };
1661
+ declare const WhereElementKind = "WhereElementKind";
1662
+ interface WhereElementNegation extends AstNode {
1663
+ readonly $container: FqnExprWhere | WhereBinaryExpression | WhereElementNegation;
1664
+ readonly $type: 'WhereElementNegation';
1665
+ value: WhereElementExpression;
2186
1666
  }
2187
- type LikeC4SharedServices = LangiumSharedServices & LikeC4AddedSharedServices;
2188
- /**
2189
- * Declaration of custom services - add your own service classes here.
2190
- */
2191
- interface LikeC4AddedServices {
2192
- documentation: {
2193
- DocumentationProvider: LikeC4DocumentationProvider;
2194
- };
2195
- validation: {
2196
- DocumentValidator: LikeC4DocumentValidator;
2197
- };
2198
- Rpc: Rpc;
2199
- mcp: {
2200
- Server: LikeC4MCPServer;
2201
- ServerFactory: LikeC4MCPServerFactory;
2202
- };
2203
- likec4: {
2204
- LanguageServices: LikeC4LanguageServices;
2205
- Views: LikeC4Views;
2206
- Layouter: QueueGraphvizLayoter;
2207
- DeploymentsIndex: DeploymentsIndex;
2208
- FqnIndex: FqnIndex;
2209
- ModelParser: LikeC4ModelParser;
2210
- ModelBuilder: LikeC4ModelBuilder;
2211
- ModelLocator: LikeC4ModelLocator;
2212
- ModelChanges: LikeC4ModelChanges;
2213
- };
2214
- lsp: {
2215
- CompletionProvider: LikeC4CompletionProvider;
2216
- DocumentHighlightProvider: LikeC4DocumentHighlightProvider;
2217
- DocumentSymbolProvider: LikeC4DocumentSymbolProvider;
2218
- SemanticTokenProvider: LikeC4SemanticTokenProvider;
2219
- HoverProvider: LikeC4HoverProvider;
2220
- CodeLensProvider: LikeC4CodeLensProvider;
2221
- DocumentLinkProvider: LikeC4DocumentLinkProvider;
2222
- Formatter: LikeC4Formatter;
2223
- CodeActionProvider: LikeC4CodeActionProvider;
2224
- };
2225
- references: {
2226
- NameProvider: LikeC4NameProvider;
2227
- ScopeComputation: LikeC4ScopeComputation;
2228
- ScopeProvider: LikeC4ScopeProvider;
2229
- };
2230
- shared?: LikeC4SharedServices;
2231
- parser: {
2232
- ValueConverter: LikeC4ValueConverter;
2233
- };
1667
+ declare const WhereElementNegation = "WhereElementNegation";
1668
+ interface WhereElementTag extends AstNode {
1669
+ readonly $container: FqnExprWhere | WhereBinaryExpression | WhereElementNegation;
1670
+ readonly $type: 'WhereElementTag';
1671
+ not: boolean;
1672
+ operator: 'is' | string;
1673
+ value: TagRef;
1674
+ }
1675
+ declare const WhereElementTag = "WhereElementTag";
1676
+ interface WhereRelationKind extends AstNode {
1677
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1678
+ readonly $type: 'WhereRelationKind';
1679
+ not: boolean;
1680
+ operator: 'is' | string;
1681
+ value: Reference<RelationshipKind>;
1682
+ }
1683
+ declare const WhereRelationKind = "WhereRelationKind";
1684
+ interface WhereRelationNegation extends AstNode {
1685
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1686
+ readonly $type: 'WhereRelationNegation';
1687
+ value: WhereRelationExpression;
1688
+ }
1689
+ declare const WhereRelationNegation = "WhereRelationNegation";
1690
+ interface WhereRelationParticipantKind extends AstNode {
1691
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1692
+ readonly $type: 'WhereRelationParticipantKind';
1693
+ not: boolean;
1694
+ operator: 'is' | string;
1695
+ participant: Participant;
1696
+ value: Reference<DeploymentNodeOrElementKind>;
1697
+ }
1698
+ declare const WhereRelationParticipantKind = "WhereRelationParticipantKind";
1699
+ interface WhereRelationParticipantTag extends AstNode {
1700
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1701
+ readonly $type: 'WhereRelationParticipantTag';
1702
+ not: boolean;
1703
+ operator: 'is' | string;
1704
+ participant: Participant;
1705
+ value: TagRef;
1706
+ }
1707
+ declare const WhereRelationParticipantTag = "WhereRelationParticipantTag";
1708
+ interface WhereRelationTag extends AstNode {
1709
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1710
+ readonly $type: 'WhereRelationTag';
1711
+ not: boolean;
1712
+ operator: 'is' | string;
1713
+ value: TagRef;
1714
+ }
1715
+ declare const WhereRelationTag = "WhereRelationTag";
1716
+ interface WildcardExpression extends AstNode {
1717
+ readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
1718
+ readonly $type: 'WildcardExpression';
1719
+ isWildcard: boolean;
1720
+ }
1721
+ declare const WildcardExpression = "WildcardExpression";
1722
+ interface DynamicStepChain extends AbstractDynamicStep {
1723
+ readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
1724
+ readonly $type: 'DynamicStepChain';
1725
+ source: DynamicStepChain | DynamicStepSingle;
1726
+ }
1727
+ declare const DynamicStepChain = "DynamicStepChain";
1728
+ interface DynamicStepSingle extends AbstractDynamicStep {
1729
+ readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
1730
+ readonly $type: 'DynamicStepSingle';
1731
+ isBackward: boolean;
1732
+ source: ElementRef;
2234
1733
  }
2235
- type LikeC4Services = LangiumServices & LikeC4AddedServices;
2236
- /**
2237
- * Most probably you don't need to use this function directly.
2238
- * Use {@link createLanguageServices} instead.
2239
- * @internal
2240
- */
2241
- //#endregion
1734
+ declare const DynamicStepSingle = "DynamicStepSingle";
1735
+ type LikeC4AstType = {
1736
+ AbstractDynamicStep: AbstractDynamicStep;
1737
+ AnyProperty: AnyProperty;
1738
+ ArrowProperty: ArrowProperty;
1739
+ BorderProperty: BorderProperty;
1740
+ ColorLiteral: ColorLiteral$1;
1741
+ ColorProperty: ColorProperty;
1742
+ CustomColor: CustomColor;
1743
+ CustomElementProperties: CustomElementProperties;
1744
+ CustomRelationProperties: CustomRelationProperties;
1745
+ DeployedInstance: DeployedInstance;
1746
+ DeployedInstanceBody: DeployedInstanceBody;
1747
+ DeploymentElement: DeploymentElement;
1748
+ DeploymentNode: DeploymentNode;
1749
+ DeploymentNodeBody: DeploymentNodeBody;
1750
+ DeploymentNodeKind: DeploymentNodeKind;
1751
+ DeploymentNodeOrElementKind: DeploymentNodeOrElementKind;
1752
+ DeploymentRelation: DeploymentRelation;
1753
+ DeploymentRelationBody: DeploymentRelationBody;
1754
+ DeploymentView: DeploymentView;
1755
+ DeploymentViewBody: DeploymentViewBody;
1756
+ DeploymentViewRule: DeploymentViewRule;
1757
+ DeploymentViewRulePredicate: DeploymentViewRulePredicate;
1758
+ DeploymentViewRuleStyle: DeploymentViewRuleStyle;
1759
+ DirectedRelationExpr: DirectedRelationExpr;
1760
+ DynamicStepChain: DynamicStepChain;
1761
+ DynamicStepSingle: DynamicStepSingle;
1762
+ DynamicView: DynamicView;
1763
+ DynamicViewBody: DynamicViewBody;
1764
+ DynamicViewDisplayVariantProperty: DynamicViewDisplayVariantProperty;
1765
+ DynamicViewGlobalPredicateRef: DynamicViewGlobalPredicateRef;
1766
+ DynamicViewIncludePredicate: DynamicViewIncludePredicate;
1767
+ DynamicViewParallelSteps: DynamicViewParallelSteps;
1768
+ DynamicViewProperty: DynamicViewProperty;
1769
+ DynamicViewRef: DynamicViewRef;
1770
+ DynamicViewRule: DynamicViewRule;
1771
+ DynamicViewStep: DynamicViewStep;
1772
+ Element: Element;
1773
+ ElementBody: ElementBody;
1774
+ ElementKind: ElementKind;
1775
+ ElementKindExpression: ElementKindExpression;
1776
+ ElementProperty: ElementProperty;
1777
+ ElementRef: ElementRef;
1778
+ ElementStringProperty: ElementStringProperty;
1779
+ ElementStyleProperty: ElementStyleProperty;
1780
+ ElementTagExpression: ElementTagExpression;
1781
+ ElementView: ElementView;
1782
+ ElementViewBody: ElementViewBody;
1783
+ ElementViewRef: ElementViewRef;
1784
+ ExpressionV2: ExpressionV2;
1785
+ Expressions: Expressions;
1786
+ ExtendDeployment: ExtendDeployment;
1787
+ ExtendDeploymentBody: ExtendDeploymentBody;
1788
+ ExtendElement: ExtendElement;
1789
+ ExtendElementBody: ExtendElementBody;
1790
+ ExtendElementProperty: ExtendElementProperty;
1791
+ ExtendRelation: ExtendRelation;
1792
+ ExtendRelationBody: ExtendRelationBody;
1793
+ ExtendRelationProperty: ExtendRelationProperty;
1794
+ FqnExpr: FqnExpr$2;
1795
+ FqnExprOrWhere: FqnExprOrWhere;
1796
+ FqnExprOrWith: FqnExprOrWith;
1797
+ FqnExprWhere: FqnExprWhere;
1798
+ FqnExprWith: FqnExprWith;
1799
+ FqnExpressions: FqnExpressions;
1800
+ FqnRef: FqnRef$2;
1801
+ FqnRefExpr: FqnRefExpr;
1802
+ FqnReferenceable: FqnReferenceable;
1803
+ GlobalDynamicPredicateGroup: GlobalDynamicPredicateGroup;
1804
+ GlobalPredicateGroup: GlobalPredicateGroup;
1805
+ GlobalStyle: GlobalStyle;
1806
+ GlobalStyleGroup: GlobalStyleGroup;
1807
+ GlobalStyleId: GlobalStyleId;
1808
+ Globals: Globals;
1809
+ HexColor: HexColor;
1810
+ IconColorProperty: IconColorProperty;
1811
+ IconPositionProperty: IconPositionProperty;
1812
+ IconProperty: IconProperty;
1813
+ IconSizeProperty: IconSizeProperty;
1814
+ Imported: Imported;
1815
+ ImportsFromPoject: ImportsFromPoject;
1816
+ InOutRelationExpr: InOutRelationExpr;
1817
+ IncomingRelationExpr: IncomingRelationExpr;
1818
+ LibIcon: LibIcon;
1819
+ LikeC4Grammar: LikeC4Grammar;
1820
+ LikeC4Lib: LikeC4Lib;
1821
+ LikeC4View: LikeC4View;
1822
+ LineProperty: LineProperty;
1823
+ LinkProperty: LinkProperty;
1824
+ MarkdownOrString: MarkdownOrString;
1825
+ MetadataArray: MetadataArray;
1826
+ MetadataAttribute: MetadataAttribute;
1827
+ MetadataBody: MetadataBody;
1828
+ MetadataProperty: MetadataProperty;
1829
+ MetadataValue: MetadataValue;
1830
+ Model: Model;
1831
+ ModelDeployments: ModelDeployments;
1832
+ ModelReferenceable: ModelReferenceable;
1833
+ ModelViews: ModelViews;
1834
+ MultipleProperty: MultipleProperty;
1835
+ NavigateToProperty: NavigateToProperty;
1836
+ NotationProperty: NotationProperty;
1837
+ NotesProperty: NotesProperty;
1838
+ OpacityProperty: OpacityProperty;
1839
+ OutgoingRelationExpr: OutgoingRelationExpr;
1840
+ PaddingSizeProperty: PaddingSizeProperty;
1841
+ RGBAColor: RGBAColor;
1842
+ Referenceable: Referenceable;
1843
+ Relation: Relation;
1844
+ RelationBody: RelationBody;
1845
+ RelationExpr: RelationExpr$1;
1846
+ RelationExprOrWhere: RelationExprOrWhere;
1847
+ RelationExprOrWith: RelationExprOrWith;
1848
+ RelationExprWhere: RelationExprWhere;
1849
+ RelationExprWith: RelationExprWith;
1850
+ RelationKindDotRef: RelationKindDotRef;
1851
+ RelationNavigateToProperty: RelationNavigateToProperty;
1852
+ RelationProperty: RelationProperty;
1853
+ RelationStringProperty: RelationStringProperty;
1854
+ RelationStyleProperty: RelationStyleProperty;
1855
+ RelationshipKind: RelationshipKind;
1856
+ RelationshipStyleProperty: RelationshipStyleProperty;
1857
+ ShapeProperty: ShapeProperty;
1858
+ ShapeSizeProperty: ShapeSizeProperty;
1859
+ SizeProperty: SizeProperty;
1860
+ SpecificationColor: SpecificationColor;
1861
+ SpecificationDeploymentNodeKind: SpecificationDeploymentNodeKind;
1862
+ SpecificationElementKind: SpecificationElementKind;
1863
+ SpecificationElementStringProperty: SpecificationElementStringProperty;
1864
+ SpecificationRelationshipKind: SpecificationRelationshipKind;
1865
+ SpecificationRelationshipStringProperty: SpecificationRelationshipStringProperty;
1866
+ SpecificationRule: SpecificationRule;
1867
+ SpecificationTag: SpecificationTag;
1868
+ StrictFqnElementRef: StrictFqnElementRef;
1869
+ StrictFqnRef: StrictFqnRef;
1870
+ StringProperty: StringProperty;
1871
+ StyleProperty: StyleProperty;
1872
+ Tag: Tag$1;
1873
+ TagRef: TagRef;
1874
+ Tags: Tags;
1875
+ TextSizeProperty: TextSizeProperty;
1876
+ ViewProperty: ViewProperty;
1877
+ ViewRef: ViewRef;
1878
+ ViewRule: ViewRule;
1879
+ ViewRuleAutoLayout: ViewRuleAutoLayout;
1880
+ ViewRuleGlobalPredicateRef: ViewRuleGlobalPredicateRef;
1881
+ ViewRuleGlobalStyle: ViewRuleGlobalStyle;
1882
+ ViewRuleGroup: ViewRuleGroup;
1883
+ ViewRulePredicate: ViewRulePredicate;
1884
+ ViewRuleRank: ViewRuleRank;
1885
+ ViewRuleStyle: ViewRuleStyle;
1886
+ ViewRuleStyleOrGlobalRef: ViewRuleStyleOrGlobalRef;
1887
+ ViewStringProperty: ViewStringProperty;
1888
+ WhereBinaryExpression: WhereBinaryExpression;
1889
+ WhereElement: WhereElement;
1890
+ WhereElementExpression: WhereElementExpression;
1891
+ WhereElementKind: WhereElementKind;
1892
+ WhereElementNegation: WhereElementNegation;
1893
+ WhereElementTag: WhereElementTag;
1894
+ WhereExpression: WhereExpression;
1895
+ WhereKindEqual: WhereKindEqual;
1896
+ WhereRelation: WhereRelation;
1897
+ WhereRelationExpression: WhereRelationExpression;
1898
+ WhereRelationKind: WhereRelationKind;
1899
+ WhereRelationNegation: WhereRelationNegation;
1900
+ WhereRelationParticipantKind: WhereRelationParticipantKind;
1901
+ WhereRelationParticipantTag: WhereRelationParticipantTag;
1902
+ WhereRelationTag: WhereRelationTag;
1903
+ WhereTagEqual: WhereTagEqual;
1904
+ WildcardExpression: WildcardExpression;
1905
+ }; //#endregion
2242
1906
  //#region src/validation/DocumentValidator.d.ts
2243
1907
  declare class LikeC4DocumentValidator extends DefaultDocumentValidator {
2244
1908
  protected services: LikeC4Services;
@@ -2249,10 +1913,8 @@ declare class LikeC4DocumentValidator extends DefaultDocumentValidator {
2249
1913
  validateDocument(document: LangiumDocument, options?: ValidationOptions, cancelToken?: CancellationToken$1): Promise<Diagnostic[]>;
2250
1914
  } //#endregion
2251
1915
  //#region src/validation/index.d.ts
2252
- type Guard<N extends AstNode> = (n: AstNode) => n is N;
2253
- type Guarded<G> = G extends Guard<infer N> ? N : never;
2254
- declare const isValidatableAstNode: (n: AstNode) => n is DeploymentView | DynamicView | ElementView | Element | DeployedInstance | DeploymentNode | ImportsFromPoject | Imported | Globals | GlobalPredicateGroup | GlobalDynamicPredicateGroup | GlobalStyle | GlobalStyleGroup | FqnExprWith | DeploymentViewRulePredicate | DynamicViewIncludePredicate | ViewRulePredicate | ViewRuleGroup | RelationExprWith | ElementKindExpression | ElementTagExpression | FqnRefExpr | WildcardExpression | DirectedRelationExpr | FqnExprWhere | IncomingRelationExpr | OutgoingRelationExpr | RelationExprWhere | DeploymentViewRuleStyle | ViewRuleRank | ViewRuleStyle | InOutRelationExpr | DynamicViewParallelSteps | DynamicStepChain | DynamicStepSingle | ViewRuleAutoLayout | LinkProperty | ViewStringProperty | SpecificationDeploymentNodeKind | SpecificationElementKind | ExtendDeployment | DeploymentRelation | ExtendElement | ExtendRelation | Relation | SpecificationRule | BorderProperty | ColorProperty | IconColorProperty | IconPositionProperty | IconProperty | IconSizeProperty | MultipleProperty | OpacityProperty | PaddingSizeProperty | ShapeProperty | ShapeSizeProperty | TextSizeProperty | ElementStyleProperty | SpecificationRelationshipKind | Tags | ViewRuleGlobalPredicateRef | ViewRuleGlobalStyle | DynamicViewGlobalPredicateRef | ArrowProperty | LineProperty | DynamicViewDisplayVariantProperty | MetadataBody | ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | NavigateToProperty | ElementRef | SpecificationTag | SpecificationColor | HexColor | RGBAColor;
2255
- type ValidatableAstNode = Guarded<typeof isValidatableAstNode>;
1916
+ declare const isValidatableAstNode: any;
1917
+ type ValidatableAstNode = GuardedBy<typeof isValidatableAstNode>;
2256
1918
  declare function checksFromDiagnostics(doc: LikeC4LangiumDocument): {
2257
1919
  isValid: (n: ValidatableAstNode) => boolean;
2258
1920
  invalidNodes: WeakSet<WeakKey>;
@@ -2326,7 +1988,7 @@ interface ParsedAstElement {
2326
1988
  id: c4.Fqn;
2327
1989
  astPath: string;
2328
1990
  kind: c4.ElementKind;
2329
- title: string;
1991
+ title?: string;
2330
1992
  summary?: c4.MarkdownOrString;
2331
1993
  description?: c4.MarkdownOrString;
2332
1994
  technology?: string;
@@ -2447,8 +2109,149 @@ interface LikeC4LangiumDocument extends LikeC4GrammarDocument, LikeC4DocumentPro
2447
2109
  }
2448
2110
  interface ParsedLikeC4LangiumDocument extends LikeC4GrammarDocument, Required<LikeC4DocumentProps> {
2449
2111
  likec4ProjectId: c4.ProjectId;
2450
- }
2451
- //#endregion
2112
+ } //#endregion
2113
+ //#region src/references/name-provider.d.ts
2114
+ declare class LikeC4NameProvider extends DefaultNameProvider {
2115
+ protected services: LikeC4Services;
2116
+ constructor(services: LikeC4Services);
2117
+ getNameStrict(node: AstNode): string;
2118
+ getName(node: AstNode): string | undefined;
2119
+ getNameNode(node: AstNode): CstNode | undefined;
2120
+ } //#endregion
2121
+ //#region src/references/scope-computation.d.ts
2122
+ type ElementsContainer = Model | ElementBody | ExtendElementBody;
2123
+ type DeploymentsContainer = ModelDeployments | DeploymentNodeBody | ExtendDeploymentBody | DeployedInstanceBody;
2124
+ declare class LikeC4ScopeComputation extends DefaultScopeComputation {
2125
+ constructor(services: LikeC4Services);
2126
+ computeExports(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken$1): Promise<AstNodeDescription[]>;
2127
+ private exportViews;
2128
+ private exportGlobals;
2129
+ private exportModel;
2130
+ private exportLibrary;
2131
+ private exportSpecification;
2132
+ private exportDeployments;
2133
+ computeLocalScopes(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken$1): Promise<PrecomputedScopes>;
2134
+ protected processContainer(container: ElementsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
2135
+ protected processDeployments(container: DeploymentsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
2136
+ } //#endregion
2137
+ //#region src/workspace/IndexManager.d.ts
2138
+ declare class IndexManager extends DefaultIndexManager {
2139
+ protected services: LikeC4SharedServices;
2140
+ constructor(services: LikeC4SharedServices);
2141
+ updateContent(document: LangiumDocument, cancelToken?: CancellationToken$1): Promise<void>;
2142
+ projectElements(projectId: ProjectId, nodeType?: string, uris?: Set<string>): Stream<AstNodeDescription>;
2143
+ } //#endregion
2144
+ //#region src/workspace/LangiumDocuments.d.ts
2145
+ declare class LangiumDocuments extends DefaultLangiumDocuments {
2146
+ protected services: LikeC4SharedServices;
2147
+ constructor(services: LikeC4SharedServices);
2148
+ protected get projectsManager(): ProjectsManager;
2149
+ addDocument(document: LangiumDocument): void;
2150
+ getDocument(uri: URI): LangiumDocument | undefined;
2151
+ /**
2152
+ * Returns all user documents
2153
+ */
2154
+ get userDocuments(): Stream<LikeC4LangiumDocument>;
2155
+ /**
2156
+ * Returns all documents (ensures project IDs are set)
2157
+ */
2158
+ get all(): Stream<LangiumDocument>;
2159
+ /**
2160
+ * Returns all documents for a project, including both project documents and documents included by the project.
2161
+ */
2162
+ projectDocuments(projectId: ProjectId): Stream<LikeC4LangiumDocument>;
2163
+ groupedByProject(): Record<ProjectId, NonEmptyArray<LikeC4LangiumDocument>>;
2164
+ /**
2165
+ * Reset the project IDs of all documents.
2166
+ * Returns the URIs
2167
+ */
2168
+ resetProjectIds(): URI[];
2169
+ } //#endregion
2170
+ //#region src/workspace/WorkspaceManager.d.ts
2171
+ declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
2172
+ #private;
2173
+ private services;
2174
+ protected readonly documentFactory: LangiumDocumentFactory;
2175
+ protected readonly fileSystemProvider: FileSystemProvider$1;
2176
+ initialBuildOptions: BuildOptions;
2177
+ constructor(services: LikeC4SharedServices);
2178
+ /**
2179
+ * First load all project config files, then load all documents in the workspace.
2180
+ */
2181
+ protected performStartup(folders: WorkspaceFolder[]): Promise<LangiumDocument[]>;
2182
+ /**
2183
+ * Load all additional documents that shall be visible in the context of the given workspace
2184
+ * folders and add them to the collector. This can be used to include built-in libraries of
2185
+ * your language, which can be either loaded from provided files or constructed in memory.
2186
+ */
2187
+ protected loadAdditionalDocuments(folders: WorkspaceFolder[], collector: (document: LangiumDocument) => void): Promise<void>;
2188
+ /**
2189
+ * Determine whether the given folder entry shall be included while indexing the workspace.
2190
+ */
2191
+ protected includeEntry(_: WorkspaceFolder, entry: FileSystemNode, selector: FileSelector): boolean;
2192
+ workspace(): WorkspaceFolder | null;
2193
+ rebuildAll(cancelToken?: CancellationToken$1): Promise<void>;
2194
+ get workspaceUri(): URI;
2195
+ get workspaceURL(): URL;
2196
+ /**
2197
+ * Force clean all caches
2198
+ */
2199
+ forceCleanCaches(): void;
2200
+ /**
2201
+ * Register a listener to be called when caches are force cleaned
2202
+ */
2203
+ onForceCleanCache(listener: () => void): Disposable$1;
2204
+ } //#endregion
2205
+ //#region src/references/scope-provider.d.ts
2206
+ declare class LikeC4ScopeProvider extends DefaultScopeProvider {
2207
+ protected deploymentsIndex: DeploymentsIndex;
2208
+ protected fqnIndex: FqnIndex;
2209
+ protected readonly indexManager: IndexManager;
2210
+ constructor(services: LikeC4Services);
2211
+ getScope(context: ReferenceInfo): Scope;
2212
+ protected genUniqueDescedants(element: Element | DeploymentNode | undefined): Generator<AstNodeDescriptionWithFqn, void, any>;
2213
+ protected genScopeExtendElement({
2214
+ element
2215
+ }: ExtendElement): Generator<AstNodeDescription>;
2216
+ protected genScopeElementView({
2217
+ viewOf,
2218
+ extends: ext
2219
+ }: ElementView): Generator<AstNodeDescription>;
2220
+ protected getScopeForStrictFqnRef(projectId: ProjectId, container: StrictFqnRef, context: ReferenceInfo): Scope;
2221
+ protected genScopeExtendDeployment({
2222
+ deploymentNode
2223
+ }: ExtendDeployment): Generator<AstNodeDescription>;
2224
+ protected streamForFqnRef(projectId: ProjectId, container: FqnRef$2, context: ReferenceInfo): Stream<AstNodeDescription>;
2225
+ protected genScopeForParentlessFqnRef(projectId: ProjectId, container: FqnRef$2, context: ReferenceInfo): Generator<AstNodeDescription>;
2226
+ /**
2227
+ * Computes the scope for a given reference context.
2228
+ *
2229
+ * @param context - The reference information containing the context for which the scope is being computed.
2230
+ * @param referenceType - The type of reference being resolved. Defaults to the reference type derived from the context.
2231
+ * @returns A scope containing the relevant AST node descriptions for the given reference context.
2232
+ *
2233
+ * This method first checks if there are precomputed scopes available in the document. If not, it falls back to the global scope.
2234
+ * It then iterates through the container hierarchy, collecting relevant scopes based on the reference type and container type.
2235
+ * Finally, it combines the collected scopes with the global scope to produce the final scope.
2236
+ */
2237
+ protected computeScope(projectId: ProjectId, context: ReferenceInfo, referenceType?: string): Generator<AstNodeDescription>;
2238
+ /**
2239
+ * Create a global scope filtered for the given reference type.
2240
+ */
2241
+ protected getProjectScope(projectId: ProjectId, referenceType: string, context: ReferenceInfo): Scope;
2242
+ /**
2243
+ * Create a global scope filtered for the given reference type.
2244
+ */
2245
+ protected getGlobalScope(referenceType: string, context: ReferenceInfo): Scope;
2246
+ } //#endregion
2247
+ //#region src/utils/disposable.d.ts
2248
+ declare abstract class ADisposable implements Disposable$1 {
2249
+ protected toDispose: Disposable$1[];
2250
+ protected isDisposed: boolean;
2251
+ onDispose(...disposable: Disposable$1[]): void;
2252
+ dispose(): void;
2253
+ protected throwIfDisposed(): void;
2254
+ } //#endregion
2452
2255
  //#region src/model/fqn-index.d.ts
2453
2256
  declare class FqnIndex<AstNd = Element> extends ADisposable {
2454
2257
  protected services: LikeC4Services;
@@ -2456,18 +2259,19 @@ declare class FqnIndex<AstNd = Element> extends ADisposable {
2456
2259
  protected langiumDocuments: LangiumDocuments;
2457
2260
  protected documentCache: DefaultWeakMap<LikeC4LangiumDocument, DocumentFqnIndex>;
2458
2261
  protected workspaceCache: WorkspaceCache<string, AstNodeDescriptionWithFqn[]>;
2262
+ protected logger: any;
2459
2263
  constructor(services: LikeC4Services);
2460
2264
  private documents;
2461
2265
  get(document: LikeC4LangiumDocument): DocumentFqnIndex;
2462
- resolve(reference: Referenceable): Fqn;
2463
- getFqn(el: AstNd): Fqn;
2464
- byFqn(projectId: ProjectId, fqn: Fqn): Stream<AstNodeDescriptionWithFqn>;
2465
- rootElements(projectId: ProjectId): Stream<AstNodeDescriptionWithFqn>;
2466
- directChildrenOf(projectId: ProjectId, parent: Fqn): Stream<AstNodeDescriptionWithFqn>;
2266
+ resolve(reference: Referenceable): Fqn$1;
2267
+ getFqn(el: AstNd): Fqn$1;
2268
+ byFqn(projectId: ProjectId$1, fqn: Fqn$1): Stream<AstNodeDescriptionWithFqn>;
2269
+ rootElements(projectId: ProjectId$1): Stream<AstNodeDescriptionWithFqn>;
2270
+ directChildrenOf(projectId: ProjectId$1, parent: Fqn$1): Stream<AstNodeDescriptionWithFqn>;
2467
2271
  /**
2468
2272
  * Returns descedant elements with unique names in the scope
2469
2273
  */
2470
- uniqueDescedants(projectId: ProjectId, parent: Fqn): Stream<AstNodeDescriptionWithFqn>;
2274
+ uniqueDescedants(projectId: ProjectId$1, parent: Fqn$1): Stream<AstNodeDescriptionWithFqn>;
2471
2275
  protected createDocumentIndex(document: LikeC4LangiumDocument): DocumentFqnIndex;
2472
2276
  }
2473
2277
  declare class DocumentFqnIndex {
@@ -2484,42 +2288,115 @@ declare class DocumentFqnIndex {
2484
2288
  * All elements by FQN
2485
2289
  */
2486
2290
  private _byfqn;
2487
- readonly projectId: ProjectId;
2291
+ readonly projectId: ProjectId$1;
2488
2292
  static readonly EMPTY: DocumentFqnIndex;
2489
2293
  constructor(_rootElements: Array<AstNodeDescriptionWithFqn>,
2490
2294
  /**
2491
2295
  * direct children of elements
2492
2296
  */
2493
2297
 
2494
- _children: MultiMap<Fqn, AstNodeDescriptionWithFqn>,
2298
+ _children: MultiMap<Fqn$1, AstNodeDescriptionWithFqn>,
2495
2299
  /**
2496
2300
  * All descendants of an element (unique by name)
2497
2301
  */
2498
2302
 
2499
- _descendants: MultiMap<Fqn, AstNodeDescriptionWithFqn>,
2303
+ _descendants: MultiMap<Fqn$1, AstNodeDescriptionWithFqn>,
2500
2304
  /**
2501
2305
  * All elements by FQN
2502
2306
  */
2503
2307
 
2504
- _byfqn: MultiMap<Fqn, AstNodeDescriptionWithFqn>, projectId: ProjectId);
2308
+ _byfqn: MultiMap<Fqn$1, AstNodeDescriptionWithFqn>, projectId: ProjectId$1);
2505
2309
  rootElements(): readonly AstNodeDescriptionWithFqn[];
2506
- byFqn(fqn: Fqn): readonly AstNodeDescriptionWithFqn[];
2507
- children(parent: Fqn): readonly AstNodeDescriptionWithFqn[];
2508
- descendants(nodeName: Fqn): readonly AstNodeDescriptionWithFqn[];
2310
+ byFqn(fqn: Fqn$1): readonly AstNodeDescriptionWithFqn[];
2311
+ children(parent: Fqn$1): readonly AstNodeDescriptionWithFqn[];
2312
+ descendants(nodeName: Fqn$1): readonly AstNodeDescriptionWithFqn[];
2509
2313
  } //#endregion
2510
2314
  //#region src/model/deployments-index.d.ts
2511
2315
  declare class DeploymentsIndex extends FqnIndex<DeploymentElement> {
2512
2316
  protected services: LikeC4Services;
2513
2317
  protected Names: LikeC4NameProvider;
2318
+ protected logger: any;
2514
2319
  constructor(services: LikeC4Services);
2515
2320
  protected createDocumentIndex(document: LikeC4LangiumDocument): DocumentFqnIndex;
2516
2321
  } //#endregion
2322
+ //#region src/model/builder/MergedSpecification.d.ts
2323
+ /**
2324
+ * The `MergedSpecification` class is responsible for merging multiple parsed
2325
+ * LikeC4Langium documents into a single specification. It consolidates tags,
2326
+ * elements, deployments, relationships, and colors from the provided documents
2327
+ * and provides methods to convert parsed models into C4 model elements and relations.
2328
+ */
2329
+ declare class MergedSpecification {
2330
+ readonly specs: Omit<ParsedAstSpecification, 'tags'>;
2331
+ readonly tags: Readonly<Record<c4.Tag, c4.TagSpecification>>;
2332
+ readonly globals: c4.ModelGlobals;
2333
+ readonly imports: MultiMap<c4.ProjectId, c4.Fqn, Set<c4.Fqn>>;
2334
+ readonly projectId: c4.ProjectId | undefined;
2335
+ constructor(docs: ReadonlyArray<ParsedLikeC4LangiumDocument>);
2336
+ /**
2337
+ * Converts a parsed model into a C4 model element.
2338
+ */
2339
+ toModelElement: ({
2340
+ tags,
2341
+ links,
2342
+ style,
2343
+ id,
2344
+ kind,
2345
+ title,
2346
+ description,
2347
+ technology,
2348
+ summary,
2349
+ metadata
2350
+ }: ParsedAstElement) => c4.Element | null;
2351
+ /**
2352
+ * Converts a parsed model into a C4 model relation.
2353
+ */
2354
+ toModelRelation: ({
2355
+ astPath: _astPath,
2356
+ source,
2357
+ target,
2358
+ kind,
2359
+ links,
2360
+ id,
2361
+ ...model
2362
+ }: ParsedAstRelation) => c4.Relationship | null;
2363
+ /**
2364
+ * Converts a parsed deployment model into a C4 deployment model
2365
+ */
2366
+ toDeploymentElement: (parsed: ParsedAstDeployment) => c4.DeploymentElement | null;
2367
+ /**
2368
+ * Converts a parsed deployment relation into a C4 deployment relation.
2369
+ */
2370
+ toDeploymentRelation: ({
2371
+ astPath: _astPath,
2372
+ source,
2373
+ target,
2374
+ kind,
2375
+ links,
2376
+ id,
2377
+ ...model
2378
+ }: ParsedAstDeploymentRelation) => c4.DeploymentRelationship | null;
2379
+ } //#endregion
2380
+ //#region src/model/last-seen-artifacts.d.ts
2381
+ /**
2382
+ * Provides access to "last seen artifacts" for a given project,
2383
+ * (Results of the last successful parsing)
2384
+ */
2385
+ declare class LastSeenArtifacts {
2386
+ #private;
2387
+ constructor(services: LikeC4Services);
2388
+ rememberSpecification(specification: MergedSpecification): MergedSpecification;
2389
+ rememberModel<M extends LikeC4Model.Computed>(model: M): M;
2390
+ specification(projectId: c4.ProjectId): MergedSpecification | undefined;
2391
+ styles(projectId: c4.ProjectId): LikeC4Styles$1 | undefined;
2392
+ model(projectId: c4.ProjectId): LikeC4Model.Computed | undefined;
2393
+ } //#endregion
2517
2394
  //#region src/model/model-builder.d.ts
2518
2395
  type ModelParsedListener = (docs: URI[]) => void;
2519
2396
  interface LikeC4ModelBuilder extends Disposable$1 {
2520
- parseModel(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownParsed> | null>;
2521
- unsafeSyncComputeModel(projectId: ProjectId$1): LikeC4Model<UnknownComputed>;
2522
- computeModel(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
2397
+ parseModel(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownParsed> | null>;
2398
+ unsafeSyncComputeModel(projectId: ProjectId): LikeC4Model<UnknownComputed>;
2399
+ computeModel(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
2523
2400
  onModelParsed(callback: ModelParsedListener): Disposable$1;
2524
2401
  clearCache(): void;
2525
2402
  } //#endregion
@@ -2537,16 +2414,30 @@ declare class LikeC4ModelLocator {
2537
2414
  private parser;
2538
2415
  private projects;
2539
2416
  constructor(services: LikeC4Services);
2417
+ /**
2418
+ * Returns the parsed documents
2419
+ */
2540
2420
  private documents;
2541
- getParsedElement(...args: [Element] | [c4.Fqn] | [c4.Fqn, c4.ProjectId]): ParsedAstElement | null;
2421
+ getParsedElement(...args: [Element] | [c4.Fqn] | [c4.Fqn, c4.ProjectId]): null | {
2422
+ projectId: c4.ProjectId;
2423
+ element: ParsedAstElement;
2424
+ document: LangiumDocument;
2425
+ };
2426
+ private findParsedElementByFqnIn;
2542
2427
  locateElement(fqn: c4.Fqn, projectId?: c4.ProjectId | undefined): Location | null;
2543
2428
  locateDeploymentElement(deploymentFqn: c4.DeploymentFqn, projectId?: c4.ProjectId | undefined): Location | null;
2544
2429
  locateRelation(relationId: c4.RelationId, projectId?: c4.ProjectId): Location | null;
2545
2430
  locateViewAst(viewId: c4.ViewId, projectId?: c4.ProjectId | undefined): null | ViewLocateResult;
2546
2431
  locateView(viewId: c4.ViewId, projectId?: c4.ProjectId): Location | null;
2547
- locateDocumentTags(documentUri: URI, cancelToken?: CancellationToken$1): Promise<Array<{
2548
- name: string;
2549
- color: string;
2432
+ /**
2433
+ * Returns an array of tags with their name, color, range and whether they are defined in the specification or not.
2434
+ * If the document is not linked, it will wait until it is linked before locating the tags.
2435
+ *
2436
+ * If the document does not belong to any project, it will return null.
2437
+ */
2438
+ locateDocumentTags(documentUri: URI, cancelToken?: CancellationToken$1): Promise<null | Array<{
2439
+ name: Tag;
2440
+ color: c4.ColorLiteral;
2550
2441
  range: Range;
2551
2442
  isSpecification: boolean;
2552
2443
  }>>;
@@ -2556,15 +2447,89 @@ declare class LikeC4ModelLocator {
2556
2447
  projectId?: c4.ProjectId | undefined;
2557
2448
  }): Location | null;
2558
2449
  } //#endregion
2559
- //#region src/filesystem/LikeC4FileSystem.d.ts
2450
+ //#region src/mcp/noop.d.ts
2560
2451
  //#endregion
2452
+ //#region src/views/LikeC4Views.d.ts
2453
+ type GraphvizOut = {
2454
+ readonly dot: string;
2455
+ readonly diagram: LayoutedView;
2456
+ };
2457
+ type GraphvizSvgOut = {
2458
+ readonly id: ViewId;
2459
+ readonly dot: string;
2460
+ readonly svg: string;
2461
+ };
2462
+ type LayoutViewParams = {
2463
+ viewId: ViewId;
2464
+ /**
2465
+ * Type of layout to apply
2466
+ * - 'manual' - applies manual layout if any
2467
+ * - 'auto' - returns latest version with drifts from manual layout if any
2468
+ * - undefined - returns latest layout as is
2469
+ */
2470
+ layoutType?: LayoutType | undefined;
2471
+ projectId?: ProjectId | undefined;
2472
+ cancelToken?: CancellationToken$1 | undefined;
2473
+ };
2474
+ interface LikeC4Views {
2475
+ readonly layouter: GraphvizLayouter;
2476
+ /**
2477
+ * Returns computed views (i.e. views with predicates computed)
2478
+ *
2479
+ * @param projectId - project id, if not specified - uses the default project
2480
+ */
2481
+ computedViews(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<ComputedView[]>;
2482
+ /**
2483
+ * Layouts all views (ignoring any manual snapshots)
2484
+ *
2485
+ * @param projectId - project id, if not specified - uses the default project
2486
+ */
2487
+ layoutAllViews(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<GraphvizOut[]>;
2488
+ /**
2489
+ * Layouts a view.
2490
+ * If layoutType is 'manual' - applies manual layout if any.
2491
+ * If layoutType is 'auto' - returns latest version with drifts from manual layout if any
2492
+ * If not specified - returns latest layout as is
2493
+ *
2494
+ * If view not found in model, but there is a snapshot - it will be returned (with empty DOT)
2495
+ */
2496
+ layoutView(params: LayoutViewParams): Promise<GraphvizOut | null>;
2497
+ /**
2498
+ * Returns diagrams.
2499
+ * If diagram has manual layout, it will be used.
2500
+ * @param projectId - project id, if not specified - uses the default project
2501
+ */
2502
+ diagrams(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<Array<DiagramView>>;
2503
+ /**
2504
+ * Returns all layouted views as Graphviz output (i.e. views with layout computed)
2505
+ * @param projectId - project id, if not specified - uses the default project
2506
+ */
2507
+ viewsAsGraphvizOut(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<Array<GraphvizSvgOut>>;
2508
+ /**
2509
+ * Open view in the preview panel.
2510
+ * (works only if running as a vscode extension)
2511
+ *
2512
+ * @param projectId - project id, if not specified - uses the default project
2513
+ */
2514
+ openView(viewId: ViewId, projectId?: ProjectId | undefined): Promise<void>;
2515
+ /**
2516
+ * Computes and layouts an adhoc view (not defined in the model)
2517
+ *
2518
+ * @param projectId - project id, if not specified - uses the default project
2519
+ */
2520
+ adhocView(predicates: AdhocViewPredicate[], projectId?: ProjectId | undefined): Promise<LayoutedView>;
2521
+ } //#endregion
2561
2522
  //#region src/model/parser/Base.d.ts
2523
+ type ParserLevel = 'base' | 'model' | 'deployment' | 'fqnref' | 'relation' | 'views' | 'globals' | 'imports' | 'specification';
2562
2524
  declare class BaseParser {
2563
2525
  readonly services: LikeC4Services;
2564
2526
  readonly doc: ParsedLikeC4LangiumDocument;
2527
+ readonly project: Project;
2565
2528
  isValid: IsValidFn;
2566
- constructor(services: LikeC4Services, doc: ParsedLikeC4LangiumDocument);
2567
- get project(): Project;
2529
+ constructor(services: LikeC4Services, doc: ParsedLikeC4LangiumDocument, project: Project);
2530
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: ParserLevel): void;
2531
+ tryParse<N extends AstNode, T>(level: ParserLevel, node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2532
+ tryMap<N extends AstNode, T>(level: ParserLevel, iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2568
2533
  resolveFqn(node: FqnReferenceable): c4.Fqn;
2569
2534
  getAstNodePath(node: AstNode): string;
2570
2535
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -2577,11 +2542,11 @@ declare class BaseParser {
2577
2542
  parseTags<E extends {
2578
2543
  tags?: Tags;
2579
2544
  }>(withTags?: E): c4.NonEmptyArray<c4.Tag> | null;
2580
- convertLinks(source?: LinkProperty['$container']): c4.Link[] | undefined;
2581
- parseLinks(source?: LinkProperty['$container']): c4.Link[] | undefined;
2545
+ convertLinks(source?: LinkProperty['$container']): c4.NonEmptyArray<c4.Link> | undefined;
2546
+ parseLinks(source?: LinkProperty['$container']): c4.NonEmptyArray<c4.Link> | undefined;
2582
2547
  parseIconProperty(prop: IconProperty | undefined): c4.IconUrl | undefined;
2583
2548
  parseImageAlias(value: string): string | undefined;
2584
- parseColorLiteral(astNode: ColorLiteral): c4.ColorLiteral | undefined;
2549
+ parseColorLiteral(astNode: ColorLiteral$1): c4.ColorLiteral | undefined;
2585
2550
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2586
2551
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2587
2552
  /**
@@ -2612,79 +2577,82 @@ declare class BaseParser {
2612
2577
  declare const DocumentParserFromMixins: {
2613
2578
  new (...args: any[]): {
2614
2579
  parseGlobals(): void;
2615
- parseAndStoreGlobalPredicateGroupOrDynamic(astRule: GlobalPredicateGroup | GlobalDynamicPredicateGroup, id: ProjectId$1, c4Globals: ParsedAstGlobals): void;
2616
- parseGlobalPredicateGroup(astRule: GlobalPredicateGroup): ProjectId$1[];
2617
- parseGlobalDynamicPredicateGroup(astRule: GlobalDynamicPredicateGroup): ProjectId$1[];
2618
- parseGlobalStyleOrGroup(astRule: GlobalStyle | GlobalStyleGroup): ProjectId$1[];
2580
+ parseAndStoreGlobalPredicateGroupOrDynamic(astRule: GlobalPredicateGroup | GlobalDynamicPredicateGroup, id: ProjectId, c4Globals: ParsedAstGlobals): void;
2581
+ parseGlobalPredicateGroup(astRule: GlobalPredicateGroup): ProjectId[];
2582
+ parseGlobalDynamicPredicateGroup(astRule: GlobalDynamicPredicateGroup): ProjectId[];
2583
+ parseGlobalStyleOrGroup(astRule: GlobalStyle | GlobalStyleGroup): ProjectId[];
2619
2584
  parseViews(): void;
2620
2585
  parseElementView(astNode: ElementView, additionalStyles: any[]): ParsedAstElementView;
2621
- parseElementViewRule(astRule: ViewRule): ProjectId$1;
2622
- parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId$1;
2623
- parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId$1;
2586
+ parseElementViewRule(astRule: ViewRule): ProjectId;
2587
+ parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId;
2588
+ parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId;
2624
2589
  parseViewRuleStyleOrGlobalRef(astRule: ViewRuleStyleOrGlobalRef): any;
2625
- parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId$1;
2626
- parseViewRuleRank(astRule: ViewRuleRank): ProjectId$1;
2627
- parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId$1;
2628
- parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId$1;
2590
+ parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId;
2591
+ parseViewRuleRank(astRule: ViewRuleRank): ProjectId;
2592
+ parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId;
2593
+ parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId;
2629
2594
  parseDynamicElementView(astNode: DynamicView, additionalStyles: any[]): ParsedAstDynamicView;
2630
- parseDynamicViewRule(astRule: DynamicViewRule): ProjectId$1;
2631
- parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId$1;
2632
- parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId$1;
2633
- parseDynamicStep(node: DynamicViewStep): ProjectId$1 | ProjectId$1;
2634
- recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId$1, target: ProjectId$1]>): ProjectId$1[];
2635
- parseDynamicStepSingle(node: DynamicStepSingle): ProjectId$1;
2636
- parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId$1, "source", {
2595
+ parseDynamicViewRule(astRule: DynamicViewRule): ProjectId;
2596
+ parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId;
2597
+ parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId;
2598
+ parseDynamicStep(node: DynamicViewStep): ProjectId | ProjectId;
2599
+ recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId, target: ProjectId]>): ProjectId[];
2600
+ parseDynamicStepSingle(node: DynamicStepSingle): ProjectId;
2601
+ parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId, "source", {
2637
2602
  requireExactProps: true;
2638
2603
  }>>;
2639
- parsePredicate(astNode: ExpressionV2): ProjectId$1;
2640
- parseElementPredicate(astNode: FqnExprOrWith): ProjectId$1;
2641
- parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2642
- parseElementExpression(astNode: FqnExpr$2): ProjectId$1;
2643
- parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId$1;
2644
- parseElementPredicateWith(astNode: FqnExprWith): ProjectId$1;
2645
- parseRelationPredicate(astNode: RelationExprOrWith): ProjectId$1;
2646
- parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2647
- parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId$1;
2648
- parseRelationPredicateWith(astNode: RelationExprWith): ProjectId$1;
2649
- parseRelationExpression(astNode: RelationExpr$1): ProjectId$1;
2650
- parseFqnRef(astNode: FqnRef$2): ProjectId$1;
2651
- parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
2652
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
2653
- parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
2654
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2655
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
2656
- parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
2657
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
2658
- parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
2659
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
2660
- parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
2661
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
2662
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2663
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
2664
- parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
2665
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
2666
- wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
2604
+ parsePredicate(astNode: ExpressionV2): ProjectId;
2605
+ parseElementPredicate(astNode: FqnExprOrWith): ProjectId;
2606
+ parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId;
2607
+ parseElementExpression(astNode: FqnExpr$2): ProjectId;
2608
+ parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId;
2609
+ parseElementPredicateWith(astNode: FqnExprWith): ProjectId;
2610
+ parseRelationPredicate(astNode: RelationExprOrWith): ProjectId;
2611
+ parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId;
2612
+ parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId;
2613
+ parseRelationPredicateWith(astNode: RelationExprWith): ProjectId;
2614
+ parseRelationExpression(astNode: RelationExpr$1): ProjectId;
2615
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
2616
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
2617
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2618
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2619
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2620
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2621
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2622
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2623
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2624
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2625
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2626
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2627
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2628
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2629
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2630
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2631
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
2667
2632
  isValid: IsValidFn;
2668
2633
  readonly services: LikeC4Services;
2669
2634
  readonly doc: ParsedLikeC4LangiumDocument;
2670
- get project(): Project;
2671
- resolveFqn(node: FqnReferenceable): ProjectId$1;
2635
+ readonly project: Project;
2636
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2637
+ tryParse<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2638
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2639
+ resolveFqn(node: FqnReferenceable): ProjectId;
2672
2640
  getAstNodePath(node: AstNode): string;
2673
2641
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2674
2642
  [key: string]: string | string[];
2675
2643
  } | undefined;
2676
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2644
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2677
2645
  convertTags<E extends {
2678
2646
  tags?: Tags;
2679
2647
  }>(withTags?: E | undefined): any;
2680
2648
  parseTags<E extends {
2681
2649
  tags?: Tags;
2682
- }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
2683
- convertLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
2684
- parseLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
2685
- parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
2650
+ }>(withTags?: E): ProjectId<ProjectId> | null;
2651
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2652
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2653
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2686
2654
  parseImageAlias(value: string): string | undefined;
2687
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
2655
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2688
2656
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2689
2657
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2690
2658
  parseBaseProps(props: {
@@ -2699,92 +2667,95 @@ declare const DocumentParserFromMixins: {
2699
2667
  technology?: string | undefined;
2700
2668
  }): {
2701
2669
  title?: string;
2702
- summary?: ProjectId$1;
2703
- description?: ProjectId$1;
2670
+ summary?: ProjectId;
2671
+ description?: ProjectId;
2704
2672
  technology?: string;
2705
2673
  };
2706
2674
  parseDeploymentView(astNode: DeploymentView): ParsedAstDeploymentView;
2707
- parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId$1;
2708
- parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId$1;
2709
- parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId$1;
2675
+ parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId;
2676
+ parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId;
2677
+ parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId;
2710
2678
  parseDeployment(): void;
2711
2679
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
2712
2680
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
2713
2681
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
2714
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
2682
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
2715
2683
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
2716
2684
  };
2717
2685
  } & {
2718
2686
  new (...args: any[]): {
2719
2687
  parseViews(): void;
2720
2688
  parseElementView(astNode: ElementView, additionalStyles: any[]): ParsedAstElementView;
2721
- parseElementViewRule(astRule: ViewRule): ProjectId$1;
2722
- parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId$1;
2723
- parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId$1;
2689
+ parseElementViewRule(astRule: ViewRule): ProjectId;
2690
+ parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId;
2691
+ parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId;
2724
2692
  parseViewRuleStyleOrGlobalRef(astRule: ViewRuleStyleOrGlobalRef): any;
2725
- parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId$1;
2726
- parseViewRuleRank(astRule: ViewRuleRank): ProjectId$1;
2727
- parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId$1;
2728
- parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId$1;
2693
+ parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId;
2694
+ parseViewRuleRank(astRule: ViewRuleRank): ProjectId;
2695
+ parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId;
2696
+ parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId;
2729
2697
  parseDynamicElementView(astNode: DynamicView, additionalStyles: any[]): ParsedAstDynamicView;
2730
- parseDynamicViewRule(astRule: DynamicViewRule): ProjectId$1;
2731
- parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId$1;
2732
- parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId$1;
2733
- parseDynamicStep(node: DynamicViewStep): ProjectId$1 | ProjectId$1;
2734
- recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId$1, target: ProjectId$1]>): ProjectId$1[];
2735
- parseDynamicStepSingle(node: DynamicStepSingle): ProjectId$1;
2736
- parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId$1, "source", {
2698
+ parseDynamicViewRule(astRule: DynamicViewRule): ProjectId;
2699
+ parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId;
2700
+ parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId;
2701
+ parseDynamicStep(node: DynamicViewStep): ProjectId | ProjectId;
2702
+ recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId, target: ProjectId]>): ProjectId[];
2703
+ parseDynamicStepSingle(node: DynamicStepSingle): ProjectId;
2704
+ parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId, "source", {
2737
2705
  requireExactProps: true;
2738
2706
  }>>;
2739
- parsePredicate(astNode: ExpressionV2): ProjectId$1;
2740
- parseElementPredicate(astNode: FqnExprOrWith): ProjectId$1;
2741
- parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2742
- parseElementExpression(astNode: FqnExpr$2): ProjectId$1;
2743
- parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId$1;
2744
- parseElementPredicateWith(astNode: FqnExprWith): ProjectId$1;
2745
- parseRelationPredicate(astNode: RelationExprOrWith): ProjectId$1;
2746
- parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2747
- parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId$1;
2748
- parseRelationPredicateWith(astNode: RelationExprWith): ProjectId$1;
2749
- parseRelationExpression(astNode: RelationExpr$1): ProjectId$1;
2750
- parseFqnRef(astNode: FqnRef$2): ProjectId$1;
2751
- parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
2752
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
2753
- parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
2754
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2755
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
2756
- parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
2757
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
2758
- parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
2759
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
2760
- parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
2761
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
2762
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2763
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
2764
- parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
2765
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
2766
- wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
2707
+ parsePredicate(astNode: ExpressionV2): ProjectId;
2708
+ parseElementPredicate(astNode: FqnExprOrWith): ProjectId;
2709
+ parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId;
2710
+ parseElementExpression(astNode: FqnExpr$2): ProjectId;
2711
+ parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId;
2712
+ parseElementPredicateWith(astNode: FqnExprWith): ProjectId;
2713
+ parseRelationPredicate(astNode: RelationExprOrWith): ProjectId;
2714
+ parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId;
2715
+ parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId;
2716
+ parseRelationPredicateWith(astNode: RelationExprWith): ProjectId;
2717
+ parseRelationExpression(astNode: RelationExpr$1): ProjectId;
2718
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
2719
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
2720
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2721
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2722
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2723
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2724
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2725
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2726
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2727
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2728
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2729
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2730
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2731
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2732
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2733
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2734
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
2767
2735
  isValid: IsValidFn;
2768
2736
  readonly services: LikeC4Services;
2769
2737
  readonly doc: ParsedLikeC4LangiumDocument;
2770
- get project(): Project;
2771
- resolveFqn(node: FqnReferenceable): ProjectId$1;
2738
+ readonly project: Project;
2739
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2740
+ tryParse<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2741
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2742
+ resolveFqn(node: FqnReferenceable): ProjectId;
2772
2743
  getAstNodePath(node: AstNode): string;
2773
2744
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2774
2745
  [key: string]: string | string[];
2775
2746
  } | undefined;
2776
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2747
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2777
2748
  convertTags<E extends {
2778
2749
  tags?: Tags;
2779
2750
  }>(withTags?: E | undefined): any;
2780
2751
  parseTags<E extends {
2781
2752
  tags?: Tags;
2782
- }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
2783
- convertLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
2784
- parseLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
2785
- parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
2753
+ }>(withTags?: E): ProjectId<ProjectId> | null;
2754
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2755
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2756
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2786
2757
  parseImageAlias(value: string): string | undefined;
2787
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
2758
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2788
2759
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2789
2760
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2790
2761
  parseBaseProps(props: {
@@ -2799,19 +2770,19 @@ declare const DocumentParserFromMixins: {
2799
2770
  technology?: string | undefined;
2800
2771
  }): {
2801
2772
  title?: string;
2802
- summary?: ProjectId$1;
2803
- description?: ProjectId$1;
2773
+ summary?: ProjectId;
2774
+ description?: ProjectId;
2804
2775
  technology?: string;
2805
2776
  };
2806
2777
  parseDeploymentView(astNode: DeploymentView): ParsedAstDeploymentView;
2807
- parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId$1;
2808
- parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId$1;
2809
- parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId$1;
2778
+ parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId;
2779
+ parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId;
2780
+ parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId;
2810
2781
  parseDeployment(): void;
2811
2782
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
2812
2783
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
2813
2784
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
2814
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
2785
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
2815
2786
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
2816
2787
  };
2817
2788
  } & {
@@ -2822,24 +2793,27 @@ declare const DocumentParserFromMixins: {
2822
2793
  isValid: IsValidFn;
2823
2794
  readonly services: LikeC4Services;
2824
2795
  readonly doc: ParsedLikeC4LangiumDocument;
2825
- get project(): Project;
2826
- resolveFqn(node: FqnReferenceable): ProjectId$1;
2796
+ readonly project: Project;
2797
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2798
+ tryParse<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2799
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2800
+ resolveFqn(node: FqnReferenceable): ProjectId;
2827
2801
  getAstNodePath(node: AstNode): string;
2828
2802
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2829
2803
  [key: string]: string | string[];
2830
2804
  } | undefined;
2831
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2805
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2832
2806
  convertTags<E extends {
2833
2807
  tags?: Tags;
2834
2808
  }>(withTags?: E | undefined): any;
2835
2809
  parseTags<E extends {
2836
2810
  tags?: Tags;
2837
- }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
2838
- convertLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
2839
- parseLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
2840
- parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
2811
+ }>(withTags?: E): ProjectId<ProjectId> | null;
2812
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2813
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2814
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2841
2815
  parseImageAlias(value: string): string | undefined;
2842
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
2816
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2843
2817
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2844
2818
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2845
2819
  parseBaseProps(props: {
@@ -2854,62 +2828,65 @@ declare const DocumentParserFromMixins: {
2854
2828
  technology?: string | undefined;
2855
2829
  }): {
2856
2830
  title?: string;
2857
- summary?: ProjectId$1;
2858
- description?: ProjectId$1;
2831
+ summary?: ProjectId;
2832
+ description?: ProjectId;
2859
2833
  technology?: string;
2860
2834
  };
2861
2835
  };
2862
2836
  } & {
2863
2837
  new (...args: any[]): {
2864
- parsePredicate(astNode: ExpressionV2): ProjectId$1;
2865
- parseElementPredicate(astNode: FqnExprOrWith): ProjectId$1;
2866
- parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2867
- parseElementExpression(astNode: FqnExpr$2): ProjectId$1;
2868
- parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId$1;
2869
- parseElementPredicateWith(astNode: FqnExprWith): ProjectId$1;
2870
- parseRelationPredicate(astNode: RelationExprOrWith): ProjectId$1;
2871
- parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2872
- parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId$1;
2873
- parseRelationPredicateWith(astNode: RelationExprWith): ProjectId$1;
2874
- parseRelationExpression(astNode: RelationExpr$1): ProjectId$1;
2875
- parseFqnRef(astNode: FqnRef$2): ProjectId$1;
2876
- parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
2877
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
2878
- parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
2879
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2880
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
2881
- parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
2882
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
2883
- parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
2884
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
2885
- parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
2886
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
2887
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2888
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
2889
- parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
2890
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
2891
- wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
2838
+ parsePredicate(astNode: ExpressionV2): ProjectId;
2839
+ parseElementPredicate(astNode: FqnExprOrWith): ProjectId;
2840
+ parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId;
2841
+ parseElementExpression(astNode: FqnExpr$2): ProjectId;
2842
+ parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId;
2843
+ parseElementPredicateWith(astNode: FqnExprWith): ProjectId;
2844
+ parseRelationPredicate(astNode: RelationExprOrWith): ProjectId;
2845
+ parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId;
2846
+ parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId;
2847
+ parseRelationPredicateWith(astNode: RelationExprWith): ProjectId;
2848
+ parseRelationExpression(astNode: RelationExpr$1): ProjectId;
2849
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
2850
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
2851
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2852
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2853
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2854
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2855
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2856
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2857
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2858
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2859
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2860
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2861
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2862
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2863
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2864
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2865
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
2892
2866
  isValid: IsValidFn;
2893
2867
  readonly services: LikeC4Services;
2894
2868
  readonly doc: ParsedLikeC4LangiumDocument;
2895
- get project(): Project;
2896
- resolveFqn(node: FqnReferenceable): ProjectId$1;
2869
+ readonly project: Project;
2870
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2871
+ tryParse<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2872
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2873
+ resolveFqn(node: FqnReferenceable): ProjectId;
2897
2874
  getAstNodePath(node: AstNode): string;
2898
2875
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2899
2876
  [key: string]: string | string[];
2900
2877
  } | undefined;
2901
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2878
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2902
2879
  convertTags<E extends {
2903
2880
  tags?: Tags;
2904
2881
  }>(withTags?: E | undefined): any;
2905
2882
  parseTags<E extends {
2906
2883
  tags?: Tags;
2907
- }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
2908
- convertLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
2909
- parseLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
2910
- parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
2884
+ }>(withTags?: E): ProjectId<ProjectId> | null;
2885
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2886
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2887
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2911
2888
  parseImageAlias(value: string): string | undefined;
2912
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
2889
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2913
2890
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2914
2891
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2915
2892
  parseBaseProps(props: {
@@ -2924,55 +2901,58 @@ declare const DocumentParserFromMixins: {
2924
2901
  technology?: string | undefined;
2925
2902
  }): {
2926
2903
  title?: string;
2927
- summary?: ProjectId$1;
2928
- description?: ProjectId$1;
2904
+ summary?: ProjectId;
2905
+ description?: ProjectId;
2929
2906
  technology?: string;
2930
2907
  };
2931
2908
  };
2932
2909
  } & {
2933
2910
  new (...args: any[]): {
2934
2911
  parseDeploymentView(astNode: DeploymentView): ParsedAstDeploymentView;
2935
- parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId$1;
2936
- parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId$1;
2937
- parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId$1;
2938
- parseFqnRef(astNode: FqnRef$2): ProjectId$1;
2939
- parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
2940
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
2941
- parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
2942
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2943
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
2944
- parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
2945
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
2946
- parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
2947
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
2948
- parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
2949
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
2950
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2951
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
2952
- parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
2953
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
2954
- wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
2912
+ parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId;
2913
+ parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId;
2914
+ parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId;
2915
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
2916
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
2917
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2918
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2919
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2920
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2921
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2922
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2923
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2924
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2925
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2926
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2927
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2928
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2929
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2930
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2931
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
2955
2932
  isValid: IsValidFn;
2956
2933
  readonly services: LikeC4Services;
2957
2934
  readonly doc: ParsedLikeC4LangiumDocument;
2958
- get project(): Project;
2959
- resolveFqn(node: FqnReferenceable): ProjectId$1;
2935
+ readonly project: Project;
2936
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2937
+ tryParse<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2938
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2939
+ resolveFqn(node: FqnReferenceable): ProjectId;
2960
2940
  getAstNodePath(node: AstNode): string;
2961
2941
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2962
2942
  [key: string]: string | string[];
2963
2943
  } | undefined;
2964
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2944
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2965
2945
  convertTags<E extends {
2966
2946
  tags?: Tags;
2967
2947
  }>(withTags?: E | undefined): any;
2968
2948
  parseTags<E extends {
2969
2949
  tags?: Tags;
2970
- }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
2971
- convertLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
2972
- parseLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
2973
- parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
2950
+ }>(withTags?: E): ProjectId<ProjectId> | null;
2951
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2952
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2953
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2974
2954
  parseImageAlias(value: string): string | undefined;
2975
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
2955
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2976
2956
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2977
2957
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2978
2958
  parseBaseProps(props: {
@@ -2987,15 +2967,15 @@ declare const DocumentParserFromMixins: {
2987
2967
  technology?: string | undefined;
2988
2968
  }): {
2989
2969
  title?: string;
2990
- summary?: ProjectId$1;
2991
- description?: ProjectId$1;
2970
+ summary?: ProjectId;
2971
+ description?: ProjectId;
2992
2972
  technology?: string;
2993
2973
  };
2994
2974
  parseDeployment(): void;
2995
2975
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
2996
2976
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
2997
2977
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
2998
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
2978
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
2999
2979
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
3000
2980
  };
3001
2981
  } & {
@@ -3004,46 +2984,49 @@ declare const DocumentParserFromMixins: {
3004
2984
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
3005
2985
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
3006
2986
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
3007
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
2987
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
3008
2988
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
3009
- parseFqnRef(astNode: FqnRef$2): ProjectId$1;
3010
- parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
3011
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
3012
- parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
3013
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
3014
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
3015
- parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
3016
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
3017
- parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
3018
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
3019
- parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
3020
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
3021
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
3022
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
3023
- parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
3024
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
3025
- wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
2989
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
2990
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
2991
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2992
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2993
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2994
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2995
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2996
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2997
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2998
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2999
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
3000
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
3001
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
3002
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
3003
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
3004
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
3005
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3026
3006
  isValid: IsValidFn;
3027
3007
  readonly services: LikeC4Services;
3028
3008
  readonly doc: ParsedLikeC4LangiumDocument;
3029
- get project(): Project;
3030
- resolveFqn(node: FqnReferenceable): ProjectId$1;
3009
+ readonly project: Project;
3010
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3011
+ tryParse<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
3012
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3013
+ resolveFqn(node: FqnReferenceable): ProjectId;
3031
3014
  getAstNodePath(node: AstNode): string;
3032
3015
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3033
3016
  [key: string]: string | string[];
3034
3017
  } | undefined;
3035
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3018
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3036
3019
  convertTags<E extends {
3037
3020
  tags?: Tags;
3038
3021
  }>(withTags?: E | undefined): any;
3039
3022
  parseTags<E extends {
3040
3023
  tags?: Tags;
3041
- }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
3042
- convertLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
3043
- parseLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
3044
- parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
3024
+ }>(withTags?: E): ProjectId<ProjectId> | null;
3025
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3026
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3027
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3045
3028
  parseImageAlias(value: string): string | undefined;
3046
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
3029
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3047
3030
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3048
3031
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3049
3032
  parseBaseProps(props: {
@@ -3058,8 +3041,8 @@ declare const DocumentParserFromMixins: {
3058
3041
  technology?: string | undefined;
3059
3042
  }): {
3060
3043
  title?: string;
3061
- summary?: ProjectId$1;
3062
- description?: ProjectId$1;
3044
+ summary?: ProjectId;
3045
+ description?: ProjectId;
3063
3046
  technology?: string;
3064
3047
  };
3065
3048
  };
@@ -3069,46 +3052,49 @@ declare const DocumentParserFromMixins: {
3069
3052
  parseElement(astNode: Element): ParsedAstElement;
3070
3053
  parseExtendElement(astNode: ExtendElement): ParsedAstExtend | null;
3071
3054
  parseExtendRelation(astNode: ExtendRelation): ParsedAstExtendRelation | null;
3072
- _resolveRelationSource(node: Relation): ProjectId$1 | ProjectId$1;
3055
+ _resolveRelationSource(node: Relation): ProjectId | ProjectId;
3073
3056
  parseRelation(astNode: Relation): ParsedAstRelation;
3074
- parseFqnRef(astNode: FqnRef$2): ProjectId$1;
3075
- parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
3076
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
3077
- parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
3078
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
3079
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
3080
- parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
3081
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
3082
- parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
3083
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
3084
- parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
3085
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
3086
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
3087
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
3088
- parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
3089
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
3090
- wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
3057
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
3058
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
3059
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
3060
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
3061
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
3062
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
3063
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
3064
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
3065
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
3066
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
3067
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
3068
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
3069
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
3070
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
3071
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
3072
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
3073
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3091
3074
  isValid: IsValidFn;
3092
3075
  readonly services: LikeC4Services;
3093
3076
  readonly doc: ParsedLikeC4LangiumDocument;
3094
- get project(): Project;
3095
- resolveFqn(node: FqnReferenceable): ProjectId$1;
3077
+ readonly project: Project;
3078
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3079
+ tryParse<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
3080
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3081
+ resolveFqn(node: FqnReferenceable): ProjectId;
3096
3082
  getAstNodePath(node: AstNode): string;
3097
3083
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3098
3084
  [key: string]: string | string[];
3099
3085
  } | undefined;
3100
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3086
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3101
3087
  convertTags<E extends {
3102
3088
  tags?: Tags;
3103
3089
  }>(withTags?: E | undefined): any;
3104
3090
  parseTags<E extends {
3105
3091
  tags?: Tags;
3106
- }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
3107
- convertLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
3108
- parseLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
3109
- parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
3092
+ }>(withTags?: E): ProjectId<ProjectId> | null;
3093
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3094
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3095
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3110
3096
  parseImageAlias(value: string): string | undefined;
3111
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
3097
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3112
3098
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3113
3099
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3114
3100
  parseBaseProps(props: {
@@ -3123,8 +3109,8 @@ declare const DocumentParserFromMixins: {
3123
3109
  technology?: string | undefined;
3124
3110
  }): {
3125
3111
  title?: string;
3126
- summary?: ProjectId$1;
3127
- description?: ProjectId$1;
3112
+ summary?: ProjectId;
3113
+ description?: ProjectId;
3128
3114
  technology?: string;
3129
3115
  };
3130
3116
  };
@@ -3134,24 +3120,27 @@ declare const DocumentParserFromMixins: {
3134
3120
  isValid: IsValidFn;
3135
3121
  readonly services: LikeC4Services;
3136
3122
  readonly doc: ParsedLikeC4LangiumDocument;
3137
- get project(): Project;
3138
- resolveFqn(node: FqnReferenceable): ProjectId$1;
3123
+ readonly project: Project;
3124
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3125
+ tryParse<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
3126
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3127
+ resolveFqn(node: FqnReferenceable): ProjectId;
3139
3128
  getAstNodePath(node: AstNode): string;
3140
3129
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3141
3130
  [key: string]: string | string[];
3142
3131
  } | undefined;
3143
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3132
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3144
3133
  convertTags<E extends {
3145
3134
  tags?: Tags;
3146
3135
  }>(withTags?: E | undefined): any;
3147
3136
  parseTags<E extends {
3148
3137
  tags?: Tags;
3149
- }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
3150
- convertLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
3151
- parseLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
3152
- parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
3138
+ }>(withTags?: E): ProjectId<ProjectId> | null;
3139
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3140
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3141
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3153
3142
  parseImageAlias(value: string): string | undefined;
3154
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
3143
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3155
3144
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3156
3145
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3157
3146
  parseBaseProps(props: {
@@ -3166,51 +3155,54 @@ declare const DocumentParserFromMixins: {
3166
3155
  technology?: string | undefined;
3167
3156
  }): {
3168
3157
  title?: string;
3169
- summary?: ProjectId$1;
3170
- description?: ProjectId$1;
3158
+ summary?: ProjectId;
3159
+ description?: ProjectId;
3171
3160
  technology?: string;
3172
3161
  };
3173
3162
  };
3174
3163
  } & {
3175
3164
  new (...args: any[]): {
3176
- parseFqnRef(astNode: FqnRef$2): ProjectId$1;
3177
- parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
3178
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
3179
- parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
3180
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
3181
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
3182
- parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
3183
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
3184
- parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
3185
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
3186
- parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
3187
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
3188
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
3189
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
3190
- parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
3191
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
3192
- wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
3165
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
3166
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
3167
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
3168
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
3169
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
3170
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
3171
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
3172
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
3173
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
3174
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
3175
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
3176
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
3177
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
3178
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
3179
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
3180
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
3181
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3193
3182
  isValid: IsValidFn;
3194
3183
  readonly services: LikeC4Services;
3195
3184
  readonly doc: ParsedLikeC4LangiumDocument;
3196
- get project(): Project;
3197
- resolveFqn(node: FqnReferenceable): ProjectId$1;
3185
+ readonly project: Project;
3186
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3187
+ tryParse<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
3188
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3189
+ resolveFqn(node: FqnReferenceable): ProjectId;
3198
3190
  getAstNodePath(node: AstNode): string;
3199
3191
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3200
3192
  [key: string]: string | string[];
3201
3193
  } | undefined;
3202
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3194
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3203
3195
  convertTags<E extends {
3204
3196
  tags?: Tags;
3205
3197
  }>(withTags?: E | undefined): any;
3206
3198
  parseTags<E extends {
3207
3199
  tags?: Tags;
3208
- }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
3209
- convertLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
3210
- parseLinks(source?: LinkProperty["$container"]): ProjectId$1[] | undefined;
3211
- parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
3200
+ }>(withTags?: E): ProjectId<ProjectId> | null;
3201
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3202
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3203
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3212
3204
  parseImageAlias(value: string): string | undefined;
3213
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
3205
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3214
3206
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3215
3207
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3216
3208
  parseBaseProps(props: {
@@ -3225,8 +3217,8 @@ declare const DocumentParserFromMixins: {
3225
3217
  technology?: string | undefined;
3226
3218
  }): {
3227
3219
  title?: string;
3228
- summary?: ProjectId$1;
3229
- description?: ProjectId$1;
3220
+ summary?: ProjectId;
3221
+ description?: ProjectId;
3230
3222
  technology?: string;
3231
3223
  };
3232
3224
  };
@@ -3236,7 +3228,7 @@ declare class LikeC4ModelParser {
3236
3228
  private services;
3237
3229
  protected cachedParsers: any;
3238
3230
  constructor(services: LikeC4Services);
3239
- documents(projectId: ProjectId$1): Stream<ParsedLikeC4LangiumDocument>;
3231
+ documents(projectId: ProjectId): Stream<ParsedLikeC4LangiumDocument>;
3240
3232
  parse(doc: LangiumDocument): ParsedLikeC4LangiumDocument;
3241
3233
  forDocument(doc: LangiumDocument): DocumentParser;
3242
3234
  private createParser;
@@ -3245,6 +3237,23 @@ declare class LikeC4ModelParser {
3245
3237
  declare class LikeC4ValueConverter extends DefaultValueConverter {
3246
3238
  protected runConverter(rule: any, input: string, cstNode: CstNode): ValueType;
3247
3239
  } //#endregion
3240
+ //#region src/model-change/ModelChanges.d.ts
3241
+ declare class LikeC4ModelChanges {
3242
+ private services;
3243
+ private locator;
3244
+ constructor(services: LikeC4Services);
3245
+ applyChange(changeView: ChangeView.Params): Promise<ChangeView.Res>;
3246
+ protected convertToTextEdit({
3247
+ lookup,
3248
+ change
3249
+ }: {
3250
+ lookup: ViewLocateResult;
3251
+ change: Exclude<ViewChange, ViewChange.SaveViewSnapshot | ViewChange.ResetManualLayout>;
3252
+ }): {
3253
+ modifiedRange: Range;
3254
+ edits: TextEdit[];
3255
+ };
3256
+ } //#endregion
3248
3257
  //#region src/LikeC4LanguageServices.d.ts
3249
3258
  interface LikeC4LanguageServices {
3250
3259
  readonly views: LikeC4Views;
@@ -3252,11 +3261,12 @@ interface LikeC4LanguageServices {
3252
3261
  readonly workspaceUri: URI;
3253
3262
  readonly projectsManager: ProjectsManager;
3254
3263
  readonly editor: LikeC4ModelChanges;
3264
+ readonly mcpServer: LikeC4MCPServer | null;
3255
3265
  /**
3256
3266
  * Returns all projects with relevant documents
3257
3267
  */
3258
3268
  projects(): NonEmptyArray<{
3259
- id: ProjectId$1;
3269
+ id: ProjectId;
3260
3270
  folder: URI;
3261
3271
  title: string;
3262
3272
  documents: ReadonlyArray<URI>;
@@ -3265,8 +3275,8 @@ interface LikeC4LanguageServices {
3265
3275
  /**
3266
3276
  * Returns project by ID, returns default project if no ID is specified
3267
3277
  */
3268
- project(projectId?: ProjectId$1): {
3269
- id: ProjectId$1;
3278
+ project(projectId?: ProjectId): {
3279
+ id: ProjectId;
3270
3280
  folder: URI;
3271
3281
  title: string;
3272
3282
  documents: ReadonlyArray<URI>;
@@ -3283,21 +3293,21 @@ interface LikeC4LanguageServices {
3283
3293
  *
3284
3294
  * If no {@link project} is specified, returns for default project
3285
3295
  */
3286
- computedModel(project?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
3296
+ computedModel(project?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
3287
3297
  /**
3288
3298
  * Returns {@link LikeC4Model} of the specified project, with layouted views {@link LayoutedView}
3289
3299
  * Ready for rendering. Applies manual layouts if available.
3290
3300
  *
3291
3301
  * If no {@link project} is specified, returns for default project
3292
3302
  */
3293
- layoutedModel(project?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownLayouted>>;
3303
+ layoutedModel(project?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownLayouted>>;
3294
3304
  /**
3295
3305
  * Returns diagrams (i.e. layouted views {@link LayoutedView}) for the specified project
3296
3306
  * Applies manual layouts if available.
3297
3307
  *
3298
3308
  * If no {@link project} is specified, returns diagrams for default project
3299
3309
  */
3300
- diagrams(project?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LayoutedView$1[]>;
3310
+ diagrams(project?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LayoutedView[]>;
3301
3311
  getErrors(): Array<{
3302
3312
  message: string;
3303
3313
  line: number;
@@ -3309,9 +3319,124 @@ interface LikeC4LanguageServices {
3309
3319
  */
3310
3320
  locate(params: Locate.Params): Locate.Res;
3311
3321
  dispose(): Promise<void>;
3312
- }
3313
- /**
3314
- * Public Language Services
3315
- */
3322
+ } //#endregion
3323
+ //#region src/lsp/CodeLensProvider.d.ts
3324
+ declare class LikeC4CodeLensProvider implements CodeLensProvider {
3325
+ private services;
3326
+ constructor(services: LikeC4Services);
3327
+ provideCodeLens(doc: LangiumDocument, _params: CodeLensParams, cancelToken?: CancellationToken$1): Promise<CodeLens[] | undefined>;
3328
+ } //#endregion
3329
+ //#region src/lsp/CompletionProvider.d.ts
3330
+ declare class LikeC4CompletionProvider extends DefaultCompletionProvider {
3331
+ protected services: LikeC4Services;
3332
+ constructor(services: LikeC4Services);
3333
+ readonly completionOptions: {
3334
+ triggerCharacters: string[];
3335
+ };
3336
+ protected completionFor(context: CompletionContext, next: NextFeature, acceptor: CompletionAcceptor): MaybePromise<void>;
3337
+ protected completionForKeyword(context: CompletionContext, keyword: Keyword, acceptor: CompletionAcceptor): MaybePromise<void>;
3338
+ protected completionForImportedProject(context: CompletionContext, acceptor: CompletionAcceptor): void;
3339
+ } //#endregion
3340
+ //#region src/lsp/DocumentHighlightProvider.d.ts
3341
+ declare class LikeC4DocumentHighlightProvider extends DefaultDocumentHighlightProvider {
3342
+ /**
3343
+ * Override this method to determine the highlight kind of the given reference.
3344
+ */
3345
+ protected createDocumentHighlight(reference: ReferenceDescription): DocumentHighlight;
3346
+ } //#endregion
3347
+ //#region src/lsp/DocumentLinkProvider.d.ts
3348
+ declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
3349
+ private services;
3350
+ constructor(services: LikeC4Services);
3351
+ getDocumentLinks(doc: LangiumDocument, _params: DocumentLinkParams, _cancelToken?: CancellationToken$1): Promise<DocumentLink[]>;
3352
+ resolveLink(doc: LangiumDocument, link: string): string;
3353
+ relativeLink(doc: LangiumDocument, link: string): string | null;
3354
+ } //#endregion
3355
+ //#region src/lsp/DocumentSymbolProvider.d.ts
3356
+ declare class LikeC4DocumentSymbolProvider implements DocumentSymbolProvider {
3357
+ private services;
3358
+ protected readonly nodeKindProvider: NodeKindProvider;
3359
+ protected readonly nameProvider: LikeC4NameProvider;
3360
+ protected readonly parser: LikeC4ModelParser;
3361
+ protected readonly locator: LikeC4ModelLocator;
3362
+ constructor(services: LikeC4Services);
3363
+ getSymbols(doc: LangiumDocument, _params: DocumentSymbolParams, cancelToken?: CancellationToken$1): Promise<DocumentSymbol[]>;
3364
+ protected getLikec4LibSymbol(astLib: LikeC4Lib): DocumentSymbol[];
3365
+ protected getSpecSymbol(astSpec: SpecificationRule): DocumentSymbol[];
3366
+ protected getModelSymbol(astModel: Model): DocumentSymbol[];
3367
+ protected getDeploymentModelSymbol(astModel: ModelDeployments): DocumentSymbol[];
3368
+ protected getElementsSymbol(el: Element | Relation | ExtendElement): DocumentSymbol[];
3369
+ protected getExtendElementSymbol(astElement: ExtendElement): DocumentSymbol[];
3370
+ protected getElementSymbol(astElement: Element): DocumentSymbol[];
3371
+ protected getModelViewsSymbol(astViews: ModelViews): DocumentSymbol[];
3372
+ protected getKindSymbol(astKind: SpecificationElementKind | SpecificationRelationshipKind): DocumentSymbol | null;
3373
+ protected getTagSymbol(astTag: SpecificationTag): DocumentSymbol | null;
3374
+ protected getLibIconSymbol(astTag: LibIcon): DocumentSymbol | null;
3375
+ protected getViewSymbol(astView: LikeC4View): DocumentSymbol[];
3376
+ protected getDeploymentElementSymbol(el: DeploymentElement | DeploymentRelation | ExtendDeployment): DocumentSymbol[];
3377
+ protected getDeploymentNodeSymbol(astElement: DeploymentNode): DocumentSymbol[];
3378
+ protected getDeployedInstanceSymbol(astElement: DeployedInstance): DocumentSymbol[];
3379
+ protected symbolKind(node: AstNode): SymbolKind;
3380
+ } //#endregion
3381
+ //#region src/lsp/HoverProvider.d.ts
3382
+ declare class LikeC4HoverProvider extends AstNodeHoverProvider {
3383
+ protected services: LikeC4Services;
3384
+ private parser;
3385
+ private locator;
3386
+ constructor(services: LikeC4Services);
3387
+ protected getAstNodeHoverContent(node: AstNode): MaybePromise<Hover | undefined>;
3388
+ protected getElementHover(node: Element): MaybePromise<Hover | undefined>;
3389
+ protected getElementModelHover(model: ElementModel, projectId: ProjectId): string | undefined;
3390
+ protected getDeploymentNodeHover(node: DeploymentNode): MaybePromise<Hover | undefined>;
3391
+ protected getDeployedInstanceHover(node: DeployedInstance): MaybePromise<Hover | undefined>;
3392
+ } //#endregion
3393
+ //#region src/lsp/CodeActionProvider.d.ts
3394
+ type CommandOrCodeAction = Command | CodeAction;
3395
+ declare class LikeC4CodeActionProvider implements CodeActionProvider {
3396
+ /**
3397
+ * Handle a code action request.
3398
+ *
3399
+ * @throws `OperationCancelled` if cancellation is detected during execution
3400
+ * @throws `ResponseError` if an error is detected that should be sent as response to the client
3401
+ */
3402
+ getCodeActions(document: LangiumDocument, params: CodeActionParams): CommandOrCodeAction[] | undefined;
3403
+ } //#endregion
3404
+ //#region src/lsp/SemanticTokenProvider.d.ts
3405
+ declare class LikeC4SemanticTokenProvider extends AbstractSemanticTokenProvider {
3406
+ protected services: LikeC4Services;
3407
+ private rules;
3408
+ constructor(services: LikeC4Services);
3409
+ protected initRules(): void;
3410
+ semanticHighlight(document: LangiumDocument, params: SemanticTokensParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens>;
3411
+ semanticHighlightRange(document: LangiumDocument, params: SemanticTokensRangeParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens>;
3412
+ semanticHighlightDelta(document: LangiumDocument, params: SemanticTokensDeltaParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens | SemanticTokensDelta>;
3413
+ protected ensureState(document: LangiumDocument, cancelToken: CancellationToken$1): Promise<void>;
3414
+ protected highlightElement(node: AstNode, acceptor: SemanticTokenAcceptor): void | undefined | 'prune';
3415
+ private highlightNameAndKind;
3416
+ private highlightView;
3417
+ private mark;
3418
+ } //#endregion
3419
+ //#region src/Rpc.d.ts
3420
+ declare class Rpc extends ADisposable {
3421
+ private services;
3422
+ constructor(services: LikeC4Services);
3423
+ init: () => void;
3424
+ openView(params: DidRequestOpenViewNotification.Params): Promise<void>;
3425
+ } //#endregion
3426
+ //#region src/shared/NodeKindProvider.d.ts
3427
+ declare class NodeKindProvider$1 implements NodeKindProvider {
3428
+ private services;
3429
+ constructor(services: LangiumSharedServices);
3430
+ /**
3431
+ * Returns a `SymbolKind` as used by `WorkspaceSymbolProvider` or `DocumentSymbolProvider`.
3432
+ */
3433
+ getSymbolKind(node: AstNode | AstNodeDescription): SymbolKind;
3434
+ /**
3435
+ * Returns a `CompletionItemKind` as used by the `CompletionProvider`.
3436
+ */
3437
+ getCompletionItemKind(node: AstNode | AstNodeDescription): CompletionItemKind;
3438
+ } //#endregion
3439
+ //#region src/shared/WorkspaceSymbolProvider.d.ts
3440
+ declare class WorkspaceSymbolProvider extends DefaultWorkspaceSymbolProvider {} //#endregion
3316
3441
  //#endregion
3317
- export { ProjectsManager as i, LikeC4Services as n, LikeC4Views as r, LikeC4LanguageServices as t };
3442
+ export { LikeC4Services as a, ProjectsManager as i, LikeC4ModelBuilder as n, LikeC4SharedServices as o, LikeC4Views as r, LikeC4LanguageServices as t };