@dagrejs/dagre 1.0.4 → 1.1.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 (58) hide show
  1. package/index.d.ts +10 -2
  2. package/lib/acyclic.js +10 -18
  3. package/lib/add-border-segments.js +19 -11
  4. package/lib/coordinate-system.js +5 -15
  5. package/lib/data/list.js +8 -7
  6. package/lib/debug.js +25 -14
  7. package/lib/greedy-fas.js +35 -30
  8. package/lib/index.js +38 -0
  9. package/lib/layout.js +105 -102
  10. package/lib/nesting-graph.js +18 -21
  11. package/lib/normalize.js +22 -18
  12. package/lib/order/add-subgraph-constraints.js +6 -2
  13. package/lib/order/barycenter.js +14 -6
  14. package/lib/order/build-layer-graph.js +19 -13
  15. package/lib/order/cross-count.js +13 -10
  16. package/lib/order/index.js +33 -24
  17. package/lib/order/init-order.js +8 -7
  18. package/lib/order/resolve-conflicts.js +9 -19
  19. package/lib/order/sort-subgraph.js +16 -22
  20. package/lib/order/sort.js +13 -12
  21. package/lib/parent-dummy-chains.js +17 -19
  22. package/lib/position/bk.js +42 -84
  23. package/lib/position/index.js +10 -9
  24. package/lib/rank/feasible-tree.js +14 -17
  25. package/lib/rank/index.js +25 -15
  26. package/lib/rank/network-simplex.js +18 -39
  27. package/lib/rank/util.js +6 -12
  28. package/lib/util.js +42 -57
  29. package/lib/version.js +8 -1
  30. package/mjs-lib/acyclic.js +62 -0
  31. package/mjs-lib/add-border-segments.js +35 -0
  32. package/mjs-lib/coordinate-system.js +65 -0
  33. package/mjs-lib/data/list.js +56 -0
  34. package/mjs-lib/debug.js +30 -0
  35. package/mjs-lib/greedy-fas.js +125 -0
  36. package/mjs-lib/index.js +9 -0
  37. package/mjs-lib/layout.js +405 -0
  38. package/mjs-lib/nesting-graph.js +120 -0
  39. package/mjs-lib/normalize.js +84 -0
  40. package/mjs-lib/order/add-subgraph-constraints.js +49 -0
  41. package/mjs-lib/order/barycenter.js +24 -0
  42. package/mjs-lib/order/build-layer-graph.js +71 -0
  43. package/mjs-lib/order/cross-count.js +64 -0
  44. package/mjs-lib/order/index.js +70 -0
  45. package/mjs-lib/order/init-order.js +34 -0
  46. package/mjs-lib/order/resolve-conflicts.js +116 -0
  47. package/mjs-lib/order/sort-subgraph.js +71 -0
  48. package/mjs-lib/order/sort.js +54 -0
  49. package/mjs-lib/parent-dummy-chains.js +82 -0
  50. package/mjs-lib/position/bk.js +409 -0
  51. package/mjs-lib/position/index.js +30 -0
  52. package/mjs-lib/rank/feasible-tree.js +93 -0
  53. package/mjs-lib/rank/index.js +46 -0
  54. package/mjs-lib/rank/network-simplex.js +233 -0
  55. package/mjs-lib/rank/util.js +58 -0
  56. package/mjs-lib/util.js +305 -0
  57. package/mjs-lib/version.js +1 -0
  58. package/package.json +14 -3
package/index.d.ts CHANGED
@@ -105,11 +105,18 @@ declare module '@dagrejs/dagre' {
105
105
  weight?: number | undefined;
106
106
  width?: number | undefined;
107
107
  height?: number | undefined;
108
- lablepos?: 'l' | 'c' | 'r' | undefined;
108
+ labelpos?: 'l' | 'c' | 'r' | undefined;
109
109
  labeloffest?: number | undefined;
110
110
  }
111
111
 
112
- export function layout(graph: graphlib.Graph, layout?: GraphLabel & NodeConfig & EdgeConfig): void;
112
+ export interface LayoutConfig {
113
+ customOrder?: (graph: graphlib.Graph, order: (graph: graphlib.Graph, opts: configUnion) => void) => void;
114
+ disableOptimalOrderHeuristic?: boolean;
115
+ }
116
+
117
+ type configUnion = GraphLabel & NodeConfig & EdgeConfig & LayoutConfig;
118
+
119
+ export function layout(graph: graphlib.Graph, layout?: configUnion): void;
113
120
 
114
121
  export interface Edge {
115
122
  v: string;
@@ -132,6 +139,7 @@ declare module '@dagrejs/dagre' {
132
139
  padding?: number | undefined;
133
140
  paddingX?: number | undefined;
134
141
  paddingY?: number | undefined;
142
+ rank?: number | undefined;
135
143
  rx?: number | undefined;
136
144
  ry?: number | undefined;
137
145
  shape?: string | undefined;
package/lib/acyclic.js CHANGED
@@ -1,37 +1,32 @@
1
1
  "use strict";
2
2
 
3
- let greedyFAS = require("./greedy-fas");
4
- let uniqueId = require("./util").uniqueId;
5
-
6
- module.exports = {
7
- run: run,
8
- undo: undo
9
- };
10
-
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.run = run;
7
+ exports.undo = undo;
8
+ var _greedyFas = _interopRequireDefault(require("./greedy-fas.js"));
9
+ var _util = require("./util.js");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  function run(g) {
12
- let fas = (g.graph().acyclicer === "greedy"
13
- ? greedyFAS(g, weightFn(g))
14
- : dfsFAS(g));
12
+ let fas = g.graph().acyclicer === "greedy" ? (0, _greedyFas.default)(g, weightFn(g)) : dfsFAS(g);
15
13
  fas.forEach(e => {
16
14
  let label = g.edge(e);
17
15
  g.removeEdge(e);
18
16
  label.forwardName = e.name;
19
17
  label.reversed = true;
20
- g.setEdge(e.w, e.v, label, uniqueId("rev"));
18
+ g.setEdge(e.w, e.v, label, (0, _util.uniqueId)("rev"));
21
19
  });
22
-
23
20
  function weightFn(g) {
24
21
  return e => {
25
22
  return g.edge(e).weight;
26
23
  };
27
24
  }
28
25
  }
29
-
30
26
  function dfsFAS(g) {
31
27
  let fas = [];
32
28
  let stack = {};
33
29
  let visited = {};
34
-
35
30
  function dfs(v) {
36
31
  if (visited.hasOwnProperty(v)) {
37
32
  return;
@@ -47,17 +42,14 @@ function dfsFAS(g) {
47
42
  });
48
43
  delete stack[v];
49
44
  }
50
-
51
45
  g.nodes().forEach(dfs);
52
46
  return fas;
53
47
  }
54
-
55
48
  function undo(g) {
56
49
  g.edges().forEach(e => {
57
50
  let label = g.edge(e);
58
51
  if (label.reversed) {
59
52
  g.removeEdge(e);
60
-
61
53
  let forwardName = label.forwardName;
62
54
  delete label.reversed;
63
55
  delete label.forwardName;
@@ -1,7 +1,12 @@
1
- let util = require("./util");
2
-
3
- module.exports = addBorderSegments;
1
+ "use strict";
4
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = addBorderSegments;
7
+ var util = _interopRequireWildcard(require("./util.js"));
8
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
5
10
  function addBorderSegments(g) {
6
11
  function dfs(v) {
7
12
  let children = g.children(v);
@@ -9,29 +14,32 @@ function addBorderSegments(g) {
9
14
  if (children.length) {
10
15
  children.forEach(dfs);
11
16
  }
12
-
13
17
  if (node.hasOwnProperty("minRank")) {
14
18
  node.borderLeft = [];
15
19
  node.borderRight = [];
16
- for (let rank = node.minRank, maxRank = node.maxRank + 1;
17
- rank < maxRank;
18
- ++rank) {
20
+ for (let rank = node.minRank, maxRank = node.maxRank + 1; rank < maxRank; ++rank) {
19
21
  addBorderNode(g, "borderLeft", "_bl", v, node, rank);
20
22
  addBorderNode(g, "borderRight", "_br", v, node, rank);
21
23
  }
22
24
  }
23
25
  }
24
-
25
26
  g.children().forEach(dfs);
26
27
  }
27
-
28
28
  function addBorderNode(g, prop, prefix, sg, sgNode, rank) {
29
- let label = { width: 0, height: 0, rank: rank, borderType: prop };
29
+ let label = {
30
+ width: 0,
31
+ height: 0,
32
+ rank: rank,
33
+ borderType: prop
34
+ };
30
35
  let prev = sgNode[prop][rank - 1];
31
36
  let curr = util.addDummyNode(g, "border", label, prefix);
32
37
  sgNode[prop][rank] = curr;
33
38
  g.setParent(curr, sg);
34
39
  if (prev) {
35
- g.setEdge(prev, curr, { weight: 1 });
40
+ g.setEdge(prev, curr, {
41
+ weight: 1
42
+ });
36
43
  }
37
44
  }
45
+ module.exports = exports.default;
@@ -1,43 +1,37 @@
1
1
  "use strict";
2
2
 
3
- module.exports = {
4
- adjust: adjust,
5
- undo: undo
6
- };
7
-
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.adjust = adjust;
7
+ exports.undo = undo;
8
8
  function adjust(g) {
9
9
  let rankDir = g.graph().rankdir.toLowerCase();
10
10
  if (rankDir === "lr" || rankDir === "rl") {
11
11
  swapWidthHeight(g);
12
12
  }
13
13
  }
14
-
15
14
  function undo(g) {
16
15
  let rankDir = g.graph().rankdir.toLowerCase();
17
16
  if (rankDir === "bt" || rankDir === "rl") {
18
17
  reverseY(g);
19
18
  }
20
-
21
19
  if (rankDir === "lr" || rankDir === "rl") {
22
20
  swapXY(g);
23
21
  swapWidthHeight(g);
24
22
  }
25
23
  }
26
-
27
24
  function swapWidthHeight(g) {
28
25
  g.nodes().forEach(v => swapWidthHeightOne(g.node(v)));
29
26
  g.edges().forEach(e => swapWidthHeightOne(g.edge(e)));
30
27
  }
31
-
32
28
  function swapWidthHeightOne(attrs) {
33
29
  let w = attrs.width;
34
30
  attrs.width = attrs.height;
35
31
  attrs.height = w;
36
32
  }
37
-
38
33
  function reverseY(g) {
39
34
  g.nodes().forEach(v => reverseYOne(g.node(v)));
40
-
41
35
  g.edges().forEach(e => {
42
36
  let edge = g.edge(e);
43
37
  edge.points.forEach(reverseYOne);
@@ -46,14 +40,11 @@ function reverseY(g) {
46
40
  }
47
41
  });
48
42
  }
49
-
50
43
  function reverseYOne(attrs) {
51
44
  attrs.y = -attrs.y;
52
45
  }
53
-
54
46
  function swapXY(g) {
55
47
  g.nodes().forEach(v => swapXYOne(g.node(v)));
56
-
57
48
  g.edges().forEach(e => {
58
49
  let edge = g.edge(e);
59
50
  edge.points.forEach(swapXYOne);
@@ -62,7 +53,6 @@ function swapXY(g) {
62
53
  }
63
54
  });
64
55
  }
65
-
66
56
  function swapXYOne(attrs) {
67
57
  let x = attrs.x;
68
58
  attrs.x = attrs.y;
package/lib/data/list.js CHANGED
@@ -1,3 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
1
7
  /*
2
8
  * Simple doubly linked list implementation derived from Cormen, et al.,
3
9
  * "Introduction to Algorithms".
@@ -9,7 +15,6 @@ class List {
9
15
  sentinel._next = sentinel._prev = sentinel;
10
16
  this._sentinel = sentinel;
11
17
  }
12
-
13
18
  dequeue() {
14
19
  let sentinel = this._sentinel;
15
20
  let entry = sentinel._prev;
@@ -18,7 +23,6 @@ class List {
18
23
  return entry;
19
24
  }
20
25
  }
21
-
22
26
  enqueue(entry) {
23
27
  let sentinel = this._sentinel;
24
28
  if (entry._prev && entry._next) {
@@ -29,7 +33,6 @@ class List {
29
33
  sentinel._next = entry;
30
34
  entry._prev = sentinel;
31
35
  }
32
-
33
36
  toString() {
34
37
  let strs = [];
35
38
  let sentinel = this._sentinel;
@@ -41,18 +44,16 @@ class List {
41
44
  return "[" + strs.join(", ") + "]";
42
45
  }
43
46
  }
44
-
47
+ exports.default = List;
45
48
  function unlink(entry) {
46
49
  entry._prev._next = entry._next;
47
50
  entry._next._prev = entry._prev;
48
51
  delete entry._next;
49
52
  delete entry._prev;
50
53
  }
51
-
52
54
  function filterOutLinks(k, v) {
53
55
  if (k !== "_next" && k !== "_prev") {
54
56
  return v;
55
57
  }
56
58
  }
57
-
58
- module.exports = List;
59
+ module.exports = exports.default;
package/lib/debug.js CHANGED
@@ -1,31 +1,42 @@
1
- let util = require("./util");
2
- let Graph = require("@dagrejs/graphlib").Graph;
1
+ "use strict";
3
2
 
4
- module.exports = {
5
- debugOrdering: debugOrdering
6
- };
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = debugOrdering;
7
+ var util = _interopRequireWildcard(require("./util.js"));
8
+ var _graphlib = require("@dagrejs/graphlib");
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ // web-devs write a <script type="importmap"> to map
12
+ // nodejs paths to actual http://paths
7
13
 
8
14
  /* istanbul ignore next */
9
15
  function debugOrdering(g) {
10
16
  let layerMatrix = util.buildLayerMatrix(g);
11
-
12
- let h = new Graph({ compound: true, multigraph: true }).setGraph({});
13
-
17
+ let h = new _graphlib.Graph({
18
+ compound: true,
19
+ multigraph: true
20
+ }).setGraph({});
14
21
  g.nodes().forEach(v => {
15
- h.setNode(v, { label: v });
22
+ h.setNode(v, {
23
+ label: v
24
+ });
16
25
  h.setParent(v, "layer" + g.node(v).rank);
17
26
  });
18
-
19
27
  g.edges().forEach(e => h.setEdge(e.v, e.w, {}, e.name));
20
-
21
28
  layerMatrix.forEach((layer, i) => {
22
29
  let layerV = "layer" + i;
23
- h.setNode(layerV, { rank: "same" });
30
+ h.setNode(layerV, {
31
+ rank: "same"
32
+ });
24
33
  layer.reduce((u, v) => {
25
- h.setEdge(u, v, { style: "invis" });
34
+ h.setEdge(u, v, {
35
+ style: "invis"
36
+ });
26
37
  return v;
27
38
  });
28
39
  });
29
-
30
40
  return h;
31
41
  }
42
+ module.exports = exports.default;
package/lib/greedy-fas.js CHANGED
@@ -1,5 +1,14 @@
1
- let Graph = require("@dagrejs/graphlib").Graph;
2
- let List = require("./data/list");
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = greedyFAS;
7
+ var _graphlib = require("@dagrejs/graphlib");
8
+ var _list = _interopRequireDefault(require("./data/list.js"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ // web-devs write a <script type="importmap"> to map
11
+ // nodejs paths to actual http://paths
3
12
 
4
13
  /*
5
14
  * A greedy heuristic for finding a feedback arc set for a graph. A feedback
@@ -8,10 +17,8 @@ let List = require("./data/list");
8
17
  * effective heuristic for the feedback arc set problem." This implementation
9
18
  * adjusts that from the paper to allow for weighted edges.
10
19
  */
11
- module.exports = greedyFAS;
12
20
 
13
21
  let DEFAULT_WEIGHT_FN = () => 1;
14
-
15
22
  function greedyFAS(g, weightFn) {
16
23
  if (g.nodeCount() <= 1) {
17
24
  return [];
@@ -22,16 +29,18 @@ function greedyFAS(g, weightFn) {
22
29
  // Expand multi-edges
23
30
  return results.flatMap(e => g.outEdges(e.v, e.w));
24
31
  }
25
-
26
32
  function doGreedyFAS(g, buckets, zeroIdx) {
27
33
  let results = [];
28
34
  let sources = buckets[buckets.length - 1];
29
35
  let sinks = buckets[0];
30
-
31
36
  let entry;
32
37
  while (g.nodeCount()) {
33
- while ((entry = sinks.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }
34
- while ((entry = sources.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }
38
+ while (entry = sinks.dequeue()) {
39
+ removeNode(g, buckets, zeroIdx, entry);
40
+ }
41
+ while (entry = sources.dequeue()) {
42
+ removeNode(g, buckets, zeroIdx, entry);
43
+ }
35
44
  if (g.nodeCount()) {
36
45
  for (let i = buckets.length - 2; i > 0; --i) {
37
46
  entry = buckets[i].dequeue();
@@ -42,25 +51,22 @@ function doGreedyFAS(g, buckets, zeroIdx) {
42
51
  }
43
52
  }
44
53
  }
45
-
46
54
  return results;
47
55
  }
48
-
49
56
  function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {
50
57
  let results = collectPredecessors ? [] : undefined;
51
-
52
58
  g.inEdges(entry.v).forEach(edge => {
53
59
  let weight = g.edge(edge);
54
60
  let uEntry = g.node(edge.v);
55
-
56
61
  if (collectPredecessors) {
57
- results.push({ v: edge.v, w: edge.w });
62
+ results.push({
63
+ v: edge.v,
64
+ w: edge.w
65
+ });
58
66
  }
59
-
60
67
  uEntry.out -= weight;
61
68
  assignBucket(buckets, zeroIdx, uEntry);
62
69
  });
63
-
64
70
  g.outEdges(entry.v).forEach(edge => {
65
71
  let weight = g.edge(edge);
66
72
  let w = edge.w;
@@ -68,19 +74,19 @@ function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {
68
74
  wEntry["in"] -= weight;
69
75
  assignBucket(buckets, zeroIdx, wEntry);
70
76
  });
71
-
72
77
  g.removeNode(entry.v);
73
-
74
78
  return results;
75
79
  }
76
-
77
80
  function buildState(g, weightFn) {
78
- let fasGraph = new Graph();
81
+ let fasGraph = new _graphlib.Graph();
79
82
  let maxIn = 0;
80
83
  let maxOut = 0;
81
-
82
84
  g.nodes().forEach(v => {
83
- fasGraph.setNode(v, { v: v, "in": 0, out: 0 });
85
+ fasGraph.setNode(v, {
86
+ v: v,
87
+ "in": 0,
88
+ out: 0
89
+ });
84
90
  });
85
91
 
86
92
  // Aggregate weights on nodes, but also sum the weights across multi-edges
@@ -91,19 +97,19 @@ function buildState(g, weightFn) {
91
97
  let edgeWeight = prevWeight + weight;
92
98
  fasGraph.setEdge(e.v, e.w, edgeWeight);
93
99
  maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);
94
- maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight);
100
+ maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight);
95
101
  });
96
-
97
- let buckets = range(maxOut + maxIn + 3).map(() => new List());
102
+ let buckets = range(maxOut + maxIn + 3).map(() => new _list.default());
98
103
  let zeroIdx = maxIn + 1;
99
-
100
104
  fasGraph.nodes().forEach(v => {
101
105
  assignBucket(buckets, zeroIdx, fasGraph.node(v));
102
106
  });
103
-
104
- return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };
107
+ return {
108
+ graph: fasGraph,
109
+ buckets: buckets,
110
+ zeroIdx: zeroIdx
111
+ };
105
112
  }
106
-
107
113
  function assignBucket(buckets, zeroIdx, entry) {
108
114
  if (!entry.out) {
109
115
  buckets[0].enqueue(entry);
@@ -113,12 +119,11 @@ function assignBucket(buckets, zeroIdx, entry) {
113
119
  buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry);
114
120
  }
115
121
  }
116
-
117
122
  function range(limit) {
118
123
  const range = [];
119
124
  for (let i = 0; i < limit; i++) {
120
125
  range.push(i);
121
126
  }
122
-
123
127
  return range;
124
128
  }
129
+ module.exports = exports.default;
package/lib/index.js ADDED
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "debug", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _debug.default;
10
+ }
11
+ });
12
+ exports.graphlib = void 0;
13
+ Object.defineProperty(exports, "layout", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _layout.default;
17
+ }
18
+ });
19
+ exports.util = void 0;
20
+ Object.defineProperty(exports, "version", {
21
+ enumerable: true,
22
+ get: function () {
23
+ return _version.default;
24
+ }
25
+ });
26
+ var _graphlib = _interopRequireWildcard(require("@dagrejs/graphlib"));
27
+ exports.graphlib = _graphlib;
28
+ var _layout = _interopRequireDefault(require("./layout.js"));
29
+ var _debug = _interopRequireDefault(require("./debug.js"));
30
+ var _util = require("./util.js");
31
+ var _version = _interopRequireDefault(require("./version.js"));
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
34
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
35
+ const util = exports.util = {
36
+ time: _util.time,
37
+ notime: _util.notime
38
+ };