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,142 +1,101 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
- var __values = (this && this.__values) || function(o) {
16
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
17
- if (m) return m.call(o);
18
- if (o && typeof o.length === "number") return {
19
- next: function () {
20
- if (o && i >= o.length) o = void 0;
21
- return { value: o && o[i++], done: !o };
22
- }
23
- };
24
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
25
- };
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- var abstract_node_1 = require("./abstract-node");
28
- var branches_1 = require("./branches");
29
- var util_1 = require("./util");
30
- var minimal_string_1 = require("./minimal-string");
31
- var RootNode = /** @class */ (function (_super) {
32
- __extends(RootNode, _super);
33
- function RootNode() {
34
- var _this = _super.call(this, 0, null, 'RootNode') || this;
35
- _this.branches = new branches_1.Branches(_this);
36
- _this.levels = [];
37
- _this.nodesByLevel = new Map();
38
- _this.levels.push(0);
39
- var level0Set = new Set();
40
- level0Set.add(_this);
41
- _this.nodesByLevel.set(0, level0Set);
42
- return _this;
1
+ import { AbstractNode } from './abstract-node';
2
+ import { Branches } from './branches';
3
+ import { lastOfArray, booleanToBooleanString } from './util';
4
+ import { bddToSimpleBdd } from './minimal-string';
5
+ export class RootNode extends AbstractNode {
6
+ constructor() {
7
+ super(0, null, 'RootNode');
8
+ this.branches = new Branches(this);
9
+ this.levels = [];
10
+ this.nodesByLevel = new Map();
11
+ this.levels.push(0);
12
+ const level0Set = new Set();
13
+ level0Set.add(this);
14
+ this.nodesByLevel.set(0, level0Set);
43
15
  }
44
- RootNode.prototype.addNode = function (node) {
45
- var level = node.level;
16
+ addNode(node) {
17
+ const level = node.level;
46
18
  if (!this.levels.includes(level)) {
47
19
  this.levels.push(level);
48
20
  }
49
21
  this.ensureLevelSetExists(level);
50
- var set = this.nodesByLevel.get(level);
22
+ const set = this.nodesByLevel.get(level);
51
23
  set === null || set === void 0 ? void 0 : set.add(node);
52
- };
53
- RootNode.prototype.removeNode = function (node) {
54
- var set = this.nodesByLevel.get(node.level);
24
+ }
25
+ removeNode(node) {
26
+ const set = this.nodesByLevel.get(node.level);
55
27
  if (!set.has(node)) {
56
28
  throw new Error('removed non-existing node ' + node.id);
57
29
  }
58
30
  set.delete(node);
59
- };
60
- RootNode.prototype.ensureLevelSetExists = function (level) {
31
+ }
32
+ ensureLevelSetExists(level) {
61
33
  if (!this.nodesByLevel.has(level)) {
62
34
  this.nodesByLevel.set(level, new Set());
63
35
  }
64
- };
65
- RootNode.prototype.getLevels = function () {
66
- return Array.from(this.levels).sort(function (a, b) { return a - b; });
67
- };
68
- RootNode.prototype.getNodesOfLevel = function (level) {
36
+ }
37
+ getLevels() {
38
+ return Array.from(this.levels).sort((a, b) => a - b);
39
+ }
40
+ getNodesOfLevel(level) {
69
41
  this.ensureLevelSetExists(level);
70
- var set = this.nodesByLevel.get(level);
42
+ const set = this.nodesByLevel.get(level);
71
43
  return Array.from(set);
72
- };
73
- RootNode.prototype.countNodes = function () {
74
- var _this = this;
75
- var ret = 0;
76
- this.getLevels().forEach(function (level) {
77
- var nodesAmount = _this.getNodesOfLevel(level).length;
44
+ }
45
+ countNodes() {
46
+ let ret = 0;
47
+ this.getLevels().forEach(level => {
48
+ const nodesAmount = this.getNodesOfLevel(level).length;
78
49
  ret = ret + nodesAmount;
79
50
  });
80
51
  return ret;
81
- };
52
+ }
82
53
  /**
83
54
  * applies the reduction rules to the whole bdd
84
55
  */
85
- RootNode.prototype.minimize = function (logState) {
86
- var e_1, _a;
87
- if (logState === void 0) { logState = false; }
56
+ minimize(logState = false) {
88
57
  // console.log('minimize(): START ###############');
89
- var done = false;
58
+ let done = false;
90
59
  while (!done) {
91
60
  if (logState) {
92
61
  console.log('minimize() itterate once');
93
62
  }
94
- var successCount = 0;
95
- var lastLevel = util_1.lastOfArray(this.getLevels());
63
+ let successCount = 0;
64
+ let lastLevel = lastOfArray(this.getLevels());
96
65
  while (lastLevel > 0) {
97
- var nodes = this.getNodesOfLevel(lastLevel);
66
+ const nodes = this.getNodesOfLevel(lastLevel);
98
67
  if (logState) {
99
68
  console.log('minimize() run for level ' + lastLevel +
100
69
  ' with ' + nodes.length + ' nodes');
101
70
  // console.dir(nodes);
102
71
  }
103
- var nodeCount = 0;
104
- try {
105
- for (var nodes_1 = (e_1 = void 0, __values(nodes)), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {
106
- var node = nodes_1_1.value;
107
- nodeCount++;
108
- // do not run that often because it is expensive
109
- if (logState && nodeCount % 4000 === 0) {
110
- console.log('minimize() node #' + node.id);
72
+ let nodeCount = 0;
73
+ for (const node of nodes) {
74
+ nodeCount++;
75
+ // do not run that often because it is expensive
76
+ if (logState && nodeCount % 4000 === 0) {
77
+ console.log('minimize() node #' + node.id);
78
+ }
79
+ if (node.isLeafNode()) {
80
+ // console.log('have leaf node ' + node.id);
81
+ const reductionDone = node.asLeafNode().applyEliminationRule();
82
+ if (reductionDone) {
83
+ successCount++;
111
84
  }
112
- if (node.isLeafNode()) {
113
- // console.log('have leaf node ' + node.id);
114
- var reductionDone = node.asLeafNode().applyEliminationRule();
115
- if (reductionDone) {
116
- successCount++;
117
- }
85
+ }
86
+ if (!node.deleted && node.isInternalNode()) {
87
+ const useNode = node;
88
+ const reductionDone = useNode.applyReductionRule();
89
+ let eliminationDone = false;
90
+ if (!useNode.deleted) {
91
+ // not might now be deleted from reduction-rule
92
+ eliminationDone = useNode.applyEliminationRule(nodes);
118
93
  }
119
- if (!node.deleted && node.isInternalNode()) {
120
- var useNode = node;
121
- var reductionDone = useNode.applyReductionRule();
122
- var eliminationDone = false;
123
- if (!useNode.deleted) {
124
- // not might now be deleted from reduction-rule
125
- eliminationDone = useNode.applyEliminationRule(nodes);
126
- }
127
- if (reductionDone || eliminationDone) {
128
- successCount++;
129
- }
94
+ if (reductionDone || eliminationDone) {
95
+ successCount++;
130
96
  }
131
97
  }
132
98
  }
133
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
134
- finally {
135
- try {
136
- if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);
137
- }
138
- finally { if (e_1) throw e_1.error; }
139
- }
140
99
  lastLevel--;
141
100
  }
142
101
  if (successCount === 0) {
@@ -150,59 +109,46 @@ var RootNode = /** @class */ (function (_super) {
150
109
  }
151
110
  }
152
111
  }
153
- };
154
- RootNode.prototype.getLeafNodes = function () {
155
- var lastLevel = util_1.lastOfArray(this.getLevels());
156
- var leafNodes = this.getNodesOfLevel(lastLevel).reverse();
112
+ }
113
+ getLeafNodes() {
114
+ const lastLevel = lastOfArray(this.getLevels());
115
+ const leafNodes = this.getNodesOfLevel(lastLevel).reverse();
157
116
  return leafNodes;
158
- };
117
+ }
159
118
  /**
160
119
  * strips all leaf-nodes
161
120
  * with the given value
162
121
  */
163
- RootNode.prototype.removeIrrelevantLeafNodes = function (leafNodeValue) {
164
- var e_2, _a;
165
- var done = false;
122
+ removeIrrelevantLeafNodes(leafNodeValue) {
123
+ let done = false;
166
124
  while (!done) {
167
- var countRemoved = 0;
168
- var leafNodes = this.getLeafNodes();
169
- try {
170
- for (var leafNodes_1 = (e_2 = void 0, __values(leafNodes)), leafNodes_1_1 = leafNodes_1.next(); !leafNodes_1_1.done; leafNodes_1_1 = leafNodes_1.next()) {
171
- var leafNode = leafNodes_1_1.value;
172
- var removed = leafNode.removeIfValueEquals(leafNodeValue);
173
- if (removed) {
174
- countRemoved++;
175
- }
125
+ let countRemoved = 0;
126
+ const leafNodes = this.getLeafNodes();
127
+ for (const leafNode of leafNodes) {
128
+ const removed = leafNode.removeIfValueEquals(leafNodeValue);
129
+ if (removed) {
130
+ countRemoved++;
176
131
  }
177
132
  }
178
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
179
- finally {
180
- try {
181
- if (leafNodes_1_1 && !leafNodes_1_1.done && (_a = leafNodes_1.return)) _a.call(leafNodes_1);
182
- }
183
- finally { if (e_2) throw e_2.error; }
184
- }
185
133
  this.minimize();
186
134
  if (countRemoved === 0) {
187
135
  done = true;
188
136
  }
189
137
  }
190
- };
191
- RootNode.prototype.resolve = function (fns, booleanFunctionInput) {
192
- var currentNode = this;
138
+ }
139
+ resolve(fns, booleanFunctionInput) {
140
+ let currentNode = this;
193
141
  while (true) {
194
- var booleanResult = fns[currentNode.level](booleanFunctionInput);
195
- var branchKey = util_1.booleanToBooleanString(booleanResult);
142
+ const booleanResult = fns[currentNode.level](booleanFunctionInput);
143
+ const branchKey = booleanToBooleanString(booleanResult);
196
144
  currentNode = currentNode.branches.getBranch(branchKey);
197
145
  if (currentNode.isLeafNode()) {
198
146
  return currentNode.asLeafNode().value;
199
147
  }
200
148
  }
201
- };
202
- RootNode.prototype.toSimpleBdd = function () {
203
- return minimal_string_1.bddToSimpleBdd(this);
204
- };
205
- return RootNode;
206
- }(abstract_node_1.AbstractNode));
207
- exports.RootNode = RootNode;
149
+ }
150
+ toSimpleBdd() {
151
+ return bddToSimpleBdd(this);
152
+ }
153
+ }
208
154
  //# sourceMappingURL=root-node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root-node.js","sourceRoot":"","sources":["../../src/root-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"root-node.js","sourceRoot":"","sources":["../../src/root-node.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,23 @@
1
1
  import { LeafNode } from './leaf-node';
2
2
  import { InternalNode } from './internal-node';
3
3
  import { RootNode } from './root-node';
4
- export declare type NodeType = 'LeafNode' | 'InternalNode' | 'RootNode';
5
- export declare type NonLeafNode = InternalNode | RootNode;
6
- export declare type NonRootNode = InternalNode | LeafNode;
7
- export declare type TruthTable = Map<string, number>;
8
- export declare type BooleanString = '0' | '1';
9
- export declare type ResolverFunction<T> = (i: T) => boolean;
10
- export declare type ResolverFunctions<T = any> = {
4
+ export type NodeType = 'LeafNode' | 'InternalNode' | 'RootNode';
5
+ export type NonLeafNode = InternalNode | RootNode;
6
+ export type NonRootNode = InternalNode | LeafNode;
7
+ export type TruthTable = Map<string, number>;
8
+ export type BooleanString = '0' | '1';
9
+ export type ResolverFunction<T> = (i: T) => boolean;
10
+ export type ResolverFunctions<T = any> = {
11
11
  [k: number]: ResolverFunction<T>;
12
12
  };
13
- export declare type SimpleBddLeafNode = number;
13
+ export type SimpleBddLeafNode = number;
14
14
  /**
15
15
  * a simple bdd is a json-representation
16
16
  * which could be parsed from the minimal string
17
17
  * use this to have great performance
18
18
  * when resolving values
19
19
  */
20
- export declare type SimpleBdd = {
20
+ export type SimpleBdd = {
21
21
  0: SimpleBdd | SimpleBddLeafNode;
22
22
  1: SimpleBdd | SimpleBddLeafNode;
23
23
  l: number;
package/dist/lib/types.js CHANGED
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=types.js.map
@@ -1,4 +1,4 @@
1
- import { BooleanString } from './types';
1
+ import type { BooleanString } from './types';
2
2
  export declare function booleanStringToBoolean(str: BooleanString): boolean;
3
3
  export declare function booleanToBooleanString(b: boolean): BooleanString;
4
4
  export declare function oppositeBoolean(input: BooleanString): BooleanString;
package/dist/lib/util.js CHANGED
@@ -1,22 +1,4 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- function booleanStringToBoolean(str) {
1
+ export function booleanStringToBoolean(str) {
20
2
  if (str === '1') {
21
3
  return true;
22
4
  }
@@ -24,8 +6,7 @@ function booleanStringToBoolean(str) {
24
6
  return false;
25
7
  }
26
8
  }
27
- exports.booleanStringToBoolean = booleanStringToBoolean;
28
- function booleanToBooleanString(b) {
9
+ export function booleanToBooleanString(b) {
29
10
  if (b) {
30
11
  return '1';
31
12
  }
@@ -33,8 +14,7 @@ function booleanToBooleanString(b) {
33
14
  return '0';
34
15
  }
35
16
  }
36
- exports.booleanToBooleanString = booleanToBooleanString;
37
- function oppositeBoolean(input) {
17
+ export function oppositeBoolean(input) {
38
18
  if (input === '1') {
39
19
  return '0';
40
20
  }
@@ -42,42 +22,37 @@ function oppositeBoolean(input) {
42
22
  return '1';
43
23
  }
44
24
  }
45
- exports.oppositeBoolean = oppositeBoolean;
46
- function lastChar(str) {
25
+ export function lastChar(str) {
47
26
  return str.slice(-1);
48
27
  }
49
- exports.lastChar = lastChar;
50
28
  /**
51
29
  * @link https://stackoverflow.com/a/1349426
52
30
  */
53
- function makeid(length) {
54
- if (length === void 0) { length = 6; }
55
- var result = '';
56
- var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
57
- var charactersLength = characters.length;
58
- for (var i = 0; i < length; i++) {
31
+ function makeid(length = 6) {
32
+ let result = '';
33
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
34
+ const charactersLength = characters.length;
35
+ for (let i = 0; i < length; i++) {
59
36
  result += characters.charAt(Math.floor(Math.random() * charactersLength));
60
37
  }
61
38
  return result;
62
39
  }
63
- var nodeIdPrefix = makeid(4);
64
- var lastIdGen = 0;
65
- function nextNodeId() {
66
- var ret = 'node_' + nodeIdPrefix + '_' + lastIdGen;
40
+ const nodeIdPrefix = makeid(4);
41
+ let lastIdGen = 0;
42
+ export function nextNodeId() {
43
+ const ret = 'node_' + nodeIdPrefix + '_' + lastIdGen;
67
44
  lastIdGen++;
68
45
  return ret;
69
46
  }
70
- exports.nextNodeId = nextNodeId;
71
47
  /**
72
48
  * @link https://stackoverflow.com/a/16155417
73
49
  */
74
- function decimalToPaddedBinary(decimal, padding) {
75
- var binary = (decimal >>> 0).toString(2);
76
- var padded = binary.padStart(padding, '0');
50
+ export function decimalToPaddedBinary(decimal, padding) {
51
+ const binary = (decimal >>> 0).toString(2);
52
+ const padded = binary.padStart(padding, '0');
77
53
  return padded;
78
54
  }
79
- exports.decimalToPaddedBinary = decimalToPaddedBinary;
80
- function oppositeBinary(i) {
55
+ export function oppositeBinary(i) {
81
56
  if (i === '1') {
82
57
  return '0';
83
58
  }
@@ -88,57 +63,47 @@ function oppositeBinary(i) {
88
63
  throw new Error('non-binary given');
89
64
  }
90
65
  }
91
- exports.oppositeBinary = oppositeBinary;
92
- function binaryToDecimal(binary) {
66
+ export function binaryToDecimal(binary) {
93
67
  return parseInt(binary, 2);
94
68
  }
95
- exports.binaryToDecimal = binaryToDecimal;
96
- function minBinaryWithLength(length) {
97
- return new Array(length).fill(0).map(function () { return '0'; }).join('');
69
+ export function minBinaryWithLength(length) {
70
+ return new Array(length).fill(0).map(() => '0').join('');
98
71
  }
99
- exports.minBinaryWithLength = minBinaryWithLength;
100
- function maxBinaryWithLength(length) {
101
- return new Array(length).fill(0).map(function () { return '1'; }).join('');
72
+ export function maxBinaryWithLength(length) {
73
+ return new Array(length).fill(0).map(() => '1').join('');
102
74
  }
103
- exports.maxBinaryWithLength = maxBinaryWithLength;
104
- function getNextStateSet(stateSet) {
105
- var decimal = binaryToDecimal(stateSet);
106
- var increase = decimal + 1;
107
- var binary = decimalToPaddedBinary(increase, stateSet.length);
75
+ export function getNextStateSet(stateSet) {
76
+ const decimal = binaryToDecimal(stateSet);
77
+ const increase = decimal + 1;
78
+ const binary = decimalToPaddedBinary(increase, stateSet.length);
108
79
  return binary;
109
80
  }
110
- exports.getNextStateSet = getNextStateSet;
111
- function firstKeyOfMap(map) {
112
- var iterator1 = map.keys();
81
+ export function firstKeyOfMap(map) {
82
+ const iterator1 = map.keys();
113
83
  return iterator1.next().value;
114
84
  }
115
- exports.firstKeyOfMap = firstKeyOfMap;
116
85
  /**
117
86
  * Shuffles array in place. ES6 version
118
87
  * @link https://stackoverflow.com/a/6274381
119
88
  */
120
- function shuffleArray(a) {
121
- var _a;
122
- for (var i = a.length - 1; i > 0; i--) {
123
- var j = Math.floor(Math.random() * (i + 1));
124
- _a = __read([a[j], a[i]], 2), a[i] = _a[0], a[j] = _a[1];
89
+ export function shuffleArray(a) {
90
+ for (let i = a.length - 1; i > 0; i--) {
91
+ const j = Math.floor(Math.random() * (i + 1));
92
+ [a[i], a[j]] = [a[j], a[i]];
125
93
  }
126
94
  return a;
127
95
  }
128
- exports.shuffleArray = shuffleArray;
129
- function lastOfArray(ar) {
96
+ export function lastOfArray(ar) {
130
97
  return ar[ar.length - 1];
131
98
  }
132
- exports.lastOfArray = lastOfArray;
133
99
  /**
134
100
  * @link https://stackoverflow.com/a/6259536
135
101
  */
136
- function splitStringToChunks(str, chunkSize) {
137
- var chunks = [];
138
- for (var i = 0, charsLength = str.length; i < charsLength; i += chunkSize) {
102
+ export function splitStringToChunks(str, chunkSize) {
103
+ const chunks = [];
104
+ for (let i = 0, charsLength = str.length; i < charsLength; i += chunkSize) {
139
105
  chunks.push(str.substring(i, i + chunkSize));
140
106
  }
141
107
  return chunks;
142
108
  }
143
- exports.splitStringToChunks = splitStringToChunks;
144
109
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "binary-decision-diagram",
3
- "version": "1.3.1",
3
+ "version": "2.0.0",
4
4
  "description": "A library to create, minimize and optimize binary decision diagrams",
5
5
  "keywords": [
6
6
  "binary decision diagram",
@@ -18,28 +18,33 @@
18
18
  "url": "https://github.com/pubkey/binary-decision-diagram/issues"
19
19
  },
20
20
  "homepage": "https://github.com/pubkey/binary-decision-diagram#readme",
21
+ "exports": {
22
+ ".": {
23
+ "import": "./dist/es/index.js",
24
+ "default": "./dist/lib/index.js"
25
+ }
26
+ },
21
27
  "main": "./dist/lib/index.js",
22
- "jsnext:main": "./dist/es/index.js",
23
28
  "module": "./dist/es/index.js",
24
- "sideEffects": false,
25
29
  "types": "./dist/es/index.d.ts",
30
+ "sideEffects": false,
26
31
  "scripts": {
27
32
  "lint": "tslint --project .",
28
33
  "lint:fix": "tslint --project . --fix",
29
34
  "transpile": "tsc -p ./ && echo '# transpile es5 (require) sucess!'",
30
- "transpile:es": "tsc -p ./ --target ES5 --module ES6 --outDir ./dist/es && echo '# transpile es (modules) sucess!'",
35
+ "transpile:es": "tsc -p ./ --module ES6 --outDir ./dist/es && echo '# transpile es (modules) sucess!'",
31
36
  "build": "rimraf -r ./dist && npm run transpile && npm run transpile:es",
32
37
  "test": "mocha -r ts-node/register test/unit/index.test.ts --timeout 40000 --bail"
33
38
  },
34
39
  "devDependencies": {
35
- "@types/mocha": "7.0.2",
36
- "@types/node": "13.13.4",
40
+ "@types/mocha": "10.0.1",
41
+ "@types/node": "18.11.18",
37
42
  "assert": "2.0.0",
38
- "async-test-util": "1.7.3",
39
- "mocha": "7.1.2",
43
+ "async-test-util": "2.0.0",
44
+ "mocha": "10.2.0",
40
45
  "rimraf": "3.0.2",
41
- "ts-node": "8.9.1",
42
- "tslint": "6.1.2",
43
- "typescript": "3.8.3"
46
+ "ts-node": "10.9.1",
47
+ "tslint": "6.1.3",
48
+ "typescript": "4.9.4"
44
49
  }
45
50
  }
package/renovate.json CHANGED
@@ -3,5 +3,6 @@
3
3
  "config:base"
4
4
  ],
5
5
  "statusCheckVerify": true,
6
- "automerge": true
7
- }
6
+ "automerge": true,
7
+ "dependencyDashboard": false
8
+ }
@@ -1,5 +1,5 @@
1
1
  import { nextNodeId } from './util';
2
- import { NonRootNode, NonLeafNode, NodeType } from './types';
2
+ import type { NonRootNode, NonLeafNode, NodeType } from './types';
3
3
  import { Branches } from './branches';
4
4
  import { RootNode } from './root-node';
5
5
  import { InternalNode } from './internal-node';
package/src/branches.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { BooleanString, NonRootNode, NonLeafNode } from './types';
2
- import { oppositeBoolean } from './util';
1
+ import type { BooleanString, NonRootNode, NonLeafNode } from './types';
3
2
  import { AbstractNode } from './abstract-node';
4
3
 
5
4
  /**