likec4 1.30.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,11 +1,12 @@
1
- import { ProjectId, DiagramView, NonEmptyArray } from '@likec4/core';
2
- export { AbstractRelation, AutoLayoutDirection, BBox, Color, ComputedDeploymentView, ComputedDynamicView, ComputedEdge, ComputedElementView, ComputedLikeC4ModelData, ComputedNode, ComputedView, DeployedInstance, DeploymentElement, DeploymentNode, DeploymentNodeKind, DeploymentRelation, DeploymentView, DiagramEdge, DiagramNode, DiagramView, DynamicView, EdgeId, Element, ElementKind, ElementView, Fqn, HexColorLiteral, LayoutedLikeC4ModelData, LikeC4View, NodeId, ParsedLikeC4ModelData, Point, RelationExpr, RelationId, StepEdgeId, Tag, ThemeColor, ViewId, XYPoint } from '@likec4/core';
1
+ import { W as WorkspaceFolder, a as LikeC4Services, G as GraphvizLayouter, L as LikeC4LanguageServices, b as LikeC4Views, R as Range } from './shared/likec4.8nZi1RFs.mjs';
2
+ import { ProjectId, NonEmptyArray } from '@likec4/core';
3
+ import { DiagramView } from '@likec4/core/types';
4
+ export * from '@likec4/core/types';
3
5
  import { LikeC4Model } from '@likec4/core/model';
4
- export { AnyAux, Aux, LikeC4DeploymentModel, LikeC4Model, LikeC4ViewModel } from '@likec4/core/model';
5
- import { W as WorkspaceFolder, a as LikeC4Services, G as GraphvizLayouter, L as LikeC4LanguageServices, b as LikeC4Views, R as Range } from './shared/likec4.tyGQtUCS.mjs';
6
+ export { Connection, ConnectionModel, DeployedInstanceModel, DeploymentConnectionModel, DeploymentElementModel, DeploymentNodeModel, DeploymentRelationModel, EdgeModel, ElementModel, LikeC4DeploymentModel, LikeC4Model, LikeC4ViewModel, NodeModel, RelationshipModel, deploymentConnection, differenceConnections, findAscendingConnections, findDeepestNestedConnection, findDescendantConnections, hasSameSource, hasSameSourceTarget, hasSameTarget, isAnyInOut, isDeployedInstanceModel, isDeploymentElementModel, isDeploymentNodeModel, isDeploymentRelationModel, isEdgeModel, isElementModel, isIncoming, isLikeC4ViewModel, isNestedConnection, isNestedElementOfDeployedInstanceModel, isNodeModel, isOutgoing, isRelationModel, mergeConnections, modelConnection, sortConnectionsByBoundaryHierarchy, sortDeepestFirst } from '@likec4/core/model';
7
+ export { UnknownLayouted, createLikeC4Model } from './model/index.mjs';
6
8
  import 'type-fest';
7
9
  import '/home/runner/work/likec4/likec4/node_modules/.pnpm/@types+picomatch@4.0.0/node_modules/@types/picomatch/posix.d.ts';
8
- import '@likec4/core/types';
9
10
  import '@likec4/core/utils';
10
11
 
11
12
  type Logger = {
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import"@likec4/core";export{LikeC4DeploymentModel,LikeC4Model,LikeC4ViewModel}from"@likec4/core/model";export{L as LikeC4}from"./shared/likec4.wnruN9MH.mjs";import"node:fs";import"node:path";import"node:url";import"tty";import"node:util";import"util";import"path";import"os";import"crypto";import"net";import"url";import"fs";import"child_process";import"@likec4/core/types";import"events";import"buffer";import"@hpcc-js/wasm-graphviz";import"@likec4/core/compute-view";import"@likec4/core/utils";import"node:process";
2
- import"boxen";import"node:child_process";import"node:events";import"node:fs/promises";import"node:stream/promises";import"node:os";import"fs/promises";
1
+ export{L as LikeC4}from"./shared/likec4.CouFKCvO.mjs";export{LikeC4Model}from"@likec4/core/model";import"node:fs";import"node:path";import"node:url";import"tty";import"node:util";import"util";import"path";import"os";import"crypto";import"net";import"url";import"fs";import"child_process";import"@likec4/core";import"@likec4/core/types";import"events";import"buffer";import"@hpcc-js/wasm-graphviz";import"@likec4/core/compute-view";import"@likec4/core/utils";import"node:process";import"boxen";import"node:child_process";
2
+ import"node:events";import"node:fs/promises";import"node:stream/promises";import"node:readline/promises";import"node:os";import"fs/promises";
@@ -1,10 +1,12 @@
1
- import { LikeC4Model } from '@likec4/core';
2
- export { AbstractRelation, AutoLayoutDirection, BBox, Color, ComputedDeploymentView, ComputedDynamicView, ComputedEdge, ComputedElementView, ComputedLikeC4ModelData, ComputedNode, ComputedView, DeployedInstance, DeploymentElement, DeploymentNode, DeploymentNodeKind, DeploymentRelation, DeploymentView, DiagramEdge, DiagramNode, DiagramView, DynamicView, EdgeId, Element, ElementKind, ElementView, Fqn, HexColorLiteral, LayoutedLikeC4ModelData, LikeC4View, NodeId, OverviewGraph, ParsedLikeC4ModelData, Point, RelationExpr, RelationId, StepEdgeId, Tag, ThemeColor, ViewId, WhereOperator, XYPoint } from '@likec4/core';
3
- export { AnyAux, Aux, Connection, ConnectionModel, DeployedInstanceModel, DeploymentConnectionModel, DeploymentElementModel, DeploymentNodeModel, DeploymentRelationModel, EdgeModel, ElementModel, LikeC4DeploymentModel, LikeC4Model, LikeC4ViewModel, NodeModel, RelationshipModel, deploymentConnection, differenceConnections, findAscendingConnections, findDeepestNestedConnection, findDescendantConnections, hasSameSource, hasSameSourceTarget, hasSameTarget, isAnyInOut, isIncoming, isNestedConnection, isOutgoing, mergeConnections, modelConnection, sortConnectionsByBoundaryHierarchy, sortDeepestFirst } from '@likec4/core/model';
1
+ import { LikeC4Model } from '@likec4/core/model';
2
+ export { Connection, ConnectionModel, DeployedInstanceModel, DeploymentConnectionModel, DeploymentElementModel, DeploymentNodeModel, DeploymentRelationModel, EdgeModel, ElementModel, LikeC4DeploymentModel, LikeC4Model, LikeC4ViewModel, NodeModel, RelationshipModel, deploymentConnection, differenceConnections, findAscendingConnections, findDeepestNestedConnection, findDescendantConnections, hasSameSource, hasSameSourceTarget, hasSameTarget, isAnyInOut, isDeployedInstanceModel, isDeploymentElementModel, isDeploymentNodeModel, isDeploymentRelationModel, isEdgeModel, isElementModel, isIncoming, isLikeC4ViewModel, isNestedConnection, isNestedElementOfDeployedInstanceModel, isNodeModel, isOutgoing, isRelationModel, mergeConnections, modelConnection, sortConnectionsByBoundaryHierarchy, sortDeepestFirst } from '@likec4/core/model';
3
+ import { Aux, SpecAux } from '@likec4/core/types';
4
+ export * from '@likec4/core/types';
4
5
 
6
+ type UnknownLayouted = Aux<'layouted', string, string, string, string, SpecAux<string, string, string, string, string>>;
5
7
  /**
6
8
  * Used by vite plugin to generate `virtual:likec4/model`
7
9
  */
8
- declare function createLikeC4Model(model: any): LikeC4Model.Layouted;
10
+ declare function createLikeC4Model(model: any): LikeC4Model<UnknownLayouted>;
9
11
 
10
- export { createLikeC4Model };
12
+ export { type UnknownLayouted, createLikeC4Model };
@@ -1,2 +1,2 @@
1
- import{LikeC4Model as o}from"@likec4/core";export{ComputedNode,ComputedView,DiagramNode}from"@likec4/core";export{Connection,ConnectionModel,DeployedInstanceModel,DeploymentConnectionModel,DeploymentNodeModel,DeploymentRelationModel,EdgeModel,ElementModel,LikeC4DeploymentModel,LikeC4Model,LikeC4ViewModel,NodeModel,RelationshipModel,deploymentConnection,differenceConnections,findAscendingConnections,findDeepestNestedConnection,findDescendantConnections,hasSameSource,hasSameSourceTarget,hasSameTarget,
2
- isAnyInOut,isIncoming,isNestedConnection,isOutgoing,mergeConnections,modelConnection,sortConnectionsByBoundaryHierarchy,sortDeepestFirst}from"@likec4/core/model";function n(e){return o.create(e)}export{n as createLikeC4Model};
1
+ import{LikeC4Model as o}from"@likec4/core/model";export{Connection,ConnectionModel,DeployedInstanceModel,DeploymentConnectionModel,DeploymentNodeModel,DeploymentRelationModel,EdgeModel,ElementModel,LikeC4DeploymentModel,LikeC4Model,LikeC4ViewModel,NodeModel,RelationshipModel,deploymentConnection,differenceConnections,findAscendingConnections,findDeepestNestedConnection,findDescendantConnections,hasSameSource,hasSameSourceTarget,hasSameTarget,isAnyInOut,isDeployedInstanceModel,isDeploymentElementModel,
2
+ isDeploymentNodeModel,isDeploymentRelationModel,isEdgeModel,isElementModel,isIncoming,isLikeC4ViewModel,isNestedConnection,isNestedElementOfDeployedInstanceModel,isNodeModel,isOutgoing,isRelationModel,mergeConnections,modelConnection,sortConnectionsByBoundaryHierarchy,sortDeepestFirst}from"@likec4/core/model";function n(e){return o.create(e)}export{n as createLikeC4Model};
@@ -1,6 +1,7 @@
1
1
  import * as c4 from '@likec4/core';
2
- import { Fqn, EdgeId, ComputedView, DiagramView, OverviewGraph, MultiMap as MultiMap$1, ProjectId, NonEmptyArray, NonEmptyReadonlyArray, LikeC4Model, ViewId, RelationId, ViewChange } from '@likec4/core';
2
+ import { Fqn, EdgeId, AnyAux, ComputedView, Specification, DiagramView, MultiMap as MultiMap$1, ProjectId, NonEmptyArray, NonEmptyReadonlyArray, ViewId, RelationId, DeploymentFqn, ViewChange } from '@likec4/core';
3
3
  import { Tagged, ValueOf, ConditionalPick, Writable, Simplify, MergeExclusive } from 'type-fest';
4
+ import { LikeC4Model } from '@likec4/core/model';
4
5
  import picomatch from '/home/runner/work/likec4/likec4/node_modules/.pnpm/@types+picomatch@4.0.0/node_modules/@types/picomatch/posix.d.ts';
5
6
  import { ProjectId as ProjectId$1, Fqn as Fqn$1 } from '@likec4/core/types';
6
7
  import { DefaultWeakMap, MultiMap as MultiMap$2 } from '@likec4/core/utils';
@@ -4715,7 +4716,7 @@ interface UriComponents {
4715
4716
  }
4716
4717
 
4717
4718
  /******************************************************************************
4718
- * This file was generated by langium-cli 3.4.0.
4719
+ * This file was generated by langium-cli 3.5.0.
4719
4720
  * DO NOT EDIT MANUALLY!
4720
4721
  ******************************************************************************/
4721
4722
 
@@ -5509,10 +5510,6 @@ interface BaseParser$1 {
5509
5510
  * Executes a grammar action that modifies the currently active AST node
5510
5511
  */
5511
5512
  action($type: string, action: Action): void;
5512
- /**
5513
- * Finishes construction of the current AST node. Only used by the AST parser.
5514
- */
5515
- construct(): unknown;
5516
5513
  /**
5517
5514
  * Whether the parser is currently actually in use or in "recording mode".
5518
5515
  * Recording mode is activated once when the parser is analyzing itself.
@@ -5544,7 +5541,6 @@ declare abstract class AbstractLangiumParser implements BaseParser$1 {
5544
5541
  abstract consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
5545
5542
  abstract subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5546
5543
  abstract action($type: string, action: Action): void;
5547
- abstract construct(): unknown;
5548
5544
  getRule(name: string): RuleResult | undefined;
5549
5545
  isRecording(): boolean;
5550
5546
  get unorderedGroups(): Map<string, boolean[]>;
@@ -5567,6 +5563,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5567
5563
  rule(rule: ParserRule, impl: RuleImpl): RuleResult;
5568
5564
  private computeRuleType;
5569
5565
  parse<T extends AstNode = AstNode>(input: string, options?: ParserOptions): ParseResult<T>;
5566
+ private doParse;
5570
5567
  private startImplementation;
5571
5568
  private extractHiddenTokens;
5572
5569
  consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
@@ -5580,7 +5577,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5580
5577
  subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5581
5578
  private performSubruleAssignment;
5582
5579
  action($type: string, action: Action): void;
5583
- construct(): unknown;
5580
+ private construct;
5584
5581
  private getAssignment;
5585
5582
  private assign;
5586
5583
  private assignWithoutOverride;
@@ -5625,7 +5622,7 @@ declare class ChevrotainWrapper extends EmbeddedActionsParser {
5625
5622
  definitionErrors: IParserDefinitionError[];
5626
5623
  constructor(tokens: TokenVocabulary, config: IParserConfig);
5627
5624
  get IS_RECORDING(): boolean;
5628
- DEFINE_RULE(name: string, impl: RuleImpl): RuleResult;
5625
+ DEFINE_RULE(name: string, impl: RuleImpl, config?: IRuleConfig<any>): RuleResult;
5629
5626
  wrapSelfAnalysis(): void;
5630
5627
  wrapConsume(idx: number, tokenType: TokenType): IToken;
5631
5628
  wrapSubrule(idx: number, rule: RuleResult, args: Args): unknown;
@@ -6485,6 +6482,7 @@ interface DocumentationProvider {
6485
6482
  interface LanguageMetaData {
6486
6483
  languageId: string;
6487
6484
  fileExtensions: readonly string[];
6485
+ fileNames?: readonly string[];
6488
6486
  caseInsensitive: boolean;
6489
6487
  /**
6490
6488
  * Mode used to optimize code for development or production environments.
@@ -6940,6 +6938,8 @@ type ValidationChecks<T> = {
6940
6938
  AstNode?: ValidationCheck<AstNode> | Array<ValidationCheck<AstNode>>;
6941
6939
  };
6942
6940
  /**
6941
+ * There are 3 pre-defined categories: `fast`, `slow` and `built-in`.
6942
+ *
6943
6943
  * `fast` checks can be executed after every document change (i.e. as the user is typing). If a check
6944
6944
  * is too slow it can delay the response to document changes, yielding bad user experience. By marking
6945
6945
  * it as `slow`, it will be skipped for normal as-you-type validation. Then it's up to you when to
@@ -6948,8 +6948,12 @@ type ValidationChecks<T> = {
6948
6948
  *
6949
6949
  * `built-in` checks are errors produced by the lexer, the parser, or the linker. They cannot be used
6950
6950
  * for custom validation checks.
6951
+ *
6952
+ * You can also provide user-defined categories. These check will be skipped by default. Then it's up
6953
+ * to you to schedule these checks: after the fast checks are done, or after saving a document,
6954
+ * or with an explicit command, etc.
6951
6955
  */
6952
- type ValidationCategory = 'fast' | 'slow' | 'built-in';
6956
+ type ValidationCategory = 'fast' | 'slow' | 'built-in' | (string & {});
6953
6957
  declare namespace ValidationCategory {
6954
6958
  const all: readonly ValidationCategory[];
6955
6959
  }
@@ -7032,9 +7036,9 @@ interface ValidationOptions {
7032
7036
  categories?: ValidationCategory[];
7033
7037
  /** If true, no further diagnostics are reported if there are lexing errors. */
7034
7038
  stopAfterLexingErrors?: boolean;
7035
- /** If true, no further diagnostics are reported if there are parsing errors. */
7039
+ /** If true, no further diagnostics are reported if there are parsing errors. Lexing errors are reported first. */
7036
7040
  stopAfterParsingErrors?: boolean;
7037
- /** If true, no further diagnostics are reported if there are linking errors. */
7041
+ /** If true, no further diagnostics are reported if there are linking errors. Lexing and parsing errors are reported first. */
7038
7042
  stopAfterLinkingErrors?: boolean;
7039
7043
  }
7040
7044
  /**
@@ -11572,6 +11576,13 @@ type ConfigurationSectionUpdateListener = (update: ConfigurationSectionUpdate) =
11572
11576
  ******************************************************************************/
11573
11577
 
11574
11578
  interface BuildOptions {
11579
+ /**
11580
+ * Control the linking and references indexing phase with this option. The default if not specified is `true`.
11581
+ * If set to `false`, references can still be resolved - that's done lazily when you access the `ref` property of
11582
+ * a reference. But you won't get any diagnostics for linking errors and the references won't be considered
11583
+ * when updating other documents.
11584
+ */
11585
+ eagerLinking?: boolean;
11575
11586
  /**
11576
11587
  * Control the validation phase with this option:
11577
11588
  * - `true` enables all validation checks and forces revalidating the documents
@@ -11727,6 +11738,15 @@ interface WorkspaceManager {
11727
11738
  */
11728
11739
  initializeWorkspace(folders: WorkspaceFolder[], cancelToken?: CancellationToken): Promise<void>;
11729
11740
  }
11741
+ /**
11742
+ * The FileSelector provides file names and extensions used by this extension.
11743
+ */
11744
+ interface FileSelector {
11745
+ /** Allowed file extensions (e.g., ["ts", "js"]). */
11746
+ fileExtensions: string[];
11747
+ /** Allowed file names (e.g., ["config", "settings"]). */
11748
+ fileNames: string[];
11749
+ }
11730
11750
  declare class DefaultWorkspaceManager implements WorkspaceManager {
11731
11751
  initialBuildOptions: BuildOptions;
11732
11752
  protected readonly serviceRegistry: ServiceRegistry;
@@ -11763,11 +11783,11 @@ declare class DefaultWorkspaceManager implements WorkspaceManager {
11763
11783
  * Traverse the file system folder identified by the given URI and its subfolders. All
11764
11784
  * contained files that match the file extensions are added to the collector.
11765
11785
  */
11766
- protected traverseFolder(workspaceFolder: WorkspaceFolder, folderPath: URI, fileExtensions: string[], collector: (document: LangiumDocument) => void): Promise<void>;
11786
+ protected traverseFolder(workspaceFolder: WorkspaceFolder, folderPath: URI, selector: FileSelector, collector: (document: LangiumDocument) => void): Promise<void>;
11767
11787
  /**
11768
11788
  * Determine whether the given folder entry shall be included while indexing the workspace.
11769
11789
  */
11770
- protected includeEntry(_workspaceFolder: WorkspaceFolder, entry: FileSystemNode, fileExtensions: string[]): boolean;
11790
+ protected includeEntry(_workspaceFolder: WorkspaceFolder, entry: FileSystemNode, selector: FileSelector): boolean;
11771
11791
  }
11772
11792
 
11773
11793
  /******************************************************************************
@@ -12040,11 +12060,16 @@ declare namespace GraphvizJson {
12040
12060
  }
12041
12061
 
12042
12062
  interface GraphvizPort {
12063
+ get concurrency(): number;
12043
12064
  unflatten(dot: DotSource): Promise<DotSource>;
12044
12065
  acyclic(dot: DotSource): Promise<DotSource>;
12045
12066
  layoutJson(dot: DotSource): Promise<string>;
12046
12067
  svg(dot: DotSource): Promise<string>;
12047
12068
  }
12069
+ type Params<A extends AnyAux = AnyAux> = {
12070
+ view: ComputedView<A>;
12071
+ specification: Specification<A>;
12072
+ };
12048
12073
  type LayoutResult = {
12049
12074
  dot: DotSource;
12050
12075
  diagram: DiagramView;
@@ -12055,13 +12080,12 @@ declare class GraphvizLayouter {
12055
12080
  get port(): GraphvizPort;
12056
12081
  changePort(graphviz: GraphvizPort): void;
12057
12082
  dotToJson(dot: DotSource): Promise<GraphvizJson>;
12058
- layout(view: ComputedView): Promise<LayoutResult>;
12059
- svg(view: ComputedView): Promise<{
12083
+ layout<A extends AnyAux>(params: Params<A>): Promise<LayoutResult>;
12084
+ svg<A extends AnyAux>(params: Params<A>): Promise<{
12060
12085
  svg: string;
12061
12086
  dot: DotSource;
12062
12087
  }>;
12063
- dot(computedView: ComputedView): Promise<DotSource>;
12064
- layoutOverviewGraph(views: ComputedView[]): Promise<OverviewGraph>;
12088
+ dot<A extends AnyAux>(params: Params<A>): Promise<DotSource>;
12065
12089
  }
12066
12090
 
12067
12091
  interface WorkDoneProgressReporter {
@@ -13462,6 +13486,7 @@ declare abstract class AstNodeHoverProvider implements HoverProvider {
13462
13486
  constructor(services: LangiumServices);
13463
13487
  getHoverContent(document: LangiumDocument, params: HoverParams): MaybePromise$1<Hover | undefined>;
13464
13488
  protected abstract getAstNodeHoverContent(node: AstNode): MaybePromise$1<Hover | undefined>;
13489
+ protected getKeywordHoverContent(node: AstNode): MaybePromise$1<Hover | undefined>;
13465
13490
  }
13466
13491
 
13467
13492
  /******************************************************************************
@@ -15584,7 +15609,7 @@ declare const ProjectConfig: ObjectSchema<{
15584
15609
  type ProjectConfig = InferOutput<typeof ProjectConfig>;
15585
15610
 
15586
15611
  /******************************************************************************
15587
- * This file was generated by langium-cli 3.4.0.
15612
+ * This file was generated by langium-cli 3.5.0.
15588
15613
  * DO NOT EDIT MANUALLY!
15589
15614
  ******************************************************************************/
15590
15615
 
@@ -15752,6 +15777,7 @@ interface DeploymentRelation extends AstNode {
15752
15777
  readonly $container: DeployedInstanceBody | DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
15753
15778
  readonly $type: 'DeploymentRelation';
15754
15779
  body?: DeploymentRelationBody;
15780
+ dotKind?: RelationKindDotRef;
15755
15781
  kind?: Reference<RelationshipKind>;
15756
15782
  source?: FqnRef;
15757
15783
  tags?: Tags;
@@ -15847,6 +15873,7 @@ interface DynamicViewStep extends AstNode {
15847
15873
  readonly $container: DynamicViewBody | DynamicViewParallelSteps;
15848
15874
  readonly $type: 'DynamicViewStep';
15849
15875
  custom?: CustomRelationProperties;
15876
+ dotKind?: RelationKindDotRef;
15850
15877
  isBackward: boolean;
15851
15878
  kind?: Reference<RelationshipKind>;
15852
15879
  source: ElementRef;
@@ -15881,7 +15908,7 @@ interface ElementKindExpression extends AstNode {
15881
15908
  readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
15882
15909
  readonly $type: 'ElementKindExpression';
15883
15910
  isEqual: boolean;
15884
- kind?: Reference<ElementKind>;
15911
+ kind: Reference<ElementKind>;
15885
15912
  }
15886
15913
  declare const ElementKindExpression = "ElementKindExpression";
15887
15914
  interface ElementRef extends AstNode {
@@ -15908,7 +15935,7 @@ interface ElementTagExpression extends AstNode {
15908
15935
  readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
15909
15936
  readonly $type: 'ElementTagExpression';
15910
15937
  isEqual: boolean;
15911
- tag?: Reference<Tag>;
15938
+ tag: TagRef;
15912
15939
  }
15913
15940
  declare const ElementTagExpression = "ElementTagExpression";
15914
15941
  interface ElementView extends AstNode {
@@ -16194,6 +16221,7 @@ declare const OpacityProperty = "OpacityProperty";
16194
16221
  interface OutgoingRelationExpr extends AstNode {
16195
16222
  readonly $container: DirectedRelationExpr | Expressions | RelationExprWhere | RelationExprWith;
16196
16223
  readonly $type: 'OutgoingRelationExpr';
16224
+ dotKind?: RelationKindDotRef;
16197
16225
  from: FqnExpr;
16198
16226
  isBidirectional: boolean;
16199
16227
  kind?: Reference<RelationshipKind>;
@@ -16210,6 +16238,7 @@ interface Relation extends AstNode {
16210
16238
  readonly $container: ElementBody | ExtendElementBody | Model;
16211
16239
  readonly $type: 'Relation';
16212
16240
  body?: RelationBody;
16241
+ dotKind?: RelationKindDotRef;
16213
16242
  kind?: Reference<RelationshipKind>;
16214
16243
  source?: FqnRef;
16215
16244
  tags?: Tags;
@@ -16239,6 +16268,12 @@ interface RelationExprWith extends AstNode {
16239
16268
  subject: RelationExprOrWhere;
16240
16269
  }
16241
16270
  declare const RelationExprWith = "RelationExprWith";
16271
+ interface RelationKindDotRef extends AstNode {
16272
+ readonly $container: DeploymentRelation | DynamicViewStep | OutgoingRelationExpr | Relation;
16273
+ readonly $type: 'RelationKindDotRef';
16274
+ kind: Reference<RelationshipKind>;
16275
+ }
16276
+ declare const RelationKindDotRef = "RelationKindDotRef";
16242
16277
  interface RelationNavigateToProperty extends AstNode {
16243
16278
  readonly $container: CustomRelationProperties | DeploymentRelationBody | RelationBody;
16244
16279
  readonly $type: 'RelationNavigateToProperty';
@@ -16292,6 +16327,7 @@ interface SpecificationDeploymentNodeKind extends AstNode {
16292
16327
  readonly $type: 'SpecificationDeploymentNodeKind';
16293
16328
  kind: DeploymentNodeKind;
16294
16329
  props: Array<ElementStyleProperty | SpecificationElementStringProperty>;
16330
+ tags?: Tags;
16295
16331
  }
16296
16332
  declare const SpecificationDeploymentNodeKind = "SpecificationDeploymentNodeKind";
16297
16333
  interface SpecificationElementKind extends AstNode {
@@ -16299,6 +16335,7 @@ interface SpecificationElementKind extends AstNode {
16299
16335
  readonly $type: 'SpecificationElementKind';
16300
16336
  kind: ElementKind;
16301
16337
  props: Array<ElementStyleProperty | SpecificationElementStringProperty>;
16338
+ tags?: Tags;
16302
16339
  }
16303
16340
  declare const SpecificationElementKind = "SpecificationElementKind";
16304
16341
  interface SpecificationElementStringProperty extends AstNode {
@@ -16336,6 +16373,7 @@ declare const SpecificationRule = "SpecificationRule";
16336
16373
  interface SpecificationTag extends AstNode {
16337
16374
  readonly $container: SpecificationRule;
16338
16375
  readonly $type: 'SpecificationTag';
16376
+ color?: CustomColorValue;
16339
16377
  tag: Tag;
16340
16378
  }
16341
16379
  declare const SpecificationTag = "SpecificationTag";
@@ -16359,11 +16397,17 @@ interface Tag extends AstNode {
16359
16397
  name: Id;
16360
16398
  }
16361
16399
  declare const Tag = "Tag";
16400
+ interface TagRef extends AstNode {
16401
+ readonly $container: ElementTagExpression | Tags | WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
16402
+ readonly $type: 'TagRef';
16403
+ tag: Reference<Tag>;
16404
+ }
16405
+ declare const TagRef = "TagRef";
16362
16406
  interface Tags extends AstNode {
16363
- readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelation | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | Relation | RelationBody | Tags;
16407
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelation | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | Relation | RelationBody | SpecificationDeploymentNodeKind | SpecificationElementKind | Tags;
16364
16408
  readonly $type: 'Tags';
16365
16409
  prev?: Tags;
16366
- values: Array<Reference<Tag>>;
16410
+ values: Array<TagRef>;
16367
16411
  }
16368
16412
  declare const Tags = "Tags";
16369
16413
  interface TextSizeProperty extends AstNode {
@@ -16441,7 +16485,7 @@ interface WhereElementKind extends AstNode {
16441
16485
  readonly $type: 'WhereElementKind';
16442
16486
  not: boolean;
16443
16487
  operator: 'is' | string;
16444
- value?: Reference<DeploymentNodeOrElementKind>;
16488
+ value: Reference<DeploymentNodeOrElementKind>;
16445
16489
  }
16446
16490
  declare const WhereElementKind = "WhereElementKind";
16447
16491
  interface WhereElementNegation extends AstNode {
@@ -16455,7 +16499,7 @@ interface WhereElementTag extends AstNode {
16455
16499
  readonly $type: 'WhereElementTag';
16456
16500
  not: boolean;
16457
16501
  operator: 'is' | string;
16458
- value?: Reference<Tag>;
16502
+ value: TagRef;
16459
16503
  }
16460
16504
  declare const WhereElementTag = "WhereElementTag";
16461
16505
  interface WhereRelationKind extends AstNode {
@@ -16463,7 +16507,7 @@ interface WhereRelationKind extends AstNode {
16463
16507
  readonly $type: 'WhereRelationKind';
16464
16508
  not: boolean;
16465
16509
  operator: 'is' | string;
16466
- value?: Reference<RelationshipKind>;
16510
+ value: Reference<RelationshipKind>;
16467
16511
  }
16468
16512
  declare const WhereRelationKind = "WhereRelationKind";
16469
16513
  interface WhereRelationNegation extends AstNode {
@@ -16478,7 +16522,7 @@ interface WhereRelationParticipantKind extends AstNode {
16478
16522
  not: boolean;
16479
16523
  operator: 'is' | string;
16480
16524
  participant: Participant;
16481
- value?: Reference<DeploymentNodeOrElementKind>;
16525
+ value: Reference<DeploymentNodeOrElementKind>;
16482
16526
  }
16483
16527
  declare const WhereRelationParticipantKind = "WhereRelationParticipantKind";
16484
16528
  interface WhereRelationParticipantTag extends AstNode {
@@ -16487,7 +16531,7 @@ interface WhereRelationParticipantTag extends AstNode {
16487
16531
  not: boolean;
16488
16532
  operator: 'is' | string;
16489
16533
  participant: Participant;
16490
- value?: Reference<Tag>;
16534
+ value: TagRef;
16491
16535
  }
16492
16536
  declare const WhereRelationParticipantTag = "WhereRelationParticipantTag";
16493
16537
  interface WhereRelationTag extends AstNode {
@@ -16495,7 +16539,7 @@ interface WhereRelationTag extends AstNode {
16495
16539
  readonly $type: 'WhereRelationTag';
16496
16540
  not: boolean;
16497
16541
  operator: 'is' | string;
16498
- value?: Reference<Tag>;
16542
+ value: TagRef;
16499
16543
  }
16500
16544
  declare const WhereRelationTag = "WhereRelationTag";
16501
16545
  interface WildcardExpression extends AstNode {
@@ -16601,6 +16645,7 @@ type LikeC4AstType = {
16601
16645
  RelationExprOrWith: RelationExprOrWith;
16602
16646
  RelationExprWhere: RelationExprWhere;
16603
16647
  RelationExprWith: RelationExprWith;
16648
+ RelationKindDotRef: RelationKindDotRef;
16604
16649
  RelationNavigateToProperty: RelationNavigateToProperty;
16605
16650
  RelationProperty: RelationProperty;
16606
16651
  RelationStringProperty: RelationStringProperty;
@@ -16623,6 +16668,7 @@ type LikeC4AstType = {
16623
16668
  StringProperty: StringProperty;
16624
16669
  StyleProperty: StyleProperty;
16625
16670
  Tag: Tag;
16671
+ TagRef: TagRef;
16626
16672
  Tags: Tags;
16627
16673
  TextSizeProperty: TextSizeProperty;
16628
16674
  ViewProperty: ViewProperty;
@@ -16707,12 +16753,11 @@ type ParsedElementStyle = {
16707
16753
  textSize?: c4.TextSize;
16708
16754
  };
16709
16755
  interface ParsedAstSpecification {
16710
- tags: Set<c4.Tag>;
16711
- elements: Record<c4.ElementKind, {
16712
- technology?: string;
16713
- notation?: string;
16714
- style: ParsedElementStyle;
16756
+ tags: Record<c4.Tag, {
16757
+ astPath: string;
16758
+ color?: c4.ColorLiteral;
16715
16759
  }>;
16760
+ elements: Record<c4.ElementKind, c4.ElementSpecification>;
16716
16761
  relationships: Record<c4.RelationshipKind, {
16717
16762
  technology?: string;
16718
16763
  notation?: string;
@@ -16722,9 +16767,9 @@ interface ParsedAstSpecification {
16722
16767
  tail?: c4.RelationshipArrowType;
16723
16768
  }>;
16724
16769
  colors: Record<c4.CustomColor, {
16725
- color: c4.HexColorLiteral;
16770
+ color: c4.ColorLiteral;
16726
16771
  }>;
16727
- deployments: Record<c4.DeploymentNodeKind, c4.DeploymentNodeKindSpecification>;
16772
+ deployments: Record<c4.DeploymentKind, c4.ElementSpecification>;
16728
16773
  }
16729
16774
  interface ParsedAstElement {
16730
16775
  id: c4.Fqn;
@@ -16752,8 +16797,8 @@ interface ParsedAstExtend {
16752
16797
  interface ParsedAstRelation {
16753
16798
  id: c4.RelationId;
16754
16799
  astPath: string;
16755
- source: c4.FqnRef.ModelRef | c4.FqnRef.ImportRef;
16756
- target: c4.FqnRef.ModelRef | c4.FqnRef.ImportRef;
16800
+ source: c4.FqnRef.ModelRef;
16801
+ target: c4.FqnRef.ModelRef;
16757
16802
  kind?: c4.RelationshipKind;
16758
16803
  tags?: c4.NonEmptyArray<c4.Tag>;
16759
16804
  title: string;
@@ -16773,15 +16818,14 @@ type ParsedAstDeployment = Simplify<MergeExclusive<ParsedAstDeployment.Node, Par
16773
16818
  declare namespace ParsedAstDeployment {
16774
16819
  type Node = c4.DeploymentNode;
16775
16820
  type Instance = Omit<c4.DeployedInstance, 'element'> & {
16776
- readonly element: c4.FqnRef.ModelRef | c4.FqnRef.ImportRef;
16821
+ readonly element: c4.FqnRef.ModelRef;
16777
16822
  };
16778
16823
  }
16779
- type ParsedAstDeploymentRelation = c4.DeploymentRelation & {
16824
+ type ParsedAstDeploymentRelation = c4.DeploymentRelationship & {
16780
16825
  astPath: string;
16781
16826
  };
16782
16827
  type ParsedAstGlobals = Writable<c4.ModelGlobals>;
16783
16828
  interface ParsedAstElementView {
16784
- __: 'element';
16785
16829
  id: c4.ViewId;
16786
16830
  viewOf?: c4.Fqn;
16787
16831
  extends?: c4.ViewId;
@@ -16790,11 +16834,10 @@ interface ParsedAstElementView {
16790
16834
  description: string | null;
16791
16835
  tags: c4.NonEmptyArray<c4.Tag> | null;
16792
16836
  links: c4.NonEmptyArray<c4.Link> | null;
16793
- rules: c4.ViewRule[];
16837
+ rules: c4.ElementViewRule[];
16794
16838
  manualLayout?: c4.ViewManualLayout;
16795
16839
  }
16796
16840
  interface ParsedAstDynamicView {
16797
- __: 'dynamic';
16798
16841
  id: c4.ViewId;
16799
16842
  astPath: string;
16800
16843
  title: string | null;
@@ -16806,7 +16849,6 @@ interface ParsedAstDynamicView {
16806
16849
  manualLayout?: c4.ViewManualLayout;
16807
16850
  }
16808
16851
  interface ParsedAstDeploymentView {
16809
- __: 'deployment';
16810
16852
  id: c4.ViewId;
16811
16853
  astPath: string;
16812
16854
  title: string | null;
@@ -16959,7 +17001,7 @@ declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
16959
17001
  /**
16960
17002
  * Determine whether the given folder entry shall be included while indexing the workspace.
16961
17003
  */
16962
- protected includeEntry(_workspaceFolder: WorkspaceFolder, entry: FileSystemNode, fileExtensions: string[]): boolean;
17004
+ protected includeEntry(_workspaceFolder: WorkspaceFolder, entry: FileSystemNode, selector: FileSelector): boolean;
16963
17005
  workspace(): any;
16964
17006
  get workspaceUri(): URI;
16965
17007
  get workspaceURL(): URL;
@@ -17073,7 +17115,7 @@ declare class DeploymentsIndex extends FqnIndex<DeploymentElement> {
17073
17115
 
17074
17116
  type ModelParsedListener = (docs: URI[]) => void;
17075
17117
  interface LikeC4ModelBuilder {
17076
- parseModel(projectId?: c4.ProjectId | undefined, cancelToken?: CancellationToken): Promise<c4.ParsedLikeC4ModelData | null>;
17118
+ parseModel(projectId?: c4.ProjectId | undefined, cancelToken?: CancellationToken): Promise<LikeC4Model.Parsed | null>;
17077
17119
  unsafeSyncBuildModel(projectId: c4.ProjectId): LikeC4Model.Computed;
17078
17120
  buildLikeC4Model(projectId?: c4.ProjectId | undefined, cancelToken?: CancellationToken): Promise<LikeC4Model.Computed>;
17079
17121
  computeView(viewId: ViewId, projectId?: c4.ProjectId | undefined, cancelToken?: CancellationToken): Promise<c4.ComputedView | null>;
@@ -17091,7 +17133,7 @@ declare class LikeC4ModelLocator {
17091
17133
  private documents;
17092
17134
  getParsedElement(...args: [Element] | [c4.Fqn] | [c4.Fqn, c4.ProjectId]): ParsedAstElement | null;
17093
17135
  locateElement(fqn: c4.Fqn, projectId?: c4.ProjectId | undefined): Location | null;
17094
- locateDeploymentElement(fqn: c4.Fqn, projectId?: c4.ProjectId | undefined): Location | null;
17136
+ locateDeploymentElement(deploymentFqn: c4.DeploymentFqn, projectId?: c4.ProjectId | undefined): Location | null;
17095
17137
  locateRelation(relationId: c4.RelationId, projectId?: c4.ProjectId): Location | null;
17096
17138
  locateViewAst(viewId: c4.ViewId, projectId?: c4.ProjectId | undefined): null | {
17097
17139
  doc: ParsedLikeC4LangiumDocument;
@@ -17099,6 +17141,12 @@ declare class LikeC4ModelLocator {
17099
17141
  viewAst: LikeC4View;
17100
17142
  };
17101
17143
  locateView(viewId: c4.ViewId, projectId?: c4.ProjectId): Location | null;
17144
+ locateDocumentTags(documentUri: URI, cancelToken?: CancellationToken): Promise<Array<{
17145
+ name: string;
17146
+ color: string;
17147
+ range: Range$1;
17148
+ isSpecification: boolean;
17149
+ }>>;
17102
17150
  }
17103
17151
 
17104
17152
  declare class BaseParser {
@@ -17137,16 +17185,15 @@ declare const DocumentParserFromMixins: {
17137
17185
  parseGlobalDynamicPredicateGroup(astRule: GlobalDynamicPredicateGroup): ProjectId[];
17138
17186
  parseGlobalStyleOrGroup(astRule: GlobalStyle | GlobalStyleGroup): ProjectId[];
17139
17187
  parseViews(): void;
17140
- parseElementView(astNode: ElementView, additionalStyles: ProjectId[]): ParsedAstElementView;
17141
- parseViewRule(astRule: ViewRule): ProjectId;
17188
+ parseElementView(astNode: ElementView, additionalStyles: any[]): ParsedAstElementView;
17189
+ parseElementViewRule(astRule: ViewRule): ProjectId;
17142
17190
  parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId;
17143
17191
  parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId;
17144
- parseViewRuleStyleOrGlobalRef(astRule: ViewRuleStyleOrGlobalRef): ProjectId;
17192
+ parseViewRuleStyleOrGlobalRef(astRule: ViewRuleStyleOrGlobalRef): any;
17145
17193
  parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId;
17146
17194
  parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId;
17147
- parseRuleStyle(styleProperties: StyleProperty[], elementExpressionsIterator: FqnExpressions, notationProperty?: NotationProperty): ProjectId;
17148
17195
  parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId;
17149
- parseDynamicElementView(astNode: DynamicView, additionalStyles: ProjectId[]): ParsedAstDynamicView;
17196
+ parseDynamicElementView(astNode: DynamicView, additionalStyles: any[]): ParsedAstDynamicView;
17150
17197
  parseDynamicViewRule(astRule: DynamicViewRule): ProjectId;
17151
17198
  parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId;
17152
17199
  parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId;
@@ -17214,16 +17261,15 @@ declare const DocumentParserFromMixins: {
17214
17261
  } & {
17215
17262
  new (...args: any[]): {
17216
17263
  parseViews(): void;
17217
- parseElementView(astNode: ElementView, additionalStyles: ProjectId[]): ParsedAstElementView;
17218
- parseViewRule(astRule: ViewRule): ProjectId;
17264
+ parseElementView(astNode: ElementView, additionalStyles: any[]): ParsedAstElementView;
17265
+ parseElementViewRule(astRule: ViewRule): ProjectId;
17219
17266
  parseViewRulePredicate(astNode: ViewRulePredicate): ProjectId;
17220
17267
  parseViewRuleGlobalPredicateRef(astRule: ViewRuleGlobalPredicateRef | DynamicViewGlobalPredicateRef): ProjectId;
17221
- parseViewRuleStyleOrGlobalRef(astRule: ViewRuleStyleOrGlobalRef): ProjectId;
17268
+ parseViewRuleStyleOrGlobalRef(astRule: ViewRuleStyleOrGlobalRef): any;
17222
17269
  parseViewRuleGroup(astNode: ViewRuleGroup): ProjectId;
17223
17270
  parseViewRuleStyle(astRule: ViewRuleStyle | GlobalStyle): ProjectId;
17224
- parseRuleStyle(styleProperties: StyleProperty[], elementExpressionsIterator: FqnExpressions, notationProperty?: NotationProperty): ProjectId;
17225
17271
  parseViewRuleGlobalStyle(astRule: ViewRuleGlobalStyle): ProjectId;
17226
- parseDynamicElementView(astNode: DynamicView, additionalStyles: ProjectId[]): ParsedAstDynamicView;
17272
+ parseDynamicElementView(astNode: DynamicView, additionalStyles: any[]): ParsedAstDynamicView;
17227
17273
  parseDynamicViewRule(astRule: DynamicViewRule): ProjectId;
17228
17274
  parseDynamicViewIncludePredicate(astRule: DynamicViewIncludePredicate): ProjectId;
17229
17275
  parseDynamicParallelSteps(node: DynamicViewParallelSteps): ProjectId;
@@ -17291,7 +17337,8 @@ declare const DocumentParserFromMixins: {
17291
17337
  } & {
17292
17338
  new (...args: any[]): {
17293
17339
  parseSpecification(): void;
17294
- parseSpecificationDeploymentNodeKind({ kind, props }: SpecificationDeploymentNodeKind): {};
17340
+ parseElementSpecificationNode(specAst: SpecificationElementKind): {};
17341
+ parseElementSpecificationNode(specAst: SpecificationDeploymentNodeKind): {};
17295
17342
  isValid: IsValidFn;
17296
17343
  readonly services: LikeC4Services;
17297
17344
  readonly doc: ParsedLikeC4LangiumDocument;
@@ -17608,7 +17655,7 @@ declare namespace Locate {
17608
17655
  projectId?: string | undefined;
17609
17656
  relation: RelationId;
17610
17657
  } | {
17611
- deployment: Fqn;
17658
+ deployment: DeploymentFqn;
17612
17659
  projectId?: string | undefined;
17613
17660
  property?: string;
17614
17661
  } | {
@@ -17650,7 +17697,6 @@ interface LikeC4Views {
17650
17697
  layoutView(viewId: ViewId, projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<GraphvizOut | null>;
17651
17698
  diagrams(projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<Array<DiagramView>>;
17652
17699
  viewsAsGraphvizOut(projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<Array<GraphvizSvgOut>>;
17653
- overviewGraph(): Promise<OverviewGraph>;
17654
17700
  }
17655
17701
 
17656
17702
  interface LikeC4LanguageServices {
@@ -35536,9 +35582,7 @@ interface LikeC4MCPServer {
35536
35582
  start(port: number): Promise<void>;
35537
35583
  stop(): Promise<void>;
35538
35584
  }
35539
- declare class LikeC4MCPServerFactory {
35540
- private services;
35541
- constructor(services: LikeC4Services);
35585
+ interface LikeC4MCPServerFactory {
35542
35586
  create(options?: ServerOptions): McpServer;
35543
35587
  }
35544
35588