likec4 1.20.1 → 1.20.2

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.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const model=require("@likec4/core/model");require("@likec4/core");const LikeC4=require("./shared/likec4.pZxbrzrY.cjs");require("node:fs"),require("node:path"),require("node:url"),require("tty"),require("node:util"),require("util"),require("path"),require("os"),require("crypto"),require("net"),require("url"),require("fs"),require("child_process"),require("node:fs/promises"),require("node:process"),require("node:tty"),require("@hpcc-js/wasm-graphviz"),require("buffer"),require("@likec4/core/compute-view"),require("node:child_process"),require("node:string_decoder"),require("node:timers/promises"),require("node:os"),require("node:events"),require("node:v8"),require("node:stream"),require("node:buffer"),require("node:stream/promises"),require("vite"),exports.LikeC4DeploymentModel=model.LikeC4DeploymentModel,exports.LikeC4Model=model.LikeC4Model,exports.LikeC4ViewModel=model.LikeC4ViewModel,exports.LikeC4=LikeC4.L;
1
+ "use strict";const model=require("@likec4/core/model");require("@likec4/core");const LikeC4=require("./shared/likec4.DpEZnw1B.cjs");require("node:fs"),require("node:path"),require("node:url"),require("tty"),require("node:util"),require("util"),require("path"),require("os"),require("crypto"),require("net"),require("url"),require("fs"),require("child_process"),require("node:process"),require("node:tty"),require("@hpcc-js/wasm-graphviz"),require("buffer"),require("@likec4/core/compute-view"),require("node:child_process"),require("node:string_decoder"),require("node:timers/promises"),require("node:os"),require("node:events"),require("node:v8"),require("node:stream"),require("node:buffer"),require("node:stream/promises"),require("vite"),exports.LikeC4DeploymentModel=model.LikeC4DeploymentModel,exports.LikeC4Model=model.LikeC4Model,exports.LikeC4ViewModel=model.LikeC4ViewModel,exports.LikeC4=LikeC4.L;
package/dist/index.d.cts CHANGED
@@ -5504,7 +5504,7 @@ interface BaseParser$1 {
5504
5504
  * Requires a unique index within the rule for a specific sub rule.
5505
5505
  * Arguments can be supplied to the rule invocation for semantic predicates
5506
5506
  */
5507
- subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5507
+ subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5508
5508
  /**
5509
5509
  * Executes a grammar action that modifies the currently active AST node
5510
5510
  */
@@ -5542,7 +5542,7 @@ declare abstract class AbstractLangiumParser implements BaseParser$1 {
5542
5542
  atLeastOne(idx: number, callback: DSLMethodOpts<unknown>): void;
5543
5543
  abstract rule(rule: ParserRule, impl: RuleImpl): RuleResult;
5544
5544
  abstract consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
5545
- abstract subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5545
+ abstract subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5546
5546
  abstract action($type: string, action: Action): void;
5547
5547
  abstract construct(): unknown;
5548
5548
  getRule(name: string): RuleResult | undefined;
@@ -5559,6 +5559,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5559
5559
  private readonly converter;
5560
5560
  private readonly astReflection;
5561
5561
  private readonly nodeBuilder;
5562
+ private lexerResult?;
5562
5563
  private stack;
5563
5564
  private assignmentMap;
5564
5565
  private get current();
@@ -5567,6 +5568,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5567
5568
  private computeRuleType;
5568
5569
  parse<T extends AstNode = AstNode>(input: string, options?: ParserOptions): ParseResult<T>;
5569
5570
  private startImplementation;
5571
+ private extractHiddenTokens;
5570
5572
  consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
5571
5573
  /**
5572
5574
  * Most consumed parser tokens are valid. However there are two cases in which they are not valid:
@@ -5575,7 +5577,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5575
5577
  * 2. They contain invalid token ranges. This might include the special EOF token, or other tokens produced by invalid token builders.
5576
5578
  */
5577
5579
  private isValidToken;
5578
- subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5580
+ subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5579
5581
  private performSubruleAssignment;
5580
5582
  action($type: string, action: Action): void;
5581
5583
  construct(): unknown;
@@ -5610,7 +5612,7 @@ declare class LangiumCompletionParser extends AbstractLangiumParser {
5610
5612
  keepStackSize(): number;
5611
5613
  resetStackSize(size: number): void;
5612
5614
  consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
5613
- subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5615
+ subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5614
5616
  before(element: AbstractElement): void;
5615
5617
  after(element: AbstractElement): void;
5616
5618
  get currIdx(): number;
@@ -6121,9 +6123,9 @@ interface CstNode extends DocumentSegment {
6121
6123
  /** The root CST node */
6122
6124
  readonly root: RootCstNode;
6123
6125
  /** The grammar element from which this node was parsed */
6124
- readonly grammarSource: AbstractElement;
6126
+ readonly grammarSource?: AbstractElement;
6125
6127
  /** @deprecated use `grammarSource` instead. */
6126
- readonly feature: AbstractElement;
6128
+ readonly feature?: AbstractElement;
6127
6129
  /** The AST node created from this CST node */
6128
6130
  readonly astNode: AstNode;
6129
6131
  /** @deprecated use `astNode` instead. */
@@ -13921,6 +13923,7 @@ declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
13921
13923
  ******************************************************************************/
13922
13924
 
13923
13925
  type ArrowType = 'crow' | 'diamond' | 'dot' | 'none' | 'normal' | 'odiamond' | 'odot' | 'onormal' | 'open' | 'vee';
13926
+ type Boolean = boolean;
13924
13927
  type BorderStyleValue = 'none' | LineOptions;
13925
13928
  type CustomColorId = 'element' | 'model' | ArrowType | ElementShape | LineOptions | string;
13926
13929
  type CustomColorValue = string;
@@ -13975,7 +13978,7 @@ type RelationshipStyleProperty = ArrowProperty | ColorProperty | LineProperty;
13975
13978
  declare const RelationshipStyleProperty = "RelationshipStyleProperty";
13976
13979
  type StringProperty = ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty;
13977
13980
  declare const StringProperty = "StringProperty";
13978
- type StyleProperty = BorderProperty | ColorProperty | IconProperty | OpacityProperty | ShapeProperty;
13981
+ type StyleProperty = BorderProperty | ColorProperty | IconProperty | MultipleProperty | OpacityProperty | ShapeProperty;
13979
13982
  declare const StyleProperty = "StyleProperty";
13980
13983
  type ThemeColor = 'amber' | 'blue' | 'gray' | 'green' | 'indigo' | 'muted' | 'primary' | 'red' | 'secondary' | 'sky' | 'slate';
13981
13984
  type Uri = string;
@@ -14523,6 +14526,13 @@ interface ModelViews extends AstNode {
14523
14526
  views: Array<LikeC4View>;
14524
14527
  }
14525
14528
  declare const ModelViews = "ModelViews";
14529
+ interface MultipleProperty extends AstNode {
14530
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
14531
+ readonly $type: 'MultipleProperty';
14532
+ key: 'multiple';
14533
+ value: Boolean;
14534
+ }
14535
+ declare const MultipleProperty = "MultipleProperty";
14526
14536
  interface NavigateToProperty extends AstNode {
14527
14537
  readonly $container: CustomElementProperties;
14528
14538
  readonly $type: 'NavigateToProperty';
@@ -14931,6 +14941,7 @@ type LikeC4AstType = {
14931
14941
  Model: Model;
14932
14942
  ModelDeployments: ModelDeployments;
14933
14943
  ModelViews: ModelViews;
14944
+ MultipleProperty: MultipleProperty;
14934
14945
  NavigateToProperty: NavigateToProperty;
14935
14946
  NotationProperty: NotationProperty;
14936
14947
  NotesProperty: NotesProperty;
@@ -15001,7 +15012,7 @@ type LikeC4AstType = {
15001
15012
 
15002
15013
  type Guard<N extends AstNode> = (n: AstNode) => n is N;
15003
15014
  type Guarded<G> = G extends Guard<infer N> ? N : never;
15004
- declare const isValidatableAstNode: (n: AstNode) => n is DeployedInstance | DeploymentNode | DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout | DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleGlobalStyle | ViewRuleStyle | ElementDescedantsExpression | ElementKindExpression | ElementRef | ElementTagExpression | ExpandElementExpression | WildcardExpression | ElementPredicateWhere | ElementPredicateWith | ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataBody | FqnRefExpr | DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr | RelationPredicateWhereV2 | Element | ExtendElement | DeploymentView | DynamicView | ElementView | DirectedRelationExpression | InOutRelationExpression | IncomingRelationExpression | OutgoingRelationExpression | RelationPredicateWhere | RelationPredicateWith | RelationStringProperty | ArrowProperty | ColorProperty | LineProperty | MetadataAttribute | NotationProperty | NotesProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty | BorderProperty | OpacityProperty | ShapeProperty | ViewRuleGlobalPredicateRef | ViewRuleGroup | ExcludePredicate | IncludePredicate | SpecificationRelationshipKind | GlobalStyle | SpecificationColor | NavigateToProperty | DynamicViewStep | Tags | DeploymentRelation | SpecificationDeploymentNodeKind | DynamicViewParallelSteps | GlobalDynamicPredicateGroup | DynamicViewPredicateIterator | Relation | SpecificationElementKind | GlobalPredicateGroup | Globals | GlobalStyleGroup | SpecificationRule | SpecificationTag;
15015
+ declare const isValidatableAstNode: (n: AstNode) => n is DeployedInstance | DeploymentNode | DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout | DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleGlobalStyle | ViewRuleStyle | ElementDescedantsExpression | ElementKindExpression | ElementRef | ElementTagExpression | ExpandElementExpression | WildcardExpression | ElementPredicateWhere | ElementPredicateWith | ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataBody | FqnRefExpr | DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr | RelationPredicateWhereV2 | Element | ExtendElement | DeploymentView | DynamicView | ElementView | DirectedRelationExpression | InOutRelationExpression | IncomingRelationExpression | OutgoingRelationExpression | RelationPredicateWhere | RelationPredicateWith | RelationStringProperty | ArrowProperty | ColorProperty | LineProperty | MetadataAttribute | NotationProperty | NotesProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty | BorderProperty | MultipleProperty | OpacityProperty | ShapeProperty | ViewRuleGlobalPredicateRef | ViewRuleGroup | ExcludePredicate | IncludePredicate | SpecificationRelationshipKind | GlobalStyle | SpecificationColor | NavigateToProperty | DynamicViewStep | Tags | DeploymentRelation | SpecificationDeploymentNodeKind | DynamicViewParallelSteps | GlobalDynamicPredicateGroup | DynamicViewPredicateIterator | Relation | SpecificationElementKind | GlobalPredicateGroup | Globals | GlobalStyleGroup | SpecificationRule | SpecificationTag;
15005
15016
  type ValidatableAstNode = Guarded<typeof isValidatableAstNode>;
15006
15017
  declare function checksFromDiagnostics(doc: LikeC4LangiumDocument): {
15007
15018
  isValid: (n: ValidatableAstNode) => boolean;
@@ -15037,6 +15048,7 @@ type ParsedElementStyle = {
15037
15048
  color?: c4.Color;
15038
15049
  border?: c4.BorderStyle;
15039
15050
  opacity?: number;
15051
+ multiple?: boolean;
15040
15052
  };
15041
15053
  interface ParsedAstSpecification {
15042
15054
  tags: Set<c4.Tag>;
@@ -15208,6 +15220,7 @@ declare class DeploymentsIndex {
15208
15220
  private services;
15209
15221
  protected Names: LikeC4NameProvider;
15210
15222
  protected langiumDocuments: LangiumDocuments;
15223
+ protected documentCache: DocumentCache<string, DocumentDeploymentsIndex>;
15211
15224
  constructor(services: LikeC4Services);
15212
15225
  private documents;
15213
15226
  get(document: LikeC4LangiumDocument): DocumentDeploymentsIndex;
@@ -15259,7 +15272,15 @@ declare class DocumentDeploymentsIndex {
15259
15272
  unique(): readonly DeploymentAstNodeDescription[];
15260
15273
  }
15261
15274
 
15262
- declare class FqnIndex {
15275
+ declare abstract class ADisposable implements Disposable {
15276
+ protected toDispose: Disposable[];
15277
+ protected isDisposed: boolean;
15278
+ onDispose(...disposable: Disposable[]): void;
15279
+ dispose(): void;
15280
+ protected throwIfDisposed(): void;
15281
+ }
15282
+
15283
+ declare class FqnIndex extends ADisposable {
15263
15284
  private services;
15264
15285
  protected langiumDocuments: LangiumDocuments;
15265
15286
  constructor(services: LikeC4Services);
@@ -15275,7 +15296,7 @@ declare class FqnIndex {
15275
15296
  }
15276
15297
 
15277
15298
  type ModelParsedListener = (docs: URI[]) => void;
15278
- declare class LikeC4ModelBuilder {
15299
+ declare class LikeC4ModelBuilder extends ADisposable {
15279
15300
  private services;
15280
15301
  private langiumDocuments;
15281
15302
  private listeners;
@@ -15687,12 +15708,10 @@ declare class LikeC4ModelChanges {
15687
15708
  };
15688
15709
  }
15689
15710
 
15690
- declare class Rpc implements Disposable {
15711
+ declare class Rpc extends ADisposable {
15691
15712
  private services;
15692
- private disposables;
15693
15713
  constructor(services: LikeC4Services);
15694
15714
  init(): void;
15695
- dispose(): void;
15696
15715
  }
15697
15716
 
15698
15717
  declare class NodeKindProvider implements NodeKindProvider$1 {
package/dist/index.d.mts CHANGED
@@ -5504,7 +5504,7 @@ interface BaseParser$1 {
5504
5504
  * Requires a unique index within the rule for a specific sub rule.
5505
5505
  * Arguments can be supplied to the rule invocation for semantic predicates
5506
5506
  */
5507
- subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5507
+ subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5508
5508
  /**
5509
5509
  * Executes a grammar action that modifies the currently active AST node
5510
5510
  */
@@ -5542,7 +5542,7 @@ declare abstract class AbstractLangiumParser implements BaseParser$1 {
5542
5542
  atLeastOne(idx: number, callback: DSLMethodOpts<unknown>): void;
5543
5543
  abstract rule(rule: ParserRule, impl: RuleImpl): RuleResult;
5544
5544
  abstract consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
5545
- abstract subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5545
+ abstract subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5546
5546
  abstract action($type: string, action: Action): void;
5547
5547
  abstract construct(): unknown;
5548
5548
  getRule(name: string): RuleResult | undefined;
@@ -5559,6 +5559,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5559
5559
  private readonly converter;
5560
5560
  private readonly astReflection;
5561
5561
  private readonly nodeBuilder;
5562
+ private lexerResult?;
5562
5563
  private stack;
5563
5564
  private assignmentMap;
5564
5565
  private get current();
@@ -5567,6 +5568,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5567
5568
  private computeRuleType;
5568
5569
  parse<T extends AstNode = AstNode>(input: string, options?: ParserOptions): ParseResult<T>;
5569
5570
  private startImplementation;
5571
+ private extractHiddenTokens;
5570
5572
  consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
5571
5573
  /**
5572
5574
  * Most consumed parser tokens are valid. However there are two cases in which they are not valid:
@@ -5575,7 +5577,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5575
5577
  * 2. They contain invalid token ranges. This might include the special EOF token, or other tokens produced by invalid token builders.
5576
5578
  */
5577
5579
  private isValidToken;
5578
- subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5580
+ subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5579
5581
  private performSubruleAssignment;
5580
5582
  action($type: string, action: Action): void;
5581
5583
  construct(): unknown;
@@ -5610,7 +5612,7 @@ declare class LangiumCompletionParser extends AbstractLangiumParser {
5610
5612
  keepStackSize(): number;
5611
5613
  resetStackSize(size: number): void;
5612
5614
  consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
5613
- subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5615
+ subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5614
5616
  before(element: AbstractElement): void;
5615
5617
  after(element: AbstractElement): void;
5616
5618
  get currIdx(): number;
@@ -6121,9 +6123,9 @@ interface CstNode extends DocumentSegment {
6121
6123
  /** The root CST node */
6122
6124
  readonly root: RootCstNode;
6123
6125
  /** The grammar element from which this node was parsed */
6124
- readonly grammarSource: AbstractElement;
6126
+ readonly grammarSource?: AbstractElement;
6125
6127
  /** @deprecated use `grammarSource` instead. */
6126
- readonly feature: AbstractElement;
6128
+ readonly feature?: AbstractElement;
6127
6129
  /** The AST node created from this CST node */
6128
6130
  readonly astNode: AstNode;
6129
6131
  /** @deprecated use `astNode` instead. */
@@ -13921,6 +13923,7 @@ declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
13921
13923
  ******************************************************************************/
13922
13924
 
13923
13925
  type ArrowType = 'crow' | 'diamond' | 'dot' | 'none' | 'normal' | 'odiamond' | 'odot' | 'onormal' | 'open' | 'vee';
13926
+ type Boolean = boolean;
13924
13927
  type BorderStyleValue = 'none' | LineOptions;
13925
13928
  type CustomColorId = 'element' | 'model' | ArrowType | ElementShape | LineOptions | string;
13926
13929
  type CustomColorValue = string;
@@ -13975,7 +13978,7 @@ type RelationshipStyleProperty = ArrowProperty | ColorProperty | LineProperty;
13975
13978
  declare const RelationshipStyleProperty = "RelationshipStyleProperty";
13976
13979
  type StringProperty = ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty;
13977
13980
  declare const StringProperty = "StringProperty";
13978
- type StyleProperty = BorderProperty | ColorProperty | IconProperty | OpacityProperty | ShapeProperty;
13981
+ type StyleProperty = BorderProperty | ColorProperty | IconProperty | MultipleProperty | OpacityProperty | ShapeProperty;
13979
13982
  declare const StyleProperty = "StyleProperty";
13980
13983
  type ThemeColor = 'amber' | 'blue' | 'gray' | 'green' | 'indigo' | 'muted' | 'primary' | 'red' | 'secondary' | 'sky' | 'slate';
13981
13984
  type Uri = string;
@@ -14523,6 +14526,13 @@ interface ModelViews extends AstNode {
14523
14526
  views: Array<LikeC4View>;
14524
14527
  }
14525
14528
  declare const ModelViews = "ModelViews";
14529
+ interface MultipleProperty extends AstNode {
14530
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
14531
+ readonly $type: 'MultipleProperty';
14532
+ key: 'multiple';
14533
+ value: Boolean;
14534
+ }
14535
+ declare const MultipleProperty = "MultipleProperty";
14526
14536
  interface NavigateToProperty extends AstNode {
14527
14537
  readonly $container: CustomElementProperties;
14528
14538
  readonly $type: 'NavigateToProperty';
@@ -14931,6 +14941,7 @@ type LikeC4AstType = {
14931
14941
  Model: Model;
14932
14942
  ModelDeployments: ModelDeployments;
14933
14943
  ModelViews: ModelViews;
14944
+ MultipleProperty: MultipleProperty;
14934
14945
  NavigateToProperty: NavigateToProperty;
14935
14946
  NotationProperty: NotationProperty;
14936
14947
  NotesProperty: NotesProperty;
@@ -15001,7 +15012,7 @@ type LikeC4AstType = {
15001
15012
 
15002
15013
  type Guard<N extends AstNode> = (n: AstNode) => n is N;
15003
15014
  type Guarded<G> = G extends Guard<infer N> ? N : never;
15004
- declare const isValidatableAstNode: (n: AstNode) => n is DeployedInstance | DeploymentNode | DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout | DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleGlobalStyle | ViewRuleStyle | ElementDescedantsExpression | ElementKindExpression | ElementRef | ElementTagExpression | ExpandElementExpression | WildcardExpression | ElementPredicateWhere | ElementPredicateWith | ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataBody | FqnRefExpr | DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr | RelationPredicateWhereV2 | Element | ExtendElement | DeploymentView | DynamicView | ElementView | DirectedRelationExpression | InOutRelationExpression | IncomingRelationExpression | OutgoingRelationExpression | RelationPredicateWhere | RelationPredicateWith | RelationStringProperty | ArrowProperty | ColorProperty | LineProperty | MetadataAttribute | NotationProperty | NotesProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty | BorderProperty | OpacityProperty | ShapeProperty | ViewRuleGlobalPredicateRef | ViewRuleGroup | ExcludePredicate | IncludePredicate | SpecificationRelationshipKind | GlobalStyle | SpecificationColor | NavigateToProperty | DynamicViewStep | Tags | DeploymentRelation | SpecificationDeploymentNodeKind | DynamicViewParallelSteps | GlobalDynamicPredicateGroup | DynamicViewPredicateIterator | Relation | SpecificationElementKind | GlobalPredicateGroup | Globals | GlobalStyleGroup | SpecificationRule | SpecificationTag;
15015
+ declare const isValidatableAstNode: (n: AstNode) => n is DeployedInstance | DeploymentNode | DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout | DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleGlobalStyle | ViewRuleStyle | ElementDescedantsExpression | ElementKindExpression | ElementRef | ElementTagExpression | ExpandElementExpression | WildcardExpression | ElementPredicateWhere | ElementPredicateWith | ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataBody | FqnRefExpr | DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr | RelationPredicateWhereV2 | Element | ExtendElement | DeploymentView | DynamicView | ElementView | DirectedRelationExpression | InOutRelationExpression | IncomingRelationExpression | OutgoingRelationExpression | RelationPredicateWhere | RelationPredicateWith | RelationStringProperty | ArrowProperty | ColorProperty | LineProperty | MetadataAttribute | NotationProperty | NotesProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty | BorderProperty | MultipleProperty | OpacityProperty | ShapeProperty | ViewRuleGlobalPredicateRef | ViewRuleGroup | ExcludePredicate | IncludePredicate | SpecificationRelationshipKind | GlobalStyle | SpecificationColor | NavigateToProperty | DynamicViewStep | Tags | DeploymentRelation | SpecificationDeploymentNodeKind | DynamicViewParallelSteps | GlobalDynamicPredicateGroup | DynamicViewPredicateIterator | Relation | SpecificationElementKind | GlobalPredicateGroup | Globals | GlobalStyleGroup | SpecificationRule | SpecificationTag;
15005
15016
  type ValidatableAstNode = Guarded<typeof isValidatableAstNode>;
15006
15017
  declare function checksFromDiagnostics(doc: LikeC4LangiumDocument): {
15007
15018
  isValid: (n: ValidatableAstNode) => boolean;
@@ -15037,6 +15048,7 @@ type ParsedElementStyle = {
15037
15048
  color?: c4.Color;
15038
15049
  border?: c4.BorderStyle;
15039
15050
  opacity?: number;
15051
+ multiple?: boolean;
15040
15052
  };
15041
15053
  interface ParsedAstSpecification {
15042
15054
  tags: Set<c4.Tag>;
@@ -15208,6 +15220,7 @@ declare class DeploymentsIndex {
15208
15220
  private services;
15209
15221
  protected Names: LikeC4NameProvider;
15210
15222
  protected langiumDocuments: LangiumDocuments;
15223
+ protected documentCache: DocumentCache<string, DocumentDeploymentsIndex>;
15211
15224
  constructor(services: LikeC4Services);
15212
15225
  private documents;
15213
15226
  get(document: LikeC4LangiumDocument): DocumentDeploymentsIndex;
@@ -15259,7 +15272,15 @@ declare class DocumentDeploymentsIndex {
15259
15272
  unique(): readonly DeploymentAstNodeDescription[];
15260
15273
  }
15261
15274
 
15262
- declare class FqnIndex {
15275
+ declare abstract class ADisposable implements Disposable {
15276
+ protected toDispose: Disposable[];
15277
+ protected isDisposed: boolean;
15278
+ onDispose(...disposable: Disposable[]): void;
15279
+ dispose(): void;
15280
+ protected throwIfDisposed(): void;
15281
+ }
15282
+
15283
+ declare class FqnIndex extends ADisposable {
15263
15284
  private services;
15264
15285
  protected langiumDocuments: LangiumDocuments;
15265
15286
  constructor(services: LikeC4Services);
@@ -15275,7 +15296,7 @@ declare class FqnIndex {
15275
15296
  }
15276
15297
 
15277
15298
  type ModelParsedListener = (docs: URI[]) => void;
15278
- declare class LikeC4ModelBuilder {
15299
+ declare class LikeC4ModelBuilder extends ADisposable {
15279
15300
  private services;
15280
15301
  private langiumDocuments;
15281
15302
  private listeners;
@@ -15687,12 +15708,10 @@ declare class LikeC4ModelChanges {
15687
15708
  };
15688
15709
  }
15689
15710
 
15690
- declare class Rpc implements Disposable {
15711
+ declare class Rpc extends ADisposable {
15691
15712
  private services;
15692
- private disposables;
15693
15713
  constructor(services: LikeC4Services);
15694
15714
  init(): void;
15695
- dispose(): void;
15696
15715
  }
15697
15716
 
15698
15717
  declare class NodeKindProvider implements NodeKindProvider$1 {
package/dist/index.d.ts CHANGED
@@ -5504,7 +5504,7 @@ interface BaseParser$1 {
5504
5504
  * Requires a unique index within the rule for a specific sub rule.
5505
5505
  * Arguments can be supplied to the rule invocation for semantic predicates
5506
5506
  */
5507
- subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5507
+ subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5508
5508
  /**
5509
5509
  * Executes a grammar action that modifies the currently active AST node
5510
5510
  */
@@ -5542,7 +5542,7 @@ declare abstract class AbstractLangiumParser implements BaseParser$1 {
5542
5542
  atLeastOne(idx: number, callback: DSLMethodOpts<unknown>): void;
5543
5543
  abstract rule(rule: ParserRule, impl: RuleImpl): RuleResult;
5544
5544
  abstract consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
5545
- abstract subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5545
+ abstract subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5546
5546
  abstract action($type: string, action: Action): void;
5547
5547
  abstract construct(): unknown;
5548
5548
  getRule(name: string): RuleResult | undefined;
@@ -5559,6 +5559,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5559
5559
  private readonly converter;
5560
5560
  private readonly astReflection;
5561
5561
  private readonly nodeBuilder;
5562
+ private lexerResult?;
5562
5563
  private stack;
5563
5564
  private assignmentMap;
5564
5565
  private get current();
@@ -5567,6 +5568,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5567
5568
  private computeRuleType;
5568
5569
  parse<T extends AstNode = AstNode>(input: string, options?: ParserOptions): ParseResult<T>;
5569
5570
  private startImplementation;
5571
+ private extractHiddenTokens;
5570
5572
  consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
5571
5573
  /**
5572
5574
  * Most consumed parser tokens are valid. However there are two cases in which they are not valid:
@@ -5575,7 +5577,7 @@ declare class LangiumParser extends AbstractLangiumParser {
5575
5577
  * 2. They contain invalid token ranges. This might include the special EOF token, or other tokens produced by invalid token builders.
5576
5578
  */
5577
5579
  private isValidToken;
5578
- subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5580
+ subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5579
5581
  private performSubruleAssignment;
5580
5582
  action($type: string, action: Action): void;
5581
5583
  construct(): unknown;
@@ -5610,7 +5612,7 @@ declare class LangiumCompletionParser extends AbstractLangiumParser {
5610
5612
  keepStackSize(): number;
5611
5613
  resetStackSize(size: number): void;
5612
5614
  consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;
5613
- subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;
5615
+ subrule(idx: number, rule: RuleResult, fragment: boolean, feature: AbstractElement, args: Args): void;
5614
5616
  before(element: AbstractElement): void;
5615
5617
  after(element: AbstractElement): void;
5616
5618
  get currIdx(): number;
@@ -6121,9 +6123,9 @@ interface CstNode extends DocumentSegment {
6121
6123
  /** The root CST node */
6122
6124
  readonly root: RootCstNode;
6123
6125
  /** The grammar element from which this node was parsed */
6124
- readonly grammarSource: AbstractElement;
6126
+ readonly grammarSource?: AbstractElement;
6125
6127
  /** @deprecated use `grammarSource` instead. */
6126
- readonly feature: AbstractElement;
6128
+ readonly feature?: AbstractElement;
6127
6129
  /** The AST node created from this CST node */
6128
6130
  readonly astNode: AstNode;
6129
6131
  /** @deprecated use `astNode` instead. */
@@ -13921,6 +13923,7 @@ declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
13921
13923
  ******************************************************************************/
13922
13924
 
13923
13925
  type ArrowType = 'crow' | 'diamond' | 'dot' | 'none' | 'normal' | 'odiamond' | 'odot' | 'onormal' | 'open' | 'vee';
13926
+ type Boolean = boolean;
13924
13927
  type BorderStyleValue = 'none' | LineOptions;
13925
13928
  type CustomColorId = 'element' | 'model' | ArrowType | ElementShape | LineOptions | string;
13926
13929
  type CustomColorValue = string;
@@ -13975,7 +13978,7 @@ type RelationshipStyleProperty = ArrowProperty | ColorProperty | LineProperty;
13975
13978
  declare const RelationshipStyleProperty = "RelationshipStyleProperty";
13976
13979
  type StringProperty = ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty;
13977
13980
  declare const StringProperty = "StringProperty";
13978
- type StyleProperty = BorderProperty | ColorProperty | IconProperty | OpacityProperty | ShapeProperty;
13981
+ type StyleProperty = BorderProperty | ColorProperty | IconProperty | MultipleProperty | OpacityProperty | ShapeProperty;
13979
13982
  declare const StyleProperty = "StyleProperty";
13980
13983
  type ThemeColor = 'amber' | 'blue' | 'gray' | 'green' | 'indigo' | 'muted' | 'primary' | 'red' | 'secondary' | 'sky' | 'slate';
13981
13984
  type Uri = string;
@@ -14523,6 +14526,13 @@ interface ModelViews extends AstNode {
14523
14526
  views: Array<LikeC4View>;
14524
14527
  }
14525
14528
  declare const ModelViews = "ModelViews";
14529
+ interface MultipleProperty extends AstNode {
14530
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
14531
+ readonly $type: 'MultipleProperty';
14532
+ key: 'multiple';
14533
+ value: Boolean;
14534
+ }
14535
+ declare const MultipleProperty = "MultipleProperty";
14526
14536
  interface NavigateToProperty extends AstNode {
14527
14537
  readonly $container: CustomElementProperties;
14528
14538
  readonly $type: 'NavigateToProperty';
@@ -14931,6 +14941,7 @@ type LikeC4AstType = {
14931
14941
  Model: Model;
14932
14942
  ModelDeployments: ModelDeployments;
14933
14943
  ModelViews: ModelViews;
14944
+ MultipleProperty: MultipleProperty;
14934
14945
  NavigateToProperty: NavigateToProperty;
14935
14946
  NotationProperty: NotationProperty;
14936
14947
  NotesProperty: NotesProperty;
@@ -15001,7 +15012,7 @@ type LikeC4AstType = {
15001
15012
 
15002
15013
  type Guard<N extends AstNode> = (n: AstNode) => n is N;
15003
15014
  type Guarded<G> = G extends Guard<infer N> ? N : never;
15004
- declare const isValidatableAstNode: (n: AstNode) => n is DeployedInstance | DeploymentNode | DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout | DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleGlobalStyle | ViewRuleStyle | ElementDescedantsExpression | ElementKindExpression | ElementRef | ElementTagExpression | ExpandElementExpression | WildcardExpression | ElementPredicateWhere | ElementPredicateWith | ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataBody | FqnRefExpr | DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr | RelationPredicateWhereV2 | Element | ExtendElement | DeploymentView | DynamicView | ElementView | DirectedRelationExpression | InOutRelationExpression | IncomingRelationExpression | OutgoingRelationExpression | RelationPredicateWhere | RelationPredicateWith | RelationStringProperty | ArrowProperty | ColorProperty | LineProperty | MetadataAttribute | NotationProperty | NotesProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty | BorderProperty | OpacityProperty | ShapeProperty | ViewRuleGlobalPredicateRef | ViewRuleGroup | ExcludePredicate | IncludePredicate | SpecificationRelationshipKind | GlobalStyle | SpecificationColor | NavigateToProperty | DynamicViewStep | Tags | DeploymentRelation | SpecificationDeploymentNodeKind | DynamicViewParallelSteps | GlobalDynamicPredicateGroup | DynamicViewPredicateIterator | Relation | SpecificationElementKind | GlobalPredicateGroup | Globals | GlobalStyleGroup | SpecificationRule | SpecificationTag;
15015
+ declare const isValidatableAstNode: (n: AstNode) => n is DeployedInstance | DeploymentNode | DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout | DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleGlobalStyle | ViewRuleStyle | ElementDescedantsExpression | ElementKindExpression | ElementRef | ElementTagExpression | ExpandElementExpression | WildcardExpression | ElementPredicateWhere | ElementPredicateWith | ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataBody | FqnRefExpr | DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr | RelationPredicateWhereV2 | Element | ExtendElement | DeploymentView | DynamicView | ElementView | DirectedRelationExpression | InOutRelationExpression | IncomingRelationExpression | OutgoingRelationExpression | RelationPredicateWhere | RelationPredicateWith | RelationStringProperty | ArrowProperty | ColorProperty | LineProperty | MetadataAttribute | NotationProperty | NotesProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty | BorderProperty | MultipleProperty | OpacityProperty | ShapeProperty | ViewRuleGlobalPredicateRef | ViewRuleGroup | ExcludePredicate | IncludePredicate | SpecificationRelationshipKind | GlobalStyle | SpecificationColor | NavigateToProperty | DynamicViewStep | Tags | DeploymentRelation | SpecificationDeploymentNodeKind | DynamicViewParallelSteps | GlobalDynamicPredicateGroup | DynamicViewPredicateIterator | Relation | SpecificationElementKind | GlobalPredicateGroup | Globals | GlobalStyleGroup | SpecificationRule | SpecificationTag;
15005
15016
  type ValidatableAstNode = Guarded<typeof isValidatableAstNode>;
15006
15017
  declare function checksFromDiagnostics(doc: LikeC4LangiumDocument): {
15007
15018
  isValid: (n: ValidatableAstNode) => boolean;
@@ -15037,6 +15048,7 @@ type ParsedElementStyle = {
15037
15048
  color?: c4.Color;
15038
15049
  border?: c4.BorderStyle;
15039
15050
  opacity?: number;
15051
+ multiple?: boolean;
15040
15052
  };
15041
15053
  interface ParsedAstSpecification {
15042
15054
  tags: Set<c4.Tag>;
@@ -15208,6 +15220,7 @@ declare class DeploymentsIndex {
15208
15220
  private services;
15209
15221
  protected Names: LikeC4NameProvider;
15210
15222
  protected langiumDocuments: LangiumDocuments;
15223
+ protected documentCache: DocumentCache<string, DocumentDeploymentsIndex>;
15211
15224
  constructor(services: LikeC4Services);
15212
15225
  private documents;
15213
15226
  get(document: LikeC4LangiumDocument): DocumentDeploymentsIndex;
@@ -15259,7 +15272,15 @@ declare class DocumentDeploymentsIndex {
15259
15272
  unique(): readonly DeploymentAstNodeDescription[];
15260
15273
  }
15261
15274
 
15262
- declare class FqnIndex {
15275
+ declare abstract class ADisposable implements Disposable {
15276
+ protected toDispose: Disposable[];
15277
+ protected isDisposed: boolean;
15278
+ onDispose(...disposable: Disposable[]): void;
15279
+ dispose(): void;
15280
+ protected throwIfDisposed(): void;
15281
+ }
15282
+
15283
+ declare class FqnIndex extends ADisposable {
15263
15284
  private services;
15264
15285
  protected langiumDocuments: LangiumDocuments;
15265
15286
  constructor(services: LikeC4Services);
@@ -15275,7 +15296,7 @@ declare class FqnIndex {
15275
15296
  }
15276
15297
 
15277
15298
  type ModelParsedListener = (docs: URI[]) => void;
15278
- declare class LikeC4ModelBuilder {
15299
+ declare class LikeC4ModelBuilder extends ADisposable {
15279
15300
  private services;
15280
15301
  private langiumDocuments;
15281
15302
  private listeners;
@@ -15687,12 +15708,10 @@ declare class LikeC4ModelChanges {
15687
15708
  };
15688
15709
  }
15689
15710
 
15690
- declare class Rpc implements Disposable {
15711
+ declare class Rpc extends ADisposable {
15691
15712
  private services;
15692
- private disposables;
15693
15713
  constructor(services: LikeC4Services);
15694
15714
  init(): void;
15695
- dispose(): void;
15696
15715
  }
15697
15716
 
15698
15717
  declare class NodeKindProvider implements NodeKindProvider$1 {
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export{LikeC4DeploymentModel,LikeC4Model,LikeC4ViewModel}from"@likec4/core/model";import"@likec4/core";export{L as LikeC4}from"./shared/likec4.Buej2FfJ.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"node:fs/promises";import"node:process";import"node:tty";import"@hpcc-js/wasm-graphviz";import"buffer";import"@likec4/core/compute-view";import"node:child_process";import"node:string_decoder";import"node:timers/promises";import"node:os";import"node:events";import"node:v8";import"node:stream";import"node:buffer";import"node:stream/promises";import"vite";
1
+ export{LikeC4DeploymentModel,LikeC4Model,LikeC4ViewModel}from"@likec4/core/model";import"@likec4/core";export{L as LikeC4}from"./shared/likec4.EF3jY6Mw.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"node:process";import"node:tty";import"@hpcc-js/wasm-graphviz";import"buffer";import"@likec4/core/compute-view";import"node:child_process";import"node:string_decoder";import"node:timers/promises";import"node:os";import"node:events";import"node:v8";import"node:stream";import"node:buffer";import"node:stream/promises";import"vite";