@blackglory/structures 0.14.15 → 0.15.1

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 (205) hide show
  1. package/README.md +681 -99
  2. package/lib/async-generator-emitter.js +2 -5
  3. package/lib/async-generator-emitter.js.map +1 -1
  4. package/lib/big-map.js +1 -3
  5. package/lib/big-map.js.map +1 -1
  6. package/lib/big-set.js +1 -3
  7. package/lib/big-set.js.map +1 -1
  8. package/lib/{bit-set.d.ts → bit-set/bit-set.d.ts} +5 -2
  9. package/lib/{bit-set.js → bit-set/bit-set.js} +43 -34
  10. package/lib/bit-set/bit-set.js.map +1 -0
  11. package/lib/{typed-bit-set.d.ts → bit-set/dynamic-typed-bit-set.d.ts} +6 -4
  12. package/lib/bit-set/dynamic-typed-bit-set.js +95 -0
  13. package/lib/bit-set/dynamic-typed-bit-set.js.map +1 -0
  14. package/lib/bit-set/index.d.ts +4 -0
  15. package/lib/bit-set/index.js +5 -0
  16. package/lib/bit-set/index.js.map +1 -0
  17. package/lib/bit-set/resizable-typed-bit-set.d.ts +22 -0
  18. package/lib/{typed-bit-set.js → bit-set/resizable-typed-bit-set.js} +37 -39
  19. package/lib/bit-set/resizable-typed-bit-set.js.map +1 -0
  20. package/lib/bit-set/typed-bit-set.d.ts +22 -0
  21. package/lib/bit-set/typed-bit-set.js +99 -0
  22. package/lib/bit-set/typed-bit-set.js.map +1 -0
  23. package/lib/box.js +1 -0
  24. package/lib/box.js.map +1 -1
  25. package/lib/disjoint-set.js +2 -4
  26. package/lib/disjoint-set.js.map +1 -1
  27. package/lib/dynamic-typed-array.d.ts +12 -9
  28. package/lib/dynamic-typed-array.js +51 -66
  29. package/lib/dynamic-typed-array.js.map +1 -1
  30. package/lib/emitter.js +3 -7
  31. package/lib/emitter.js.map +1 -1
  32. package/lib/expirable-map.js +9 -15
  33. package/lib/expirable-map.js.map +1 -1
  34. package/lib/generator-emitter.js +2 -5
  35. package/lib/generator-emitter.js.map +1 -1
  36. package/lib/hash-map.js +2 -1
  37. package/lib/hash-map.js.map +1 -1
  38. package/lib/hash-set.js +2 -1
  39. package/lib/hash-set.js.map +1 -1
  40. package/lib/index.d.ts +6 -7
  41. package/lib/index.js +6 -7
  42. package/lib/index.js.map +1 -1
  43. package/lib/lru-map.js +2 -1
  44. package/lib/lru-map.js.map +1 -1
  45. package/lib/queue.js +1 -3
  46. package/lib/queue.js.map +1 -1
  47. package/lib/radix-tree.js +3 -4
  48. package/lib/radix-tree.js.map +1 -1
  49. package/lib/resizable-typed-array.d.ts +32 -0
  50. package/lib/resizable-typed-array.js +127 -0
  51. package/lib/resizable-typed-array.js.map +1 -0
  52. package/lib/sorted-set.js +2 -1
  53. package/lib/sorted-set.js.map +1 -1
  54. package/lib/sparse-map/clean-sparse-map.d.ts +18 -0
  55. package/lib/sparse-map/clean-sparse-map.js +74 -0
  56. package/lib/sparse-map/clean-sparse-map.js.map +1 -0
  57. package/lib/sparse-map/dynamic-typed-clean-sparse-map-lite.d.ts +21 -0
  58. package/lib/sparse-map/dynamic-typed-clean-sparse-map-lite.js +87 -0
  59. package/lib/sparse-map/dynamic-typed-clean-sparse-map-lite.js.map +1 -0
  60. package/lib/sparse-map/dynamic-typed-sparse-map-lite.d.ts +21 -0
  61. package/lib/sparse-map/dynamic-typed-sparse-map-lite.js +94 -0
  62. package/lib/sparse-map/dynamic-typed-sparse-map-lite.js.map +1 -0
  63. package/lib/sparse-map/index.d.ts +10 -0
  64. package/lib/sparse-map/index.js +11 -0
  65. package/lib/sparse-map/index.js.map +1 -0
  66. package/lib/sparse-map/resizable-typed-clean-sparse-map-lite.d.ts +21 -0
  67. package/lib/sparse-map/resizable-typed-clean-sparse-map-lite.js +85 -0
  68. package/lib/sparse-map/resizable-typed-clean-sparse-map-lite.js.map +1 -0
  69. package/lib/sparse-map/resizable-typed-sparse-map-lite.d.ts +21 -0
  70. package/lib/sparse-map/resizable-typed-sparse-map-lite.js +92 -0
  71. package/lib/sparse-map/resizable-typed-sparse-map-lite.js.map +1 -0
  72. package/lib/{sparse-map.d.ts → sparse-map/sparse-map.d.ts} +6 -5
  73. package/lib/sparse-map/sparse-map.js +86 -0
  74. package/lib/sparse-map/sparse-map.js.map +1 -0
  75. package/lib/sparse-map/typed-clean-sparse-map-lite.d.ts +21 -0
  76. package/lib/sparse-map/typed-clean-sparse-map-lite.js +92 -0
  77. package/lib/sparse-map/typed-clean-sparse-map-lite.js.map +1 -0
  78. package/lib/sparse-map/typed-clean-sparse-map.d.ts +22 -0
  79. package/lib/sparse-map/typed-clean-sparse-map.js +117 -0
  80. package/lib/sparse-map/typed-clean-sparse-map.js.map +1 -0
  81. package/lib/sparse-map/typed-sparse-map-lite.d.ts +21 -0
  82. package/lib/sparse-map/typed-sparse-map-lite.js +109 -0
  83. package/lib/sparse-map/typed-sparse-map-lite.js.map +1 -0
  84. package/lib/sparse-map/typed-sparse-map.d.ts +21 -0
  85. package/lib/sparse-map/typed-sparse-map.js +130 -0
  86. package/lib/sparse-map/typed-sparse-map.js.map +1 -0
  87. package/lib/sparse-set/clean-sparse-set.d.ts +13 -0
  88. package/lib/sparse-set/clean-sparse-set.js +57 -0
  89. package/lib/sparse-set/clean-sparse-set.js.map +1 -0
  90. package/lib/{typed-sparse-set.d.ts → sparse-set/dynamic-typed-clean-sparse-set-lite.d.ts} +6 -6
  91. package/lib/sparse-set/dynamic-typed-clean-sparse-set-lite.js +51 -0
  92. package/lib/sparse-set/dynamic-typed-clean-sparse-set-lite.js.map +1 -0
  93. package/lib/sparse-set/dynamic-typed-clean-sparse-set.d.ts +16 -0
  94. package/lib/sparse-set/dynamic-typed-clean-sparse-set.js +82 -0
  95. package/lib/sparse-set/dynamic-typed-clean-sparse-set.js.map +1 -0
  96. package/lib/sparse-set/dynamic-typed-sparse-set-lite.d.ts +15 -0
  97. package/lib/sparse-set/dynamic-typed-sparse-set-lite.js +52 -0
  98. package/lib/sparse-set/dynamic-typed-sparse-set-lite.js.map +1 -0
  99. package/lib/sparse-set/dynamic-typed-sparse-set.d.ts +15 -0
  100. package/lib/sparse-set/dynamic-typed-sparse-set.js +75 -0
  101. package/lib/sparse-set/dynamic-typed-sparse-set.js.map +1 -0
  102. package/lib/sparse-set/index.d.ts +14 -0
  103. package/lib/sparse-set/index.js +15 -0
  104. package/lib/sparse-set/index.js.map +1 -0
  105. package/lib/sparse-set/resizable-typed-clean-sparse-set-lite.d.ts +15 -0
  106. package/lib/sparse-set/resizable-typed-clean-sparse-set-lite.js +51 -0
  107. package/lib/sparse-set/resizable-typed-clean-sparse-set-lite.js.map +1 -0
  108. package/lib/sparse-set/resizable-typed-clean-sparse-set.d.ts +16 -0
  109. package/lib/sparse-set/resizable-typed-clean-sparse-set.js +83 -0
  110. package/lib/sparse-set/resizable-typed-clean-sparse-set.js.map +1 -0
  111. package/lib/sparse-set/resizable-typed-sparse-set-lite.d.ts +15 -0
  112. package/lib/sparse-set/resizable-typed-sparse-set-lite.js +52 -0
  113. package/lib/sparse-set/resizable-typed-sparse-set-lite.js.map +1 -0
  114. package/lib/sparse-set/resizable-typed-sparse-set.d.ts +15 -0
  115. package/lib/sparse-set/resizable-typed-sparse-set.js +76 -0
  116. package/lib/sparse-set/resizable-typed-sparse-set.js.map +1 -0
  117. package/lib/{sparse-set.d.ts → sparse-set/sparse-set.d.ts} +3 -4
  118. package/lib/sparse-set/sparse-set.js +60 -0
  119. package/lib/sparse-set/sparse-set.js.map +1 -0
  120. package/lib/sparse-set/typed-clean-sparse-set-lite.d.ts +15 -0
  121. package/lib/sparse-set/typed-clean-sparse-set-lite.js +55 -0
  122. package/lib/sparse-set/typed-clean-sparse-set-lite.js.map +1 -0
  123. package/lib/sparse-set/typed-clean-sparse-set.d.ts +16 -0
  124. package/lib/sparse-set/typed-clean-sparse-set.js +80 -0
  125. package/lib/sparse-set/typed-clean-sparse-set.js.map +1 -0
  126. package/lib/sparse-set/typed-sparse-set-lite.d.ts +15 -0
  127. package/lib/sparse-set/typed-sparse-set-lite.js +60 -0
  128. package/lib/sparse-set/typed-sparse-set-lite.js.map +1 -0
  129. package/lib/sparse-set/typed-sparse-set.d.ts +15 -0
  130. package/lib/sparse-set/typed-sparse-set.js +81 -0
  131. package/lib/sparse-set/typed-sparse-set.js.map +1 -0
  132. package/lib/string-radix-tree.js +3 -4
  133. package/lib/string-radix-tree.js.map +1 -1
  134. package/lib/string-trie-map.js +3 -4
  135. package/lib/string-trie-map.js.map +1 -1
  136. package/lib/tlru-map.js +6 -6
  137. package/lib/tlru-map.js.map +1 -1
  138. package/lib/trie-map.js +3 -4
  139. package/lib/trie-map.js.map +1 -1
  140. package/lib/typed-array.d.ts +3 -0
  141. package/lib/typed-array.js +13 -0
  142. package/lib/typed-array.js.map +1 -0
  143. package/lib/unique-queue.js +1 -3
  144. package/lib/unique-queue.js.map +1 -1
  145. package/lib/utils/compute-new-capacity.d.ts +1 -0
  146. package/lib/utils/compute-new-capacity.js +36 -0
  147. package/lib/utils/compute-new-capacity.js.map +1 -0
  148. package/lib/utils/skip-list.js +11 -9
  149. package/lib/utils/skip-list.js.map +1 -1
  150. package/lib/utils/trailing-zeros.js +1 -1
  151. package/lib/utils/trailing-zeros.js.map +1 -1
  152. package/package.json +28 -31
  153. package/src/{bit-set.ts → bit-set/bit-set.ts} +47 -31
  154. package/src/bit-set/dynamic-typed-bit-set.ts +131 -0
  155. package/src/bit-set/index.ts +4 -0
  156. package/src/{typed-bit-set.ts → bit-set/resizable-typed-bit-set.ts} +38 -36
  157. package/src/bit-set/typed-bit-set.ts +134 -0
  158. package/src/dynamic-typed-array.ts +67 -82
  159. package/src/index.ts +6 -7
  160. package/src/resizable-typed-array.ts +214 -0
  161. package/src/sparse-map/clean-sparse-map.ts +84 -0
  162. package/src/sparse-map/dynamic-typed-clean-sparse-map-lite.ts +109 -0
  163. package/src/sparse-map/dynamic-typed-sparse-map-lite.ts +124 -0
  164. package/src/sparse-map/index.ts +11 -0
  165. package/src/sparse-map/resizable-typed-clean-sparse-map-lite.ts +107 -0
  166. package/src/sparse-map/resizable-typed-sparse-map-lite.ts +122 -0
  167. package/src/sparse-map/sparse-map.ts +104 -0
  168. package/src/sparse-map/typed-clean-sparse-map-lite.ts +116 -0
  169. package/src/sparse-map/typed-clean-sparse-map.ts +149 -0
  170. package/src/sparse-map/typed-sparse-map-lite.ts +141 -0
  171. package/src/sparse-map/typed-sparse-map.ts +169 -0
  172. package/src/sparse-set/clean-sparse-set.ts +76 -0
  173. package/src/sparse-set/dynamic-typed-clean-sparse-set-lite.ts +64 -0
  174. package/src/sparse-set/dynamic-typed-clean-sparse-set.ts +101 -0
  175. package/src/sparse-set/dynamic-typed-sparse-set-lite.ts +67 -0
  176. package/src/sparse-set/dynamic-typed-sparse-set.ts +93 -0
  177. package/src/sparse-set/index.ts +15 -0
  178. package/src/sparse-set/resizable-typed-clean-sparse-set-lite.ts +64 -0
  179. package/src/sparse-set/resizable-typed-clean-sparse-set.ts +108 -0
  180. package/src/sparse-set/resizable-typed-sparse-set-lite.ts +67 -0
  181. package/src/sparse-set/resizable-typed-sparse-set.ts +97 -0
  182. package/src/sparse-set/sparse-set.ts +79 -0
  183. package/src/sparse-set/typed-clean-sparse-set-lite.ts +67 -0
  184. package/src/sparse-set/typed-clean-sparse-set.ts +100 -0
  185. package/src/sparse-set/typed-sparse-set-lite.ts +74 -0
  186. package/src/sparse-set/typed-sparse-set.ts +102 -0
  187. package/src/typed-array.ts +19 -0
  188. package/src/utils/compute-new-capacity.ts +39 -0
  189. package/src/utils/skip-list.ts +1 -1
  190. package/src/utils/trailing-zeros.ts +2 -3
  191. package/lib/bit-set.js.map +0 -1
  192. package/lib/sparse-map.js +0 -76
  193. package/lib/sparse-map.js.map +0 -1
  194. package/lib/sparse-set.js +0 -63
  195. package/lib/sparse-set.js.map +0 -1
  196. package/lib/typed-bit-set.js.map +0 -1
  197. package/lib/typed-sparse-map.d.ts +0 -20
  198. package/lib/typed-sparse-map.js +0 -83
  199. package/lib/typed-sparse-map.js.map +0 -1
  200. package/lib/typed-sparse-set.js +0 -59
  201. package/lib/typed-sparse-set.js.map +0 -1
  202. package/src/sparse-map.ts +0 -82
  203. package/src/sparse-set.ts +0 -74
  204. package/src/typed-sparse-map.ts +0 -97
  205. package/src/typed-sparse-set.ts +0 -73
@@ -0,0 +1,99 @@
1
+ import { assert } from '@blackglory/errors';
2
+ import { trailingZeros } from '../utils/trailing-zeros.js';
3
+ export class TypedBitSet {
4
+ array;
5
+ bitsPerElement;
6
+ length = 0;
7
+ #size = 0;
8
+ quotientShift = 0;
9
+ remainderMask = 0;
10
+ get [Symbol.toStringTag]() {
11
+ return this.constructor.name;
12
+ }
13
+ get capacity() {
14
+ return this.array.length * this.bitsPerElement;
15
+ }
16
+ get size() {
17
+ return this.#size;
18
+ }
19
+ constructor(array) {
20
+ this.array = array;
21
+ const bitsPerElement = array.BYTES_PER_ELEMENT * 8;
22
+ assert(Number.isInteger(bitsPerElement), 'The bitsPerElement must be an integer');
23
+ assert(bitsPerElement > 0, 'The bitsPerElement must be greater than 0');
24
+ assert(bitsPerElement <= 32, 'The bitsPerElement must be less than or equal to 32');
25
+ this.bitsPerElement = bitsPerElement;
26
+ this.quotientShift = Math.log2(bitsPerElement);
27
+ this.remainderMask = bitsPerElement - 1;
28
+ }
29
+ [Symbol.iterator]() {
30
+ return this.values();
31
+ }
32
+ *values() {
33
+ if (this.length > 0) {
34
+ const maxArrayLength = ~~(this.length / this.bitsPerElement) + 1;
35
+ for (let index = 0; index < maxArrayLength; index++) {
36
+ let element = this.array[index] ?? 0;
37
+ while (element !== 0) {
38
+ const indexOfBit = trailingZeros(element);
39
+ yield index * this.bitsPerElement + indexOfBit;
40
+ element &= element - 1;
41
+ }
42
+ }
43
+ }
44
+ }
45
+ _dumpBinaryStrings() {
46
+ const result = [];
47
+ for (let i = 0; i < this.array.length; i++) {
48
+ const binary = ((this.array[i] ?? 0) >>> 0).toString(2);
49
+ if (binary.length < this.bitsPerElement) {
50
+ result.push('0'.repeat(this.bitsPerElement - binary.length) + binary);
51
+ }
52
+ else {
53
+ result.push(binary);
54
+ }
55
+ }
56
+ return result;
57
+ }
58
+ has(value) {
59
+ const [index, mask] = this.getPosition(value);
60
+ return (this.array[index] & mask) === mask;
61
+ }
62
+ add(value) {
63
+ const [index, mask] = this.getPosition(value);
64
+ assert(index < this.capacity, `The array is not large enough`);
65
+ const element = this.array[index];
66
+ this.array[index] = element | mask;
67
+ const added = (element & mask) !== mask;
68
+ if (added)
69
+ this.#size++;
70
+ if (value >= this.length)
71
+ this.length = value + 1;
72
+ return added;
73
+ }
74
+ delete(value) {
75
+ const [index, mask] = this.getPosition(value);
76
+ const element = this.array[index];
77
+ this.array[index] = element & ~mask;
78
+ const deleted = (element & mask) === mask;
79
+ if (deleted)
80
+ this.#size--;
81
+ return deleted;
82
+ }
83
+ clear() {
84
+ this.#size = 0;
85
+ this.length = 0;
86
+ this.array.fill(0);
87
+ }
88
+ getPosition(value) {
89
+ const remainder = value & this.remainderMask;
90
+ const quotient = value >>> this.quotientShift;
91
+ const index = quotient;
92
+ const mask = this.getMask(remainder);
93
+ return [index, mask];
94
+ }
95
+ getMask(value) {
96
+ return 1 << value;
97
+ }
98
+ }
99
+ //# sourceMappingURL=typed-bit-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-bit-set.js","sourceRoot":"","sources":["../../src/bit-set/typed-bit-set.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,MAAM,OAAO,WAAW;IAoBF;IAnBZ,cAAc,CAAQ;IACtB,MAAM,GAAG,CAAC,CAAA;IAClB,KAAK,GAAG,CAAC,CAAA;IAED,aAAa,GAAG,CAAC,CAAA;IACjB,aAAa,GAAG,CAAC,CAAA;IAEzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAA;IAChD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,YAAoB,KAAyB;QAAzB,UAAK,GAAL,KAAK,CAAoB;QAC3C,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAA;QAElD,MAAM,CACJ,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,EAChC,uCAAuC,CACxC,CAAA;QACD,MAAM,CACJ,cAAc,GAAG,CAAC,EAClB,2CAA2C,CAC5C,CAAA;QACD,MAAM,CACJ,cAAc,IAAI,EAAE,EACpB,qDAAqD,CACtD,CAAA;QAED,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC9C,IAAI,CAAC,aAAa,GAAG,cAAc,GAAG,CAAC,CAAA;IACzC,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,CAAE,MAAM;QACN,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAEpB,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;YAEhE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,KAAK,EAAE,EAAE,CAAC;gBACpD,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACpC,OAAO,OAAO,KAAK,CAAC,EAAE,CAAC;oBACrB,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;oBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,UAAU,CAAA;oBAE9C,OAAO,IAAI,OAAO,GAAG,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACvD,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAA;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,GAAG,CAAC,KAAa;QACf,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAE7C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAA;IAC5C,CAAC;IAED,GAAG,CAAC,KAAa;QACf,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAC7C,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAA;QAE9D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,CAAA;QAElC,MAAM,KAAK,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,CAAA;QACvC,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,EAAE,CAAA;QAEvB,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAA;QAEjD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,CAAA;QAEnC,MAAM,OAAO,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,CAAA;QACzC,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAA;QAEzB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;IAEO,WAAW,CAAC,KAAa;QAC/B,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAA;QAC5C,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,aAAa,CAAA;QAE7C,MAAM,KAAK,GAAG,QAAQ,CAAA;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEpC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACtB,CAAC;IAGO,OAAO,CAAC,KAAa;QAE3B,OAAO,CAAC,IAAI,KAAK,CAAA;IACnB,CAAC;CACF"}
package/lib/box.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export class Box {
2
+ value;
2
3
  get [Symbol.toStringTag]() {
3
4
  return this.constructor.name;
4
5
  }
package/lib/box.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"box.js","sourceRoot":"","sources":["../src/box.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;IACd,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,YAAoB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;IAEhC,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"box.js","sourceRoot":"","sources":["../src/box.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;IAKM;IAJpB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,YAAoB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;IAEhC,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF"}
@@ -1,10 +1,8 @@
1
1
  import { assert } from '@blackglory/errors';
2
2
  import { isntUndefined } from 'extra-utils';
3
3
  export class DisjointSet {
4
- constructor() {
5
- this.parent = [];
6
- this.rank = [];
7
- }
4
+ parent = [];
5
+ rank = [];
8
6
  has(value) {
9
7
  return isntUndefined(this.parent[value]);
10
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"disjoint-set.js","sourceRoot":"","sources":["../src/disjoint-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,OAAO,WAAW;IAAxB;QACU,WAAM,GAAa,EAAE,CAAA;QACrB,SAAI,GAAa,EAAE,CAAA;IA0D7B,CAAC;IAxDC,GAAG,CAAC,KAAa;QACf,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI;QACF,MAAM,OAAO,GAAe,EAAE,CAAA;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;gBACnB,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,oCAAoC,CAAC,CAAA;QAE9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEpB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,CAAS,EAAE,CAAS;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE1B,IAAI,KAAK,KAAK,KAAK;YAAE,OAAM;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAElC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;QACpB,CAAC;aAAM,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,sCAAsC,CAAC,CAAA;QACxE,IAAI,SAAS,KAAK,KAAK;YAAE,OAAO,KAAK,CAAA;QAErC,MAAM,UAAU,GAAG,SAAS,CAAA;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"disjoint-set.js","sourceRoot":"","sources":["../src/disjoint-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,OAAO,WAAW;IACd,MAAM,GAAa,EAAE,CAAA;IACrB,IAAI,GAAa,EAAE,CAAA;IAE3B,GAAG,CAAC,KAAa;QACf,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI;QACF,MAAM,OAAO,GAAe,EAAE,CAAA;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;gBACnB,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,oCAAoC,CAAC,CAAA;QAE9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEpB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,CAAS,EAAE,CAAS;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE1B,IAAI,KAAK,KAAK,KAAK;YAAE,OAAM;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAElC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;QACpB,CAAC;aAAM,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,sCAAsC,CAAC,CAAA;QACxE,IAAI,SAAS,KAAK,KAAK;YAAE,OAAO,KAAK,CAAA;QAErC,MAAM,UAAU,GAAG,SAAS,CAAA;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -1,28 +1,31 @@
1
1
  import { TypedArrayConstructor, TypedArrayOfConstructor } from 'justypes';
2
2
  interface IDynamicTypedArrayOptions {
3
- capacity?: number;
4
3
  growthFactor?: number;
4
+ initialCapacity?: number;
5
+ fillValue?: number;
5
6
  }
6
- export declare class DynamicTypedArray<T extends TypedArrayConstructor> {
7
+ export declare class DynamicTypedArray<T extends TypedArrayConstructor> implements Iterable<number> {
8
+ #private;
7
9
  private typedArrayConstructor;
8
10
  private array;
9
- private _length;
10
- private initialCapacity;
11
11
  readonly growthFactor: number;
12
- get internalTypedArray(): TypedArrayOfConstructor<T>;
12
+ readonly BYTES_PER_ELEMENT: number;
13
+ readonly fillValue: number;
13
14
  get [Symbol.toStringTag](): string;
14
- get BYTES_PER_ELEMENT(): number;
15
+ get internalTypedArray(): TypedArrayOfConstructor<T>;
15
16
  get capacity(): number;
16
17
  get length(): number;
17
- constructor(typedArrayConstructor: T, { capacity, growthFactor }?: IDynamicTypedArrayOptions);
18
+ constructor(typedArrayConstructor: T, { growthFactor, initialCapacity, fillValue }?: IDynamicTypedArrayOptions);
19
+ [Symbol.iterator](): IterableIterator<number>;
20
+ values(): IterableIterator<number>;
18
21
  set(index: number, value: number): void;
19
- setValues(index: number, values: TypedArrayOfConstructor<T>): void;
22
+ setValues(index: number, values: ArrayLike<number>): void;
20
23
  get(index: number): number | undefined;
21
24
  push(...values: number[]): void;
22
25
  pop(): number | undefined;
23
26
  clear(): void;
27
+ shrink(): void;
24
28
  sort(compare?: (a: number, b: number) => number): void;
25
29
  private resize;
26
30
  }
27
- export declare function computeNewCapacity(oldCapacity: number, targetLength: number, growthFactor: number): number;
28
31
  export {};
@@ -1,71 +1,85 @@
1
1
  import { assert } from '@blackglory/errors';
2
+ import { computeNewCapacity } from './utils/compute-new-capacity.js';
2
3
  export class DynamicTypedArray {
3
- get internalTypedArray() {
4
- return this.array;
5
- }
4
+ typedArrayConstructor;
5
+ array;
6
+ growthFactor;
7
+ BYTES_PER_ELEMENT;
8
+ fillValue;
9
+ #length = 0;
6
10
  get [Symbol.toStringTag]() {
7
11
  return this.constructor.name;
8
12
  }
9
- get BYTES_PER_ELEMENT() {
10
- return this.typedArrayConstructor.BYTES_PER_ELEMENT;
13
+ get internalTypedArray() {
14
+ return this.array;
11
15
  }
12
16
  get capacity() {
13
17
  return this.array.length;
14
18
  }
15
19
  get length() {
16
- return this._length;
20
+ return this.#length;
17
21
  }
18
- constructor(typedArrayConstructor, { capacity = 0, growthFactor = 1.5 } = {}) {
22
+ constructor(typedArrayConstructor, { growthFactor = 1.5, initialCapacity = 0, fillValue = 0 } = {}) {
19
23
  this.typedArrayConstructor = typedArrayConstructor;
20
- this._length = 0;
21
- assert(Number.isInteger(capacity), 'capacity must be an integer');
22
- assert(capacity >= 0, 'capacity must be greater than or equal to 0');
23
24
  assert(growthFactor >= 1, 'growthFactory must be greater than or equal to 1');
24
- this.initialCapacity = capacity;
25
- this.array = new typedArrayConstructor(capacity);
25
+ assert(Number.isInteger(initialCapacity), 'initialCapacity must be an integer');
26
+ assert(initialCapacity >= 0, 'initialCapacity must be greater than or equal to 0');
26
27
  this.growthFactor = growthFactor;
28
+ this.fillValue = fillValue;
29
+ const array = new typedArrayConstructor(initialCapacity);
30
+ if (fillValue !== 0)
31
+ array.fill(fillValue);
32
+ this.array = array;
33
+ this.BYTES_PER_ELEMENT = typedArrayConstructor.BYTES_PER_ELEMENT;
34
+ }
35
+ [Symbol.iterator]() {
36
+ return this.values();
37
+ }
38
+ *values() {
39
+ for (let i = 0; i < this.#length; i++) {
40
+ yield this.array[i];
41
+ }
27
42
  }
28
43
  set(index, value) {
29
44
  if (index >= this.capacity) {
30
45
  const newCapacity = computeNewCapacity(this.capacity, index + 1, this.growthFactor);
31
46
  this.resize(newCapacity);
32
47
  }
33
- if (index >= this._length) {
34
- this._length = index + 1;
48
+ if (index >= this.#length) {
49
+ this.#length = index + 1;
35
50
  }
36
51
  this.array[index] = value;
37
52
  }
38
53
  setValues(index, values) {
39
- if (index + values.length >= this.capacity) {
40
- const newCapacity = computeNewCapacity(this.capacity, index + values.length, this.growthFactor);
54
+ const endIndex = index + values.length;
55
+ if (endIndex > this.capacity) {
56
+ const newCapacity = computeNewCapacity(this.capacity, endIndex, this.growthFactor);
41
57
  this.resize(newCapacity);
42
58
  }
43
- if (index + values.length > this._length) {
44
- this._length = index + values.length;
59
+ if (endIndex > this.#length) {
60
+ this.#length = endIndex;
45
61
  }
46
- this.internalTypedArray.set(values, index);
62
+ this.array.set(values, index);
47
63
  }
48
64
  get(index) {
49
- return index < this._length
65
+ return index < this.#length
50
66
  ? this.array[index]
51
67
  : undefined;
52
68
  }
53
69
  push(...values) {
54
- const newLength = this._length + values.length;
70
+ const newLength = this.#length + values.length;
55
71
  if (newLength > this.capacity) {
56
72
  const newCapacity = computeNewCapacity(this.capacity, newLength, this.growthFactor);
57
73
  this.resize(newCapacity);
58
74
  }
59
75
  for (const value of values) {
60
- this.array[this._length++] = value;
76
+ this.array[this.#length++] = value;
61
77
  }
62
78
  }
63
79
  pop() {
64
- if (this._length > 0) {
65
- const value = this.array[this._length - 1];
66
- this._length--;
67
- const newCapacity = computeNewCapacity(this.capacity, this.length, this.growthFactor);
68
- this.resize(newCapacity);
80
+ if (this.#length > 0) {
81
+ const value = this.array[this.#length - 1];
82
+ this.#length--;
69
83
  return value;
70
84
  }
71
85
  else {
@@ -73,9 +87,11 @@ export class DynamicTypedArray {
73
87
  }
74
88
  }
75
89
  clear() {
76
- this._length = 0;
77
- const newArray = new this.typedArrayConstructor(this.initialCapacity);
78
- this.array = newArray;
90
+ this.#length = 0;
91
+ }
92
+ shrink() {
93
+ const newCapacity = computeNewCapacity(this.capacity, this.length, this.growthFactor);
94
+ this.resize(newCapacity);
79
95
  }
80
96
  sort(compare) {
81
97
  const capacity = this.capacity;
@@ -90,9 +106,13 @@ export class DynamicTypedArray {
90
106
  else if (this.array.length < newCapacity) {
91
107
  const newArray = new this.typedArrayConstructor(newCapacity);
92
108
  newArray.set(this.array);
109
+ if (this.fillValue !== 0) {
110
+ const startIndex = this.array.length;
111
+ newArray.fill(this.fillValue, startIndex);
112
+ }
93
113
  this.array = newArray;
94
114
  }
95
- else if (this.array.length > newCapacity) {
115
+ else {
96
116
  const newArray = new this.typedArrayConstructor(newCapacity);
97
117
  for (let i = newCapacity; i--;) {
98
118
  newArray[i] = this.array[i];
@@ -101,39 +121,4 @@ export class DynamicTypedArray {
101
121
  }
102
122
  }
103
123
  }
104
- export function computeNewCapacity(oldCapacity, targetLength, growthFactor) {
105
- if (growthFactor === 1) {
106
- return targetLength;
107
- }
108
- else {
109
- if (oldCapacity === targetLength) {
110
- return targetLength;
111
- }
112
- else if (oldCapacity < targetLength) {
113
- let newCapacity = Math.max(oldCapacity, 1);
114
- while (newCapacity < targetLength) {
115
- newCapacity *= growthFactor;
116
- }
117
- return Math.floor(newCapacity);
118
- }
119
- else {
120
- if (targetLength === 0) {
121
- return 0;
122
- }
123
- else {
124
- let newCapacity = oldCapacity;
125
- while (true) {
126
- const temp = newCapacity / growthFactor;
127
- if (temp < targetLength) {
128
- break;
129
- }
130
- else {
131
- newCapacity = temp;
132
- }
133
- }
134
- return Math.floor(newCapacity);
135
- }
136
- }
137
- }
138
- }
139
124
  //# sourceMappingURL=dynamic-typed-array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-typed-array.js","sourceRoot":"","sources":["../src/dynamic-typed-array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-typed-array.js","sourceRoot":"","sources":["../src/dynamic-typed-array.ts"],"names":[],"mappings":"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"}
package/lib/emitter.js CHANGED
@@ -1,8 +1,6 @@
1
1
  import { go } from '@blackglory/go';
2
2
  export class Emitter {
3
- constructor() {
4
- this.map = new Map();
5
- }
3
+ map = new Map();
6
4
  get [Symbol.toStringTag]() {
7
5
  return this.constructor.name;
8
6
  }
@@ -40,12 +38,10 @@ export class Emitter {
40
38
  return removeListener;
41
39
  }
42
40
  emit(event, ...args) {
43
- var _a;
44
- (_a = this.map.get(event)) === null || _a === void 0 ? void 0 : _a.forEach(cb => cb(...args));
41
+ this.map.get(event)?.forEach(cb => cb(...args));
45
42
  }
46
43
  removeAllListeners(event) {
47
- var _a;
48
- (_a = this.map.get(event)) === null || _a === void 0 ? void 0 : _a.clear();
44
+ this.map.get(event)?.clear();
49
45
  }
50
46
  }
51
47
  //# sourceMappingURL=emitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAInC,MAAM,OAAO,OAAO;IAApB;QAOU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IA6DL,CAAC;IA3DC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAAkC;QAElC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,GAAG,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4C,CAAA;gBAC/D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAuC,CAAC,CAAA;QAEhD,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAuC,CACxC,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,SAAS,OAAO,CAAC,GAAG,IAA0C;YAC5D,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAAkC;QAElC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,CAAC,GAAG,IAA0C,EAAE,EAAE;YAChD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;YACjB,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,CAAkB,KAAQ,EAAE,GAAG,IAAoB;;QACrD,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,kBAAkB,CAAkB,KAAQ;;QAC1C,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAInC,MAAM,OAAO,OAAO;IAOV,GAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IAEH,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAAkC;QAElC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,GAAG,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4C,CAAA;gBAC/D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAuC,CAAC,CAAA;QAEhD,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAuC,CACxC,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,SAAS,OAAO,CAAC,GAAG,IAA0C;YAC5D,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAAkC;QAElC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,CAAC,GAAG,IAA0C,EAAE,EAAE;YAChD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;YACjB,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,CAAkB,KAAQ,EAAE,GAAG,IAAoB;QACrD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,kBAAkB,CAAkB,KAAQ;QAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF"}
@@ -1,9 +1,8 @@
1
1
  import { setSchedule } from 'extra-timers';
2
2
  export class ExpirableMap {
3
- constructor() {
4
- this.map = new Map();
5
- this.itemMetadataSortedByExpirationTime = [];
6
- }
3
+ map = new Map();
4
+ cancelScheduledCleaner;
5
+ itemMetadataSortedByExpirationTime = [];
7
6
  get [Symbol.toStringTag]() {
8
7
  return this.constructor.name;
9
8
  }
@@ -23,32 +22,29 @@ export class ExpirableMap {
23
22
  return this.map.get(key);
24
23
  }
25
24
  delete(key) {
26
- var _a;
27
25
  const exists = this.map.delete(key);
28
26
  if (exists) {
29
27
  const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
30
28
  this.itemMetadataSortedByExpirationTime.splice(index, 1);
31
29
  if (index === 0) {
32
- (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
30
+ this.cancelScheduledCleaner?.();
33
31
  this.scheduleCleaner();
34
32
  }
35
33
  }
36
34
  return exists;
37
35
  }
38
36
  clear() {
39
- var _a;
40
37
  this.map.clear();
41
- (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
38
+ this.cancelScheduledCleaner?.();
42
39
  this.itemMetadataSortedByExpirationTime = [];
43
40
  }
44
41
  addItemMetadata(key, expirationTime) {
45
- var _a, _b;
46
42
  for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
47
43
  const item = this.itemMetadataSortedByExpirationTime[i];
48
44
  if (expirationTime < item.expirationTime) {
49
45
  this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
50
46
  if (i === 0) {
51
- (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
47
+ this.cancelScheduledCleaner?.();
52
48
  this.scheduleCleaner();
53
49
  }
54
50
  return;
@@ -56,17 +52,16 @@ export class ExpirableMap {
56
52
  }
57
53
  this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
58
54
  if (this.itemMetadataSortedByExpirationTime.length === 1) {
59
- (_b = this.cancelScheduledCleaner) === null || _b === void 0 ? void 0 : _b.call(this);
55
+ this.cancelScheduledCleaner?.();
60
56
  this.scheduleCleaner();
61
57
  }
62
58
  }
63
59
  removeItemMetadata(key) {
64
- var _a;
65
60
  const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
66
61
  if (index >= 0) {
67
62
  this.itemMetadataSortedByExpirationTime.splice(index, 1);
68
63
  if (index === 0) {
69
- (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
64
+ this.cancelScheduledCleaner?.();
70
65
  this.scheduleCleaner();
71
66
  }
72
67
  }
@@ -76,9 +71,8 @@ export class ExpirableMap {
76
71
  const item = this.itemMetadataSortedByExpirationTime[0];
77
72
  if (Number.isFinite(item.expirationTime)) {
78
73
  this.cancelScheduledCleaner = setSchedule(item.expirationTime, () => {
79
- var _a;
80
74
  this.clearExpiredItems(Date.now());
81
- (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
75
+ this.cancelScheduledCleaner?.();
82
76
  this.scheduleCleaner();
83
77
  });
84
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../src/expirable-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../src/expirable-map.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,6 @@
1
1
  import { go, goGenerator } from '@blackglory/go';
2
2
  export class GeneratorEmitter {
3
- constructor() {
4
- this.map = new Map();
5
- }
3
+ map = new Map();
6
4
  get [Symbol.toStringTag]() {
7
5
  return this.constructor.name;
8
6
  }
@@ -48,8 +46,7 @@ export class GeneratorEmitter {
48
46
  }
49
47
  }
50
48
  removeAllListeners(event) {
51
- var _a;
52
- (_a = this.map.get(event)) === null || _a === void 0 ? void 0 : _a.clear();
49
+ this.map.get(event)?.clear();
53
50
  }
54
51
  }
55
52
  //# sourceMappingURL=generator-emitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator-emitter.js","sourceRoot":"","sources":["../src/generator-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAMhD,MAAM,OAAO,gBAAgB;IAA7B;QASU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IA0EL,CAAC;IAxEC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAA+C;QAE/C,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,GAAG,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyD,CAAA;gBAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAoD,CAAC,CAAA;QAE7D,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAoD,CACrD,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,QAAS,CAAC,CAAC,OAAO,CAChB,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAA+C;QAE/C,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,QAAS,CAAC,EACR,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YAC3C,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,CAAE,IAAI,CACJ,KAAQ,EACR,GAAG,IAAoB;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAkB,KAAQ;;QAC1C,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"generator-emitter.js","sourceRoot":"","sources":["../src/generator-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAMhD,MAAM,OAAO,gBAAgB;IASnB,GAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IAEH,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAA+C;QAE/C,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,GAAG,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyD,CAAA;gBAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAoD,CAAC,CAAA;QAE7D,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAoD,CACrD,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,QAAS,CAAC,CAAC,OAAO,CAChB,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAA+C;QAE/C,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,QAAS,CAAC,EACR,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YAC3C,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,CAAE,IAAI,CACJ,KAAQ,EACR,GAAG,IAAoB;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAkB,KAAQ;QAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF"}
package/lib/hash-map.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export class HashMap {
2
+ hash;
3
+ map = new Map();
2
4
  get [Symbol.toStringTag]() {
3
5
  return this.constructor.name;
4
6
  }
@@ -7,7 +9,6 @@ export class HashMap {
7
9
  }
8
10
  constructor(hash) {
9
11
  this.hash = hash;
10
- this.map = new Map();
11
12
  }
12
13
  set(key, value) {
13
14
  this.map.set(this.hash(key), value);
@@ -1 +1 @@
1
- {"version":3,"file":"hash-map.js","sourceRoot":"","sources":["../src/hash-map.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,OAAO;IAGlB,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,YAAoB,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;QAVlC,QAAG,GAAG,IAAI,GAAG,EAAW,CAAA;IAUa,CAAC;IAE9C,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACxC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"hash-map.js","sourceRoot":"","sources":["../src/hash-map.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,OAAO;IAWE;IAVZ,GAAG,GAAG,IAAI,GAAG,EAAW,CAAA;IAEhC,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,YAAoB,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAE9C,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACxC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;CACF"}
package/lib/hash-set.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export class HashSet {
2
+ hash;
3
+ map = new Map();
2
4
  get [Symbol.toStringTag]() {
3
5
  return this.constructor.name;
4
6
  }
@@ -10,7 +12,6 @@ export class HashSet {
10
12
  }
11
13
  constructor(hash) {
12
14
  this.hash = hash;
13
- this.map = new Map();
14
15
  }
15
16
  add(value) {
16
17
  this.map.set(this.hash(value), value);
@@ -1 +1 @@
1
- {"version":3,"file":"hash-set.js","sourceRoot":"","sources":["../src/hash-set.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,OAAO;IAGlB,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,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;IAED,YAAoB,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;QAdpC,QAAG,GAAG,IAAI,GAAG,EAAW,CAAA;IAce,CAAC;IAEhD,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"hash-set.js","sourceRoot":"","sources":["../src/hash-set.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,OAAO;IAeE;IAdZ,GAAG,GAAG,IAAI,GAAG,EAAW,CAAA;IAEhC,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,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;IAED,YAAoB,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;IAAG,CAAC;IAEhD,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;CACF"}
package/lib/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './box.js';
2
2
  export * from './cons.js';
3
3
  export * from './array.js';
4
+ export * from './typed-array.js';
4
5
  export * from './emitter.js';
5
6
  export * from './generator-emitter.js';
6
7
  export * from './async-generator-emitter.js';
@@ -17,12 +18,10 @@ export * from './trie-map.js';
17
18
  export * from './string-trie-map.js';
18
19
  export { RadixTree } from './radix-tree.js';
19
20
  export { StringRadixTree } from './string-radix-tree.js';
20
- export * from './sparse-set.js';
21
- export * from './sparse-map.js';
22
- export * from './typed-sparse-map.js';
23
- export * from './typed-sparse-set.js';
24
- export { DynamicTypedArray } from './dynamic-typed-array.js';
21
+ export * from './dynamic-typed-array.js';
22
+ export * from './resizable-typed-array.js';
25
23
  export * from './sorted-set.js';
26
- export * from './bit-set.js';
27
- export * from './typed-bit-set.js';
28
24
  export * from './disjoint-set.js';
25
+ export * from './bit-set/index.js';
26
+ export * from './sparse-set/index.js';
27
+ export * from './sparse-map/index.js';