@likec4/core 1.26.1 → 1.26.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/builder/index.mjs +2 -2
- package/dist/compute-view/index.mjs +17 -5
- package/dist/index.mjs +3 -3
- package/dist/model/index.mjs +1 -1
- package/dist/shared/{core.BBJd-FqJ.mjs → core.C8xqv5sq.mjs} +1 -1
- package/dist/shared/{core.BqezHsjR.mjs → core.DvRnF4Sc.mjs} +1 -1
- package/dist/shared/{core.CcjDE4j7.mjs → core.NNojPYtn.mjs} +6 -23
- package/dist/utils/index.mjs +2 -2
- package/package.json +2 -2
- package/src/builder/Builder.with.ts +20 -339
- package/src/compute-view/dynamic-view/compute.ts +22 -43
- package/src/compute-view/utils/resolve-extended-views.ts +20 -5
package/dist/builder/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i, l, d, L as LikeC4Model } from '../shared/core.
|
|
2
|
-
import {
|
|
1
|
+
import { a as i, l, d, L as LikeC4Model } from '../shared/core.NNojPYtn.mjs';
|
|
2
|
+
import { c as t, m, n as nameFromFqn, l as l$1, d as isSameHierarchy, p as parentFqn, a as i$1, e as t$1 } from '../shared/core.DvRnF4Sc.mjs';
|
|
3
3
|
import { o, b as isElementPredicateExpr, D as DefaultElementShape, c as DefaultThemeColor, n as n$1, d as DeploymentElement, e as isScopedElementView } from '../shared/core.yND74qFI.mjs';
|
|
4
4
|
import { u, i as invariant } from '../shared/core.DRxv3HIl.mjs';
|
|
5
5
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { G as Graph, r, w as willCreateCycle, t as topologicalSortExports, i as i$1, l } from '../shared/core.
|
|
2
|
-
export { c as computeView,
|
|
3
|
-
export { c as computeRelationshipsView } from '../shared/core.
|
|
1
|
+
import { G as Graph, r, w as willCreateCycle, t as topologicalSortExports, i as i$1, a as i$2, l } from '../shared/core.NNojPYtn.mjs';
|
|
2
|
+
export { c as computeView, b as computeViews, u as unsafeComputeView } from '../shared/core.NNojPYtn.mjs';
|
|
3
|
+
export { c as computeRelationshipsView } from '../shared/core.C8xqv5sq.mjs';
|
|
4
4
|
import { i as isExtendsElementView, a as isElementView } from '../shared/core.yND74qFI.mjs';
|
|
5
|
-
import { a as i, m } from '../shared/core.
|
|
5
|
+
import { a as i, b as isNonEmptyArray, m } from '../shared/core.DvRnF4Sc.mjs';
|
|
6
6
|
import { u } from '../shared/core.DRxv3HIl.mjs';
|
|
7
7
|
|
|
8
8
|
function y(...t){return u(f,t)}function f(t,e){if(!i(e,1))return {...t};if(!i(e,2)){let{[e[0]]:r,...m}=t;return m}let o={...t};for(let r of e)delete o[r];return o}
|
|
@@ -43,9 +43,21 @@ function resolveRulesExtendedViews(unresolvedViews) {
|
|
|
43
43
|
if (!extendsFrom || !isElementView(extendsFrom)) {
|
|
44
44
|
return acc;
|
|
45
45
|
}
|
|
46
|
+
const tags = i$1([
|
|
47
|
+
...extendsFrom.tags ?? [],
|
|
48
|
+
...view.tags ?? []
|
|
49
|
+
]);
|
|
50
|
+
const links = [
|
|
51
|
+
...extendsFrom.links ?? [],
|
|
52
|
+
...view.links ?? []
|
|
53
|
+
];
|
|
46
54
|
acc[view.id] = {
|
|
47
55
|
...extendsFrom,
|
|
48
56
|
...view,
|
|
57
|
+
title: view.title ?? extendsFrom.title ?? null,
|
|
58
|
+
description: view.description ?? extendsFrom.description ?? null,
|
|
59
|
+
tags: isNonEmptyArray(tags) ? tags : null,
|
|
60
|
+
links: isNonEmptyArray(links) ? links : null,
|
|
49
61
|
rules: [...extendsFrom.rules, ...view.rules]
|
|
50
62
|
};
|
|
51
63
|
return acc;
|
|
@@ -72,7 +84,7 @@ function withReadableEdges({ edges, nodes, ...view }, separator = ":") {
|
|
|
72
84
|
function viewsWithReadableEdges({ views, ...model }) {
|
|
73
85
|
return {
|
|
74
86
|
...model,
|
|
75
|
-
views: i$
|
|
87
|
+
views: i$2(views, (v) => y(withReadableEdges(v), ["nodeIds", "edgeIds"]))
|
|
76
88
|
};
|
|
77
89
|
}
|
|
78
90
|
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { i as invariant, a as nonNullable, n as nonexhaustive } from './shared/core.DRxv3HIl.mjs';
|
|
2
2
|
export { A as AsFqn, B as BorderStyles, V as ComputedNode, W as ComputedView, S as DefaultArrowType, D as DefaultElementShape, T as DefaultLineStyle, g as DefaultPaddingSize, U as DefaultRelationshipColor, h as DefaultShapeSize, j as DefaultTextSize, c as DefaultThemeColor, d as DeploymentElement, X as DiagramNode, E as ElementKind, k as ElementShapes, f as Expr, H as ExpressionV2, I as FqnExpr, J as FqnRef, R as RelationExpr, Y as extractStep, Z as getBBoxCenter, _ as getParallelStepsPrefix, K as isAndOperator, $ as isAutoLayoutDirection, l as isCustomElement, m as isCustomRelationExpr, a0 as isDeploymentView, a1 as isDynamicView, a2 as isDynamicViewParallelSteps, p as isElement, q as isElementKindExpr, b as isElementPredicateExpr, r as isElementRef, s as isElementTagExpr, a as isElementView, t as isElementWhere, u as isExpandedElementExpr, i as isExtendsElementView, w as isInOut, v as isIncoming, L as isKindEqual, M as isNotOperator, N as isOrOperator, x as isOutgoing, O as isParticipantOperator, y as isRelation, z as isRelationExpression, C as isRelationPredicateExpr, F as isRelationWhere, e as isScopedElementView, a3 as isStepEdgeId, P as isTagEqual, a4 as isViewRuleAutoLayout, a5 as isViewRuleGlobalPredicateRef, a6 as isViewRuleGlobalStyle, a7 as isViewRuleGroup, a8 as isViewRulePredicate, a9 as isViewRuleStyle, G as isWildcard, aa as stepEdgeId, Q as whereOperatorAsPredicate } from './shared/core.yND74qFI.mjs';
|
|
3
|
-
export { C as Connection,
|
|
4
|
-
export { c as computeRelationshipsView } from './shared/core.
|
|
3
|
+
export { C as Connection, e as ConnectionModel, D as DeployedInstanceModel, f as DeploymentConnectionModel, g as DeploymentNodeModel, h as DeploymentRelationModel, E as EdgeModel, j as ElementModel, k as LikeC4DeploymentModel, L as LikeC4Model, m as LikeC4ViewModel, N as NodeModel, R as RelationshipModel, c as computeView, b as computeViews, u as unsafeComputeView } from './shared/core.NNojPYtn.mjs';
|
|
4
|
+
export { c as computeRelationshipsView } from './shared/core.C8xqv5sq.mjs';
|
|
5
5
|
export { ThemeColors, isThemeColor } from './types/index.mjs';
|
|
6
6
|
export { BiMap, DefaultWeakMap, LinkedList, MultiMap, Queue, compareRelations, delay, ireduce } from './utils/index.mjs';
|
|
7
|
-
export { D as DefaultMap, S as Stack,
|
|
7
|
+
export { D as DefaultMap, S as Stack, h as ancestorsFqn, j as commonAncestor, f as commonHead, k as compareByFqnHierarchically, o as compareFqnHierarchically, g as compareNatural, I as difference, J as equalsSet, y as getOrCreate, a as hasAtLeast, q as hierarchyDistance, r as hierarchyLevel, A as ifilter, i as ifind, B as iflat, C as imap, K as intersection, s as isAncestor, u as isDescendantOf, E as isIterable, b as isNonEmptyArray, d as isSameHierarchy, z as isString, F as isome, G as iunique, n as nameFromFqn, O as objectHash, p as parentFqn, v as sortByFqnHierarchically, w as sortNaturalByFqn, x as sortParentsFirst, N as stringHash, L as symmetricDifference, H as toArray, t as toSet, M as union } from './shared/core.DvRnF4Sc.mjs';
|
|
8
8
|
|
|
9
9
|
const { min: min$4, max: max$4 } = Math;
|
|
10
10
|
|
package/dist/model/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { C as Connection,
|
|
1
|
+
export { C as Connection, e as ConnectionModel, D as DeployedInstanceModel, f as DeploymentConnectionModel, g as DeploymentNodeModel, h as DeploymentRelationModel, E as EdgeModel, j as ElementModel, k as LikeC4DeploymentModel, L as LikeC4Model, m as LikeC4ViewModel, N as NodeModel, R as RelationshipModel, n as deploymentConnection, o as differenceConnections, p as findAscendingConnections, q as findDeepestNestedConnection, s as findDescendantConnections, v as hasSameSource, x as hasSameSourceTarget, y as hasSameTarget, z as isAnyInOut, M as isDeployedInstance, O as isDeploymentNode, A as isIncoming, B as isNestedConnection, F as isOutgoing, H as mergeConnections, I as modelConnection, J as sortConnectionsByBoundaryHierarchy, K as sortDeepestFirst } from '../shared/core.NNojPYtn.mjs';
|
|
@@ -1453,4 +1453,4 @@ function requireObject_hash () {
|
|
|
1453
1453
|
var object_hashExports = requireObject_hash();
|
|
1454
1454
|
const objectHash = /*@__PURE__*/getDefaultExportFromCjs(object_hashExports);
|
|
1455
1455
|
|
|
1456
|
-
export { ifilter as A, iflat as B, imap as C, DefaultMap as D, isIterable as E, isome as F, iunique as G, toArray as H, difference as I, equals as J, intersection as K, symmetricDifference as L, union as M, stringHash as N, objectHash as O, C as P, s as Q, a as R, Stack as S, getDefaultExportFromCjs as T, requireForeach as U, requireIterator as V, u as W, d as X, n as Y, hasIntersection as Z, i$1 as a,
|
|
1456
|
+
export { ifilter as A, iflat as B, imap as C, DefaultMap as D, isIterable as E, isome as F, iunique as G, toArray as H, difference as I, equals as J, intersection as K, symmetricDifference as L, union as M, stringHash as N, objectHash as O, C as P, s as Q, a as R, Stack as S, getDefaultExportFromCjs as T, requireForeach as U, requireIterator as V, u as W, d as X, n as Y, hasIntersection as Z, i$1 as a, isNonEmptyArray as b, t$1 as c, isSameHierarchy as d, t as e, commonHead as f, compareNatural as g, ancestorsFqn as h, ifind as i, commonAncestor as j, compareByFqnHierarchically as k, l, m, nameFromFqn as n, compareFqnHierarchically as o, parentFqn as p, hierarchyDistance as q, hierarchyLevel as r, isAncestor as s, toSet as t, isDescendantOf as u, sortByFqnHierarchically as v, sortNaturalByFqn as w, sortParentsFirst as x, getOrCreate as y, isString as z };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { D as DefaultElementShape, c as DefaultThemeColor, h as DefaultShapeSize, ab as o$8, t as isElementWhere, Q as whereOperatorAsPredicate, G as isWildcard, q as isElementKindExpr, s as isElementTagExpr, n as n$4, u as isExpandedElementExpr, r as isElementRef, l as isCustomElement, a9 as isViewRuleStyle, ac as y$2, V as ComputedNode, E as ElementKind, S as DefaultArrowType, I as FqnExpr, R as RelationExpr, o as o$9, a8 as isViewRulePredicate, a4 as isViewRuleAutoLayout, a7 as isViewRuleGroup, a5 as isViewRuleGlobalPredicateRef, a6 as isViewRuleGlobalStyle, aa as stepEdgeId, a2 as isDynamicViewParallelSteps, T as DefaultLineStyle, U as DefaultRelationshipColor, x as isOutgoing$1, v as isIncoming$1, w as isInOut, y as isRelation, F as isRelationWhere, m as isCustomRelationExpr, C as isRelationPredicateExpr, b as isElementPredicateExpr, a as isElementView, a1 as isDynamicView, a0 as isDeploymentView, d as DeploymentElement, Y as extractStep, a3 as isStepEdgeId, e as isScopedElementView } from './core.yND74qFI.mjs';
|
|
2
|
-
import { P as C, Q as s$1, R as a$5,
|
|
2
|
+
import { P as C, Q as s$1, R as a$5, r as hierarchyLevel, s as isAncestor, j as commonAncestor, w as sortNaturalByFqn, m as m$3, f as commonHead, T as getDefaultExportFromCjs, U as requireForeach, V as requireIterator, W as u$7, O as objectHash, K as intersection, I as difference, M as union, N as stringHash, J as equals, u as isDescendantOf, z as isString, d as isSameHierarchy, F as isome, A as ifilter, E as isIterable, t as toSet, x as sortParentsFirst, H as toArray, D as DefaultMap, C as imap, a as i$9, X as d$6, p as parentFqn, Y as n$5, k as compareByFqnHierarchically, b as isNonEmptyArray, g as compareNatural, n as nameFromFqn, c as t$6, l as l$7, Z as hasIntersection, v as sortByFqnHierarchically, h as ancestorsFqn, S as Stack, G as iunique, B as iflat, y as getOrCreate, i as ifind } from './core.DvRnF4Sc.mjs';
|
|
3
3
|
import { u as u$6, a as nonNullable, i as invariant, n as nonexhaustive } from './core.DRxv3HIl.mjs';
|
|
4
4
|
|
|
5
5
|
function y$1(t,i){let a=i.length-t.length;if(a===1){let[n,...r]=i;return C(n,{lazy:t,lazyArgs:r})}if(a===0){let n={lazy:t,lazyArgs:i};return Object.assign(e=>C(e,n),n)}throw new Error("Wrong number of arguments")}
|
|
@@ -4653,11 +4653,8 @@ class DynamicViewCompute {
|
|
|
4653
4653
|
relations,
|
|
4654
4654
|
tags,
|
|
4655
4655
|
navigateTo: derivedNavigateTo,
|
|
4656
|
-
head,
|
|
4657
|
-
tail,
|
|
4658
4656
|
color,
|
|
4659
|
-
line
|
|
4660
|
-
notation
|
|
4657
|
+
line
|
|
4661
4658
|
} = this.findRelations(source, target);
|
|
4662
4659
|
const navigateTo = n$2(stepNavigateTo) && stepNavigateTo !== this.view.id ? stepNavigateTo : derivedNavigateTo;
|
|
4663
4660
|
this.steps.push({
|
|
@@ -4670,11 +4667,8 @@ class DynamicViewCompute {
|
|
|
4670
4667
|
isBackward: isBackward ?? false,
|
|
4671
4668
|
...navigateTo ? { navigateTo } : {},
|
|
4672
4669
|
...tags ? { tags } : {},
|
|
4673
|
-
...head ? { head } : {},
|
|
4674
|
-
...tail ? { tail } : {},
|
|
4675
4670
|
...color ? { color } : {},
|
|
4676
|
-
...line ? { line } : {}
|
|
4677
|
-
...notation ? { notation } : {}
|
|
4671
|
+
...line ? { line } : {}
|
|
4678
4672
|
});
|
|
4679
4673
|
}
|
|
4680
4674
|
compute() {
|
|
@@ -4793,11 +4787,8 @@ class DynamicViewCompute {
|
|
|
4793
4787
|
tags: null,
|
|
4794
4788
|
relations: null,
|
|
4795
4789
|
navigateTo: null,
|
|
4796
|
-
tail: null,
|
|
4797
|
-
head: null,
|
|
4798
4790
|
color: null,
|
|
4799
|
-
line: null
|
|
4800
|
-
notation: null
|
|
4791
|
+
line: null
|
|
4801
4792
|
};
|
|
4802
4793
|
}
|
|
4803
4794
|
const alltags = C(
|
|
@@ -4822,17 +4813,12 @@ class DynamicViewCompute {
|
|
|
4822
4813
|
relationships,
|
|
4823
4814
|
l$5((acc, { title, $relationship: r }) => {
|
|
4824
4815
|
n$2(title) && acc.title.add(title);
|
|
4825
|
-
n$2(r.tail) && acc.tail.add(r.tail);
|
|
4826
|
-
n$2(r.head) && acc.head.add(r.head);
|
|
4827
4816
|
n$2(r.color) && acc.color.add(r.color);
|
|
4828
4817
|
n$2(r.line) && acc.line.add(r.line);
|
|
4829
4818
|
return acc;
|
|
4830
4819
|
}, {
|
|
4831
|
-
tail: /* @__PURE__ */ new Set(),
|
|
4832
|
-
head: /* @__PURE__ */ new Set(),
|
|
4833
4820
|
color: /* @__PURE__ */ new Set(),
|
|
4834
4821
|
line: /* @__PURE__ */ new Set(),
|
|
4835
|
-
notation: /* @__PURE__ */ new Set(),
|
|
4836
4822
|
title: /* @__PURE__ */ new Set()
|
|
4837
4823
|
})
|
|
4838
4824
|
);
|
|
@@ -4841,11 +4827,8 @@ class DynamicViewCompute {
|
|
|
4841
4827
|
relations,
|
|
4842
4828
|
navigateTo: navigateTo ?? null,
|
|
4843
4829
|
title: t$2([...commonProperties.title]) ?? null,
|
|
4844
|
-
tail: t$2([...commonProperties.tail]) ?? null,
|
|
4845
|
-
head: t$2([...commonProperties.head]) ?? null,
|
|
4846
4830
|
color: t$2([...commonProperties.color]) ?? null,
|
|
4847
|
-
line: t$2([...commonProperties.line]) ?? null
|
|
4848
|
-
notation: t$2([...commonProperties.notation]) ?? null
|
|
4831
|
+
line: t$2([...commonProperties.line]) ?? null
|
|
4849
4832
|
};
|
|
4850
4833
|
}
|
|
4851
4834
|
}
|
|
@@ -7476,4 +7459,4 @@ class LikeC4Model {
|
|
|
7476
7459
|
});
|
|
7477
7460
|
})(LikeC4Model || (LikeC4Model = {}));
|
|
7478
7461
|
|
|
7479
|
-
export {
|
|
7462
|
+
export { isIncoming as A, isNestedConnection as B, Connection as C, DeployedInstanceModel as D, EdgeModel as E, isOutgoing as F, Graph as G, mergeConnections as H, find$1 as I, sortConnectionsByBoundaryHierarchy as J, sortDeepestFirst as K, LikeC4Model as L, isDeployedInstance as M, NodeModel as N, isDeploymentNode as O, RelationshipModel as R, i$3 as a, computeViews as b, computeView as c, d$2 as d, ConnectionModel as e, DeploymentConnectionModel as f, DeploymentNodeModel as g, DeploymentRelationModel as h, i$8 as i, ElementModel as j, LikeC4DeploymentModel as k, l$3 as l, LikeC4ViewModel as m, find as n, differenceConnections as o, findAscendingConnections as p, findDeepestNestedConnection as q, r$3 as r, findDescendantConnections as s, topologicalSortExports as t, unsafeComputeView as u, hasSameSource as v, willCreateCycle as w, hasSameSourceTarget as x, hasSameTarget as y, isAnyInOut as z };
|
package/dist/utils/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { U as requireForeach, T as getDefaultExportFromCjs, V as requireIterator,
|
|
2
|
-
export { D as DefaultMap, S as Stack,
|
|
1
|
+
import { U as requireForeach, T as getDefaultExportFromCjs, V as requireIterator, e as t, Y as n, j as commonAncestor, o as compareFqnHierarchically } from '../shared/core.DvRnF4Sc.mjs';
|
|
2
|
+
export { D as DefaultMap, S as Stack, h as ancestorsFqn, f as commonHead, k as compareByFqnHierarchically, g as compareNatural, I as difference, J as equalsSet, y as getOrCreate, a as hasAtLeast, q as hierarchyDistance, r as hierarchyLevel, A as ifilter, i as ifind, B as iflat, C as imap, K as intersection, s as isAncestor, u as isDescendantOf, E as isIterable, b as isNonEmptyArray, d as isSameHierarchy, z as isString, F as isome, G as iunique, n as nameFromFqn, O as objectHash, p as parentFqn, v as sortByFqnHierarchically, w as sortNaturalByFqn, x as sortParentsFirst, N as stringHash, L as symmetricDifference, H as toArray, t as toSet, M as union } from '../shared/core.DvRnF4Sc.mjs';
|
|
3
3
|
import { i as invariant } from '../shared/core.DRxv3HIl.mjs';
|
|
4
4
|
|
|
5
5
|
function o(r,n){let e=Math.ceil(r),t=Math.floor(n);if(t<e)throw new RangeError(`randomInteger: The range [${r.toString()},${n.toString()}] contains no integer`);return Math.floor(Math.random()*(t-e+1)+e)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@likec4/core",
|
|
3
|
-
"version": "1.26.
|
|
3
|
+
"version": "1.26.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"homepage": "https://likec4.dev",
|
|
6
6
|
"author": "Denis Davydkov <denis@davydkov.com>",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"typescript": "5.8.2",
|
|
97
97
|
"unbuild": "^3.3.1",
|
|
98
98
|
"vitest": "^3.0.8",
|
|
99
|
-
"@likec4/tsconfig": "1.26.
|
|
99
|
+
"@likec4/tsconfig": "1.26.2"
|
|
100
100
|
},
|
|
101
101
|
"scripts": {
|
|
102
102
|
"typecheck": "tsc --noEmit",
|
|
@@ -5,39 +5,39 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
5
5
|
with<A extends AnyTypes>(): Builder<A>
|
|
6
6
|
|
|
7
7
|
with<
|
|
8
|
-
A extends AnyTypes
|
|
8
|
+
A extends AnyTypes,
|
|
9
9
|
>(
|
|
10
|
-
op1: (input: Builder<T>) => Builder<A
|
|
10
|
+
op1: (input: Builder<T>) => Builder<A>,
|
|
11
11
|
): Builder<A>
|
|
12
12
|
|
|
13
13
|
with<
|
|
14
14
|
A extends AnyTypes,
|
|
15
|
-
B extends AnyTypes
|
|
15
|
+
B extends AnyTypes,
|
|
16
16
|
>(
|
|
17
17
|
op1: (input: Builder<T>) => Builder<A>,
|
|
18
|
-
op2: (input: Builder<A>) => Builder<B
|
|
18
|
+
op2: (input: Builder<A>) => Builder<B>,
|
|
19
19
|
): Builder<B>
|
|
20
20
|
|
|
21
21
|
with<
|
|
22
22
|
A extends AnyTypes,
|
|
23
23
|
B extends AnyTypes,
|
|
24
|
-
C extends AnyTypes
|
|
24
|
+
C extends AnyTypes,
|
|
25
25
|
>(
|
|
26
26
|
op1: (input: Builder<T>) => Builder<A>,
|
|
27
27
|
op2: (input: Builder<A>) => Builder<B>,
|
|
28
|
-
op3: (input: Builder<B>) => Builder<C
|
|
28
|
+
op3: (input: Builder<B>) => Builder<C>,
|
|
29
29
|
): Builder<C>
|
|
30
30
|
|
|
31
31
|
with<
|
|
32
32
|
A extends AnyTypes,
|
|
33
33
|
B extends AnyTypes,
|
|
34
34
|
C extends AnyTypes,
|
|
35
|
-
D extends AnyTypes
|
|
35
|
+
D extends AnyTypes,
|
|
36
36
|
>(
|
|
37
37
|
op1: (input: Builder<T>) => Builder<A>,
|
|
38
38
|
op2: (input: Builder<A>) => Builder<B>,
|
|
39
39
|
op3: (input: Builder<B>) => Builder<C>,
|
|
40
|
-
op4: (input: Builder<C>) => Builder<D
|
|
40
|
+
op4: (input: Builder<C>) => Builder<D>,
|
|
41
41
|
): Builder<D>
|
|
42
42
|
|
|
43
43
|
with<
|
|
@@ -45,13 +45,13 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
45
45
|
B extends AnyTypes,
|
|
46
46
|
C extends AnyTypes,
|
|
47
47
|
D extends AnyTypes,
|
|
48
|
-
E extends AnyTypes
|
|
48
|
+
E extends AnyTypes,
|
|
49
49
|
>(
|
|
50
50
|
op1: (input: Builder<T>) => Builder<A>,
|
|
51
51
|
op2: (input: Builder<A>) => Builder<B>,
|
|
52
52
|
op3: (input: Builder<B>) => Builder<C>,
|
|
53
53
|
op4: (input: Builder<C>) => Builder<D>,
|
|
54
|
-
op5: (input: Builder<D>) => Builder<E
|
|
54
|
+
op5: (input: Builder<D>) => Builder<E>,
|
|
55
55
|
): Builder<E>
|
|
56
56
|
|
|
57
57
|
with<
|
|
@@ -60,14 +60,14 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
60
60
|
C extends AnyTypes,
|
|
61
61
|
D extends AnyTypes,
|
|
62
62
|
E extends AnyTypes,
|
|
63
|
-
F extends AnyTypes
|
|
63
|
+
F extends AnyTypes,
|
|
64
64
|
>(
|
|
65
65
|
op1: (input: Builder<T>) => Builder<A>,
|
|
66
66
|
op2: (input: Builder<A>) => Builder<B>,
|
|
67
67
|
op3: (input: Builder<B>) => Builder<C>,
|
|
68
68
|
op4: (input: Builder<C>) => Builder<D>,
|
|
69
69
|
op5: (input: Builder<D>) => Builder<E>,
|
|
70
|
-
op6: (input: Builder<E>) => Builder<F
|
|
70
|
+
op6: (input: Builder<E>) => Builder<F>,
|
|
71
71
|
): Builder<F>
|
|
72
72
|
|
|
73
73
|
with<
|
|
@@ -77,7 +77,7 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
77
77
|
D extends AnyTypes,
|
|
78
78
|
E extends AnyTypes,
|
|
79
79
|
F extends AnyTypes,
|
|
80
|
-
G extends AnyTypes
|
|
80
|
+
G extends AnyTypes,
|
|
81
81
|
>(
|
|
82
82
|
op1: (input: Builder<T>) => Builder<A>,
|
|
83
83
|
op2: (input: Builder<A>) => Builder<B>,
|
|
@@ -85,7 +85,7 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
85
85
|
op4: (input: Builder<C>) => Builder<D>,
|
|
86
86
|
op5: (input: Builder<D>) => Builder<E>,
|
|
87
87
|
op6: (input: Builder<E>) => Builder<F>,
|
|
88
|
-
op7: (input: Builder<F>) => Builder<G
|
|
88
|
+
op7: (input: Builder<F>) => Builder<G>,
|
|
89
89
|
): Builder<G>
|
|
90
90
|
|
|
91
91
|
with<
|
|
@@ -96,7 +96,7 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
96
96
|
E extends AnyTypes,
|
|
97
97
|
F extends AnyTypes,
|
|
98
98
|
G extends AnyTypes,
|
|
99
|
-
H extends AnyTypes
|
|
99
|
+
H extends AnyTypes,
|
|
100
100
|
>(
|
|
101
101
|
op1: (input: Builder<T>) => Builder<A>,
|
|
102
102
|
op2: (input: Builder<A>) => Builder<B>,
|
|
@@ -105,7 +105,7 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
105
105
|
op5: (input: Builder<D>) => Builder<E>,
|
|
106
106
|
op6: (input: Builder<E>) => Builder<F>,
|
|
107
107
|
op7: (input: Builder<F>) => Builder<G>,
|
|
108
|
-
op8: (input: Builder<G>) => Builder<H
|
|
108
|
+
op8: (input: Builder<G>) => Builder<H>,
|
|
109
109
|
): Builder<H>
|
|
110
110
|
|
|
111
111
|
with<
|
|
@@ -117,7 +117,7 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
117
117
|
F extends AnyTypes,
|
|
118
118
|
G extends AnyTypes,
|
|
119
119
|
H extends AnyTypes,
|
|
120
|
-
I extends AnyTypes
|
|
120
|
+
I extends AnyTypes,
|
|
121
121
|
>(
|
|
122
122
|
op1: (input: Builder<T>) => Builder<A>,
|
|
123
123
|
op2: (input: Builder<A>) => Builder<B>,
|
|
@@ -127,7 +127,7 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
127
127
|
op6: (input: Builder<E>) => Builder<F>,
|
|
128
128
|
op7: (input: Builder<F>) => Builder<G>,
|
|
129
129
|
op8: (input: Builder<G>) => Builder<H>,
|
|
130
|
-
op9: (input: Builder<H>) => Builder<I
|
|
130
|
+
op9: (input: Builder<H>) => Builder<I>,
|
|
131
131
|
): Builder<I>
|
|
132
132
|
|
|
133
133
|
with<
|
|
@@ -140,7 +140,7 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
140
140
|
G extends AnyTypes,
|
|
141
141
|
H extends AnyTypes,
|
|
142
142
|
I extends AnyTypes,
|
|
143
|
-
J extends AnyTypes
|
|
143
|
+
J extends AnyTypes,
|
|
144
144
|
>(
|
|
145
145
|
op1: (input: Builder<T>) => Builder<A>,
|
|
146
146
|
op2: (input: Builder<A>) => Builder<B>,
|
|
@@ -151,325 +151,6 @@ export interface BuilderMethods<T extends AnyTypes> {
|
|
|
151
151
|
op7: (input: Builder<F>) => Builder<G>,
|
|
152
152
|
op8: (input: Builder<G>) => Builder<H>,
|
|
153
153
|
op9: (input: Builder<H>) => Builder<I>,
|
|
154
|
-
op10: (input: Builder<I>) => Builder<J
|
|
154
|
+
op10: (input: Builder<I>) => Builder<J>,
|
|
155
155
|
): Builder<J>
|
|
156
|
-
|
|
157
|
-
// /**
|
|
158
|
-
// * Add model to the builder
|
|
159
|
-
// */
|
|
160
|
-
// model<
|
|
161
|
-
// A extends AnyTypes
|
|
162
|
-
// >(
|
|
163
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>
|
|
164
|
-
// ): Builder<A>
|
|
165
|
-
|
|
166
|
-
// model<
|
|
167
|
-
// A extends AnyTypes,
|
|
168
|
-
// B extends AnyTypes
|
|
169
|
-
// >(
|
|
170
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
171
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>
|
|
172
|
-
// ): Builder<B>
|
|
173
|
-
// model<
|
|
174
|
-
// A extends AnyTypes,
|
|
175
|
-
// B extends AnyTypes,
|
|
176
|
-
// C extends AnyTypes
|
|
177
|
-
// >(
|
|
178
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
179
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
180
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>
|
|
181
|
-
// ): Builder<C>
|
|
182
|
-
|
|
183
|
-
// model<
|
|
184
|
-
// A extends AnyTypes,
|
|
185
|
-
// B extends AnyTypes,
|
|
186
|
-
// C extends AnyTypes,
|
|
187
|
-
// D extends AnyTypes
|
|
188
|
-
// >(
|
|
189
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
190
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
191
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
192
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>
|
|
193
|
-
// ): Builder<D>
|
|
194
|
-
|
|
195
|
-
// model<
|
|
196
|
-
// A extends AnyTypes,
|
|
197
|
-
// B extends AnyTypes,
|
|
198
|
-
// C extends AnyTypes,
|
|
199
|
-
// D extends AnyTypes,
|
|
200
|
-
// E extends AnyTypes
|
|
201
|
-
// >(
|
|
202
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
203
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
204
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
205
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
206
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>
|
|
207
|
-
// ): Builder<E>
|
|
208
|
-
|
|
209
|
-
// model<
|
|
210
|
-
// A extends AnyTypes,
|
|
211
|
-
// B extends AnyTypes,
|
|
212
|
-
// C extends AnyTypes,
|
|
213
|
-
// D extends AnyTypes,
|
|
214
|
-
// E extends AnyTypes,
|
|
215
|
-
// F extends AnyTypes
|
|
216
|
-
// >(
|
|
217
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
218
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
219
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
220
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
221
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
|
|
222
|
-
// op6: (input: ModelBuilder<E>) => ModelBuilder<F>
|
|
223
|
-
// ): Builder<F>
|
|
224
|
-
|
|
225
|
-
// model<
|
|
226
|
-
// A extends AnyTypes,
|
|
227
|
-
// B extends AnyTypes,
|
|
228
|
-
// C extends AnyTypes,
|
|
229
|
-
// D extends AnyTypes,
|
|
230
|
-
// E extends AnyTypes,
|
|
231
|
-
// F extends AnyTypes,
|
|
232
|
-
// G extends AnyTypes
|
|
233
|
-
// >(
|
|
234
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
235
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
236
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
237
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
238
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
|
|
239
|
-
// op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
|
|
240
|
-
// op7: (input: ModelBuilder<F>) => ModelBuilder<G>
|
|
241
|
-
// ): Builder<G>
|
|
242
|
-
|
|
243
|
-
// model<
|
|
244
|
-
// A extends AnyTypes,
|
|
245
|
-
// B extends AnyTypes,
|
|
246
|
-
// C extends AnyTypes,
|
|
247
|
-
// D extends AnyTypes,
|
|
248
|
-
// E extends AnyTypes,
|
|
249
|
-
// F extends AnyTypes,
|
|
250
|
-
// G extends AnyTypes,
|
|
251
|
-
// H extends AnyTypes
|
|
252
|
-
// >(
|
|
253
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
254
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
255
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
256
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
257
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
|
|
258
|
-
// op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
|
|
259
|
-
// op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
|
|
260
|
-
// op8: (input: ModelBuilder<G>) => ModelBuilder<H>
|
|
261
|
-
// ): Builder<H>
|
|
262
|
-
|
|
263
|
-
// model<
|
|
264
|
-
// A extends AnyTypes,
|
|
265
|
-
// B extends AnyTypes,
|
|
266
|
-
// C extends AnyTypes,
|
|
267
|
-
// D extends AnyTypes,
|
|
268
|
-
// E extends AnyTypes,
|
|
269
|
-
// F extends AnyTypes,
|
|
270
|
-
// G extends AnyTypes,
|
|
271
|
-
// H extends AnyTypes,
|
|
272
|
-
// I extends AnyTypes
|
|
273
|
-
// >(
|
|
274
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
275
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
276
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
277
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
278
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
|
|
279
|
-
// op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
|
|
280
|
-
// op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
|
|
281
|
-
// op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
|
|
282
|
-
// op9: (input: ModelBuilder<H>) => ModelBuilder<I>
|
|
283
|
-
// ): Builder<I>
|
|
284
|
-
|
|
285
|
-
// model<
|
|
286
|
-
// A extends AnyTypes,
|
|
287
|
-
// B extends AnyTypes,
|
|
288
|
-
// C extends AnyTypes,
|
|
289
|
-
// D extends AnyTypes,
|
|
290
|
-
// E extends AnyTypes,
|
|
291
|
-
// F extends AnyTypes,
|
|
292
|
-
// G extends AnyTypes,
|
|
293
|
-
// H extends AnyTypes,
|
|
294
|
-
// I extends AnyTypes,
|
|
295
|
-
// J extends AnyTypes
|
|
296
|
-
// >(
|
|
297
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
298
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
299
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
300
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
301
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
|
|
302
|
-
// op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
|
|
303
|
-
// op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
|
|
304
|
-
// op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
|
|
305
|
-
// op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
|
|
306
|
-
// op10: (input: ModelBuilder<I>) => ModelBuilder<J>
|
|
307
|
-
// ): Builder<J>
|
|
308
|
-
|
|
309
|
-
// model<
|
|
310
|
-
// A extends AnyTypes,
|
|
311
|
-
// B extends AnyTypes,
|
|
312
|
-
// C extends AnyTypes,
|
|
313
|
-
// D extends AnyTypes,
|
|
314
|
-
// E extends AnyTypes,
|
|
315
|
-
// F extends AnyTypes,
|
|
316
|
-
// G extends AnyTypes,
|
|
317
|
-
// H extends AnyTypes,
|
|
318
|
-
// I extends AnyTypes,
|
|
319
|
-
// J extends AnyTypes,
|
|
320
|
-
// K extends AnyTypes
|
|
321
|
-
// >(
|
|
322
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
323
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
324
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
325
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
326
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
|
|
327
|
-
// op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
|
|
328
|
-
// op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
|
|
329
|
-
// op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
|
|
330
|
-
// op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
|
|
331
|
-
// op10: (input: ModelBuilder<I>) => ModelBuilder<J>,
|
|
332
|
-
// op11: (input: ModelBuilder<J>) => ModelBuilder<K>
|
|
333
|
-
// ): Builder<K>
|
|
334
|
-
|
|
335
|
-
// model<
|
|
336
|
-
// A extends AnyTypes,
|
|
337
|
-
// B extends AnyTypes,
|
|
338
|
-
// C extends AnyTypes,
|
|
339
|
-
// D extends AnyTypes,
|
|
340
|
-
// E extends AnyTypes,
|
|
341
|
-
// F extends AnyTypes,
|
|
342
|
-
// G extends AnyTypes,
|
|
343
|
-
// H extends AnyTypes,
|
|
344
|
-
// I extends AnyTypes,
|
|
345
|
-
// J extends AnyTypes,
|
|
346
|
-
// K extends AnyTypes,
|
|
347
|
-
// L extends AnyTypes
|
|
348
|
-
// >(
|
|
349
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
350
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
351
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
352
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
353
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
|
|
354
|
-
// op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
|
|
355
|
-
// op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
|
|
356
|
-
// op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
|
|
357
|
-
// op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
|
|
358
|
-
// op10: (input: ModelBuilder<I>) => ModelBuilder<J>,
|
|
359
|
-
// op11: (input: ModelBuilder<J>) => ModelBuilder<K>,
|
|
360
|
-
// op12: (input: ModelBuilder<K>) => ModelBuilder<L>
|
|
361
|
-
// ): Builder<L>
|
|
362
|
-
|
|
363
|
-
// model<
|
|
364
|
-
// A extends AnyTypes,
|
|
365
|
-
// B extends AnyTypes,
|
|
366
|
-
// C extends AnyTypes,
|
|
367
|
-
// D extends AnyTypes,
|
|
368
|
-
// E extends AnyTypes,
|
|
369
|
-
// F extends AnyTypes,
|
|
370
|
-
// G extends AnyTypes,
|
|
371
|
-
// H extends AnyTypes,
|
|
372
|
-
// I extends AnyTypes,
|
|
373
|
-
// J extends AnyTypes,
|
|
374
|
-
// K extends AnyTypes,
|
|
375
|
-
// L extends AnyTypes,
|
|
376
|
-
// M extends AnyTypes
|
|
377
|
-
// >(
|
|
378
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
379
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
380
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
381
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
382
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
|
|
383
|
-
// op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
|
|
384
|
-
// op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
|
|
385
|
-
// op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
|
|
386
|
-
// op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
|
|
387
|
-
// op10: (input: ModelBuilder<I>) => ModelBuilder<J>,
|
|
388
|
-
// op11: (input: ModelBuilder<J>) => ModelBuilder<K>,
|
|
389
|
-
// op12: (input: ModelBuilder<K>) => ModelBuilder<L>,
|
|
390
|
-
// op13: (input: ModelBuilder<L>) => ModelBuilder<M>
|
|
391
|
-
// ): Builder<M>
|
|
392
|
-
|
|
393
|
-
// model<
|
|
394
|
-
// A extends AnyTypes,
|
|
395
|
-
// B extends AnyTypes,
|
|
396
|
-
// C extends AnyTypes,
|
|
397
|
-
// D extends AnyTypes,
|
|
398
|
-
// E extends AnyTypes,
|
|
399
|
-
// F extends AnyTypes,
|
|
400
|
-
// G extends AnyTypes,
|
|
401
|
-
// H extends AnyTypes,
|
|
402
|
-
// I extends AnyTypes,
|
|
403
|
-
// J extends AnyTypes,
|
|
404
|
-
// K extends AnyTypes,
|
|
405
|
-
// L extends AnyTypes,
|
|
406
|
-
// M extends AnyTypes,
|
|
407
|
-
// N extends AnyTypes
|
|
408
|
-
// >(
|
|
409
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
410
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
411
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
412
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
413
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
|
|
414
|
-
// op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
|
|
415
|
-
// op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
|
|
416
|
-
// op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
|
|
417
|
-
// op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
|
|
418
|
-
// op10: (input: ModelBuilder<I>) => ModelBuilder<J>,
|
|
419
|
-
// op11: (input: ModelBuilder<J>) => ModelBuilder<K>,
|
|
420
|
-
// op12: (input: ModelBuilder<K>) => ModelBuilder<L>,
|
|
421
|
-
// op13: (input: ModelBuilder<L>) => ModelBuilder<M>,
|
|
422
|
-
// op14: (input: ModelBuilder<M>) => ModelBuilder<N>
|
|
423
|
-
// ): Builder<N>
|
|
424
|
-
|
|
425
|
-
// model<
|
|
426
|
-
// A extends AnyTypes,
|
|
427
|
-
// B extends AnyTypes,
|
|
428
|
-
// C extends AnyTypes,
|
|
429
|
-
// D extends AnyTypes,
|
|
430
|
-
// E extends AnyTypes,
|
|
431
|
-
// F extends AnyTypes,
|
|
432
|
-
// G extends AnyTypes,
|
|
433
|
-
// H extends AnyTypes,
|
|
434
|
-
// I extends AnyTypes,
|
|
435
|
-
// J extends AnyTypes,
|
|
436
|
-
// K extends AnyTypes,
|
|
437
|
-
// L extends AnyTypes,
|
|
438
|
-
// M extends AnyTypes,
|
|
439
|
-
// N extends AnyTypes,
|
|
440
|
-
// O extends AnyTypes
|
|
441
|
-
// >(
|
|
442
|
-
// op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
|
|
443
|
-
// op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
|
|
444
|
-
// op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
|
|
445
|
-
// op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
|
|
446
|
-
// op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
|
|
447
|
-
// op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
|
|
448
|
-
// op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
|
|
449
|
-
// op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
|
|
450
|
-
// op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
|
|
451
|
-
// op10: (input: ModelBuilder<I>) => ModelBuilder<J>,
|
|
452
|
-
// op11: (input: ModelBuilder<J>) => ModelBuilder<K>,
|
|
453
|
-
// op12: (input: ModelBuilder<K>) => ModelBuilder<L>,
|
|
454
|
-
// op13: (input: ModelBuilder<L>) => ModelBuilder<M>,
|
|
455
|
-
// op14: (input: ModelBuilder<M>) => ModelBuilder<N>,
|
|
456
|
-
// op15: (input: ModelBuilder<N>) => ModelBuilder<O>
|
|
457
|
-
// ): Builder<O>
|
|
458
|
-
|
|
459
|
-
// /**
|
|
460
|
-
// * Add deployment model to the builder
|
|
461
|
-
// */
|
|
462
|
-
// deployment<
|
|
463
|
-
// A extends AnyTypes
|
|
464
|
-
// >(
|
|
465
|
-
// op1: (input: DeploymentModelBuilder<T>) => DeploymentModelBuilder<A>
|
|
466
|
-
// ): Builder<A>
|
|
467
|
-
|
|
468
|
-
// deployment<
|
|
469
|
-
// A extends AnyTypes,
|
|
470
|
-
// B extends AnyTypes
|
|
471
|
-
// >(
|
|
472
|
-
// op1: (input: DeploymentModelBuilder<T>) => DeploymentModelBuilder<A>,
|
|
473
|
-
// op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>
|
|
474
|
-
// ): Builder<B>
|
|
475
156
|
}
|
|
@@ -8,22 +8,22 @@ import {
|
|
|
8
8
|
type Color,
|
|
9
9
|
type ComputedDynamicView,
|
|
10
10
|
type ComputedEdge,
|
|
11
|
-
DefaultArrowType,
|
|
12
|
-
DefaultLineStyle,
|
|
13
|
-
DefaultRelationshipColor,
|
|
14
11
|
type DynamicView,
|
|
15
12
|
type DynamicViewStep,
|
|
16
|
-
isDynamicViewParallelSteps,
|
|
17
|
-
isViewRuleAutoLayout,
|
|
18
|
-
isViewRulePredicate,
|
|
19
13
|
type NonEmptyArray,
|
|
20
14
|
type RelationId,
|
|
21
15
|
type RelationshipArrowType,
|
|
22
16
|
type RelationshipLineType,
|
|
23
17
|
type StepEdgeId,
|
|
24
|
-
stepEdgeId,
|
|
25
18
|
type Tag,
|
|
26
|
-
type ViewId
|
|
19
|
+
type ViewId,
|
|
20
|
+
DefaultArrowType,
|
|
21
|
+
DefaultLineStyle,
|
|
22
|
+
DefaultRelationshipColor,
|
|
23
|
+
isDynamicViewParallelSteps,
|
|
24
|
+
isViewRuleAutoLayout,
|
|
25
|
+
isViewRulePredicate,
|
|
26
|
+
stepEdgeId,
|
|
27
27
|
} from '../../types'
|
|
28
28
|
import { ancestorsFqn, commonAncestor, parentFqn } from '../../utils/fqn'
|
|
29
29
|
import { applyCustomElementProperties } from '../utils/applyCustomElementProperties'
|
|
@@ -62,7 +62,7 @@ class DynamicViewCompute {
|
|
|
62
62
|
|
|
63
63
|
constructor(
|
|
64
64
|
protected model: LikeC4Model,
|
|
65
|
-
protected view: DynamicView
|
|
65
|
+
protected view: DynamicView,
|
|
66
66
|
) {}
|
|
67
67
|
|
|
68
68
|
private addStep(
|
|
@@ -75,7 +75,7 @@ class DynamicViewCompute {
|
|
|
75
75
|
...step
|
|
76
76
|
}: DynamicViewStep,
|
|
77
77
|
index: number,
|
|
78
|
-
parent?: number
|
|
78
|
+
parent?: number,
|
|
79
79
|
) {
|
|
80
80
|
const id = parent ? stepEdgeId(parent, index) : stepEdgeId(index)
|
|
81
81
|
const source = this.model.element(stepSource)
|
|
@@ -89,11 +89,8 @@ class DynamicViewCompute {
|
|
|
89
89
|
relations,
|
|
90
90
|
tags,
|
|
91
91
|
navigateTo: derivedNavigateTo,
|
|
92
|
-
head,
|
|
93
|
-
tail,
|
|
94
92
|
color,
|
|
95
93
|
line,
|
|
96
|
-
notation
|
|
97
94
|
} = this.findRelations(source, target)
|
|
98
95
|
|
|
99
96
|
const navigateTo = isTruthy(stepNavigateTo) && stepNavigateTo !== this.view.id ? stepNavigateTo : derivedNavigateTo
|
|
@@ -108,11 +105,8 @@ class DynamicViewCompute {
|
|
|
108
105
|
isBackward: isBackward ?? false,
|
|
109
106
|
...(navigateTo ? { navigateTo } : {}),
|
|
110
107
|
...(tags ? { tags } : {}),
|
|
111
|
-
...(head ? { head } : {}),
|
|
112
|
-
...(tail ? { tail } : {}),
|
|
113
108
|
...(color ? { color } : {}),
|
|
114
109
|
...(line ? { line } : {}),
|
|
115
|
-
...(notation ? { notation } : {})
|
|
116
110
|
})
|
|
117
111
|
}
|
|
118
112
|
|
|
@@ -171,7 +165,7 @@ class DynamicViewCompute {
|
|
|
171
165
|
color: DefaultRelationshipColor,
|
|
172
166
|
line: DefaultLineStyle,
|
|
173
167
|
head: DefaultArrowType,
|
|
174
|
-
...step
|
|
168
|
+
...step,
|
|
175
169
|
}
|
|
176
170
|
if (isBackward) {
|
|
177
171
|
edge.dir = 'back'
|
|
@@ -204,8 +198,8 @@ class DynamicViewCompute {
|
|
|
204
198
|
applyViewRuleStyles(
|
|
205
199
|
rules,
|
|
206
200
|
// Keep order of elements
|
|
207
|
-
elements.map(e => nonNullable(nodesMap.get(e.id)))
|
|
208
|
-
)
|
|
201
|
+
elements.map(e => nonNullable(nodesMap.get(e.id))),
|
|
202
|
+
),
|
|
209
203
|
)
|
|
210
204
|
|
|
211
205
|
const autoLayoutRule = findLast(rules, isViewRuleAutoLayout)
|
|
@@ -217,7 +211,7 @@ class DynamicViewCompute {
|
|
|
217
211
|
autoLayout: {
|
|
218
212
|
direction: autoLayoutRule?.direction ?? 'LR',
|
|
219
213
|
...(autoLayoutRule?.nodeSep && { nodeSep: autoLayoutRule.nodeSep }),
|
|
220
|
-
...(autoLayoutRule?.rankSep && { rankSep: autoLayoutRule.rankSep })
|
|
214
|
+
...(autoLayoutRule?.rankSep && { rankSep: autoLayoutRule.rankSep }),
|
|
221
215
|
},
|
|
222
216
|
nodes: map(nodes, n => {
|
|
223
217
|
// omit notation
|
|
@@ -230,9 +224,9 @@ class DynamicViewCompute {
|
|
|
230
224
|
edges,
|
|
231
225
|
...(elementNotations.length > 0 && {
|
|
232
226
|
notation: {
|
|
233
|
-
elements: elementNotations
|
|
234
|
-
}
|
|
235
|
-
})
|
|
227
|
+
elements: elementNotations,
|
|
228
|
+
},
|
|
229
|
+
}),
|
|
236
230
|
})
|
|
237
231
|
}
|
|
238
232
|
|
|
@@ -241,11 +235,8 @@ class DynamicViewCompute {
|
|
|
241
235
|
tags: NonEmptyArray<Tag> | null
|
|
242
236
|
relations: NonEmptyArray<RelationId> | null
|
|
243
237
|
navigateTo: ViewId | null
|
|
244
|
-
tail: RelationshipArrowType | null
|
|
245
|
-
head: RelationshipArrowType | null
|
|
246
238
|
color: Color | null
|
|
247
239
|
line: RelationshipLineType | null
|
|
248
|
-
notation: string | null
|
|
249
240
|
} {
|
|
250
241
|
const relationships = findConnection(source, target, 'directed').flatMap(r => [...r.relations])
|
|
251
242
|
if (relationships.length === 0) {
|
|
@@ -254,18 +245,15 @@ class DynamicViewCompute {
|
|
|
254
245
|
tags: null,
|
|
255
246
|
relations: null,
|
|
256
247
|
navigateTo: null,
|
|
257
|
-
tail: null,
|
|
258
|
-
head: null,
|
|
259
248
|
color: null,
|
|
260
249
|
line: null,
|
|
261
|
-
notation: null
|
|
262
250
|
}
|
|
263
251
|
}
|
|
264
252
|
const alltags = pipe(
|
|
265
253
|
relationships,
|
|
266
254
|
flatMap(r => r.tags),
|
|
267
255
|
filter(isTruthy),
|
|
268
|
-
unique()
|
|
256
|
+
unique(),
|
|
269
257
|
)
|
|
270
258
|
const tags = hasAtLeast(alltags, 1) ? alltags : null
|
|
271
259
|
const relations = hasAtLeast(relationships, 1) ? map(relationships, r => r.id) : null
|
|
@@ -280,27 +268,21 @@ class DynamicViewCompute {
|
|
|
280
268
|
filter(isTruthy),
|
|
281
269
|
filter(v => v !== this.view.id),
|
|
282
270
|
unique(),
|
|
283
|
-
only()
|
|
271
|
+
only(),
|
|
284
272
|
)
|
|
285
273
|
|
|
286
274
|
const commonProperties = pipe(
|
|
287
275
|
relationships,
|
|
288
276
|
reduce((acc, { title, $relationship: r }) => {
|
|
289
277
|
isTruthy(title) && acc.title.add(title)
|
|
290
|
-
isTruthy(r.tail) && acc.tail.add(r.tail)
|
|
291
|
-
isTruthy(r.head) && acc.head.add(r.head)
|
|
292
278
|
isTruthy(r.color) && acc.color.add(r.color)
|
|
293
279
|
isTruthy(r.line) && acc.line.add(r.line)
|
|
294
|
-
|
|
295
280
|
return acc
|
|
296
281
|
}, {
|
|
297
|
-
tail: new Set<RelationshipArrowType>(),
|
|
298
|
-
head: new Set<RelationshipArrowType>(),
|
|
299
282
|
color: new Set<Color>(),
|
|
300
283
|
line: new Set<RelationshipLineType>(),
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
})
|
|
284
|
+
title: new Set<string>(),
|
|
285
|
+
}),
|
|
304
286
|
)
|
|
305
287
|
|
|
306
288
|
return {
|
|
@@ -308,17 +290,14 @@ class DynamicViewCompute {
|
|
|
308
290
|
relations,
|
|
309
291
|
navigateTo: navigateTo ?? null,
|
|
310
292
|
title: only([...commonProperties.title]) ?? null,
|
|
311
|
-
tail: only([...commonProperties.tail]) ?? null,
|
|
312
|
-
head: only([...commonProperties.head]) ?? null,
|
|
313
293
|
color: only([...commonProperties.color]) ?? null,
|
|
314
294
|
line: only([...commonProperties.line]) ?? null,
|
|
315
|
-
notation: only([...commonProperties.notation]) ?? null
|
|
316
295
|
}
|
|
317
296
|
}
|
|
318
297
|
}
|
|
319
298
|
export function computeDynamicView<M extends AnyAux>(
|
|
320
299
|
model: LikeC4Model<M>,
|
|
321
|
-
view: DynamicView
|
|
300
|
+
view: DynamicView,
|
|
322
301
|
): ComputedDynamicView {
|
|
323
302
|
return new DynamicViewCompute(model, view).compute()
|
|
324
303
|
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { values } from 'remeda'
|
|
2
|
-
import { type ExtendsElementView, isElementView, isExtendsElementView
|
|
1
|
+
import { unique, values } from 'remeda'
|
|
2
|
+
import { type ExtendsElementView, type LikeC4View, isElementView, isExtendsElementView } from '../../types/view'
|
|
3
3
|
|
|
4
4
|
import Graph from 'graphology'
|
|
5
5
|
import { topologicalSort } from 'graphology-dag/topological-sort'
|
|
6
6
|
import willCreateCycle from 'graphology-dag/will-create-cycle'
|
|
7
|
+
import { isNonEmptyArray } from '../../utils'
|
|
7
8
|
/**
|
|
8
9
|
* Resolve rules of extended views
|
|
9
10
|
* (Removes invalid views)
|
|
10
11
|
*/
|
|
11
12
|
export function resolveRulesExtendedViews<V extends Record<any, LikeC4View>>(
|
|
12
|
-
unresolvedViews: V
|
|
13
|
+
unresolvedViews: V,
|
|
13
14
|
): V {
|
|
14
15
|
const g = new Graph<{ view: LikeC4View }>({
|
|
15
|
-
type: 'directed'
|
|
16
|
+
type: 'directed',
|
|
16
17
|
})
|
|
17
18
|
const extendedViews = [] as ExtendsElementView<any, any>[]
|
|
18
19
|
for (const view of values(unresolvedViews)) {
|
|
@@ -53,10 +54,24 @@ export function resolveRulesExtendedViews<V extends Record<any, LikeC4View>>(
|
|
|
53
54
|
return acc
|
|
54
55
|
}
|
|
55
56
|
|
|
57
|
+
const tags = unique([
|
|
58
|
+
...(extendsFrom.tags ?? []),
|
|
59
|
+
...(view.tags ?? []),
|
|
60
|
+
])
|
|
61
|
+
|
|
62
|
+
const links = [
|
|
63
|
+
...(extendsFrom.links ?? []),
|
|
64
|
+
...(view.links ?? []),
|
|
65
|
+
]
|
|
66
|
+
|
|
56
67
|
acc[view.id] = {
|
|
57
68
|
...extendsFrom,
|
|
58
69
|
...view,
|
|
59
|
-
|
|
70
|
+
title: view.title ?? extendsFrom.title ?? null,
|
|
71
|
+
description: view.description ?? extendsFrom.description ?? null,
|
|
72
|
+
tags: isNonEmptyArray(tags) ? tags : null,
|
|
73
|
+
links: isNonEmptyArray(links) ? links : null,
|
|
74
|
+
rules: [...extendsFrom.rules, ...view.rules],
|
|
60
75
|
}
|
|
61
76
|
return acc
|
|
62
77
|
}, {} as Record<string, LikeC4View>) as V
|