@likec4/core 1.46.4 → 1.48.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/LICENSE +1 -1
- package/dist/_chunks/Builder.view-element.mjs +3284 -0
- package/dist/_chunks/LikeC4Model.d.mts +1287 -0
- package/dist/_chunks/LikeC4Styles.mjs +691 -0
- package/dist/_chunks/RichText.d.mts +84 -0
- package/dist/_chunks/RichText.mjs +148 -0
- package/dist/_chunks/_aux.d.mts +289 -0
- package/dist/_chunks/_aux.mjs +18 -0
- package/dist/_chunks/_types.d.mts +781 -0
- package/dist/_chunks/_types2.d.mts +38 -0
- package/dist/_chunks/assignTagColors.mjs +24 -0
- package/dist/_chunks/calcDriftsFromSnapshot.mjs +379 -0
- package/dist/_chunks/connection.mjs +0 -0
- package/dist/_chunks/const.d.mts +43 -0
- package/dist/_chunks/const.mjs +33 -0
- package/dist/_chunks/expression-model.d.mts +192 -0
- package/dist/_chunks/expression-model.mjs +103 -0
- package/dist/_chunks/expression.d.mts +347 -0
- package/dist/_chunks/expression.mjs +107 -0
- package/dist/_chunks/find.d.mts +82 -0
- package/dist/_chunks/find.mjs +646 -0
- package/dist/_chunks/find2.d.mts +78 -0
- package/dist/_chunks/find2.mjs +287 -0
- package/dist/_chunks/fqnRef.d.mts +58 -0
- package/dist/_chunks/fqnRef.mjs +41 -0
- package/dist/_chunks/geometry.mjs +335 -0
- package/dist/_chunks/index.d.mts +169 -0
- package/dist/_chunks/index2.d.mts +937 -0
- package/dist/_chunks/index3.d.mts +146 -0
- package/dist/_chunks/index4.d.mts +62 -0
- package/dist/_chunks/index5.d.mts +42 -0
- package/dist/_chunks/index6.d.mts +43 -0
- package/dist/{shared/core.OtRNdMxy.d.mts → _chunks/index7.d.mts} +113 -197
- package/dist/_chunks/index8.d.mts +144 -0
- package/dist/_chunks/invariant.mjs +18 -0
- package/dist/_chunks/iterable.mjs +146 -0
- package/dist/_chunks/libs/@mantine/colors-generator.mjs +3416 -0
- package/dist/_chunks/libs/@ungap/structured-clone.mjs +213 -0
- package/dist/_chunks/libs/bail.mjs +14 -0
- package/dist/_chunks/libs/ccount.mjs +25 -0
- package/dist/_chunks/libs/character-entities-html4.mjs +263 -0
- package/dist/_chunks/libs/character-entities-legacy.mjs +117 -0
- package/dist/_chunks/libs/character-entities.mjs +2136 -0
- package/dist/_chunks/libs/comma-separated-tokens.mjs +18 -0
- package/dist/_chunks/libs/decode-named-character-reference.mjs +21 -0
- package/dist/_chunks/libs/defu.mjs +42 -0
- package/dist/_chunks/libs/devlop.mjs +5 -0
- package/dist/_chunks/libs/escape-string-regexp.mjs +8 -0
- package/dist/_chunks/libs/extend.mjs +77 -0
- package/dist/_chunks/libs/graphology-dag.mjs +703 -0
- package/dist/_chunks/libs/graphology-types.d.mts +601 -0
- package/dist/_chunks/libs/graphology.d.mts +6 -0
- package/dist/_chunks/libs/graphology.mjs +4565 -0
- package/dist/_chunks/libs/hast-util-sanitize.mjs +863 -0
- package/dist/_chunks/libs/hast-util-to-html.mjs +2696 -0
- package/dist/_chunks/libs/is-plain-obj.mjs +9 -0
- package/dist/_chunks/libs/longest-streak.mjs +30 -0
- package/dist/_chunks/libs/markdown-table.mjs +290 -0
- package/dist/_chunks/libs/mdast-util-find-and-replace.mjs +653 -0
- package/dist/_chunks/libs/mdast-util-from-markdown.mjs +8522 -0
- package/dist/_chunks/libs/mdast-util-gfm.mjs +2393 -0
- package/dist/_chunks/libs/mdast-util-to-hast.mjs +1803 -0
- package/dist/_chunks/libs/micromark-extension-gfm.mjs +2243 -0
- package/dist/_chunks/libs/mnemonist.d.mts +254 -0
- package/dist/_chunks/libs/mnemonist.mjs +1978 -0
- package/dist/_chunks/libs/natural-compare-lite.mjs +42 -0
- package/dist/_chunks/libs/rehype-sanitize.mjs +29 -0
- package/dist/_chunks/libs/rehype-stringify.mjs +34 -0
- package/dist/_chunks/libs/remark-gfm.mjs +36 -0
- package/dist/_chunks/libs/remark-github-blockquote-alert.mjs +100 -0
- package/dist/_chunks/libs/remark-parse.mjs +39 -0
- package/dist/_chunks/libs/remark-rehype.mjs +171 -0
- package/dist/_chunks/libs/remeda.mjs +702 -0
- package/dist/_chunks/libs/trough.mjs +158 -0
- package/dist/_chunks/libs/unified.mjs +2212 -0
- package/dist/_chunks/mnemonist.d.mts +1 -0
- package/dist/_chunks/mnemonist.mjs +0 -0
- package/dist/_chunks/model.mjs +1898 -0
- package/dist/_chunks/model2.mjs +0 -0
- package/dist/_chunks/relationships-view.mjs +132 -0
- package/dist/_chunks/rolldown-runtime.mjs +42 -0
- package/dist/{shared/core.C_3y3eqV.d.mts → _chunks/scalar.d.mts} +13 -43
- package/dist/_chunks/scalar.mjs +84 -0
- package/dist/_chunks/utils.mjs +483 -0
- package/dist/builder/index.d.mts +11 -773
- package/dist/builder/index.mjs +631 -978
- package/dist/compute-view/index.d.mts +90 -27
- package/dist/compute-view/index.mjs +253 -83
- package/dist/compute-view/relationships-view/index.d.mts +16 -51
- package/dist/compute-view/relationships-view/index.mjs +6 -184
- package/dist/geometry/index.d.mts +2 -109
- package/dist/geometry/index.mjs +2 -327
- package/dist/index.d.mts +18 -20
- package/dist/index.mjs +27 -18
- package/dist/model/connection/deployment/index.d.mts +12 -15
- package/dist/model/connection/deployment/index.mjs +9 -2
- package/dist/model/connection/index.d.mts +14 -75
- package/dist/model/connection/index.mjs +10 -3
- package/dist/model/connection/model/index.d.mts +12 -15
- package/dist/model/connection/model/index.mjs +8 -2
- package/dist/model/index.d.mts +15 -57
- package/dist/model/index.mjs +11 -4
- package/dist/styles/index.d.mts +9 -117
- package/dist/styles/index.mjs +26 -59
- package/dist/types/RichText.d.mts +3 -0
- package/dist/types/RichText.mjs +7 -0
- package/dist/types/_aux.d.mts +3 -4
- package/dist/types/_aux.mjs +2 -7
- package/dist/types/expression-model.d.mts +6 -190
- package/dist/types/expression-model.mjs +6 -108
- package/dist/types/expression.d.mts +5 -6
- package/dist/types/expression.mjs +6 -112
- package/dist/types/fqnRef.d.mts +4 -60
- package/dist/types/fqnRef.mjs +6 -44
- package/dist/types/index.d.mts +9 -47
- package/dist/types/index.mjs +14 -16
- package/dist/types/scalar.d.mts +2 -2
- package/dist/types/scalar.mjs +7 -4
- package/dist/utils/graphology/index.d.mts +2 -1864
- package/dist/utils/graphology/index.mjs +3 -1
- package/dist/utils/index.d.mts +11 -124
- package/dist/utils/index.mjs +16 -43
- package/dist/utils/iterable/index.d.mts +9 -132
- package/dist/utils/iterable/index.mjs +2 -61
- package/dist/utils/mnemonist.d.mts +2 -0
- package/dist/utils/mnemonist.mjs +12 -0
- package/package.json +18 -22
- package/compute-view/relationships/package.json +0 -4
- package/dist/shared/core.3ZhnKAlZ.mjs +0 -106
- package/dist/shared/core.78IWAHAE.mjs +0 -332
- package/dist/shared/core.B85MJLTf.mjs +0 -5
- package/dist/shared/core.BFd1lU9R.mjs +0 -29
- package/dist/shared/core.BKlholso.mjs +0 -3
- package/dist/shared/core.BPGOjone.d.mts +0 -46
- package/dist/shared/core.BYdtmqY5.mjs +0 -1255
- package/dist/shared/core.BZCgljZd.d.mts +0 -83
- package/dist/shared/core.BbE4y-yl.mjs +0 -177
- package/dist/shared/core.BhNcrwzK.mjs +0 -7
- package/dist/shared/core.BkVA6gjl.mjs +0 -5
- package/dist/shared/core.BoYfZOBm.mjs +0 -3
- package/dist/shared/core.BsSXS-_R.mjs +0 -7
- package/dist/shared/core.BspBF3SJ.mjs +0 -3944
- package/dist/shared/core.BvPm_-u3.d.mts +0 -334
- package/dist/shared/core.C-Jdx7xo.d.mts +0 -1263
- package/dist/shared/core.C3JowhaZ.mjs +0 -32
- package/dist/shared/core.C4x8aaWa.mjs +0 -27
- package/dist/shared/core.CBLX4mT8.mjs +0 -28411
- package/dist/shared/core.CLSZtnFh.mjs +0 -69
- package/dist/shared/core.CRhT4Iio.mjs +0 -785
- package/dist/shared/core.CbT8JVYL.mjs +0 -5
- package/dist/shared/core.CdNCAwq7.mjs +0 -176
- package/dist/shared/core.ClTP6-TN.d.mts +0 -87
- package/dist/shared/core.CmGY9blO.mjs +0 -6717
- package/dist/shared/core.CmPXpJ8l.mjs +0 -21
- package/dist/shared/core.Coi_LOUZ.mjs +0 -7
- package/dist/shared/core.CqAJJpK_.mjs +0 -3
- package/dist/shared/core.Ctj2S3bD.d.mts +0 -466
- package/dist/shared/core.CywrQs86.d.mts +0 -31
- package/dist/shared/core.D00YbOhQ.d.mts +0 -300
- package/dist/shared/core.D0WZutNd.mjs +0 -94
- package/dist/shared/core.D4npX2q8.mjs +0 -18
- package/dist/shared/core.DB0Ue5Wx.d.mts +0 -70
- package/dist/shared/core.DEK-BO3_.mjs +0 -1206
- package/dist/shared/core.DH7TXqXf.mjs +0 -136
- package/dist/shared/core.DRJma0Ol.mjs +0 -22
- package/dist/shared/core.DSalPD6v.mjs +0 -1352
- package/dist/shared/core.DVfPJPJj.mjs +0 -2200
- package/dist/shared/core.DXhDWKFZ.d.mts +0 -3
- package/dist/shared/core.DbfO90vF.mjs +0 -434
- package/dist/shared/core.DcS-0zys.mjs +0 -10
- package/dist/shared/core.DeDCYTDR.d.mts +0 -98
- package/dist/shared/core.DpKY_3NF.d.mts +0 -504
- package/dist/shared/core.Dt0v3djy.d.mts +0 -41
- package/dist/shared/core.FZ305VYd.mjs +0 -21
- package/dist/shared/core.RfnaEmgA.mjs +0 -7
- package/dist/shared/core.oSV6SRfk.mjs +0 -13
- package/dist/shared/core.om36dXXW.mjs +0 -41
- package/dist/shared/core.q10OP9oJ.mjs +0 -5
- package/dist/shared/core.uFk_o9X6.mjs +0 -13
- package/dist/shared/core.xeuDd__E.mjs +0 -300
- package/dist/shared/core.xgoPk2RG.mjs +0 -4989
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { t as FqnRef } from "./fqnRef.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/types/expression.ts
|
|
4
|
+
let FqnExpr;
|
|
5
|
+
(function(_FqnExpr) {
|
|
6
|
+
function isWildcard(expr) {
|
|
7
|
+
return "wildcard" in expr && expr.wildcard === true;
|
|
8
|
+
}
|
|
9
|
+
_FqnExpr.isWildcard = isWildcard;
|
|
10
|
+
function isModelRef(ref) {
|
|
11
|
+
return "ref" in ref && FqnRef.isModelRef(ref.ref);
|
|
12
|
+
}
|
|
13
|
+
_FqnExpr.isModelRef = isModelRef;
|
|
14
|
+
function isDeploymentRef(expr) {
|
|
15
|
+
return "ref" in expr && FqnRef.isDeploymentRef(expr.ref);
|
|
16
|
+
}
|
|
17
|
+
_FqnExpr.isDeploymentRef = isDeploymentRef;
|
|
18
|
+
function isElementKindExpr(expr) {
|
|
19
|
+
return "elementKind" in expr && "isEqual" in expr;
|
|
20
|
+
}
|
|
21
|
+
_FqnExpr.isElementKindExpr = isElementKindExpr;
|
|
22
|
+
function isElementTagExpr(expr) {
|
|
23
|
+
return "elementTag" in expr && "isEqual" in expr;
|
|
24
|
+
}
|
|
25
|
+
_FqnExpr.isElementTagExpr = isElementTagExpr;
|
|
26
|
+
function isWhere(expr) {
|
|
27
|
+
return "where" in expr && is(expr.where.expr);
|
|
28
|
+
}
|
|
29
|
+
_FqnExpr.isWhere = isWhere;
|
|
30
|
+
function isCustom(expr) {
|
|
31
|
+
return "custom" in expr && (is(expr.custom.expr) || isWhere(expr.custom.expr));
|
|
32
|
+
}
|
|
33
|
+
_FqnExpr.isCustom = isCustom;
|
|
34
|
+
function is(expr) {
|
|
35
|
+
return isWildcard(expr) || isModelRef(expr) || isDeploymentRef(expr) || isElementKindExpr(expr) || isElementTagExpr(expr);
|
|
36
|
+
}
|
|
37
|
+
_FqnExpr.is = is;
|
|
38
|
+
function unwrap(expr) {
|
|
39
|
+
if (isCustom(expr)) expr = expr.custom.expr;
|
|
40
|
+
if (isWhere(expr)) expr = expr.where.expr;
|
|
41
|
+
return expr;
|
|
42
|
+
}
|
|
43
|
+
_FqnExpr.unwrap = unwrap;
|
|
44
|
+
})(FqnExpr || (FqnExpr = {}));
|
|
45
|
+
let RelationExpr;
|
|
46
|
+
(function(_RelationExpr) {
|
|
47
|
+
function isDirect(expr) {
|
|
48
|
+
return "source" in expr && "target" in expr;
|
|
49
|
+
}
|
|
50
|
+
_RelationExpr.isDirect = isDirect;
|
|
51
|
+
function isIncoming(expr) {
|
|
52
|
+
return "incoming" in expr;
|
|
53
|
+
}
|
|
54
|
+
_RelationExpr.isIncoming = isIncoming;
|
|
55
|
+
function isOutgoing(expr) {
|
|
56
|
+
return "outgoing" in expr;
|
|
57
|
+
}
|
|
58
|
+
_RelationExpr.isOutgoing = isOutgoing;
|
|
59
|
+
function isInOut(expr) {
|
|
60
|
+
return "inout" in expr;
|
|
61
|
+
}
|
|
62
|
+
_RelationExpr.isInOut = isInOut;
|
|
63
|
+
function isWhere(expr) {
|
|
64
|
+
return "where" in expr && (isDirect(expr.where.expr) || isIncoming(expr.where.expr) || isOutgoing(expr.where.expr) || isInOut(expr.where.expr));
|
|
65
|
+
}
|
|
66
|
+
_RelationExpr.isWhere = isWhere;
|
|
67
|
+
function isCustom(expr) {
|
|
68
|
+
return "customRelation" in expr;
|
|
69
|
+
}
|
|
70
|
+
_RelationExpr.isCustom = isCustom;
|
|
71
|
+
function is(expr) {
|
|
72
|
+
return isDirect(expr) || isIncoming(expr) || isOutgoing(expr) || isInOut(expr);
|
|
73
|
+
}
|
|
74
|
+
_RelationExpr.is = is;
|
|
75
|
+
function unwrap(expr) {
|
|
76
|
+
if (isCustom(expr)) expr = expr.customRelation.expr;
|
|
77
|
+
if (isWhere(expr)) expr = expr.where.expr;
|
|
78
|
+
return expr;
|
|
79
|
+
}
|
|
80
|
+
_RelationExpr.unwrap = unwrap;
|
|
81
|
+
})(RelationExpr || (RelationExpr = {}));
|
|
82
|
+
let Expression;
|
|
83
|
+
(function(_Expression) {
|
|
84
|
+
function isWhere(expr) {
|
|
85
|
+
return "where" in expr;
|
|
86
|
+
}
|
|
87
|
+
_Expression.isWhere = isWhere;
|
|
88
|
+
function isRelationWhere(expr) {
|
|
89
|
+
return RelationExpr.isWhere(expr);
|
|
90
|
+
}
|
|
91
|
+
_Expression.isRelationWhere = isRelationWhere;
|
|
92
|
+
function isFqnExprWhere(expr) {
|
|
93
|
+
return FqnExpr.isWhere(expr);
|
|
94
|
+
}
|
|
95
|
+
_Expression.isFqnExprWhere = isFqnExprWhere;
|
|
96
|
+
function isFqnExpr(expr) {
|
|
97
|
+
return FqnExpr.is(expr) || FqnExpr.isWhere(expr) || FqnExpr.isCustom(expr);
|
|
98
|
+
}
|
|
99
|
+
_Expression.isFqnExpr = isFqnExpr;
|
|
100
|
+
function isRelation(expr) {
|
|
101
|
+
return RelationExpr.is(expr) || RelationExpr.isWhere(expr) || RelationExpr.isCustom(expr);
|
|
102
|
+
}
|
|
103
|
+
_Expression.isRelation = isRelation;
|
|
104
|
+
})(Expression || (Expression = {}));
|
|
105
|
+
|
|
106
|
+
//#endregion
|
|
107
|
+
export { FqnExpr as n, RelationExpr as r, Expression as t };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { bt as IteratorLike, f as EdgeId, n as Any } from "./_aux.mjs";
|
|
2
|
+
import { T as RelationshipModel, a as DeploymentNodeModel, i as DeploymentElementModel, l as RelationshipsAccum, s as DeploymentRelationModel } from "./LikeC4Model.mjs";
|
|
3
|
+
import { n as Connection, t as customInspectSymbol } from "./const.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/model/connection/deployment/DeploymentConnectionModel.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Connection is ephemeral entity, result of a resolving relationships between source and target.
|
|
8
|
+
* Includes direct relationships and/or between their nested elements.
|
|
9
|
+
*/
|
|
10
|
+
declare class DeploymentConnectionModel<A extends Any = Any> implements Connection<DeploymentElementModel<A>, EdgeId> {
|
|
11
|
+
readonly source: DeploymentElementModel<A>;
|
|
12
|
+
readonly target: DeploymentElementModel<A>;
|
|
13
|
+
readonly relations: RelationshipsAccum<A>;
|
|
14
|
+
readonly id: EdgeId;
|
|
15
|
+
constructor(source: DeploymentElementModel<A>, target: DeploymentElementModel<A>, relations: RelationshipsAccum<A>);
|
|
16
|
+
/**
|
|
17
|
+
* Human readable expression of the connection
|
|
18
|
+
* Mostly used for testing and debugging
|
|
19
|
+
*/
|
|
20
|
+
get expression(): string;
|
|
21
|
+
private _boundary;
|
|
22
|
+
/**
|
|
23
|
+
* Common ancestor of the source and target elements.
|
|
24
|
+
* Represents the boundary of the connection.
|
|
25
|
+
*/
|
|
26
|
+
get boundary(): DeploymentNodeModel<A> | null;
|
|
27
|
+
nonEmpty(): boolean;
|
|
28
|
+
[customInspectSymbol](_depth: any, _inspectOptions: any, _inspect: any): string;
|
|
29
|
+
toString(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Check if connection contains deployment relation,
|
|
32
|
+
* that is directly connected to source or target.
|
|
33
|
+
*/
|
|
34
|
+
hasDirectDeploymentRelation(): boolean;
|
|
35
|
+
values(): IteratorLike<RelationshipModel<A> | DeploymentRelationModel<A>>;
|
|
36
|
+
/**
|
|
37
|
+
* Merge with another connections, if it has the same source and target.
|
|
38
|
+
* Returns new connection with union of relationships.
|
|
39
|
+
*/
|
|
40
|
+
mergeWith(others: DeploymentConnectionModel<A>[]): DeploymentConnectionModel<A>;
|
|
41
|
+
/**
|
|
42
|
+
* Merge with another connection, if it has the same source and target.
|
|
43
|
+
* Returns new connection with union of relationships.
|
|
44
|
+
*/
|
|
45
|
+
mergeWith(other: DeploymentConnectionModel<A>): DeploymentConnectionModel<A>;
|
|
46
|
+
difference(other: DeploymentConnectionModel<A>): DeploymentConnectionModel<A>;
|
|
47
|
+
intersect(other: DeploymentConnectionModel<A>): DeploymentConnectionModel<A>;
|
|
48
|
+
equals(other: Connection): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Creates a clone of the current `DeploymentConnectionModel` instance with optional overrides.
|
|
51
|
+
* if `null` is provided in overrides, the corresponding relation set will be empty.
|
|
52
|
+
*/
|
|
53
|
+
update(overrides?: {
|
|
54
|
+
model?: ReadonlySet<RelationshipModel<A>> | null;
|
|
55
|
+
deployment?: ReadonlySet<DeploymentRelationModel<A>> | null;
|
|
56
|
+
}): DeploymentConnectionModel<A>;
|
|
57
|
+
}
|
|
58
|
+
declare namespace find_d_exports {
|
|
59
|
+
export { findConnection, findConnectionsBetween, findConnectionsWithin };
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolve connection from source to target
|
|
63
|
+
* If direction is `both`, also look for reverse connection
|
|
64
|
+
*
|
|
65
|
+
* @default direction directed
|
|
66
|
+
*/
|
|
67
|
+
declare function findConnection<M extends Any>(source: DeploymentElementModel<M>, target: DeploymentElementModel<NoInfer<M>>, direction: 'directed'): readonly [DeploymentConnectionModel<M>] | readonly [];
|
|
68
|
+
declare function findConnection<M extends Any>(source: DeploymentElementModel<M>, target: DeploymentElementModel<NoInfer<M>>, direction: 'both'): readonly [DeploymentConnectionModel<M>, DeploymentConnectionModel<M>] | readonly [DeploymentConnectionModel<M>] | readonly [];
|
|
69
|
+
declare function findConnection<M extends Any>(source: DeploymentElementModel<M>, target: DeploymentElementModel<NoInfer<M>>, direction?: 'directed' | 'both'): readonly [DeploymentConnectionModel<M>, DeploymentConnectionModel<M>] | readonly [DeploymentConnectionModel<M>] | readonly [];
|
|
70
|
+
/**
|
|
71
|
+
* Resolve all connections between element and others
|
|
72
|
+
* By default, look for both directions.
|
|
73
|
+
*
|
|
74
|
+
* @default direction both
|
|
75
|
+
*/
|
|
76
|
+
declare function findConnectionsBetween<M extends Any>(element: DeploymentElementModel<M>, others: Iterable<DeploymentElementModel<NoInfer<M>>>, direction?: 'directed' | 'both'): readonly DeploymentConnectionModel<M>[];
|
|
77
|
+
/**
|
|
78
|
+
* Resolve all connections within a given set of elements
|
|
79
|
+
*/
|
|
80
|
+
declare function findConnectionsWithin<M extends Any>(elements: Iterable<DeploymentElementModel<M>>): readonly DeploymentConnectionModel<M>[];
|
|
81
|
+
//#endregion
|
|
82
|
+
export { DeploymentConnectionModel as a, find_d_exports as i, findConnectionsBetween as n, findConnectionsWithin as r, findConnection as t };
|