@likec4/core 1.32.2 → 1.33.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 (96) hide show
  1. package/dist/builder/index.d.mts +6 -4
  2. package/dist/builder/index.mjs +45 -13
  3. package/dist/compute-view/index.d.mts +6 -4
  4. package/dist/compute-view/index.mjs +33 -10
  5. package/dist/compute-view/relationships-view/index.d.mts +6 -4
  6. package/dist/compute-view/relationships-view/index.mjs +6 -3
  7. package/dist/index.d.mts +9 -138
  8. package/dist/index.mjs +31 -3712
  9. package/dist/model/connection/deployment/index.d.mts +10 -0
  10. package/dist/model/connection/deployment/index.mjs +18 -0
  11. package/dist/model/connection/index.d.mts +70 -0
  12. package/dist/model/connection/index.mjs +23 -0
  13. package/dist/model/connection/model/index.d.mts +10 -0
  14. package/dist/model/connection/model/index.mjs +11 -0
  15. package/dist/model/index.d.mts +14 -256
  16. package/dist/model/index.mjs +27 -5
  17. package/dist/shared/{core.Bdz6fBF1.d.mts → core.1pNeDdRk.d.mts} +92 -81
  18. package/dist/shared/{core.BuO4ncfY.d.mts → core.668kXpZq.d.mts} +42 -52
  19. package/dist/shared/core.8KM0D6va.mjs +33 -0
  20. package/dist/shared/core.B0oEIXqd.mjs +47 -0
  21. package/dist/shared/core.BH9nN-_I.mjs +22 -0
  22. package/dist/shared/core.BMCb0wJI.mjs +177 -0
  23. package/dist/shared/core.BTnf14gD.mjs +331 -0
  24. package/dist/shared/core.BgvIuGGU.mjs +3 -0
  25. package/dist/shared/core.BoyJPEen.mjs +21 -0
  26. package/dist/shared/{core.CUYDgv2-.mjs → core.Br7Fab9l.mjs} +12 -15
  27. package/dist/shared/{core.BrCnZFTn.mjs → core.Btl47GOn.mjs} +3 -3
  28. package/dist/shared/core.ByrmCl9I.mjs +5 -0
  29. package/dist/shared/core.C80Z37Eu.mjs +29 -0
  30. package/dist/shared/{core.Pf5I9o0e.d.mts → core.CF82MWyh.d.mts} +1 -1
  31. package/dist/shared/{core.rmvsy0n3.mjs → core.C_C-3c1S.mjs} +5 -198
  32. package/dist/shared/core.CeQbbp7K.d.mts +41 -0
  33. package/dist/shared/{core.DoK86JEe.mjs → core.CpwrZi3D.mjs} +2 -73
  34. package/dist/shared/{core.CpXlRyE5.mjs → core.CtKXPqN_.mjs} +5 -36
  35. package/dist/shared/core.CxGKeL-L.mjs +144 -0
  36. package/dist/shared/core.CzdwsPmY.d.mts +69 -0
  37. package/dist/shared/{core.Cy9smucx.mjs → core.D4npX2q8.mjs} +1 -3
  38. package/dist/shared/core.D56nCp7e.mjs +168 -0
  39. package/dist/shared/core.D5qVzkws.mjs +724 -0
  40. package/dist/shared/core.DDAPzd3T.d.mts +87 -0
  41. package/dist/shared/{core.CBpKAlhj.mjs → core.DDynPqbh.mjs} +96 -56
  42. package/dist/shared/{core.Bk7wEZFG.mjs → core.DXRAwwDB.mjs} +3 -2
  43. package/dist/shared/core.DcS-0zys.mjs +10 -0
  44. package/dist/shared/{core.CBxTtXMi.d.mts → core.De___iBS.d.mts} +3 -2
  45. package/dist/shared/core.DsMrjY2q.mjs +34 -0
  46. package/dist/shared/core.DuSLYTG6.d.mts +57 -0
  47. package/dist/shared/core.Dy-F3xRP.d.mts +83 -0
  48. package/dist/shared/{core.DaAyklhe.d.mts → core.OLInHaJx.d.mts} +30 -22
  49. package/dist/shared/core.XptQjhMA.mjs +1295 -0
  50. package/dist/shared/{core.cbA9VZ02.mjs → core.hoq9W4rW.mjs} +28 -1073
  51. package/dist/shared/core.zLlww-07.mjs +3 -0
  52. package/dist/theme/index.d.mts +134 -0
  53. package/dist/theme/index.mjs +3709 -0
  54. package/dist/types/aux.d.mts +3 -2
  55. package/dist/types/index.d.mts +9 -5
  56. package/dist/types/index.mjs +17 -146
  57. package/dist/utils/index.d.mts +15 -100
  58. package/dist/utils/index.mjs +25 -1315
  59. package/dist/utils/iterable/index.d.mts +100 -0
  60. package/dist/utils/iterable/index.mjs +24 -0
  61. package/package.json +23 -7
  62. package/src/builder/Builder.ts +13 -4
  63. package/src/builder/__snapshots__/Builder-style1.spec.ts.snap +0 -13
  64. package/src/builder/__snapshots__/Builder-style2.compute-model.json5 +2 -6
  65. package/src/builder/__snapshots__/Builder-style2.spec.ts.snap +0 -7
  66. package/src/compute-view/deployment-view/__test__/fixture.ts +15 -5
  67. package/src/compute-view/deployment-view/utils.ts +13 -13
  68. package/src/compute-view/dynamic-view/compute.ts +2 -1
  69. package/src/compute-view/element-view/__test__/__snapshots__/legacy.spec.ts.snap +2 -2
  70. package/src/compute-view/relationships-view/layout.ts +1 -1
  71. package/src/compute-view/utils/applyCustomElementProperties.ts +8 -0
  72. package/src/compute-view/utils/applyCustomRelationProperties.ts +2 -0
  73. package/src/compute-view/utils/buildComputedNodes.ts +4 -3
  74. package/src/compute-view/utils/merge-props-from-relationships.ts +6 -5
  75. package/src/compute-view/utils/view-hash.ts +24 -3
  76. package/src/model/DeploymentElementModel.ts +20 -16
  77. package/src/model/ElementModel.ts +9 -3
  78. package/src/model/RelationModel.ts +19 -16
  79. package/src/model/index.ts +2 -0
  80. package/src/model/types.ts +1 -0
  81. package/src/model/view/EdgeModel.ts +4 -3
  82. package/src/model/view/LikeC4ViewModel.ts +5 -0
  83. package/src/model/view/NodeModel.ts +4 -2
  84. package/src/theme/index.ts +12 -5
  85. package/src/types/RichText.ts +200 -0
  86. package/src/types/index.ts +2 -0
  87. package/src/types/model-deployment.ts +4 -3
  88. package/src/types/model-logical.ts +3 -3
  89. package/src/types/scalar.ts +47 -2
  90. package/src/types/view-common.ts +1 -1
  91. package/src/types/view-computed.ts +2 -4
  92. package/src/types/view-layouted.ts +9 -0
  93. package/src/utils/index.ts +4 -9
  94. package/src/utils/markdown/index.ts +2 -0
  95. package/src/utils/markdown/to-html.ts +32 -0
  96. package/src/utils/markdown/to-text.ts +14 -0
@@ -0,0 +1,83 @@
1
+ import { C as Connection, c as customInspectSymbol } from './core.CeQbbp7K.mjs';
2
+ import { E as ElementModel, R as RelationshipModel } from './core.OLInHaJx.mjs';
3
+ import { A as Any, U as Unknown, B as EdgeId } from './core.De___iBS.mjs';
4
+
5
+ /**
6
+ * Connection refers to any relationships between two elements,
7
+ * both direct and implicit ones (between their nested elements).
8
+ *
9
+ * Merges relationships together to an single edge on the diagram.
10
+ */
11
+ declare class ConnectionModel<A extends Any = Unknown> implements Connection<ElementModel<A>, EdgeId> {
12
+ readonly source: ElementModel<A>;
13
+ readonly target: ElementModel<A>;
14
+ readonly relations: ReadonlySet<RelationshipModel<A>>;
15
+ readonly id: EdgeId;
16
+ constructor(source: ElementModel<A>, target: ElementModel<A>, relations?: ReadonlySet<RelationshipModel<A>>);
17
+ private _boundary;
18
+ /**
19
+ * Common ancestor of the source and target elements.
20
+ * Represents the boundary of the connection.
21
+ */
22
+ get boundary(): ElementModel<A> | null;
23
+ /**
24
+ * Human readable expression of the connection
25
+ * Mostly used for testing and debugging
26
+ */
27
+ get expression(): string;
28
+ /**
29
+ * Returns true if only includes relations between the source and target elements.
30
+ */
31
+ get isDirect(): boolean;
32
+ /**
33
+ * Returns true if includes relations between nested elements of the source and target elements.
34
+ */
35
+ get isImplicit(): boolean;
36
+ get directRelations(): ReadonlySet<RelationshipModel<A>>;
37
+ nonEmpty(): boolean;
38
+ mergeWith(other: ConnectionModel<A>): ConnectionModel<A>;
39
+ difference(other: ConnectionModel<A>): ConnectionModel<A>;
40
+ intersect(other: ConnectionModel<A>): ConnectionModel<A>;
41
+ equals(other: Connection): boolean;
42
+ /**
43
+ * Returns a new instance with the updated relations.
44
+ *
45
+ * @param relations - A readonly set of `RelationshipModel` instances representing the new relations.
46
+ * @returns A new `ConnectionModel` instance with the updated relations.
47
+ */
48
+ update(relations: ReadonlySet<RelationshipModel<A>>): ConnectionModel<A>;
49
+ [customInspectSymbol](depth: any, inspectOptions: any, inspect: any): string;
50
+ toString(): string;
51
+ /**
52
+ * Creates a new connection with reversed direction (target becomes source and vice versa)
53
+ * @param search - When true, attempts to find an existing connection between the reversed nodes
54
+ */
55
+ reversed(search?: boolean): ConnectionModel<A>;
56
+ }
57
+
58
+ /**
59
+ * Resolve connection from source to target
60
+ *
61
+ * @param direction - if 'both', also returns connection from target to source
62
+ * @default `directed`
63
+ */
64
+ declare function findConnection<A extends Any>(source: ElementModel<A>, target: ElementModel<A>, direction?: 'directed' | 'both'): [ConnectionModel<A>, ConnectionModel<A>] | [ConnectionModel<A>] | [];
65
+ /**
66
+ * Resolve all connections between element and others
67
+ * @param direction - if 'directed', only look for outgoing connections from the element to others
68
+ * @default `both`
69
+ */
70
+ declare function findConnectionsBetween<M extends Any>(element: ElementModel<M>, others: Iterable<ElementModel<M>>, direction?: 'directed' | 'both'): readonly ConnectionModel<M>[];
71
+ /**
72
+ * Resolve all connections within a given set of elements
73
+ */
74
+ declare function findConnectionsWithin<M extends Any>(elements: Iterable<ElementModel<M>>): readonly ConnectionModel<M>[];
75
+
76
+ declare const find_findConnection: typeof findConnection;
77
+ declare const find_findConnectionsBetween: typeof findConnectionsBetween;
78
+ declare const find_findConnectionsWithin: typeof findConnectionsWithin;
79
+ declare namespace find {
80
+ export { find_findConnection as findConnection, find_findConnectionsBetween as findConnectionsBetween, find_findConnectionsWithin as findConnectionsWithin };
81
+ }
82
+
83
+ export { ConnectionModel as C, findConnection as a, findConnectionsBetween as b, findConnectionsWithin as c, find as f };
@@ -1,8 +1,10 @@
1
- import { A as Any, R as RelationKind, T as Tags, j as Metadata, k as MetadataKey, L as LooseTag, F as Fqn, g as ElementId, l as ElementKind, D as DeploymentKind, E as ExtractOnStage, m as RelationId$1, f as _type, n as StrictViewId, o as LooseElementId, p as LooseDeploymentId, q as DeploymentFqn, t as toComputed, r as toLayouted, s as Stage, u as DeploymentId, U as Unknown, V as ViewId, v as Tag, w as toParsed, P as ProjectId$1, x as LooseViewId, b as Aux, S as SpecAux, e as UnknownParsed, c as UnknownComputed, d as UnknownLayouted } from './core.CBxTtXMi.mjs';
1
+ import { A as Any, R as RelationKind, T as Tags, h as Metadata, j as MetadataKey, L as LooseTag, F as Fqn, g as ElementId, k as ElementKind, D as DeploymentKind, E as ExtractOnStage, l as RelationId$1, f as _type, m as StrictViewId, n as LooseElementId, o as LooseDeploymentId, p as DeploymentFqn, t as toComputed, q as toLayouted, r as Stage, s as DeploymentId, U as Unknown, V as ViewId, u as Tag, v as toParsed, P as ProjectId$1, w as LooseViewId, b as Aux, S as SpecAux, e as UnknownParsed, c as UnknownComputed, d as UnknownLayouted } from './core.De___iBS.mjs';
2
2
  import { D as DefaultMap } from './core.CywrQs86.mjs';
3
3
  import { SetRequired } from 'type-fest';
4
- import { I as IteratorLike, R as RelationId, L as Link, P as ProjectId, j as IconUrl, N as NodeId, G as GroupElementKind, E as EdgeId, p as StepEdgeId, V as ViewId$1 } from './core.BuO4ncfY.mjs';
5
- import { az as Color, av as RelationshipLineType, Y as Relationship, O as Element, ar as ElementShape, N as ElementStyle, aM as ViewWithType, aI as ComputedView, aG as LayoutedView, k as ParsedLikeC4ModelData, l as ComputedLikeC4ModelData, m as LayoutedLikeC4ModelData, c as FqnRef, p as DeployedInstance, D as DeploymentElementStyle, u as DeploymentRelationship, q as DeploymentElement, o as DeploymentNode, x as LikeC4ModelDump, y as AuxFromDump, a2 as Specification, j as ModelGlobals, ah as WhereOperator } from './core.Bdz6fBF1.mjs';
4
+ import { d as RelationId, P as ProjectId, a as IconUrl, N as NodeId, G as GroupElementKind, j as EdgeId, k as StepEdgeId, V as ViewId$1 } from './core.668kXpZq.mjs';
5
+ import { b as RichTextOrEmpty, Y as Relationship, Q as Element, O as ElementStyle, as as ViewWithType, ao as ComputedView, am as LayoutedView, n as ParsedLikeC4ModelData, C as ComputedLikeC4ModelData, L as LayoutedLikeC4ModelData, f as FqnRef, q as DeployedInstance, D as DeploymentElementStyle, v as DeploymentRelationship, r as DeploymentElement, p as DeploymentNode, y as LikeC4ModelDump, z as AuxFromDump, a2 as Specification, m as ModelGlobals, ah as WhereOperator } from './core.1pNeDdRk.mjs';
6
+ import { I as IteratorLike, L as Link } from './core.DuSLYTG6.mjs';
7
+ import { i as Color, R as RelationshipLineType, c as ElementShape } from './core.CzdwsPmY.mjs';
6
8
 
7
9
  type RelationshipsIterator<A extends Any> = IteratorLike<RelationshipModel<A>>;
8
10
  /**
@@ -10,16 +12,16 @@ type RelationshipsIterator<A extends Any> = IteratorLike<RelationshipModel<A>>;
10
12
  * use {@link isDeploymentRelationModel} guard to check if the relationship is a deployment relationship
11
13
  */
12
14
  interface AnyRelationshipModel<A extends Any> extends WithTags<A>, WithMetadata<A> {
13
- get id(): RelationId;
14
- get expression(): string;
15
- get title(): string | null;
16
- get technology(): string | null;
17
- get description(): string | null;
18
- get navigateTo(): LikeC4ViewModel<A> | null;
19
- get kind(): RelationKind<A> | null;
20
- get links(): ReadonlyArray<Link>;
21
- get color(): Color;
22
- get line(): RelationshipLineType;
15
+ readonly id: RelationId;
16
+ readonly expression: string;
17
+ readonly title: string | null;
18
+ readonly technology: string | null;
19
+ readonly description: RichTextOrEmpty;
20
+ readonly navigateTo: LikeC4ViewModel<A> | null;
21
+ readonly kind: RelationKind<A> | null;
22
+ readonly links: ReadonlyArray<Link>;
23
+ readonly color: Color;
24
+ readonly line: RelationshipLineType;
23
25
  isDeploymentRelation(): this is DeploymentRelationModel<A>;
24
26
  isModelRelation(): this is RelationshipModel<A>;
25
27
  views(): ViewsIterator<A>;
@@ -39,7 +41,7 @@ declare class RelationshipModel<A extends Any = Any> implements AnyRelationshipM
39
41
  get expression(): string;
40
42
  get title(): string | null;
41
43
  get technology(): string | null;
42
- get description(): string | null;
44
+ get description(): RichTextOrEmpty;
43
45
  get navigateTo(): LikeC4ViewModel<A> | null;
44
46
  get tags(): Tags<A>;
45
47
  get kind(): RelationKind<A> | null;
@@ -52,6 +54,7 @@ declare class RelationshipModel<A extends Any = Any> implements AnyRelationshipM
52
54
  views(): ViewsIterator<A>;
53
55
  isDeploymentRelation(): this is DeploymentRelationModel<A>;
54
56
  isModelRelation(): this is RelationshipModel<A>;
57
+ hasMetadata(): boolean;
55
58
  getMetadata(): Metadata<A>;
56
59
  getMetadata(field: MetadataKey<A>): string | undefined;
57
60
  /**
@@ -83,7 +86,7 @@ declare class ElementModel<A extends Any = Any> implements WithTags<A>, WithMeta
83
86
  */
84
87
  get tags(): Tags<A>;
85
88
  get title(): string;
86
- get description(): string | null;
89
+ get description(): RichTextOrEmpty;
87
90
  get technology(): string | null;
88
91
  get links(): ReadonlyArray<Link>;
89
92
  get defaultView(): LikeC4ViewModel.ScopedElementView<A> | null;
@@ -139,6 +142,7 @@ declare class ElementModel<A extends Any = Any> implements WithTags<A>, WithMeta
139
142
  */
140
143
  isDeployed(): boolean;
141
144
  deployments(): DeployedInstancesIterator<A>;
145
+ hasMetadata(): boolean;
142
146
  getMetadata(): Metadata<A>;
143
147
  getMetadata(field: MetadataKey<A>): string | undefined;
144
148
  /**
@@ -156,7 +160,7 @@ declare class NodeModel<A extends Any = Any, V extends $View<A> = $View<A>> impl
156
160
  get id(): NodeId;
157
161
  get title(): string;
158
162
  get kind(): ElementKind<A> | DeploymentKind<A> | typeof GroupElementKind | 'instance';
159
- get description(): string | null;
163
+ get description(): RichTextOrEmpty;
160
164
  get technology(): string | null;
161
165
  get parent(): NodeModel<A, V> | null;
162
166
  get element(): ElementModel<A> | null;
@@ -236,7 +240,7 @@ declare class EdgeModel<A extends Any = Any, View extends $View<A> = $View<A>> i
236
240
  get id(): EdgeId;
237
241
  get parent(): NodeModel<A, View> | null;
238
242
  get label(): string | null;
239
- get description(): string | null;
243
+ get description(): RichTextOrEmpty;
240
244
  get technology(): string | null;
241
245
  hasParent(): this is EdgeModel.WithParent<A, View>;
242
246
  get tags(): Tags<A>;
@@ -276,6 +280,7 @@ declare class LikeC4ViewModel<A extends Any = Any, V extends $View<A> = $View<A>
276
280
  get _type(): V[_type];
277
281
  get id(): StrictViewId<A>;
278
282
  get title(): string | null;
283
+ get description(): RichTextOrEmpty;
279
284
  get tags(): Tags<A>;
280
285
  get links(): ReadonlyArray<Link>;
281
286
  get viewOf(): ElementModel<A> | null;
@@ -397,6 +402,7 @@ interface WithTags<A extends Any> {
397
402
  isTagged(tag: LooseTag<A>): boolean;
398
403
  }
399
404
  interface WithMetadata<A extends Any> {
405
+ hasMetadata(): boolean;
400
406
  getMetadata(): Metadata<A>;
401
407
  getMetadata(field: MetadataKey<A>): string | undefined;
402
408
  }
@@ -497,7 +503,7 @@ declare abstract class AbstractDeploymentElementModel<A extends Any> implements
497
503
  get style(): SetRequired<DeploymentElementStyle, 'shape' | 'color' | 'size'>;
498
504
  get shape(): ElementShape;
499
505
  get color(): Color;
500
- get description(): string | null;
506
+ get description(): RichTextOrEmpty;
501
507
  get technology(): string | null;
502
508
  get links(): ReadonlyArray<Link>;
503
509
  /**
@@ -541,6 +547,7 @@ declare abstract class AbstractDeploymentElementModel<A extends Any> implements
541
547
  abstract incomingModelRelationships(): RelationshipsIterator<A>;
542
548
  get allOutgoing(): RelationshipsAccum<A>;
543
549
  get allIncoming(): RelationshipsAccum<A>;
550
+ hasMetadata(): boolean;
544
551
  getMetadata(): Metadata<A>;
545
552
  getMetadata(field: MetadataKey<A>): string | undefined;
546
553
  /**
@@ -605,7 +612,7 @@ declare class DeployedInstanceModel<A extends Any = Any> extends AbstractDeploym
605
612
  get color(): Color;
606
613
  get tags(): Tags<A>;
607
614
  get kind(): ElementKind<A>;
608
- get description(): string | null;
615
+ get description(): RichTextOrEmpty;
609
616
  get technology(): string | null;
610
617
  get links(): ReadonlyArray<Link>;
611
618
  isInstance(): this is DeployedInstanceModel<A>;
@@ -627,7 +634,7 @@ declare class NestedElementOfDeployedInstanceModel<A extends Any = Any> {
627
634
  get shape(): ElementShape;
628
635
  get color(): Color;
629
636
  get title(): string;
630
- get description(): string | null;
637
+ get description(): RichTextOrEmpty;
631
638
  get technology(): string | null;
632
639
  isDeploymentNode(): this is DeploymentNodeModel<A>;
633
640
  isInstance(): this is DeployedInstanceModel<A>;
@@ -644,7 +651,7 @@ declare class DeploymentRelationModel<A extends Any = Any> implements AnyRelatio
644
651
  get expression(): string;
645
652
  get title(): string | null;
646
653
  get technology(): string | null;
647
- get description(): string | null;
654
+ get description(): RichTextOrEmpty;
648
655
  get tags(): Tags<A>;
649
656
  get kind(): RelationKind<A> | null;
650
657
  get navigateTo(): LikeC4ViewModel<A> | null;
@@ -654,6 +661,7 @@ declare class DeploymentRelationModel<A extends Any = Any> implements AnyRelatio
654
661
  views(): IteratorLike<LikeC4ViewModel.DeploymentView<A>>;
655
662
  isDeploymentRelation(): this is DeploymentRelationModel<A>;
656
663
  isModelRelation(): this is RelationshipModel<A>;
664
+ hasMetadata(): boolean;
657
665
  getMetadata(): Metadata<A>;
658
666
  getMetadata(field: MetadataKey<A>): string | undefined;
659
667
  /**
@@ -916,4 +924,4 @@ declare namespace LikeC4Model {
916
924
  type AnyRelation<M = Unknown> = M extends Any ? RelationshipModel<M> | DeploymentRelationModel<M> : never;
917
925
  }
918
926
 
919
- export { type AnyRelationshipModel as A, type DeploymentElementModel as D, ElementModel as E, type IncomingFilter as I, LikeC4Model as L, NestedElementOfDeployedInstanceModel as N, type OutgoingFilter as O, RelationshipModel as R, type WithMetadata as W, RelationshipsAccum as a, DeploymentNodeModel as b, DeploymentRelationModel as c, DeployedInstanceModel as d, LikeC4ViewModel as e, NodeModel as f, EdgeModel as g, type AnyLikeC4Model as h, type DeploymentRelationEndpoint as i, LikeC4DeploymentModel as j, type DeploymentOrFqn as k, type EdgeOrId as l, type ElementOrFqn as m, type NodeOrId as n, type WithTags as o };
927
+ export { type AnyRelationshipModel as A, DeploymentNodeModel as D, ElementModel as E, type IncomingFilter as I, LikeC4ViewModel as L, NestedElementOfDeployedInstanceModel as N, type OutgoingFilter as O, RelationshipModel as R, type WithMetadata as W, DeployedInstanceModel as a, DeploymentRelationModel as b, NodeModel as c, EdgeModel as d, type DeploymentElementModel as e, type AnyLikeC4Model as f, LikeC4Model as g, type DeploymentRelationEndpoint as h, RelationshipsAccum as i, LikeC4DeploymentModel as j, type DeploymentOrFqn as k, type EdgeOrId as l, type ElementOrFqn as m, type NodeOrId as n, type WithTags as o };