@likec4/core 1.18.0 → 1.19.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 (176) hide show
  1. package/LICENSE +1 -1
  2. package/dist/builder/index.d.mts +502 -0
  3. package/dist/builder/index.d.ts +502 -0
  4. package/dist/builder/index.js +871 -0
  5. package/dist/compute-view/index.d.mts +9 -78
  6. package/dist/compute-view/index.d.ts +9 -78
  7. package/dist/compute-view/index.js +78 -0
  8. package/dist/index.d.mts +9 -730
  9. package/dist/index.d.ts +9 -730
  10. package/dist/{index.mjs → index.js} +7 -784
  11. package/dist/model/index.d.mts +218 -606
  12. package/dist/model/index.d.ts +218 -606
  13. package/dist/model/index.js +1 -0
  14. package/dist/shared/chunk-RAAYCPUM.M-JWF7SS.js +21 -0
  15. package/dist/shared/core.BIfgabEw.d.ts +719 -0
  16. package/dist/shared/core.BZ9Msq7w.d.mts +719 -0
  17. package/dist/shared/{core.DMYY7C8s.d.mts → core.C05RDLhi.d.ts} +179 -230
  18. package/dist/shared/{core.DMYY7C8s.d.ts → core.CmYMqgha.d.mts} +179 -230
  19. package/dist/shared/core.D6-fWbM3.d.ts +127 -0
  20. package/dist/shared/core.D74xkKkG.d.mts +148 -0
  21. package/dist/shared/core.D74xkKkG.d.ts +148 -0
  22. package/dist/shared/core.sLaWHBjR.d.mts +127 -0
  23. package/dist/shared/index.-BdzdI2C.js +7443 -0
  24. package/dist/shared/object_hash.CE_oF3I3.js +1222 -0
  25. package/dist/shared/view.CyZrG8BJ.js +354 -0
  26. package/dist/types/index.d.mts +4 -2
  27. package/dist/types/index.d.ts +4 -2
  28. package/dist/types/index.js +20 -0
  29. package/dist/utils/index.d.mts +404 -0
  30. package/dist/utils/index.d.ts +404 -0
  31. package/dist/utils/index.js +330 -0
  32. package/package.json +47 -33
  33. package/src/builder/Builder-style1.test-d.ts +190 -0
  34. package/src/builder/Builder-style2.test-d.ts +175 -0
  35. package/src/builder/Builder.deployment.ts +25 -20
  36. package/src/builder/Builder.deploymentModel.ts +80 -55
  37. package/src/builder/Builder.element.ts +2 -0
  38. package/src/builder/Builder.model.ts +57 -43
  39. package/src/builder/Builder.ts +412 -431
  40. package/src/builder/Builder.view-common.ts +234 -0
  41. package/src/builder/Builder.view-deployment.ts +135 -0
  42. package/src/builder/Builder.view-element.ts +189 -0
  43. package/src/builder/Builder.views.ts +109 -33
  44. package/src/builder/Builder.with.ts +475 -0
  45. package/src/builder/__snapshots__/Builder-style1.spec.ts.snap +374 -0
  46. package/src/builder/__snapshots__/Builder-style2.spec.ts.snap +183 -0
  47. package/src/builder/__snapshots__/Builder.spec.ts.snap +374 -0
  48. package/src/builder/_types.ts +28 -5
  49. package/src/builder/index.ts +10 -4
  50. package/src/colors/index.ts +2 -2
  51. package/src/compute-view/compute-view.ts +45 -54
  52. package/src/compute-view/deployment-view/__test__/TestHelper.ts +236 -0
  53. package/src/compute-view/deployment-view/__test__/fixture.ts +50 -62
  54. package/src/compute-view/deployment-view/_types.ts +26 -18
  55. package/src/compute-view/deployment-view/clean-connections.ts +173 -164
  56. package/src/compute-view/deployment-view/compute.ts +51 -37
  57. package/src/compute-view/deployment-view/memory/index.ts +9 -0
  58. package/src/compute-view/deployment-view/memory/memory.ts +97 -0
  59. package/src/compute-view/deployment-view/predicates/elements.ts +144 -0
  60. package/src/compute-view/deployment-view/predicates/relation-direct.ts +183 -76
  61. package/src/compute-view/deployment-view/predicates/relation-in-out.ts +38 -20
  62. package/src/compute-view/deployment-view/predicates/relation-incoming.ts +72 -23
  63. package/src/compute-view/deployment-view/predicates/relation-outgoing.ts +61 -22
  64. package/src/compute-view/deployment-view/predicates/wildcard.ts +15 -15
  65. package/src/compute-view/deployment-view/stages/stage-exclude.ts +5 -0
  66. package/src/compute-view/deployment-view/stages/stage-final.ts +245 -0
  67. package/src/compute-view/deployment-view/stages/stage-include.ts +95 -0
  68. package/src/compute-view/deployment-view/utils.ts +95 -31
  69. package/src/compute-view/dynamic-view/__test__/fixture.ts +4 -4
  70. package/src/compute-view/dynamic-view/compute.ts +59 -45
  71. package/src/compute-view/element-view/__test__/TestHelper.ts +258 -0
  72. package/src/compute-view/element-view/__test__/__snapshots__/legacy.spec.ts.snap +64 -62
  73. package/src/compute-view/element-view/__test__/fixture.ts +147 -117
  74. package/src/compute-view/element-view/_types.ts +48 -0
  75. package/src/compute-view/element-view/clean-connections.ts +113 -0
  76. package/src/compute-view/element-view/compute.ts +264 -683
  77. package/src/compute-view/element-view/memory/NodeGroup.ts +31 -0
  78. package/src/compute-view/element-view/memory/index.ts +10 -0
  79. package/src/compute-view/element-view/memory/memory.ts +177 -0
  80. package/src/compute-view/element-view/memory/stage-exclude.ts +59 -0
  81. package/src/compute-view/element-view/memory/stage-final.ts +129 -0
  82. package/src/compute-view/element-view/memory/stage-include.ts +128 -0
  83. package/src/compute-view/element-view/predicates/_utils.ts +86 -0
  84. package/src/compute-view/element-view/predicates/element-expand.ts +33 -0
  85. package/src/compute-view/element-view/predicates/element-kind-tag.ts +26 -0
  86. package/src/compute-view/element-view/predicates/element-ref.ts +37 -0
  87. package/src/compute-view/element-view/predicates/relation-direct.ts +309 -0
  88. package/src/compute-view/element-view/predicates/relation-in-out.ts +66 -0
  89. package/src/compute-view/element-view/predicates/relation-in.ts +118 -0
  90. package/src/compute-view/element-view/predicates/relation-out.ts +116 -0
  91. package/src/compute-view/element-view/predicates/wildcard.ts +88 -0
  92. package/src/compute-view/element-view/utils.ts +59 -0
  93. package/src/compute-view/index.ts +3 -4
  94. package/src/compute-view/memory/AbstractMemory.ts +45 -0
  95. package/src/compute-view/memory/AbstractStageExclude.ts +216 -0
  96. package/src/compute-view/memory/AbstractStageInclude.ts +200 -0
  97. package/src/compute-view/memory/_types.ts +147 -0
  98. package/src/compute-view/memory/index.ts +5 -0
  99. package/src/compute-view/memory/ops.ts +43 -0
  100. package/src/compute-view/utils/buildComputedNodes.ts +4 -4
  101. package/src/compute-view/utils/elementExpressionToPredicate.ts +1 -3
  102. package/src/compute-view/utils/link-nodes-with-edges.ts +3 -7
  103. package/src/compute-view/utils/{derive-edge-props-from-relationships.ts → merge-props-from-relationships.ts} +54 -23
  104. package/src/compute-view/utils/relationExpressionToPredicates.ts +2 -2
  105. package/src/compute-view/utils/resolve-extended-views.ts +44 -40
  106. package/src/compute-view/utils/resolve-global-rules.ts +6 -6
  107. package/src/compute-view/utils/topological-sort.ts +167 -71
  108. package/src/compute-view/utils/with-readable-edges.ts +14 -9
  109. package/src/index.ts +22 -16
  110. package/src/model/DeploymentElementModel.ts +150 -85
  111. package/src/model/DeploymentModel.ts +27 -21
  112. package/src/model/ElementModel.ts +51 -25
  113. package/src/model/LikeC4Model.test-d.ts +4 -3
  114. package/src/model/LikeC4Model.ts +98 -42
  115. package/src/model/RelationModel.ts +5 -4
  116. package/src/model/__test__/fixture.ts +5 -9
  117. package/src/model/connection/Connection.ts +72 -0
  118. package/src/model/connection/deployment/DeploymentConnectionModel.ts +178 -0
  119. package/src/model/connection/{deployment.ts → deployment/find.ts} +14 -18
  120. package/src/model/connection/deployment/index.ts +8 -0
  121. package/src/model/connection/index.ts +22 -0
  122. package/src/model/connection/model/ConnectionModel.ts +157 -0
  123. package/src/model/connection/{model.ts → model/find.ts} +43 -49
  124. package/src/model/connection/model/index.ts +8 -0
  125. package/src/model/connection/ops.ts +274 -0
  126. package/src/model/guards.ts +9 -0
  127. package/src/model/index.ts +45 -3
  128. package/src/model/types.ts +35 -18
  129. package/src/model/view/EdgeModel.ts +6 -6
  130. package/src/model/view/LikeC4ViewModel.ts +14 -8
  131. package/src/model/view/NodeModel.ts +6 -5
  132. package/src/types/_common.ts +53 -1
  133. package/src/types/deployments.ts +88 -156
  134. package/src/types/element.ts +2 -2
  135. package/src/types/expression-v2.ts +172 -0
  136. package/src/types/expression.ts +9 -5
  137. package/src/types/global.ts +3 -3
  138. package/src/types/index.ts +220 -13
  139. package/src/types/model.ts +28 -24
  140. package/src/types/operators.ts +1 -1
  141. package/src/types/relation.ts +14 -10
  142. package/src/types/theme.ts +0 -1
  143. package/src/types/view.ts +20 -18
  144. package/src/utils/const.ts +1 -0
  145. package/src/utils/fqn.ts +140 -49
  146. package/src/utils/getOrCreate.ts +1 -1
  147. package/src/utils/index.ts +74 -9
  148. package/src/utils/iterable/_types.ts +5 -0
  149. package/src/utils/iterable/filter.ts +55 -0
  150. package/src/utils/iterable/flat.ts +17 -0
  151. package/src/utils/iterable/index.ts +12 -0
  152. package/src/utils/iterable/map.ts +40 -0
  153. package/src/utils/iterable/reduce.ts +24 -0
  154. package/src/utils/iterable/some.ts +36 -0
  155. package/src/utils/iterable/to.ts +19 -0
  156. package/src/utils/iterable/unique.ts +29 -0
  157. package/src/utils/relations.ts +3 -64
  158. package/src/utils/set.ts +11 -9
  159. package/src/utils/string-hash.ts +1 -1
  160. package/dist/compute-view/index.mjs +0 -79
  161. package/dist/model/index.mjs +0 -2
  162. package/dist/shared/core.BBgiAAv1.mjs +0 -144
  163. package/dist/shared/core.BPyJvuMU.mjs +0 -2420
  164. package/dist/shared/core.BQ4AbfvB.mjs +0 -9228
  165. package/dist/shared/core.k12s_keD.mjs +0 -203
  166. package/dist/types/index.mjs +0 -21
  167. package/src/builder/Builder.test-d.ts +0 -124
  168. package/src/builder/Builder.view.ts +0 -543
  169. package/src/compute-view/LikeC4ModelGraph.ts +0 -330
  170. package/src/compute-view/deployment-view/Memory.ts +0 -108
  171. package/src/compute-view/deployment-view/Stage.ts +0 -145
  172. package/src/compute-view/deployment-view/predicates/deployment-ref.ts +0 -146
  173. package/src/compute-view/element-view/predicates.ts +0 -517
  174. package/src/compute-view/utils/sortNodes.ts +0 -101
  175. package/src/model/connection/ConnectionModel.ts +0 -94
  176. package/src/model/connection/DeploymentConnectionModel.ts +0 -99
@@ -1,79 +1,7 @@
1
- import { SetOptional } from 'type-fest';
2
- import { P as ParsedLikeC4Model, C as ComputedLikeC4ModelFromParsed, L as LikeC4View, a as ComputedView, M as ModelGlobals, E as Element, F as Fqn, R as Relation, b as RelationId, c as ComputedLikeC4Model } from '../shared/core.DMYY7C8s.mjs';
3
-
4
- type ComputeViewResult<V extends ComputedView = ComputedView> = {
5
- isSuccess: true;
6
- error?: undefined;
7
- view: V;
8
- } | {
9
- isSuccess: false;
10
- error: Error;
11
- view: undefined;
12
- };
13
- type ComputeViewFn = <V extends LikeC4View>(viewsource: V) => ComputeViewResult<ComputedView>;
14
- type Params$1 = SetOptional<ParsedLikeC4Model, 'views'>;
15
- declare function mkComputeView(model: Params$1): ComputeViewFn;
16
- declare function computeViews<const P extends ParsedLikeC4Model<any, any, any, any, any, any>>(parsed: P): ComputedLikeC4ModelFromParsed<P>;
17
-
18
- type Params = {
19
- elements: Record<Fqn, Element>;
20
- relations: Record<RelationId, Relation>;
21
- globals?: ModelGlobals;
22
- };
23
- type RelationEdge = {
24
- source: Element;
25
- target: Element;
26
- relations: Relation[];
27
- };
28
- type FqnOrElement = Fqn | Element;
29
- type FqnsOrElements = ReadonlyArray<Fqn> | ReadonlyArray<Element>;
30
- /**
31
- * Used only for views calculations.
32
- * Subject to change.
33
- */
34
- declare class LikeC4ModelGraph {
35
- #private;
36
- readonly globals: ModelGlobals;
37
- constructor({ elements, relations, globals }: Params);
38
- get rootElements(): Element[];
39
- get elements(): Element[];
40
- element(id: Fqn): Element;
41
- connectedRelations(id: Fqn): Relation[];
42
- children(id: Fqn): Element[];
43
- descendants(id: Fqn): Element[];
44
- private descendantsDfs;
45
- siblings(element: Fqn | Element): Element[];
46
- /**
47
- * Get all ancestor elements (i.e. parent, parent’s parent, etc.)
48
- * (from closest to root)
49
- */
50
- ancestors(element: Fqn | Element): Array<Element>;
51
- /**
52
- * Resolve siblings of the element and its ancestors
53
- * (from closest to root)
54
- */
55
- ascendingSiblings(element: Fqn | Element): ReadonlyArray<Element>;
56
- incoming(element: Fqn | Element): ReadonlySet<Relation>;
57
- outgoing(element: Fqn | Element): ReadonlySet<Relation>;
58
- /**
59
- * Resolve all RelationEdges between element and others (any direction)
60
- */
61
- anyEdgesBetween(_element: Fqn | Element, others: ReadonlyArray<Fqn> | ReadonlyArray<Element>): Array<RelationEdge>;
62
- /**
63
- * Resolve all RelationEdges between elements (any direction)
64
- */
65
- edgesWithin<T extends Fqn[] | Element[]>(elements: T): Array<RelationEdge>;
66
- /**
67
- * Get directed RelationEdge between source and target if exists
68
- */
69
- edgesBetween(_sources: FqnOrElement | FqnsOrElements, _targets: FqnOrElement | FqnsOrElements): RelationEdge[];
70
- private addElement;
71
- private addRelation;
72
- private _childrenOf;
73
- private _incomingTo;
74
- private _outgoingFrom;
75
- private _internalOf;
76
- }
1
+ export { C as ComputeViewResult, c as computeView, a as computeViews, u as unsafeComputeView } from '../shared/core.BZ9Msq7w.mjs';
2
+ import { L as LikeC4View, C as ComputedView, a as ComputedLikeC4Model } from '../shared/core.CmYMqgha.mjs';
3
+ import 'type-fest';
4
+ import '../shared/core.D74xkKkG.mjs';
77
5
 
78
6
  /**
79
7
  * Resolve rules of extended views
@@ -85,7 +13,10 @@ declare function resolveRulesExtendedViews<V extends Record<any, LikeC4View>>(un
85
13
  * Convert hashed edge ids to human-readable
86
14
  * Mostly for testing purposes
87
15
  */
88
- declare function withReadableEdges<T extends ComputedView>({ edges, nodes, ...view }: T): T;
16
+ declare function withReadableEdges<T extends ComputedView>({ edges, nodes, ...view }: T, separator?: string): T & {
17
+ nodeIds: string[];
18
+ edgeIds: string[];
19
+ };
89
20
  declare function viewsWithReadableEdges<M extends ComputedLikeC4Model>({ views, ...model }: M): M;
90
21
 
91
- export { LikeC4ModelGraph, computeViews, mkComputeView, resolveRulesExtendedViews, viewsWithReadableEdges, withReadableEdges };
22
+ export { resolveRulesExtendedViews, viewsWithReadableEdges, withReadableEdges };
@@ -1,79 +1,7 @@
1
- import { SetOptional } from 'type-fest';
2
- import { P as ParsedLikeC4Model, C as ComputedLikeC4ModelFromParsed, L as LikeC4View, a as ComputedView, M as ModelGlobals, E as Element, F as Fqn, R as Relation, b as RelationId, c as ComputedLikeC4Model } from '../shared/core.DMYY7C8s.js';
3
-
4
- type ComputeViewResult<V extends ComputedView = ComputedView> = {
5
- isSuccess: true;
6
- error?: undefined;
7
- view: V;
8
- } | {
9
- isSuccess: false;
10
- error: Error;
11
- view: undefined;
12
- };
13
- type ComputeViewFn = <V extends LikeC4View>(viewsource: V) => ComputeViewResult<ComputedView>;
14
- type Params$1 = SetOptional<ParsedLikeC4Model, 'views'>;
15
- declare function mkComputeView(model: Params$1): ComputeViewFn;
16
- declare function computeViews<const P extends ParsedLikeC4Model<any, any, any, any, any, any>>(parsed: P): ComputedLikeC4ModelFromParsed<P>;
17
-
18
- type Params = {
19
- elements: Record<Fqn, Element>;
20
- relations: Record<RelationId, Relation>;
21
- globals?: ModelGlobals;
22
- };
23
- type RelationEdge = {
24
- source: Element;
25
- target: Element;
26
- relations: Relation[];
27
- };
28
- type FqnOrElement = Fqn | Element;
29
- type FqnsOrElements = ReadonlyArray<Fqn> | ReadonlyArray<Element>;
30
- /**
31
- * Used only for views calculations.
32
- * Subject to change.
33
- */
34
- declare class LikeC4ModelGraph {
35
- #private;
36
- readonly globals: ModelGlobals;
37
- constructor({ elements, relations, globals }: Params);
38
- get rootElements(): Element[];
39
- get elements(): Element[];
40
- element(id: Fqn): Element;
41
- connectedRelations(id: Fqn): Relation[];
42
- children(id: Fqn): Element[];
43
- descendants(id: Fqn): Element[];
44
- private descendantsDfs;
45
- siblings(element: Fqn | Element): Element[];
46
- /**
47
- * Get all ancestor elements (i.e. parent, parent’s parent, etc.)
48
- * (from closest to root)
49
- */
50
- ancestors(element: Fqn | Element): Array<Element>;
51
- /**
52
- * Resolve siblings of the element and its ancestors
53
- * (from closest to root)
54
- */
55
- ascendingSiblings(element: Fqn | Element): ReadonlyArray<Element>;
56
- incoming(element: Fqn | Element): ReadonlySet<Relation>;
57
- outgoing(element: Fqn | Element): ReadonlySet<Relation>;
58
- /**
59
- * Resolve all RelationEdges between element and others (any direction)
60
- */
61
- anyEdgesBetween(_element: Fqn | Element, others: ReadonlyArray<Fqn> | ReadonlyArray<Element>): Array<RelationEdge>;
62
- /**
63
- * Resolve all RelationEdges between elements (any direction)
64
- */
65
- edgesWithin<T extends Fqn[] | Element[]>(elements: T): Array<RelationEdge>;
66
- /**
67
- * Get directed RelationEdge between source and target if exists
68
- */
69
- edgesBetween(_sources: FqnOrElement | FqnsOrElements, _targets: FqnOrElement | FqnsOrElements): RelationEdge[];
70
- private addElement;
71
- private addRelation;
72
- private _childrenOf;
73
- private _incomingTo;
74
- private _outgoingFrom;
75
- private _internalOf;
76
- }
1
+ export { C as ComputeViewResult, c as computeView, a as computeViews, u as unsafeComputeView } from '../shared/core.BIfgabEw.js';
2
+ import { L as LikeC4View, C as ComputedView, a as ComputedLikeC4Model } from '../shared/core.C05RDLhi.js';
3
+ import 'type-fest';
4
+ import '../shared/core.D74xkKkG.js';
77
5
 
78
6
  /**
79
7
  * Resolve rules of extended views
@@ -85,7 +13,10 @@ declare function resolveRulesExtendedViews<V extends Record<any, LikeC4View>>(un
85
13
  * Convert hashed edge ids to human-readable
86
14
  * Mostly for testing purposes
87
15
  */
88
- declare function withReadableEdges<T extends ComputedView>({ edges, nodes, ...view }: T): T;
16
+ declare function withReadableEdges<T extends ComputedView>({ edges, nodes, ...view }: T, separator?: string): T & {
17
+ nodeIds: string[];
18
+ edgeIds: string[];
19
+ };
89
20
  declare function viewsWithReadableEdges<M extends ComputedLikeC4Model>({ views, ...model }: M): M;
90
21
 
91
- export { LikeC4ModelGraph, computeViews, mkComputeView, resolveRulesExtendedViews, viewsWithReadableEdges, withReadableEdges };
22
+ export { resolveRulesExtendedViews, viewsWithReadableEdges, withReadableEdges };
@@ -0,0 +1,78 @@
1
+ import { G as Graph, r, w as willCreateCycle, t as topologicalSortExports, l, i as i$1 } from '../shared/index.-BdzdI2C.js';
2
+ export { c as computeView, a as computeViews, u as unsafeComputeView } from '../shared/index.-BdzdI2C.js';
3
+ import { i as isExtendsElementView, a as isElementView } from '../shared/view.CyZrG8BJ.js';
4
+ import { i, m } from '../shared/object_hash.CE_oF3I3.js';
5
+ import { u } from '../shared/chunk-RAAYCPUM.M-JWF7SS.js';
6
+
7
+ 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}
8
+
9
+ function resolveRulesExtendedViews(unresolvedViews) {
10
+ const g = new Graph({
11
+ type: "directed"
12
+ });
13
+ const extendedViews = [];
14
+ for (const view of r(unresolvedViews)) {
15
+ g.addNode(view.id, { view });
16
+ if (isExtendsElementView(view)) {
17
+ extendedViews.push(view);
18
+ }
19
+ }
20
+ if (extendedViews.length === 0) {
21
+ return unresolvedViews;
22
+ }
23
+ for (const view of extendedViews) {
24
+ if (!g.hasNode(view.extends)) {
25
+ console.warn(`View "${view.id}" extends from "${view.extends}" which does not exist`);
26
+ continue;
27
+ }
28
+ if (willCreateCycle(g, view.id, view.extends)) {
29
+ console.warn(`View "${view.id}" extends from "${view.extends}" which creates a cycle`);
30
+ continue;
31
+ }
32
+ g.addDirectedEdge(view.id, view.extends);
33
+ }
34
+ const sorted = topologicalSortExports.topologicalSort(g).reverse();
35
+ return sorted.reduce((acc, id) => {
36
+ const view = g.getNodeAttribute(id, "view");
37
+ if (!isExtendsElementView(view)) {
38
+ acc[view.id] = view;
39
+ return acc;
40
+ }
41
+ const extendsFrom = acc[view.extends];
42
+ if (!extendsFrom || !isElementView(extendsFrom)) {
43
+ return acc;
44
+ }
45
+ acc[view.id] = {
46
+ ...extendsFrom,
47
+ ...view,
48
+ rules: [...extendsFrom.rules, ...view.rules]
49
+ };
50
+ return acc;
51
+ }, {});
52
+ }
53
+
54
+ function withReadableEdges({ edges, nodes, ...view }, separator = ":") {
55
+ const edgeids = l(edges, (e) => [e.id, `${e.source}${separator}${e.target}`]);
56
+ return {
57
+ ...view,
58
+ edges: edges.map((e) => ({
59
+ ...e,
60
+ id: edgeids[e.id]
61
+ })),
62
+ nodes: nodes.map((n) => ({
63
+ ...n,
64
+ inEdges: m(n.inEdges, (e) => edgeids[e]),
65
+ outEdges: m(n.outEdges, (e) => edgeids[e])
66
+ })),
67
+ nodeIds: nodes.map((n) => n.id),
68
+ edgeIds: edges.map((e) => edgeids[e.id])
69
+ };
70
+ }
71
+ function viewsWithReadableEdges({ views, ...model }) {
72
+ return {
73
+ ...model,
74
+ views: i$1(views, (v) => y(withReadableEdges(v), ["nodeIds", "edgeIds"]))
75
+ };
76
+ }
77
+
78
+ export { resolveRulesExtendedViews, viewsWithReadableEdges, withReadableEdges };