likec4 1.55.1 → 1.57.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 (244) hide show
  1. package/__app__/chunks/AIChat2.mjs +2 -0
  2. package/__app__/chunks/DiagramActorProvider.mjs +10 -0
  3. package/__app__/chunks/EmbedPage.mjs +1 -0
  4. package/__app__/chunks/ExportPage.mjs +2 -0
  5. package/__app__/chunks/LikeC4Diagram.mjs +19 -0
  6. package/__app__/chunks/LikeC4Styles.mjs +48 -0
  7. package/__app__/chunks/Markdown.mjs +1 -0
  8. package/__app__/chunks/NavigationPanel.mjs +1 -0
  9. package/__app__/chunks/ViewReact.mjs +1 -0
  10. package/__app__/chunks/adhoc-editor.mjs +1 -0
  11. package/__app__/chunks/aichat.mjs +1 -0
  12. package/__app__/chunks/box.mjs +1 -0
  13. package/__app__/chunks/create-style-context.mjs +1 -0
  14. package/__app__/chunks/css.mjs +1 -0
  15. package/__app__/chunks/factory.mjs +1 -0
  16. package/__app__/chunks/hooks.mjs +1 -0
  17. package/__app__/chunks/hstack.mjs +1 -0
  18. package/__app__/chunks/libs/@dagrejs/dagre.mjs +1 -0
  19. package/__app__/chunks/libs/@floating-ui/core.mjs +1 -0
  20. package/__app__/chunks/libs/@floating-ui/dom.mjs +1 -0
  21. package/__app__/chunks/libs/@floating-ui/react.mjs +1 -0
  22. package/__app__/chunks/libs/@mantine/core.mjs +41 -0
  23. package/__app__/chunks/libs/@mantine/hooks.mjs +1 -0
  24. package/__app__/chunks/libs/@nanostores/react.mjs +1 -0
  25. package/__app__/chunks/libs/@react-hookz/web.mjs +1 -0
  26. package/__app__/chunks/libs/@tabler/icons-react.mjs +358 -0
  27. package/__app__/chunks/libs/@tanstack/ai-client.mjs +2 -0
  28. package/__app__/chunks/libs/@tanstack/ai-react-ui.mjs +1 -0
  29. package/__app__/chunks/libs/@tanstack/ai-react.mjs +1 -0
  30. package/__app__/chunks/libs/@tanstack/ai.mjs +2 -0
  31. package/__app__/chunks/libs/@tanstack/history.mjs +1 -0
  32. package/__app__/chunks/libs/@tanstack/react-router.mjs +3 -0
  33. package/__app__/chunks/libs/@tanstack/router-core.mjs +1 -0
  34. package/__app__/chunks/libs/@xstate/react.mjs +1 -0
  35. package/__app__/chunks/libs/@xstate/store.mjs +1 -0
  36. package/__app__/chunks/libs/@xyflow/react.mjs +7 -0
  37. package/__app__/chunks/libs/@zag-js/anatomy.mjs +1 -0
  38. package/__app__/chunks/libs/@zag-js/collection.mjs +1 -0
  39. package/__app__/chunks/libs/@zag-js/core.mjs +1 -0
  40. package/__app__/chunks/libs/@zag-js/react.mjs +1 -0
  41. package/__app__/chunks/libs/@zag-js/tree-view.mjs +1 -0
  42. package/__app__/chunks/libs/bezier-js.mjs +1 -0
  43. package/__app__/chunks/libs/copy-anything.mjs +1 -0
  44. package/__app__/chunks/libs/d3-path.mjs +1 -0
  45. package/__app__/chunks/libs/d3-shape.mjs +1 -0
  46. package/__app__/chunks/libs/fast-equals.mjs +1 -0
  47. package/__app__/chunks/libs/framer-motion.mjs +9 -0
  48. package/__app__/chunks/libs/html-to-image.mjs +2 -0
  49. package/__app__/chunks/libs/motion-dom.mjs +1 -0
  50. package/__app__/chunks/libs/nanostores.mjs +1 -0
  51. package/__app__/chunks/libs/react-error-boundary.mjs +1 -0
  52. package/__app__/chunks/libs/react-resizable-panels.mjs +1 -0
  53. package/__app__/chunks/libs/remeda.mjs +1 -0
  54. package/__app__/chunks/libs/superjson.mjs +1 -0
  55. package/__app__/chunks/libs/zod.mjs +64 -0
  56. package/__app__/chunks/rolldown-runtime.mjs +1 -0
  57. package/__app__/chunks/styles.css.mjs +1 -0
  58. package/__app__/chunks/txt.mjs +1 -0
  59. package/__app__/chunks/useLikeC4Project.mjs +1 -0
  60. package/__app__/codegen/react.mjs +11 -0
  61. package/__app__/codegen/webcomponent.mjs +942 -0
  62. package/__app__/src/aichat/index.mjs +1 -0
  63. package/__app__/src/fonts.css +1 -1
  64. package/__app__/src/main.mjs +45 -0
  65. package/__app__/src/pages/AdHocViewEditor.mjs +1 -0
  66. package/__app__/src/pages/EmbedPage.mjs +1 -0
  67. package/__app__/src/pages/ExportPage.mjs +1 -0
  68. package/__app__/src/pages/ProjectsOverview.mjs +1 -0
  69. package/__app__/src/pages/ViewAsD2.mjs +1 -0
  70. package/__app__/src/pages/ViewAsDot.mjs +1 -0
  71. package/__app__/src/pages/ViewAsMmd.mjs +1 -0
  72. package/__app__/src/pages/ViewAsPuml.mjs +1 -0
  73. package/__app__/src/pages/ViewEditor.mjs +1 -0
  74. package/__app__/src/pages/ViewReact.mjs +1 -0
  75. package/__app__/src/style.css +1 -1
  76. package/config/schema.json +14 -41
  77. package/dist/chunks/enableServer.mjs +1 -0
  78. package/dist/chunks/filenames.mjs +17 -0
  79. package/dist/{_chunks → chunks}/index.d.mts +2 -1
  80. package/dist/{_chunks → chunks}/index2.d.mts +639 -388
  81. package/dist/chunks/libs/@chevrotain/gast.mjs +1 -0
  82. package/dist/chunks/libs/@chevrotain/regexp-to-ast.mjs +9 -0
  83. package/dist/chunks/libs/@chevrotain/utils.mjs +1 -0
  84. package/dist/chunks/libs/@hono/mcp.mjs +70 -0
  85. package/dist/chunks/libs/@hono/node-server.mjs +1 -0
  86. package/dist/{_chunks → chunks}/libs/@logtape/logtape.d.mts +2 -0
  87. package/dist/chunks/libs/@logtape/logtape.mjs +4 -0
  88. package/dist/chunks/libs/@lume/kiwi.mjs +1 -0
  89. package/dist/chunks/libs/@modelcontextprotocol/sdk.mjs +12 -0
  90. package/dist/chunks/libs/@ts-graphviz/ast.mjs +3 -0
  91. package/dist/chunks/libs/@ts-graphviz/common.d.mts +9 -0
  92. package/dist/chunks/libs/@ts-graphviz/core.mjs +1 -0
  93. package/dist/chunks/libs/ajv.mjs +1 -0
  94. package/dist/chunks/libs/ansi-align.mjs +2 -0
  95. package/dist/chunks/libs/ansi-regex.mjs +1 -0
  96. package/dist/chunks/libs/ansi-styles.mjs +1 -0
  97. package/dist/chunks/libs/atomically.mjs +1 -0
  98. package/dist/chunks/libs/birpc.mjs +1 -0
  99. package/dist/chunks/libs/boxen.mjs +22 -0
  100. package/dist/chunks/libs/chevrotain-allstar.mjs +2 -0
  101. package/dist/chunks/libs/chevrotain.mjs +58 -0
  102. package/dist/chunks/libs/conf.mjs +1 -0
  103. package/dist/chunks/libs/defu.mjs +1 -0
  104. package/dist/chunks/libs/destr.mjs +1 -0
  105. package/dist/chunks/libs/eventemitter3.mjs +1 -0
  106. package/dist/chunks/libs/find-up-simple.mjs +1 -0
  107. package/dist/chunks/libs/get-port.mjs +1 -0
  108. package/dist/chunks/libs/hono.mjs +1 -0
  109. package/dist/chunks/libs/is-docker.mjs +1 -0
  110. package/dist/chunks/libs/is-error-instance.mjs +1 -0
  111. package/dist/chunks/libs/is-inside-container.mjs +1 -0
  112. package/dist/chunks/libs/is-plain-obj.mjs +1 -0
  113. package/dist/chunks/libs/isexe.mjs +1 -0
  114. package/dist/chunks/libs/json5.mjs +14 -0
  115. package/dist/chunks/libs/khroma.mjs +1 -0
  116. package/dist/chunks/libs/ky.mjs +3 -0
  117. package/dist/{_chunks → chunks}/libs/langium.d.mts +9 -9
  118. package/dist/chunks/libs/langium.mjs +32 -0
  119. package/dist/chunks/libs/merge-error-cause.mjs +2 -0
  120. package/dist/chunks/libs/p-debounce.mjs +1 -0
  121. package/dist/chunks/libs/p-limit.mjs +1 -0
  122. package/dist/chunks/libs/p-queue.mjs +1 -0
  123. package/dist/chunks/libs/p-timeout.mjs +1 -0
  124. package/dist/chunks/libs/package-manager-detector.mjs +1 -0
  125. package/dist/chunks/libs/package-up.mjs +1 -0
  126. package/dist/chunks/libs/pako.mjs +3 -0
  127. package/dist/chunks/libs/parse-ms.mjs +1 -0
  128. package/dist/chunks/libs/pathe.mjs +1 -0
  129. package/dist/chunks/libs/picomatch.mjs +1 -0
  130. package/dist/chunks/libs/pretty-ms.mjs +1 -0
  131. package/dist/chunks/libs/remeda.mjs +1 -0
  132. package/dist/chunks/libs/safe-stringify.mjs +1 -0
  133. package/dist/chunks/libs/strip-indent.mjs +1 -0
  134. package/dist/chunks/libs/tinyrainbow.mjs +1 -0
  135. package/dist/chunks/libs/ts-graphviz.mjs +1 -0
  136. package/dist/chunks/libs/ufo.mjs +1 -0
  137. package/dist/chunks/libs/unctx.mjs +1 -0
  138. package/dist/chunks/libs/unstorage.mjs +1 -0
  139. package/dist/chunks/libs/vscode-languageserver.mjs +1 -0
  140. package/dist/chunks/libs/which.mjs +1 -0
  141. package/dist/chunks/libs/word-wrap.mjs +12 -0
  142. package/dist/{_chunks → chunks}/libs/zod.d.mts +62 -25
  143. package/dist/chunks/node.mjs +93 -0
  144. package/dist/chunks/plugin.mjs +593 -0
  145. package/dist/chunks/rolldown-runtime.mjs +1 -0
  146. package/dist/chunks/sequence-view.mjs +1 -0
  147. package/dist/cli/index.mjs +188 -59
  148. package/dist/config/index.d.mts +1 -2
  149. package/dist/config/index.mjs +1 -1
  150. package/dist/index.d.mts +2 -135
  151. package/dist/index.mjs +1 -1
  152. package/dist/model/index.d.mts +3 -2
  153. package/dist/model/index.mjs +1 -1
  154. package/dist/vite-plugin/index.d.mts +90 -9
  155. package/dist/vite-plugin/index.mjs +1 -1
  156. package/dist/vite-plugin/internal/chunks/libs/@nanostores/react.mjs +1 -0
  157. package/dist/vite-plugin/internal/chunks/libs/birpc.mjs +1 -0
  158. package/dist/vite-plugin/internal/chunks/libs/fast-equals.mjs +1 -0
  159. package/dist/vite-plugin/internal/chunks/libs/nanostores.mjs +1 -0
  160. package/dist/vite-plugin/internal/chunks/libs/remeda.mjs +1 -0
  161. package/dist/vite-plugin/internal/chunks/rolldown-runtime.mjs +1 -0
  162. package/dist/{_chunks/libs/@nanostores/react.d.mts → vite-plugin/internal/index.d.mts} +103 -45
  163. package/dist/vite-plugin/internal/index.mjs +1 -0
  164. package/package.json +74 -80
  165. package/react/index.d.mts +84 -78
  166. package/react/index.mjs +51954 -53701
  167. package/vite-plugin/internal/package.json +2 -2
  168. package/vite-plugin-modules.d.ts +18 -0
  169. package/__app__/react/likec4.tsx +0 -25
  170. package/__app__/src/ProjectsOverview.js +0 -16
  171. package/__app__/src/const.js +0 -19
  172. package/__app__/src/likec4.js +0 -21254
  173. package/__app__/src/main.js +0 -7
  174. package/__app__/src/routes/index.js +0 -324
  175. package/__app__/src/routes/projects.js +0 -193
  176. package/__app__/src/routes/single.js +0 -1983
  177. package/__app__/src/vendors.js +0 -52683
  178. package/__app__/src/webcomponent.js +0 -68
  179. package/dist/THIRD-PARTY-LICENSES.md +0 -1609
  180. package/dist/_chunks/libs/@chevrotain/cst-dts-gen.mjs +0 -30
  181. package/dist/_chunks/libs/@chevrotain/regexp-to-ast.mjs +0 -9
  182. package/dist/_chunks/libs/@chevrotain/types.d.mts +0 -1
  183. package/dist/_chunks/libs/@chevrotain/utils.mjs +0 -1
  184. package/dist/_chunks/libs/@hono/mcp.mjs +0 -45
  185. package/dist/_chunks/libs/@hono/node-server.mjs +0 -1
  186. package/dist/_chunks/libs/@logtape/logtape.mjs +0 -4
  187. package/dist/_chunks/libs/@lume/kiwi.mjs +0 -1
  188. package/dist/_chunks/libs/@modelcontextprotocol/sdk.mjs +0 -12
  189. package/dist/_chunks/libs/@nanostores/react.mjs +0 -1
  190. package/dist/_chunks/libs/ajv.mjs +0 -1
  191. package/dist/_chunks/libs/ansi-align.mjs +0 -2
  192. package/dist/_chunks/libs/ansi-regex.mjs +0 -1
  193. package/dist/_chunks/libs/ansi-styles.mjs +0 -1
  194. package/dist/_chunks/libs/atomically.mjs +0 -1
  195. package/dist/_chunks/libs/birpc.mjs +0 -1
  196. package/dist/_chunks/libs/boxen.mjs +0 -22
  197. package/dist/_chunks/libs/chevrotain-allstar.mjs +0 -2
  198. package/dist/_chunks/libs/chevrotain.mjs +0 -58
  199. package/dist/_chunks/libs/conf.mjs +0 -1
  200. package/dist/_chunks/libs/defu.mjs +0 -1
  201. package/dist/_chunks/libs/destr.mjs +0 -1
  202. package/dist/_chunks/libs/esm-env.mjs +0 -1
  203. package/dist/_chunks/libs/eventemitter3.mjs +0 -1
  204. package/dist/_chunks/libs/fast-equals.mjs +0 -1
  205. package/dist/_chunks/libs/find-up-simple.mjs +0 -1
  206. package/dist/_chunks/libs/get-port.mjs +0 -1
  207. package/dist/_chunks/libs/is-docker.mjs +0 -1
  208. package/dist/_chunks/libs/is-error-instance.mjs +0 -1
  209. package/dist/_chunks/libs/is-inside-container.mjs +0 -1
  210. package/dist/_chunks/libs/is-plain-obj.mjs +0 -1
  211. package/dist/_chunks/libs/isexe.mjs +0 -1
  212. package/dist/_chunks/libs/json5.mjs +0 -14
  213. package/dist/_chunks/libs/khroma.mjs +0 -1
  214. package/dist/_chunks/libs/ky.mjs +0 -3
  215. package/dist/_chunks/libs/langium.mjs +0 -33
  216. package/dist/_chunks/libs/merge-error-cause.mjs +0 -2
  217. package/dist/_chunks/libs/p-limit.mjs +0 -1
  218. package/dist/_chunks/libs/p-queue.mjs +0 -1
  219. package/dist/_chunks/libs/p-timeout.mjs +0 -1
  220. package/dist/_chunks/libs/package-manager-detector.mjs +0 -1
  221. package/dist/_chunks/libs/package-up.mjs +0 -1
  222. package/dist/_chunks/libs/pako.mjs +0 -1
  223. package/dist/_chunks/libs/parse-ms.mjs +0 -1
  224. package/dist/_chunks/libs/pathe.mjs +0 -1
  225. package/dist/_chunks/libs/picomatch.mjs +0 -1
  226. package/dist/_chunks/libs/pretty-ms.mjs +0 -1
  227. package/dist/_chunks/libs/remeda.mjs +0 -2
  228. package/dist/_chunks/libs/safe-stringify.mjs +0 -1
  229. package/dist/_chunks/libs/strip-indent.mjs +0 -1
  230. package/dist/_chunks/libs/tinyrainbow.mjs +0 -1
  231. package/dist/_chunks/libs/ts-graphviz.d.mts +0 -10
  232. package/dist/_chunks/libs/ts-graphviz.mjs +0 -4
  233. package/dist/_chunks/libs/ufo.mjs +0 -1
  234. package/dist/_chunks/libs/unstorage.mjs +0 -1
  235. package/dist/_chunks/libs/vscode-languageserver.mjs +0 -1
  236. package/dist/_chunks/libs/which.mjs +0 -1
  237. package/dist/_chunks/libs/word-wrap.mjs +0 -12
  238. package/dist/_chunks/node.mjs +0 -76
  239. package/dist/_chunks/rolldown-runtime.mjs +0 -1
  240. package/dist/_chunks/sequence.mjs +0 -1
  241. package/dist/_chunks/src.mjs +0 -17
  242. package/dist/_chunks/src2.mjs +0 -499
  243. package/dist/vite-plugin/internal.d.mts +0 -44
  244. package/dist/vite-plugin/internal.mjs +0 -1
@@ -1,16 +1,68 @@
1
+ import { i as __name } from "./rolldown-runtime.mjs";
1
2
  import { a as LikeC4ProjectConfig, i as IncludeConfig, o as LikeC4ProjectConfigInput } from "./index.mjs";
3
+ import { t as Logger } from "./libs/@logtape/logtape.mjs";
2
4
  import { $ as FileSystemProvider, A as DefaultValueConverter, B as AsyncDisposable, C as CodeLensParams, D as ValidationOptions, E as DefaultDocumentValidator, F as JSDocDocumentationProvider, G as Reference, H as AstNode, I as DefaultIndexManager, J as LangiumDocument, K as ReferenceInfo, L as ReferenceDescription, M as MaybePromise, N as DefaultScopeProvider, O as DiagnosticInfo, P as Scope, Q as FileSystemNode, R as DefaultNameProvider, S as CodeActionParams, T as DocumentSymbolParams, U as AstNodeDescription, V as Disposable$1, W as CstNode, X as PrecomputedScopes, Y as LangiumDocumentFactory, Z as Stream, _ as CodeLensProvider, _t as SymbolKind, a as LangiumServices, at as CodeAction, b as FileSelector, c as AbstractSemanticTokenProvider, ct as CompletionItemKind, d as AbstractFormatter, dt as DocumentLink, et as Keyword, f as FormattingRegion, ft as DocumentSymbol, g as DefaultDocumentHighlightProvider, gt as Range, h as DocumentLinkProvider, ht as Location, i as NextFeature, it as RequestType, j as ValueType, k as DefaultScopeComputation, l as SemanticTokenAcceptor, lt as Diagnostic, m as NodeKindProvider, mt as Hover, n as CompletionContext, nt as CancellationToken$1, o as LangiumSharedServices, ot as CodeLens, p as DocumentSymbolProvider, pt as FormattingOptions, q as DefaultLangiumDocuments, r as DefaultCompletionProvider, rt as NotificationType, s as DefaultWorkspaceSymbolProvider, st as Command, t as CompletionAcceptor, tt as URI, u as AstNodeHoverProvider, ut as DocumentHighlight, v as CodeActionProvider, vt as TextEdit, w as DocumentLinkParams, x as BuildOptions, y as DefaultWorkspaceManager, yt as WorkspaceFolder, z as WorkspaceCache } from "./libs/langium.mjs";
3
- import { t as $keywords } from "./libs/ts-graphviz.mjs";
4
- import { ElementModel, LikeC4Model } from "@likec4/core/model";
5
+ import { t as $keywords } from "./libs/@ts-graphviz/common.mjs";
6
+ import { LikeC4Styles } from "@likec4/core/styles";
7
+ import { EdgeId, Fqn, GuardedBy, LayoutedView, NodeId, NonEmptyArray, NonEmptyReadonlyArray, ProjectId, ViewId } from "@likec4/core/types";
5
8
  import * as c4 from "@likec4/core";
6
- import { AnyAux, ComputedView, DeploymentFqn, DiagramView, EdgeId, Fqn, LayoutType, LayoutedView, LikeC4Styles, NonEmptyArray, NonEmptyReadonlyArray, ProjectId, RelationId, Tag, UnknownComputed, UnknownLayouted, UnknownParsed, ViewChange, ViewId, aux } from "@likec4/core";
7
- import { LikeC4Styles as LikeC4Styles$1 } from "@likec4/core/styles";
8
- import { Fqn as Fqn$1, GuardedBy, LayoutedView as LayoutedView$1, ProjectId as ProjectId$1, ViewId as ViewId$1 } from "@likec4/core/types";
9
+ import { AnyAux, ComputedView, DeploymentFqn, DiagramView, EdgeId as EdgeId$1, Fqn as Fqn$1, LayoutType, LayoutedView as LayoutedView$1, LikeC4Styles as LikeC4Styles$1, NonEmptyArray as NonEmptyArray$1, NonEmptyReadonlyArray as NonEmptyReadonlyArray$1, ProjectId as ProjectId$1, RelationId, Tag, UnknownComputed, UnknownLayouted, UnknownParsed, ViewChange, ViewId as ViewId$1, aux as aux$1 } from "@likec4/core";
9
10
  import { DefaultWeakMap, MultiMap } from "@likec4/core/utils";
11
+ import { ElementModel, LikeC4Model } from "@likec4/core/model";
10
12
  import { AdhocViewPredicate, ComputedProjectsView, LayoutedProjectsView } from "@likec4/core/compute-view";
11
13
  import * as type_fest0 from "type-fest";
12
14
  import { ConditionalPick, MergeExclusive, Simplify, Tagged, ValueOf, Writable } from "type-fest";
13
15
 
16
+ //#region ../layouts/dist/_chunks/types.d.mts
17
+ /**
18
+ * invisible edge added by AI to enforce better layout
19
+ */
20
+ interface AIEnforcementEdge {
21
+ source: NodeId;
22
+ target: NodeId;
23
+ weight?: number;
24
+ minlen?: number;
25
+ }
26
+ /**
27
+ * Complete set of AI-generated layout hints.
28
+ * This is the JSON schema the LLM must produce.
29
+ */
30
+ interface AILayoutHints {
31
+ direction?: 'TB' | 'BT' | 'LR' | 'RL';
32
+ ranks: ReadonlyArray<{
33
+ rank: 'same' | 'source' | 'sink' | 'min' | 'max';
34
+ nodes: NonEmptyArray<NodeId>;
35
+ }>;
36
+ edgeWeight: Record<EdgeId, number>;
37
+ edgeMinlen: Record<EdgeId, number>;
38
+ /**
39
+ * These edges should be reversed in DOT
40
+ * Unique array of EdgeIds.
41
+ */
42
+ reverseRank?: NonEmptyReadonlyArray<EdgeId>;
43
+ /**
44
+ * These edges should be excluded, i.e. `constraint=false` in Graphviz, to allow more flexible layouts.
45
+ * Unique array of EdgeIds.
46
+ */
47
+ excludeFromRanking?: NonEmptyReadonlyArray<EdgeId>;
48
+ /**
49
+ * Suggested order of edges for DOT output, to influence edge routing.
50
+ */
51
+ edgeOrder?: NonEmptyReadonlyArray<EdgeId>;
52
+ /**
53
+ * Suggested order of nodes for DOT output, to influence node placement.
54
+ */
55
+ nodeOrder?: NonEmptyReadonlyArray<NodeId>;
56
+ /**
57
+ * Invisible edges added by AI to enforce better layout
58
+ */
59
+ invisibleEdges?: NonEmptyReadonlyArray<AIEnforcementEdge>;
60
+ /**
61
+ * LLM reasoning for debugging/display
62
+ */
63
+ reasoning: string;
64
+ } //#endregion
65
+ //#endregion
14
66
  //#region ../language-server/dist/_chunks/protocol.d.mts
15
67
  /**
16
68
  * When server requests to open a likec4 preview panel
@@ -19,8 +71,8 @@ import { ConditionalPick, MergeExclusive, Simplify, Tagged, ValueOf, Writable }
19
71
  */
20
72
  declare namespace DidRequestOpenViewNotification {
21
73
  type Params = {
22
- viewId: ViewId;
23
- projectId: ProjectId;
74
+ viewId: ViewId$1;
75
+ projectId: ProjectId$1;
24
76
  };
25
77
  const type: NotificationType<Params>;
26
78
  type Type = typeof type;
@@ -40,7 +92,7 @@ declare namespace Locate {
40
92
  * Locate an element by its fqn
41
93
  */
42
94
  {
43
- element: Fqn;
95
+ element: Fqn$1;
44
96
  projectId?: string | undefined;
45
97
  property?: string;
46
98
  }
@@ -63,7 +115,7 @@ declare namespace Locate {
63
115
  * Locate a step in a dynamic view by its astPath
64
116
  */
65
117
  | {
66
- view: ViewId;
118
+ view: ViewId$1;
67
119
  astPath: string;
68
120
  projectId?: string | undefined;
69
121
  }
@@ -71,7 +123,7 @@ declare namespace Locate {
71
123
  * Locate a view by its id
72
124
  */
73
125
  | {
74
- view: ViewId;
126
+ view: ViewId$1;
75
127
  projectId?: string | undefined;
76
128
  };
77
129
  type Res = Location | null;
@@ -84,7 +136,7 @@ declare namespace Locate {
84
136
  */
85
137
  declare namespace ChangeView {
86
138
  type Params = {
87
- viewId: ViewId;
139
+ viewId: ViewId$1;
88
140
  change: ViewChange;
89
141
  projectId?: string | undefined;
90
142
  };
@@ -223,7 +275,7 @@ declare namespace GraphvizJson {
223
275
  _ldraw_?: LabelDrawOps[];
224
276
  likec4_type?: 'folder' | 'file';
225
277
  likec4_path?: string;
226
- likec4_id?: Fqn;
278
+ likec4_id?: Fqn$1;
227
279
  likec4_level?: number;
228
280
  likec4_depth?: number;
229
281
  _gvid: GvId;
@@ -236,7 +288,7 @@ declare namespace GraphvizJson {
236
288
  _ldraw_?: LabelDrawOps[];
237
289
  likec4_type?: 'folder' | 'file' | 'view';
238
290
  likec4_path?: string;
239
- likec4_id?: Fqn;
291
+ likec4_id?: Fqn$1;
240
292
  likec4_level?: number;
241
293
  _gvid: GvId;
242
294
  height: string;
@@ -271,7 +323,7 @@ declare namespace GraphvizJson {
271
323
  _hldraw_?: LabelDrawOps[];
272
324
  fontname: string;
273
325
  fontsize: string;
274
- likec4_id?: EdgeId;
326
+ likec4_id?: EdgeId$1;
275
327
  label: string;
276
328
  lp: string;
277
329
  nojustify?: 'true' | 'false';
@@ -288,11 +340,11 @@ interface GraphvizPort extends Disposable {
288
340
  svg(dot: DotSource): Promise<string>;
289
341
  dispose(): void;
290
342
  }
291
- type LayoutTaskParams<A extends aux.Any = aux.Any> = {
343
+ type LayoutTaskParams<A extends aux$1.Any = aux$1.Any> = {
292
344
  view: ComputedView<A>;
293
- styles: LikeC4Styles;
345
+ styles: LikeC4Styles$1;
294
346
  };
295
- type LayoutResult<A extends aux.Any = aux.Any> = {
347
+ type LayoutResult<A extends aux$1.Any = aux$1.Any> = {
296
348
  dot: DotSource;
297
349
  diagram: DiagramView<A>;
298
350
  };
@@ -303,9 +355,19 @@ declare class GraphvizLayouter implements Disposable {
303
355
  [Symbol.dispose](): void;
304
356
  get graphvizPort(): GraphvizPort;
305
357
  changePort(graphviz: GraphvizPort): void;
306
- printToDot(params: LayoutTaskParams): DotSource;
358
+ /**
359
+ * Generates DOT source for the given view and styles.
360
+ * If `hints` are provided, they will be used to influence the layout (e.g. by specifying node/edge order).
361
+ * This method does not perform unflattening or any other post-processing on the DOT output, so it may be used for debugging or to generate DOT for external processing.
362
+ */
363
+ printToDot(params: LayoutTaskParams, hints?: AILayoutHints): DotSource;
364
+ protected newScopedLogger(operation: string): any;
307
365
  dotToJson(dot: DotSource): Promise<GraphvizJson>;
308
366
  layout<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<LayoutResult<A>>;
367
+ aiLayout<A extends AnyAux>({
368
+ view,
369
+ styles
370
+ }: LayoutTaskParams<A>, hints: AILayoutHints): Promise<LayoutResult<A>>;
309
371
  svg<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<{
310
372
  svg: string;
311
373
  dot: DotSource;
@@ -379,6 +441,7 @@ declare class LikeC4DocumentationProvider extends JSDocDocumentationProvider {
379
441
  getDocumentation(node: AstNode): string | undefined;
380
442
  } //#endregion
381
443
  //#region src/workspace/ProjectsManager.d.ts
444
+ type NormalizedUri = Tagged<string, 'NormalizedUri'>;
382
445
  type DocOrUri = LangiumDocument | string | URI;
383
446
  /**
384
447
  * A tagged string that represents a project folder URI (with trailing slash).
@@ -387,12 +450,12 @@ type DocOrUri = LangiumDocument | string | URI;
387
450
  type ProjectFolder = Tagged<string, 'ProjectFolder'>;
388
451
  declare function ProjectFolder(folder: URI | string): ProjectFolder;
389
452
  interface Project {
390
- id: ProjectId$1;
453
+ id: ProjectId;
391
454
  folderUri: URI;
392
455
  config: LikeC4ProjectConfig;
393
456
  }
394
457
  interface ProjectData extends Project {
395
- id: ProjectId$1;
458
+ id: ProjectId;
396
459
  folder: ProjectFolder;
397
460
  config: LikeC4ProjectConfig;
398
461
  configUri: URI;
@@ -404,7 +467,7 @@ interface ProjectData extends Project {
404
467
  * Resolved include paths with both URI and folder string representations.
405
468
  * These are additional directories that are part of this project.
406
469
  */
407
- includePaths?: NonEmptyArray<{
470
+ includePaths?: NonEmptyArray$1<{
408
471
  uri: URI;
409
472
  folder: ProjectFolder;
410
473
  }>;
@@ -427,8 +490,13 @@ declare class ProjectsManager {
427
490
  * The global project ID used for all documents
428
491
  * that are not part of a specific project.
429
492
  */
430
- static readonly DefaultProjectId: ProjectId$1;
493
+ static readonly DefaultProjectId: ProjectId;
431
494
  constructor(services: LikeC4SharedServices);
495
+ /**
496
+ * Checks if a document is excluded by workspace-level patterns.
497
+ * These patterns come from VS Code settings and take precedence over project-level excludes.
498
+ */
499
+ isExcludedByWorkspace(uri: NormalizedUri | URI): boolean;
432
500
  /**
433
501
  * Updates the workspace-level exclude patterns from VS Code settings.
434
502
  * Called during initial server startup; dynamic changes restart the server.
@@ -441,37 +509,45 @@ declare class ProjectsManager {
441
509
  * - the ID of the only project
442
510
  * - undefined if there are multiple projects.
443
511
  */
444
- get defaultProjectId(): ProjectId$1 | undefined;
445
- set defaultProjectId(id: string | ProjectId$1 | undefined);
512
+ get defaultProjectId(): ProjectId | undefined;
513
+ set defaultProjectId(id: string | ProjectId | undefined);
446
514
  get default(): ProjectData;
447
- get all(): NonEmptyReadonlyArray<ProjectId$1>;
448
- getProject(arg: ProjectId$1 | LangiumDocument): ProjectData;
515
+ get all(): NonEmptyReadonlyArray$1<ProjectId>;
516
+ getProject(arg: ProjectId | LangiumDocument): ProjectData;
449
517
  /**
450
518
  * Returns all projects that overlap with the specified folder (is parent or child)
451
519
  */
452
- findOverlaped(folder: URI | string): ProjectData[];
520
+ findOverlaped(folder: URI | string): ReadonlyArray<ProjectData>;
453
521
  /**
454
522
  * Validates and ensures the project ID.
455
523
  * If no project ID is specified, returns default project ID
456
524
  * If there are multiple projects and default project is not set, throws an error
457
525
  */
458
- ensureProjectId(projectId?: ProjectId$1 | undefined): ProjectId$1;
526
+ ensureProjectId(projectId?: ProjectId | undefined): ProjectId;
459
527
  /**
460
- * Validates and ensures the project.
528
+ * Validates and ensures the project data.
529
+ * If projectId is not specified, returns default project
530
+ *
531
+ * If there are multiple projects and default project is not set, throws an error
532
+ *
533
+ * @see ensureProjectId - to validate project ID only
461
534
  */
462
- ensureProject(projectId?: ProjectId$1 | undefined): ProjectData;
535
+ ensureProject(projectId?: ProjectId | undefined): ProjectData;
463
536
  hasMultipleProjects(): boolean;
464
537
  /**
465
- * Checks if the specified document should be excluded from processing.
538
+ * Checks if given document (or URI) must be excluded from processing.
466
539
  */
467
540
  isExcluded(document: DocOrUri): boolean;
468
- isExcluded(projectId: ProjectId$1, document: DocOrUri): boolean;
541
+ /**
542
+ * Checks if given document (or URI) must be excluded in the context of the project.
543
+ */
544
+ isExcluded(projectId: ProjectId, document: DocOrUri): boolean;
469
545
  /**
470
546
  * Checks if the specified document is included by the project:
471
547
  * - if the document belongs to the project and is not excluded
472
548
  * - if the document is included by the project
473
549
  */
474
- isIncluded(projectId: ProjectId$1, document: LangiumDocument | URI | string): boolean;
550
+ isIncluded(projectId: ProjectId, document: LangiumDocument | URI | string): boolean;
475
551
  /**
476
552
  * Registers likec4 project by config file.
477
553
  */
@@ -485,18 +561,28 @@ declare class ProjectsManager {
485
561
  * Determines which project the given document belongs to.
486
562
  * If the document does not belong to any project, returns the default project ID.
487
563
  */
488
- ownerProjectId(document: LangiumDocument | URI | string): ProjectId$1;
564
+ ownerProjectId(document: LangiumDocument | URI | string): ProjectId;
565
+ /**
566
+ * Returns path to the document relative to the project folder.
567
+ * If the document does not belong to any project, returns the document URI as string.
568
+ */
569
+ relativePath(document: LangiumDocument | URI | string): string;
570
+ /**
571
+ * Returns true if the manager is currently initializing or reloading projects.
572
+ * This is used to prevent duplicate reload operations.
573
+ */
574
+ protected get isInitiatingOrReloading(): boolean;
489
575
  reloadProjects(cancelToken?: CancellationToken$1): Promise<void>;
490
576
  protected _reloadProjects(cancelToken?: CancellationToken$1): Promise<void>;
491
- protected uniqueProjectId(name: string): ProjectId$1;
577
+ protected uniqueProjectId(name: string): ProjectId;
492
578
  protected resetCaches(): void;
493
- rebuildProject(projectId: ProjectId$1, cancelToken?: CancellationToken$1): Promise<void>;
579
+ rebuildProject(projectId: ProjectId, cancelToken?: CancellationToken$1): Promise<void>;
494
580
  /**
495
581
  * Returns all include paths from all projects.
496
582
  * Used by WorkspaceManager to scan additional directories for C4 files.
497
583
  */
498
584
  getAllIncludePaths(): Array<{
499
- projectId: ProjectId$1;
585
+ projectId: ProjectId;
500
586
  includePath: URI;
501
587
  includeConfig: IncludeConfig;
502
588
  }>;
@@ -528,7 +614,8 @@ interface FileSystemProvider$1 extends FileSystemProvider {
528
614
  */
529
615
  loadProjectConfig(filepath: URI): Promise<LikeC4ProjectConfig>;
530
616
  /**
531
- * Reads the directory information for the given URI.
617
+ * Reads the directory and returns LikeC4 files.
618
+ *
532
619
  * @param options.recursive If true, recursively reads the directory,
533
620
  * @param options.maxDepth Maximum depth to traverse when recursive is true (default: Infinity)
534
621
  */
@@ -539,7 +626,7 @@ interface FileSystemProvider$1 extends FileSystemProvider {
539
626
  /**
540
627
  * Finds all files in the given directory, matching the given filter.
541
628
  */
542
- scanDirectory(directory: URI, filter: (filepath: string) => boolean): Promise<FileNode[]>;
629
+ scanDirectory(directory: URI, filter: (filepath: string, isDirectory: boolean) => boolean): Promise<FileNode[]>;
543
630
  /**
544
631
  * Writes the content to the file system.
545
632
  * Used by manual layouts.
@@ -560,19 +647,19 @@ interface FileSystemWatcher extends AsyncDisposable {
560
647
  }
561
648
  type ManualLayoutsSnapshot = {
562
649
  hash: string;
563
- views: Record<ViewId$1, LayoutedView$1>;
650
+ views: Record<ViewId, LayoutedView>;
564
651
  };
565
652
  type ManualLayoutUpdateEvent = {
566
653
  updated: URI;
567
- projectId: ProjectId$1;
568
- viewId: ViewId$1;
654
+ projectId: ProjectId;
655
+ viewId: ViewId;
569
656
  } | {
570
657
  removed: URI;
571
- projectId: ProjectId$1;
658
+ projectId: ProjectId;
572
659
  /**
573
660
  * Missing if triggered by FS event (file was deleted)
574
661
  */
575
- viewId?: ViewId$1;
662
+ viewId?: ViewId;
576
663
  };
577
664
  type ManualLayoutUpdateListener = (event: ManualLayoutUpdateEvent) => void;
578
665
  interface LikeC4ManualLayouts {
@@ -580,10 +667,10 @@ interface LikeC4ManualLayouts {
580
667
  * Reads a single layouted view from the file system by its URI.
581
668
  * Used by the language server to get the current layout state.
582
669
  */
583
- readSnapshot(uri: URI): Promise<LayoutedView$1 | null>;
670
+ readSnapshot(uri: URI): Promise<LayoutedView | null>;
584
671
  read(project: Project): Promise<ManualLayoutsSnapshot | null>;
585
- write(project: Project, layouted: LayoutedView$1): Promise<Location>;
586
- remove(project: Project, view: ViewId$1): Promise<Location | null>;
672
+ write(project: Project, layouted: LayoutedView): Promise<Location>;
673
+ remove(project: Project, view: ViewId): Promise<Location | null>;
587
674
  clearCaches(): void;
588
675
  /**
589
676
  * Registers a listener for manual layout updates.
@@ -672,7 +759,7 @@ type DeploymentElement = DeployedInstance | DeploymentNode;
672
759
  declare const DeploymentElement = "DeploymentElement";
673
760
  type DeploymentNodeOrElementKind = DeploymentNodeKind | ElementKind;
674
761
  declare const DeploymentNodeOrElementKind = "DeploymentNodeOrElementKind";
675
- type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout;
762
+ type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAncestors | ViewRuleAutoLayout;
676
763
  declare const DeploymentViewRule = "DeploymentViewRule";
677
764
  type DynamicViewDisplayVariantValue = 'diagram' | 'sequence';
678
765
  type DynamicViewProperty = DynamicViewDisplayVariantProperty | ViewProperty;
@@ -804,7 +891,7 @@ declare const CustomElementProperties = "CustomElementProperties";
804
891
  interface CustomRelationProperties extends AstNode {
805
892
  readonly $container: AbstractDynamicStep | RelationExprWith;
806
893
  readonly $type: 'CustomRelationProperties';
807
- props: Array<NotationProperty | NotesProperty | RelationNavigateToProperty | RelationStringProperty | RelationshipStyleProperty>;
894
+ props: Array<MultipleProperty | NotationProperty | NotesProperty | RelationNavigateToProperty | RelationStringProperty | RelationshipStyleProperty>;
808
895
  }
809
896
  declare const CustomRelationProperties = "CustomRelationProperties";
810
897
  interface DeployedInstance extends AstNode {
@@ -1283,7 +1370,7 @@ interface MetadataAttribute extends AstNode {
1283
1370
  readonly $container: MetadataBody;
1284
1371
  readonly $type: 'MetadataAttribute';
1285
1372
  boolValue: boolean;
1286
- key: string;
1373
+ key: Id;
1287
1374
  value?: MetadataValue;
1288
1375
  }
1289
1376
  declare const MetadataAttribute = "MetadataAttribute";
@@ -1317,7 +1404,7 @@ interface ModelViews extends AstNode {
1317
1404
  }
1318
1405
  declare const ModelViews = "ModelViews";
1319
1406
  interface MultipleProperty extends AstNode {
1320
- readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
1407
+ readonly $container: CustomElementProperties | CustomRelationProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | SpecificationRelationshipKind | ViewRuleStyle;
1321
1408
  readonly $type: 'MultipleProperty';
1322
1409
  key: 'multiple';
1323
1410
  value: boolean;
@@ -1492,7 +1579,7 @@ interface SpecificationRelationshipKind extends AstNode {
1492
1579
  readonly $container: SpecificationRule;
1493
1580
  readonly $type: 'SpecificationRelationshipKind';
1494
1581
  kind: RelationshipKind;
1495
- props: Array<RelationshipStyleProperty | SpecificationRelationshipStringProperty>;
1582
+ props: Array<MultipleProperty | RelationshipStyleProperty | SpecificationRelationshipStringProperty>;
1496
1583
  }
1497
1584
  declare const SpecificationRelationshipKind = "SpecificationRelationshipKind";
1498
1585
  interface SpecificationRelationshipStringProperty extends AstNode {
@@ -1566,6 +1653,13 @@ interface ViewRef extends AstNode {
1566
1653
  view: Reference<LikeC4View>;
1567
1654
  }
1568
1655
  declare const ViewRef = "ViewRef";
1656
+ interface ViewRuleAncestors extends AstNode {
1657
+ readonly $container: DeploymentViewBody;
1658
+ readonly $type: 'ViewRuleAncestors';
1659
+ key: 'includeAncestors';
1660
+ value: boolean;
1661
+ }
1662
+ declare const ViewRuleAncestors = "ViewRuleAncestors";
1569
1663
  interface ViewRuleAutoLayout extends AstNode {
1570
1664
  readonly $container: DeploymentViewBody | DynamicViewBody | ElementViewBody;
1571
1665
  readonly $type: 'ViewRuleAutoLayout';
@@ -1883,6 +1977,7 @@ type LikeC4AstType = {
1883
1977
  ViewProperty: ViewProperty;
1884
1978
  ViewRef: ViewRef;
1885
1979
  ViewRule: ViewRule;
1980
+ ViewRuleAncestors: ViewRuleAncestors;
1886
1981
  ViewRuleAutoLayout: ViewRuleAutoLayout;
1887
1982
  ViewRuleGlobalPredicateRef: ViewRuleGlobalPredicateRef;
1888
1983
  ViewRuleGlobalStyle: ViewRuleGlobalStyle;
@@ -1989,6 +2084,7 @@ interface ParsedAstSpecification {
1989
2084
  line?: c4.RelationshipLineType;
1990
2085
  head?: c4.RelationshipArrowType;
1991
2086
  tail?: c4.RelationshipArrowType;
2087
+ multiple?: boolean;
1992
2088
  }>;
1993
2089
  colors: Record<c4.CustomColor, {
1994
2090
  color: c4.ColorLiteral;
@@ -2147,7 +2243,7 @@ declare class IndexManager extends DefaultIndexManager {
2147
2243
  protected services: LikeC4SharedServices;
2148
2244
  constructor(services: LikeC4SharedServices);
2149
2245
  updateContent(document: LangiumDocument, cancelToken?: CancellationToken$1): Promise<void>;
2150
- projectElements(projectId: ProjectId, nodeType?: string, uris?: Set<string>): Stream<AstNodeDescription>;
2246
+ projectElements(projectId: ProjectId$1, nodeType?: string, uris?: Set<string>): Stream<AstNodeDescription>;
2151
2247
  } //#endregion
2152
2248
  //#region src/workspace/LangiumDocuments.d.ts
2153
2249
  declare class LangiumDocuments extends DefaultLangiumDocuments {
@@ -2167,8 +2263,8 @@ declare class LangiumDocuments extends DefaultLangiumDocuments {
2167
2263
  /**
2168
2264
  * Returns all documents for a project, including both project documents and documents included by the project.
2169
2265
  */
2170
- projectDocuments(projectId: ProjectId): Stream<LikeC4LangiumDocument>;
2171
- groupedByProject(): Record<ProjectId, NonEmptyArray<LikeC4LangiumDocument>>;
2266
+ projectDocuments(projectId: ProjectId$1): Stream<LikeC4LangiumDocument>;
2267
+ groupedByProject(): Record<ProjectId$1, NonEmptyArray$1<LikeC4LangiumDocument>>;
2172
2268
  /**
2173
2269
  * Reset the project IDs of all documents.
2174
2270
  * Returns the URIs
@@ -2184,20 +2280,24 @@ declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
2184
2280
  initialBuildOptions: BuildOptions;
2185
2281
  constructor(services: LikeC4SharedServices);
2186
2282
  /**
2187
- * First load all project config files, then load all documents in the workspace.
2283
+ * Whether the workspace is ready, use {@link ready} promise to wait for it
2188
2284
  */
2189
- protected performStartup(folders: WorkspaceFolder[]): Promise<LangiumDocument[]>;
2285
+ get isReady(): boolean;
2190
2286
  /**
2191
- * Read workspace exclude patterns from configuration before workspace scan.
2192
- * Uses a timeout fallback for third-party IDEs that may not support workspace/configuration.
2287
+ * First load all project config files, then load all documents in the workspace.
2193
2288
  */
2194
- private readExcludeConfig;
2289
+ protected performStartup(folders: WorkspaceFolder[]): Promise<LangiumDocument[]>;
2195
2290
  /**
2196
2291
  * Load all additional documents that shall be visible in the context of the given workspace
2197
2292
  * folders and add them to the collector. This can be used to include built-in libraries of
2198
2293
  * your language, which can be either loaded from provided files or constructed in memory.
2199
2294
  */
2200
2295
  protected loadAdditionalDocuments(folders: WorkspaceFolder[], collector: (document: LangiumDocument) => void): Promise<void>;
2296
+ /**
2297
+ * Traverse the file system folder identified by the given URI and its subfolders. All
2298
+ * contained files that match the file extensions are added to the collector.
2299
+ */
2300
+ protected traverseFolder(workspaceFolder: WorkspaceFolder, folderPath: URI, selector: FileSelector, collector: (document: LangiumDocument) => void): Promise<void>;
2201
2301
  /**
2202
2302
  * Determine whether the given folder entry shall be included while indexing the workspace.
2203
2303
  */
@@ -2214,6 +2314,11 @@ declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
2214
2314
  * Register a listener to be called when caches are force cleaned
2215
2315
  */
2216
2316
  onForceCleanCache(listener: () => void): Disposable$1;
2317
+ /**
2318
+ * Read workspace exclude patterns from configuration before workspace scan.
2319
+ * Uses a timeout fallback for third-party IDEs that may not support workspace/configuration.
2320
+ */
2321
+ private readExcludeConfig;
2217
2322
  } //#endregion
2218
2323
  //#region src/references/scope-provider.d.ts
2219
2324
  declare class LikeC4ScopeProvider extends DefaultScopeProvider {
@@ -2230,12 +2335,12 @@ declare class LikeC4ScopeProvider extends DefaultScopeProvider {
2230
2335
  viewOf,
2231
2336
  extends: ext
2232
2337
  }: ElementView): Generator<AstNodeDescription>;
2233
- protected getScopeForStrictFqnRef(projectId: ProjectId, container: StrictFqnRef, context: ReferenceInfo): Scope;
2338
+ protected getScopeForStrictFqnRef(projectId: ProjectId$1, container: StrictFqnRef, context: ReferenceInfo): Scope;
2234
2339
  protected genScopeExtendDeployment({
2235
2340
  deploymentNode
2236
2341
  }: ExtendDeployment): Generator<AstNodeDescription>;
2237
- protected streamForFqnRef(projectId: ProjectId, container: FqnRef$2, context: ReferenceInfo): Stream<AstNodeDescription>;
2238
- protected genScopeForParentlessFqnRef(projectId: ProjectId, container: FqnRef$2, context: ReferenceInfo): Generator<AstNodeDescription>;
2342
+ protected streamForFqnRef(projectId: ProjectId$1, container: FqnRef$2, context: ReferenceInfo): Stream<AstNodeDescription>;
2343
+ protected genScopeForParentlessFqnRef(projectId: ProjectId$1, container: FqnRef$2, context: ReferenceInfo): Generator<AstNodeDescription>;
2239
2344
  /**
2240
2345
  * Computes the scope for a given reference context.
2241
2346
  *
@@ -2247,11 +2352,11 @@ declare class LikeC4ScopeProvider extends DefaultScopeProvider {
2247
2352
  * It then iterates through the container hierarchy, collecting relevant scopes based on the reference type and container type.
2248
2353
  * Finally, it combines the collected scopes with the global scope to produce the final scope.
2249
2354
  */
2250
- protected computeScope(projectId: ProjectId, context: ReferenceInfo, referenceType?: string): Generator<AstNodeDescription>;
2355
+ protected computeScope(projectId: ProjectId$1, context: ReferenceInfo, referenceType?: string): Generator<AstNodeDescription>;
2251
2356
  /**
2252
2357
  * Create a global scope filtered for the given reference type.
2253
2358
  */
2254
- protected getProjectScope(projectId: ProjectId, referenceType: string, context: ReferenceInfo): Scope;
2359
+ protected getProjectScope(projectId: ProjectId$1, referenceType: string, context: ReferenceInfo): Scope;
2255
2360
  /**
2256
2361
  * Create a global scope filtered for the given reference type.
2257
2362
  */
@@ -2276,15 +2381,15 @@ declare class FqnIndex<AstNd = Element> extends ADisposable {
2276
2381
  constructor(services: LikeC4Services);
2277
2382
  private documents;
2278
2383
  get(document: LikeC4LangiumDocument): DocumentFqnIndex;
2279
- resolve(reference: Referenceable): Fqn$1;
2280
- getFqn(el: AstNd): Fqn$1;
2281
- byFqn(projectId: ProjectId$1, fqn: Fqn$1): Stream<AstNodeDescriptionWithFqn>;
2282
- rootElements(projectId: ProjectId$1): Stream<AstNodeDescriptionWithFqn>;
2283
- directChildrenOf(projectId: ProjectId$1, parent: Fqn$1): Stream<AstNodeDescriptionWithFqn>;
2384
+ resolve(reference: Referenceable): Fqn;
2385
+ getFqn(el: AstNd): Fqn;
2386
+ byFqn(projectId: ProjectId, fqn: Fqn): Stream<AstNodeDescriptionWithFqn>;
2387
+ rootElements(projectId: ProjectId): Stream<AstNodeDescriptionWithFqn>;
2388
+ directChildrenOf(projectId: ProjectId, parent: Fqn): Stream<AstNodeDescriptionWithFqn>;
2284
2389
  /**
2285
2390
  * Returns descedant elements with unique names in the scope
2286
2391
  */
2287
- uniqueDescedants(projectId: ProjectId$1, parent: Fqn$1): Stream<AstNodeDescriptionWithFqn>;
2392
+ uniqueDescedants(projectId: ProjectId, parent: Fqn): Stream<AstNodeDescriptionWithFqn>;
2288
2393
  protected createDocumentIndex(document: LikeC4LangiumDocument): DocumentFqnIndex;
2289
2394
  }
2290
2395
  declare class DocumentFqnIndex {
@@ -2301,28 +2406,28 @@ declare class DocumentFqnIndex {
2301
2406
  * All elements by FQN
2302
2407
  */
2303
2408
  private _byfqn;
2304
- readonly projectId: ProjectId$1;
2409
+ readonly projectId: ProjectId;
2305
2410
  static readonly EMPTY: DocumentFqnIndex;
2306
2411
  constructor(_rootElements: Array<AstNodeDescriptionWithFqn>,
2307
2412
  /**
2308
2413
  * direct children of elements
2309
2414
  */
2310
2415
 
2311
- _children: MultiMap<Fqn$1, AstNodeDescriptionWithFqn>,
2416
+ _children: MultiMap<Fqn, AstNodeDescriptionWithFqn>,
2312
2417
  /**
2313
2418
  * All descendants of an element (unique by name)
2314
2419
  */
2315
2420
 
2316
- _descendants: MultiMap<Fqn$1, AstNodeDescriptionWithFqn>,
2421
+ _descendants: MultiMap<Fqn, AstNodeDescriptionWithFqn>,
2317
2422
  /**
2318
2423
  * All elements by FQN
2319
2424
  */
2320
2425
 
2321
- _byfqn: MultiMap<Fqn$1, AstNodeDescriptionWithFqn>, projectId: ProjectId$1);
2426
+ _byfqn: MultiMap<Fqn, AstNodeDescriptionWithFqn>, projectId: ProjectId);
2322
2427
  rootElements(): readonly AstNodeDescriptionWithFqn[];
2323
- byFqn(fqn: Fqn$1): readonly AstNodeDescriptionWithFqn[];
2324
- children(parent: Fqn$1): readonly AstNodeDescriptionWithFqn[];
2325
- descendants(nodeName: Fqn$1): readonly AstNodeDescriptionWithFqn[];
2428
+ byFqn(fqn: Fqn): readonly AstNodeDescriptionWithFqn[];
2429
+ children(parent: Fqn): readonly AstNodeDescriptionWithFqn[];
2430
+ descendants(nodeName: Fqn): readonly AstNodeDescriptionWithFqn[];
2326
2431
  } //#endregion
2327
2432
  //#region src/model/deployments-index.d.ts
2328
2433
  declare class DeploymentsIndex extends FqnIndex<DeploymentElement> {
@@ -2424,7 +2529,7 @@ declare class LastSeenArtifacts {
2424
2529
  * @param projectId - Project id to look up.
2425
2530
  * @returns LikeC4Styles or undefined.
2426
2531
  */
2427
- styles(projectId: c4.ProjectId): LikeC4Styles$1 | undefined;
2532
+ styles(projectId: c4.ProjectId): LikeC4Styles | undefined;
2428
2533
  /**
2429
2534
  * Returns the last seen computed model for the given project, if available.
2430
2535
  * @param projectId - Project id to look up.
@@ -2433,11 +2538,11 @@ declare class LastSeenArtifacts {
2433
2538
  model(projectId: c4.ProjectId): LikeC4Model.Computed | undefined;
2434
2539
  } //#endregion
2435
2540
  //#region src/model/model-builder.d.ts
2436
- type ModelParsedListener = (projectId: ProjectId, docs: URI[]) => void;
2541
+ type ModelParsedListener = (projectId: ProjectId$1, docs: URI[]) => void;
2437
2542
  interface LikeC4ModelBuilder extends Disposable$1 {
2438
- parseModel(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownParsed> | null>;
2439
- unsafeSyncComputeModel(projectId: ProjectId): LikeC4Model<UnknownComputed>;
2440
- computeModel(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
2543
+ parseModel(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownParsed> | null>;
2544
+ unsafeSyncComputeModel(projectId: ProjectId$1): LikeC4Model<UnknownComputed>;
2545
+ computeModel(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
2441
2546
  onModelParsed(callback: ModelParsedListener): Disposable$1;
2442
2547
  clearCache(): void;
2443
2548
  } //#endregion
@@ -2513,15 +2618,15 @@ declare class LikeC4ModelLocator {
2513
2618
  //#region src/views/LikeC4Views.d.ts
2514
2619
  type GraphvizOut = {
2515
2620
  readonly dot: string;
2516
- readonly diagram: LayoutedView;
2621
+ readonly diagram: LayoutedView$1;
2517
2622
  };
2518
2623
  type GraphvizSvgOut = {
2519
- readonly id: ViewId;
2624
+ readonly id: ViewId$1;
2520
2625
  readonly dot: string;
2521
2626
  readonly svg: string;
2522
2627
  };
2523
2628
  type LayoutViewParams = {
2524
- viewId: ViewId;
2629
+ viewId: ViewId$1;
2525
2630
  /**
2526
2631
  * Type of layout to apply
2527
2632
  * - 'manual' - applies manual layout if any
@@ -2529,8 +2634,9 @@ type LayoutViewParams = {
2529
2634
  * - undefined - returns latest layout as is
2530
2635
  */
2531
2636
  layoutType?: LayoutType | undefined;
2532
- projectId?: ProjectId | undefined;
2533
- cancelToken?: CancellationToken$1 | undefined;
2637
+ projectId?: ProjectId$1 | undefined;
2638
+ cancelToken?: CancellationToken$1 | undefined; /** Optional AI-generated layout hints */
2639
+ layoutHints?: AILayoutHints | undefined;
2534
2640
  };
2535
2641
  interface LikeC4Views {
2536
2642
  readonly layouter: GraphvizLayouter;
@@ -2539,19 +2645,21 @@ interface LikeC4Views {
2539
2645
  *
2540
2646
  * @param projectId - project id, if not specified - uses the default project
2541
2647
  */
2542
- computedViews(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<ComputedView[]>;
2648
+ computedViews(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<ComputedView[]>;
2543
2649
  /**
2544
2650
  * Layouts all views (ignoring any manual snapshots)
2545
2651
  *
2546
2652
  * @param projectId - project id, if not specified - uses the default project
2547
2653
  */
2548
- layoutAllViews(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<GraphvizOut[]>;
2654
+ layoutAllViews(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<GraphvizOut[]>;
2549
2655
  /**
2550
2656
  * Layouts a view.
2551
- * If layoutType is 'manual' - applies manual layout if any.
2552
- * If layoutType is 'auto' - returns latest version with drifts from manual layout if any
2657
+ * If `layoutType` is 'manual' - applies manual layout if any.
2658
+ * If `layoutType` is 'auto' - returns latest version with drifts from manual layout if any
2553
2659
  * If not specified - returns latest layout as is
2554
2660
  *
2661
+ * If `layoutHints` are provided, they will be used, ignoring any manual snapshots, and the resulting layout will not be cached (i.e. it will be computed on every call)
2662
+ *
2555
2663
  * If view not found in model, but there is a snapshot - it will be returned (with empty DOT)
2556
2664
  */
2557
2665
  layoutView(params: LayoutViewParams): Promise<GraphvizOut | null>;
@@ -2560,25 +2668,25 @@ interface LikeC4Views {
2560
2668
  * If diagram has manual layout, it will be used.
2561
2669
  * @param projectId - project id, if not specified - uses the default project
2562
2670
  */
2563
- diagrams(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<Array<DiagramView>>;
2671
+ diagrams(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<Array<DiagramView>>;
2564
2672
  /**
2565
2673
  * Returns all layouted views as Graphviz output (i.e. views with layout computed)
2566
2674
  * @param projectId - project id, if not specified - uses the default project
2567
2675
  */
2568
- viewsAsGraphvizOut(projectId?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<Array<GraphvizSvgOut>>;
2676
+ viewsAsGraphvizOut(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<Array<GraphvizSvgOut>>;
2569
2677
  /**
2570
2678
  * Open view in the preview panel.
2571
2679
  * (works only if running as a vscode extension)
2572
2680
  *
2573
2681
  * @param projectId - project id, if not specified - uses the default project
2574
2682
  */
2575
- openView(viewId: ViewId, projectId?: ProjectId | undefined): Promise<void>;
2683
+ openView(viewId: ViewId$1, projectId?: ProjectId$1 | undefined): Promise<void>;
2576
2684
  /**
2577
2685
  * Computes and layouts an adhoc view (not defined in the model)
2578
2686
  *
2579
2687
  * @param projectId - project id, if not specified - uses the default project
2580
2688
  */
2581
- adhocView(predicates: AdhocViewPredicate[], projectId?: ProjectId | undefined): Promise<LayoutedView>;
2689
+ adhocView(predicates: AdhocViewPredicate[], projectId?: ProjectId$1 | undefined): Promise<LayoutedView$1>;
2582
2690
  } //#endregion
2583
2691
  //#region src/views/index.d.ts
2584
2692
  //#endregion
@@ -2589,6 +2697,10 @@ declare class BaseParser {
2589
2697
  readonly doc: ParsedLikeC4LangiumDocument;
2590
2698
  readonly project: Project;
2591
2699
  isValid: IsValidFn;
2700
+ /** Full URI of the document */
2701
+ docUri: string;
2702
+ /** Path of the document relative to the project root */
2703
+ docPathInProject: string;
2592
2704
  constructor(services: LikeC4Services, doc: ParsedLikeC4LangiumDocument, project: Project);
2593
2705
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: ParserLevel): void;
2594
2706
  tryParse<N extends AstNode, T>(level: ParserLevel, node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
@@ -2640,82 +2752,84 @@ declare class BaseParser {
2640
2752
  declare const DocumentParserFromMixins: {
2641
2753
  new (...args: any[]): {
2642
2754
  parseGlobals(): void;
2643
- parseAndStoreGlobalPredicateGroupOrDynamic(astRule: GlobalPredicateGroup | GlobalDynamicPredicateGroup, id: ProjectId, c4Globals: ParsedAstGlobals): void;
2644
- parseGlobalPredicateGroup(astRule: GlobalPredicateGroup): ProjectId[];
2645
- parseGlobalDynamicPredicateGroup(astRule: GlobalDynamicPredicateGroup): ProjectId[];
2646
- parseGlobalStyleOrGroup(astRule: GlobalStyle | GlobalStyleGroup): ProjectId[];
2755
+ parseAndStoreGlobalPredicateGroupOrDynamic(astRule: GlobalPredicateGroup | GlobalDynamicPredicateGroup, id: ProjectId$1, c4Globals: ParsedAstGlobals): void;
2756
+ parseGlobalPredicateGroup(astRule: GlobalPredicateGroup): ProjectId$1[];
2757
+ parseGlobalDynamicPredicateGroup(astRule: GlobalDynamicPredicateGroup): ProjectId$1[];
2758
+ parseGlobalStyleOrGroup(astRule: GlobalStyle | GlobalStyleGroup): ProjectId$1[];
2647
2759
  parseViews(): void;
2648
2760
  parseElementView(astNode: ElementView, additionalStyles: any[]): ParsedAstElementView;
2649
- parseElementViewRule(astRule: ViewRule): ProjectId;
2650
- parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId;
2651
- parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId;
2761
+ parseElementViewRule(astRule: ViewRule): ProjectId$1;
2762
+ parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId$1;
2763
+ parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId$1;
2652
2764
  parseViewRuleStyleOrGlobalRef(astRule: ViewRuleStyleOrGlobalRef): any;
2653
- parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId;
2654
- parseViewRuleRank(astRule: ViewRuleRank): ProjectId;
2655
- parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId;
2656
- parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId;
2765
+ parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId$1;
2766
+ parseViewRuleRank(astRule: ViewRuleRank): ProjectId$1;
2767
+ parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId$1;
2768
+ parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId$1;
2657
2769
  parseDynamicElementView(astNode: DynamicView, additionalStyles: any[]): ParsedAstDynamicView;
2658
- parseDynamicViewRule(astRule: DynamicViewRule): ProjectId;
2659
- parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId;
2660
- parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId;
2661
- parseDynamicStep(node: DynamicViewStep): ProjectId | ProjectId;
2662
- recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId, target: ProjectId]>): ProjectId[];
2663
- parseDynamicStepSingle(node: DynamicStepSingle): ProjectId;
2664
- parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId, "source", {
2770
+ parseDynamicViewRule(astRule: DynamicViewRule): ProjectId$1;
2771
+ parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId$1;
2772
+ parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId$1;
2773
+ parseDynamicStep(node: DynamicViewStep): ProjectId$1 | ProjectId$1;
2774
+ recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId$1, target: ProjectId$1]>): ProjectId$1[];
2775
+ parseDynamicStepSingle(node: DynamicStepSingle): ProjectId$1;
2776
+ parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId$1, "source", {
2665
2777
  requireExactProps: true;
2666
2778
  }>>;
2667
- parsePredicate(astNode: ExpressionV2): ProjectId;
2668
- parseElementPredicate(astNode: FqnExprOrWith): ProjectId;
2669
- parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId;
2670
- parseElementExpression(astNode: FqnExpr$2): ProjectId;
2671
- parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId;
2672
- parseElementPredicateWith(astNode: FqnExprWith): ProjectId;
2673
- parseRelationPredicate(astNode: RelationExprOrWith): ProjectId;
2674
- parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId;
2675
- parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId;
2676
- parseRelationPredicateWith(astNode: RelationExprWith): ProjectId;
2677
- parseRelationExpression(astNode: RelationExpr$1): ProjectId;
2678
- parseFqnRef(astNode: FqnRef$2): ProjectId;
2679
- parseExpressionV2(astNode: ExpressionV2): ProjectId;
2680
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2681
- parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2682
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2683
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2684
- parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2685
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2686
- parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2687
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2688
- parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2689
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2690
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2691
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2692
- parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2693
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2694
- wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
2779
+ parsePredicate(astNode: ExpressionV2): ProjectId$1;
2780
+ parseElementPredicate(astNode: FqnExprOrWith): ProjectId$1;
2781
+ parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2782
+ parseElementExpression(astNode: FqnExpr$2): ProjectId$1;
2783
+ parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId$1;
2784
+ parseElementPredicateWith(astNode: FqnExprWith): ProjectId$1;
2785
+ parseRelationPredicate(astNode: RelationExprOrWith): ProjectId$1;
2786
+ parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2787
+ parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId$1;
2788
+ parseRelationPredicateWith(astNode: RelationExprWith): ProjectId$1;
2789
+ parseRelationExpression(astNode: RelationExpr$1): ProjectId$1;
2790
+ parseFqnRef(astNode: FqnRef$2): ProjectId$1;
2791
+ parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
2792
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
2793
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
2794
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2795
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
2796
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
2797
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
2798
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
2799
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
2800
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
2801
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
2802
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2803
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
2804
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
2805
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
2806
+ wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
2695
2807
  isValid: IsValidFn;
2808
+ docUri: string;
2809
+ docPathInProject: string;
2696
2810
  readonly services: LikeC4Services;
2697
2811
  readonly doc: ParsedLikeC4LangiumDocument;
2698
2812
  readonly project: Project;
2699
2813
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2700
2814
  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;
2701
2815
  tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2702
- resolveFqn(node: FqnReferenceable): ProjectId;
2816
+ resolveFqn(node: FqnReferenceable): ProjectId$1;
2703
2817
  getAstNodePath(node: AstNode): string;
2704
2818
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2705
2819
  [key: string]: string | string[];
2706
2820
  } | undefined;
2707
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2821
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2708
2822
  convertTags<E extends {
2709
2823
  tags?: Tags;
2710
2824
  }>(withTags?: E | undefined): any;
2711
2825
  parseTags<E extends {
2712
2826
  tags?: Tags;
2713
- }>(withTags?: E): ProjectId<ProjectId> | null;
2714
- convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2715
- parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2716
- parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2827
+ }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
2828
+ convertLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
2829
+ parseLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
2830
+ parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
2717
2831
  parseImageAlias(value: string): string | undefined;
2718
- parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2832
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId$1 | undefined;
2719
2833
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2720
2834
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2721
2835
  parseBaseProps(props: {
@@ -2730,95 +2844,97 @@ declare const DocumentParserFromMixins: {
2730
2844
  technology?: string | undefined;
2731
2845
  }): {
2732
2846
  title?: string;
2733
- summary?: ProjectId;
2734
- description?: ProjectId;
2847
+ summary?: ProjectId$1;
2848
+ description?: ProjectId$1;
2735
2849
  technology?: string;
2736
2850
  };
2737
2851
  parseDeploymentView(astNode: DeploymentView): ParsedAstDeploymentView;
2738
- parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId;
2739
- parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId;
2740
- parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId;
2852
+ parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId$1;
2853
+ parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId$1;
2854
+ parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId$1;
2741
2855
  parseDeployment(): void;
2742
2856
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
2743
2857
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
2744
2858
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
2745
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
2859
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
2746
2860
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
2747
2861
  };
2748
2862
  } & {
2749
2863
  new (...args: any[]): {
2750
2864
  parseViews(): void;
2751
2865
  parseElementView(astNode: ElementView, additionalStyles: any[]): ParsedAstElementView;
2752
- parseElementViewRule(astRule: ViewRule): ProjectId;
2753
- parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId;
2754
- parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId;
2866
+ parseElementViewRule(astRule: ViewRule): ProjectId$1;
2867
+ parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId$1;
2868
+ parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId$1;
2755
2869
  parseViewRuleStyleOrGlobalRef(astRule: ViewRuleStyleOrGlobalRef): any;
2756
- parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId;
2757
- parseViewRuleRank(astRule: ViewRuleRank): ProjectId;
2758
- parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId;
2759
- parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId;
2870
+ parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId$1;
2871
+ parseViewRuleRank(astRule: ViewRuleRank): ProjectId$1;
2872
+ parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId$1;
2873
+ parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId$1;
2760
2874
  parseDynamicElementView(astNode: DynamicView, additionalStyles: any[]): ParsedAstDynamicView;
2761
- parseDynamicViewRule(astRule: DynamicViewRule): ProjectId;
2762
- parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId;
2763
- parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId;
2764
- parseDynamicStep(node: DynamicViewStep): ProjectId | ProjectId;
2765
- recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId, target: ProjectId]>): ProjectId[];
2766
- parseDynamicStepSingle(node: DynamicStepSingle): ProjectId;
2767
- parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId, "source", {
2875
+ parseDynamicViewRule(astRule: DynamicViewRule): ProjectId$1;
2876
+ parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId$1;
2877
+ parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId$1;
2878
+ parseDynamicStep(node: DynamicViewStep): ProjectId$1 | ProjectId$1;
2879
+ recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId$1, target: ProjectId$1]>): ProjectId$1[];
2880
+ parseDynamicStepSingle(node: DynamicStepSingle): ProjectId$1;
2881
+ parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId$1, "source", {
2768
2882
  requireExactProps: true;
2769
2883
  }>>;
2770
- parsePredicate(astNode: ExpressionV2): ProjectId;
2771
- parseElementPredicate(astNode: FqnExprOrWith): ProjectId;
2772
- parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId;
2773
- parseElementExpression(astNode: FqnExpr$2): ProjectId;
2774
- parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId;
2775
- parseElementPredicateWith(astNode: FqnExprWith): ProjectId;
2776
- parseRelationPredicate(astNode: RelationExprOrWith): ProjectId;
2777
- parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId;
2778
- parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId;
2779
- parseRelationPredicateWith(astNode: RelationExprWith): ProjectId;
2780
- parseRelationExpression(astNode: RelationExpr$1): ProjectId;
2781
- parseFqnRef(astNode: FqnRef$2): ProjectId;
2782
- parseExpressionV2(astNode: ExpressionV2): ProjectId;
2783
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2784
- parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2785
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2786
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2787
- parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2788
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2789
- parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2790
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2791
- parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2792
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2793
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2794
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2795
- parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2796
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2797
- wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
2884
+ parsePredicate(astNode: ExpressionV2): ProjectId$1;
2885
+ parseElementPredicate(astNode: FqnExprOrWith): ProjectId$1;
2886
+ parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2887
+ parseElementExpression(astNode: FqnExpr$2): ProjectId$1;
2888
+ parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId$1;
2889
+ parseElementPredicateWith(astNode: FqnExprWith): ProjectId$1;
2890
+ parseRelationPredicate(astNode: RelationExprOrWith): ProjectId$1;
2891
+ parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2892
+ parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId$1;
2893
+ parseRelationPredicateWith(astNode: RelationExprWith): ProjectId$1;
2894
+ parseRelationExpression(astNode: RelationExpr$1): ProjectId$1;
2895
+ parseFqnRef(astNode: FqnRef$2): ProjectId$1;
2896
+ parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
2897
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
2898
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
2899
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
2900
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
2901
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
2902
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
2903
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
2904
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
2905
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
2906
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
2907
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
2908
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
2909
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
2910
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
2911
+ wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
2798
2912
  isValid: IsValidFn;
2913
+ docUri: string;
2914
+ docPathInProject: string;
2799
2915
  readonly services: LikeC4Services;
2800
2916
  readonly doc: ParsedLikeC4LangiumDocument;
2801
2917
  readonly project: Project;
2802
2918
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2803
2919
  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;
2804
2920
  tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2805
- resolveFqn(node: FqnReferenceable): ProjectId;
2921
+ resolveFqn(node: FqnReferenceable): ProjectId$1;
2806
2922
  getAstNodePath(node: AstNode): string;
2807
2923
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2808
2924
  [key: string]: string | string[];
2809
2925
  } | undefined;
2810
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2926
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2811
2927
  convertTags<E extends {
2812
2928
  tags?: Tags;
2813
2929
  }>(withTags?: E | undefined): any;
2814
2930
  parseTags<E extends {
2815
2931
  tags?: Tags;
2816
- }>(withTags?: E): ProjectId<ProjectId> | null;
2817
- convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2818
- parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2819
- parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2932
+ }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
2933
+ convertLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
2934
+ parseLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
2935
+ parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
2820
2936
  parseImageAlias(value: string): string | undefined;
2821
- parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2937
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId$1 | undefined;
2822
2938
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2823
2939
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2824
2940
  parseBaseProps(props: {
@@ -2833,19 +2949,19 @@ declare const DocumentParserFromMixins: {
2833
2949
  technology?: string | undefined;
2834
2950
  }): {
2835
2951
  title?: string;
2836
- summary?: ProjectId;
2837
- description?: ProjectId;
2952
+ summary?: ProjectId$1;
2953
+ description?: ProjectId$1;
2838
2954
  technology?: string;
2839
2955
  };
2840
2956
  parseDeploymentView(astNode: DeploymentView): ParsedAstDeploymentView;
2841
- parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId;
2842
- parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId;
2843
- parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId;
2957
+ parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId$1;
2958
+ parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId$1;
2959
+ parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId$1;
2844
2960
  parseDeployment(): void;
2845
2961
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
2846
2962
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
2847
2963
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
2848
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
2964
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
2849
2965
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
2850
2966
  };
2851
2967
  } & {
@@ -2854,29 +2970,31 @@ declare const DocumentParserFromMixins: {
2854
2970
  parseElementSpecificationNode(specAst: SpecificationElementKind): {};
2855
2971
  parseElementSpecificationNode(specAst: SpecificationDeploymentNodeKind): {};
2856
2972
  isValid: IsValidFn;
2973
+ docUri: string;
2974
+ docPathInProject: string;
2857
2975
  readonly services: LikeC4Services;
2858
2976
  readonly doc: ParsedLikeC4LangiumDocument;
2859
2977
  readonly project: Project;
2860
2978
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2861
2979
  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;
2862
2980
  tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2863
- resolveFqn(node: FqnReferenceable): ProjectId;
2981
+ resolveFqn(node: FqnReferenceable): ProjectId$1;
2864
2982
  getAstNodePath(node: AstNode): string;
2865
2983
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2866
2984
  [key: string]: string | string[];
2867
2985
  } | undefined;
2868
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
2986
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2869
2987
  convertTags<E extends {
2870
2988
  tags?: Tags;
2871
2989
  }>(withTags?: E | undefined): any;
2872
2990
  parseTags<E extends {
2873
2991
  tags?: Tags;
2874
- }>(withTags?: E): ProjectId<ProjectId> | null;
2875
- convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2876
- parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2877
- parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
2992
+ }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
2993
+ convertLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
2994
+ parseLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
2995
+ parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
2878
2996
  parseImageAlias(value: string): string | undefined;
2879
- parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
2997
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId$1 | undefined;
2880
2998
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2881
2999
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2882
3000
  parseBaseProps(props: {
@@ -2891,65 +3009,67 @@ declare const DocumentParserFromMixins: {
2891
3009
  technology?: string | undefined;
2892
3010
  }): {
2893
3011
  title?: string;
2894
- summary?: ProjectId;
2895
- description?: ProjectId;
3012
+ summary?: ProjectId$1;
3013
+ description?: ProjectId$1;
2896
3014
  technology?: string;
2897
3015
  };
2898
3016
  };
2899
3017
  } & {
2900
3018
  new (...args: any[]): {
2901
- parsePredicate(astNode: ExpressionV2): ProjectId;
2902
- parseElementPredicate(astNode: FqnExprOrWith): ProjectId;
2903
- parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId;
2904
- parseElementExpression(astNode: FqnExpr$2): ProjectId;
2905
- parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId;
2906
- parseElementPredicateWith(astNode: FqnExprWith): ProjectId;
2907
- parseRelationPredicate(astNode: RelationExprOrWith): ProjectId;
2908
- parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId;
2909
- parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId;
2910
- parseRelationPredicateWith(astNode: RelationExprWith): ProjectId;
2911
- parseRelationExpression(astNode: RelationExpr$1): ProjectId;
2912
- parseFqnRef(astNode: FqnRef$2): ProjectId;
2913
- parseExpressionV2(astNode: ExpressionV2): ProjectId;
2914
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2915
- parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2916
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2917
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2918
- parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2919
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2920
- parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2921
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2922
- parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2923
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2924
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2925
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2926
- parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2927
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2928
- wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3019
+ parsePredicate(astNode: ExpressionV2): ProjectId$1;
3020
+ parseElementPredicate(astNode: FqnExprOrWith): ProjectId$1;
3021
+ parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
3022
+ parseElementExpression(astNode: FqnExpr$2): ProjectId$1;
3023
+ parseElementPredicateWhere(astNode: FqnExprWhere): ProjectId$1;
3024
+ parseElementPredicateWith(astNode: FqnExprWith): ProjectId$1;
3025
+ parseRelationPredicate(astNode: RelationExprOrWith): ProjectId$1;
3026
+ parseRelationPredicateOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
3027
+ parseRelationPredicateWhere(astNode: RelationExprWhere): ProjectId$1;
3028
+ parseRelationPredicateWith(astNode: RelationExprWith): ProjectId$1;
3029
+ parseRelationExpression(astNode: RelationExpr$1): ProjectId$1;
3030
+ parseFqnRef(astNode: FqnRef$2): ProjectId$1;
3031
+ parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
3032
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
3033
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
3034
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
3035
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
3036
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
3037
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
3038
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
3039
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
3040
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
3041
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
3042
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
3043
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
3044
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
3045
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
3046
+ wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
2929
3047
  isValid: IsValidFn;
3048
+ docUri: string;
3049
+ docPathInProject: string;
2930
3050
  readonly services: LikeC4Services;
2931
3051
  readonly doc: ParsedLikeC4LangiumDocument;
2932
3052
  readonly project: Project;
2933
3053
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2934
3054
  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;
2935
3055
  tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
2936
- resolveFqn(node: FqnReferenceable): ProjectId;
3056
+ resolveFqn(node: FqnReferenceable): ProjectId$1;
2937
3057
  getAstNodePath(node: AstNode): string;
2938
3058
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
2939
3059
  [key: string]: string | string[];
2940
3060
  } | undefined;
2941
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3061
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
2942
3062
  convertTags<E extends {
2943
3063
  tags?: Tags;
2944
3064
  }>(withTags?: E | undefined): any;
2945
3065
  parseTags<E extends {
2946
3066
  tags?: Tags;
2947
- }>(withTags?: E): ProjectId<ProjectId> | null;
2948
- convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2949
- parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2950
- parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3067
+ }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
3068
+ convertLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3069
+ parseLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3070
+ parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
2951
3071
  parseImageAlias(value: string): string | undefined;
2952
- parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3072
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId$1 | undefined;
2953
3073
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
2954
3074
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
2955
3075
  parseBaseProps(props: {
@@ -2964,58 +3084,60 @@ declare const DocumentParserFromMixins: {
2964
3084
  technology?: string | undefined;
2965
3085
  }): {
2966
3086
  title?: string;
2967
- summary?: ProjectId;
2968
- description?: ProjectId;
3087
+ summary?: ProjectId$1;
3088
+ description?: ProjectId$1;
2969
3089
  technology?: string;
2970
3090
  };
2971
3091
  };
2972
3092
  } & {
2973
3093
  new (...args: any[]): {
2974
3094
  parseDeploymentView(astNode: DeploymentView): ParsedAstDeploymentView;
2975
- parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId;
2976
- parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId;
2977
- parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId;
2978
- parseFqnRef(astNode: FqnRef$2): ProjectId;
2979
- parseExpressionV2(astNode: ExpressionV2): ProjectId;
2980
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
2981
- parseFqnExprWith(astNode: FqnExprWith): ProjectId;
2982
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
2983
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
2984
- parseFqnExpr(astNode: FqnExpr$2): ProjectId;
2985
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
2986
- parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
2987
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
2988
- parseRelationExprWith(astNode: RelationExprWith): ProjectId;
2989
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
2990
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
2991
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
2992
- parseRelationExpr(astNode: RelationExpr$1): ProjectId;
2993
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
2994
- wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3095
+ parseDeploymentViewRule(astRule: DeploymentViewRule): ProjectId$1;
3096
+ parseDeploymentViewRulePredicate(astRule: DeploymentViewRulePredicate): ProjectId$1;
3097
+ parseDeploymentViewRuleStyle(astRule: DeploymentViewRuleStyle): ProjectId$1;
3098
+ parseFqnRef(astNode: FqnRef$2): ProjectId$1;
3099
+ parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
3100
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
3101
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
3102
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
3103
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
3104
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
3105
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
3106
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
3107
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
3108
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
3109
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
3110
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
3111
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
3112
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
3113
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
3114
+ wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
2995
3115
  isValid: IsValidFn;
3116
+ docUri: string;
3117
+ docPathInProject: string;
2996
3118
  readonly services: LikeC4Services;
2997
3119
  readonly doc: ParsedLikeC4LangiumDocument;
2998
3120
  readonly project: Project;
2999
3121
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3000
3122
  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;
3001
3123
  tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3002
- resolveFqn(node: FqnReferenceable): ProjectId;
3124
+ resolveFqn(node: FqnReferenceable): ProjectId$1;
3003
3125
  getAstNodePath(node: AstNode): string;
3004
3126
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3005
3127
  [key: string]: string | string[];
3006
3128
  } | undefined;
3007
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3129
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3008
3130
  convertTags<E extends {
3009
3131
  tags?: Tags;
3010
3132
  }>(withTags?: E | undefined): any;
3011
3133
  parseTags<E extends {
3012
3134
  tags?: Tags;
3013
- }>(withTags?: E): ProjectId<ProjectId> | null;
3014
- convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3015
- parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3016
- parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3135
+ }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
3136
+ convertLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3137
+ parseLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3138
+ parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
3017
3139
  parseImageAlias(value: string): string | undefined;
3018
- parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3140
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId$1 | undefined;
3019
3141
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3020
3142
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3021
3143
  parseBaseProps(props: {
@@ -3030,15 +3152,15 @@ declare const DocumentParserFromMixins: {
3030
3152
  technology?: string | undefined;
3031
3153
  }): {
3032
3154
  title?: string;
3033
- summary?: ProjectId;
3034
- description?: ProjectId;
3155
+ summary?: ProjectId$1;
3156
+ description?: ProjectId$1;
3035
3157
  technology?: string;
3036
3158
  };
3037
3159
  parseDeployment(): void;
3038
3160
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
3039
3161
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
3040
3162
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
3041
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
3163
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
3042
3164
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
3043
3165
  };
3044
3166
  } & {
@@ -3047,49 +3169,51 @@ declare const DocumentParserFromMixins: {
3047
3169
  parseDeploymentNode(astNode: DeploymentNode): ParsedAstDeployment.Node;
3048
3170
  parseDeployedInstance(astNode: DeployedInstance): ParsedAstDeployment.Instance;
3049
3171
  parseExtendDeployment(astNode: ExtendDeployment): ParsedAstExtend | null;
3050
- _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId;
3172
+ _resolveDeploymentRelationSource(node: DeploymentRelation): ProjectId$1;
3051
3173
  parseDeploymentRelation(astNode: DeploymentRelation): ParsedAstDeploymentRelation;
3052
- parseFqnRef(astNode: FqnRef$2): ProjectId;
3053
- parseExpressionV2(astNode: ExpressionV2): ProjectId;
3054
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
3055
- parseFqnExprWith(astNode: FqnExprWith): ProjectId;
3056
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
3057
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
3058
- parseFqnExpr(astNode: FqnExpr$2): ProjectId;
3059
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
3060
- parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
3061
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
3062
- parseRelationExprWith(astNode: RelationExprWith): ProjectId;
3063
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
3064
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
3065
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
3066
- parseRelationExpr(astNode: RelationExpr$1): ProjectId;
3067
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
3068
- wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3174
+ parseFqnRef(astNode: FqnRef$2): ProjectId$1;
3175
+ parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
3176
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
3177
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
3178
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
3179
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
3180
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
3181
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
3182
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
3183
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
3184
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
3185
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
3186
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
3187
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
3188
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
3189
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
3190
+ wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
3069
3191
  isValid: IsValidFn;
3192
+ docUri: string;
3193
+ docPathInProject: string;
3070
3194
  readonly services: LikeC4Services;
3071
3195
  readonly doc: ParsedLikeC4LangiumDocument;
3072
3196
  readonly project: Project;
3073
3197
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3074
3198
  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;
3075
3199
  tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3076
- resolveFqn(node: FqnReferenceable): ProjectId;
3200
+ resolveFqn(node: FqnReferenceable): ProjectId$1;
3077
3201
  getAstNodePath(node: AstNode): string;
3078
3202
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3079
3203
  [key: string]: string | string[];
3080
3204
  } | undefined;
3081
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3205
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3082
3206
  convertTags<E extends {
3083
3207
  tags?: Tags;
3084
3208
  }>(withTags?: E | undefined): any;
3085
3209
  parseTags<E extends {
3086
3210
  tags?: Tags;
3087
- }>(withTags?: E): ProjectId<ProjectId> | null;
3088
- convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3089
- parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3090
- parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3211
+ }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
3212
+ convertLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3213
+ parseLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3214
+ parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
3091
3215
  parseImageAlias(value: string): string | undefined;
3092
- parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3216
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId$1 | undefined;
3093
3217
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3094
3218
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3095
3219
  parseBaseProps(props: {
@@ -3104,8 +3228,8 @@ declare const DocumentParserFromMixins: {
3104
3228
  technology?: string | undefined;
3105
3229
  }): {
3106
3230
  title?: string;
3107
- summary?: ProjectId;
3108
- description?: ProjectId;
3231
+ summary?: ProjectId$1;
3232
+ description?: ProjectId$1;
3109
3233
  technology?: string;
3110
3234
  };
3111
3235
  };
@@ -3115,49 +3239,51 @@ declare const DocumentParserFromMixins: {
3115
3239
  parseElement(astNode: Element): ParsedAstElement;
3116
3240
  parseExtendElement(astNode: ExtendElement): ParsedAstExtend | null;
3117
3241
  parseExtendRelation(astNode: ExtendRelation): ParsedAstExtendRelation | null;
3118
- _resolveRelationSource(node: Relation): ProjectId | ProjectId;
3242
+ _resolveRelationSource(node: Relation): ProjectId$1 | ProjectId$1;
3119
3243
  parseRelation(astNode: Relation): ParsedAstRelation;
3120
- parseFqnRef(astNode: FqnRef$2): ProjectId;
3121
- parseExpressionV2(astNode: ExpressionV2): ProjectId;
3122
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
3123
- parseFqnExprWith(astNode: FqnExprWith): ProjectId;
3124
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
3125
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
3126
- parseFqnExpr(astNode: FqnExpr$2): ProjectId;
3127
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
3128
- parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
3129
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
3130
- parseRelationExprWith(astNode: RelationExprWith): ProjectId;
3131
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
3132
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
3133
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
3134
- parseRelationExpr(astNode: RelationExpr$1): ProjectId;
3135
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
3136
- wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3244
+ parseFqnRef(astNode: FqnRef$2): ProjectId$1;
3245
+ parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
3246
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
3247
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
3248
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
3249
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
3250
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
3251
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
3252
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
3253
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
3254
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
3255
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
3256
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
3257
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
3258
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
3259
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
3260
+ wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
3137
3261
  isValid: IsValidFn;
3262
+ docUri: string;
3263
+ docPathInProject: string;
3138
3264
  readonly services: LikeC4Services;
3139
3265
  readonly doc: ParsedLikeC4LangiumDocument;
3140
3266
  readonly project: Project;
3141
3267
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3142
3268
  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;
3143
3269
  tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3144
- resolveFqn(node: FqnReferenceable): ProjectId;
3270
+ resolveFqn(node: FqnReferenceable): ProjectId$1;
3145
3271
  getAstNodePath(node: AstNode): string;
3146
3272
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3147
3273
  [key: string]: string | string[];
3148
3274
  } | undefined;
3149
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3275
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3150
3276
  convertTags<E extends {
3151
3277
  tags?: Tags;
3152
3278
  }>(withTags?: E | undefined): any;
3153
3279
  parseTags<E extends {
3154
3280
  tags?: Tags;
3155
- }>(withTags?: E): ProjectId<ProjectId> | null;
3156
- convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3157
- parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3158
- parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3281
+ }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
3282
+ convertLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3283
+ parseLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3284
+ parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
3159
3285
  parseImageAlias(value: string): string | undefined;
3160
- parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3286
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId$1 | undefined;
3161
3287
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3162
3288
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3163
3289
  parseBaseProps(props: {
@@ -3172,8 +3298,8 @@ declare const DocumentParserFromMixins: {
3172
3298
  technology?: string | undefined;
3173
3299
  }): {
3174
3300
  title?: string;
3175
- summary?: ProjectId;
3176
- description?: ProjectId;
3301
+ summary?: ProjectId$1;
3302
+ description?: ProjectId$1;
3177
3303
  technology?: string;
3178
3304
  };
3179
3305
  };
@@ -3181,29 +3307,31 @@ declare const DocumentParserFromMixins: {
3181
3307
  new (...args: any[]): {
3182
3308
  parseImports(): void;
3183
3309
  isValid: IsValidFn;
3310
+ docUri: string;
3311
+ docPathInProject: string;
3184
3312
  readonly services: LikeC4Services;
3185
3313
  readonly doc: ParsedLikeC4LangiumDocument;
3186
3314
  readonly project: Project;
3187
3315
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3188
3316
  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;
3189
3317
  tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3190
- resolveFqn(node: FqnReferenceable): ProjectId;
3318
+ resolveFqn(node: FqnReferenceable): ProjectId$1;
3191
3319
  getAstNodePath(node: AstNode): string;
3192
3320
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3193
3321
  [key: string]: string | string[];
3194
3322
  } | undefined;
3195
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3323
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3196
3324
  convertTags<E extends {
3197
3325
  tags?: Tags;
3198
3326
  }>(withTags?: E | undefined): any;
3199
3327
  parseTags<E extends {
3200
3328
  tags?: Tags;
3201
- }>(withTags?: E): ProjectId<ProjectId> | null;
3202
- convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3203
- parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3204
- parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3329
+ }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
3330
+ convertLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3331
+ parseLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3332
+ parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
3205
3333
  parseImageAlias(value: string): string | undefined;
3206
- parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3334
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId$1 | undefined;
3207
3335
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3208
3336
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3209
3337
  parseBaseProps(props: {
@@ -3218,54 +3346,56 @@ declare const DocumentParserFromMixins: {
3218
3346
  technology?: string | undefined;
3219
3347
  }): {
3220
3348
  title?: string;
3221
- summary?: ProjectId;
3222
- description?: ProjectId;
3349
+ summary?: ProjectId$1;
3350
+ description?: ProjectId$1;
3223
3351
  technology?: string;
3224
3352
  };
3225
3353
  };
3226
3354
  } & {
3227
3355
  new (...args: any[]): {
3228
- parseFqnRef(astNode: FqnRef$2): ProjectId;
3229
- parseExpressionV2(astNode: ExpressionV2): ProjectId;
3230
- parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId;
3231
- parseFqnExprWith(astNode: FqnExprWith): ProjectId;
3232
- parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId;
3233
- parseFqnExprWhere(astNode: FqnExprWhere): ProjectId;
3234
- parseFqnExpr(astNode: FqnExpr$2): ProjectId;
3235
- parseFqnRefExpr(astNode: FqnRefExpr): ProjectId;
3236
- parseFqnExpressions(astNode: FqnExpressions): ProjectId[];
3237
- parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId;
3238
- parseRelationExprWith(astNode: RelationExprWith): ProjectId;
3239
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId["customRelation"], "expr">;
3240
- parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId;
3241
- parseRelationExprWhere(astNode: RelationExprWhere): ProjectId;
3242
- parseRelationExpr(astNode: RelationExpr$1): ProjectId;
3243
- parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId | null;
3244
- wrapInWhere(expr: ProjectId, condition: ProjectId | null): ProjectId;
3356
+ parseFqnRef(astNode: FqnRef$2): ProjectId$1;
3357
+ parseExpressionV2(astNode: ExpressionV2): ProjectId$1;
3358
+ parseFqnExprOrWith(astNode: FqnExprOrWith): ProjectId$1;
3359
+ parseFqnExprWith(astNode: FqnExprWith): ProjectId$1;
3360
+ parseFqnExprOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
3361
+ parseFqnExprWhere(astNode: FqnExprWhere): ProjectId$1;
3362
+ parseFqnExpr(astNode: FqnExpr$2): ProjectId$1;
3363
+ parseFqnRefExpr(astNode: FqnRefExpr): ProjectId$1;
3364
+ parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
3365
+ parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
3366
+ parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
3367
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
3368
+ parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
3369
+ parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
3370
+ parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
3371
+ parseInlineKindCondition(astNode: OutgoingRelationExpr): ProjectId$1 | null;
3372
+ wrapInWhere(expr: ProjectId$1, condition: ProjectId$1 | null): ProjectId$1;
3245
3373
  isValid: IsValidFn;
3374
+ docUri: string;
3375
+ docPathInProject: string;
3246
3376
  readonly services: LikeC4Services;
3247
3377
  readonly doc: ParsedLikeC4LangiumDocument;
3248
3378
  readonly project: Project;
3249
3379
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3250
3380
  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;
3251
3381
  tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3252
- resolveFqn(node: FqnReferenceable): ProjectId;
3382
+ resolveFqn(node: FqnReferenceable): ProjectId$1;
3253
3383
  getAstNodePath(node: AstNode): string;
3254
3384
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
3255
3385
  [key: string]: string | string[];
3256
3386
  } | undefined;
3257
- parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId | undefined;
3387
+ parseMarkdownOrString(markdownOrString: MarkdownOrString | undefined): ProjectId$1 | undefined;
3258
3388
  convertTags<E extends {
3259
3389
  tags?: Tags;
3260
3390
  }>(withTags?: E | undefined): any;
3261
3391
  parseTags<E extends {
3262
3392
  tags?: Tags;
3263
- }>(withTags?: E): ProjectId<ProjectId> | null;
3264
- convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3265
- parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
3266
- parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
3393
+ }>(withTags?: E): ProjectId$1<ProjectId$1> | null;
3394
+ convertLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3395
+ parseLinks(source?: LinkProperty["$container"]): ProjectId$1<ProjectId$1> | undefined;
3396
+ parseIconProperty(prop: IconProperty | undefined): ProjectId$1 | undefined;
3267
3397
  parseImageAlias(value: string): string | undefined;
3268
- parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
3398
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId$1 | undefined;
3269
3399
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
3270
3400
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
3271
3401
  parseBaseProps(props: {
@@ -3280,8 +3410,8 @@ declare const DocumentParserFromMixins: {
3280
3410
  technology?: string | undefined;
3281
3411
  }): {
3282
3412
  title?: string;
3283
- summary?: ProjectId;
3284
- description?: ProjectId;
3413
+ summary?: ProjectId$1;
3414
+ description?: ProjectId$1;
3285
3415
  technology?: string;
3286
3416
  };
3287
3417
  };
@@ -3291,7 +3421,7 @@ declare class LikeC4ModelParser {
3291
3421
  private services;
3292
3422
  protected cachedParsers: any;
3293
3423
  constructor(services: LikeC4Services);
3294
- documents(projectId: ProjectId): Stream<ParsedLikeC4LangiumDocument>;
3424
+ documents(projectId: ProjectId$1): Stream<ParsedLikeC4LangiumDocument>;
3295
3425
  parse(doc: LangiumDocument): ParsedLikeC4LangiumDocument;
3296
3426
  forDocument(doc: LangiumDocument): DocumentParser;
3297
3427
  private createParser;
@@ -3311,24 +3441,26 @@ declare class LikeC4ModelChanges {
3311
3441
  change
3312
3442
  }: {
3313
3443
  lookup: ViewLocateResult;
3314
- change: Exclude<ViewChange, ViewChange.SaveViewSnapshot | ViewChange.ResetManualLayout>;
3444
+ change: Exclude<ViewChange, ViewChange.SaveViewSnapshot | ViewChange.ResetManualLayout | ViewChange.ChangeProperty>;
3315
3445
  }): {
3316
3446
  modifiedRange: Range;
3317
3447
  edits: TextEdit[];
3318
3448
  };
3449
+ protected applyTextEdits(doc: ParsedLikeC4LangiumDocument, edits: TextEdit[]): Promise<boolean>;
3319
3450
  } //#endregion
3320
3451
  //#region src/LikeC4LanguageServices.d.ts
3321
3452
  interface LikeC4LanguageServices {
3322
3453
  readonly views: LikeC4Views;
3323
3454
  readonly builder: LikeC4ModelBuilder;
3324
3455
  readonly workspaceUri: URI;
3456
+ readonly workspacePath: string;
3325
3457
  readonly projectsManager: ProjectsManager;
3326
3458
  readonly editor: LikeC4ModelChanges;
3327
3459
  /**
3328
3460
  * Returns all projects with relevant documents
3329
3461
  */
3330
- projects(): NonEmptyArray<{
3331
- id: ProjectId;
3462
+ projects(): NonEmptyArray$1<{
3463
+ id: ProjectId$1;
3332
3464
  folder: URI;
3333
3465
  title: string;
3334
3466
  documents: ReadonlyArray<URI>;
@@ -3337,8 +3469,8 @@ interface LikeC4LanguageServices {
3337
3469
  /**
3338
3470
  * Returns project by ID, returns default project if no ID is specified
3339
3471
  */
3340
- project(projectId?: ProjectId): {
3341
- id: ProjectId;
3472
+ project(projectId?: ProjectId$1): {
3473
+ id: ProjectId$1;
3342
3474
  folder: URI;
3343
3475
  title: string;
3344
3476
  documents: ReadonlyArray<URI>;
@@ -3355,21 +3487,21 @@ interface LikeC4LanguageServices {
3355
3487
  *
3356
3488
  * If no {@link project} is specified, returns for default project
3357
3489
  */
3358
- computedModel(project?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
3490
+ computedModel(project?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
3359
3491
  /**
3360
3492
  * Returns {@link LikeC4Model} of the specified project, with layouted views {@link LayoutedView}
3361
3493
  * Ready for rendering. Applies manual layouts if available.
3362
3494
  *
3363
3495
  * If no {@link project} is specified, returns for default project
3364
3496
  */
3365
- layoutedModel(project?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownLayouted>>;
3497
+ layoutedModel(project?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownLayouted>>;
3366
3498
  /**
3367
3499
  * Returns diagrams (i.e. layouted views {@link LayoutedView}) for the specified project
3368
3500
  * Applies manual layouts if available.
3369
3501
  *
3370
3502
  * If no {@link project} is specified, returns diagrams for default project
3371
3503
  */
3372
- diagrams(project?: ProjectId | undefined, cancelToken?: CancellationToken$1): Promise<LayoutedView[]>;
3504
+ diagrams(project?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LayoutedView$1[]>;
3373
3505
  getErrors(): Array<{
3374
3506
  message: string;
3375
3507
  line: number;
@@ -3403,7 +3535,7 @@ interface LikeC4LanguageServices {
3403
3535
  */
3404
3536
  interface FormatOptions {
3405
3537
  /** Include all documents from these projects. */
3406
- projectIds?: ReadonlyArray<ProjectId>;
3538
+ projectIds?: ReadonlyArray<ProjectId$1>;
3407
3539
  /** Include these specific documents (by URI string). */
3408
3540
  documentUris?: ReadonlyArray<string>;
3409
3541
  /** Size of a tab in spaces (default: 2). */
@@ -3462,7 +3594,7 @@ declare class LikeC4DocumentSymbolProvider implements DocumentSymbolProvider {
3462
3594
  protected getSpecSymbol(astSpec: SpecificationRule): DocumentSymbol[];
3463
3595
  protected getModelSymbol(astModel: Model): DocumentSymbol[];
3464
3596
  protected getDeploymentModelSymbol(astModel: ModelDeployments): DocumentSymbol[];
3465
- protected getElementsSymbol(el: Element | Relation | ExtendElement): DocumentSymbol[];
3597
+ protected getElementsSymbol(el: Element | Relation | ExtendElement, parentFqn?: string): DocumentSymbol[];
3466
3598
  protected getExtendElementSymbol(astElement: ExtendElement): DocumentSymbol[];
3467
3599
  protected getElementSymbol(astElement: Element): DocumentSymbol[];
3468
3600
  protected getModelViewsSymbol(astViews: ModelViews): DocumentSymbol[];
@@ -3499,7 +3631,7 @@ declare class LikeC4HoverProvider extends AstNodeHoverProvider {
3499
3631
  * @param projectId - The project identifier for constructing view links.
3500
3632
  * @returns Markdown string with model details, or undefined if no details available.
3501
3633
  */
3502
- protected getElementModelHover(model: ElementModel, projectId: ProjectId): string | undefined;
3634
+ protected getElementModelHover(model: ElementModel, projectId: ProjectId$1): string | undefined;
3503
3635
  /**
3504
3636
  * Builds hover content for a deployment node (id, title, kind, summary).
3505
3637
  * @param node - The deployment node AST node to generate hover content for.
@@ -3622,4 +3754,123 @@ interface LikeC4AddedServices {
3622
3754
  }
3623
3755
  type LikeC4Services = LangiumServices & LikeC4AddedServices;
3624
3756
  //#endregion
3625
- export { LikeC4Views as a, LikeC4SharedServices as i, LikeC4ModelBuilder as n, ProjectsManager as o, LikeC4Services as r, LikeC4LanguageServices as t };
3757
+ //#region ../language-services/dist/_chunks/options.d.mts
3758
+ //#region src/common/LikeC4.d.ts
3759
+ interface LikeC4Langium {
3760
+ shared: LikeC4SharedServices;
3761
+ likec4: LikeC4Services;
3762
+ }
3763
+ declare class LikeC4 {
3764
+ protected readonly langium: LikeC4Langium;
3765
+ protected readonly logger: Logger;
3766
+ constructor(langium: LikeC4Langium, logger?: Logger);
3767
+ /**
3768
+ * File system path to the workspace root
3769
+ */
3770
+ get workspace(): any;
3771
+ /**
3772
+ * URI of the workspace root
3773
+ */
3774
+ get workspaceURI(): any;
3775
+ /**
3776
+ * URL of the workspace root
3777
+ */
3778
+ get workspaceURL(): any;
3779
+ get languageServices(): LikeC4LanguageServices;
3780
+ get projectsManager(): ProjectsManager;
3781
+ get viewsService(): LikeC4Views;
3782
+ get modelBuilder(): LikeC4ModelBuilder;
3783
+ private get LangiumDocuments();
3784
+ ensureSingleProject(): void;
3785
+ /**
3786
+ * Diagram is a computed view, layouted using Graphviz
3787
+ * If diagram has manual layout, it will be used.
3788
+ * Used in React components
3789
+ */
3790
+ diagrams(project?: string | undefined): Promise<LayoutedView[]>;
3791
+ /**
3792
+ * Builds LikeC4Model from all documents
3793
+ * Only computes view predicates {@link ComputedView} - i.e. no layout
3794
+ * Not ready for rendering, but enough to traverse
3795
+ *
3796
+ * Sync version does not read manual layouts
3797
+ * Use {@link computedModel} for a version that includes manual layouts
3798
+ */
3799
+ syncComputedModel(project?: string | undefined): LikeC4Model.Computed;
3800
+ /**
3801
+ * Builds LikeC4Model from all documents
3802
+ * Only computes view predicates {@link ComputedView} - i.e. no layout
3803
+ * Not ready for rendering, but enough to traverse
3804
+ */
3805
+ computedModel(project?: string | undefined): Promise<LikeC4Model.Computed>;
3806
+ projects(): NonEmptyArray<ProjectId>;
3807
+ /**
3808
+ * Same as {@link computedModel()}, but also applies layout
3809
+ * Ready for rendering
3810
+ */
3811
+ layoutedModel(project?: string | undefined): Promise<LikeC4Model.Layouted>;
3812
+ getErrors(): Array<{
3813
+ message: string;
3814
+ line: number;
3815
+ range: {
3816
+ start: {
3817
+ line: number;
3818
+ character: number;
3819
+ };
3820
+ end: {
3821
+ line: number;
3822
+ character: number;
3823
+ };
3824
+ };
3825
+ sourceFsPath: string;
3826
+ }>;
3827
+ hasErrors(): boolean;
3828
+ /**
3829
+ * @returns true if there are errors
3830
+ */
3831
+ printErrors(): boolean;
3832
+ /**
3833
+ * Returns the number of parsed documents in the workspace
3834
+ */
3835
+ documentCount(): number;
3836
+ /**
3837
+ * @returns a function to dispose the listener
3838
+ */
3839
+ onModelUpdate(listener: () => void): () => void;
3840
+ /**
3841
+ * Formats documents and returns a map of document URI → formatted source text.
3842
+ *
3843
+ * Target selection uses union semantics:
3844
+ * - Omit both `projects` and `documentUris` to format **all** documents.
3845
+ * - Provide `projects` to include all documents from those projects.
3846
+ * - Provide `documentUris` to include specific documents.
3847
+ * - Provide both to format the **union** (deduplicated).
3848
+ */
3849
+ format(options?: LikeC4FormatOptions): Promise<Map<string, string>>;
3850
+ dispose(): Promise<void>;
3851
+ [Symbol.asyncDispose](): Promise<void>;
3852
+ }
3853
+ /**
3854
+ * Options for {@link LikeC4.format}.
3855
+ *
3856
+ * Same as {@link FormatOptions} but uses project name strings instead of {@link ProjectId}.
3857
+ */
3858
+ interface LikeC4FormatOptions {
3859
+ /** Include all documents from these projects (by name). */
3860
+ projects?: ReadonlyArray<string>;
3861
+ /** Include these specific documents (by URI string). */
3862
+ documentUris?: ReadonlyArray<string>;
3863
+ /** Size of a tab in spaces (default: 2). */
3864
+ tabSize?: number;
3865
+ /** Prefer spaces over tabs (default: true). */
3866
+ insertSpaces?: boolean;
3867
+ /** Trim trailing whitespace on a line. */
3868
+ trimTrailingWhitespace?: boolean;
3869
+ /** Insert a newline character at the end of the file if one does not exist. */
3870
+ insertFinalNewline?: boolean;
3871
+ /** Trim all newlines after the final newline at the end of the file. */
3872
+ trimFinalNewlines?: boolean;
3873
+ } //#endregion
3874
+ //#region src/common/options.d.ts
3875
+ //#endregion
3876
+ export { LikeC4LanguageServices as n, LikeC4 as t };