@blackglory/structures 0.11.8 → 0.12.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 (190) hide show
  1. package/README.md +7 -0
  2. package/lib/{es2015/array.d.ts → array.d.ts} +0 -0
  3. package/lib/{es2015/array.js → array.js} +0 -0
  4. package/lib/array.js.map +1 -0
  5. package/lib/{es2015/big-map.d.ts → big-map.d.ts} +0 -0
  6. package/lib/{es2015/big-map.js → big-map.js} +0 -0
  7. package/lib/big-map.js.map +1 -0
  8. package/lib/{es2015/big-set.d.ts → big-set.d.ts} +0 -0
  9. package/lib/{es2015/big-set.js → big-set.js} +0 -0
  10. package/lib/big-set.js.map +1 -0
  11. package/lib/{es2015/bit-set.d.ts → bit-set.d.ts} +0 -0
  12. package/lib/{es2015/bit-set.js → bit-set.js} +0 -0
  13. package/lib/bit-set.js.map +1 -0
  14. package/lib/{es2015/box.d.ts → box.d.ts} +0 -0
  15. package/lib/{es2015/box.js → box.js} +0 -0
  16. package/lib/box.js.map +1 -0
  17. package/lib/{es2015/cons.d.ts → cons.d.ts} +0 -0
  18. package/lib/{es2015/cons.js → cons.js} +0 -0
  19. package/lib/cons.js.map +1 -0
  20. package/lib/{es2015/dynamic-typed-array.d.ts → dynamic-typed-array.d.ts} +1 -0
  21. package/lib/{es2015/dynamic-typed-array.js → dynamic-typed-array.js} +4 -0
  22. package/lib/dynamic-typed-array.js.map +1 -0
  23. package/lib/{es2015/emitter.d.ts → emitter.d.ts} +0 -0
  24. package/lib/{es2015/emitter.js → emitter.js} +0 -0
  25. package/lib/emitter.js.map +1 -0
  26. package/lib/{es2015/expirable-map.d.ts → expirable-map.d.ts} +0 -0
  27. package/lib/{es2015/expirable-map.js → expirable-map.js} +0 -0
  28. package/lib/expirable-map.js.map +1 -0
  29. package/lib/{es2015/hash-map.d.ts → hash-map.d.ts} +0 -0
  30. package/lib/{es2015/hash-map.js → hash-map.js} +0 -0
  31. package/lib/hash-map.js.map +1 -0
  32. package/lib/{es2015/hash-set.d.ts → hash-set.d.ts} +0 -0
  33. package/lib/{es2015/hash-set.js → hash-set.js} +0 -0
  34. package/lib/hash-set.js.map +1 -0
  35. package/lib/{es2015/index.d.ts → index.d.ts} +0 -0
  36. package/lib/{es2015/index.js → index.js} +0 -0
  37. package/lib/index.js.map +1 -0
  38. package/lib/{es2015/lru-map.d.ts → lru-map.d.ts} +0 -0
  39. package/lib/{es2015/lru-map.js → lru-map.js} +0 -0
  40. package/lib/lru-map.js.map +1 -0
  41. package/lib/{es2015/queue.d.ts → queue.d.ts} +0 -0
  42. package/lib/{es2015/queue.js → queue.js} +0 -0
  43. package/lib/queue.js.map +1 -0
  44. package/lib/{es2015/radix-tree.d.ts → radix-tree.d.ts} +0 -0
  45. package/lib/{es2015/radix-tree.js → radix-tree.js} +0 -0
  46. package/lib/radix-tree.js.map +1 -0
  47. package/lib/{es2015/sorted-set.d.ts → sorted-set.d.ts} +0 -0
  48. package/lib/{es2015/sorted-set.js → sorted-set.js} +0 -0
  49. package/lib/sorted-set.js.map +1 -0
  50. package/lib/{es2018/sparse-map.d.ts → sparse-map.d.ts} +1 -0
  51. package/lib/{es2018/sparse-map.js → sparse-map.js} +5 -0
  52. package/lib/sparse-map.js.map +1 -0
  53. package/lib/{es2015/sparse-set.d.ts → sparse-set.d.ts} +2 -0
  54. package/lib/{es2015/sparse-set.js → sparse-set.js} +7 -0
  55. package/lib/{es2015/sparse-set.js.map → sparse-set.js.map} +1 -1
  56. package/lib/{es2015/string-radix-tree.d.ts → string-radix-tree.d.ts} +0 -0
  57. package/lib/{es2015/string-radix-tree.js → string-radix-tree.js} +0 -0
  58. package/lib/string-radix-tree.js.map +1 -0
  59. package/lib/{es2015/string-trie-map.d.ts → string-trie-map.d.ts} +0 -0
  60. package/lib/{es2015/string-trie-map.js → string-trie-map.js} +0 -0
  61. package/lib/string-trie-map.js.map +1 -0
  62. package/lib/{es2015/tlru-map.d.ts → tlru-map.d.ts} +0 -0
  63. package/lib/{es2015/tlru-map.js → tlru-map.js} +0 -0
  64. package/lib/tlru-map.js.map +1 -0
  65. package/lib/{es2015/trie-map.d.ts → trie-map.d.ts} +0 -0
  66. package/lib/{es2015/trie-map.js → trie-map.js} +0 -0
  67. package/lib/trie-map.js.map +1 -0
  68. package/lib/{es2015/typed-bit-set.d.ts → typed-bit-set.d.ts} +0 -0
  69. package/lib/{es2015/typed-bit-set.js → typed-bit-set.js} +0 -0
  70. package/lib/typed-bit-set.js.map +1 -0
  71. package/lib/{es2015/typed-sparse-map.d.ts → typed-sparse-map.d.ts} +1 -0
  72. package/lib/{es2015/typed-sparse-map.js → typed-sparse-map.js} +5 -0
  73. package/lib/typed-sparse-map.js.map +1 -0
  74. package/lib/{es2015/typed-sparse-set.d.ts → typed-sparse-set.d.ts} +2 -0
  75. package/lib/{es2018/typed-sparse-set.js → typed-sparse-set.js} +7 -0
  76. package/lib/typed-sparse-set.js.map +1 -0
  77. package/lib/{es2015/utils → utils}/skip-list.d.ts +0 -0
  78. package/lib/{es2015/utils → utils}/skip-list.js +0 -0
  79. package/lib/utils/skip-list.js.map +1 -0
  80. package/lib/{es2015/utils → utils}/trailing-zeros.d.ts +0 -0
  81. package/lib/{es2015/utils → utils}/trailing-zeros.js +0 -0
  82. package/lib/utils/trailing-zeros.js.map +1 -0
  83. package/package.json +13 -16
  84. package/lib/es2015/array.js.map +0 -1
  85. package/lib/es2015/big-map.js.map +0 -1
  86. package/lib/es2015/big-set.js.map +0 -1
  87. package/lib/es2015/bit-set.js.map +0 -1
  88. package/lib/es2015/box.js.map +0 -1
  89. package/lib/es2015/cons.js.map +0 -1
  90. package/lib/es2015/dynamic-typed-array.js.map +0 -1
  91. package/lib/es2015/emitter.js.map +0 -1
  92. package/lib/es2015/expirable-map.js.map +0 -1
  93. package/lib/es2015/hash-map.js.map +0 -1
  94. package/lib/es2015/hash-set.js.map +0 -1
  95. package/lib/es2015/index.js.map +0 -1
  96. package/lib/es2015/lru-map.js.map +0 -1
  97. package/lib/es2015/queue.js.map +0 -1
  98. package/lib/es2015/radix-tree.js.map +0 -1
  99. package/lib/es2015/sorted-set.js.map +0 -1
  100. package/lib/es2015/sparse-map.d.ts +0 -16
  101. package/lib/es2015/sparse-map.js +0 -75
  102. package/lib/es2015/sparse-map.js.map +0 -1
  103. package/lib/es2015/string-radix-tree.js.map +0 -1
  104. package/lib/es2015/string-trie-map.js.map +0 -1
  105. package/lib/es2015/tlru-map.js.map +0 -1
  106. package/lib/es2015/trie-map.js.map +0 -1
  107. package/lib/es2015/typed-bit-set.js.map +0 -1
  108. package/lib/es2015/typed-sparse-map.js.map +0 -1
  109. package/lib/es2015/typed-sparse-set.js +0 -53
  110. package/lib/es2015/typed-sparse-set.js.map +0 -1
  111. package/lib/es2015/utils/skip-list.js.map +0 -1
  112. package/lib/es2015/utils/trailing-zeros.js.map +0 -1
  113. package/lib/es2018/array.d.ts +0 -4
  114. package/lib/es2018/array.js +0 -24
  115. package/lib/es2018/array.js.map +0 -1
  116. package/lib/es2018/big-map.d.ts +0 -14
  117. package/lib/es2018/big-map.js +0 -86
  118. package/lib/es2018/big-map.js.map +0 -1
  119. package/lib/es2018/big-set.d.ts +0 -11
  120. package/lib/es2018/big-set.js +0 -64
  121. package/lib/es2018/big-set.js.map +0 -1
  122. package/lib/es2018/bit-set.d.ts +0 -18
  123. package/lib/es2018/bit-set.js +0 -101
  124. package/lib/es2018/bit-set.js.map +0 -1
  125. package/lib/es2018/box.d.ts +0 -7
  126. package/lib/es2018/box.js +0 -19
  127. package/lib/es2018/box.js.map +0 -1
  128. package/lib/es2018/cons.d.ts +0 -4
  129. package/lib/es2018/cons.js +0 -18
  130. package/lib/es2018/cons.js.map +0 -1
  131. package/lib/es2018/dynamic-typed-array.d.ts +0 -26
  132. package/lib/es2018/dynamic-typed-array.js +0 -138
  133. package/lib/es2018/dynamic-typed-array.js.map +0 -1
  134. package/lib/es2018/emitter.d.ts +0 -9
  135. package/lib/es2018/emitter.js +0 -51
  136. package/lib/es2018/emitter.js.map +0 -1
  137. package/lib/es2018/expirable-map.d.ts +0 -19
  138. package/lib/es2018/expirable-map.js +0 -99
  139. package/lib/es2018/expirable-map.js.map +0 -1
  140. package/lib/es2018/hash-map.d.ts +0 -12
  141. package/lib/es2018/hash-map.js +0 -33
  142. package/lib/es2018/hash-map.js.map +0 -1
  143. package/lib/es2018/hash-set.d.ts +0 -13
  144. package/lib/es2018/hash-set.js +0 -36
  145. package/lib/es2018/hash-set.js.map +0 -1
  146. package/lib/es2018/index.d.ts +0 -24
  147. package/lib/es2018/index.js +0 -45
  148. package/lib/es2018/index.js.map +0 -1
  149. package/lib/es2018/lru-map.d.ts +0 -14
  150. package/lib/es2018/lru-map.js +0 -56
  151. package/lib/es2018/lru-map.js.map +0 -1
  152. package/lib/es2018/queue.d.ts +0 -9
  153. package/lib/es2018/queue.js +0 -31
  154. package/lib/es2018/queue.js.map +0 -1
  155. package/lib/es2018/radix-tree.d.ts +0 -17
  156. package/lib/es2018/radix-tree.js +0 -221
  157. package/lib/es2018/radix-tree.js.map +0 -1
  158. package/lib/es2018/sorted-set.d.ts +0 -10
  159. package/lib/es2018/sorted-set.js +0 -30
  160. package/lib/es2018/sorted-set.js.map +0 -1
  161. package/lib/es2018/sparse-map.js.map +0 -1
  162. package/lib/es2018/sparse-set.d.ts +0 -11
  163. package/lib/es2018/sparse-set.js +0 -54
  164. package/lib/es2018/sparse-set.js.map +0 -1
  165. package/lib/es2018/string-radix-tree.d.ts +0 -17
  166. package/lib/es2018/string-radix-tree.js +0 -221
  167. package/lib/es2018/string-radix-tree.js.map +0 -1
  168. package/lib/es2018/string-trie-map.d.ts +0 -11
  169. package/lib/es2018/string-trie-map.js +0 -96
  170. package/lib/es2018/string-trie-map.js.map +0 -1
  171. package/lib/es2018/tlru-map.d.ts +0 -23
  172. package/lib/es2018/tlru-map.js +0 -124
  173. package/lib/es2018/tlru-map.js.map +0 -1
  174. package/lib/es2018/trie-map.d.ts +0 -11
  175. package/lib/es2018/trie-map.js +0 -96
  176. package/lib/es2018/trie-map.js.map +0 -1
  177. package/lib/es2018/typed-bit-set.d.ts +0 -20
  178. package/lib/es2018/typed-bit-set.js +0 -102
  179. package/lib/es2018/typed-bit-set.js.map +0 -1
  180. package/lib/es2018/typed-sparse-map.d.ts +0 -19
  181. package/lib/es2018/typed-sparse-map.js +0 -79
  182. package/lib/es2018/typed-sparse-map.js.map +0 -1
  183. package/lib/es2018/typed-sparse-set.d.ts +0 -13
  184. package/lib/es2018/typed-sparse-set.js.map +0 -1
  185. package/lib/es2018/utils/skip-list.d.ts +0 -24
  186. package/lib/es2018/utils/skip-list.js +0 -155
  187. package/lib/es2018/utils/skip-list.js.map +0 -1
  188. package/lib/es2018/utils/trailing-zeros.d.ts +0 -1
  189. package/lib/es2018/utils/trailing-zeros.js +0 -14
  190. package/lib/es2018/utils/trailing-zeros.js.map +0 -1
@@ -1,24 +0,0 @@
1
- export * from './box';
2
- export * from './cons';
3
- export * from './array';
4
- export * from './emitter';
5
- export * from './big-map';
6
- export * from './big-set';
7
- export * from './hash-map';
8
- export * from './hash-set';
9
- export * from './queue';
10
- export * from './lru-map';
11
- export * from './expirable-map';
12
- export * from './tlru-map';
13
- export * from './trie-map';
14
- export * from './string-trie-map';
15
- export { RadixTree } from './radix-tree';
16
- export { StringRadixTree } from './string-radix-tree';
17
- export * from './sparse-set';
18
- export * from './sparse-map';
19
- export * from './typed-sparse-map';
20
- export * from './typed-sparse-set';
21
- export { DynamicTypedArray } from './dynamic-typed-array';
22
- export * from './sorted-set';
23
- export * from './bit-set';
24
- export * from './typed-bit-set';
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.DynamicTypedArray = exports.StringRadixTree = exports.RadixTree = void 0;
18
- __exportStar(require("./box"), exports);
19
- __exportStar(require("./cons"), exports);
20
- __exportStar(require("./array"), exports);
21
- __exportStar(require("./emitter"), exports);
22
- __exportStar(require("./big-map"), exports);
23
- __exportStar(require("./big-set"), exports);
24
- __exportStar(require("./hash-map"), exports);
25
- __exportStar(require("./hash-set"), exports);
26
- __exportStar(require("./queue"), exports);
27
- __exportStar(require("./lru-map"), exports);
28
- __exportStar(require("./expirable-map"), exports);
29
- __exportStar(require("./tlru-map"), exports);
30
- __exportStar(require("./trie-map"), exports);
31
- __exportStar(require("./string-trie-map"), exports);
32
- var radix_tree_1 = require("./radix-tree");
33
- Object.defineProperty(exports, "RadixTree", { enumerable: true, get: function () { return radix_tree_1.RadixTree; } });
34
- var string_radix_tree_1 = require("./string-radix-tree");
35
- Object.defineProperty(exports, "StringRadixTree", { enumerable: true, get: function () { return string_radix_tree_1.StringRadixTree; } });
36
- __exportStar(require("./sparse-set"), exports);
37
- __exportStar(require("./sparse-map"), exports);
38
- __exportStar(require("./typed-sparse-map"), exports);
39
- __exportStar(require("./typed-sparse-set"), exports);
40
- var dynamic_typed_array_1 = require("./dynamic-typed-array");
41
- Object.defineProperty(exports, "DynamicTypedArray", { enumerable: true, get: function () { return dynamic_typed_array_1.DynamicTypedArray; } });
42
- __exportStar(require("./sorted-set"), exports);
43
- __exportStar(require("./bit-set"), exports);
44
- __exportStar(require("./typed-bit-set"), exports);
45
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,yCAAsB;AACtB,0CAAuB;AACvB,4CAAyB;AACzB,4CAAyB;AACzB,4CAAyB;AACzB,6CAA0B;AAC1B,6CAA0B;AAC1B,0CAAuB;AACvB,4CAAyB;AACzB,kDAA+B;AAC/B,6CAA0B;AAC1B,6CAA0B;AAC1B,oDAAiC;AACjC,2CAAwC;AAA/B,uGAAA,SAAS,OAAA;AAClB,yDAAqD;AAA5C,oHAAA,eAAe,OAAA;AACxB,+CAA4B;AAC5B,+CAA4B;AAC5B,qDAAkC;AAClC,qDAAkC;AAClC,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA;AAC1B,+CAA4B;AAC5B,4CAAyB;AACzB,kDAA+B"}
@@ -1,14 +0,0 @@
1
- export declare class LRUMap<K, V> {
2
- private limit;
3
- private map;
4
- get [Symbol.toStringTag](): string;
5
- get size(): number;
6
- constructor(limit: number);
7
- set(key: K, value: V): this;
8
- has(key: K): boolean;
9
- get(key: K): V | undefined;
10
- delete(key: K): boolean;
11
- clear(): void;
12
- private updateItem;
13
- private getColdestKey;
14
- }
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LRUMap = void 0;
4
- const errors_1 = require("@blackglory/errors");
5
- const iterable_operator_1 = require("iterable-operator");
6
- class LRUMap {
7
- get [Symbol.toStringTag]() {
8
- return this.constructor.name;
9
- }
10
- get size() {
11
- return this.map.size;
12
- }
13
- constructor(limit) {
14
- this.map = new Map();
15
- (0, errors_1.assert)(Number.isInteger(limit), 'The parameter limit must be an integer');
16
- (0, errors_1.assert)(limit > 0, 'The parameter limit must be a positive value');
17
- this.limit = limit;
18
- }
19
- set(key, value) {
20
- if (this.map.has(key)) {
21
- this.updateItem(key, value);
22
- }
23
- else {
24
- if (this.map.size === this.limit) {
25
- this.map.delete(this.getColdestKey());
26
- }
27
- this.map.set(key, value);
28
- }
29
- return this;
30
- }
31
- has(key) {
32
- return this.map.has(key);
33
- }
34
- get(key) {
35
- if (!this.has(key))
36
- return undefined;
37
- const value = this.map.get(key);
38
- this.updateItem(key, value);
39
- return value;
40
- }
41
- delete(key) {
42
- return this.map.delete(key);
43
- }
44
- clear() {
45
- this.map.clear();
46
- }
47
- updateItem(key, value) {
48
- this.map.delete(key);
49
- this.map.set(key, value);
50
- }
51
- getColdestKey() {
52
- return (0, iterable_operator_1.first)(this.map.keys());
53
- }
54
- }
55
- exports.LRUMap = LRUMap;
56
- //# sourceMappingURL=lru-map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lru-map.js","sourceRoot":"","sources":["../../src/lru-map.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,yDAAyC;AAEzC,MAAa,MAAM;IAIjB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACtB,CAAC;IAED,YAAY,KAAa;QAVjB,QAAG,GAAG,IAAI,GAAG,EAAQ,CAAA;QAW3B,IAAA,eAAM,EAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,wCAAwC,CAAC,CAAA;QACzE,IAAA,eAAM,EAAC,KAAK,GAAG,CAAC,EAAE,8CAA8C,CAAC,CAAA;QAEjE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SAC5B;aAAM;YACL,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;gBAChC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAG,CAAC,CAAA;aACvC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SACzB;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;IAKO,UAAU,CAAC,GAAM,EAAE,KAAQ;QACjC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC1B,CAAC;IAKO,aAAa;QACnB,OAAO,IAAA,yBAAK,EAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;CACF;AAjED,wBAiEC"}
@@ -1,9 +0,0 @@
1
- export declare class Queue<T> {
2
- private items;
3
- get [Symbol.toStringTag](): string;
4
- get size(): number;
5
- empty(): void;
6
- enqueue(...items: T[]): void;
7
- dequeue(): T | undefined;
8
- remove(item: T): void;
9
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Queue = void 0;
4
- class Queue {
5
- constructor() {
6
- this.items = [];
7
- }
8
- get [Symbol.toStringTag]() {
9
- return this.constructor.name;
10
- }
11
- get size() {
12
- return this.items.length;
13
- }
14
- empty() {
15
- this.items.length = 0;
16
- }
17
- enqueue(...items) {
18
- this.items.push(...items);
19
- }
20
- dequeue() {
21
- return this.items.shift();
22
- }
23
- remove(item) {
24
- let index;
25
- while ((index = this.items.indexOf(item)) >= 0) {
26
- this.items.splice(index, 1);
27
- }
28
- }
29
- }
30
- exports.Queue = Queue;
31
- //# sourceMappingURL=queue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/queue.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;IAAlB;QACU,UAAK,GAAQ,EAAE,CAAA;IA4BzB,CAAC;IA1BC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IACvB,CAAC;IAED,OAAO,CAAC,GAAG,KAAU;QACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,MAAM,CAAC,IAAO;QACZ,IAAI,KAAa,CAAA;QACjB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;SAC5B;IACH,CAAC;CACF;AA7BD,sBA6BC"}
@@ -1,17 +0,0 @@
1
- export declare class RadixTree<K extends Iterable<T>, V, T = unknown> {
2
- private root;
3
- get [Symbol.toStringTag](): string;
4
- entries(): IterableIterator<[key: T[], value: V]>;
5
- keys(): IterableIterator<T[]>;
6
- values(): IterableIterator<V>;
7
- set(key: K, value: V): this;
8
- has(key: K): boolean;
9
- get(key: K): V | undefined;
10
- delete(key: K): boolean;
11
- }
12
- export declare function matchPrefix<T>(prefixes: Iterable<T[]>, path: T[]): T[] | undefined;
13
- export declare function findCommonPrefix<T>(prefixes: Iterable<T[]>, path: T[]): {
14
- prefix: T[];
15
- commonPartLength: number;
16
- } | undefined;
17
- export declare function getCommonPrefix<T>(paths: T[][]): T[];
@@ -1,221 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCommonPrefix = exports.findCommonPrefix = exports.matchPrefix = exports.RadixTree = void 0;
4
- const iterable_operator_1 = require("iterable-operator");
5
- const extra_utils_1 = require("extra-utils");
6
- class TreeNode {
7
- constructor(value) {
8
- this.value = value;
9
- this.children = new Map();
10
- }
11
- }
12
- class RadixTree {
13
- constructor() {
14
- this.root = new TreeNode();
15
- }
16
- get [Symbol.toStringTag]() {
17
- return this.constructor.name;
18
- }
19
- entries() {
20
- return dfs(this.root, []);
21
- function* dfs(node, path) {
22
- for (const [prefix, childNode] of node.children) {
23
- const newPath = [...path, ...prefix];
24
- if ((0, extra_utils_1.isntUndefined)(childNode.value)) {
25
- yield [newPath, childNode.value];
26
- }
27
- yield* dfs(childNode, newPath);
28
- }
29
- }
30
- }
31
- keys() {
32
- return (0, iterable_operator_1.map)(this.entries(), ([key]) => key);
33
- }
34
- values() {
35
- return (0, iterable_operator_1.map)(this.entries(), ([, value]) => value);
36
- }
37
- set(key, value) {
38
- set((0, iterable_operator_1.toArray)(key), value, this.root);
39
- return this;
40
- function set(key, value, node) {
41
- const commonPrefix = findCommonPrefix(node.children.keys(), key);
42
- if ((0, extra_utils_1.isntUndefined)(commonPrefix)) {
43
- const { prefix, commonPartLength } = commonPrefix;
44
- if (prefix.length === commonPartLength) {
45
- const prefixNode = node.children.get(prefix);
46
- if (key.length === prefix.length) {
47
- prefixNode.value = value;
48
- }
49
- else {
50
- const newKey = key.slice(prefix.length);
51
- set(newKey, value, prefixNode);
52
- }
53
- }
54
- else {
55
- const oldPrefixNode = node.children.get(prefix);
56
- const commonPrefix = prefix.slice(0, commonPartLength);
57
- const newPrefixNode = new TreeNode();
58
- node.children.set(commonPrefix, newPrefixNode);
59
- newPrefixNode.children.set(prefix.slice(commonPartLength), oldPrefixNode);
60
- newPrefixNode.children.set(key.slice(commonPartLength), new TreeNode(value));
61
- node.children.delete(prefix);
62
- }
63
- }
64
- else {
65
- node.children.set(key, new TreeNode(value));
66
- }
67
- }
68
- }
69
- has(key) {
70
- return has((0, iterable_operator_1.toArray)(key), this.root);
71
- function has(key, node) {
72
- const matchedPrefix = matchPrefix(node.children.keys(), key);
73
- if ((0, extra_utils_1.isntUndefined)(matchedPrefix)) {
74
- const restKey = key.slice(matchedPrefix.length);
75
- if (restKey.length === 0) {
76
- return true;
77
- }
78
- else {
79
- return has(restKey, node.children.get(matchedPrefix));
80
- }
81
- }
82
- else {
83
- return false;
84
- }
85
- }
86
- }
87
- get(key) {
88
- return get((0, iterable_operator_1.toArray)(key), this.root);
89
- function get(key, node) {
90
- const matchedPrefix = matchPrefix(node.children.keys(), key);
91
- if ((0, extra_utils_1.isntUndefined)(matchedPrefix)) {
92
- const restKey = key.slice(matchedPrefix.length);
93
- const nextNode = node.children.get(matchedPrefix);
94
- if (restKey.length === 0) {
95
- return nextNode.value;
96
- }
97
- else {
98
- return get(restKey, nextNode);
99
- }
100
- }
101
- else {
102
- return undefined;
103
- }
104
- }
105
- }
106
- delete(key) {
107
- return _delete((0, iterable_operator_1.toArray)(key), this.root);
108
- function _delete(key, node) {
109
- const matchedPrefix = matchPrefix(node.children.keys(), key);
110
- if ((0, extra_utils_1.isntUndefined)(matchedPrefix)) {
111
- if (key.length === matchedPrefix.length) {
112
- const targetNode = node.children.get(matchedPrefix);
113
- if (targetNode.children.size === 0) {
114
- node.children.delete(matchedPrefix);
115
- }
116
- else {
117
- delete node.value;
118
- if (targetNode.children.size === 1) {
119
- const [key, value] = (0, iterable_operator_1.first)(targetNode.children.entries());
120
- node.children.set([...matchedPrefix, ...key], value);
121
- node.children.delete(matchedPrefix);
122
- }
123
- }
124
- return true;
125
- }
126
- else {
127
- const nextNode = node.children.get(matchedPrefix);
128
- const nextKey = key.slice(matchedPrefix.length);
129
- const deleted = _delete(nextKey, nextNode);
130
- if (deleted) {
131
- if (!('value' in nextNode)) {
132
- switch (nextNode.children.size) {
133
- case 0: {
134
- node.children.delete(matchedPrefix);
135
- break;
136
- }
137
- case 1: {
138
- const [key, value] = (0, iterable_operator_1.first)(nextNode.children.entries());
139
- node.children.set([...matchedPrefix, ...key], value);
140
- node.children.delete(matchedPrefix);
141
- break;
142
- }
143
- default: {
144
- const entries = (0, iterable_operator_1.toArray)(nextNode.children.entries());
145
- const keys = entries.map(([key]) => key);
146
- const commonPrefix = getCommonPrefix(keys);
147
- if (commonPrefix) {
148
- const newPrefix = [...matchedPrefix, ...commonPrefix];
149
- const childNode = new TreeNode();
150
- for (const [key, value] of entries) {
151
- childNode.children.set(key.slice(commonPrefix.length), value);
152
- }
153
- node.children.set(newPrefix, childNode);
154
- node.children.delete(matchedPrefix);
155
- }
156
- }
157
- }
158
- }
159
- return true;
160
- }
161
- else {
162
- return false;
163
- }
164
- }
165
- }
166
- else {
167
- return false;
168
- }
169
- }
170
- }
171
- }
172
- exports.RadixTree = RadixTree;
173
- function matchPrefix(prefixes, path) {
174
- return (0, iterable_operator_1.find)(prefixes, prefix => path[0] === prefix[0]);
175
- }
176
- exports.matchPrefix = matchPrefix;
177
- function findCommonPrefix(prefixes, path) {
178
- for (const prefix of prefixes) {
179
- let commonPartLength = 0;
180
- for (let i = 0; i < prefix.length; i++) {
181
- if (path[i] === prefix[i]) {
182
- commonPartLength++;
183
- }
184
- else {
185
- if (commonPartLength > 0) {
186
- return { prefix, commonPartLength };
187
- }
188
- }
189
- }
190
- if (commonPartLength > 0) {
191
- return { prefix, commonPartLength };
192
- }
193
- }
194
- }
195
- exports.findCommonPrefix = findCommonPrefix;
196
- function getCommonPrefix(paths) {
197
- if (paths.length > 0) {
198
- const commonPrefix = [];
199
- loop: for (let elementIndex = 0, firstPathLength = paths[0].length; elementIndex < firstPathLength; elementIndex++) {
200
- const element = paths[0][elementIndex];
201
- for (let pathIndex = 1; pathIndex < paths.length; pathIndex++) {
202
- const path = paths[pathIndex];
203
- if (elementIndex < path.length) {
204
- if (path[elementIndex] !== element) {
205
- break loop;
206
- }
207
- }
208
- else {
209
- break loop;
210
- }
211
- }
212
- commonPrefix.push(element);
213
- }
214
- return commonPrefix;
215
- }
216
- else {
217
- return [];
218
- }
219
- }
220
- exports.getCommonPrefix = getCommonPrefix;
221
- //# sourceMappingURL=radix-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radix-tree.js","sourceRoot":"","sources":["../../src/radix-tree.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- export declare class SortedSet<T> implements Iterable<T> {
2
- private skipList;
3
- get [Symbol.toStringTag](): string;
4
- [Symbol.iterator](): IterableIterator<T>;
5
- constructor(compare: (a: T, b: T) => number);
6
- values(): IterableIterator<T>;
7
- has(value: T): boolean;
8
- add(value: T): void;
9
- delete(value: T): void;
10
- }
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SortedSet = void 0;
4
- const skip_list_1 = require("./utils/skip-list");
5
- const iterable_operator_1 = require("iterable-operator");
6
- class SortedSet {
7
- get [Symbol.toStringTag]() {
8
- return this.constructor.name;
9
- }
10
- [Symbol.iterator]() {
11
- return this.values();
12
- }
13
- constructor(compare) {
14
- this.skipList = new skip_list_1.SkipList(compare);
15
- }
16
- values() {
17
- return (0, iterable_operator_1.map)(this.skipList.elements(), node => node.value);
18
- }
19
- has(value) {
20
- return this.skipList.has(value);
21
- }
22
- add(value) {
23
- this.skipList.add(value);
24
- }
25
- delete(value) {
26
- this.skipList.delete(value);
27
- }
28
- }
29
- exports.SortedSet = SortedSet;
30
- //# sourceMappingURL=sorted-set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sorted-set.js","sourceRoot":"","sources":["../../src/sorted-set.ts"],"names":[],"mappings":";;;AAAA,gDAA2C;AAC3C,yDAAuC;AAEvC,MAAa,SAAS;IAGpB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,YAAY,OAA+B;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAQ,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,IAAA,uBAAG,EAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAM,CAAC,CAAA;IAC3D,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;CACF;AA9BD,8BA8BC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sparse-map.js","sourceRoot":"","sources":["../../src/sparse-map.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export declare class SparseSet implements Iterable<number> {
2
- private indexToValue;
3
- private valueToIndex;
4
- get [Symbol.toStringTag](): string;
5
- [Symbol.iterator](): IterableIterator<number>;
6
- constructor(array?: number[]);
7
- values(): IterableIterator<number>;
8
- has(value: number): boolean;
9
- add(value: number): void;
10
- delete(value: number): boolean;
11
- }
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SparseSet = void 0;
4
- class SparseSet {
5
- get [Symbol.toStringTag]() {
6
- return this.constructor.name;
7
- }
8
- [Symbol.iterator]() {
9
- return this.indexToValue[Symbol.iterator]();
10
- }
11
- constructor(array = []) {
12
- this.indexToValue = [];
13
- const valueToIndex = [];
14
- if (array.length > 0) {
15
- for (const [index, value] of array.entries()) {
16
- valueToIndex[value] = index;
17
- }
18
- }
19
- this.valueToIndex = valueToIndex;
20
- }
21
- values() {
22
- return this.indexToValue[Symbol.iterator]();
23
- }
24
- has(value) {
25
- return value in this.valueToIndex;
26
- }
27
- add(value) {
28
- if (!this.has(value)) {
29
- const index = this.indexToValue.length;
30
- this.indexToValue.push(value);
31
- this.valueToIndex[value] = index;
32
- }
33
- }
34
- delete(value) {
35
- if (this.has(value)) {
36
- const lastValue = this.indexToValue.pop();
37
- if (value === lastValue) {
38
- delete this.valueToIndex[value];
39
- }
40
- else {
41
- const index = this.valueToIndex[value];
42
- this.indexToValue[index] = lastValue;
43
- this.valueToIndex[lastValue] = index;
44
- delete this.valueToIndex[value];
45
- }
46
- return true;
47
- }
48
- else {
49
- return false;
50
- }
51
- }
52
- }
53
- exports.SparseSet = SparseSet;
54
- //# sourceMappingURL=sparse-set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAIpB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC7C,CAAC;IAED,YAAY,QAAkB,EAAE;QAXxB,iBAAY,GAAa,EAAE,CAAA;QAYjC,MAAM,YAAY,GAA8B,EAAE,CAAA;QAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;gBAC5C,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;aAC5B;SACF;QAED,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC7C,CAAC;IAED,GAAG,CAAC,KAAa;QAEf,OAAO,KAAK,IAAI,IAAI,CAAC,YAAY,CAAA;IACnC,CAAC;IAED,GAAG,CAAC,KAAa;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;SACjC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAG,CAAA;YAC1C,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;aAChC;iBAAM;gBACL,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAE,CAAA;gBACvC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;gBACpC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;gBAEpC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;aAChC;YACD,OAAO,IAAI,CAAA;SACZ;aAAM;YACL,OAAO,KAAK,CAAA;SACb;IACH,CAAC;CACF;AAzDD,8BAyDC"}
@@ -1,17 +0,0 @@
1
- export declare class StringRadixTree<T> {
2
- private root;
3
- get [Symbol.toStringTag](): string;
4
- entries(): IterableIterator<[key: string, value: T]>;
5
- keys(): IterableIterator<string>;
6
- values(): IterableIterator<T>;
7
- set(key: string, value: T): this;
8
- has(key: string): boolean;
9
- get(key: string): T | undefined;
10
- delete(key: string): boolean;
11
- }
12
- export declare function matchPrefix(prefixes: Iterable<string>, path: string): string | undefined;
13
- export declare function findCommonPrefix(prefixes: Iterable<string>, path: string): {
14
- prefix: string;
15
- commonPartLength: number;
16
- } | undefined;
17
- export declare function getCommonPrefix(paths: string[]): string;