@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,101 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BitSet = void 0;
4
- const errors_1 = require("@blackglory/errors");
5
- const trailing_zeros_1 = require("./utils/trailing-zeros");
6
- class BitSet {
7
- constructor(bitsPerElement = 8) {
8
- this.bitsPerElement = bitsPerElement;
9
- this.array = [];
10
- this.length = 0;
11
- this._size = 0;
12
- (0, errors_1.assert)(Number.isInteger(bitsPerElement), 'The parameter bitsPerElement must be an integer');
13
- (0, errors_1.assert)(bitsPerElement > 0, 'The parameter bitsPerElement must be greater than 0');
14
- (0, errors_1.assert)(bitsPerElement <= 31, 'The mask of bitsPerElement must be less than or equal to 31');
15
- }
16
- get [Symbol.toStringTag]() {
17
- return this.constructor.name;
18
- }
19
- get size() {
20
- return this._size;
21
- }
22
- [Symbol.iterator]() {
23
- return this.values();
24
- }
25
- *values() {
26
- if (this.length > 0) {
27
- const maxArrayLength = ~~(this.length / this.bitsPerElement) + 1;
28
- for (let index = 0; index < maxArrayLength; index++) {
29
- let element = this.array[index];
30
- let offset = 0;
31
- let indexOfBit;
32
- while ((indexOfBit = (0, trailing_zeros_1.trailingZeros)(element)) !== 32) {
33
- yield index * this.bitsPerElement + offset + indexOfBit;
34
- offset += indexOfBit + 1;
35
- element >>= indexOfBit + 1;
36
- }
37
- }
38
- }
39
- }
40
- _dumpBinaryStrings() {
41
- const result = [];
42
- for (let i = 0; i < this.array.length; i++) {
43
- const binary = this.array[i].toString(2);
44
- if (binary.length < this.bitsPerElement) {
45
- result.push('0'.repeat(this.bitsPerElement - binary.length) + binary);
46
- }
47
- else {
48
- result.push(binary);
49
- }
50
- }
51
- return result;
52
- }
53
- has(value) {
54
- var _a;
55
- const [index, mask] = this.getPosition(value);
56
- return (((_a = this.array[index]) !== null && _a !== void 0 ? _a : 0) & mask) === mask;
57
- }
58
- add(value) {
59
- var _a;
60
- (0, errors_1.assert)(value >= 0, 'value must be greater than or equal to 0');
61
- if (value >= this.length) {
62
- this.length = value + 1;
63
- }
64
- const [index, mask] = this.getPosition(value);
65
- const element = (_a = this.array[index]) !== null && _a !== void 0 ? _a : 0;
66
- this.array[index] = element | mask;
67
- const added = (element & mask) !== mask;
68
- if (added) {
69
- this._size++;
70
- }
71
- return added;
72
- }
73
- delete(value) {
74
- var _a;
75
- const [index, mask] = this.getPosition(value);
76
- const element = ((_a = this.array[index]) !== null && _a !== void 0 ? _a : 0);
77
- this.array[index] = element & ~mask;
78
- const deleted = (element & mask) === mask;
79
- if (deleted) {
80
- this._size--;
81
- }
82
- return deleted;
83
- }
84
- clear() {
85
- for (let i = this.array.length; i--;) {
86
- this.array[i] = 0;
87
- }
88
- }
89
- getPosition(value) {
90
- const remainder = value % this.bitsPerElement;
91
- const quotient = (value - remainder) / this.bitsPerElement;
92
- const index = quotient;
93
- const mask = this.getMask(remainder);
94
- return [index, mask];
95
- }
96
- getMask(value) {
97
- return 1 << value;
98
- }
99
- }
100
- exports.BitSet = BitSet;
101
- //# sourceMappingURL=bit-set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bit-set.js","sourceRoot":"","sources":["../../src/bit-set.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export declare class Box<T> {
2
- private value;
3
- get [Symbol.toStringTag](): string;
4
- constructor(value: T);
5
- set(value: T): void;
6
- get(): T;
7
- }
package/lib/es2018/box.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Box = void 0;
4
- class Box {
5
- get [Symbol.toStringTag]() {
6
- return this.constructor.name;
7
- }
8
- constructor(value) {
9
- this.value = value;
10
- }
11
- set(value) {
12
- this.value = value;
13
- }
14
- get() {
15
- return this.value;
16
- }
17
- }
18
- exports.Box = Box;
19
- //# sourceMappingURL=box.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;;AAAA,MAAa,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;AAdD,kBAcC"}
@@ -1,4 +0,0 @@
1
- import { Cons } from 'justypes';
2
- export { Cons } from 'justypes';
3
- export declare function convertConsToArray<T>([value, next]: Cons<T>): T[];
4
- export declare function convertArrayToCons<T>([value, ...next]: T[]): Cons<T>;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertArrayToCons = exports.convertConsToArray = void 0;
4
- const extra_utils_1 = require("extra-utils");
5
- function convertConsToArray([value, next]) {
6
- if ((0, extra_utils_1.isNull)(next)) {
7
- return [value];
8
- }
9
- else {
10
- return [value, ...convertConsToArray(next)];
11
- }
12
- }
13
- exports.convertConsToArray = convertConsToArray;
14
- function convertArrayToCons([value, ...next]) {
15
- return [value, next.length ? convertArrayToCons(next) : null];
16
- }
17
- exports.convertArrayToCons = convertArrayToCons;
18
- //# sourceMappingURL=cons.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cons.js","sourceRoot":"","sources":["../../src/cons.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AAIpC,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,IAAI,CAAU;IAC1D,IAAI,IAAA,oBAAM,EAAC,IAAI,CAAC,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,CAAA;KACf;SAAM;QACL,OAAO,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;KAC5C;AACH,CAAC;AAND,gDAMC;AAED,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAM;IACzD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC;AAFD,gDAEC"}
@@ -1,26 +0,0 @@
1
- import { TypedArrayConstructor, TypedArrayOfConstructor } from 'justypes';
2
- interface IDynamicTypedArrayOptions {
3
- capacity?: number;
4
- growthFactor?: number;
5
- }
6
- export declare class DynamicTypedArray<T extends TypedArrayConstructor> {
7
- private typedArrayConstructor;
8
- private array;
9
- private _length;
10
- readonly growthFactor: number;
11
- get internalTypedArray(): TypedArrayOfConstructor<T>;
12
- get [Symbol.toStringTag](): string;
13
- get BYTES_PER_ELEMENT(): number;
14
- get capacity(): number;
15
- get length(): number;
16
- constructor(typedArrayConstructor: T, { capacity, growthFactor }?: IDynamicTypedArrayOptions);
17
- set(index: number, value: number): void;
18
- setValues(index: number, values: TypedArrayOfConstructor<T>): void;
19
- get(index: number): number | undefined;
20
- push(...values: number[]): void;
21
- pop(): number | undefined;
22
- sort(compare?: (a: number, b: number) => number): void;
23
- private resize;
24
- }
25
- export declare function computeNewCapacity(oldCapacity: number, targetLength: number, growthFactor: number): number;
26
- export {};
@@ -1,138 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.computeNewCapacity = exports.DynamicTypedArray = void 0;
4
- const errors_1 = require("@blackglory/errors");
5
- class DynamicTypedArray {
6
- get internalTypedArray() {
7
- return this.array;
8
- }
9
- get [Symbol.toStringTag]() {
10
- return this.constructor.name;
11
- }
12
- get BYTES_PER_ELEMENT() {
13
- return this.typedArrayConstructor.BYTES_PER_ELEMENT;
14
- }
15
- get capacity() {
16
- return this.array.length;
17
- }
18
- get length() {
19
- return this._length;
20
- }
21
- constructor(typedArrayConstructor, { capacity = 0, growthFactor = 1.5 } = {}) {
22
- this.typedArrayConstructor = typedArrayConstructor;
23
- this._length = 0;
24
- (0, errors_1.assert)(Number.isInteger(capacity), 'capacity must be an integer');
25
- (0, errors_1.assert)(capacity >= 0, 'capacity must be greater than or equal to 0');
26
- (0, errors_1.assert)(growthFactor >= 1, 'growthFactory must be greater than or equal to 1');
27
- this.array = new typedArrayConstructor(capacity);
28
- this.growthFactor = growthFactor;
29
- }
30
- set(index, value) {
31
- if (index >= this.capacity) {
32
- const newCapacity = computeNewCapacity(this.capacity, index + 1, this.growthFactor);
33
- this.resize(newCapacity);
34
- }
35
- if (index >= this._length) {
36
- this._length = index + 1;
37
- }
38
- this.array[index] = value;
39
- }
40
- setValues(index, values) {
41
- if (index + values.length >= this.capacity) {
42
- const newCapacity = computeNewCapacity(this.capacity, index + values.length, this.growthFactor);
43
- this.resize(newCapacity);
44
- }
45
- if (index + values.length > this._length) {
46
- this._length = index + values.length;
47
- }
48
- this.internalTypedArray.set(values, index);
49
- }
50
- get(index) {
51
- return index < this._length
52
- ? this.array[index]
53
- : undefined;
54
- }
55
- push(...values) {
56
- const newLength = this._length + values.length;
57
- if (newLength > this.capacity) {
58
- const newCapacity = computeNewCapacity(this.capacity, newLength, this.growthFactor);
59
- this.resize(newCapacity);
60
- }
61
- for (const value of values) {
62
- this.array[this._length++] = value;
63
- }
64
- }
65
- pop() {
66
- if (this._length > 0) {
67
- const value = this.array[this._length - 1];
68
- this._length--;
69
- const newCapacity = computeNewCapacity(this.capacity, this.length, this.growthFactor);
70
- this.resize(newCapacity);
71
- return value;
72
- }
73
- else {
74
- return undefined;
75
- }
76
- }
77
- sort(compare) {
78
- const capacity = this.capacity;
79
- this.resize(this.length);
80
- this.array.sort(compare);
81
- this.resize(capacity);
82
- }
83
- resize(newCapacity) {
84
- if (this.array.length === newCapacity) {
85
- return;
86
- }
87
- else if (this.array.length < newCapacity) {
88
- const newArray = new this.typedArrayConstructor(newCapacity);
89
- newArray.set(this.array);
90
- this.array = newArray;
91
- }
92
- else if (this.array.length > newCapacity) {
93
- const newArray = new this.typedArrayConstructor(newCapacity);
94
- for (let i = newCapacity; i--;) {
95
- newArray[i] = this.array[i];
96
- }
97
- this.array = newArray;
98
- }
99
- }
100
- }
101
- exports.DynamicTypedArray = DynamicTypedArray;
102
- function computeNewCapacity(oldCapacity, targetLength, growthFactor) {
103
- if (growthFactor === 1) {
104
- return targetLength;
105
- }
106
- else {
107
- if (oldCapacity === targetLength) {
108
- return targetLength;
109
- }
110
- else if (oldCapacity < targetLength) {
111
- let newCapacity = Math.max(oldCapacity, 1);
112
- while (newCapacity < targetLength) {
113
- newCapacity *= growthFactor;
114
- }
115
- return Math.floor(newCapacity);
116
- }
117
- else {
118
- if (targetLength === 0) {
119
- return 0;
120
- }
121
- else {
122
- let newCapacity = oldCapacity;
123
- while (true) {
124
- const temp = newCapacity / growthFactor;
125
- if (temp < targetLength) {
126
- break;
127
- }
128
- else {
129
- newCapacity = temp;
130
- }
131
- }
132
- return Math.floor(newCapacity);
133
- }
134
- }
135
- }
136
- }
137
- exports.computeNewCapacity = computeNewCapacity;
138
- //# sourceMappingURL=dynamic-typed-array.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamic-typed-array.js","sourceRoot":"","sources":["../../src/dynamic-typed-array.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- type Listener<Args extends unknown[]> = (...args: Args) => void;
2
- export declare class Emitter<EventToArgs extends Record<Key, unknown[]> = Record<string | number | symbol, unknown[]>, Key extends string | number | symbol = keyof EventToArgs> {
3
- private map;
4
- get [Symbol.toStringTag](): string;
5
- on<T extends Key>(event: T, listener: Listener<EventToArgs[T]>): () => void;
6
- once<T extends Key>(event: T, listener: Listener<EventToArgs[T]>): () => void;
7
- emit<T extends Key>(event: T, ...args: EventToArgs[T]): void;
8
- }
9
- export {};
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Emitter = void 0;
4
- const go_1 = require("@blackglory/go");
5
- class Emitter {
6
- constructor() {
7
- this.map = new Map();
8
- }
9
- get [Symbol.toStringTag]() {
10
- return this.constructor.name;
11
- }
12
- on(event, listener) {
13
- const set = (0, go_1.go)(() => {
14
- const set = this.map.get(event);
15
- if (set) {
16
- return set;
17
- }
18
- else {
19
- const set = new Set();
20
- this.map.set(event, set);
21
- return set;
22
- }
23
- });
24
- set.add(handler);
25
- return () => {
26
- const handlers = this.map.get(event);
27
- if (handlers) {
28
- const deleted = handlers.delete(handler);
29
- if (deleted && handlers.size === 0) {
30
- this.map.delete(event);
31
- }
32
- }
33
- };
34
- function handler(...args) {
35
- listener(...args);
36
- }
37
- }
38
- once(event, listener) {
39
- const removeListener = this.on(event, (...args) => {
40
- listener(...args);
41
- removeListener();
42
- });
43
- return removeListener;
44
- }
45
- emit(event, ...args) {
46
- var _a;
47
- (_a = this.map.get(event)) === null || _a === void 0 ? void 0 : _a.forEach(cb => cb(...args));
48
- }
49
- }
50
- exports.Emitter = Emitter;
51
- //# sourceMappingURL=emitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAInC,MAAa,OAAO;IAApB;QAOU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IAyDL,CAAC;IAvDC,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,IAAA,OAAE,EAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE;gBACP,OAAO,GAAG,CAAA;aACX;iBAAM;gBACL,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4C,CAAA;gBAC/D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;aACX;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAqC,CAAC,CAAA;QAE9C,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE;gBACZ,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAqC,CACtC,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;oBAClC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;iBACvB;aACF;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,CAAgB,KAAQ,EAAE,GAAG,IAAoB;;QACnD,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;CACF;AAnED,0BAmEC"}
@@ -1,19 +0,0 @@
1
- export declare class ExpirableMap<K, V> {
2
- private map;
3
- private cancelScheduledCleaner?;
4
- protected itemMetadataSortedByExpirationTime: Array<{
5
- key: K;
6
- expirationTime: number;
7
- }>;
8
- get [Symbol.toStringTag](): string;
9
- get size(): number;
10
- set(key: K, value: V, timeToLive?: number): this;
11
- has(key: K): boolean;
12
- get(key: K): V | undefined;
13
- delete(key: K): boolean;
14
- clear(): void;
15
- private addItemMetadata;
16
- private removeItemMetadata;
17
- private scheduleCleaner;
18
- private clearExpiredItems;
19
- }
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExpirableMap = void 0;
4
- const extra_timers_1 = require("extra-timers");
5
- class ExpirableMap {
6
- constructor() {
7
- this.map = new Map();
8
- this.itemMetadataSortedByExpirationTime = [];
9
- }
10
- get [Symbol.toStringTag]() {
11
- return this.constructor.name;
12
- }
13
- get size() {
14
- return this.map.size;
15
- }
16
- set(key, value, timeToLive = Infinity) {
17
- this.map.set(key, value);
18
- this.removeItemMetadata(key);
19
- this.addItemMetadata(key, Date.now() + timeToLive);
20
- return this;
21
- }
22
- has(key) {
23
- return this.map.has(key);
24
- }
25
- get(key) {
26
- return this.map.get(key);
27
- }
28
- delete(key) {
29
- var _a;
30
- const exists = this.map.delete(key);
31
- if (exists) {
32
- const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
33
- this.itemMetadataSortedByExpirationTime.splice(index, 1);
34
- if (index === 0) {
35
- (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
36
- this.scheduleCleaner();
37
- }
38
- }
39
- return exists;
40
- }
41
- clear() {
42
- var _a;
43
- this.map.clear();
44
- (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
45
- this.itemMetadataSortedByExpirationTime = [];
46
- }
47
- addItemMetadata(key, expirationTime) {
48
- var _a, _b;
49
- for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
50
- const item = this.itemMetadataSortedByExpirationTime[i];
51
- if (expirationTime < item.expirationTime) {
52
- this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
53
- if (i === 0) {
54
- (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
55
- this.scheduleCleaner();
56
- }
57
- return;
58
- }
59
- }
60
- this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
61
- if (this.itemMetadataSortedByExpirationTime.length === 1) {
62
- (_b = this.cancelScheduledCleaner) === null || _b === void 0 ? void 0 : _b.call(this);
63
- this.scheduleCleaner();
64
- }
65
- }
66
- removeItemMetadata(key) {
67
- var _a;
68
- const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
69
- if (index >= 0) {
70
- this.itemMetadataSortedByExpirationTime.splice(index, 1);
71
- if (index === 0) {
72
- (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
73
- this.scheduleCleaner();
74
- }
75
- }
76
- }
77
- scheduleCleaner() {
78
- if (this.itemMetadataSortedByExpirationTime.length > 0) {
79
- const item = this.itemMetadataSortedByExpirationTime[0];
80
- if (Number.isFinite(item.expirationTime)) {
81
- this.cancelScheduledCleaner = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
82
- var _a;
83
- this.clearExpiredItems(Date.now());
84
- (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
85
- this.scheduleCleaner();
86
- });
87
- }
88
- }
89
- }
90
- clearExpiredItems(timestamp) {
91
- const indexOfFirstUnexpired = this.itemMetadataSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
92
- const expiredItemKeys = indexOfFirstUnexpired >= 0
93
- ? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpired)
94
- : this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
95
- expiredItemKeys.forEach(x => this.map.delete(x.key));
96
- }
97
- }
98
- exports.ExpirableMap = ExpirableMap;
99
- //# sourceMappingURL=expirable-map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export declare class HashMap<K, V, Hash = unknown> {
2
- private hash;
3
- private map;
4
- get [Symbol.toStringTag](): string;
5
- get size(): number;
6
- constructor(hash: (key: K) => Hash);
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
- }
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HashMap = void 0;
4
- class HashMap {
5
- get [Symbol.toStringTag]() {
6
- return this.constructor.name;
7
- }
8
- get size() {
9
- return this.map.size;
10
- }
11
- constructor(hash) {
12
- this.hash = hash;
13
- this.map = new Map();
14
- }
15
- set(key, value) {
16
- this.map.set(this.hash(key), value);
17
- return this;
18
- }
19
- has(key) {
20
- return this.map.has(this.hash(key));
21
- }
22
- get(key) {
23
- return this.map.get(this.hash(key));
24
- }
25
- delete(key) {
26
- return this.map.delete(this.hash(key));
27
- }
28
- clear() {
29
- this.map.clear();
30
- }
31
- }
32
- exports.HashMap = HashMap;
33
- //# sourceMappingURL=hash-map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash-map.js","sourceRoot":"","sources":["../../src/hash-map.ts"],"names":[],"mappings":";;;AAAA,MAAa,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;CACF;AAjCD,0BAiCC"}
@@ -1,13 +0,0 @@
1
- export declare class HashSet<V, Hash = unknown> implements Iterable<V> {
2
- private hash;
3
- private map;
4
- get [Symbol.toStringTag](): string;
5
- get size(): number;
6
- [Symbol.iterator](): IterableIterator<V>;
7
- constructor(hash: (value: V) => Hash);
8
- add(value: V): this;
9
- delete(value: V): boolean;
10
- has(value: V): boolean;
11
- clear(): void;
12
- values(): IterableIterator<V>;
13
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HashSet = void 0;
4
- class HashSet {
5
- get [Symbol.toStringTag]() {
6
- return this.constructor.name;
7
- }
8
- get size() {
9
- return this.map.size;
10
- }
11
- [Symbol.iterator]() {
12
- return this.map.values();
13
- }
14
- constructor(hash) {
15
- this.hash = hash;
16
- this.map = new Map();
17
- }
18
- add(value) {
19
- this.map.set(this.hash(value), value);
20
- return this;
21
- }
22
- delete(value) {
23
- return this.map.delete(this.hash(value));
24
- }
25
- has(value) {
26
- return this.map.has(this.hash(value));
27
- }
28
- clear() {
29
- this.map.clear();
30
- }
31
- values() {
32
- return this.map.values();
33
- }
34
- }
35
- exports.HashSet = HashSet;
36
- //# sourceMappingURL=hash-set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash-set.js","sourceRoot":"","sources":["../../src/hash-set.ts"],"names":[],"mappings":";;;AAAA,MAAa,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,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;AArCD,0BAqCC"}