likec4 1.58.0 → 1.59.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 (63) hide show
  1. package/__app__/codegen/webcomponent.mjs +14 -14
  2. package/__app__/src/chunks/AIChat.mjs +153 -156
  3. package/__app__/src/chunks/LikeC4Styles.mjs +1553 -1255
  4. package/__app__/src/chunks/ProjectsOverview.mjs +127 -130
  5. package/__app__/src/chunks/hooks.mjs +419 -106
  6. package/__app__/src/chunks/libs/@floating-ui.mjs +8 -8
  7. package/__app__/src/chunks/libs/@mantine.mjs +3039 -2135
  8. package/__app__/src/chunks/libs/@tanstack-ai.mjs +4 -4
  9. package/__app__/src/chunks/libs/@tanstack.mjs +93 -118
  10. package/__app__/src/chunks/libs/@xstate/react.mjs +30 -16
  11. package/__app__/src/chunks/libs/@xyflow/react.mjs +50 -26
  12. package/__app__/src/chunks/libs/bezier-js.mjs +11 -8
  13. package/__app__/src/chunks/libs/framer.mjs +1188 -1155
  14. package/__app__/src/chunks/libs/zod.mjs +191 -188
  15. package/__app__/src/chunks/rolldown-runtime.mjs +8 -1
  16. package/__app__/src/chunks/styled-system.mjs +23 -16
  17. package/__app__/src/main.mjs +22275 -9432
  18. package/__app__/src/style.css +1 -1
  19. package/dist/chunks/dist.mjs +10 -0
  20. package/dist/chunks/enableServer.mjs +1 -1
  21. package/dist/chunks/index.d.mts +9 -9
  22. package/dist/chunks/index2.d.mts +386 -229
  23. package/dist/chunks/libs/@chevrotain/gast.mjs +1 -1
  24. package/dist/chunks/libs/@chevrotain/regexp-to-ast.mjs +1 -1
  25. package/dist/chunks/libs/@logtape/logtape.mjs +3 -3
  26. package/dist/chunks/libs/@ts-graphviz/common.d.mts +1 -2
  27. package/dist/chunks/libs/@ts-graphviz/core.mjs +1 -1
  28. package/dist/chunks/libs/chevrotain-allstar.mjs +1 -1
  29. package/dist/chunks/libs/chevrotain.mjs +4 -4
  30. package/dist/chunks/libs/json5.mjs +1 -1
  31. package/dist/chunks/libs/langium.d.mts +2940 -2914
  32. package/dist/chunks/libs/langium.mjs +9 -9
  33. package/dist/chunks/libs/merge-error-cause.mjs +1 -1
  34. package/dist/chunks/libs/p-queue.mjs +1 -1
  35. package/dist/chunks/libs/package-manager-detector.mjs +1 -1
  36. package/dist/chunks/libs/pako.mjs +1 -1
  37. package/dist/chunks/libs/picomatch.mjs +1 -1
  38. package/dist/chunks/libs/remeda.mjs +1 -1
  39. package/dist/chunks/libs/unstorage.d.mts +1 -0
  40. package/dist/chunks/libs/which.mjs +1 -1
  41. package/dist/chunks/libs/zod.d.mts +48 -36
  42. package/dist/chunks/libs/zod.mjs +4 -4
  43. package/dist/chunks/logger.mjs +1 -0
  44. package/dist/chunks/node.mjs +57 -66
  45. package/dist/chunks/rolldown-runtime.mjs +1 -1
  46. package/dist/chunks/sequence-view.mjs +1 -1
  47. package/dist/chunks/vite-plugin.mjs +43 -43
  48. package/dist/cli/index.mjs +159 -157
  49. package/dist/index.d.mts +2 -3
  50. package/dist/index.mjs +1 -1
  51. package/dist/model/index.d.mts +5 -4
  52. package/dist/vite-plugin/index.d.mts +6 -9
  53. package/dist/vite-plugin/internal/index.d.mts +15 -10
  54. package/package.json +37 -37
  55. package/react/index.d.mts +761 -111
  56. package/react/index.mjs +13974 -10232
  57. package/__app__/src/chunks/DiagramActorProvider.mjs +0 -7638
  58. package/__app__/src/chunks/Markdown.mjs +0 -146
  59. package/__app__/src/chunks/NavigationPanel.mjs +0 -61
  60. package/__app__/src/chunks/adhoc-editor.mjs +0 -3386
  61. package/__app__/src/chunks/libs/@dagrejs/dagre.mjs +0 -1894
  62. package/__app__/src/chunks/libs/@tabler/icons-react.mjs +0 -252
  63. package/__app__/src/chunks/libs/remeda.mjs +0 -642
@@ -1,17 +1,17 @@
1
1
  import { i as __name } from "./rolldown-runtime.mjs";
2
2
  import { a as LikeC4ProjectConfig, i as IncludeConfig, o as LikeC4ProjectConfigInput } from "./index.mjs";
3
- 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 { $ as Stream, A as DefaultScopeComputation, B as WorkspaceCache, C as DocumentLinkParams, D as DefaultDocumentValidator, E as RequestType, F as Scope, G as CstNode, H as Disposable$1, I as JSDocDocumentationProvider, J as DefaultLangiumDocuments, K as Reference, L as DefaultIndexManager, M as ValueType, N as MaybePromise, O as ValidationOptions, P as DefaultScopeProvider, Q as CancellationToken$1, R as ReferenceDescription, S as CodeLensParams, T as NotificationType, U as AstNode, V as AsyncDisposable, W as AstNodeDescription, X as LangiumDocumentFactory, Y as LangiumDocument, Z as PrecomputedScopes, _ as CodeLensProvider, _t as Keyword, a as LangiumServices, at as CompletionItemKind, b as BuildOptions, c as AbstractSemanticTokenProvider, ct as DocumentLink, d as AbstractFormatter, dt as Hover, et as FileSystemNode, f as FormattingRegion, ft as Location, g as DefaultDocumentHighlightProvider, gt as WorkspaceFolder, h as DocumentLinkProvider, ht as TextEdit, i as NextFeature, it as Command, j as DefaultValueConverter, k as DiagnosticInfo, l as SemanticTokenAcceptor, lt as DocumentSymbol, m as NodeKindProvider, mt as SymbolKind, n as CompletionContext, nt as CodeAction, o as LangiumSharedServices, ot as Diagnostic, p as DocumentSymbolProvider, pt as Range, q as ReferenceInfo, r as DefaultCompletionProvider, rt as CodeLens, s as DefaultWorkspaceSymbolProvider, st as DocumentHighlight, t as CompletionAcceptor, tt as FileSystemProvider, u as AstNodeHoverProvider, ut as FormattingOptions, v as CodeActionProvider, vt as URI, w as DocumentSymbolParams, x as CodeActionParams, y as DefaultWorkspaceManager, z as DefaultNameProvider } from "./libs/langium.mjs";
4
4
  import { t as $keywords } from "./libs/@ts-graphviz/common.mjs";
5
+ import "./libs/unstorage.mjs";
5
6
  import { LikeC4Styles } from "@likec4/core/styles";
6
7
  import { EdgeId, Fqn, GuardedBy, LayoutedView, NodeId, NonEmptyArray, NonEmptyReadonlyArray, ProjectId, ViewId } from "@likec4/core/types";
8
+ import { AnyTypes, Builder, BuilderMode, BuilderSpecification, Types } from "@likec4/core/builder";
7
9
  import * as c4 from "@likec4/core";
8
10
  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
11
  import { DefaultWeakMap, MultiMap } from "@likec4/core/utils";
10
12
  import { ElementModel, LikeC4Model } from "@likec4/core/model";
11
13
  import { AdhocViewPredicate, ComputedProjectsView, LayoutedProjectsView } from "@likec4/core/compute-view";
12
- import * as type_fest0 from "type-fest";
13
14
  import { ConditionalPick, MergeExclusive, Simplify, Tagged, ValueOf, Writable } from "type-fest";
14
-
15
15
  //#region ../../node_modules/.pnpm/@logtape+logtape@2.1.1/node_modules/@logtape/logtape/dist/level.d.ts
16
16
  //#region src/level.d.ts
17
17
  declare const logLevels: readonly ["trace", "debug", "info", "warning", "error", "fatal"];
@@ -19,12 +19,6 @@ declare const logLevels: readonly ["trace", "debug", "info", "warning", "error",
19
19
  * The severity level of a {@link LogRecord}.
20
20
  */
21
21
  type LogLevel = typeof logLevels[number];
22
- /**
23
- * Lists all available log levels with the order of their severity.
24
- * The `"trace"` level goes first, and the `"fatal"` level goes last.
25
- * @returns A new copy of the array of log levels.
26
- * @since 1.0.0
27
- */
28
22
  //#endregion
29
23
  //#region ../../node_modules/.pnpm/@logtape+logtape@2.1.1/node_modules/@logtape/logtape/dist/record.d.ts
30
24
  //#region src/record.d.ts
@@ -69,8 +63,7 @@ interface LogRecord {
69
63
  * The extra properties of the log record.
70
64
  */
71
65
  readonly properties: Record<string, unknown>;
72
- } //# sourceMappingURL=record.d.ts.map
73
- //#endregion
66
+ }
74
67
  //#endregion
75
68
  //#region ../../node_modules/.pnpm/@logtape+logtape@2.1.1/node_modules/@logtape/logtape/dist/logger.d.ts
76
69
  /**
@@ -1149,12 +1142,8 @@ type LogCallback = (prefix: LogTemplatePrefix) => unknown[];
1149
1142
  * @returns The rendered message array.
1150
1143
  */
1151
1144
  type LogTemplatePrefix = (message: TemplateStringsArray, ...values: unknown[]) => unknown[];
1152
- /**
1153
- * A function type for logging methods in the {@link Logger} interface.
1154
- * @since 1.0.0
1155
- */
1156
1145
  //#endregion
1157
- //#region ../layouts/dist/_chunks/types.d.mts
1146
+ //#region ../layouts/dist/chunks/types.d.mts
1158
1147
  /**
1159
1148
  * invisible edge added by AI to enforce better layout
1160
1149
  */
@@ -1202,9 +1191,9 @@ interface AILayoutHints {
1202
1191
  * LLM reasoning for debugging/display
1203
1192
  */
1204
1193
  reasoning: string;
1205
- } //#endregion
1194
+ }
1206
1195
  //#endregion
1207
- //#region ../language-server/dist/_chunks/protocol.d.mts
1196
+ //#region ../language-server/dist/chunks/protocol.d.mts
1208
1197
  /**
1209
1198
  * When server requests to open a likec4 preview panel
1210
1199
  * (available only in the editor).
@@ -1218,11 +1207,6 @@ declare namespace DidRequestOpenViewNotification {
1218
1207
  const type: NotificationType<Params>;
1219
1208
  type Type = typeof type;
1220
1209
  }
1221
- /**
1222
- * Request to fetch the computed model data
1223
- * If LSP has multiple projects, the projectId is required.
1224
- * otherwise throws an error.
1225
- */
1226
1210
  /**
1227
1211
  * Request to locate an element, relation, deployment or view.
1228
1212
  * If LSP has multiple projects, the projectId is required.
@@ -1236,34 +1220,34 @@ declare namespace Locate {
1236
1220
  element: Fqn$1;
1237
1221
  projectId?: string | undefined;
1238
1222
  property?: string;
1239
- }
1223
+ } |
1240
1224
  /**
1241
1225
  * Locate a relation by its id
1242
1226
  */
1243
- | {
1227
+ {
1244
1228
  projectId?: string | undefined;
1245
1229
  relation: RelationId;
1246
- }
1230
+ } |
1247
1231
  /**
1248
1232
  * Locate a deployment by its fqn
1249
1233
  */
1250
- | {
1234
+ {
1251
1235
  deployment: DeploymentFqn;
1252
1236
  projectId?: string | undefined;
1253
1237
  property?: string;
1254
- }
1238
+ } |
1255
1239
  /**
1256
1240
  * Locate a step in a dynamic view by its astPath
1257
1241
  */
1258
- | {
1242
+ {
1259
1243
  view: ViewId$1;
1260
1244
  astPath: string;
1261
1245
  projectId?: string | undefined;
1262
- }
1246
+ } |
1263
1247
  /**
1264
1248
  * Locate a view by its id
1265
1249
  */
1266
- | {
1250
+ {
1267
1251
  view: ViewId$1;
1268
1252
  projectId?: string | undefined;
1269
1253
  };
@@ -1292,11 +1276,8 @@ declare namespace ChangeView {
1292
1276
  const req: RequestType<Params, Res, void>;
1293
1277
  type Req = typeof req;
1294
1278
  }
1295
- /**
1296
- * Request to fetch telemetry metrics
1297
- */
1298
1279
  //#endregion
1299
- //#region ../layouts/dist/_chunks/GraphvizLayoter.d.mts
1280
+ //#region ../layouts/dist/chunks/GraphvizLayoter.d.mts
1300
1281
  //#region src/graphviz/types.d.ts
1301
1282
  /**
1302
1283
  * Partially implements CancellationToken interface from vscode-jsonrpc
@@ -1333,7 +1314,8 @@ declare module 'ts-graphviz' {
1333
1314
  }
1334
1315
  }
1335
1316
  }
1336
- type DotSource = Tagged<string, 'DotSource'>; //#endregion
1317
+ type DotSource = Tagged<string, 'DotSource'>;
1318
+ //#endregion
1337
1319
  //#region src/graphviz/types-dot.d.ts
1338
1320
  type GvNodeName = Tagged<string, 'GvNodeName'>;
1339
1321
  type GvId = Tagged<number, 'GvId'>;
@@ -1470,7 +1452,8 @@ declare namespace GraphvizJson {
1470
1452
  nojustify?: 'true' | 'false';
1471
1453
  pos?: string;
1472
1454
  }
1473
- } //#endregion
1455
+ }
1456
+ //#endregion
1474
1457
  //#region src/graphviz/GraphvizLayoter.d.ts
1475
1458
  interface GraphvizPort extends Disposable {
1476
1459
  get name(): string;
@@ -1505,17 +1488,14 @@ declare class GraphvizLayouter implements Disposable {
1505
1488
  protected newScopedLogger(operation: string): any;
1506
1489
  dotToJson(dot: DotSource): Promise<GraphvizJson>;
1507
1490
  layout<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<LayoutResult<A>>;
1508
- aiLayout<A extends AnyAux>({
1509
- view,
1510
- styles
1511
- }: LayoutTaskParams<A>, hints: AILayoutHints): Promise<LayoutResult<A>>;
1491
+ aiLayout<A extends AnyAux>({ view, styles }: LayoutTaskParams<A>, hints: AILayoutHints): Promise<LayoutResult<A>>;
1512
1492
  svg<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<{
1513
1493
  svg: string;
1514
1494
  dot: DotSource;
1515
1495
  }>;
1516
1496
  dot<A extends AnyAux>(params: LayoutTaskParams<A>): Promise<DotSource>;
1517
1497
  layoutProjectsView(view: ComputedProjectsView): Promise<LayoutedProjectsView>;
1518
- } //#endregion
1498
+ }
1519
1499
  //#endregion
1520
1500
  //#region ../layouts/dist/index.d.mts
1521
1501
  //#region src/graphviz/QueueGraphvizLayoter.d.ts
@@ -1557,10 +1537,9 @@ declare class QueueGraphvizLayoter extends GraphvizLayouter {
1557
1537
  */
1558
1538
  private waitForQueueToShrink;
1559
1539
  dispose(): void;
1560
- } //#endregion
1561
- //#region src/graphviz/wasm/GraphvizWasmAdapter.d.ts
1540
+ }
1562
1541
  //#endregion
1563
- //#region ../language-server/dist/_chunks/module.d.mts
1542
+ //#region ../language-server/dist/chunks/module.d.mts
1564
1543
  //#region src/documentation/documentation-provider.d.ts
1565
1544
  /**
1566
1545
  * Provides documentation for LikeC4 AST nodes, extending JSDoc parsing
@@ -1580,7 +1559,8 @@ declare class LikeC4DocumentationProvider extends JSDocDocumentationProvider {
1580
1559
  * @returns Formatted documentation string, or undefined if none.
1581
1560
  */
1582
1561
  getDocumentation(node: AstNode): string | undefined;
1583
- } //#endregion
1562
+ }
1563
+ //#endregion
1584
1564
  //#region src/utils/disposable.d.ts
1585
1565
  declare abstract class ADisposable implements Disposable$1 {
1586
1566
  protected toDispose: Disposable$1[];
@@ -1588,9 +1568,10 @@ declare abstract class ADisposable implements Disposable$1 {
1588
1568
  onDispose(...disposable: Disposable$1[]): void;
1589
1569
  dispose(): void;
1590
1570
  protected throwIfDisposed(): void;
1591
- } //#endregion
1571
+ }
1572
+ //#endregion
1592
1573
  //#region src/generated/ast.d.ts
1593
- type AnyProperty = DynamicViewProperty | ElementProperty | NavigateToProperty | NotationProperty | NotesProperty | RelationProperty | RelationshipStyleProperty | StringProperty | StyleProperty | ViewProperty;
1574
+ type AnyProperty = DynamicViewProperty | ElementProperty | NavigateToProperty | RelationProperty | RelationshipStyleProperty | StringProperty | StyleProperty | ViewProperty;
1594
1575
  declare const AnyProperty = "AnyProperty";
1595
1576
  type ArrowType = 'crow' | 'diamond' | 'dot' | 'none' | 'normal' | 'odiamond' | 'odot' | 'onormal' | 'open' | 'vee';
1596
1577
  type BorderStyleValue = 'none' | LineOptions;
@@ -1608,13 +1589,13 @@ type DynamicViewProperty = DynamicViewDisplayVariantProperty | ViewProperty;
1608
1589
  declare const DynamicViewProperty = "DynamicViewProperty";
1609
1590
  type DynamicViewRule = DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleAutoLayout | ViewRuleStyleOrGlobalRef;
1610
1591
  declare const DynamicViewRule = "DynamicViewRule";
1611
- type DynamicViewStep = DynamicStepChain | DynamicStepSingle;
1612
- declare const DynamicViewStep = "DynamicViewStep";
1613
1592
  type ElementProperty = ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataProperty;
1614
1593
  declare const ElementProperty = "ElementProperty";
1615
1594
  type ElementShape = 'browser' | 'bucket' | 'component' | 'cylinder' | 'document' | 'mobile' | 'person' | 'queue' | 'rectangle' | 'storage';
1616
1595
  type ExpressionV2 = FqnExprOrWith | RelationExprOrWith;
1617
1596
  declare const ExpressionV2 = "ExpressionV2";
1597
+ type ExtendElementOrRelation = ExtendElement | ExtendRelation;
1598
+ declare const ExtendElementOrRelation = "ExtendElementOrRelation";
1618
1599
  type ExtendElementProperty = LinkProperty | MetadataProperty;
1619
1600
  declare const ExtendElementProperty = "ExtendElementProperty";
1620
1601
  type ExtendRelationProperty = LinkProperty | MetadataProperty;
@@ -1638,6 +1619,8 @@ type MetadataProperty = MetadataBody;
1638
1619
  declare const MetadataProperty = "MetadataProperty";
1639
1620
  type MetadataValue = MarkdownOrString | MetadataArray;
1640
1621
  declare const MetadataValue = "MetadataValue";
1622
+ type ModelElement = Element | ExtendElementOrRelation | Relation;
1623
+ declare const ModelElement = "ModelElement";
1641
1624
  type ModelReferenceable = Element | Imported;
1642
1625
  declare const ModelReferenceable = "ModelReferenceable";
1643
1626
  type Participant = 'source' | 'target';
@@ -1657,11 +1640,17 @@ declare const RelationshipStyleProperty = "RelationshipStyleProperty";
1657
1640
  type SizeProperty = IconSizeProperty | PaddingSizeProperty | ShapeSizeProperty | TextSizeProperty;
1658
1641
  declare const SizeProperty = "SizeProperty";
1659
1642
  type SizeValue = 'large' | 'lg' | 'md' | 'medium' | 'sm' | 'small' | 'xl' | 'xlarge' | 'xs' | 'xsmall';
1643
+ type StepOrSeries = Step | StepSeries;
1644
+ declare const StepOrSeries = "StepOrSeries";
1645
+ type StepStatement = AltSteps | StepOrSeries | SubflowStep | TryStep;
1646
+ declare const StepStatement = "StepStatement";
1660
1647
  type StringProperty = ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty;
1661
1648
  declare const StringProperty = "StringProperty";
1662
1649
  type StyleProperty = BorderProperty | ColorProperty | IconColorProperty | IconPositionProperty | IconProperty | IconSizeProperty | MultipleProperty | OpacityProperty | PaddingSizeProperty | ShapeProperty | ShapeSizeProperty | TextSizeProperty;
1663
1650
  declare const StyleProperty = "StyleProperty";
1664
1651
  type ThemeColor = 'amber' | 'blue' | 'gray' | 'green' | 'indigo' | 'muted' | 'primary' | 'red' | 'secondary' | 'sky' | 'slate';
1652
+ type TryStep = CatchBlock | FinallyBlock | TryBlock;
1653
+ declare const TryStep = "TryStep";
1665
1654
  type Uri = string;
1666
1655
  type ViewLayoutDirection = 'BottomTop' | 'LeftRight' | 'RightLeft' | 'TopBottom';
1667
1656
  type ViewProperty = LinkProperty | ViewStringProperty;
@@ -1686,16 +1675,23 @@ type WhereRelationExpression = WhereBinaryExpression | WhereRelation | WhereRela
1686
1675
  declare const WhereRelationExpression = "WhereRelationExpression";
1687
1676
  type WhereTagEqual = WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
1688
1677
  declare const WhereTagEqual = "WhereTagEqual";
1689
- interface AbstractDynamicStep extends AstNode {
1690
- readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
1691
- readonly $type: 'AbstractDynamicStep' | 'DynamicStepChain' | 'DynamicStepSingle';
1678
+ interface AbstractStep extends AstNode {
1679
+ readonly $container: DynamicViewBody | StepSeries | StepsBlock;
1680
+ readonly $type: 'AbstractStep' | 'Step' | 'StepSeries';
1692
1681
  custom?: CustomRelationProperties;
1693
1682
  dotKind?: RelationKindDotRef;
1694
1683
  kind?: Reference<RelationshipKind>;
1695
1684
  target: ElementRef;
1696
1685
  title?: string;
1697
1686
  }
1698
- declare const AbstractDynamicStep = "AbstractDynamicStep";
1687
+ declare const AbstractStep = "AbstractStep";
1688
+ interface AltSteps extends AstNode {
1689
+ readonly $container: DynamicViewBody | StepsBlock;
1690
+ readonly $type: 'AltSteps';
1691
+ branches: Array<SubflowStep>;
1692
+ title?: string;
1693
+ }
1694
+ declare const AltSteps = "AltSteps";
1699
1695
  interface ArrowProperty extends AstNode {
1700
1696
  readonly $container: CustomRelationProperties | RelationStyleProperty | SpecificationRelationshipKind;
1701
1697
  readonly $type: 'ArrowProperty';
@@ -1710,6 +1706,14 @@ interface BorderProperty extends AstNode {
1710
1706
  value: BorderStyleValue;
1711
1707
  }
1712
1708
  declare const BorderProperty = "BorderProperty";
1709
+ interface CatchBlock extends AstNode {
1710
+ readonly $container: DynamicViewBody | FinallyBlock | StepsBlock;
1711
+ readonly $type: 'CatchBlock';
1712
+ catch: StepsBlock;
1713
+ title?: string;
1714
+ try: TryBlock;
1715
+ }
1716
+ declare const CatchBlock = "CatchBlock";
1713
1717
  interface ColorProperty extends AstNode {
1714
1718
  readonly $container: CustomElementProperties | CustomRelationProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | RelationStyleProperty | SpecificationRelationshipKind | ViewRuleGroup | ViewRuleStyle;
1715
1719
  readonly $type: 'ColorProperty';
@@ -1731,7 +1735,7 @@ interface CustomElementProperties extends AstNode {
1731
1735
  }
1732
1736
  declare const CustomElementProperties = "CustomElementProperties";
1733
1737
  interface CustomRelationProperties extends AstNode {
1734
- readonly $container: AbstractDynamicStep | RelationExprWith;
1738
+ readonly $container: AbstractStep | RelationExprWith;
1735
1739
  readonly $type: 'CustomRelationProperties';
1736
1740
  props: Array<MultipleProperty | NotationProperty | NotesProperty | RelationNavigateToProperty | RelationStringProperty | RelationshipStyleProperty>;
1737
1741
  }
@@ -1847,7 +1851,7 @@ interface DynamicViewBody extends AstNode {
1847
1851
  readonly $type: 'DynamicViewBody';
1848
1852
  props: Array<DynamicViewProperty>;
1849
1853
  rules: Array<DynamicViewRule>;
1850
- steps: Array<DynamicViewParallelSteps | DynamicViewStep>;
1854
+ steps: Array<StepStatement>;
1851
1855
  tags?: Tags;
1852
1856
  }
1853
1857
  declare const DynamicViewBody = "DynamicViewBody";
@@ -1870,12 +1874,6 @@ interface DynamicViewIncludePredicate extends AstNode {
1870
1874
  exprs: Expressions;
1871
1875
  }
1872
1876
  declare const DynamicViewIncludePredicate = "DynamicViewIncludePredicate";
1873
- interface DynamicViewParallelSteps extends AstNode {
1874
- readonly $container: DynamicViewBody | DynamicViewParallelSteps;
1875
- readonly $type: 'DynamicViewParallelSteps';
1876
- steps: Array<DynamicViewParallelSteps | DynamicViewStep>;
1877
- }
1878
- declare const DynamicViewParallelSteps = "DynamicViewParallelSteps";
1879
1877
  interface DynamicViewRef extends AstNode {
1880
1878
  readonly $container: RelationNavigateToProperty;
1881
1879
  readonly $type: 'DynamicViewRef';
@@ -1913,7 +1911,7 @@ interface ElementKindExpression extends AstNode {
1913
1911
  }
1914
1912
  declare const ElementKindExpression = "ElementKindExpression";
1915
1913
  interface ElementRef extends AstNode {
1916
- readonly $container: AbstractDynamicStep | DeployedInstance | DynamicStepSingle | ElementView;
1914
+ readonly $container: AbstractStep | DeployedInstance | ElementView | Step;
1917
1915
  readonly $type: 'ElementRef';
1918
1916
  modelElement: FqnRef$2;
1919
1917
  }
@@ -2017,6 +2015,14 @@ interface ExtendRelationBody extends AstNode {
2017
2015
  tags?: Tags;
2018
2016
  }
2019
2017
  declare const ExtendRelationBody = "ExtendRelationBody";
2018
+ interface FinallyBlock extends AstNode {
2019
+ readonly $container: DynamicViewBody | StepsBlock;
2020
+ readonly $type: 'FinallyBlock';
2021
+ finally: StepsBlock;
2022
+ title?: string;
2023
+ tryCatch: CatchBlock | TryBlock;
2024
+ }
2025
+ declare const FinallyBlock = "FinallyBlock";
2020
2026
  interface FqnExpressions extends AstNode {
2021
2027
  readonly $container: DeploymentViewRuleStyle | FqnExpressions | GlobalStyle | ViewRuleRank | ViewRuleStyle;
2022
2028
  readonly $type: 'FqnExpressions';
@@ -2188,7 +2194,7 @@ interface LineProperty extends AstNode {
2188
2194
  }
2189
2195
  declare const LineProperty = "LineProperty";
2190
2196
  interface LinkProperty extends AstNode {
2191
- readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | ExtendRelationBody | RelationBody | SpecificationDeploymentNodeKind | SpecificationElementKind;
2197
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | ExtendRelationBody | RelationBody | SpecificationDeploymentNodeKind | SpecificationElementKind | SpecificationRelationshipKind;
2192
2198
  readonly $type: 'LinkProperty';
2193
2199
  key: 'link';
2194
2200
  title?: string;
@@ -2225,7 +2231,7 @@ declare const MetadataBody = "MetadataBody";
2225
2231
  interface Model extends AstNode {
2226
2232
  readonly $container: LikeC4Grammar;
2227
2233
  readonly $type: 'Model';
2228
- elements: Array<Element | ExtendElement | ExtendRelation | Relation>;
2234
+ elements: Array<ModelElement>;
2229
2235
  name: 'model';
2230
2236
  }
2231
2237
  declare const Model = "Model";
@@ -2332,7 +2338,7 @@ interface RelationExprWith extends AstNode {
2332
2338
  }
2333
2339
  declare const RelationExprWith = "RelationExprWith";
2334
2340
  interface RelationKindDotRef extends AstNode {
2335
- readonly $container: AbstractDynamicStep | DeploymentRelation | ExtendRelation | OutgoingRelationExpr | Relation;
2341
+ readonly $container: AbstractStep | DeploymentRelation | ExtendRelation | OutgoingRelationExpr | Relation;
2336
2342
  readonly $type: 'RelationKindDotRef';
2337
2343
  kind: Reference<RelationshipKind>;
2338
2344
  }
@@ -2421,13 +2427,14 @@ interface SpecificationRelationshipKind extends AstNode {
2421
2427
  readonly $container: SpecificationRule;
2422
2428
  readonly $type: 'SpecificationRelationshipKind';
2423
2429
  kind: RelationshipKind;
2424
- props: Array<MultipleProperty | RelationshipStyleProperty | SpecificationRelationshipStringProperty>;
2430
+ props: Array<LinkProperty | MultipleProperty | RelationshipStyleProperty | SpecificationRelationshipStringProperty>;
2431
+ tags?: Tags;
2425
2432
  }
2426
2433
  declare const SpecificationRelationshipKind = "SpecificationRelationshipKind";
2427
2434
  interface SpecificationRelationshipStringProperty extends AstNode {
2428
2435
  readonly $container: SpecificationRelationshipKind;
2429
2436
  readonly $type: 'SpecificationRelationshipStringProperty';
2430
- key: 'notation' | 'technology';
2437
+ key: 'description' | 'notation' | 'technology' | 'title';
2431
2438
  value: MarkdownOrString;
2432
2439
  }
2433
2440
  declare const SpecificationRelationshipStringProperty = "SpecificationRelationshipStringProperty";
@@ -2449,6 +2456,12 @@ interface SpecificationTag extends AstNode {
2449
2456
  tag: Tag$1;
2450
2457
  }
2451
2458
  declare const SpecificationTag = "SpecificationTag";
2459
+ interface StepsBlock extends AstNode {
2460
+ readonly $container: AltSteps | CatchBlock | DynamicViewBody | FinallyBlock | StepsBlock;
2461
+ readonly $type: 'StepsBlock' | 'SubflowStep' | 'TryBlock';
2462
+ steps: Array<StepStatement>;
2463
+ }
2464
+ declare const StepsBlock = "StepsBlock";
2452
2465
  interface StrictFqnElementRef extends AstNode {
2453
2466
  readonly $container: ExtendElement | StrictFqnElementRef;
2454
2467
  readonly $type: 'StrictFqnElementRef';
@@ -2476,7 +2489,7 @@ interface TagRef extends AstNode {
2476
2489
  }
2477
2490
  declare const TagRef = "TagRef";
2478
2491
  interface Tags extends AstNode {
2479
- readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelation | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | ExtendRelationBody | Relation | RelationBody | SpecificationDeploymentNodeKind | SpecificationElementKind | Tags;
2492
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelation | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | ExtendRelationBody | Relation | RelationBody | SpecificationDeploymentNodeKind | SpecificationElementKind | SpecificationRelationshipKind | Tags;
2480
2493
  readonly $type: 'Tags';
2481
2494
  prev?: Tags;
2482
2495
  values: Array<TagRef>;
@@ -2662,24 +2675,47 @@ interface WildcardExpression extends AstNode {
2662
2675
  isWildcard: boolean;
2663
2676
  }
2664
2677
  declare const WildcardExpression = "WildcardExpression";
2665
- interface DynamicStepChain extends AbstractDynamicStep {
2666
- readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
2667
- readonly $type: 'DynamicStepChain';
2668
- source: DynamicStepChain | DynamicStepSingle;
2669
- }
2670
- declare const DynamicStepChain = "DynamicStepChain";
2671
- interface DynamicStepSingle extends AbstractDynamicStep {
2672
- readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
2673
- readonly $type: 'DynamicStepSingle';
2678
+ /**
2679
+ * A single step in a dynamic view flow
2680
+ * source -> target
2681
+ */
2682
+ interface Step extends AbstractStep {
2683
+ readonly $container: DynamicViewBody | StepSeries | StepsBlock;
2684
+ readonly $type: 'Step';
2674
2685
  isBackward: boolean;
2675
2686
  source: ElementRef;
2676
2687
  }
2677
- declare const DynamicStepSingle = "DynamicStepSingle";
2688
+ declare const Step = "Step";
2689
+ /**
2690
+ * A series of steps in a dynamic view flow
2691
+ * source -> target1 -> target2 -> ...
2692
+ */
2693
+ interface StepSeries extends AbstractStep {
2694
+ readonly $container: DynamicViewBody | StepSeries | StepsBlock;
2695
+ readonly $type: 'StepSeries';
2696
+ source: Step | StepSeries;
2697
+ }
2698
+ declare const StepSeries = "StepSeries";
2699
+ interface SubflowStep extends StepsBlock {
2700
+ readonly $container: AltSteps | DynamicViewBody | StepsBlock;
2701
+ readonly $type: 'SubflowStep';
2702
+ kind: 'break' | 'else' | 'if' | 'loop' | 'opt' | 'par' | 'parallel' | 'when';
2703
+ title?: string;
2704
+ }
2705
+ declare const SubflowStep = "SubflowStep";
2706
+ interface TryBlock extends StepsBlock {
2707
+ readonly $container: CatchBlock | DynamicViewBody | FinallyBlock | StepsBlock;
2708
+ readonly $type: 'TryBlock';
2709
+ title?: string;
2710
+ }
2711
+ declare const TryBlock = "TryBlock";
2678
2712
  type LikeC4AstType = {
2679
- AbstractDynamicStep: AbstractDynamicStep;
2713
+ AbstractStep: AbstractStep;
2714
+ AltSteps: AltSteps;
2680
2715
  AnyProperty: AnyProperty;
2681
2716
  ArrowProperty: ArrowProperty;
2682
2717
  BorderProperty: BorderProperty;
2718
+ CatchBlock: CatchBlock;
2683
2719
  ColorLiteral: ColorLiteral$1;
2684
2720
  ColorProperty: ColorProperty;
2685
2721
  CustomColor: CustomColor;
@@ -2700,18 +2736,14 @@ type LikeC4AstType = {
2700
2736
  DeploymentViewRulePredicate: DeploymentViewRulePredicate;
2701
2737
  DeploymentViewRuleStyle: DeploymentViewRuleStyle;
2702
2738
  DirectedRelationExpr: DirectedRelationExpr;
2703
- DynamicStepChain: DynamicStepChain;
2704
- DynamicStepSingle: DynamicStepSingle;
2705
2739
  DynamicView: DynamicView;
2706
2740
  DynamicViewBody: DynamicViewBody;
2707
2741
  DynamicViewDisplayVariantProperty: DynamicViewDisplayVariantProperty;
2708
2742
  DynamicViewGlobalPredicateRef: DynamicViewGlobalPredicateRef;
2709
2743
  DynamicViewIncludePredicate: DynamicViewIncludePredicate;
2710
- DynamicViewParallelSteps: DynamicViewParallelSteps;
2711
2744
  DynamicViewProperty: DynamicViewProperty;
2712
2745
  DynamicViewRef: DynamicViewRef;
2713
2746
  DynamicViewRule: DynamicViewRule;
2714
- DynamicViewStep: DynamicViewStep;
2715
2747
  Element: Element;
2716
2748
  ElementBody: ElementBody;
2717
2749
  ElementKind: ElementKind;
@@ -2730,10 +2762,12 @@ type LikeC4AstType = {
2730
2762
  ExtendDeploymentBody: ExtendDeploymentBody;
2731
2763
  ExtendElement: ExtendElement;
2732
2764
  ExtendElementBody: ExtendElementBody;
2765
+ ExtendElementOrRelation: ExtendElementOrRelation;
2733
2766
  ExtendElementProperty: ExtendElementProperty;
2734
2767
  ExtendRelation: ExtendRelation;
2735
2768
  ExtendRelationBody: ExtendRelationBody;
2736
2769
  ExtendRelationProperty: ExtendRelationProperty;
2770
+ FinallyBlock: FinallyBlock;
2737
2771
  FqnExpr: FqnExpr$2;
2738
2772
  FqnExprOrWhere: FqnExprOrWhere;
2739
2773
  FqnExprOrWith: FqnExprOrWith;
@@ -2772,6 +2806,7 @@ type LikeC4AstType = {
2772
2806
  MetadataValue: MetadataValue;
2773
2807
  Model: Model;
2774
2808
  ModelDeployments: ModelDeployments;
2809
+ ModelElement: ModelElement;
2775
2810
  ModelReferenceable: ModelReferenceable;
2776
2811
  ModelViews: ModelViews;
2777
2812
  MultipleProperty: MultipleProperty;
@@ -2808,14 +2843,22 @@ type LikeC4AstType = {
2808
2843
  SpecificationRelationshipStringProperty: SpecificationRelationshipStringProperty;
2809
2844
  SpecificationRule: SpecificationRule;
2810
2845
  SpecificationTag: SpecificationTag;
2846
+ Step: Step;
2847
+ StepOrSeries: StepOrSeries;
2848
+ StepSeries: StepSeries;
2849
+ StepStatement: StepStatement;
2850
+ StepsBlock: StepsBlock;
2811
2851
  StrictFqnElementRef: StrictFqnElementRef;
2812
2852
  StrictFqnRef: StrictFqnRef;
2813
2853
  StringProperty: StringProperty;
2814
2854
  StyleProperty: StyleProperty;
2855
+ SubflowStep: SubflowStep;
2815
2856
  Tag: Tag$1;
2816
2857
  TagRef: TagRef;
2817
2858
  Tags: Tags;
2818
2859
  TextSizeProperty: TextSizeProperty;
2860
+ TryBlock: TryBlock;
2861
+ TryStep: TryStep;
2819
2862
  ViewProperty: ViewProperty;
2820
2863
  ViewRef: ViewRef;
2821
2864
  ViewRule: ViewRule;
@@ -2850,7 +2893,8 @@ type LikeC4AstType = {
2850
2893
  WhereRelationTag: WhereRelationTag;
2851
2894
  WhereTagEqual: WhereTagEqual;
2852
2895
  WildcardExpression: WildcardExpression;
2853
- }; //#endregion
2896
+ };
2897
+ //#endregion
2854
2898
  //#region src/validation/DocumentValidator.d.ts
2855
2899
  declare class LikeC4DocumentValidator extends DefaultDocumentValidator {
2856
2900
  protected services: LikeC4Services;
@@ -2859,7 +2903,8 @@ declare class LikeC4DocumentValidator extends DefaultDocumentValidator {
2859
2903
  * If the document is excluded, then we skip validation and return an empty array of diagnostics.
2860
2904
  */
2861
2905
  validateDocument(document: LangiumDocument, options?: ValidationOptions, cancelToken?: CancellationToken$1): Promise<Diagnostic[]>;
2862
- } //#endregion
2906
+ }
2907
+ //#endregion
2863
2908
  //#region src/validation/index.d.ts
2864
2909
  declare const isValidatableAstNode: any;
2865
2910
  type ValidatableAstNode = GuardedBy<typeof isValidatableAstNode>;
@@ -2868,7 +2913,8 @@ declare function checksFromDiagnostics(doc: LikeC4LangiumDocument): {
2868
2913
  invalidNodes: WeakSet<WeakKey>;
2869
2914
  };
2870
2915
  type ChecksFromDiagnostics = ReturnType<typeof checksFromDiagnostics>;
2871
- type IsValidFn = ChecksFromDiagnostics['isValid']; //#endregion
2916
+ type IsValidFn = ChecksFromDiagnostics['isValid'];
2917
+ //#endregion
2872
2918
  //#region src/ast.d.ts
2873
2919
  declare module 'langium' {
2874
2920
  interface LangiumDocument {
@@ -2919,15 +2965,7 @@ interface ParsedAstSpecification {
2919
2965
  color?: c4.ColorLiteral;
2920
2966
  }>;
2921
2967
  elements: Record<c4.ElementKind, c4.ElementSpecification>;
2922
- relationships: Record<c4.RelationshipKind, {
2923
- technology?: string;
2924
- notation?: string;
2925
- color?: c4.Color;
2926
- line?: c4.RelationshipLineType;
2927
- head?: c4.RelationshipArrowType;
2928
- tail?: c4.RelationshipArrowType;
2929
- multiple?: boolean;
2930
- }>;
2968
+ relationships: Record<c4.RelationshipKind, c4.RelationshipSpecification>;
2931
2969
  colors: Record<c4.CustomColor, {
2932
2970
  color: c4.ColorLiteral;
2933
2971
  }>;
@@ -3015,7 +3053,7 @@ interface ParsedAstDynamicView {
3015
3053
  description: c4.MarkdownOrString | null;
3016
3054
  tags: c4.NonEmptyArray<c4.Tag> | null;
3017
3055
  links: c4.NonEmptyArray<c4.Link> | null;
3018
- steps: c4.DynamicViewStep[];
3056
+ steps: c4.Step.Any[];
3019
3057
  rules: Array<c4.DynamicViewRule>;
3020
3058
  variant: c4.DynamicViewDisplayVariant | undefined;
3021
3059
  }
@@ -3055,7 +3093,8 @@ interface LikeC4LangiumDocument extends LikeC4GrammarDocument, LikeC4DocumentPro
3055
3093
  }
3056
3094
  interface ParsedLikeC4LangiumDocument extends LikeC4GrammarDocument, Required<LikeC4DocumentProps> {
3057
3095
  likec4ProjectId: c4.ProjectId;
3058
- } //#endregion
3096
+ }
3097
+ //#endregion
3059
3098
  //#region src/workspace/ProjectsManager.d.ts
3060
3099
  type NormalizedUri = Tagged<string, 'NormalizedUri'>;
3061
3100
  type DocOrUri = LangiumDocument | string | URI;
@@ -3178,6 +3217,7 @@ declare class ProjectsManager extends ADisposable {
3178
3217
  * If the document does not belong to any project, returns the default project ID.
3179
3218
  */
3180
3219
  ownerProjectId(document: LangiumDocument | URI | string): ProjectId;
3220
+ protected findOwnerProject(uri: NormalizedUri): ProjectData | undefined;
3181
3221
  /**
3182
3222
  * Returns path to the document relative to the project folder.
3183
3223
  * If the document does not belong to any project, returns the document URI as string.
@@ -3191,7 +3231,7 @@ declare class ProjectsManager extends ADisposable {
3191
3231
  reloadProjects(cancelToken?: CancellationToken$1): Promise<void>;
3192
3232
  protected _reloadProjects(cancelToken?: CancellationToken$1): Promise<void>;
3193
3233
  protected uniqueProjectId(name: string): ProjectId;
3194
- protected resetCaches(): void;
3234
+ clearCaches(): void;
3195
3235
  rebuildProject(projectId: ProjectId, cancelToken?: CancellationToken$1): Promise<void>;
3196
3236
  /**
3197
3237
  * Returns all include paths from all projects.
@@ -3211,7 +3251,8 @@ declare class ProjectsManager extends ADisposable {
3211
3251
  private notifyListeners;
3212
3252
  private updateIncludesExcludes;
3213
3253
  private warnIfConfigOverride;
3214
- } //#endregion
3254
+ }
3255
+ //#endregion
3215
3256
  //#region src/filesystem/types.d.ts
3216
3257
  interface FileNode extends FileSystemNode {
3217
3258
  readonly isFile: true;
@@ -3305,8 +3346,7 @@ interface LikeC4ManualLayouts extends Disposable$1 {
3305
3346
  delete: URI;
3306
3347
  update?: never;
3307
3348
  }): Promise<void>;
3308
- } //#endregion
3309
- //#region src/filesystem/noop.d.ts
3349
+ }
3310
3350
  //#endregion
3311
3351
  //#region src/formatting/LikeC4Formatter.d.ts
3312
3352
  type QuoteStyle = 'single' | 'double' | 'ignore' | 'auto';
@@ -3354,6 +3394,7 @@ declare class LikeC4Formatter extends AbstractFormatter {
3354
3394
  protected formatWhereElementExpression(node: AstNode): void;
3355
3395
  protected formatIncludeExcludeExpressions(node: AstNode): void;
3356
3396
  protected formatRelationExpression(node: AstNode): void;
3397
+ protected formatSteps(node: AstNode): void;
3357
3398
  private findPredicateExpressionRoot;
3358
3399
  private on;
3359
3400
  private doExtendedFormatting;
@@ -3362,7 +3403,8 @@ declare class LikeC4Formatter extends AbstractFormatter {
3362
3403
  private escapeQuotesInternalQuotes;
3363
3404
  private getAutoQuoteStyle;
3364
3405
  private onConfigurationUpdate;
3365
- } //#endregion
3406
+ }
3407
+ //#endregion
3366
3408
  //#region src/references/name-provider.d.ts
3367
3409
  declare class LikeC4NameProvider extends DefaultNameProvider {
3368
3410
  protected services: LikeC4Services;
@@ -3370,7 +3412,8 @@ declare class LikeC4NameProvider extends DefaultNameProvider {
3370
3412
  getNameStrict(node: AstNode): string;
3371
3413
  getName(node: AstNode): string | undefined;
3372
3414
  getNameNode(node: AstNode): CstNode | undefined;
3373
- } //#endregion
3415
+ }
3416
+ //#endregion
3374
3417
  //#region src/references/scope-computation.d.ts
3375
3418
  type ElementsContainer = Model | ElementBody | ExtendElementBody;
3376
3419
  type DeploymentsContainer = ModelDeployments | DeploymentNodeBody | ExtendDeploymentBody | DeployedInstanceBody;
@@ -3386,14 +3429,16 @@ declare class LikeC4ScopeComputation extends DefaultScopeComputation {
3386
3429
  computeLocalScopes(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken$1): Promise<PrecomputedScopes>;
3387
3430
  protected processContainer(container: ElementsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
3388
3431
  protected processDeployments(container: DeploymentsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
3389
- } //#endregion
3432
+ }
3433
+ //#endregion
3390
3434
  //#region src/workspace/IndexManager.d.ts
3391
3435
  declare class IndexManager extends DefaultIndexManager {
3392
3436
  protected services: LikeC4SharedServices;
3393
3437
  constructor(services: LikeC4SharedServices);
3394
3438
  updateContent(document: LangiumDocument, cancelToken?: CancellationToken$1): Promise<void>;
3395
3439
  projectElements(projectId: ProjectId$1, nodeType?: string, uris?: Set<string>): Stream<AstNodeDescription>;
3396
- } //#endregion
3440
+ }
3441
+ //#endregion
3397
3442
  //#region src/workspace/LangiumDocuments.d.ts
3398
3443
  declare class LangiumDocuments extends DefaultLangiumDocuments {
3399
3444
  protected services: LikeC4SharedServices;
@@ -3419,15 +3464,16 @@ declare class LangiumDocuments extends DefaultLangiumDocuments {
3419
3464
  * Returns the URIs
3420
3465
  */
3421
3466
  resetProjectIds(): URI[];
3422
- } //#endregion
3467
+ }
3468
+ //#endregion
3423
3469
  //#region src/workspace/WorkspaceManager.d.ts
3424
3470
  declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
3425
3471
  #private;
3426
3472
  private services;
3427
- protected readonly documentFactory: LangiumDocumentFactory;
3428
3473
  protected readonly fileSystemProvider: FileSystemProvider$1;
3429
3474
  initialBuildOptions: BuildOptions;
3430
3475
  constructor(services: LikeC4SharedServices);
3476
+ protected get documentFactory(): LangiumDocumentFactory;
3431
3477
  /**
3432
3478
  * Whether the workspace is ready, use {@link ready} promise to wait for it
3433
3479
  */
@@ -3437,20 +3483,11 @@ declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
3437
3483
  */
3438
3484
  protected performStartup(folders: WorkspaceFolder[]): Promise<LangiumDocument[]>;
3439
3485
  /**
3440
- * Load all additional documents that shall be visible in the context of the given workspace
3441
- * folders and add them to the collector. This can be used to include built-in libraries of
3442
- * your language, which can be either loaded from provided files or constructed in memory.
3486
+ * Scans all include paths (from all projects) and returns found likec4 files
3443
3487
  */
3444
- protected loadAdditionalDocuments(folders: WorkspaceFolder[], collector: (document: LangiumDocument) => void): Promise<void>;
3445
- /**
3446
- * Traverse the file system folder identified by the given URI and its subfolders. All
3447
- * contained files that match the file extensions are added to the collector.
3448
- */
3449
- protected traverseFolder(workspaceFolder: WorkspaceFolder, folderPath: URI, selector: FileSelector, collector: (document: LangiumDocument) => void): Promise<void>;
3450
- /**
3451
- * Determine whether the given folder entry shall be included while indexing the workspace.
3452
- */
3453
- protected includeEntry(_: WorkspaceFolder, entry: FileSystemNode, selector: FileSelector): boolean;
3488
+ protected scanProjectIncludePaths(): Promise<FileSystemNode[]>;
3489
+ protected loadDocuments(files: FileSystemNode[]): Promise<LangiumDocument[]>;
3490
+ protected saveAddDocument(document: LangiumDocument): void;
3454
3491
  workspace(): WorkspaceFolder | null;
3455
3492
  rebuildAll(cancelToken?: CancellationToken$1): Promise<void>;
3456
3493
  get workspaceUri(): URI;
@@ -3468,26 +3505,21 @@ declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
3468
3505
  * Uses a timeout fallback for third-party IDEs that may not support workspace/configuration.
3469
3506
  */
3470
3507
  private readExcludeConfig;
3471
- } //#endregion
3508
+ }
3509
+ //#endregion
3472
3510
  //#region src/references/scope-provider.d.ts
3473
3511
  declare class LikeC4ScopeProvider extends DefaultScopeProvider {
3474
- protected deploymentsIndex: DeploymentsIndex;
3475
- protected fqnIndex: FqnIndex;
3512
+ protected services: LikeC4Services;
3476
3513
  protected readonly indexManager: IndexManager;
3477
3514
  constructor(services: LikeC4Services);
3515
+ protected get fqnIndex(): FqnIndex;
3516
+ protected get deploymentsIndex(): DeploymentsIndex;
3478
3517
  getScope(context: ReferenceInfo): Scope;
3479
3518
  protected genUniqueDescedants(element: Element | DeploymentNode | undefined): Generator<AstNodeDescriptionWithFqn, void, any>;
3480
- protected genScopeExtendElement({
3481
- element
3482
- }: ExtendElement): Generator<AstNodeDescription>;
3483
- protected genScopeElementView({
3484
- viewOf,
3485
- extends: ext
3486
- }: ElementView): Generator<AstNodeDescription>;
3519
+ protected genScopeExtendElement({ element }: ExtendElement): Generator<AstNodeDescription>;
3520
+ protected genScopeElementView({ viewOf, extends: ext }: ElementView): Generator<AstNodeDescription>;
3487
3521
  protected getScopeForStrictFqnRef(projectId: ProjectId$1, container: StrictFqnRef, context: ReferenceInfo): Scope;
3488
- protected genScopeExtendDeployment({
3489
- deploymentNode
3490
- }: ExtendDeployment): Generator<AstNodeDescription>;
3522
+ protected genScopeExtendDeployment({ deploymentNode }: ExtendDeployment): Generator<AstNodeDescription>;
3491
3523
  protected streamForFqnRef(projectId: ProjectId$1, container: FqnRef$2, context: ReferenceInfo): Stream<AstNodeDescription>;
3492
3524
  protected genScopeForParentlessFqnRef(projectId: ProjectId$1, container: FqnRef$2, context: ReferenceInfo): Generator<AstNodeDescription>;
3493
3525
  /**
@@ -3510,7 +3542,8 @@ declare class LikeC4ScopeProvider extends DefaultScopeProvider {
3510
3542
  * Create a global scope filtered for the given reference type.
3511
3543
  */
3512
3544
  protected getGlobalScope(referenceType: string, context: ReferenceInfo): Scope;
3513
- } //#endregion
3545
+ }
3546
+ //#endregion
3514
3547
  //#region src/model/fqn-index.d.ts
3515
3548
  declare class FqnIndex<AstNd = Element> extends ADisposable {
3516
3549
  protected services: LikeC4Services;
@@ -3553,23 +3586,21 @@ declare class DocumentFqnIndex {
3553
3586
  /**
3554
3587
  * direct children of elements
3555
3588
  */
3556
-
3557
3589
  _children: MultiMap<Fqn, AstNodeDescriptionWithFqn>,
3558
3590
  /**
3559
3591
  * All descendants of an element (unique by name)
3560
3592
  */
3561
-
3562
3593
  _descendants: MultiMap<Fqn, AstNodeDescriptionWithFqn>,
3563
3594
  /**
3564
3595
  * All elements by FQN
3565
3596
  */
3566
-
3567
3597
  _byfqn: MultiMap<Fqn, AstNodeDescriptionWithFqn>, projectId: ProjectId);
3568
3598
  rootElements(): readonly AstNodeDescriptionWithFqn[];
3569
3599
  byFqn(fqn: Fqn): readonly AstNodeDescriptionWithFqn[];
3570
3600
  children(parent: Fqn): readonly AstNodeDescriptionWithFqn[];
3571
3601
  descendants(nodeName: Fqn): readonly AstNodeDescriptionWithFqn[];
3572
- } //#endregion
3602
+ }
3603
+ //#endregion
3573
3604
  //#region src/model/deployments-index.d.ts
3574
3605
  declare class DeploymentsIndex extends FqnIndex<DeploymentElement> {
3575
3606
  protected services: LikeC4Services;
@@ -3577,7 +3608,8 @@ declare class DeploymentsIndex extends FqnIndex<DeploymentElement> {
3577
3608
  protected logger: any;
3578
3609
  constructor(services: LikeC4Services);
3579
3610
  protected createDocumentIndex(document: LikeC4LangiumDocument): DocumentFqnIndex;
3580
- } //#endregion
3611
+ }
3612
+ //#endregion
3581
3613
  //#region src/model/builder/MergedSpecification.d.ts
3582
3614
  /**
3583
3615
  * The `MergedSpecification` class is responsible for merging multiple parsed
@@ -3598,30 +3630,11 @@ declare class MergedSpecification {
3598
3630
  /**
3599
3631
  * Converts a parsed model into a C4 model element.
3600
3632
  */
3601
- toModelElement: ({
3602
- tags,
3603
- links,
3604
- style,
3605
- id,
3606
- kind,
3607
- title,
3608
- description,
3609
- technology,
3610
- summary,
3611
- metadata
3612
- }: ParsedAstElement) => c4.Element | null;
3633
+ toModelElement: ({ tags, links, style, id, kind, title, description, technology, summary, metadata }: ParsedAstElement) => c4.Element | null;
3613
3634
  /**
3614
3635
  * Converts a parsed model into a C4 model relation.
3615
3636
  */
3616
- toModelRelation: ({
3617
- astPath: _astPath,
3618
- source,
3619
- target,
3620
- kind,
3621
- links,
3622
- id,
3623
- ...model
3624
- }: ParsedAstRelation) => c4.Relationship | null;
3637
+ toModelRelation: ({ astPath: _astPath, source, target, kind, links, id, title, tags, ...model }: ParsedAstRelation) => c4.Relationship | null;
3625
3638
  /**
3626
3639
  * Converts a parsed deployment model into a C4 deployment model
3627
3640
  */
@@ -3629,16 +3642,9 @@ declare class MergedSpecification {
3629
3642
  /**
3630
3643
  * Converts a parsed deployment relation into a C4 deployment relation.
3631
3644
  */
3632
- toDeploymentRelation: ({
3633
- astPath: _astPath,
3634
- source,
3635
- target,
3636
- kind,
3637
- links,
3638
- id,
3639
- ...model
3640
- }: ParsedAstDeploymentRelation) => c4.DeploymentRelationship | null;
3641
- } //#endregion
3645
+ toDeploymentRelation: ({ astPath: _astPath, source, target, kind, links, id, tags, ...model }: ParsedAstDeploymentRelation) => c4.DeploymentRelationship | null;
3646
+ }
3647
+ //#endregion
3642
3648
  //#region src/model/last-seen-artifacts.d.ts
3643
3649
  /**
3644
3650
  * Provides access to "last seen artifacts" for a given project,
@@ -3677,7 +3683,8 @@ declare class LastSeenArtifacts extends ADisposable {
3677
3683
  * @returns LikeC4Model.Computed or undefined.
3678
3684
  */
3679
3685
  model(projectId: c4.ProjectId): LikeC4Model.Computed | undefined;
3680
- } //#endregion
3686
+ }
3687
+ //#endregion
3681
3688
  //#region src/model/model-builder.d.ts
3682
3689
  type ModelParsedListener = (projectId: ProjectId$1, docs: URI[]) => void;
3683
3690
  interface LikeC4ModelBuilder extends Disposable$1 {
@@ -3686,7 +3693,8 @@ interface LikeC4ModelBuilder extends Disposable$1 {
3686
3693
  computeModel(projectId?: ProjectId$1 | undefined, cancelToken?: CancellationToken$1): Promise<LikeC4Model<UnknownComputed>>;
3687
3694
  onModelParsed(callback: ModelParsedListener): Disposable$1;
3688
3695
  clearCache(): void;
3689
- } //#endregion
3696
+ }
3697
+ //#endregion
3690
3698
  //#region src/model/model-locator.d.ts
3691
3699
  /** Result of locating a view: document, view AST, and view block node. */
3692
3700
  type ViewLocateResult = {
@@ -3755,7 +3763,8 @@ declare class LikeC4ModelLocator {
3755
3763
  astPath: string;
3756
3764
  projectId?: c4.ProjectId | undefined;
3757
3765
  }): Location | null;
3758
- } //#endregion
3766
+ }
3767
+ //#endregion
3759
3768
  //#region src/views/LikeC4Views.d.ts
3760
3769
  type GraphvizOut = {
3761
3770
  readonly dot: string;
@@ -3776,7 +3785,8 @@ type LayoutViewParams = {
3776
3785
  */
3777
3786
  layoutType?: LayoutType | undefined;
3778
3787
  projectId?: ProjectId$1 | undefined;
3779
- cancelToken?: CancellationToken$1 | undefined; /** Optional AI-generated layout hints */
3788
+ cancelToken?: CancellationToken$1 | undefined;
3789
+ /** Optional AI-generated layout hints */
3780
3790
  layoutHints?: AILayoutHints | undefined;
3781
3791
  };
3782
3792
  interface LikeC4Views extends Disposable$1 {
@@ -3828,8 +3838,7 @@ interface LikeC4Views extends Disposable$1 {
3828
3838
  * @param projectId - project id, if not specified - uses the default project
3829
3839
  */
3830
3840
  adhocView(predicates: AdhocViewPredicate[], projectId?: ProjectId$1 | undefined): Promise<LayoutedView$1>;
3831
- } //#endregion
3832
- //#region src/views/index.d.ts
3841
+ }
3833
3842
  //#endregion
3834
3843
  //#region src/model/parser/Base.d.ts
3835
3844
  type ParserLevel = 'base' | 'model' | 'deployment' | 'fqnref' | 'relation' | 'views' | 'globals' | 'imports' | 'specification';
@@ -3845,7 +3854,7 @@ declare class BaseParser {
3845
3854
  constructor(services: LikeC4Services, doc: ParsedLikeC4LangiumDocument, project: Project);
3846
3855
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: ParserLevel): void;
3847
3856
  tryParse<N extends AstNode, T>(level: ParserLevel, node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
3848
- tryMap<N extends AstNode, T>(level: ParserLevel, iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3857
+ tryMap<N extends AstNode, T>(level: ParserLevel, iterable: ReadonlyArray<N>, fn: (node: N, index: number) => T | undefined): T[];
3849
3858
  resolveFqn(node: FqnReferenceable): c4.Fqn;
3850
3859
  getAstNodePath(node: AstNode): string;
3851
3860
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -3888,7 +3897,8 @@ declare class BaseParser {
3888
3897
  description?: c4.MarkdownOrString;
3889
3898
  technology?: string;
3890
3899
  };
3891
- } //#endregion
3900
+ }
3901
+ //#endregion
3892
3902
  //#region src/model/model-parser.d.ts
3893
3903
  declare const DocumentParserFromMixins: {
3894
3904
  new (...args: any[]): {
@@ -3910,13 +3920,17 @@ declare const DocumentParserFromMixins: {
3910
3920
  parseDynamicElementView(astNode: DynamicView, additionalStyles: any[]): ParsedAstDynamicView;
3911
3921
  parseDynamicViewRule(astRule: DynamicViewRule): ProjectId$1;
3912
3922
  parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId$1;
3913
- parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId$1;
3914
- parseDynamicStep(node: DynamicViewStep): ProjectId$1 | ProjectId$1;
3915
- recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId$1, target: ProjectId$1]>): ProjectId$1[];
3916
- parseDynamicStepSingle(node: DynamicStepSingle): ProjectId$1;
3917
- parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId$1, "source", {
3923
+ parseSteps(nodes: StepStatement[]): ProjectId$1[];
3924
+ parseStepStatement(node: StepStatement): ProjectId$1;
3925
+ parseStepSeries(node: StepSeries): ProjectId$1;
3926
+ recursiveParseStepSeries(node: StepSeries, callstack?: Array<[source: ProjectId$1, target: ProjectId$1]>): ProjectId$1[];
3927
+ parseStep(node: Step): ProjectId$1;
3928
+ parseAbstractDynamicStep(astnode: AbstractStep): import("type-fest").Writable<import("type-fest").Except<ProjectId$1, "source", {
3918
3929
  requireExactProps: true;
3919
3930
  }>>;
3931
+ parseSubflowStep(node: SubflowStep): ProjectId$1 | ProjectId$1 | ProjectId$1 | ProjectId$1;
3932
+ parseTryStep(node: TryStep): ProjectId$1;
3933
+ parseAltSteps(node: AltSteps): ProjectId$1;
3920
3934
  parsePredicate(astNode: ExpressionV2): ProjectId$1;
3921
3935
  parseElementPredicate(astNode: FqnExprOrWith): ProjectId$1;
3922
3936
  parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
@@ -3939,7 +3953,7 @@ declare const DocumentParserFromMixins: {
3939
3953
  parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
3940
3954
  parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
3941
3955
  parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
3942
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
3956
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): import("type-fest").Except<ProjectId$1["customRelation"], "expr">;
3943
3957
  parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
3944
3958
  parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
3945
3959
  parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
@@ -3953,7 +3967,7 @@ declare const DocumentParserFromMixins: {
3953
3967
  readonly project: Project;
3954
3968
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
3955
3969
  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;
3956
- tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
3970
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N, index: number) => T | undefined): T[];
3957
3971
  resolveFqn(node: FqnReferenceable): ProjectId$1;
3958
3972
  getAstNodePath(node: AstNode): string;
3959
3973
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -4015,13 +4029,17 @@ declare const DocumentParserFromMixins: {
4015
4029
  parseDynamicElementView(astNode: DynamicView, additionalStyles: any[]): ParsedAstDynamicView;
4016
4030
  parseDynamicViewRule(astRule: DynamicViewRule): ProjectId$1;
4017
4031
  parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId$1;
4018
- parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId$1;
4019
- parseDynamicStep(node: DynamicViewStep): ProjectId$1 | ProjectId$1;
4020
- recursiveParseDynamicStepChain(node: DynamicStepChain, callstack?: Array<[source: ProjectId$1, target: ProjectId$1]>): ProjectId$1[];
4021
- parseDynamicStepSingle(node: DynamicStepSingle): ProjectId$1;
4022
- parseAbstractDynamicStep(astnode: AbstractDynamicStep): type_fest0.Writable<type_fest0.Except<ProjectId$1, "source", {
4032
+ parseSteps(nodes: StepStatement[]): ProjectId$1[];
4033
+ parseStepStatement(node: StepStatement): ProjectId$1;
4034
+ parseStepSeries(node: StepSeries): ProjectId$1;
4035
+ recursiveParseStepSeries(node: StepSeries, callstack?: Array<[source: ProjectId$1, target: ProjectId$1]>): ProjectId$1[];
4036
+ parseStep(node: Step): ProjectId$1;
4037
+ parseAbstractDynamicStep(astnode: AbstractStep): import("type-fest").Writable<import("type-fest").Except<ProjectId$1, "source", {
4023
4038
  requireExactProps: true;
4024
4039
  }>>;
4040
+ parseSubflowStep(node: SubflowStep): ProjectId$1 | ProjectId$1 | ProjectId$1 | ProjectId$1;
4041
+ parseTryStep(node: TryStep): ProjectId$1;
4042
+ parseAltSteps(node: AltSteps): ProjectId$1;
4025
4043
  parsePredicate(astNode: ExpressionV2): ProjectId$1;
4026
4044
  parseElementPredicate(astNode: FqnExprOrWith): ProjectId$1;
4027
4045
  parseElementPredicateOrWhere(astNode: FqnExprOrWhere): ProjectId$1;
@@ -4044,7 +4062,7 @@ declare const DocumentParserFromMixins: {
4044
4062
  parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
4045
4063
  parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
4046
4064
  parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
4047
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
4065
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): import("type-fest").Except<ProjectId$1["customRelation"], "expr">;
4048
4066
  parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
4049
4067
  parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
4050
4068
  parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
@@ -4058,7 +4076,7 @@ declare const DocumentParserFromMixins: {
4058
4076
  readonly project: Project;
4059
4077
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
4060
4078
  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;
4061
- tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
4079
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N, index: number) => T | undefined): T[];
4062
4080
  resolveFqn(node: FqnReferenceable): ProjectId$1;
4063
4081
  getAstNodePath(node: AstNode): string;
4064
4082
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -4118,7 +4136,7 @@ declare const DocumentParserFromMixins: {
4118
4136
  readonly project: Project;
4119
4137
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
4120
4138
  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;
4121
- tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
4139
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N, index: number) => T | undefined): T[];
4122
4140
  resolveFqn(node: FqnReferenceable): ProjectId$1;
4123
4141
  getAstNodePath(node: AstNode): string;
4124
4142
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -4179,7 +4197,7 @@ declare const DocumentParserFromMixins: {
4179
4197
  parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
4180
4198
  parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
4181
4199
  parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
4182
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
4200
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): import("type-fest").Except<ProjectId$1["customRelation"], "expr">;
4183
4201
  parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
4184
4202
  parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
4185
4203
  parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
@@ -4193,7 +4211,7 @@ declare const DocumentParserFromMixins: {
4193
4211
  readonly project: Project;
4194
4212
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
4195
4213
  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;
4196
- tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
4214
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N, index: number) => T | undefined): T[];
4197
4215
  resolveFqn(node: FqnReferenceable): ProjectId$1;
4198
4216
  getAstNodePath(node: AstNode): string;
4199
4217
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -4247,7 +4265,7 @@ declare const DocumentParserFromMixins: {
4247
4265
  parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
4248
4266
  parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
4249
4267
  parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
4250
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
4268
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): import("type-fest").Except<ProjectId$1["customRelation"], "expr">;
4251
4269
  parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
4252
4270
  parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
4253
4271
  parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
@@ -4261,7 +4279,7 @@ declare const DocumentParserFromMixins: {
4261
4279
  readonly project: Project;
4262
4280
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
4263
4281
  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;
4264
- tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
4282
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N, index: number) => T | undefined): T[];
4265
4283
  resolveFqn(node: FqnReferenceable): ProjectId$1;
4266
4284
  getAstNodePath(node: AstNode): string;
4267
4285
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -4323,7 +4341,7 @@ declare const DocumentParserFromMixins: {
4323
4341
  parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
4324
4342
  parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
4325
4343
  parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
4326
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
4344
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): import("type-fest").Except<ProjectId$1["customRelation"], "expr">;
4327
4345
  parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
4328
4346
  parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
4329
4347
  parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
@@ -4337,7 +4355,7 @@ declare const DocumentParserFromMixins: {
4337
4355
  readonly project: Project;
4338
4356
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
4339
4357
  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;
4340
- tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
4358
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N, index: number) => T | undefined): T[];
4341
4359
  resolveFqn(node: FqnReferenceable): ProjectId$1;
4342
4360
  getAstNodePath(node: AstNode): string;
4343
4361
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -4393,7 +4411,7 @@ declare const DocumentParserFromMixins: {
4393
4411
  parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
4394
4412
  parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
4395
4413
  parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
4396
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
4414
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): import("type-fest").Except<ProjectId$1["customRelation"], "expr">;
4397
4415
  parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
4398
4416
  parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
4399
4417
  parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
@@ -4407,7 +4425,7 @@ declare const DocumentParserFromMixins: {
4407
4425
  readonly project: Project;
4408
4426
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
4409
4427
  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;
4410
- tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
4428
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N, index: number) => T | undefined): T[];
4411
4429
  resolveFqn(node: FqnReferenceable): ProjectId$1;
4412
4430
  getAstNodePath(node: AstNode): string;
4413
4431
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -4455,7 +4473,7 @@ declare const DocumentParserFromMixins: {
4455
4473
  readonly project: Project;
4456
4474
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
4457
4475
  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;
4458
- tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
4476
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N, index: number) => T | undefined): T[];
4459
4477
  resolveFqn(node: FqnReferenceable): ProjectId$1;
4460
4478
  getAstNodePath(node: AstNode): string;
4461
4479
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -4505,7 +4523,7 @@ declare const DocumentParserFromMixins: {
4505
4523
  parseFqnExpressions(astNode: FqnExpressions): ProjectId$1[];
4506
4524
  parseRelationExprOrWith(astNode: RelationExprOrWith): ProjectId$1;
4507
4525
  parseRelationExprWith(astNode: RelationExprWith): ProjectId$1;
4508
- parseCustomRelationProperties(custom: CustomRelationProperties | undefined): type_fest0.Except<ProjectId$1["customRelation"], "expr">;
4526
+ parseCustomRelationProperties(custom: CustomRelationProperties | undefined): import("type-fest").Except<ProjectId$1["customRelation"], "expr">;
4509
4527
  parseRelationExprOrWhere(astNode: RelationExprOrWhere): ProjectId$1;
4510
4528
  parseRelationExprWhere(astNode: RelationExprWhere): ProjectId$1;
4511
4529
  parseRelationExpr(astNode: RelationExpr$1): ProjectId$1;
@@ -4519,7 +4537,7 @@ declare const DocumentParserFromMixins: {
4519
4537
  readonly project: Project;
4520
4538
  logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
4521
4539
  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;
4522
- tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
4540
+ tryMap<N extends AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N, index: number) => T | undefined): T[];
4523
4541
  resolveFqn(node: FqnReferenceable): ProjectId$1;
4524
4542
  getAstNodePath(node: AstNode): string;
4525
4543
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -4566,21 +4584,20 @@ declare class LikeC4ModelParser extends ADisposable {
4566
4584
  parse(doc: LangiumDocument): ParsedLikeC4LangiumDocument;
4567
4585
  forDocument(doc: LangiumDocument): DocumentParser;
4568
4586
  private createParser;
4569
- } //#endregion
4587
+ }
4588
+ //#endregion
4570
4589
  //#region src/model/parser/ValueConverter.d.ts
4571
4590
  declare class LikeC4ValueConverter extends DefaultValueConverter {
4572
4591
  protected runConverter(rule: any, input: string, cstNode: CstNode): ValueType;
4573
- } //#endregion
4592
+ }
4593
+ //#endregion
4574
4594
  //#region src/model-change/ModelChanges.d.ts
4575
4595
  declare class LikeC4ModelChanges {
4576
4596
  private services;
4577
4597
  private locator;
4578
4598
  constructor(services: LikeC4Services);
4579
4599
  applyChange(changeView: ChangeView.Params): Promise<ChangeView.Res>;
4580
- protected convertToTextEdit({
4581
- lookup,
4582
- change
4583
- }: {
4600
+ protected convertToTextEdit({ lookup, change }: {
4584
4601
  lookup: ViewLocateResult;
4585
4602
  change: Exclude<ViewChange, ViewChange.SaveViewSnapshot | ViewChange.ResetManualLayout | ViewChange.ChangeProperty>;
4586
4603
  }): {
@@ -4588,7 +4605,8 @@ declare class LikeC4ModelChanges {
4588
4605
  edits: TextEdit[];
4589
4606
  };
4590
4607
  protected applyTextEdits(doc: ParsedLikeC4LangiumDocument, edits: TextEdit[]): Promise<boolean>;
4591
- } //#endregion
4608
+ }
4609
+ //#endregion
4592
4610
  //#region src/LikeC4LanguageServices.d.ts
4593
4611
  interface LikeC4LanguageServices {
4594
4612
  readonly views: LikeC4Views;
@@ -4689,13 +4707,15 @@ interface FormatOptions {
4689
4707
  insertFinalNewline?: boolean;
4690
4708
  /** Trim all newlines after the final newline at the end of the file. */
4691
4709
  trimFinalNewlines?: boolean;
4692
- } //#endregion
4710
+ }
4711
+ //#endregion
4693
4712
  //#region src/lsp/CodeLensProvider.d.ts
4694
4713
  declare class LikeC4CodeLensProvider implements CodeLensProvider {
4695
4714
  private services;
4696
4715
  constructor(services: LikeC4Services);
4697
4716
  provideCodeLens(doc: LangiumDocument, _params: CodeLensParams, cancelToken?: CancellationToken$1): Promise<CodeLens[] | undefined>;
4698
- } //#endregion
4717
+ }
4718
+ //#endregion
4699
4719
  //#region src/lsp/CompletionProvider.d.ts
4700
4720
  declare class LikeC4CompletionProvider extends DefaultCompletionProvider {
4701
4721
  protected services: LikeC4Services;
@@ -4706,14 +4726,16 @@ declare class LikeC4CompletionProvider extends DefaultCompletionProvider {
4706
4726
  protected completionFor(context: CompletionContext, next: NextFeature, acceptor: CompletionAcceptor): MaybePromise<void>;
4707
4727
  protected completionForKeyword(context: CompletionContext, keyword: Keyword, acceptor: CompletionAcceptor): MaybePromise<void>;
4708
4728
  protected completionForImportedProject(context: CompletionContext, acceptor: CompletionAcceptor): void;
4709
- } //#endregion
4729
+ }
4730
+ //#endregion
4710
4731
  //#region src/lsp/DocumentHighlightProvider.d.ts
4711
4732
  declare class LikeC4DocumentHighlightProvider extends DefaultDocumentHighlightProvider {
4712
4733
  /**
4713
4734
  * Override this method to determine the highlight kind of the given reference.
4714
4735
  */
4715
4736
  protected createDocumentHighlight(reference: ReferenceDescription): DocumentHighlight;
4716
- } //#endregion
4737
+ }
4738
+ //#endregion
4717
4739
  //#region src/lsp/DocumentLinkProvider.d.ts
4718
4740
  declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
4719
4741
  private services;
@@ -4721,7 +4743,8 @@ declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
4721
4743
  getDocumentLinks(doc: LangiumDocument, _params: DocumentLinkParams, _cancelToken?: CancellationToken$1): Promise<DocumentLink[]>;
4722
4744
  resolveLink(doc: LangiumDocument, link: string): string;
4723
4745
  relativeLink(doc: LangiumDocument, link: string): string | null;
4724
- } //#endregion
4746
+ }
4747
+ //#endregion
4725
4748
  //#region src/lsp/DocumentSymbolProvider.d.ts
4726
4749
  declare class LikeC4DocumentSymbolProvider implements DocumentSymbolProvider {
4727
4750
  private services;
@@ -4735,7 +4758,7 @@ declare class LikeC4DocumentSymbolProvider implements DocumentSymbolProvider {
4735
4758
  protected getSpecSymbol(astSpec: SpecificationRule): DocumentSymbol[];
4736
4759
  protected getModelSymbol(astModel: Model): DocumentSymbol[];
4737
4760
  protected getDeploymentModelSymbol(astModel: ModelDeployments): DocumentSymbol[];
4738
- protected getElementsSymbol(el: Element | Relation | ExtendElement, parentFqn?: string): DocumentSymbol[];
4761
+ protected getElementsSymbol(el: Element | Relation | ExtendElement, _parentFqn?: string): DocumentSymbol[];
4739
4762
  protected getExtendElementSymbol(astElement: ExtendElement): DocumentSymbol[];
4740
4763
  protected getElementSymbol(astElement: Element): DocumentSymbol[];
4741
4764
  protected getModelViewsSymbol(astViews: ModelViews): DocumentSymbol[];
@@ -4747,7 +4770,8 @@ declare class LikeC4DocumentSymbolProvider implements DocumentSymbolProvider {
4747
4770
  protected getDeploymentNodeSymbol(astElement: DeploymentNode): DocumentSymbol[];
4748
4771
  protected getDeployedInstanceSymbol(astElement: DeployedInstance): DocumentSymbol[];
4749
4772
  protected symbolKind(node: AstNode): SymbolKind;
4750
- } //#endregion
4773
+ }
4774
+ //#endregion
4751
4775
  //#region src/lsp/HoverProvider.d.ts
4752
4776
  /**
4753
4777
  * Provides hover content for LikeC4 AST nodes (elements, tags, relations, etc.)
@@ -4785,7 +4809,8 @@ declare class LikeC4HoverProvider extends AstNodeHoverProvider {
4785
4809
  * @returns Hover information with markdown content showing instance details.
4786
4810
  */
4787
4811
  protected getDeployedInstanceHover(node: DeployedInstance): MaybePromise<Hover | undefined>;
4788
- } //#endregion
4812
+ }
4813
+ //#endregion
4789
4814
  //#region src/lsp/CodeActionProvider.d.ts
4790
4815
  type CommandOrCodeAction = Command | CodeAction;
4791
4816
  declare class LikeC4CodeActionProvider implements CodeActionProvider {
@@ -4796,7 +4821,8 @@ declare class LikeC4CodeActionProvider implements CodeActionProvider {
4796
4821
  * @throws `ResponseError` if an error is detected that should be sent as response to the client
4797
4822
  */
4798
4823
  getCodeActions(_document: LangiumDocument, _params: CodeActionParams): CommandOrCodeAction[] | undefined;
4799
- } //#endregion
4824
+ }
4825
+ //#endregion
4800
4826
  //#region src/lsp/SemanticTokenProvider.d.ts
4801
4827
  declare class LikeC4SemanticTokenProvider extends AbstractSemanticTokenProvider {
4802
4828
  protected services: LikeC4Services;
@@ -4807,14 +4833,16 @@ declare class LikeC4SemanticTokenProvider extends AbstractSemanticTokenProvider
4807
4833
  private highlightNameAndKind;
4808
4834
  private highlightView;
4809
4835
  private mark;
4810
- } //#endregion
4836
+ }
4837
+ //#endregion
4811
4838
  //#region src/Rpc.d.ts
4812
4839
  declare class Rpc extends ADisposable {
4813
4840
  private services;
4814
4841
  constructor(services: LikeC4Services);
4815
4842
  init: () => void;
4816
4843
  openView(params: DidRequestOpenViewNotification.Params): Promise<void>;
4817
- } //#endregion
4844
+ }
4845
+ //#endregion
4818
4846
  //#region src/shared/NodeKindProvider.d.ts
4819
4847
  declare class NodeKindProvider$1 implements NodeKindProvider {
4820
4848
  private services;
@@ -4827,9 +4855,11 @@ declare class NodeKindProvider$1 implements NodeKindProvider {
4827
4855
  * Returns a `CompletionItemKind` as used by the `CompletionProvider`.
4828
4856
  */
4829
4857
  getCompletionItemKind(node: AstNode | AstNodeDescription): CompletionItemKind;
4830
- } //#endregion
4858
+ }
4859
+ //#endregion
4831
4860
  //#region src/shared/WorkspaceSymbolProvider.d.ts
4832
- declare class WorkspaceSymbolProvider extends DefaultWorkspaceSymbolProvider {} //#endregion
4861
+ declare class WorkspaceSymbolProvider extends DefaultWorkspaceSymbolProvider {}
4862
+ //#endregion
4833
4863
  //#region src/module.d.ts
4834
4864
  interface LikeC4AddedSharedServices {
4835
4865
  lsp: {
@@ -4895,7 +4925,7 @@ interface LikeC4AddedServices {
4895
4925
  }
4896
4926
  type LikeC4Services = LangiumServices & LikeC4AddedServices;
4897
4927
  //#endregion
4898
- //#region ../language-services/dist/_chunks/options.d.mts
4928
+ //#region ../language-services/dist/chunks/options.d.mts
4899
4929
  //#region src/common/LikeC4.d.ts
4900
4930
  interface LikeC4Langium {
4901
4931
  shared: LikeC4SharedServices;
@@ -4944,6 +4974,104 @@ declare class LikeC4 {
4944
4974
  * Not ready for rendering, but enough to traverse
4945
4975
  */
4946
4976
  computedModel(project?: string | undefined): Promise<LikeC4Model.Computed>;
4977
+ /**
4978
+ * Returns the parsed model — elements, relations, views, deployments, globals
4979
+ * and imports as parsed from DSL, BEFORE view computation or layout.
4980
+ *
4981
+ * Use this when you need to inspect the raw parsed shape, or as input to
4982
+ * {@link toBuilder} for programmatic enrichment.
4983
+ */
4984
+ parsedModel(project?: string | undefined): Promise<LikeC4Model.Parsed>;
4985
+ /**
4986
+ * Returns a {@link Builder} seeded with the parsed model of the given project.
4987
+ *
4988
+ * This unblocks programmatic enrichment — you can chain `.model(...)`,
4989
+ * `.deployment(...)` and `.views(...)` on the returned builder to add new
4990
+ * elements, relations and views on top of what was loaded from DSL.
4991
+ *
4992
+ * The builder is `editable` by default: re-declaring an element that already
4993
+ * exists (same FQN, same kind) edits it in place rather than throwing — which
4994
+ * is what you usually want when patching a loaded model. Pass `'strict'` to
4995
+ * get the strict builder where duplicate FQNs always throw (see
4996
+ * {@link BuilderMode}).
4997
+ *
4998
+ * Type-safety note: the returned builder is `Builder<AnyTypes>` — element
4999
+ * kinds, FQNs, view ids and tags are only known at runtime. See
5000
+ * {@link Builder.fromParsed} for details.
5001
+ *
5002
+ * @example
5003
+ * ```ts
5004
+ * const likec4 = await LikeC4.fromWorkspace('/path/to/workspace')
5005
+ * const enriched = (await likec4.toBuilder())
5006
+ * .model(({ system, component }, _) =>
5007
+ * _(system('monitoring').with(component('grafana'))),
5008
+ * )
5009
+ * .toLikeC4Model()
5010
+ *
5011
+ * // Strict builder — re-declaring an existing FQN throws:
5012
+ * const strict = await likec4.toBuilder('strict')
5013
+ * ```
5014
+ */
5015
+ toBuilder(mode?: BuilderMode, project?: string | undefined): Promise<Builder<AnyTypes>>;
5016
+ /**
5017
+ * Like {@link toBuilder}, but validates the given `specification` against the
5018
+ * loaded model and returns a **typed** builder.
5019
+ *
5020
+ * Use this when your code authors the model with the same specification as the
5021
+ * DSL: pass that spec and get a `Builder<Types.FromSpecification<Spec>>` with
5022
+ * autocomplete on element / deployment / relationship kinds, tags and metadata
5023
+ * keys — replacing the unchecked `as unknown as Builder<...>` cast.
5024
+ *
5025
+ * Validation is **subset-based**: every kind / tag / metadata key you declare
5026
+ * must exist in the loaded model (otherwise the produced types would lie and we
5027
+ * throw). The loaded model may contain *extra* kinds you didn't declare — you
5028
+ * simply won't get typed helpers for them.
5029
+ *
5030
+ * Like {@link toBuilder}, the builder is `editable` by default — pass
5031
+ * `mode: 'strict'` for the throw-on-duplicate builder.
5032
+ *
5033
+ * Note: existing FQNs and view ids from the loaded model are still NOT part of
5034
+ * the static type set (only kinds/tags/metadata keys are) — see
5035
+ * {@link Builder.fromParsed}.
5036
+ *
5037
+ * @example
5038
+ * ```ts
5039
+ * const specification = {
5040
+ * elements: ['actor', 'system', 'component'],
5041
+ * tags: ['external'],
5042
+ * } as const
5043
+ *
5044
+ * const builder = await likec4.toTypedBuilder({ specification })
5045
+ * const enriched = builder
5046
+ * .model(({ system, component }, _) =>
5047
+ * _(system('monitoring').with(component('grafana'))),
5048
+ * )
5049
+ * .toLikeC4Model()
5050
+ * ```
5051
+ */
5052
+ toTypedBuilder<const Spec extends BuilderSpecification>(options: {
5053
+ /** The specification your code expects — validated against the loaded model. */
5054
+ specification: Spec;
5055
+ /** Duplicate handling, defaults to `'editable'` (see {@link toBuilder}). */
5056
+ mode?: BuilderMode;
5057
+ /** Project name to seed from (for multi-project workspaces). */
5058
+ project?: string;
5059
+ }): Promise<Builder<Types.FromSpecification<Spec>>>;
5060
+ /**
5061
+ * Renders the parsed model of the given project back to LikeC4 DSL source.
5062
+ *
5063
+ * The output is a single, formatted `.c4` string containing the specification,
5064
+ * model, deployment and views blocks. This round-trip is intentionally LOSSY:
5065
+ * comments, source positions and original formatting are not preserved.
5066
+ *
5067
+ * Useful for "load + patch + emit" workflows where the source of truth is
5068
+ * external (e.g. a service catalogue or Terraform state) and DSL files are
5069
+ * regenerated wholesale.
5070
+ *
5071
+ * To write the output to disk, use the `writeDSL` helper from
5072
+ * `@likec4/language-services/node`.
5073
+ */
5074
+ toDSL(project?: string | undefined): Promise<string>;
4947
5075
  projects(): NonEmptyArray<ProjectId>;
4948
5076
  /**
4949
5077
  * Same as {@link computedModel()}, but also applies layout
@@ -5013,7 +5141,36 @@ interface LikeC4FormatOptions {
5013
5141
  insertFinalNewline?: boolean;
5014
5142
  /** Trim all newlines after the final newline at the end of the file. */
5015
5143
  trimFinalNewlines?: boolean;
5016
- } //#endregion
5017
- //#region src/common/options.d.ts
5144
+ }
5145
+ //#endregion
5146
+ //#region ../language-services/dist/node/index.d.mts
5147
+ /**
5148
+ * Options for {@link writeDSL}.
5149
+ */
5150
+ interface WriteDSLOptions {
5151
+ /** Project to render (when the workspace has multiple). Defaults to the only one. */
5152
+ project?: string;
5153
+ /** Output filename. Default: `model.c4`. */
5154
+ fileName?: string;
5155
+ }
5156
+ /**
5157
+ * Renders the parsed model back to LikeC4 DSL source and writes it to disk.
5158
+ *
5159
+ * The output is a single, formatted `.c4` file. This round-trip is intentionally
5160
+ * LOSSY: comments, source positions and original formatting are not preserved.
5161
+ *
5162
+ * @param likec4 - A LikeC4 instance (typically from `fromWorkspace`).
5163
+ * @param targetDir - Directory to write the output file into. Must already exist.
5164
+ * @param options - {@link WriteDSLOptions}
5165
+ * @returns The full path of the written file.
5166
+ *
5167
+ * @example
5168
+ * ```ts
5169
+ * const likec4 = await LikeC4.fromWorkspace('/path/to/workspace')
5170
+ * const out = await writeDSL(likec4, '/tmp/generated')
5171
+ * console.log(`Wrote DSL to ${out}`)
5172
+ * ```
5173
+ */
5174
+ declare function writeDSL(likec4: LikeC4, targetDir: string, options?: WriteDSLOptions): Promise<string>;
5018
5175
  //#endregion
5019
- export { LikeC4LanguageServices as n, LikeC4 as t };
5176
+ export { LikeC4LanguageServices as i, writeDSL as n, LikeC4 as r, WriteDSLOptions as t };