theprogrammablemind_4wp 7.5.7-beta.9 → 7.5.7

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -44,7 +44,6 @@
44
44
  "src/config.js",
45
45
  "src/copy.js",
46
46
  "src/digraph.js",
47
- "src/digraph_internal.js",
48
47
  "src/generators.js",
49
48
  "src/semantics.js"
50
49
  ],
@@ -63,6 +62,6 @@
63
62
  "json-stable-stringify": "^1.0.1",
64
63
  "node-fetch": "^2.6.1"
65
64
  },
66
- "version": "7.5.7-beta.9",
65
+ "version": "7.5.7",
67
66
  "license": "ISC"
68
67
  }
@@ -1,131 +0,0 @@
1
- const toA = (edge) => {
2
- if (Array.isArray(edge)) {
3
- return edge
4
- } else {
5
- return [edge.child, edge.parent]
6
- }
7
- }
8
-
9
- class DigraphInternal {
10
- // edges maybe either [child, parent] or { child, parent }
11
- constructor (edges = []) {
12
- // dont make a copy of edges. this is shared and that breaks stuff. TODO fix this
13
- this._edges = edges
14
- }
15
-
16
- addEdges(edges) {
17
- for (let edge of edges) {
18
- this.addEdge(edge)
19
- }
20
- }
21
-
22
- addEdge(edge) {
23
- edge = toA(edge)
24
- this._edges.push(edge)
25
- }
26
-
27
- get edges() {
28
- return this._edges
29
- }
30
-
31
- set edges(edges) {
32
- this._edges = edges
33
- }
34
-
35
- /*
36
- set edges(edges) {
37
- this._edges = edges.map( toA )
38
- }
39
- */
40
-
41
- acdcs (s, from, to) {
42
- const todo = [s]
43
- const seen = new Set([s])
44
- const acdcs = new Set([])
45
- while (todo.length > 0) {
46
- const n = todo.pop()
47
- this._edges.forEach((e) => {
48
- e = toA(e)
49
- if (e[from] === n) {
50
- acdcs.add(e[to])
51
- if (!seen.has(e[to])) {
52
- todo.push(e[to])
53
- seen.add(e[to])
54
- }
55
- }
56
- })
57
- }
58
- return acdcs
59
- }
60
-
61
- isA (low, high) {
62
- if (low === high) {
63
- return true
64
- }
65
- return this.ancestors(low).has(high)
66
- }
67
-
68
- lessThan (low, high) {
69
- if (low === high) {
70
- return false
71
- }
72
- return this.ancestors(low).has(high)
73
- }
74
-
75
- descendants (s) {
76
- return this.acdcs(s, 1, 0)
77
- }
78
-
79
- ancestors (s) {
80
- return this.acdcs(s, 0, 1)
81
- }
82
-
83
- minima (nodes) {
84
- let minima = new Set(nodes)
85
- const ancestors = new Set([])
86
- nodes.forEach((node) => {
87
- this.ancestors(node).forEach((n) => ancestors.add(n))
88
- })
89
- ancestors.forEach((n) => minima.delete(n))
90
- if (minima.size === 0) {
91
- // all unrelated
92
- minima = new Set(nodes)
93
- }
94
- return minima
95
- }
96
-
97
- maxima (nodes) {
98
- const maxima = new Set(nodes)
99
- const descendants = new Set([])
100
- nodes.forEach((node) => {
101
- this.descendants(node).forEach((n) => descendants.add(n))
102
- })
103
- descendants.forEach((n) => maxima.delete(n))
104
- return maxima
105
- }
106
-
107
- add (child, parent) {
108
- this._edges.push([child, parent])
109
- }
110
-
111
- addList (l) {
112
- for (let i = 1; i < l.length; ++i) {
113
- this._edges.push([l[i - 1], l[i]])
114
- }
115
- }
116
-
117
- order (todo) {
118
- const ordered = []
119
- while (todo.length > 0) {
120
- const nodes = this.minima(todo)
121
- todo = todo.filter((e) => !nodes.has(e))
122
- for (const node of nodes) {
123
- ordered.push(node)
124
- }
125
- // ordered = ordered.concat([...nodes])
126
- }
127
- return ordered
128
- }
129
- }
130
-
131
- module.exports = DigraphInternal