likec4 1.48.0 → 1.50.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 (118) hide show
  1. package/README.md +11 -1
  2. package/__app__/src/likec4.js +5941 -4496
  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 +1228 -16
  6. package/__app__/src/style.css +1 -1
  7. package/__app__/src/vendors.js +4649 -1897
  8. package/__app__/src/webcomponent.js +1 -1
  9. package/config/schema.json +169 -141
  10. package/dist/THIRD-PARTY-LICENSES.md +1769 -0
  11. package/dist/_chunks/LikeC4.mjs +1154 -202
  12. package/dist/_chunks/binary.mjs +72 -0
  13. package/dist/_chunks/index.d.mts +234 -140
  14. package/dist/_chunks/index2.d.mts +2043 -1828
  15. package/dist/_chunks/libs/@chevrotain/cst-dts-gen.mjs +30 -0
  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 +114 -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.d.mts +61 -1
  27. package/dist/_chunks/libs/@nanostores/react.mjs +1 -30
  28. package/dist/_chunks/libs/@smithy/is-array-buffer.mjs +1 -10
  29. package/dist/_chunks/libs/@smithy/util-base64.mjs +1 -100
  30. package/dist/_chunks/libs/ajv.mjs +1 -777
  31. package/dist/_chunks/libs/atomically.mjs +1 -362
  32. package/dist/_chunks/libs/birpc.mjs +1 -201
  33. package/dist/_chunks/libs/chevrotain-allstar.mjs +2 -850
  34. package/dist/_chunks/libs/chevrotain.mjs +55 -6229
  35. package/dist/_chunks/libs/conf.mjs +1 -2258
  36. package/dist/_chunks/libs/defu.mjs +1 -42
  37. package/dist/_chunks/libs/esm-env.mjs +1 -5
  38. package/dist/_chunks/libs/eventemitter3.mjs +1 -243
  39. package/dist/_chunks/libs/fast-equals.mjs +1 -446
  40. package/dist/_chunks/libs/find-up-simple.mjs +1 -24
  41. package/dist/_chunks/libs/get-port.mjs +1 -107
  42. package/dist/_chunks/libs/is-docker.mjs +1 -26
  43. package/dist/_chunks/libs/is-error-instance.mjs +1 -26
  44. package/dist/_chunks/libs/is-inside-container.mjs +1 -20
  45. package/dist/_chunks/libs/is-plain-obj.mjs +1 -9
  46. package/dist/_chunks/libs/isexe.mjs +1 -127
  47. package/dist/_chunks/libs/json5.mjs +14 -959
  48. package/dist/_chunks/libs/khroma.mjs +1 -605
  49. package/dist/_chunks/libs/ky.mjs +2 -807
  50. package/dist/_chunks/libs/langium.d.mts +2913 -2876
  51. package/dist/_chunks/libs/langium.mjs +33 -20351
  52. package/dist/_chunks/libs/merge-error-cause.mjs +2 -746
  53. package/dist/_chunks/libs/p-limit.mjs +1 -120
  54. package/dist/_chunks/libs/p-queue.mjs +1 -449
  55. package/dist/_chunks/libs/package-manager-detector.mjs +1 -559
  56. package/dist/_chunks/libs/package-up.mjs +1 -10
  57. package/dist/_chunks/libs/pako.mjs +1 -0
  58. package/dist/_chunks/libs/parse-ms.mjs +1 -36
  59. package/dist/_chunks/libs/pathe.mjs +1 -0
  60. package/dist/_chunks/libs/picomatch.mjs +1 -1673
  61. package/dist/_chunks/libs/pretty-ms.mjs +1 -80
  62. package/dist/_chunks/libs/remeda.mjs +2 -690
  63. package/dist/_chunks/libs/safe-stringify.mjs +1 -21
  64. package/dist/_chunks/libs/strip-indent.mjs +1 -15
  65. package/dist/_chunks/libs/tinyrainbow.mjs +1 -88
  66. package/dist/_chunks/libs/ts-graphviz.mjs +4 -725
  67. package/dist/_chunks/libs/ufo.mjs +1 -240
  68. package/dist/_chunks/libs/which.mjs +1 -84
  69. package/dist/_chunks/libs/word-wrap.mjs +12 -43
  70. package/dist/_chunks/rolldown-runtime.mjs +1 -48
  71. package/dist/_chunks/sequence.mjs +1 -0
  72. package/dist/_chunks/src.mjs +15 -0
  73. package/dist/_chunks/src2.mjs +499 -0
  74. package/dist/cli/index.mjs +77 -1952
  75. package/dist/config/index.d.mts +2 -2
  76. package/dist/config/index.mjs +1 -6
  77. package/dist/index.d.mts +150 -7
  78. package/dist/index.mjs +1 -21
  79. package/dist/model/builder.mjs +1 -3
  80. package/dist/model/index.d.mts +57 -3
  81. package/dist/model/index.mjs +1 -5
  82. package/dist/vite-plugin/index.d.mts +7 -3
  83. package/dist/vite-plugin/index.mjs +1 -22
  84. package/dist/vite-plugin/internal.d.mts +6 -7
  85. package/dist/vite-plugin/internal.mjs +1 -68
  86. package/package.json +64 -45
  87. package/react/{index.d.ts → index.d.mts} +114 -72
  88. package/react/{index.js → index.mjs} +21320 -22041
  89. package/react/package.json +2 -5
  90. package/vite-plugin-modules.d.ts +10 -5
  91. package/dist/_chunks/LikeC4.d.mts +0 -121
  92. package/dist/_chunks/config-app.prod.d.mts +0 -18
  93. package/dist/_chunks/config-app.prod.mjs +0 -188
  94. package/dist/_chunks/config-webcomponent.prod.mjs +0 -71
  95. package/dist/_chunks/define-config.mjs +0 -409
  96. package/dist/_chunks/index3.d.mts +0 -60
  97. package/dist/_chunks/libs/@chevrotain/gast.mjs +0 -3969
  98. package/dist/_chunks/libs/hono.mjs +0 -1829
  99. package/dist/_chunks/libs/nanoid.mjs +0 -29
  100. package/dist/_chunks/libs/nanostores.d.mts +0 -63
  101. package/dist/_chunks/libs/nanostores.mjs +0 -198
  102. package/dist/_chunks/model.mjs +0 -12
  103. package/dist/_chunks/module.d.mts +0 -71
  104. package/dist/_chunks/module.mjs +0 -18657
  105. package/dist/_chunks/plugin.mjs +0 -996
  106. package/dist/_chunks/sequence-view.mjs +0 -575
  107. package/dist/_chunks/vite-build.mjs +0 -69
  108. package/dist/_chunks/vite-dev.mjs +0 -79
  109. package/dist/_chunks/vite-preview.mjs +0 -27
  110. package/dist/language/module.d.mts +0 -5
  111. package/dist/language/module.mjs +0 -20
  112. package/dist/vite/vite-build.d.mts +0 -26
  113. package/dist/vite/vite-build.mjs +0 -27
  114. package/dist/vite/vite-dev.d.mts +0 -34
  115. package/dist/vite/vite-dev.mjs +0 -29
  116. package/dist/vite/vite-preview.d.mts +0 -20
  117. package/dist/vite/vite-preview.mjs +0 -26
  118. /package/dist/_chunks/{index4.d.mts → libs/@chevrotain/types.d.mts} +0 -0
@@ -1,266 +1,880 @@
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/_chunks/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;
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[];
174
168
  }
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;
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;
184
290
  }
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;
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/_chunks/module.d.mts
355
+ //#region src/documentation/documentation-provider.d.ts
356
+ /**
357
+ * Provides documentation for LikeC4 AST nodes, extending JSDoc parsing
358
+ * with specialized formatting for deployment nodes, deployed instances, and elements.
359
+ */
360
+ declare class LikeC4DocumentationProvider extends JSDocDocumentationProvider {
361
+ private parser;
362
+ private locator;
363
+ /**
364
+ * Creates a new documentation provider.
365
+ * @param services - The LikeC4 language services.
366
+ */
367
+ constructor(services: LikeC4Services);
368
+ /**
369
+ * Returns documentation for the given AST node (deployment nodes, deployed instances, elements, or JSDoc fallback).
370
+ * @param node - The AST node to document.
371
+ * @returns Formatted documentation string, or undefined if none.
372
+ */
373
+ getDocumentation(node: AstNode): string | undefined;
374
+ } //#endregion
375
+ //#region src/workspace/ProjectsManager.d.ts
376
+ type DocOrUri = LangiumDocument | string | URI;
377
+ /**
378
+ * A tagged string that represents a project folder URI
379
+ * Always has trailing slash.
380
+ */
381
+ type ProjectFolder = Tagged<string, 'ProjectFolder'>;
382
+ declare function ProjectFolder(folder: URI | string): ProjectFolder;
383
+ interface Project {
384
+ id: ProjectId$1;
385
+ folderUri: URI;
386
+ config: LikeC4ProjectConfig;
192
387
  }
193
- declare const DeploymentNodeBody = "DeploymentNodeBody";
194
- interface DeploymentNodeKind extends AstNode {
195
- readonly $container: SpecificationDeploymentNodeKind;
196
- readonly $type: 'DeploymentNodeKind';
197
- name: Id;
198
- }
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;
388
+ interface ProjectData extends Project {
389
+ id: ProjectId$1;
390
+ folder: ProjectFolder;
391
+ config: LikeC4ProjectConfig;
392
+ configUri: URI;
393
+ folderUri: URI;
394
+ exclude?: {
395
+ (test: string): boolean;
396
+ };
397
+ /**
398
+ * Resolved include paths with both URI and folder string representations.
399
+ * These are additional directories that are part of this project.
400
+ */
401
+ includePaths?: NonEmptyArray<{
402
+ uri: URI;
403
+ folder: ProjectFolder;
404
+ }>;
405
+ /**
406
+ * Normalized include configuration (paths, maxDepth, fileThreshold).
407
+ */
408
+ includeConfig: IncludeConfig;
212
409
  }
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;
410
+ type RegisterProjectOptions = {
411
+ config: LikeC4ProjectConfig | LikeC4ProjectConfigInput;
412
+ } & ({
413
+ configUri: URI | string;
414
+ } | {
415
+ folderUri: URI | string;
416
+ });
417
+ declare class ProjectsManager {
418
+ #private;
419
+ protected services: LikeC4SharedServices;
420
+ /**
421
+ * The global project ID used for all documents
422
+ * that are not part of a specific project.
423
+ */
424
+ static readonly DefaultProjectId: ProjectId$1;
425
+ constructor(services: LikeC4SharedServices);
426
+ /**
427
+ * Returns:
428
+ * - configured default project ID if set
429
+ * - the default project ID if there are no projects.
430
+ * - the ID of the only project
431
+ * - undefined if there are multiple projects.
432
+ */
433
+ get defaultProjectId(): ProjectId$1 | undefined;
434
+ set defaultProjectId(id: string | ProjectId$1 | undefined);
435
+ get default(): ProjectData;
436
+ get all(): NonEmptyReadonlyArray<ProjectId$1>;
437
+ getProject(arg: ProjectId$1 | LangiumDocument): ProjectData;
438
+ /**
439
+ * Returns all projects that overlap with the specified folder (is parent or child)
440
+ */
441
+ findOverlaped(folder: URI | string): ProjectData[];
442
+ /**
443
+ * Validates and ensures the project ID.
444
+ * If no project ID is specified, returns default project ID
445
+ * If there are multiple projects and default project is not set, throws an error
446
+ */
447
+ ensureProjectId(projectId?: ProjectId$1 | undefined): ProjectId$1;
448
+ /**
449
+ * Validates and ensures the project.
450
+ */
451
+ ensureProject(projectId?: ProjectId$1 | undefined): ProjectData;
452
+ hasMultipleProjects(): boolean;
453
+ /**
454
+ * Checks if the specified document should be excluded from processing.
455
+ */
456
+ isExcluded(document: DocOrUri): boolean;
457
+ isExcluded(projectId: ProjectId$1, document: DocOrUri): boolean;
458
+ /**
459
+ * Checks if the specified document is included by the project:
460
+ * - if the document belongs to the project and is not excluded
461
+ * - if the document is included by the project
462
+ */
463
+ isIncluded(projectId: ProjectId$1, document: LangiumDocument | URI | string): boolean;
464
+ /**
465
+ * Registers likec4 project by config file.
466
+ */
467
+ registerConfigFile(configUri: URI, cancelToken?: CancellationToken$1): Promise<ProjectData>;
468
+ /**
469
+ * Registers (or reloads) likec4 project by config file or config object.
470
+ * If there is some project registered at same folder, it will be reloaded.
471
+ */
472
+ registerProject(opts: RegisterProjectOptions, cancelToken?: CancellationToken$1): Promise<ProjectData>;
473
+ /**
474
+ * Determines which project the given document belongs to.
475
+ * If the document does not belong to any project, returns the default project ID.
476
+ */
477
+ ownerProjectId(document: LangiumDocument | URI | string): ProjectId$1;
478
+ reloadProjects(cancelToken?: CancellationToken$1): Promise<void>;
479
+ protected _reloadProjects(cancelToken?: CancellationToken$1): Promise<void>;
480
+ protected uniqueProjectId(name: string): ProjectId$1;
481
+ protected resetCaches(): void;
482
+ rebuildProject(projectId: ProjectId$1, cancelToken?: CancellationToken$1): Promise<void>;
483
+ /**
484
+ * Returns all include paths from all projects.
485
+ * Used by WorkspaceManager to scan additional directories for C4 files.
486
+ */
487
+ getAllIncludePaths(): Array<{
488
+ projectId: ProjectId$1;
489
+ includePath: URI;
490
+ includeConfig: IncludeConfig;
491
+ }>;
492
+ /**
493
+ * Register a listener to be called when the projects configuration has changed.
494
+ * @returns A disposable that can be used to unregister the callback.
495
+ */
496
+ onProjectsUpdate(callback: () => void): Disposable$1;
497
+ private getWorkspaceFolder;
498
+ private notifyListeners;
499
+ private updateIncludesExcludes;
500
+ } //#endregion
501
+ //#region src/filesystem/types.d.ts
502
+ interface FileNode extends FileSystemNode {
503
+ readonly isFile: true;
504
+ readonly isDirectory: false;
219
505
  }
220
- declare const DeploymentRelationBody = "DeploymentRelationBody";
221
- interface DeploymentView extends AstNode {
222
- readonly $container: ModelViews;
223
- readonly $type: 'DeploymentView';
224
- body?: DeploymentViewBody;
225
- name: Id;
506
+ interface FileSystemProvider$1 extends FileSystemProvider {
507
+ /**
508
+ * Scans the project files for the given URI.
509
+ * @returns The list of file system entries that are contained within the specified directory.
510
+ */
511
+ scanProjectFiles(folderUri: URI): Promise<FileNode[]>;
512
+ /**
513
+ * Loads the project config from the given file.
514
+ * @returns The project config.
515
+ * @throws Error if the file does not exist or is not a valid project config.
516
+ */
517
+ loadProjectConfig(filepath: URI): Promise<LikeC4ProjectConfig>;
518
+ /**
519
+ * Reads the directory information for the given URI.
520
+ * @param options.recursive If true, recursively reads the directory,
521
+ * @param options.maxDepth Maximum depth to traverse when recursive is true (default: Infinity)
522
+ */
523
+ readDirectory(uri: URI, options?: {
524
+ recursive?: boolean;
525
+ maxDepth?: number;
526
+ }): Promise<FileNode[]>;
527
+ /**
528
+ * Finds all files in the given directory, matching the given filter.
529
+ */
530
+ scanDirectory(directory: URI, filter: (filepath: string) => boolean): Promise<FileNode[]>;
531
+ /**
532
+ * Writes the content to the file system.
533
+ * Used by manual layouts.
534
+ */
535
+ writeFile(uri: URI, content: string): Promise<void>;
536
+ /**
537
+ * Deletes the file from the file system.
538
+ * Used by manual layouts.
539
+ * @return true if the file was deleted, false if the file did not exist.
540
+ */
541
+ deleteFile(uri: URI): Promise<boolean>;
226
542
  }
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;
543
+ interface FileSystemWatcher extends AsyncDisposable {
544
+ /**
545
+ * Watches a folder for changes and triggers a reload of the documents and projects.
546
+ */
547
+ watch(folder: string): void;
234
548
  }
235
- declare const DeploymentViewBody = "DeploymentViewBody";
236
- interface DeploymentViewRulePredicate extends AstNode {
237
- readonly $container: DeploymentViewBody;
238
- readonly $type: 'DeploymentViewRulePredicate';
239
- expr: Expressions;
240
- isInclude: boolean;
549
+ type ManualLayoutsSnapshot = {
550
+ hash: string;
551
+ views: Record<ViewId$1, LayoutedView$1>;
552
+ };
553
+ interface LikeC4ManualLayouts {
554
+ read(project: Project): Promise<ManualLayoutsSnapshot | null>;
555
+ write(project: Project, layouted: LayoutedView$1): Promise<Location>;
556
+ remove(project: Project, view: ViewId$1): Promise<Location | null>;
557
+ clearCaches(): void;
558
+ } //#endregion
559
+ //#region src/filesystem/noop.d.ts
560
+ //#endregion
561
+ //#region src/formatting/LikeC4Formatter.d.ts
562
+ type QuoteStyle = 'single' | 'double' | 'ignore' | 'auto';
563
+ interface LikeC4FormatterOptions {
564
+ quoteStyle: QuoteStyle;
241
565
  }
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;
566
+ type ExtendedFormattingCommandType = 'normalizeQuotes';
567
+ interface ExtendedFormattingCommand {
568
+ type: ExtendedFormattingCommandType;
569
+ region: FormattingRegion;
248
570
  }
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;
571
+ declare class LikeC4Formatter extends AbstractFormatter {
572
+ protected options: LikeC4FormatterOptions;
573
+ extendedFormattingCommands: ExtendedFormattingCommand[];
574
+ constructor(services: LikeC4Services);
575
+ protected doDocumentFormat(document: LangiumDocument, options: FormattingOptions, range?: Range): TextEdit[];
576
+ protected format(node: AstNode): void;
577
+ protected formatTags(node: AstNode): void;
578
+ protected formatDeploymentRelation(node: AstNode): void;
579
+ protected formatExtendDeployment(node: AstNode): void;
580
+ protected formatRelation(node: AstNode): void;
581
+ protected removeIndentFromTopLevelStatements(node: AstNode): void;
582
+ protected indentContentInBraces(node: AstNode): void;
583
+ protected appendKeywordsWithSpace(node: AstNode): void;
584
+ protected formatView(node: AstNode): void;
585
+ protected formatLeafProperty(node: AstNode): void;
586
+ protected formatLinkProperty(node: AstNode): void;
587
+ protected formatNavigateToProperty(node: AstNode): void;
588
+ protected formatAutolayoutProperty(node: AstNode): void;
589
+ protected formatMetadataProperty(node: AstNode): void;
590
+ protected formatElementDeclaration(node: AstNode): void;
591
+ protected formatExtendElement(node: AstNode): void;
592
+ protected formatGlobals(node: AstNode): void;
593
+ protected formatImports(node: AstNode): void;
594
+ protected formatSpecificationRule(node: AstNode): void;
595
+ protected formatWithPredicate(node: AstNode): void;
596
+ protected formatDeploymentNodeDeclaration(node: AstNode): void;
597
+ protected formatDeployedInstance(node: AstNode): void;
598
+ protected formatViewRuleGlobalStyle(node: AstNode): void;
599
+ protected formatViewRuleGlobalPredicate(node: AstNode): void;
600
+ protected formatViewRuleGroup(node: AstNode): void;
601
+ protected formatViewRuleStyle(node: AstNode): void;
602
+ protected formatWhereExpression(node: AstNode): void;
603
+ protected formatWhereRelationExpression(node: AstNode): void;
604
+ protected formatWhereElementExpression(node: AstNode): void;
605
+ protected formatIncludeExcludeExpressions(node: AstNode): void;
606
+ protected formatRelationExpression(node: AstNode): void;
607
+ private findPredicateExpressionRoot;
608
+ private on;
609
+ private doExtendedFormatting;
610
+ protected normalizeQuotes(node: AstNode): void;
611
+ private quotesNormalizerFactory;
612
+ private escapeQuotesInternalQuotes;
613
+ private getAutoQuoteStyle;
614
+ private onConfigurationUpdate;
615
+ } //#endregion
616
+ //#region src/mcp/types.d.ts
617
+ interface LikeC4MCPServer {
618
+ readonly mcp: McpServer;
619
+ readonly isStarted: boolean;
620
+ readonly port: number;
621
+ start(port?: number): Promise<void>;
622
+ stop(): Promise<void>;
255
623
  }
256
- declare const DirectedRelationExpr = "DirectedRelationExpr";
257
- interface DynamicView extends AstNode {
258
- readonly $container: ModelViews;
259
- readonly $type: 'DynamicView';
260
- body?: DynamicViewBody;
261
- name: Id;
624
+ interface LikeC4MCPServerFactory {
625
+ create(options?: ServerOptions): McpServer;
262
626
  }
263
- declare const DynamicView = "DynamicView";
627
+ //#endregion
628
+ //#region src/generated/ast.d.ts
629
+ type AnyProperty = DynamicViewProperty | ElementProperty | RelationProperty | StringProperty | ViewProperty;
630
+ declare const AnyProperty = "AnyProperty";
631
+ type ArrowType = 'crow' | 'diamond' | 'dot' | 'none' | 'normal' | 'odiamond' | 'odot' | 'onormal' | 'open' | 'vee';
632
+ type BorderStyleValue = 'none' | LineOptions;
633
+ type ColorLiteral$1 = HexColor | RGBAColor;
634
+ declare const ColorLiteral$1 = "ColorLiteral";
635
+ type CustomColorId = 'element' | 'model' | ArrowType | ElementShape | LineOptions | Participant | string;
636
+ type DeploymentElement = DeployedInstance | DeploymentNode;
637
+ declare const DeploymentElement = "DeploymentElement";
638
+ type DeploymentNodeOrElementKind = DeploymentNodeKind | ElementKind;
639
+ declare const DeploymentNodeOrElementKind = "DeploymentNodeOrElementKind";
640
+ type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout;
641
+ declare const DeploymentViewRule = "DeploymentViewRule";
642
+ type DynamicViewDisplayVariantValue = 'diagram' | 'sequence';
643
+ type DynamicViewProperty = DynamicViewDisplayVariantProperty | ViewProperty;
644
+ declare const DynamicViewProperty = "DynamicViewProperty";
645
+ type DynamicViewRule = DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleAutoLayout | ViewRuleStyleOrGlobalRef;
646
+ declare const DynamicViewRule = "DynamicViewRule";
647
+ type DynamicViewStep = DynamicStepChain | DynamicStepSingle;
648
+ declare const DynamicViewStep = "DynamicViewStep";
649
+ type ElementProperty = ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataProperty;
650
+ declare const ElementProperty = "ElementProperty";
651
+ type ElementShape = 'browser' | 'bucket' | 'component' | 'cylinder' | 'document' | 'mobile' | 'person' | 'queue' | 'rectangle' | 'storage';
652
+ type ExpressionV2 = FqnExprOrWith | RelationExprOrWith;
653
+ declare const ExpressionV2 = "ExpressionV2";
654
+ type ExtendElementProperty = LinkProperty | MetadataProperty;
655
+ declare const ExtendElementProperty = "ExtendElementProperty";
656
+ type ExtendRelationProperty = LinkProperty | MetadataProperty;
657
+ declare const ExtendRelationProperty = "ExtendRelationProperty";
658
+ type FqnExpr$2 = ElementKindExpression | ElementTagExpression | FqnRefExpr | WildcardExpression;
659
+ declare const FqnExpr$2 = "FqnExpr";
660
+ type FqnExprOrWhere = FqnExpr$2 | FqnExprWhere;
661
+ declare const FqnExprOrWhere = "FqnExprOrWhere";
662
+ type FqnExprOrWith = FqnExprOrWhere | FqnExprWith;
663
+ declare const FqnExprOrWith = "FqnExprOrWith";
664
+ type FqnReferenceable = Element | ExtendDeployment | ExtendElement | Referenceable;
665
+ declare const FqnReferenceable = "FqnReferenceable";
666
+ type IconId = string;
667
+ type IconPositionValue = 'bottom' | 'left' | 'right' | 'top';
668
+ type Id = 'deployment' | 'element' | 'group' | 'instance' | 'model' | 'node' | ArrowType | DynamicViewDisplayVariantValue | ElementShape | IconPositionValue | LineOptions | Participant | RankValue | SizeValue | ThemeColor | string;
669
+ type LikeC4View = DeploymentView | DynamicView | ElementView;
670
+ declare const LikeC4View = "LikeC4View";
671
+ type LineOptions = 'dashed' | 'dotted' | 'solid';
672
+ type MetadataProperty = MetadataBody;
673
+ declare const MetadataProperty = "MetadataProperty";
674
+ type MetadataValue = MarkdownOrString | MetadataArray;
675
+ declare const MetadataValue = "MetadataValue";
676
+ type ModelReferenceable = Element | Imported;
677
+ declare const ModelReferenceable = "ModelReferenceable";
678
+ type Participant = 'source' | 'target';
679
+ type RankValue = 'max' | 'min' | 'same' | 'sink' | 'source';
680
+ type Referenceable = DeployedInstance | DeploymentNode | Element | Imported;
681
+ declare const Referenceable = "Referenceable";
682
+ type RelationExpr$1 = DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr;
683
+ declare const RelationExpr$1 = "RelationExpr";
684
+ type RelationExprOrWhere = RelationExpr$1 | RelationExprWhere;
685
+ declare const RelationExprOrWhere = "RelationExprOrWhere";
686
+ type RelationExprOrWith = RelationExprOrWhere | RelationExprWith;
687
+ declare const RelationExprOrWith = "RelationExprOrWith";
688
+ type RelationProperty = LinkProperty | MetadataProperty | RelationNavigateToProperty | RelationStringProperty | RelationStyleProperty;
689
+ declare const RelationProperty = "RelationProperty";
690
+ type RelationshipStyleProperty = ArrowProperty | ColorProperty | LineProperty;
691
+ declare const RelationshipStyleProperty = "RelationshipStyleProperty";
692
+ type SizeProperty = IconSizeProperty | PaddingSizeProperty | ShapeSizeProperty | TextSizeProperty;
693
+ declare const SizeProperty = "SizeProperty";
694
+ type SizeValue = 'large' | 'lg' | 'md' | 'medium' | 'sm' | 'small' | 'xl' | 'xlarge' | 'xs' | 'xsmall';
695
+ type StringProperty = ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty;
696
+ declare const StringProperty = "StringProperty";
697
+ type StyleProperty = BorderProperty | ColorProperty | IconColorProperty | IconPositionProperty | IconProperty | IconSizeProperty | MultipleProperty | OpacityProperty | PaddingSizeProperty | ShapeProperty | ShapeSizeProperty | TextSizeProperty;
698
+ declare const StyleProperty = "StyleProperty";
699
+ type ThemeColor = 'amber' | 'blue' | 'gray' | 'green' | 'indigo' | 'muted' | 'primary' | 'red' | 'secondary' | 'sky' | 'slate';
700
+ type Uri = string;
701
+ type ViewLayoutDirection = 'BottomTop' | 'LeftRight' | 'RightLeft' | 'TopBottom';
702
+ type ViewProperty = LinkProperty | ViewStringProperty;
703
+ declare const ViewProperty = "ViewProperty";
704
+ type ViewRule = ViewRuleAutoLayout | ViewRuleGlobalPredicateRef | ViewRuleGroup | ViewRulePredicate | ViewRuleRank | ViewRuleStyleOrGlobalRef;
705
+ declare const ViewRule = "ViewRule";
706
+ type ViewRuleStyleOrGlobalRef = ViewRuleGlobalStyle | ViewRuleStyle;
707
+ declare const ViewRuleStyleOrGlobalRef = "ViewRuleStyleOrGlobalRef";
708
+ type WhereElement = WhereElementKind | WhereElementTag;
709
+ declare const WhereElement = "WhereElement";
710
+ type WhereElementExpression = WhereBinaryExpression | WhereElement | WhereElementNegation;
711
+ declare const WhereElementExpression = "WhereElementExpression";
712
+ type WhereExpression = WhereElementExpression | WhereRelationExpression;
713
+ declare const WhereExpression = "WhereExpression";
714
+ type WhereKindEqual = WhereElementKind | WhereRelationKind | WhereRelationParticipantKind;
715
+ declare const WhereKindEqual = "WhereKindEqual";
716
+ type WhereRelation = WhereRelationKind | WhereRelationParticipantKind | WhereRelationParticipantTag | WhereRelationTag;
717
+ declare const WhereRelation = "WhereRelation";
718
+ type WhereRelationExpression = WhereBinaryExpression | WhereRelation | WhereRelationNegation;
719
+ declare const WhereRelationExpression = "WhereRelationExpression";
720
+ type WhereTagEqual = WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
721
+ declare const WhereTagEqual = "WhereTagEqual";
722
+ interface AbstractDynamicStep extends AstNode {
723
+ readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
724
+ readonly $type: 'AbstractDynamicStep' | 'DynamicStepChain' | 'DynamicStepSingle';
725
+ custom?: CustomRelationProperties;
726
+ dotKind?: RelationKindDotRef;
727
+ kind?: Reference<RelationshipKind>;
728
+ target: ElementRef;
729
+ title?: string;
730
+ }
731
+ declare const AbstractDynamicStep = "AbstractDynamicStep";
732
+ interface ArrowProperty extends AstNode {
733
+ readonly $container: CustomRelationProperties | RelationStyleProperty | SpecificationRelationshipKind;
734
+ readonly $type: 'ArrowProperty';
735
+ key: 'head' | 'tail';
736
+ value: ArrowType;
737
+ }
738
+ declare const ArrowProperty = "ArrowProperty";
739
+ interface BorderProperty extends AstNode {
740
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleGroup | ViewRuleStyle;
741
+ readonly $type: 'BorderProperty';
742
+ key: 'border';
743
+ value: BorderStyleValue;
744
+ }
745
+ declare const BorderProperty = "BorderProperty";
746
+ interface ColorProperty extends AstNode {
747
+ readonly $container: CustomElementProperties | CustomRelationProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | RelationStyleProperty | SpecificationRelationshipKind | ViewRuleGroup | ViewRuleStyle;
748
+ readonly $type: 'ColorProperty';
749
+ customColor?: Reference<CustomColor>;
750
+ key: 'color';
751
+ themeColor?: ThemeColor;
752
+ }
753
+ declare const ColorProperty = "ColorProperty";
754
+ interface CustomColor extends AstNode {
755
+ readonly $container: SpecificationColor;
756
+ readonly $type: 'CustomColor';
757
+ name: CustomColorId;
758
+ }
759
+ declare const CustomColor = "CustomColor";
760
+ interface CustomElementProperties extends AstNode {
761
+ readonly $container: FqnExprWith;
762
+ readonly $type: 'CustomElementProperties';
763
+ props: Array<ElementStringProperty | NavigateToProperty | NotationProperty | NotesProperty | StyleProperty>;
764
+ }
765
+ declare const CustomElementProperties = "CustomElementProperties";
766
+ interface CustomRelationProperties extends AstNode {
767
+ readonly $container: AbstractDynamicStep | RelationExprWith;
768
+ readonly $type: 'CustomRelationProperties';
769
+ props: Array<NotationProperty | NotesProperty | RelationNavigateToProperty | RelationStringProperty | RelationshipStyleProperty>;
770
+ }
771
+ declare const CustomRelationProperties = "CustomRelationProperties";
772
+ interface DeployedInstance extends AstNode {
773
+ readonly $container: DeploymentNodeBody | ExtendDeploymentBody;
774
+ readonly $type: 'DeployedInstance';
775
+ body?: DeployedInstanceBody;
776
+ name?: Id;
777
+ summary?: string;
778
+ target: ElementRef;
779
+ title?: string;
780
+ }
781
+ declare const DeployedInstance = "DeployedInstance";
782
+ interface DeployedInstanceBody extends AstNode {
783
+ readonly $container: DeployedInstance;
784
+ readonly $type: 'DeployedInstanceBody';
785
+ elements: Array<DeploymentRelation>;
786
+ props: Array<ElementProperty>;
787
+ tags?: Tags;
788
+ }
789
+ declare const DeployedInstanceBody = "DeployedInstanceBody";
790
+ interface DeploymentNode extends AstNode {
791
+ readonly $container: DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
792
+ readonly $type: 'DeploymentNode';
793
+ body?: DeploymentNodeBody;
794
+ kind: Reference<DeploymentNodeKind>;
795
+ name: Id;
796
+ summary?: string;
797
+ title?: string;
798
+ }
799
+ declare const DeploymentNode = "DeploymentNode";
800
+ interface DeploymentNodeBody extends AstNode {
801
+ readonly $container: DeploymentNode;
802
+ readonly $type: 'DeploymentNodeBody';
803
+ elements: Array<DeployedInstance | DeploymentNode | DeploymentRelation>;
804
+ props: Array<ElementProperty>;
805
+ tags?: Tags;
806
+ }
807
+ declare const DeploymentNodeBody = "DeploymentNodeBody";
808
+ interface DeploymentNodeKind extends AstNode {
809
+ readonly $container: SpecificationDeploymentNodeKind;
810
+ readonly $type: 'DeploymentNodeKind';
811
+ name: Id;
812
+ }
813
+ declare const DeploymentNodeKind = "DeploymentNodeKind";
814
+ interface DeploymentRelation extends AstNode {
815
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
816
+ readonly $type: 'DeploymentRelation';
817
+ body?: DeploymentRelationBody;
818
+ description?: string;
819
+ dotKind?: RelationKindDotRef;
820
+ kind?: Reference<RelationshipKind>;
821
+ source?: FqnRef$2;
822
+ tags?: Tags;
823
+ target: FqnRef$2;
824
+ technology?: string;
825
+ title?: string;
826
+ }
827
+ declare const DeploymentRelation = "DeploymentRelation";
828
+ interface DeploymentRelationBody extends AstNode {
829
+ readonly $container: DeploymentRelation;
830
+ readonly $type: 'DeploymentRelationBody';
831
+ props: Array<RelationProperty>;
832
+ tags?: Tags;
833
+ }
834
+ declare const DeploymentRelationBody = "DeploymentRelationBody";
835
+ interface DeploymentView extends AstNode {
836
+ readonly $container: ModelViews;
837
+ readonly $type: 'DeploymentView';
838
+ body?: DeploymentViewBody;
839
+ name: Id;
840
+ }
841
+ declare const DeploymentView = "DeploymentView";
842
+ interface DeploymentViewBody extends AstNode {
843
+ readonly $container: DeploymentView;
844
+ readonly $type: 'DeploymentViewBody';
845
+ props: Array<ViewProperty>;
846
+ rules: Array<DeploymentViewRule>;
847
+ tags?: Tags;
848
+ }
849
+ declare const DeploymentViewBody = "DeploymentViewBody";
850
+ interface DeploymentViewRulePredicate extends AstNode {
851
+ readonly $container: DeploymentViewBody;
852
+ readonly $type: 'DeploymentViewRulePredicate';
853
+ expr: Expressions;
854
+ isInclude: boolean;
855
+ }
856
+ declare const DeploymentViewRulePredicate = "DeploymentViewRulePredicate";
857
+ interface DeploymentViewRuleStyle extends AstNode {
858
+ readonly $container: DeploymentViewBody;
859
+ readonly $type: 'DeploymentViewRuleStyle';
860
+ props: Array<NotationProperty | StyleProperty>;
861
+ targets: FqnExpressions;
862
+ }
863
+ declare const DeploymentViewRuleStyle = "DeploymentViewRuleStyle";
864
+ interface DirectedRelationExpr extends AstNode {
865
+ readonly $container: Expressions | RelationExprWhere | RelationExprWith;
866
+ readonly $type: 'DirectedRelationExpr';
867
+ source: OutgoingRelationExpr;
868
+ target: FqnExpr$2;
869
+ }
870
+ declare const DirectedRelationExpr = "DirectedRelationExpr";
871
+ interface DynamicView extends AstNode {
872
+ readonly $container: ModelViews;
873
+ readonly $type: 'DynamicView';
874
+ body?: DynamicViewBody;
875
+ name: Id;
876
+ }
877
+ declare const DynamicView = "DynamicView";
264
878
  interface DynamicViewBody extends AstNode {
265
879
  readonly $container: DynamicView;
266
880
  readonly $type: 'DynamicViewBody';
@@ -685,7 +1299,7 @@ interface NotationProperty extends AstNode {
685
1299
  }
686
1300
  declare const NotationProperty = "NotationProperty";
687
1301
  interface NotesProperty extends AstNode {
688
- readonly $container: CustomRelationProperties;
1302
+ readonly $container: CustomElementProperties | CustomRelationProperties;
689
1303
  readonly $type: 'NotesProperty';
690
1304
  key: 'notes';
691
1305
  value: MarkdownOrString;
@@ -808,7 +1422,7 @@ declare const ShapeSizeProperty = "ShapeSizeProperty";
808
1422
  interface SpecificationColor extends AstNode {
809
1423
  readonly $container: SpecificationRule;
810
1424
  readonly $type: 'SpecificationColor';
811
- color: ColorLiteral;
1425
+ color: ColorLiteral$1;
812
1426
  name: CustomColor;
813
1427
  }
814
1428
  declare const SpecificationColor = "SpecificationColor";
@@ -863,8 +1477,8 @@ declare const SpecificationRule = "SpecificationRule";
863
1477
  interface SpecificationTag extends AstNode {
864
1478
  readonly $container: SpecificationRule;
865
1479
  readonly $type: 'SpecificationTag';
866
- color?: ColorLiteral;
867
- tag: Tag;
1480
+ color?: ColorLiteral$1;
1481
+ tag: Tag$1;
868
1482
  }
869
1483
  declare const SpecificationTag = "SpecificationTag";
870
1484
  interface StrictFqnElementRef extends AstNode {
@@ -881,16 +1495,16 @@ interface StrictFqnRef extends AstNode {
881
1495
  value: Reference<Referenceable>;
882
1496
  }
883
1497
  declare const StrictFqnRef = "StrictFqnRef";
884
- interface Tag extends AstNode {
1498
+ interface Tag$1 extends AstNode {
885
1499
  readonly $container: SpecificationTag;
886
1500
  readonly $type: 'Tag';
887
1501
  name: Id;
888
1502
  }
889
- declare const Tag = "Tag";
1503
+ declare const Tag$1 = "Tag";
890
1504
  interface TagRef extends AstNode {
891
1505
  readonly $container: ElementTagExpression | Tags | WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
892
1506
  readonly $type: 'TagRef';
893
- tag: Reference<Tag>;
1507
+ tag: Reference<Tag$1>;
894
1508
  }
895
1509
  declare const TagRef = "TagRef";
896
1510
  interface Tags extends AstNode {
@@ -1030,1215 +1644,205 @@ interface WhereRelationParticipantTag extends AstNode {
1030
1644
  participant: Participant;
1031
1645
  value: TagRef;
1032
1646
  }
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>;
2046
- }
2047
- interface LikeC4MCPServerFactory {
2048
- create(options?: ServerOptions): McpServer;
2049
- }
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
- };
2186
- }
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
- };
1647
+ declare const WhereRelationParticipantTag = "WhereRelationParticipantTag";
1648
+ interface WhereRelationTag extends AstNode {
1649
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1650
+ readonly $type: 'WhereRelationTag';
1651
+ not: boolean;
1652
+ operator: 'is' | string;
1653
+ value: TagRef;
2234
1654
  }
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
1655
+ declare const WhereRelationTag = "WhereRelationTag";
1656
+ interface WildcardExpression extends AstNode {
1657
+ readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
1658
+ readonly $type: 'WildcardExpression';
1659
+ isWildcard: boolean;
1660
+ }
1661
+ declare const WildcardExpression = "WildcardExpression";
1662
+ interface DynamicStepChain extends AbstractDynamicStep {
1663
+ readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
1664
+ readonly $type: 'DynamicStepChain';
1665
+ source: DynamicStepChain | DynamicStepSingle;
1666
+ }
1667
+ declare const DynamicStepChain = "DynamicStepChain";
1668
+ interface DynamicStepSingle extends AbstractDynamicStep {
1669
+ readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
1670
+ readonly $type: 'DynamicStepSingle';
1671
+ isBackward: boolean;
1672
+ source: ElementRef;
1673
+ }
1674
+ declare const DynamicStepSingle = "DynamicStepSingle";
1675
+ type LikeC4AstType = {
1676
+ AbstractDynamicStep: AbstractDynamicStep;
1677
+ AnyProperty: AnyProperty;
1678
+ ArrowProperty: ArrowProperty;
1679
+ BorderProperty: BorderProperty;
1680
+ ColorLiteral: ColorLiteral$1;
1681
+ ColorProperty: ColorProperty;
1682
+ CustomColor: CustomColor;
1683
+ CustomElementProperties: CustomElementProperties;
1684
+ CustomRelationProperties: CustomRelationProperties;
1685
+ DeployedInstance: DeployedInstance;
1686
+ DeployedInstanceBody: DeployedInstanceBody;
1687
+ DeploymentElement: DeploymentElement;
1688
+ DeploymentNode: DeploymentNode;
1689
+ DeploymentNodeBody: DeploymentNodeBody;
1690
+ DeploymentNodeKind: DeploymentNodeKind;
1691
+ DeploymentNodeOrElementKind: DeploymentNodeOrElementKind;
1692
+ DeploymentRelation: DeploymentRelation;
1693
+ DeploymentRelationBody: DeploymentRelationBody;
1694
+ DeploymentView: DeploymentView;
1695
+ DeploymentViewBody: DeploymentViewBody;
1696
+ DeploymentViewRule: DeploymentViewRule;
1697
+ DeploymentViewRulePredicate: DeploymentViewRulePredicate;
1698
+ DeploymentViewRuleStyle: DeploymentViewRuleStyle;
1699
+ DirectedRelationExpr: DirectedRelationExpr;
1700
+ DynamicStepChain: DynamicStepChain;
1701
+ DynamicStepSingle: DynamicStepSingle;
1702
+ DynamicView: DynamicView;
1703
+ DynamicViewBody: DynamicViewBody;
1704
+ DynamicViewDisplayVariantProperty: DynamicViewDisplayVariantProperty;
1705
+ DynamicViewGlobalPredicateRef: DynamicViewGlobalPredicateRef;
1706
+ DynamicViewIncludePredicate: DynamicViewIncludePredicate;
1707
+ DynamicViewParallelSteps: DynamicViewParallelSteps;
1708
+ DynamicViewProperty: DynamicViewProperty;
1709
+ DynamicViewRef: DynamicViewRef;
1710
+ DynamicViewRule: DynamicViewRule;
1711
+ DynamicViewStep: DynamicViewStep;
1712
+ Element: Element;
1713
+ ElementBody: ElementBody;
1714
+ ElementKind: ElementKind;
1715
+ ElementKindExpression: ElementKindExpression;
1716
+ ElementProperty: ElementProperty;
1717
+ ElementRef: ElementRef;
1718
+ ElementStringProperty: ElementStringProperty;
1719
+ ElementStyleProperty: ElementStyleProperty;
1720
+ ElementTagExpression: ElementTagExpression;
1721
+ ElementView: ElementView;
1722
+ ElementViewBody: ElementViewBody;
1723
+ ElementViewRef: ElementViewRef;
1724
+ ExpressionV2: ExpressionV2;
1725
+ Expressions: Expressions;
1726
+ ExtendDeployment: ExtendDeployment;
1727
+ ExtendDeploymentBody: ExtendDeploymentBody;
1728
+ ExtendElement: ExtendElement;
1729
+ ExtendElementBody: ExtendElementBody;
1730
+ ExtendElementProperty: ExtendElementProperty;
1731
+ ExtendRelation: ExtendRelation;
1732
+ ExtendRelationBody: ExtendRelationBody;
1733
+ ExtendRelationProperty: ExtendRelationProperty;
1734
+ FqnExpr: FqnExpr$2;
1735
+ FqnExprOrWhere: FqnExprOrWhere;
1736
+ FqnExprOrWith: FqnExprOrWith;
1737
+ FqnExprWhere: FqnExprWhere;
1738
+ FqnExprWith: FqnExprWith;
1739
+ FqnExpressions: FqnExpressions;
1740
+ FqnRef: FqnRef$2;
1741
+ FqnRefExpr: FqnRefExpr;
1742
+ FqnReferenceable: FqnReferenceable;
1743
+ GlobalDynamicPredicateGroup: GlobalDynamicPredicateGroup;
1744
+ GlobalPredicateGroup: GlobalPredicateGroup;
1745
+ GlobalStyle: GlobalStyle;
1746
+ GlobalStyleGroup: GlobalStyleGroup;
1747
+ GlobalStyleId: GlobalStyleId;
1748
+ Globals: Globals;
1749
+ HexColor: HexColor;
1750
+ IconColorProperty: IconColorProperty;
1751
+ IconPositionProperty: IconPositionProperty;
1752
+ IconProperty: IconProperty;
1753
+ IconSizeProperty: IconSizeProperty;
1754
+ Imported: Imported;
1755
+ ImportsFromPoject: ImportsFromPoject;
1756
+ InOutRelationExpr: InOutRelationExpr;
1757
+ IncomingRelationExpr: IncomingRelationExpr;
1758
+ LibIcon: LibIcon;
1759
+ LikeC4Grammar: LikeC4Grammar;
1760
+ LikeC4Lib: LikeC4Lib;
1761
+ LikeC4View: LikeC4View;
1762
+ LineProperty: LineProperty;
1763
+ LinkProperty: LinkProperty;
1764
+ MarkdownOrString: MarkdownOrString;
1765
+ MetadataArray: MetadataArray;
1766
+ MetadataAttribute: MetadataAttribute;
1767
+ MetadataBody: MetadataBody;
1768
+ MetadataProperty: MetadataProperty;
1769
+ MetadataValue: MetadataValue;
1770
+ Model: Model;
1771
+ ModelDeployments: ModelDeployments;
1772
+ ModelReferenceable: ModelReferenceable;
1773
+ ModelViews: ModelViews;
1774
+ MultipleProperty: MultipleProperty;
1775
+ NavigateToProperty: NavigateToProperty;
1776
+ NotationProperty: NotationProperty;
1777
+ NotesProperty: NotesProperty;
1778
+ OpacityProperty: OpacityProperty;
1779
+ OutgoingRelationExpr: OutgoingRelationExpr;
1780
+ PaddingSizeProperty: PaddingSizeProperty;
1781
+ RGBAColor: RGBAColor;
1782
+ Referenceable: Referenceable;
1783
+ Relation: Relation;
1784
+ RelationBody: RelationBody;
1785
+ RelationExpr: RelationExpr$1;
1786
+ RelationExprOrWhere: RelationExprOrWhere;
1787
+ RelationExprOrWith: RelationExprOrWith;
1788
+ RelationExprWhere: RelationExprWhere;
1789
+ RelationExprWith: RelationExprWith;
1790
+ RelationKindDotRef: RelationKindDotRef;
1791
+ RelationNavigateToProperty: RelationNavigateToProperty;
1792
+ RelationProperty: RelationProperty;
1793
+ RelationStringProperty: RelationStringProperty;
1794
+ RelationStyleProperty: RelationStyleProperty;
1795
+ RelationshipKind: RelationshipKind;
1796
+ RelationshipStyleProperty: RelationshipStyleProperty;
1797
+ ShapeProperty: ShapeProperty;
1798
+ ShapeSizeProperty: ShapeSizeProperty;
1799
+ SizeProperty: SizeProperty;
1800
+ SpecificationColor: SpecificationColor;
1801
+ SpecificationDeploymentNodeKind: SpecificationDeploymentNodeKind;
1802
+ SpecificationElementKind: SpecificationElementKind;
1803
+ SpecificationElementStringProperty: SpecificationElementStringProperty;
1804
+ SpecificationRelationshipKind: SpecificationRelationshipKind;
1805
+ SpecificationRelationshipStringProperty: SpecificationRelationshipStringProperty;
1806
+ SpecificationRule: SpecificationRule;
1807
+ SpecificationTag: SpecificationTag;
1808
+ StrictFqnElementRef: StrictFqnElementRef;
1809
+ StrictFqnRef: StrictFqnRef;
1810
+ StringProperty: StringProperty;
1811
+ StyleProperty: StyleProperty;
1812
+ Tag: Tag$1;
1813
+ TagRef: TagRef;
1814
+ Tags: Tags;
1815
+ TextSizeProperty: TextSizeProperty;
1816
+ ViewProperty: ViewProperty;
1817
+ ViewRef: ViewRef;
1818
+ ViewRule: ViewRule;
1819
+ ViewRuleAutoLayout: ViewRuleAutoLayout;
1820
+ ViewRuleGlobalPredicateRef: ViewRuleGlobalPredicateRef;
1821
+ ViewRuleGlobalStyle: ViewRuleGlobalStyle;
1822
+ ViewRuleGroup: ViewRuleGroup;
1823
+ ViewRulePredicate: ViewRulePredicate;
1824
+ ViewRuleRank: ViewRuleRank;
1825
+ ViewRuleStyle: ViewRuleStyle;
1826
+ ViewRuleStyleOrGlobalRef: ViewRuleStyleOrGlobalRef;
1827
+ ViewStringProperty: ViewStringProperty;
1828
+ WhereBinaryExpression: WhereBinaryExpression;
1829
+ WhereElement: WhereElement;
1830
+ WhereElementExpression: WhereElementExpression;
1831
+ WhereElementKind: WhereElementKind;
1832
+ WhereElementNegation: WhereElementNegation;
1833
+ WhereElementTag: WhereElementTag;
1834
+ WhereExpression: WhereExpression;
1835
+ WhereKindEqual: WhereKindEqual;
1836
+ WhereRelation: WhereRelation;
1837
+ WhereRelationExpression: WhereRelationExpression;
1838
+ WhereRelationKind: WhereRelationKind;
1839
+ WhereRelationNegation: WhereRelationNegation;
1840
+ WhereRelationParticipantKind: WhereRelationParticipantKind;
1841
+ WhereRelationParticipantTag: WhereRelationParticipantTag;
1842
+ WhereRelationTag: WhereRelationTag;
1843
+ WhereTagEqual: WhereTagEqual;
1844
+ WildcardExpression: WildcardExpression;
1845
+ }; //#endregion
2242
1846
  //#region src/validation/DocumentValidator.d.ts
2243
1847
  declare class LikeC4DocumentValidator extends DefaultDocumentValidator {
2244
1848
  protected services: LikeC4Services;
@@ -2249,10 +1853,8 @@ declare class LikeC4DocumentValidator extends DefaultDocumentValidator {
2249
1853
  validateDocument(document: LangiumDocument, options?: ValidationOptions, cancelToken?: CancellationToken$1): Promise<Diagnostic[]>;
2250
1854
  } //#endregion
2251
1855
  //#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>;
1856
+ declare const isValidatableAstNode: any;
1857
+ type ValidatableAstNode = GuardedBy<typeof isValidatableAstNode>;
2256
1858
  declare function checksFromDiagnostics(doc: LikeC4LangiumDocument): {
2257
1859
  isValid: (n: ValidatableAstNode) => boolean;
2258
1860
  invalidNodes: WeakSet<WeakKey>;
@@ -2326,7 +1928,7 @@ interface ParsedAstElement {
2326
1928
  id: c4.Fqn;
2327
1929
  astPath: string;
2328
1930
  kind: c4.ElementKind;
2329
- title: string;
1931
+ title?: string;
2330
1932
  summary?: c4.MarkdownOrString;
2331
1933
  description?: c4.MarkdownOrString;
2332
1934
  technology?: string;
@@ -2447,8 +2049,149 @@ interface LikeC4LangiumDocument extends LikeC4GrammarDocument, LikeC4DocumentPro
2447
2049
  }
2448
2050
  interface ParsedLikeC4LangiumDocument extends LikeC4GrammarDocument, Required<LikeC4DocumentProps> {
2449
2051
  likec4ProjectId: c4.ProjectId;
2450
- }
2451
- //#endregion
2052
+ } //#endregion
2053
+ //#region src/references/name-provider.d.ts
2054
+ declare class LikeC4NameProvider extends DefaultNameProvider {
2055
+ protected services: LikeC4Services;
2056
+ constructor(services: LikeC4Services);
2057
+ getNameStrict(node: AstNode): string;
2058
+ getName(node: AstNode): string | undefined;
2059
+ getNameNode(node: AstNode): CstNode | undefined;
2060
+ } //#endregion
2061
+ //#region src/references/scope-computation.d.ts
2062
+ type ElementsContainer = Model | ElementBody | ExtendElementBody;
2063
+ type DeploymentsContainer = ModelDeployments | DeploymentNodeBody | ExtendDeploymentBody | DeployedInstanceBody;
2064
+ declare class LikeC4ScopeComputation extends DefaultScopeComputation {
2065
+ constructor(services: LikeC4Services);
2066
+ computeExports(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken$1): Promise<AstNodeDescription[]>;
2067
+ private exportViews;
2068
+ private exportGlobals;
2069
+ private exportModel;
2070
+ private exportLibrary;
2071
+ private exportSpecification;
2072
+ private exportDeployments;
2073
+ computeLocalScopes(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken$1): Promise<PrecomputedScopes>;
2074
+ protected processContainer(container: ElementsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
2075
+ protected processDeployments(container: DeploymentsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
2076
+ } //#endregion
2077
+ //#region src/workspace/IndexManager.d.ts
2078
+ declare class IndexManager extends DefaultIndexManager {
2079
+ protected services: LikeC4SharedServices;
2080
+ constructor(services: LikeC4SharedServices);
2081
+ updateContent(document: LangiumDocument, cancelToken?: CancellationToken$1): Promise<void>;
2082
+ projectElements(projectId: ProjectId, nodeType?: string, uris?: Set<string>): Stream<AstNodeDescription>;
2083
+ } //#endregion
2084
+ //#region src/workspace/LangiumDocuments.d.ts
2085
+ declare class LangiumDocuments extends DefaultLangiumDocuments {
2086
+ protected services: LikeC4SharedServices;
2087
+ constructor(services: LikeC4SharedServices);
2088
+ protected get projectsManager(): ProjectsManager;
2089
+ addDocument(document: LangiumDocument): void;
2090
+ getDocument(uri: URI): LangiumDocument | undefined;
2091
+ /**
2092
+ * Returns all user documents
2093
+ */
2094
+ get userDocuments(): Stream<LikeC4LangiumDocument>;
2095
+ /**
2096
+ * Returns all documents (ensures project IDs are set)
2097
+ */
2098
+ get all(): Stream<LangiumDocument>;
2099
+ /**
2100
+ * Returns all documents for a project, including both project documents and documents included by the project.
2101
+ */
2102
+ projectDocuments(projectId: ProjectId): Stream<LikeC4LangiumDocument>;
2103
+ groupedByProject(): Record<ProjectId, NonEmptyArray<LikeC4LangiumDocument>>;
2104
+ /**
2105
+ * Reset the project IDs of all documents.
2106
+ * Returns the URIs
2107
+ */
2108
+ resetProjectIds(): URI[];
2109
+ } //#endregion
2110
+ //#region src/workspace/WorkspaceManager.d.ts
2111
+ declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
2112
+ #private;
2113
+ private services;
2114
+ protected readonly documentFactory: LangiumDocumentFactory;
2115
+ protected readonly fileSystemProvider: FileSystemProvider$1;
2116
+ initialBuildOptions: BuildOptions;
2117
+ constructor(services: LikeC4SharedServices);
2118
+ /**
2119
+ * First load all project config files, then load all documents in the workspace.
2120
+ */
2121
+ protected performStartup(folders: WorkspaceFolder[]): Promise<LangiumDocument[]>;
2122
+ /**
2123
+ * Load all additional documents that shall be visible in the context of the given workspace
2124
+ * folders and add them to the collector. This can be used to include built-in libraries of
2125
+ * your language, which can be either loaded from provided files or constructed in memory.
2126
+ */
2127
+ protected loadAdditionalDocuments(folders: WorkspaceFolder[], collector: (document: LangiumDocument) => void): Promise<void>;
2128
+ /**
2129
+ * Determine whether the given folder entry shall be included while indexing the workspace.
2130
+ */
2131
+ protected includeEntry(_: WorkspaceFolder, entry: FileSystemNode, selector: FileSelector): boolean;
2132
+ workspace(): WorkspaceFolder | null;
2133
+ rebuildAll(cancelToken?: CancellationToken$1): Promise<void>;
2134
+ get workspaceUri(): URI;
2135
+ get workspaceURL(): URL;
2136
+ /**
2137
+ * Force clean all caches
2138
+ */
2139
+ forceCleanCaches(): void;
2140
+ /**
2141
+ * Register a listener to be called when caches are force cleaned
2142
+ */
2143
+ onForceCleanCache(listener: () => void): Disposable$1;
2144
+ } //#endregion
2145
+ //#region src/references/scope-provider.d.ts
2146
+ declare class LikeC4ScopeProvider extends DefaultScopeProvider {
2147
+ protected deploymentsIndex: DeploymentsIndex;
2148
+ protected fqnIndex: FqnIndex;
2149
+ protected readonly indexManager: IndexManager;
2150
+ constructor(services: LikeC4Services);
2151
+ getScope(context: ReferenceInfo): Scope;
2152
+ protected genUniqueDescedants(element: Element | DeploymentNode | undefined): Generator<AstNodeDescriptionWithFqn, void, any>;
2153
+ protected genScopeExtendElement({
2154
+ element
2155
+ }: ExtendElement): Generator<AstNodeDescription>;
2156
+ protected genScopeElementView({
2157
+ viewOf,
2158
+ extends: ext
2159
+ }: ElementView): Generator<AstNodeDescription>;
2160
+ protected getScopeForStrictFqnRef(projectId: ProjectId, container: StrictFqnRef, context: ReferenceInfo): Scope;
2161
+ protected genScopeExtendDeployment({
2162
+ deploymentNode
2163
+ }: ExtendDeployment): Generator<AstNodeDescription>;
2164
+ protected streamForFqnRef(projectId: ProjectId, container: FqnRef$2, context: ReferenceInfo): Stream<AstNodeDescription>;
2165
+ protected genScopeForParentlessFqnRef(projectId: ProjectId, container: FqnRef$2, context: ReferenceInfo): Generator<AstNodeDescription>;
2166
+ /**
2167
+ * Computes the scope for a given reference context.
2168
+ *
2169
+ * @param context - The reference information containing the context for which the scope is being computed.
2170
+ * @param referenceType - The type of reference being resolved. Defaults to the reference type derived from the context.
2171
+ * @returns A scope containing the relevant AST node descriptions for the given reference context.
2172
+ *
2173
+ * This method first checks if there are precomputed scopes available in the document. If not, it falls back to the global scope.
2174
+ * It then iterates through the container hierarchy, collecting relevant scopes based on the reference type and container type.
2175
+ * Finally, it combines the collected scopes with the global scope to produce the final scope.
2176
+ */
2177
+ protected computeScope(projectId: ProjectId, context: ReferenceInfo, referenceType?: string): Generator<AstNodeDescription>;
2178
+ /**
2179
+ * Create a global scope filtered for the given reference type.
2180
+ */
2181
+ protected getProjectScope(projectId: ProjectId, referenceType: string, context: ReferenceInfo): Scope;
2182
+ /**
2183
+ * Create a global scope filtered for the given reference type.
2184
+ */
2185
+ protected getGlobalScope(referenceType: string, context: ReferenceInfo): Scope;
2186
+ } //#endregion
2187
+ //#region src/utils/disposable.d.ts
2188
+ declare abstract class ADisposable implements Disposable$1 {
2189
+ protected toDispose: Disposable$1[];
2190
+ protected isDisposed: boolean;
2191
+ onDispose(...disposable: Disposable$1[]): void;
2192
+ dispose(): void;
2193
+ protected throwIfDisposed(): void;
2194
+ } //#endregion
2452
2195
  //#region src/model/fqn-index.d.ts
2453
2196
  declare class FqnIndex<AstNd = Element> extends ADisposable {
2454
2197
  protected services: LikeC4Services;
@@ -2456,18 +2199,19 @@ declare class FqnIndex<AstNd = Element> extends ADisposable {
2456
2199
  protected langiumDocuments: LangiumDocuments;
2457
2200
  protected documentCache: DefaultWeakMap<LikeC4LangiumDocument, DocumentFqnIndex>;
2458
2201
  protected workspaceCache: WorkspaceCache<string, AstNodeDescriptionWithFqn[]>;
2202
+ protected logger: any;
2459
2203
  constructor(services: LikeC4Services);
2460
2204
  private documents;
2461
2205
  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>;
2206
+ resolve(reference: Referenceable): Fqn$1;
2207
+ getFqn(el: AstNd): Fqn$1;
2208
+ byFqn(projectId: ProjectId$1, fqn: Fqn$1): Stream<AstNodeDescriptionWithFqn>;
2209
+ rootElements(projectId: ProjectId$1): Stream<AstNodeDescriptionWithFqn>;
2210
+ directChildrenOf(projectId: ProjectId$1, parent: Fqn$1): Stream<AstNodeDescriptionWithFqn>;
2467
2211
  /**
2468
2212
  * Returns descedant elements with unique names in the scope
2469
2213
  */
2470
- uniqueDescedants(projectId: ProjectId, parent: Fqn): Stream<AstNodeDescriptionWithFqn>;
2214
+ uniqueDescedants(projectId: ProjectId$1, parent: Fqn$1): Stream<AstNodeDescriptionWithFqn>;
2471
2215
  protected createDocumentIndex(document: LikeC4LangiumDocument): DocumentFqnIndex;
2472
2216
  }
2473
2217
  declare class DocumentFqnIndex {
@@ -2484,87 +2228,300 @@ declare class DocumentFqnIndex {
2484
2228
  * All elements by FQN
2485
2229
  */
2486
2230
  private _byfqn;
2487
- readonly projectId: ProjectId;
2231
+ readonly projectId: ProjectId$1;
2488
2232
  static readonly EMPTY: DocumentFqnIndex;
2489
2233
  constructor(_rootElements: Array<AstNodeDescriptionWithFqn>,
2490
2234
  /**
2491
2235
  * direct children of elements
2492
2236
  */
2493
2237
 
2494
- _children: MultiMap<Fqn, AstNodeDescriptionWithFqn>,
2238
+ _children: MultiMap<Fqn$1, AstNodeDescriptionWithFqn>,
2495
2239
  /**
2496
2240
  * All descendants of an element (unique by name)
2497
2241
  */
2498
2242
 
2499
- _descendants: MultiMap<Fqn, AstNodeDescriptionWithFqn>,
2243
+ _descendants: MultiMap<Fqn$1, AstNodeDescriptionWithFqn>,
2500
2244
  /**
2501
2245
  * All elements by FQN
2502
2246
  */
2503
-
2504
- _byfqn: MultiMap<Fqn, AstNodeDescriptionWithFqn>, projectId: ProjectId);
2505
- rootElements(): readonly AstNodeDescriptionWithFqn[];
2506
- byFqn(fqn: Fqn): readonly AstNodeDescriptionWithFqn[];
2507
- children(parent: Fqn): readonly AstNodeDescriptionWithFqn[];
2508
- descendants(nodeName: Fqn): readonly AstNodeDescriptionWithFqn[];
2509
- } //#endregion
2510
- //#region src/model/deployments-index.d.ts
2511
- declare class DeploymentsIndex extends FqnIndex<DeploymentElement> {
2512
- protected services: LikeC4Services;
2513
- protected Names: LikeC4NameProvider;
2514
- constructor(services: LikeC4Services);
2515
- protected createDocumentIndex(document: LikeC4LangiumDocument): DocumentFqnIndex;
2516
- } //#endregion
2517
- //#region src/model/model-builder.d.ts
2518
- type ModelParsedListener = (docs: URI[]) => void;
2519
- 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>>;
2523
- onModelParsed(callback: ModelParsedListener): Disposable$1;
2524
- clearCache(): void;
2525
- } //#endregion
2526
- //#region src/model/model-locator.d.ts
2527
- type ViewLocateResult = {
2528
- doc: ParsedLikeC4LangiumDocument;
2529
- view: ParsedAstView;
2530
- viewAst: LikeC4View;
2531
- };
2532
- declare class LikeC4ModelLocator {
2533
- private services;
2534
- private fqnIndex;
2535
- private deploymentsIndex;
2536
- private langiumDocuments;
2537
- private parser;
2538
- private projects;
2539
- constructor(services: LikeC4Services);
2540
- private documents;
2541
- getParsedElement(...args: [Element] | [c4.Fqn] | [c4.Fqn, c4.ProjectId]): ParsedAstElement | null;
2542
- locateElement(fqn: c4.Fqn, projectId?: c4.ProjectId | undefined): Location | null;
2543
- locateDeploymentElement(deploymentFqn: c4.DeploymentFqn, projectId?: c4.ProjectId | undefined): Location | null;
2544
- locateRelation(relationId: c4.RelationId, projectId?: c4.ProjectId): Location | null;
2545
- locateViewAst(viewId: c4.ViewId, projectId?: c4.ProjectId | undefined): null | ViewLocateResult;
2546
- locateView(viewId: c4.ViewId, projectId?: c4.ProjectId): Location | null;
2547
- locateDocumentTags(documentUri: URI, cancelToken?: CancellationToken$1): Promise<Array<{
2548
- name: string;
2549
- color: string;
2550
- range: Range;
2551
- isSpecification: boolean;
2552
- }>>;
2553
- locateDynamicViewStep(params: {
2554
- view: c4.ViewId;
2555
- astPath: string;
2556
- projectId?: c4.ProjectId | undefined;
2557
- }): Location | null;
2247
+
2248
+ _byfqn: MultiMap<Fqn$1, AstNodeDescriptionWithFqn>, projectId: ProjectId$1);
2249
+ rootElements(): readonly AstNodeDescriptionWithFqn[];
2250
+ byFqn(fqn: Fqn$1): readonly AstNodeDescriptionWithFqn[];
2251
+ children(parent: Fqn$1): readonly AstNodeDescriptionWithFqn[];
2252
+ descendants(nodeName: Fqn$1): readonly AstNodeDescriptionWithFqn[];
2253
+ } //#endregion
2254
+ //#region src/model/deployments-index.d.ts
2255
+ declare class DeploymentsIndex extends FqnIndex<DeploymentElement> {
2256
+ protected services: LikeC4Services;
2257
+ protected Names: LikeC4NameProvider;
2258
+ protected logger: any;
2259
+ constructor(services: LikeC4Services);
2260
+ protected createDocumentIndex(document: LikeC4LangiumDocument): DocumentFqnIndex;
2261
+ } //#endregion
2262
+ //#region src/model/builder/MergedSpecification.d.ts
2263
+ /**
2264
+ * The `MergedSpecification` class is responsible for merging multiple parsed
2265
+ * LikeC4Langium documents into a single specification. It consolidates tags,
2266
+ * elements, deployments, relationships, and colors from the provided documents
2267
+ * and provides methods to convert parsed models into C4 model elements and relations.
2268
+ */
2269
+ declare class MergedSpecification {
2270
+ readonly specs: Omit<ParsedAstSpecification, 'tags'>;
2271
+ readonly tags: Readonly<Record<c4.Tag, c4.TagSpecification>>;
2272
+ readonly globals: c4.ModelGlobals;
2273
+ readonly imports: MultiMap<c4.ProjectId, c4.Fqn, Set<c4.Fqn>>;
2274
+ readonly projectId: c4.ProjectId | undefined;
2275
+ readonly inferTechFromIcon: boolean;
2276
+ constructor(docs: ReadonlyArray<ParsedLikeC4LangiumDocument>, opts?: {
2277
+ inferTechFromIcon?: boolean;
2278
+ });
2279
+ /**
2280
+ * Converts a parsed model into a C4 model element.
2281
+ */
2282
+ toModelElement: ({
2283
+ tags,
2284
+ links,
2285
+ style,
2286
+ id,
2287
+ kind,
2288
+ title,
2289
+ description,
2290
+ technology,
2291
+ summary,
2292
+ metadata
2293
+ }: ParsedAstElement) => c4.Element | null;
2294
+ /**
2295
+ * Converts a parsed model into a C4 model relation.
2296
+ */
2297
+ toModelRelation: ({
2298
+ astPath: _astPath,
2299
+ source,
2300
+ target,
2301
+ kind,
2302
+ links,
2303
+ id,
2304
+ ...model
2305
+ }: ParsedAstRelation) => c4.Relationship | null;
2306
+ /**
2307
+ * Converts a parsed deployment model into a C4 deployment model
2308
+ */
2309
+ toDeploymentElement: (parsed: ParsedAstDeployment) => c4.DeploymentElement | null;
2310
+ /**
2311
+ * Converts a parsed deployment relation into a C4 deployment relation.
2312
+ */
2313
+ toDeploymentRelation: ({
2314
+ astPath: _astPath,
2315
+ source,
2316
+ target,
2317
+ kind,
2318
+ links,
2319
+ id,
2320
+ ...model
2321
+ }: ParsedAstDeploymentRelation) => c4.DeploymentRelationship | null;
2322
+ } //#endregion
2323
+ //#region src/model/last-seen-artifacts.d.ts
2324
+ /**
2325
+ * Provides access to "last seen artifacts" for a given project,
2326
+ * (Results of the last successful parsing)
2327
+ */
2328
+ declare class LastSeenArtifacts {
2329
+ #private;
2330
+ constructor(services: LikeC4Services);
2331
+ /**
2332
+ * Cache the last successful merged specification for its project.
2333
+ * @param specification - MergedSpecification to store (by projectId).
2334
+ * @returns The same specification (stores in internal map when projectId is set).
2335
+ */
2336
+ rememberSpecification(specification: MergedSpecification): MergedSpecification;
2337
+ /**
2338
+ * Cache the last successful computed model and its styles for the project.
2339
+ * @param model - LikeC4Model.Computed to store (by projectId).
2340
+ * @returns The same model (stores model and styles in internal maps).
2341
+ */
2342
+ rememberModel<M extends LikeC4Model.Computed>(model: M): M;
2343
+ /**
2344
+ * Returns the last seen merged specification for the given project, if available.
2345
+ * @param projectId - Project id to look up.
2346
+ * @returns MergedSpecification or undefined.
2347
+ */
2348
+ specification(projectId: c4.ProjectId): MergedSpecification | undefined;
2349
+ /**
2350
+ * Returns the last seen styles for the given project, if available.
2351
+ * @param projectId - Project id to look up.
2352
+ * @returns LikeC4Styles or undefined.
2353
+ */
2354
+ styles(projectId: c4.ProjectId): LikeC4Styles$1 | undefined;
2355
+ /**
2356
+ * Returns the last seen computed model for the given project, if available.
2357
+ * @param projectId - Project id to look up.
2358
+ * @returns LikeC4Model.Computed or undefined.
2359
+ */
2360
+ model(projectId: c4.ProjectId): LikeC4Model.Computed | undefined;
2361
+ } //#endregion
2362
+ //#region src/model/model-builder.d.ts
2363
+ type ModelParsedListener = (docs: URI[]) => void;
2364
+ interface LikeC4ModelBuilder extends Disposable$1 {
2365
+ parseModel(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownParsed> | null>;
2366
+ unsafeSyncComputeModel(projectId: ProjectId): LikeC4Model<UnknownComputed>;
2367
+ computeModel(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
2368
+ onModelParsed(callback: ModelParsedListener): Disposable$1;
2369
+ clearCache(): void;
2370
+ } //#endregion
2371
+ //#region src/model/model-locator.d.ts
2372
+ /** Result of locating a view: document, view AST, and view block node. */
2373
+ type ViewLocateResult = {
2374
+ doc: ParsedLikeC4LangiumDocument;
2375
+ view: ParsedAstView;
2376
+ viewAst: LikeC4View;
2377
+ };
2378
+ /**
2379
+ * Locates elements, views, and documents in the LikeC4 model by FQN or AST node.
2380
+ * Used by LSP features (hover, go-to-definition, document tags, etc.).
2381
+ */
2382
+ declare class LikeC4ModelLocator {
2383
+ private services;
2384
+ private fqnIndex;
2385
+ private deploymentsIndex;
2386
+ private langiumDocuments;
2387
+ private parser;
2388
+ private projects;
2389
+ constructor(services: LikeC4Services);
2390
+ /**
2391
+ * Returns the parsed documents
2392
+ */
2393
+ private documents;
2394
+ /**
2395
+ * Get parsed element by AST node or by FQN (and optional projectId).
2396
+ * @param args - Either [element AST], [fqn], or [fqn, projectId]
2397
+ * @returns { projectId, element, document } or null if not found
2398
+ */
2399
+ getParsedElement(...args: [Element] | [c4.Fqn] | [c4.Fqn, c4.ProjectId]): null | {
2400
+ projectId: c4.ProjectId;
2401
+ element: ParsedAstElement;
2402
+ document: LangiumDocument;
2403
+ };
2404
+ private findParsedElementByFqnIn;
2405
+ /**
2406
+ * Get LSP Location for an element by FQN (and optional projectId).
2407
+ * @param fqn - Fully qualified name (may include project prefix)
2408
+ * @param projectId - Optional project scope
2409
+ * @returns Location or null
2410
+ */
2411
+ locateElement(fqn: c4.Fqn, projectId?: c4.ProjectId | undefined): Location | null;
2412
+ locateDeploymentElement(deploymentFqn: c4.DeploymentFqn, projectId?: c4.ProjectId | undefined): Location | null;
2413
+ locateRelation(relationId: c4.RelationId, projectId?: c4.ProjectId): Location | null;
2414
+ locateViewAst(viewId: c4.ViewId, projectId?: c4.ProjectId | undefined): null | ViewLocateResult;
2415
+ /**
2416
+ * Get LSP Location for a view by id (and optional projectId).
2417
+ * @param viewId - View id
2418
+ * @param projectId - Optional project scope
2419
+ * @returns Location or null
2420
+ */
2421
+ locateView(viewId: c4.ViewId, projectId?: c4.ProjectId): Location | null;
2422
+ /**
2423
+ * Returns an array of tags with their name, color, range and whether they are defined in the specification or not.
2424
+ * If the document is not linked, it will wait until it is linked before locating the tags.
2425
+ *
2426
+ * If the document does not belong to any project, it will return null.
2427
+ */
2428
+ locateDocumentTags(documentUri: URI, cancelToken?: CancellationToken$1): Promise<null | Array<{
2429
+ name: Tag;
2430
+ color: c4.ColorLiteral;
2431
+ range: Range;
2432
+ isSpecification: boolean;
2433
+ }>>;
2434
+ locateDynamicViewStep(params: {
2435
+ view: c4.ViewId;
2436
+ astPath: string;
2437
+ projectId?: c4.ProjectId | undefined;
2438
+ }): Location | null;
2439
+ } //#endregion
2440
+ //#region src/mcp/noop.d.ts
2441
+ //#endregion
2442
+ //#region src/views/LikeC4Views.d.ts
2443
+ type GraphvizOut = {
2444
+ readonly dot: string;
2445
+ readonly diagram: LayoutedView;
2446
+ };
2447
+ type GraphvizSvgOut = {
2448
+ readonly id: ViewId;
2449
+ readonly dot: string;
2450
+ readonly svg: string;
2451
+ };
2452
+ type LayoutViewParams = {
2453
+ viewId: ViewId;
2454
+ /**
2455
+ * Type of layout to apply
2456
+ * - 'manual' - applies manual layout if any
2457
+ * - 'auto' - returns latest version with drifts from manual layout if any
2458
+ * - undefined - returns latest layout as is
2459
+ */
2460
+ layoutType?: LayoutType | undefined;
2461
+ projectId?: ProjectId | undefined;
2462
+ cancelToken?: CancellationToken$1 | undefined;
2463
+ };
2464
+ interface LikeC4Views {
2465
+ readonly layouter: GraphvizLayouter;
2466
+ /**
2467
+ * Returns computed views (i.e. views with predicates computed)
2468
+ *
2469
+ * @param projectId - project id, if not specified - uses the default project
2470
+ */
2471
+ computedViews(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<ComputedView[]>;
2472
+ /**
2473
+ * Layouts all views (ignoring any manual snapshots)
2474
+ *
2475
+ * @param projectId - project id, if not specified - uses the default project
2476
+ */
2477
+ layoutAllViews(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<GraphvizOut[]>;
2478
+ /**
2479
+ * Layouts a view.
2480
+ * If layoutType is 'manual' - applies manual layout if any.
2481
+ * If layoutType is 'auto' - returns latest version with drifts from manual layout if any
2482
+ * If not specified - returns latest layout as is
2483
+ *
2484
+ * If view not found in model, but there is a snapshot - it will be returned (with empty DOT)
2485
+ */
2486
+ layoutView(params: LayoutViewParams): Promise<GraphvizOut | null>;
2487
+ /**
2488
+ * Returns diagrams.
2489
+ * If diagram has manual layout, it will be used.
2490
+ * @param projectId - project id, if not specified - uses the default project
2491
+ */
2492
+ diagrams(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<Array<DiagramView>>;
2493
+ /**
2494
+ * Returns all layouted views as Graphviz output (i.e. views with layout computed)
2495
+ * @param projectId - project id, if not specified - uses the default project
2496
+ */
2497
+ viewsAsGraphvizOut(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<Array<GraphvizSvgOut>>;
2498
+ /**
2499
+ * Open view in the preview panel.
2500
+ * (works only if running as a vscode extension)
2501
+ *
2502
+ * @param projectId - project id, if not specified - uses the default project
2503
+ */
2504
+ openView(viewId: ViewId, projectId?: ProjectId | undefined): Promise<void>;
2505
+ /**
2506
+ * Computes and layouts an adhoc view (not defined in the model)
2507
+ *
2508
+ * @param projectId - project id, if not specified - uses the default project
2509
+ */
2510
+ adhocView(predicates: AdhocViewPredicate[], projectId?: ProjectId | undefined): Promise<LayoutedView>;
2558
2511
  } //#endregion
2559
- //#region src/filesystem/LikeC4FileSystem.d.ts
2512
+ //#region src/index.d.ts
2560
2513
  //#endregion
2561
2514
  //#region src/model/parser/Base.d.ts
2515
+ type ParserLevel = 'base' | 'model' | 'deployment' | 'fqnref' | 'relation' | 'views' | 'globals' | 'imports' | 'specification';
2562
2516
  declare class BaseParser {
2563
2517
  readonly services: LikeC4Services;
2564
2518
  readonly doc: ParsedLikeC4LangiumDocument;
2519
+ readonly project: Project;
2565
2520
  isValid: IsValidFn;
2566
- constructor(services: LikeC4Services, doc: ParsedLikeC4LangiumDocument);
2567
- get project(): Project;
2521
+ constructor(services: LikeC4Services, doc: ParsedLikeC4LangiumDocument, project: Project);
2522
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: ParserLevel): void;
2523
+ tryParse<N extends AstNode, T>(level: ParserLevel, node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2524
+ tryMap<N extends AstNode, T>(level: ParserLevel, iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2568
2525
  resolveFqn(node: FqnReferenceable): c4.Fqn;
2569
2526
  getAstNodePath(node: AstNode): string;
2570
2527
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -2577,11 +2534,11 @@ declare class BaseParser {
2577
2534
  parseTags<E extends {
2578
2535
  tags?: Tags;
2579
2536
  }>(withTags?: E): c4.NonEmptyArray<c4.Tag> | null;
2580
- convertLinks(source?: LinkProperty['$container']): c4.Link[] | undefined;
2581
- parseLinks(source?: LinkProperty['$container']): c4.Link[] | undefined;
2537
+ convertLinks(source?: LinkProperty['$container']): c4.NonEmptyArray<c4.Link> | undefined;
2538
+ parseLinks(source?: LinkProperty['$container']): c4.NonEmptyArray<c4.Link> | undefined;
2582
2539
  parseIconProperty(prop: IconProperty | undefined): c4.IconUrl | undefined;
2583
2540
  parseImageAlias(value: string): string | undefined;
2584
- parseColorLiteral(astNode: ColorLiteral): c4.ColorLiteral | undefined;
2541
+ parseColorLiteral(astNode: ColorLiteral$1): c4.ColorLiteral | undefined;
2585
2542
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2586
2543
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2587
2544
  /**
@@ -2612,79 +2569,82 @@ declare class BaseParser {
2612
2569
  declare const DocumentParserFromMixins: {
2613
2570
  new (...args: any[]): {
2614
2571
  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[];
2572
+ parseAndStoreGlobalPredicateGroupOrDynamic(astRule: GlobalPredicateGroup | GlobalDynamicPredicateGroup, id: ProjectId, c4Globals: ParsedAstGlobals): void;
2573
+ parseGlobalPredicateGroup(astRule: GlobalPredicateGroup): ProjectId[];
2574
+ parseGlobalDynamicPredicateGroup(astRule: GlobalDynamicPredicateGroup): ProjectId[];
2575
+ parseGlobalStyleOrGroup(astRule: GlobalStyle | GlobalStyleGroup): ProjectId[];
2619
2576
  parseViews(): void;
2620
2577
  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;
2578
+ parseElementViewRule(astRule: ViewRule): ProjectId;
2579
+ parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId;
2580
+ parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId;
2624
2581
  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;
2582
+ parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId;
2583
+ parseViewRuleRank(astRule: ViewRuleRank): ProjectId;
2584
+ parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId;
2585
+ parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId;
2629
2586
  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", {
2587
+ parseDynamicViewRule(astRule: DynamicViewRule): ProjectId;
2588
+ parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId;
2589
+ parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId;
2590
+ parseDynamicStep(node: DynamicViewStep): ProjectId | ProjectId;
2591
+ recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId, target: ProjectId]>): ProjectId[];
2592
+ parseDynamicStepSingle(node: DynamicStepSingle): ProjectId;
2593
+ parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId, "source", {
2637
2594
  requireExactProps: true;
2638
2595
  }>>;
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;
2596
+ parsePredicate(astNode: ExpressionV2): ProjectId;
2597
+ parseElementPredicate(astNode: FqnExprOrWith): ProjectId;
2598
+ parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId;
2599
+ parseElementExpression(astNode: FqnExpr$2): ProjectId;
2600
+ parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId;
2601
+ parseElementPredicateWith(astNode: FqnExprWith): ProjectId;
2602
+ parseRelationPredicate(astNode: RelationExprOrWith): ProjectId;
2603
+ parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId;
2604
+ parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId;
2605
+ parseRelationPredicateWith(astNode: RelationExprWith): ProjectId;
2606
+ parseRelationExpression(astNode: RelationExpr$1): ProjectId;
2607
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
2608
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
2609
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2610
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2611
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2612
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2613
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2614
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2615
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2616
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2617
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2618
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2619
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2620
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2621
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2622
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2623
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
2667
2624
  isValid: IsValidFn;
2668
2625
  readonly services: LikeC4Services;
2669
2626
  readonly doc: ParsedLikeC4LangiumDocument;
2670
- get project(): Project;
2671
- resolveFqn(node: FqnReferenceable): ProjectId$1;
2627
+ readonly project: Project;
2628
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2629
+ 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;
2630
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2631
+ resolveFqn(node: FqnReferenceable): ProjectId;
2672
2632
  getAstNodePath(node: AstNode): string;
2673
2633
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2674
2634
  [key: string]: string | string[];
2675
2635
  } | undefined;
2676
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2636
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2677
2637
  convertTags<E extends {
2678
2638
  tags?: Tags;
2679
2639
  }>(withTags?: E | undefined): any;
2680
2640
  parseTags<E extends {
2681
2641
  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;
2642
+ }>(withTags?: E): ProjectId<ProjectId> | null;
2643
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2644
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2645
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2686
2646
  parseImageAlias(value: string): string | undefined;
2687
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
2647
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2688
2648
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2689
2649
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2690
2650
  parseBaseProps(props: {
@@ -2699,92 +2659,95 @@ declare const DocumentParserFromMixins: {
2699
2659
  technology?: string | undefined;
2700
2660
  }): {
2701
2661
  title?: string;
2702
- summary?: ProjectId$1;
2703
- description?: ProjectId$1;
2662
+ summary?: ProjectId;
2663
+ description?: ProjectId;
2704
2664
  technology?: string;
2705
2665
  };
2706
2666
  parseDeploymentView(astNode: DeploymentView): ParsedAstDeploymentView;
2707
- parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId$1;
2708
- parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId$1;
2709
- parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId$1;
2667
+ parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId;
2668
+ parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId;
2669
+ parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId;
2710
2670
  parseDeployment(): void;
2711
2671
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
2712
2672
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
2713
2673
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
2714
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
2674
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
2715
2675
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
2716
2676
  };
2717
2677
  } & {
2718
2678
  new (...args: any[]): {
2719
2679
  parseViews(): void;
2720
2680
  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;
2681
+ parseElementViewRule(astRule: ViewRule): ProjectId;
2682
+ parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId;
2683
+ parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId;
2724
2684
  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;
2685
+ parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId;
2686
+ parseViewRuleRank(astRule: ViewRuleRank): ProjectId;
2687
+ parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId;
2688
+ parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId;
2729
2689
  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", {
2690
+ parseDynamicViewRule(astRule: DynamicViewRule): ProjectId;
2691
+ parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId;
2692
+ parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId;
2693
+ parseDynamicStep(node: DynamicViewStep): ProjectId | ProjectId;
2694
+ recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId, target: ProjectId]>): ProjectId[];
2695
+ parseDynamicStepSingle(node: DynamicStepSingle): ProjectId;
2696
+ parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId, "source", {
2737
2697
  requireExactProps: true;
2738
2698
  }>>;
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;
2699
+ parsePredicate(astNode: ExpressionV2): ProjectId;
2700
+ parseElementPredicate(astNode: FqnExprOrWith): ProjectId;
2701
+ parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId;
2702
+ parseElementExpression(astNode: FqnExpr$2): ProjectId;
2703
+ parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId;
2704
+ parseElementPredicateWith(astNode: FqnExprWith): ProjectId;
2705
+ parseRelationPredicate(astNode: RelationExprOrWith): ProjectId;
2706
+ parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId;
2707
+ parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId;
2708
+ parseRelationPredicateWith(astNode: RelationExprWith): ProjectId;
2709
+ parseRelationExpression(astNode: RelationExpr$1): ProjectId;
2710
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
2711
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
2712
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2713
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2714
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2715
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2716
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2717
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2718
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2719
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2720
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2721
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2722
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2723
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2724
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2725
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2726
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
2767
2727
  isValid: IsValidFn;
2768
2728
  readonly services: LikeC4Services;
2769
2729
  readonly doc: ParsedLikeC4LangiumDocument;
2770
- get project(): Project;
2771
- resolveFqn(node: FqnReferenceable): ProjectId$1;
2730
+ readonly project: Project;
2731
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2732
+ 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;
2733
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2734
+ resolveFqn(node: FqnReferenceable): ProjectId;
2772
2735
  getAstNodePath(node: AstNode): string;
2773
2736
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2774
2737
  [key: string]: string | string[];
2775
2738
  } | undefined;
2776
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2739
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2777
2740
  convertTags<E extends {
2778
2741
  tags?: Tags;
2779
2742
  }>(withTags?: E | undefined): any;
2780
2743
  parseTags<E extends {
2781
2744
  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;
2745
+ }>(withTags?: E): ProjectId<ProjectId> | null;
2746
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2747
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2748
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2786
2749
  parseImageAlias(value: string): string | undefined;
2787
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
2750
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2788
2751
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2789
2752
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2790
2753
  parseBaseProps(props: {
@@ -2799,19 +2762,19 @@ declare const DocumentParserFromMixins: {
2799
2762
  technology?: string | undefined;
2800
2763
  }): {
2801
2764
  title?: string;
2802
- summary?: ProjectId$1;
2803
- description?: ProjectId$1;
2765
+ summary?: ProjectId;
2766
+ description?: ProjectId;
2804
2767
  technology?: string;
2805
2768
  };
2806
2769
  parseDeploymentView(astNode: DeploymentView): ParsedAstDeploymentView;
2807
- parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId$1;
2808
- parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId$1;
2809
- parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId$1;
2770
+ parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId;
2771
+ parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId;
2772
+ parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId;
2810
2773
  parseDeployment(): void;
2811
2774
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
2812
2775
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
2813
2776
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
2814
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
2777
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
2815
2778
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
2816
2779
  };
2817
2780
  } & {
@@ -2822,24 +2785,27 @@ declare const DocumentParserFromMixins: {
2822
2785
  isValid: IsValidFn;
2823
2786
  readonly services: LikeC4Services;
2824
2787
  readonly doc: ParsedLikeC4LangiumDocument;
2825
- get project(): Project;
2826
- resolveFqn(node: FqnReferenceable): ProjectId$1;
2788
+ readonly project: Project;
2789
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2790
+ 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;
2791
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2792
+ resolveFqn(node: FqnReferenceable): ProjectId;
2827
2793
  getAstNodePath(node: AstNode): string;
2828
2794
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2829
2795
  [key: string]: string | string[];
2830
2796
  } | undefined;
2831
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2797
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2832
2798
  convertTags<E extends {
2833
2799
  tags?: Tags;
2834
2800
  }>(withTags?: E | undefined): any;
2835
2801
  parseTags<E extends {
2836
2802
  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;
2803
+ }>(withTags?: E): ProjectId<ProjectId> | null;
2804
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2805
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2806
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2841
2807
  parseImageAlias(value: string): string | undefined;
2842
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
2808
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2843
2809
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2844
2810
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2845
2811
  parseBaseProps(props: {
@@ -2854,62 +2820,65 @@ declare const DocumentParserFromMixins: {
2854
2820
  technology?: string | undefined;
2855
2821
  }): {
2856
2822
  title?: string;
2857
- summary?: ProjectId$1;
2858
- description?: ProjectId$1;
2823
+ summary?: ProjectId;
2824
+ description?: ProjectId;
2859
2825
  technology?: string;
2860
2826
  };
2861
2827
  };
2862
2828
  } & {
2863
2829
  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;
2830
+ parsePredicate(astNode: ExpressionV2): ProjectId;
2831
+ parseElementPredicate(astNode: FqnExprOrWith): ProjectId;
2832
+ parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId;
2833
+ parseElementExpression(astNode: FqnExpr$2): ProjectId;
2834
+ parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId;
2835
+ parseElementPredicateWith(astNode: FqnExprWith): ProjectId;
2836
+ parseRelationPredicate(astNode: RelationExprOrWith): ProjectId;
2837
+ parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId;
2838
+ parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId;
2839
+ parseRelationPredicateWith(astNode: RelationExprWith): ProjectId;
2840
+ parseRelationExpression(astNode: RelationExpr$1): ProjectId;
2841
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
2842
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
2843
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2844
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2845
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2846
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2847
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2848
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2849
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2850
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2851
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2852
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2853
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2854
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2855
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2856
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2857
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
2892
2858
  isValid: IsValidFn;
2893
2859
  readonly services: LikeC4Services;
2894
2860
  readonly doc: ParsedLikeC4LangiumDocument;
2895
- get project(): Project;
2896
- resolveFqn(node: FqnReferenceable): ProjectId$1;
2861
+ readonly project: Project;
2862
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2863
+ 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;
2864
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2865
+ resolveFqn(node: FqnReferenceable): ProjectId;
2897
2866
  getAstNodePath(node: AstNode): string;
2898
2867
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2899
2868
  [key: string]: string | string[];
2900
2869
  } | undefined;
2901
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2870
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2902
2871
  convertTags<E extends {
2903
2872
  tags?: Tags;
2904
2873
  }>(withTags?: E | undefined): any;
2905
2874
  parseTags<E extends {
2906
2875
  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;
2876
+ }>(withTags?: E): ProjectId<ProjectId> | null;
2877
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2878
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2879
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2911
2880
  parseImageAlias(value: string): string | undefined;
2912
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
2881
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2913
2882
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2914
2883
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2915
2884
  parseBaseProps(props: {
@@ -2924,55 +2893,58 @@ declare const DocumentParserFromMixins: {
2924
2893
  technology?: string | undefined;
2925
2894
  }): {
2926
2895
  title?: string;
2927
- summary?: ProjectId$1;
2928
- description?: ProjectId$1;
2896
+ summary?: ProjectId;
2897
+ description?: ProjectId;
2929
2898
  technology?: string;
2930
2899
  };
2931
2900
  };
2932
2901
  } & {
2933
2902
  new (...args: any[]): {
2934
2903
  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;
2904
+ parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId;
2905
+ parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId;
2906
+ parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId;
2907
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
2908
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
2909
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2910
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2911
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2912
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2913
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2914
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2915
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2916
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2917
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2918
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2919
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2920
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2921
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2922
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2923
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
2955
2924
  isValid: IsValidFn;
2956
2925
  readonly services: LikeC4Services;
2957
2926
  readonly doc: ParsedLikeC4LangiumDocument;
2958
- get project(): Project;
2959
- resolveFqn(node: FqnReferenceable): ProjectId$1;
2927
+ readonly project: Project;
2928
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2929
+ 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;
2930
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2931
+ resolveFqn(node: FqnReferenceable): ProjectId;
2960
2932
  getAstNodePath(node: AstNode): string;
2961
2933
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2962
2934
  [key: string]: string | string[];
2963
2935
  } | undefined;
2964
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2936
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2965
2937
  convertTags<E extends {
2966
2938
  tags?: Tags;
2967
2939
  }>(withTags?: E | undefined): any;
2968
2940
  parseTags<E extends {
2969
2941
  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;
2942
+ }>(withTags?: E): ProjectId<ProjectId> | null;
2943
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2944
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2945
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2974
2946
  parseImageAlias(value: string): string | undefined;
2975
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
2947
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2976
2948
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2977
2949
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2978
2950
  parseBaseProps(props: {
@@ -2987,15 +2959,15 @@ declare const DocumentParserFromMixins: {
2987
2959
  technology?: string | undefined;
2988
2960
  }): {
2989
2961
  title?: string;
2990
- summary?: ProjectId$1;
2991
- description?: ProjectId$1;
2962
+ summary?: ProjectId;
2963
+ description?: ProjectId;
2992
2964
  technology?: string;
2993
2965
  };
2994
2966
  parseDeployment(): void;
2995
2967
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
2996
2968
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
2997
2969
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
2998
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
2970
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
2999
2971
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
3000
2972
  };
3001
2973
  } & {
@@ -3004,46 +2976,49 @@ declare const DocumentParserFromMixins: {
3004
2976
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
3005
2977
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
3006
2978
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
3007
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
2979
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
3008
2980
  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;
2981
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
2982
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
2983
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2984
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2985
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2986
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2987
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2988
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2989
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2990
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2991
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2992
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2993
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2994
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2995
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2996
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2997
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3026
2998
  isValid: IsValidFn;
3027
2999
  readonly services: LikeC4Services;
3028
3000
  readonly doc: ParsedLikeC4LangiumDocument;
3029
- get project(): Project;
3030
- resolveFqn(node: FqnReferenceable): ProjectId$1;
3001
+ readonly project: Project;
3002
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3003
+ 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;
3004
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3005
+ resolveFqn(node: FqnReferenceable): ProjectId;
3031
3006
  getAstNodePath(node: AstNode): string;
3032
3007
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3033
3008
  [key: string]: string | string[];
3034
3009
  } | undefined;
3035
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3010
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3036
3011
  convertTags<E extends {
3037
3012
  tags?: Tags;
3038
3013
  }>(withTags?: E | undefined): any;
3039
3014
  parseTags<E extends {
3040
3015
  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;
3016
+ }>(withTags?: E): ProjectId<ProjectId> | null;
3017
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3018
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3019
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3045
3020
  parseImageAlias(value: string): string | undefined;
3046
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
3021
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3047
3022
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3048
3023
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3049
3024
  parseBaseProps(props: {
@@ -3058,8 +3033,8 @@ declare const DocumentParserFromMixins: {
3058
3033
  technology?: string | undefined;
3059
3034
  }): {
3060
3035
  title?: string;
3061
- summary?: ProjectId$1;
3062
- description?: ProjectId$1;
3036
+ summary?: ProjectId;
3037
+ description?: ProjectId;
3063
3038
  technology?: string;
3064
3039
  };
3065
3040
  };
@@ -3069,46 +3044,49 @@ declare const DocumentParserFromMixins: {
3069
3044
  parseElement(astNode: Element): ParsedAstElement;
3070
3045
  parseExtendElement(astNode: ExtendElement): ParsedAstExtend | null;
3071
3046
  parseExtendRelation(astNode: ExtendRelation): ParsedAstExtendRelation | null;
3072
- _resolveRelationSource(node: Relation): ProjectId$1 | ProjectId$1;
3047
+ _resolveRelationSource(node: Relation): ProjectId | ProjectId;
3073
3048
  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;
3049
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
3050
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
3051
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
3052
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
3053
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
3054
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
3055
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
3056
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
3057
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
3058
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
3059
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
3060
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
3061
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
3062
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
3063
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
3064
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
3065
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3091
3066
  isValid: IsValidFn;
3092
3067
  readonly services: LikeC4Services;
3093
3068
  readonly doc: ParsedLikeC4LangiumDocument;
3094
- get project(): Project;
3095
- resolveFqn(node: FqnReferenceable): ProjectId$1;
3069
+ readonly project: Project;
3070
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3071
+ 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;
3072
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3073
+ resolveFqn(node: FqnReferenceable): ProjectId;
3096
3074
  getAstNodePath(node: AstNode): string;
3097
3075
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3098
3076
  [key: string]: string | string[];
3099
3077
  } | undefined;
3100
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3078
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3101
3079
  convertTags<E extends {
3102
3080
  tags?: Tags;
3103
3081
  }>(withTags?: E | undefined): any;
3104
3082
  parseTags<E extends {
3105
3083
  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;
3084
+ }>(withTags?: E): ProjectId<ProjectId> | null;
3085
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3086
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3087
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3110
3088
  parseImageAlias(value: string): string | undefined;
3111
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
3089
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3112
3090
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3113
3091
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3114
3092
  parseBaseProps(props: {
@@ -3123,8 +3101,8 @@ declare const DocumentParserFromMixins: {
3123
3101
  technology?: string | undefined;
3124
3102
  }): {
3125
3103
  title?: string;
3126
- summary?: ProjectId$1;
3127
- description?: ProjectId$1;
3104
+ summary?: ProjectId;
3105
+ description?: ProjectId;
3128
3106
  technology?: string;
3129
3107
  };
3130
3108
  };
@@ -3134,24 +3112,27 @@ declare const DocumentParserFromMixins: {
3134
3112
  isValid: IsValidFn;
3135
3113
  readonly services: LikeC4Services;
3136
3114
  readonly doc: ParsedLikeC4LangiumDocument;
3137
- get project(): Project;
3138
- resolveFqn(node: FqnReferenceable): ProjectId$1;
3115
+ readonly project: Project;
3116
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3117
+ 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;
3118
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3119
+ resolveFqn(node: FqnReferenceable): ProjectId;
3139
3120
  getAstNodePath(node: AstNode): string;
3140
3121
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3141
3122
  [key: string]: string | string[];
3142
3123
  } | undefined;
3143
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3124
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3144
3125
  convertTags<E extends {
3145
3126
  tags?: Tags;
3146
3127
  }>(withTags?: E | undefined): any;
3147
3128
  parseTags<E extends {
3148
3129
  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;
3130
+ }>(withTags?: E): ProjectId<ProjectId> | null;
3131
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3132
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3133
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3153
3134
  parseImageAlias(value: string): string | undefined;
3154
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
3135
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3155
3136
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3156
3137
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3157
3138
  parseBaseProps(props: {
@@ -3166,51 +3147,54 @@ declare const DocumentParserFromMixins: {
3166
3147
  technology?: string | undefined;
3167
3148
  }): {
3168
3149
  title?: string;
3169
- summary?: ProjectId$1;
3170
- description?: ProjectId$1;
3150
+ summary?: ProjectId;
3151
+ description?: ProjectId;
3171
3152
  technology?: string;
3172
3153
  };
3173
3154
  };
3174
3155
  } & {
3175
3156
  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;
3157
+ parseFqnRef(astNode: FqnRef$2): ProjectId;
3158
+ parseExpressionV2(astNode: ExpressionV2): ProjectId;
3159
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
3160
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId;
3161
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
3162
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
3163
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId;
3164
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
3165
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
3166
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
3167
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId;
3168
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
3169
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
3170
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
3171
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId;
3172
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
3173
+ wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3193
3174
  isValid: IsValidFn;
3194
3175
  readonly services: LikeC4Services;
3195
3176
  readonly doc: ParsedLikeC4LangiumDocument;
3196
- get project(): Project;
3197
- resolveFqn(node: FqnReferenceable): ProjectId$1;
3177
+ readonly project: Project;
3178
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3179
+ 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;
3180
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3181
+ resolveFqn(node: FqnReferenceable): ProjectId;
3198
3182
  getAstNodePath(node: AstNode): string;
3199
3183
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3200
3184
  [key: string]: string | string[];
3201
3185
  } | undefined;
3202
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3186
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3203
3187
  convertTags<E extends {
3204
3188
  tags?: Tags;
3205
3189
  }>(withTags?: E | undefined): any;
3206
3190
  parseTags<E extends {
3207
3191
  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;
3192
+ }>(withTags?: E): ProjectId<ProjectId> | null;
3193
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3194
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3195
+ parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3212
3196
  parseImageAlias(value: string): string | undefined;
3213
- parseColorLiteral(astNode: ColorLiteral): ProjectId$1 | undefined;
3197
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3214
3198
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3215
3199
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3216
3200
  parseBaseProps(props: {
@@ -3225,8 +3209,8 @@ declare const DocumentParserFromMixins: {
3225
3209
  technology?: string | undefined;
3226
3210
  }): {
3227
3211
  title?: string;
3228
- summary?: ProjectId$1;
3229
- description?: ProjectId$1;
3212
+ summary?: ProjectId;
3213
+ description?: ProjectId;
3230
3214
  technology?: string;
3231
3215
  };
3232
3216
  };
@@ -3236,7 +3220,7 @@ declare class LikeC4ModelParser {
3236
3220
  private services;
3237
3221
  protected cachedParsers: any;
3238
3222
  constructor(services: LikeC4Services);
3239
- documents(projectId: ProjectId$1): Stream<ParsedLikeC4LangiumDocument>;
3223
+ documents(projectId: ProjectId): Stream<ParsedLikeC4LangiumDocument>;
3240
3224
  parse(doc: LangiumDocument): ParsedLikeC4LangiumDocument;
3241
3225
  forDocument(doc: LangiumDocument): DocumentParser;
3242
3226
  private createParser;
@@ -3245,6 +3229,23 @@ declare class LikeC4ModelParser {
3245
3229
  declare class LikeC4ValueConverter extends DefaultValueConverter {
3246
3230
  protected runConverter(rule: any, input: string, cstNode: CstNode): ValueType;
3247
3231
  } //#endregion
3232
+ //#region src/model-change/ModelChanges.d.ts
3233
+ declare class LikeC4ModelChanges {
3234
+ private services;
3235
+ private locator;
3236
+ constructor(services: LikeC4Services);
3237
+ applyChange(changeView: ChangeView.Params): Promise<ChangeView.Res>;
3238
+ protected convertToTextEdit({
3239
+ lookup,
3240
+ change
3241
+ }: {
3242
+ lookup: ViewLocateResult;
3243
+ change: Exclude<ViewChange, ViewChange.SaveViewSnapshot | ViewChange.ResetManualLayout>;
3244
+ }): {
3245
+ modifiedRange: Range;
3246
+ edits: TextEdit[];
3247
+ };
3248
+ } //#endregion
3248
3249
  //#region src/LikeC4LanguageServices.d.ts
3249
3250
  interface LikeC4LanguageServices {
3250
3251
  readonly views: LikeC4Views;
@@ -3252,11 +3253,12 @@ interface LikeC4LanguageServices {
3252
3253
  readonly workspaceUri: URI;
3253
3254
  readonly projectsManager: ProjectsManager;
3254
3255
  readonly editor: LikeC4ModelChanges;
3256
+ readonly mcpServer: LikeC4MCPServer | null;
3255
3257
  /**
3256
3258
  * Returns all projects with relevant documents
3257
3259
  */
3258
3260
  projects(): NonEmptyArray<{
3259
- id: ProjectId$1;
3261
+ id: ProjectId;
3260
3262
  folder: URI;
3261
3263
  title: string;
3262
3264
  documents: ReadonlyArray<URI>;
@@ -3265,8 +3267,8 @@ interface LikeC4LanguageServices {
3265
3267
  /**
3266
3268
  * Returns project by ID, returns default project if no ID is specified
3267
3269
  */
3268
- project(projectId?: ProjectId$1): {
3269
- id: ProjectId$1;
3270
+ project(projectId?: ProjectId): {
3271
+ id: ProjectId;
3270
3272
  folder: URI;
3271
3273
  title: string;
3272
3274
  documents: ReadonlyArray<URI>;
@@ -3283,21 +3285,21 @@ interface LikeC4LanguageServices {
3283
3285
  *
3284
3286
  * If no {@link project} is specified, returns for default project
3285
3287
  */
3286
- computedModel(project?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
3288
+ computedModel(project?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
3287
3289
  /**
3288
3290
  * Returns {@link LikeC4Model} of the specified project, with layouted views {@link LayoutedView}
3289
3291
  * Ready for rendering. Applies manual layouts if available.
3290
3292
  *
3291
3293
  * If no {@link project} is specified, returns for default project
3292
3294
  */
3293
- layoutedModel(project?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownLayouted>>;
3295
+ layoutedModel(project?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownLayouted>>;
3294
3296
  /**
3295
3297
  * Returns diagrams (i.e. layouted views {@link LayoutedView}) for the specified project
3296
3298
  * Applies manual layouts if available.
3297
3299
  *
3298
3300
  * If no {@link project} is specified, returns diagrams for default project
3299
3301
  */
3300
- diagrams(project?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LayoutedView$1[]>;
3302
+ diagrams(project?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LayoutedView[]>;
3301
3303
  getErrors(): Array<{
3302
3304
  message: string;
3303
3305
  line: number;
@@ -3309,9 +3311,222 @@ interface LikeC4LanguageServices {
3309
3311
  */
3310
3312
  locate(params: Locate.Params): Locate.Res;
3311
3313
  dispose(): Promise<void>;
3314
+ } //#endregion
3315
+ //#region src/lsp/CodeLensProvider.d.ts
3316
+ declare class LikeC4CodeLensProvider implements CodeLensProvider {
3317
+ private services;
3318
+ constructor(services: LikeC4Services);
3319
+ provideCodeLens(doc: LangiumDocument, _params: CodeLensParams, cancelToken?: CancellationToken$1): Promise<CodeLens[] | undefined>;
3320
+ } //#endregion
3321
+ //#region src/lsp/CompletionProvider.d.ts
3322
+ declare class LikeC4CompletionProvider extends DefaultCompletionProvider {
3323
+ protected services: LikeC4Services;
3324
+ constructor(services: LikeC4Services);
3325
+ readonly completionOptions: {
3326
+ triggerCharacters: string[];
3327
+ };
3328
+ protected completionFor(context: CompletionContext, next: NextFeature, acceptor: CompletionAcceptor): MaybePromise<void>;
3329
+ protected completionForKeyword(context: CompletionContext, keyword: Keyword, acceptor: CompletionAcceptor): MaybePromise<void>;
3330
+ protected completionForImportedProject(context: CompletionContext, acceptor: CompletionAcceptor): void;
3331
+ } //#endregion
3332
+ //#region src/lsp/DocumentHighlightProvider.d.ts
3333
+ declare class LikeC4DocumentHighlightProvider extends DefaultDocumentHighlightProvider {
3334
+ /**
3335
+ * Override this method to determine the highlight kind of the given reference.
3336
+ */
3337
+ protected createDocumentHighlight(reference: ReferenceDescription): DocumentHighlight;
3338
+ } //#endregion
3339
+ //#region src/lsp/DocumentLinkProvider.d.ts
3340
+ declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
3341
+ private services;
3342
+ constructor(services: LikeC4Services);
3343
+ getDocumentLinks(doc: LangiumDocument, _params: DocumentLinkParams, _cancelToken?: CancellationToken$1): Promise<DocumentLink[]>;
3344
+ resolveLink(doc: LangiumDocument, link: string): string;
3345
+ relativeLink(doc: LangiumDocument, link: string): string | null;
3346
+ } //#endregion
3347
+ //#region src/lsp/DocumentSymbolProvider.d.ts
3348
+ declare class LikeC4DocumentSymbolProvider implements DocumentSymbolProvider {
3349
+ private services;
3350
+ protected readonly nodeKindProvider: NodeKindProvider;
3351
+ protected readonly nameProvider: LikeC4NameProvider;
3352
+ protected readonly parser: LikeC4ModelParser;
3353
+ protected readonly locator: LikeC4ModelLocator;
3354
+ constructor(services: LikeC4Services);
3355
+ getSymbols(doc: LangiumDocument, _params: DocumentSymbolParams, cancelToken?: CancellationToken$1): Promise<DocumentSymbol[]>;
3356
+ protected getLikec4LibSymbol(astLib: LikeC4Lib): DocumentSymbol[];
3357
+ protected getSpecSymbol(astSpec: SpecificationRule): DocumentSymbol[];
3358
+ protected getModelSymbol(astModel: Model): DocumentSymbol[];
3359
+ protected getDeploymentModelSymbol(astModel: ModelDeployments): DocumentSymbol[];
3360
+ protected getElementsSymbol(el: Element | Relation | ExtendElement): DocumentSymbol[];
3361
+ protected getExtendElementSymbol(astElement: ExtendElement): DocumentSymbol[];
3362
+ protected getElementSymbol(astElement: Element): DocumentSymbol[];
3363
+ protected getModelViewsSymbol(astViews: ModelViews): DocumentSymbol[];
3364
+ protected getKindSymbol(astKind: SpecificationElementKind | SpecificationRelationshipKind): DocumentSymbol | null;
3365
+ protected getTagSymbol(astTag: SpecificationTag): DocumentSymbol | null;
3366
+ protected getLibIconSymbol(astTag: LibIcon): DocumentSymbol | null;
3367
+ protected getViewSymbol(astView: LikeC4View): DocumentSymbol[];
3368
+ protected getDeploymentElementSymbol(el: DeploymentElement | DeploymentRelation | ExtendDeployment): DocumentSymbol[];
3369
+ protected getDeploymentNodeSymbol(astElement: DeploymentNode): DocumentSymbol[];
3370
+ protected getDeployedInstanceSymbol(astElement: DeployedInstance): DocumentSymbol[];
3371
+ protected symbolKind(node: AstNode): SymbolKind;
3372
+ } //#endregion
3373
+ //#region src/lsp/HoverProvider.d.ts
3374
+ /**
3375
+ * Provides hover content for LikeC4 AST nodes (elements, tags, relations, etc.)
3376
+ * in the language server. Resolves model references and formats markdown hover text.
3377
+ */
3378
+ declare class LikeC4HoverProvider extends AstNodeHoverProvider {
3379
+ protected services: LikeC4Services;
3380
+ private parser;
3381
+ private locator;
3382
+ /** @param services - LikeC4 language services (parser, locator, etc.) */
3383
+ constructor(services: LikeC4Services);
3384
+ protected getAstNodeHoverContent(node: AstNode): MaybePromise<Hover | undefined>;
3385
+ /**
3386
+ * Builds hover content for an element node (title, summary, model details and view links).
3387
+ * @param node - The element AST node to generate hover content for.
3388
+ * @returns Hover information with markdown content, or undefined if element not found.
3389
+ */
3390
+ protected getElementHover(node: Element): MaybePromise<Hover | undefined>;
3391
+ /**
3392
+ * Builds markdown hover content for an element model (relationship counts and links to views).
3393
+ * @param model - The element model containing relationship and view information.
3394
+ * @param projectId - The project identifier for constructing view links.
3395
+ * @returns Markdown string with model details, or undefined if no details available.
3396
+ */
3397
+ protected getElementModelHover(model: ElementModel, projectId: ProjectId): string | undefined;
3398
+ /**
3399
+ * Builds hover content for a deployment node (id, title, kind, summary).
3400
+ * @param node - The deployment node AST node to generate hover content for.
3401
+ * @returns Hover information with markdown content.
3402
+ */
3403
+ protected getDeploymentNodeHover(node: DeploymentNode): MaybePromise<Hover | undefined>;
3404
+ /**
3405
+ * Builds hover content for a deployed instance (instance id, element ref, title and kind).
3406
+ * @param node - The deployed instance AST node to generate hover content for.
3407
+ * @returns Hover information with markdown content showing instance details.
3408
+ */
3409
+ protected getDeployedInstanceHover(node: DeployedInstance): MaybePromise<Hover | undefined>;
3410
+ } //#endregion
3411
+ //#region src/lsp/CodeActionProvider.d.ts
3412
+ type CommandOrCodeAction = Command | CodeAction;
3413
+ declare class LikeC4CodeActionProvider implements CodeActionProvider {
3414
+ /**
3415
+ * Handle a code action request.
3416
+ *
3417
+ * @throws `OperationCancelled` if cancellation is detected during execution
3418
+ * @throws `ResponseError` if an error is detected that should be sent as response to the client
3419
+ */
3420
+ getCodeActions(document: LangiumDocument, params: CodeActionParams): CommandOrCodeAction[] | undefined;
3421
+ } //#endregion
3422
+ //#region src/lsp/SemanticTokenProvider.d.ts
3423
+ declare class LikeC4SemanticTokenProvider extends AbstractSemanticTokenProvider {
3424
+ protected services: LikeC4Services;
3425
+ private rules;
3426
+ constructor(services: LikeC4Services);
3427
+ protected initRules(): void;
3428
+ semanticHighlight(document: LangiumDocument, params: SemanticTokensParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens>;
3429
+ semanticHighlightRange(document: LangiumDocument, params: SemanticTokensRangeParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens>;
3430
+ semanticHighlightDelta(document: LangiumDocument, params: SemanticTokensDeltaParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens | SemanticTokensDelta>;
3431
+ protected ensureState(document: LangiumDocument, cancelToken: CancellationToken$1): Promise<void>;
3432
+ protected highlightElement(node: AstNode, acceptor: SemanticTokenAcceptor): void | undefined | 'prune';
3433
+ private highlightNameAndKind;
3434
+ private highlightView;
3435
+ private mark;
3436
+ } //#endregion
3437
+ //#region src/Rpc.d.ts
3438
+ declare class Rpc extends ADisposable {
3439
+ private services;
3440
+ constructor(services: LikeC4Services);
3441
+ init: () => void;
3442
+ openView(params: DidRequestOpenViewNotification.Params): Promise<void>;
3443
+ } //#endregion
3444
+ //#region src/shared/NodeKindProvider.d.ts
3445
+ declare class NodeKindProvider$1 implements NodeKindProvider {
3446
+ private services;
3447
+ constructor(services: LangiumSharedServices);
3448
+ /**
3449
+ * Returns a `SymbolKind` as used by `WorkspaceSymbolProvider` or `DocumentSymbolProvider`.
3450
+ */
3451
+ getSymbolKind(node: AstNode | AstNodeDescription): SymbolKind;
3452
+ /**
3453
+ * Returns a `CompletionItemKind` as used by the `CompletionProvider`.
3454
+ */
3455
+ getCompletionItemKind(node: AstNode | AstNodeDescription): CompletionItemKind;
3456
+ } //#endregion
3457
+ //#region src/shared/WorkspaceSymbolProvider.d.ts
3458
+ declare class WorkspaceSymbolProvider extends DefaultWorkspaceSymbolProvider {} //#endregion
3459
+ //#region src/module.d.ts
3460
+ interface LikeC4AddedSharedServices {
3461
+ lsp: {
3462
+ NodeKindProvider: NodeKindProvider$1;
3463
+ WorkspaceSymbolProvider: WorkspaceSymbolProvider;
3464
+ };
3465
+ workspace: {
3466
+ Cache: WorkspaceCache<string, any>;
3467
+ ProjectsManager: ProjectsManager;
3468
+ IndexManager: IndexManager;
3469
+ LangiumDocuments: LangiumDocuments;
3470
+ WorkspaceManager: LikeC4WorkspaceManager;
3471
+ FileSystemProvider: FileSystemProvider$1;
3472
+ FileSystemWatcher: FileSystemWatcher;
3473
+ ManualLayouts: LikeC4ManualLayouts;
3474
+ };
3475
+ }
3476
+ type LikeC4SharedServices = LangiumSharedServices & LikeC4AddedSharedServices;
3477
+ /**
3478
+ * Declaration of custom services - add your own service classes here.
3479
+ */
3480
+ interface LikeC4AddedServices {
3481
+ documentation: {
3482
+ DocumentationProvider: LikeC4DocumentationProvider;
3483
+ };
3484
+ validation: {
3485
+ DocumentValidator: LikeC4DocumentValidator;
3486
+ };
3487
+ Rpc: Rpc;
3488
+ mcp: {
3489
+ Server: LikeC4MCPServer;
3490
+ ServerFactory: LikeC4MCPServerFactory;
3491
+ };
3492
+ likec4: {
3493
+ LanguageServices: LikeC4LanguageServices;
3494
+ Views: LikeC4Views;
3495
+ Layouter: QueueGraphvizLayoter;
3496
+ DeploymentsIndex: DeploymentsIndex;
3497
+ FqnIndex: FqnIndex;
3498
+ ModelParser: LikeC4ModelParser;
3499
+ ModelBuilder: LikeC4ModelBuilder;
3500
+ ModelLocator: LikeC4ModelLocator;
3501
+ ModelChanges: LikeC4ModelChanges;
3502
+ LastSeen: LastSeenArtifacts;
3503
+ };
3504
+ lsp: {
3505
+ CompletionProvider: LikeC4CompletionProvider;
3506
+ DocumentHighlightProvider: LikeC4DocumentHighlightProvider;
3507
+ DocumentSymbolProvider: LikeC4DocumentSymbolProvider;
3508
+ SemanticTokenProvider: LikeC4SemanticTokenProvider;
3509
+ HoverProvider: LikeC4HoverProvider;
3510
+ CodeLensProvider: LikeC4CodeLensProvider;
3511
+ DocumentLinkProvider: LikeC4DocumentLinkProvider;
3512
+ Formatter: LikeC4Formatter;
3513
+ CodeActionProvider: LikeC4CodeActionProvider;
3514
+ };
3515
+ references: {
3516
+ NameProvider: LikeC4NameProvider;
3517
+ ScopeComputation: LikeC4ScopeComputation;
3518
+ ScopeProvider: LikeC4ScopeProvider;
3519
+ };
3520
+ shared?: LikeC4SharedServices;
3521
+ parser: {
3522
+ ValueConverter: LikeC4ValueConverter;
3523
+ };
3312
3524
  }
3525
+ type LikeC4Services = LangiumServices & LikeC4AddedServices;
3313
3526
  /**
3314
- * Public Language Services
3527
+ * Most probably you don't need to use this function directly.
3528
+ * Use {@link createLanguageServices} instead.
3529
+ * @internal
3315
3530
  */
3316
3531
  //#endregion
3317
- export { ProjectsManager as i, LikeC4Services as n, LikeC4Views as r, LikeC4LanguageServices as t };
3532
+ export { LikeC4Views as a, LikeC4SharedServices as i, LikeC4ModelBuilder as n, ProjectsManager as o, LikeC4Services as r, LikeC4LanguageServices as t };