binary-decision-diagram 1.3.1 → 2.0.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 (118) hide show
  1. package/.github/workflows/main.yml +22 -0
  2. package/README.md +3 -2
  3. package/dist/es/abstract-node.d.ts +1 -1
  4. package/dist/es/abstract-node.js +45 -51
  5. package/dist/es/abstract-node.js.map +1 -1
  6. package/dist/es/branches.d.ts +1 -1
  7. package/dist/es/branches.js +20 -22
  8. package/dist/es/branches.js.map +1 -1
  9. package/dist/es/create-bdd-from-truth-table.d.ts +1 -1
  10. package/dist/es/create-bdd-from-truth-table.js +19 -57
  11. package/dist/es/create-bdd-from-truth-table.js.map +1 -1
  12. package/dist/es/ensure-correct-bdd.js +26 -27
  13. package/dist/es/ensure-correct-bdd.js.map +1 -1
  14. package/dist/es/fill-truth-table.d.ts +1 -1
  15. package/dist/es/fill-truth-table.js +3 -3
  16. package/dist/es/fill-truth-table.js.map +1 -1
  17. package/dist/es/find-similar-node.js +3 -3
  18. package/dist/es/find-similar-node.js.map +1 -1
  19. package/dist/es/index.d.ts +7 -1
  20. package/dist/es/index.js.map +1 -1
  21. package/dist/es/internal-node.d.ts +1 -1
  22. package/dist/es/internal-node.js +15 -33
  23. package/dist/es/internal-node.js.map +1 -1
  24. package/dist/es/leaf-node.d.ts +1 -1
  25. package/dist/es/leaf-node.js +14 -32
  26. package/dist/es/leaf-node.js.map +1 -1
  27. package/dist/es/minimal-string/bdd-to-minimal-string.js +15 -15
  28. package/dist/es/minimal-string/bdd-to-minimal-string.js.map +1 -1
  29. package/dist/es/minimal-string/bdd-to-simple-bdd.js +2 -2
  30. package/dist/es/minimal-string/bdd-to-simple-bdd.js.map +1 -1
  31. package/dist/es/minimal-string/minimal-string-to-simple-bdd.js +27 -27
  32. package/dist/es/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
  33. package/dist/es/minimal-string/resolve-with-simple-bdd.js +4 -4
  34. package/dist/es/minimal-string/resolve-with-simple-bdd.js.map +1 -1
  35. package/dist/es/minimal-string/string-format.js +7 -7
  36. package/dist/es/minimal-string/string-format.js.map +1 -1
  37. package/dist/es/optimize-brute-force.d.ts +5 -5
  38. package/dist/es/optimize-brute-force.js +88 -186
  39. package/dist/es/optimize-brute-force.js.map +1 -1
  40. package/dist/es/parents.d.ts +1 -1
  41. package/dist/es/parents.js +19 -47
  42. package/dist/es/parents.js.map +1 -1
  43. package/dist/es/root-node.d.ts +1 -1
  44. package/dist/es/root-node.js +79 -131
  45. package/dist/es/root-node.js.map +1 -1
  46. package/dist/es/types.d.ts +9 -9
  47. package/dist/es/types.js +1 -0
  48. package/dist/es/util.d.ts +1 -1
  49. package/dist/es/util.js +21 -39
  50. package/dist/es/util.js.map +1 -1
  51. package/dist/lib/abstract-node.d.ts +1 -1
  52. package/dist/lib/abstract-node.js +48 -56
  53. package/dist/lib/abstract-node.js.map +1 -1
  54. package/dist/lib/branches.d.ts +1 -1
  55. package/dist/lib/branches.js +21 -26
  56. package/dist/lib/branches.js.map +1 -1
  57. package/dist/lib/create-bdd-from-truth-table.d.ts +1 -1
  58. package/dist/lib/create-bdd-from-truth-table.js +24 -65
  59. package/dist/lib/create-bdd-from-truth-table.js.map +1 -1
  60. package/dist/lib/ensure-correct-bdd.js +27 -32
  61. package/dist/lib/ensure-correct-bdd.js.map +1 -1
  62. package/dist/lib/fill-truth-table.d.ts +1 -1
  63. package/dist/lib/fill-truth-table.js +6 -9
  64. package/dist/lib/fill-truth-table.js.map +1 -1
  65. package/dist/lib/find-similar-node.js +4 -7
  66. package/dist/lib/find-similar-node.js.map +1 -1
  67. package/dist/lib/index.d.ts +7 -1
  68. package/dist/lib/index.js +13 -18
  69. package/dist/lib/index.js.map +1 -1
  70. package/dist/lib/internal-node.d.ts +1 -1
  71. package/dist/lib/internal-node.js +18 -38
  72. package/dist/lib/internal-node.js.map +1 -1
  73. package/dist/lib/leaf-node.d.ts +1 -1
  74. package/dist/lib/leaf-node.js +17 -37
  75. package/dist/lib/leaf-node.js.map +1 -1
  76. package/dist/lib/minimal-string/bdd-to-minimal-string.js +21 -25
  77. package/dist/lib/minimal-string/bdd-to-minimal-string.js.map +1 -1
  78. package/dist/lib/minimal-string/bdd-to-simple-bdd.js +4 -8
  79. package/dist/lib/minimal-string/bdd-to-simple-bdd.js.map +1 -1
  80. package/dist/lib/minimal-string/index.js +5 -10
  81. package/dist/lib/minimal-string/index.js.map +1 -1
  82. package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js +30 -33
  83. package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
  84. package/dist/lib/minimal-string/resolve-with-simple-bdd.js +6 -9
  85. package/dist/lib/minimal-string/resolve-with-simple-bdd.js.map +1 -1
  86. package/dist/lib/minimal-string/string-format.js +12 -18
  87. package/dist/lib/minimal-string/string-format.js.map +1 -1
  88. package/dist/lib/optimize-brute-force.d.ts +5 -5
  89. package/dist/lib/optimize-brute-force.js +93 -197
  90. package/dist/lib/optimize-brute-force.js.map +1 -1
  91. package/dist/lib/parents.d.ts +1 -1
  92. package/dist/lib/parents.js +19 -49
  93. package/dist/lib/parents.js.map +1 -1
  94. package/dist/lib/root-node.d.ts +1 -1
  95. package/dist/lib/root-node.js +84 -138
  96. package/dist/lib/root-node.js.map +1 -1
  97. package/dist/lib/types.d.ts +9 -9
  98. package/dist/lib/types.js +1 -2
  99. package/dist/lib/util.d.ts +1 -1
  100. package/dist/lib/util.js +36 -71
  101. package/dist/lib/util.js.map +1 -1
  102. package/package.json +16 -11
  103. package/renovate.json +3 -2
  104. package/src/abstract-node.ts +1 -1
  105. package/src/branches.ts +1 -2
  106. package/src/create-bdd-from-truth-table.ts +1 -1
  107. package/src/ensure-correct-bdd.ts +1 -1
  108. package/src/fill-truth-table.ts +1 -1
  109. package/src/index.ts +19 -1
  110. package/src/internal-node.ts +1 -1
  111. package/src/leaf-node.ts +1 -1
  112. package/src/optimize-brute-force.ts +1 -1
  113. package/src/parents.ts +1 -1
  114. package/src/root-node.ts +1 -1
  115. package/src/types.ts +1 -1
  116. package/src/util.ts +1 -1
  117. package/tsconfig.json +2 -2
  118. package/.travis.yml +0 -13
@@ -1,72 +1,9 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- var __values = (this && this.__values) || function(o) {
38
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
39
- if (m) return m.call(o);
40
- if (o && typeof o.length === "number") return {
41
- next: function () {
42
- if (o && i >= o.length) o = void 0;
43
- return { value: o && o[i++], done: !o };
44
- }
45
- };
46
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
47
- };
48
- var __read = (this && this.__read) || function (o, n) {
49
- var m = typeof Symbol === "function" && o[Symbol.iterator];
50
- if (!m) return o;
51
- var i = m.call(o), r, ar = [], e;
52
- try {
53
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
54
- }
55
- catch (error) { e = { error: error }; }
56
- finally {
57
- try {
58
- if (r && !r.done && (m = i["return"])) m.call(i);
59
- }
60
- finally { if (e) throw e.error; }
61
- }
62
- return ar;
63
- };
64
1
  import { createBddFromTruthTable } from './create-bdd-from-truth-table';
65
2
  import { firstKeyOfMap, shuffleArray, lastOfArray } from './util';
66
3
  /**
67
4
  * returns the bdd with less nodes
68
5
  */
69
- export var defaultCompareResults = function (a, b) {
6
+ export const defaultCompareResults = function (a, b) {
70
7
  if (a.countNodes() <= b.countNodes()) {
71
8
  return a;
72
9
  }
@@ -79,148 +16,113 @@ export var defaultCompareResults = function (a, b) {
79
16
  * by randomly sorting the array
80
17
  * and checking the resulting bdd
81
18
  */
82
- export function optimizeBruteForce(_a) {
83
- var truthTable = _a.truthTable, _b = _a.iterations, iterations = _b === void 0 ? Infinity : _b, _c = _a.onBetterBdd, onBetterBdd = _c === void 0 ? function () { return null; } : _c, _d = _a.compareResults, compareResults = _d === void 0 ? defaultCompareResults : _d, _e = _a.afterBddCreation, afterBddCreation = _e === void 0 ? function () { return null; } : _e, _f = _a.log, log = _f === void 0 ? false : _f;
84
- return __awaiter(this, void 0, void 0, function () {
85
- var initialBdd, currentBestResult, t, _loop_1;
86
- return __generator(this, function (_g) {
87
- switch (_g.label) {
88
- case 0:
89
- initialBdd = createBddFromTruthTable(truthTable);
90
- afterBddCreation(initialBdd);
91
- initialBdd.minimize();
92
- currentBestResult = {
93
- truthTable: truthTable,
94
- bdd: initialBdd
95
- };
96
- if (log) {
97
- initialBdd.log();
98
- console.log('initial nodes amount: ' + initialBdd.countNodes());
99
- }
100
- t = 0;
101
- _loop_1 = function () {
102
- var shuffledOrdering, nextBdd, newNodesByLevel, lastLevel, newSortedLevels, lastLevelSet, betterBdd;
103
- return __generator(this, function (_a) {
104
- switch (_a.label) {
105
- case 0:
106
- t++;
107
- if (log) {
108
- console.log('-'.repeat(50));
109
- console.log('optimizeBruteForce() itterate once');
110
- }
111
- shuffledOrdering = shuffleBooleanOrdering(truthTable);
112
- nextBdd = createBddFromTruthTable(shuffledOrdering.newTable);
113
- newNodesByLevel = new Map();
114
- lastLevel = lastOfArray(nextBdd.getLevels());
115
- newSortedLevels = [];
116
- nextBdd.getLevels()
117
- .filter(function (level) { return level !== lastLevel; })
118
- .forEach(function (level) {
119
- var newLevel = shuffledOrdering.mappingBeforeToAfter[level];
120
- newSortedLevels.push(newLevel);
121
- var levelSet = new Set();
122
- newNodesByLevel.set(newLevel, levelSet);
123
- nextBdd.getNodesOfLevel(level).forEach(function (node) {
124
- node.level = newLevel;
125
- levelSet.add(node);
126
- });
127
- });
128
- lastLevelSet = new Set();
129
- nextBdd.getNodesOfLevel(lastLevel).forEach(function (node) { return lastLevelSet.add(node); });
130
- newNodesByLevel.set(lastLevel, lastLevelSet);
131
- newSortedLevels.push(lastLevel);
132
- nextBdd.nodesByLevel = newNodesByLevel;
133
- nextBdd.levels = newSortedLevels;
134
- afterBddCreation(nextBdd);
135
- nextBdd.minimize();
136
- if (log) {
137
- console.log('got new bdd with nodes amount of ' + nextBdd.countNodes());
138
- // nextBdd.log();
139
- console.dir(shuffledOrdering.mappingBeforeToAfter);
140
- }
141
- return [4 /*yield*/, compareResults(currentBestResult.bdd, nextBdd)];
142
- case 1:
143
- betterBdd = _a.sent();
144
- if (betterBdd.type !== 'RootNode') {
145
- throw new Error('compareResults did not return a bdd');
146
- }
147
- if (betterBdd === nextBdd) {
148
- if (log) {
149
- console.log('#'.repeat(50));
150
- console.log('found better bdd ' + nextBdd.countNodes());
151
- }
152
- currentBestResult = {
153
- bdd: nextBdd,
154
- truthTable: shuffledOrdering.newTable
155
- };
156
- onBetterBdd(currentBestResult);
157
- }
158
- return [2 /*return*/];
159
- }
160
- });
161
- };
162
- _g.label = 1;
163
- case 1:
164
- if (!(t < iterations)) return [3 /*break*/, 3];
165
- return [5 /*yield**/, _loop_1()];
166
- case 2:
167
- _g.sent();
168
- return [3 /*break*/, 1];
169
- case 3: return [2 /*return*/, currentBestResult];
170
- }
19
+ export async function optimizeBruteForce({ truthTable, iterations = Infinity, onBetterBdd = () => null, compareResults = defaultCompareResults, afterBddCreation = () => null, log = false }) {
20
+ const initialBdd = createBddFromTruthTable(truthTable);
21
+ afterBddCreation(initialBdd);
22
+ initialBdd.minimize();
23
+ let currentBestResult = {
24
+ truthTable,
25
+ bdd: initialBdd
26
+ };
27
+ if (log) {
28
+ initialBdd.log();
29
+ console.log('initial nodes amount: ' + initialBdd.countNodes());
30
+ }
31
+ let t = 0;
32
+ while (t < iterations) {
33
+ t++;
34
+ if (log) {
35
+ console.log('-'.repeat(50));
36
+ console.log('optimizeBruteForce() itterate once');
37
+ }
38
+ const shuffledOrdering = shuffleBooleanOrdering(truthTable);
39
+ const nextBdd = createBddFromTruthTable(shuffledOrdering.newTable);
40
+ // change the levels of each node
41
+ const newNodesByLevel = new Map();
42
+ const lastLevel = lastOfArray(nextBdd.getLevels());
43
+ const newSortedLevels = [];
44
+ nextBdd.getLevels()
45
+ .filter(level => level !== lastLevel)
46
+ .forEach(level => {
47
+ const newLevel = shuffledOrdering.mappingBeforeToAfter[level];
48
+ newSortedLevels.push(newLevel);
49
+ const levelSet = new Set();
50
+ newNodesByLevel.set(newLevel, levelSet);
51
+ nextBdd.getNodesOfLevel(level).forEach(node => {
52
+ node.level = newLevel;
53
+ levelSet.add(node);
54
+ });
171
55
  });
172
- });
56
+ const lastLevelSet = new Set();
57
+ nextBdd.getNodesOfLevel(lastLevel).forEach(node => lastLevelSet.add(node));
58
+ newNodesByLevel.set(lastLevel, lastLevelSet);
59
+ newSortedLevels.push(lastLevel);
60
+ nextBdd.nodesByLevel = newNodesByLevel;
61
+ nextBdd.levels = newSortedLevels;
62
+ afterBddCreation(nextBdd);
63
+ nextBdd.minimize();
64
+ if (log) {
65
+ console.log('got new bdd with nodes amount of ' + nextBdd.countNodes());
66
+ // nextBdd.log();
67
+ console.dir(shuffledOrdering.mappingBeforeToAfter);
68
+ }
69
+ const betterBdd = await compareResults(currentBestResult.bdd, nextBdd);
70
+ if (betterBdd.type !== 'RootNode') {
71
+ throw new Error('compareResults did not return a bdd');
72
+ }
73
+ if (betterBdd === nextBdd) {
74
+ if (log) {
75
+ console.log('#'.repeat(50));
76
+ console.log('found better bdd ' + nextBdd.countNodes());
77
+ }
78
+ currentBestResult = {
79
+ bdd: nextBdd,
80
+ truthTable: shuffledOrdering.newTable
81
+ };
82
+ onBetterBdd(currentBestResult);
83
+ }
84
+ }
85
+ return currentBestResult;
173
86
  }
174
87
  export function shuffleBooleanOrdering(truthTable) {
175
- var e_1, _a;
176
- var firstKey = firstKeyOfMap(truthTable);
177
- var arrayWithIndexes = getArrayWithIndexes(firstKey.length);
178
- var shuffled = shuffleArray(arrayWithIndexes);
179
- var mapping = {};
180
- var mappingBeforeToAfter = {};
181
- shuffled.forEach(function (indexBefore, indexAfter) {
88
+ const firstKey = firstKeyOfMap(truthTable);
89
+ const arrayWithIndexes = getArrayWithIndexes(firstKey.length);
90
+ const shuffled = shuffleArray(arrayWithIndexes);
91
+ const mapping = {};
92
+ const mappingBeforeToAfter = {};
93
+ shuffled.forEach((indexBefore, indexAfter) => {
182
94
  mapping[indexAfter] = indexBefore;
183
95
  mappingBeforeToAfter[indexBefore] = indexAfter;
184
96
  });
185
- var newTable = new Map();
186
- try {
187
- for (var _b = __values(truthTable.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
188
- var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
189
- var newKey = changeKeyOrder(key, mapping);
190
- newTable.set(newKey, value);
191
- }
192
- }
193
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
194
- finally {
195
- try {
196
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
197
- }
198
- finally { if (e_1) throw e_1.error; }
97
+ const newTable = new Map();
98
+ for (const [key, value] of truthTable.entries()) {
99
+ const newKey = changeKeyOrder(key, mapping);
100
+ newTable.set(newKey, value);
199
101
  }
200
102
  return {
201
- newTable: newTable,
202
- mapping: mapping,
203
- mappingBeforeToAfter: mappingBeforeToAfter
103
+ newTable,
104
+ mapping,
105
+ mappingBeforeToAfter
204
106
  };
205
107
  }
206
108
  export function changeKeyOrder(oldKey, mappingBeforeToAfter) {
207
- var chars = oldKey
109
+ const chars = oldKey
208
110
  .split('')
209
- .map(function (char, indexBefore) {
111
+ .map((char, indexBefore) => {
210
112
  return {
211
- char: char,
212
- indexBefore: indexBefore,
113
+ char,
114
+ indexBefore,
213
115
  indexAfter: mappingBeforeToAfter[indexBefore]
214
116
  };
215
117
  })
216
- .sort(function (a, b) { return a.indexAfter - b.indexAfter; })
217
- .map(function (charObj) { return charObj.char; })
118
+ .sort((a, b) => a.indexAfter - b.indexAfter)
119
+ .map(charObj => charObj.char)
218
120
  .join('');
219
121
  return chars;
220
122
  }
221
123
  export function getArrayWithIndexes(size) {
222
- var ret = [];
223
- var last = 0;
124
+ const ret = [];
125
+ let last = 0;
224
126
  while (last < size) {
225
127
  ret.push(last);
226
128
  last++;
@@ -1 +1 @@
1
- {"version":3,"file":"optimize-brute-force.js","sourceRoot":"","sources":["../../src/optimize-brute-force.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optimize-brute-force.js","sourceRoot":"","sources":["../../src/optimize-brute-force.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { NonLeafNode, NonRootNode } from './types';
1
+ import type { NonLeafNode, NonRootNode } from './types';
2
2
  /**
3
3
  * represents the parents of a single node
4
4
  */
@@ -1,66 +1,38 @@
1
- var __values = (this && this.__values) || function(o) {
2
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
3
- if (m) return m.call(o);
4
- if (o && typeof o.length === "number") return {
5
- next: function () {
6
- if (o && i >= o.length) o = void 0;
7
- return { value: o && o[i++], done: !o };
8
- }
9
- };
10
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
11
- };
12
1
  /**
13
2
  * represents the parents of a single node
14
3
  */
15
- var Parents = /** @class */ (function () {
16
- function Parents(node) {
4
+ export class Parents {
5
+ constructor(node) {
17
6
  this.node = node;
18
7
  this.parents = new Set();
19
8
  }
20
- Parents.prototype.remove = function (node) {
9
+ remove(node) {
21
10
  this.parents.delete(node);
22
11
  if (this.parents.size === 0) {
23
12
  this.node.remove();
24
13
  }
25
- };
26
- Parents.prototype.getAll = function () {
14
+ }
15
+ getAll() {
27
16
  return Array.from(this.parents);
28
- };
29
- Parents.prototype.add = function (node) {
17
+ }
18
+ add(node) {
30
19
  if (this.node.level === node.level) {
31
20
  throw new Error('a node cannot be parent of a node with the same level');
32
21
  }
33
22
  this.parents.add(node);
34
- };
35
- Parents.prototype.has = function (node) {
23
+ }
24
+ has(node) {
36
25
  return this.parents.has(node);
37
- };
38
- Parents.prototype.toString = function () {
39
- var e_1, _a;
40
- var ret = [];
41
- try {
42
- for (var _b = __values(this.parents), _c = _b.next(); !_c.done; _c = _b.next()) {
43
- var parent_1 = _c.value;
44
- ret.push(parent_1.id);
45
- }
46
- }
47
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
48
- finally {
49
- try {
50
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
51
- }
52
- finally { if (e_1) throw e_1.error; }
26
+ }
27
+ toString() {
28
+ const ret = [];
29
+ for (const parent of this.parents) {
30
+ ret.push(parent.id);
53
31
  }
54
32
  return ret.join(', ');
55
- };
56
- Object.defineProperty(Parents.prototype, "size", {
57
- get: function () {
58
- return this.parents.size;
59
- },
60
- enumerable: true,
61
- configurable: true
62
- });
63
- return Parents;
64
- }());
65
- export { Parents };
33
+ }
34
+ get size() {
35
+ return this.parents.size;
36
+ }
37
+ }
66
38
  //# sourceMappingURL=parents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parents.js","sourceRoot":"","sources":["../../src/parents.ts"],"names":[],"mappings":";;;;;;;;;;;AAKA;;GAEG;AACH;IAII,iBACW,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAHpB,YAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;IAI1C,CAAC;IAEE,wBAAM,GAAb,UAAc,IAAiB;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SACtB;IACL,CAAC;IAEM,wBAAM,GAAb;QACI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEM,qBAAG,GAAV,UAAW,IAAiB;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC5E;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,qBAAG,GAAV,UAAW,IAAiB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,0BAAQ,GAAR;;QACI,IAAM,GAAG,GAAa,EAAE,CAAC;;YACzB,KAAqB,IAAA,KAAA,SAAA,IAAI,CAAC,OAAO,CAAA,gBAAA,4BAAE;gBAA9B,IAAM,QAAM,WAAA;gBACb,GAAG,CAAC,IAAI,CAAC,QAAM,CAAC,EAAE,CAAC,CAAC;aACvB;;;;;;;;;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,sBAAI,yBAAI;aAAR;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7B,CAAC;;;OAAA;IACL,cAAC;AAAD,CAAC,AA1CD,IA0CC"}
1
+ {"version":3,"file":"parents.js","sourceRoot":"","sources":["../../src/parents.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,OAAO,OAAO;IAIhB,YACW,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAHpB,YAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;IAI1C,CAAC;IAEE,MAAM,CAAC,IAAiB;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SACtB;IACL,CAAC;IAEM,MAAM;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEM,GAAG,CAAC,IAAiB;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC5E;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,GAAG,CAAC,IAAiB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ;QACJ,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACvB;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;CACJ"}
@@ -1,6 +1,6 @@
1
1
  import { AbstractNode } from './abstract-node';
2
2
  import { Branches } from './branches';
3
- import { NonRootNode, ResolverFunctions, SimpleBdd } from './types';
3
+ import type { NonRootNode, ResolverFunctions, SimpleBdd } from './types';
4
4
  import { LeafNode } from './leaf-node';
5
5
  export declare class RootNode extends AbstractNode {
6
6
  branches: Branches;