@blackglory/structures 0.11.4 → 0.11.6

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 (94) hide show
  1. package/README.md +80 -4
  2. package/lib/es2015/big-map.d.ts +14 -0
  3. package/lib/es2015/big-map.js +86 -0
  4. package/lib/es2015/big-map.js.map +1 -0
  5. package/lib/es2015/big-set.d.ts +11 -0
  6. package/lib/es2015/big-set.js +64 -0
  7. package/lib/es2015/big-set.js.map +1 -0
  8. package/lib/es2015/box.js +3 -3
  9. package/lib/es2015/box.js.map +1 -1
  10. package/lib/es2015/cons.js +2 -2
  11. package/lib/es2015/cons.js.map +1 -1
  12. package/lib/es2015/dynamic-typed-array.js +9 -9
  13. package/lib/es2015/dynamic-typed-array.js.map +1 -1
  14. package/lib/es2015/emitter.d.ts +1 -1
  15. package/lib/es2015/expirable-map.d.ts +4 -4
  16. package/lib/es2015/expirable-map.js +26 -23
  17. package/lib/es2015/expirable-map.js.map +1 -1
  18. package/lib/es2015/hash-map.js +4 -4
  19. package/lib/es2015/hash-map.js.map +1 -1
  20. package/lib/es2015/hash-set.js +4 -4
  21. package/lib/es2015/hash-set.js.map +1 -1
  22. package/lib/es2015/index.d.ts +2 -0
  23. package/lib/es2015/index.js +2 -0
  24. package/lib/es2015/index.js.map +1 -1
  25. package/lib/es2015/lru-map.js +6 -6
  26. package/lib/es2015/lru-map.js.map +1 -1
  27. package/lib/es2015/sorted-set.js +3 -3
  28. package/lib/es2015/sorted-set.js.map +1 -1
  29. package/lib/es2015/sparse-set.js +6 -6
  30. package/lib/es2015/sparse-set.js.map +1 -1
  31. package/lib/es2015/tlru-map.d.ts +1 -1
  32. package/lib/es2015/tlru-map.js +9 -9
  33. package/lib/es2015/tlru-map.js.map +1 -1
  34. package/lib/es2015/trie-map.js +2 -2
  35. package/lib/es2015/trie-map.js.map +1 -1
  36. package/lib/es2015/typed-sparse-map.js +6 -6
  37. package/lib/es2015/typed-sparse-map.js.map +1 -1
  38. package/lib/es2015/utils/skip-list.js +9 -9
  39. package/lib/es2015/utils/skip-list.js.map +1 -1
  40. package/lib/es2018/big-map.d.ts +14 -0
  41. package/lib/es2018/big-map.js +86 -0
  42. package/lib/es2018/big-map.js.map +1 -0
  43. package/lib/es2018/big-set.d.ts +11 -0
  44. package/lib/es2018/big-set.js +64 -0
  45. package/lib/es2018/big-set.js.map +1 -0
  46. package/lib/es2018/box.js +3 -3
  47. package/lib/es2018/box.js.map +1 -1
  48. package/lib/es2018/cons.js +2 -2
  49. package/lib/es2018/cons.js.map +1 -1
  50. package/lib/es2018/dynamic-typed-array.js +9 -9
  51. package/lib/es2018/dynamic-typed-array.js.map +1 -1
  52. package/lib/es2018/emitter.d.ts +1 -1
  53. package/lib/es2018/expirable-map.d.ts +4 -4
  54. package/lib/es2018/expirable-map.js +26 -23
  55. package/lib/es2018/expirable-map.js.map +1 -1
  56. package/lib/es2018/hash-map.js +4 -4
  57. package/lib/es2018/hash-map.js.map +1 -1
  58. package/lib/es2018/hash-set.js +4 -4
  59. package/lib/es2018/hash-set.js.map +1 -1
  60. package/lib/es2018/index.d.ts +2 -0
  61. package/lib/es2018/index.js +2 -0
  62. package/lib/es2018/index.js.map +1 -1
  63. package/lib/es2018/lru-map.js +6 -6
  64. package/lib/es2018/lru-map.js.map +1 -1
  65. package/lib/es2018/sorted-set.js +3 -3
  66. package/lib/es2018/sorted-set.js.map +1 -1
  67. package/lib/es2018/sparse-set.js +6 -6
  68. package/lib/es2018/sparse-set.js.map +1 -1
  69. package/lib/es2018/tlru-map.d.ts +1 -1
  70. package/lib/es2018/tlru-map.js +9 -9
  71. package/lib/es2018/tlru-map.js.map +1 -1
  72. package/lib/es2018/trie-map.js +2 -2
  73. package/lib/es2018/trie-map.js.map +1 -1
  74. package/lib/es2018/typed-sparse-map.js +6 -6
  75. package/lib/es2018/typed-sparse-map.js.map +1 -1
  76. package/lib/es2018/utils/skip-list.js +9 -9
  77. package/lib/es2018/utils/skip-list.js.map +1 -1
  78. package/package.json +23 -21
  79. package/dist/es2015/index.min.mjs +0 -2
  80. package/dist/es2015/index.min.mjs.map +0 -1
  81. package/dist/es2015/index.mjs +0 -4814
  82. package/dist/es2015/index.mjs.map +0 -1
  83. package/dist/es2015/index.umd.js +0 -4846
  84. package/dist/es2015/index.umd.js.map +0 -1
  85. package/dist/es2015/index.umd.min.js +0 -2
  86. package/dist/es2015/index.umd.min.js.map +0 -1
  87. package/dist/es2018/index.min.mjs +0 -2
  88. package/dist/es2018/index.min.mjs.map +0 -1
  89. package/dist/es2018/index.mjs +0 -4814
  90. package/dist/es2018/index.mjs.map +0 -1
  91. package/dist/es2018/index.umd.js +0 -4846
  92. package/dist/es2018/index.umd.js.map +0 -1
  93. package/dist/es2018/index.umd.min.js +0 -2
  94. package/dist/es2018/index.umd.min.js.map +0 -1
package/README.md CHANGED
@@ -16,8 +16,8 @@ class Box<T> {
16
16
 
17
17
  constructor(value: T)
18
18
 
19
- get(): T
20
- set(value: T): void
19
+ get(): T
20
+ set(value: T): void
21
21
  }
22
22
  ```
23
23
 
@@ -79,6 +79,82 @@ class Emitter<
79
79
  }
80
80
  ```
81
81
 
82
+ ### BigMap
83
+ ```ts
84
+ class BigMap<K, V> implements Iterable<[K, V]> {
85
+ get [Symbol.toStringTag](): string
86
+
87
+ get size(): number
88
+
89
+ set(key: K, value: V): void
90
+ has(key: K): boolean
91
+ get(key: K): V | undefined
92
+ delete(key: K): boolean
93
+ clear(): void
94
+
95
+ entries(): IterableIterator<[K, V]>
96
+ keys(): IterableIterator<K>
97
+ values(): IterableIterator<V>
98
+ }
99
+ ```
100
+
101
+ The `Map` that supports unlimited elements.
102
+
103
+ Note that `BigMap` cannot preserve the insertion order of elements.
104
+
105
+ ```ts
106
+ // Map
107
+ const map = new Map()
108
+ for (let i = 0; i < 100_000_000; i++) {
109
+ map.set(i, null) // RangeError
110
+ }
111
+ console.log('Never')
112
+
113
+ // BigMap
114
+ const { BigMap } = require('.')
115
+ const map = new BigMap()
116
+ for (let i = 0; i < 100_000_000; i++) {
117
+ map.set(i, null)
118
+ }
119
+ console.log('Done')
120
+ ```
121
+
122
+ ### BigSet
123
+ ```ts
124
+ class BigSet<T> implements Iterable<T> {
125
+ get [Symbol.toStringTag]: string
126
+
127
+ get size(): number
128
+
129
+ add(value: T): this
130
+ has(value: T): boolean
131
+ delete(value: T): boolean
132
+ clear(): void
133
+
134
+ values(): IterableIterator<T>
135
+ }
136
+ ```
137
+
138
+ The `Set` that supports unlimited elements.
139
+
140
+ Note that `BigSet` cannot preserve the insertion order of elements.
141
+
142
+ ```ts
143
+ // Set
144
+ const set = new Set()
145
+ for (let i = 0; i < 100_000_000; i++) {
146
+ set.add(i) // RangeError
147
+ }
148
+ console.log('Never')
149
+
150
+ // BigSet
151
+ const set = new BigSet()
152
+ for (let i = 0; i < 100_000_000; i++) {
153
+ set.add(i)
154
+ }
155
+ console.log('Done')
156
+ ```
157
+
82
158
  ### HashMap
83
159
  ```ts
84
160
  class HashMap<K, V, Hash = unknown> {
@@ -136,7 +212,7 @@ class ExpirableMap<K, V> {
136
212
 
137
213
  constructor()
138
214
 
139
- set(key: K, value: V, maxAge: number): this
215
+ set(key: K, value: V, timeToLive?: number = Infinity): this
140
216
  has(key: K): boolean
141
217
  get(key: K): V | undefined
142
218
  delete(key: K): boolean
@@ -152,7 +228,7 @@ class TLRUMap<K, V> {
152
228
 
153
229
  constructor(limit: number)
154
230
 
155
- set(key: K, value: V, maxAge: number): this
231
+ set(key: K, value: V, timeToLive?: number = Infinity): this
156
232
  has(key: K): boolean
157
233
  get(key: K): V | undefined
158
234
  delete(key: K): boolean
@@ -0,0 +1,14 @@
1
+ export declare class BigMap<K, V> implements Iterable<[K, V]> {
2
+ _maps: Array<Map<K, V>>;
3
+ get [Symbol.toStringTag](): string;
4
+ get size(): number;
5
+ [Symbol.iterator](): IterableIterator<[K, V]>;
6
+ set(key: K, value: V): void;
7
+ has(key: K): boolean;
8
+ get(key: K): V | undefined;
9
+ delete(key: K): boolean;
10
+ clear(): void;
11
+ entries(): IterableIterator<[K, V]>;
12
+ keys(): IterableIterator<K>;
13
+ values(): IterableIterator<V>;
14
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BigMap = void 0;
4
+ class BigMap {
5
+ constructor() {
6
+ this._maps = [];
7
+ }
8
+ get [Symbol.toStringTag]() {
9
+ return this.constructor.name;
10
+ }
11
+ get size() {
12
+ return this._maps
13
+ .map(map => map.size)
14
+ .reduce((acc, cur) => acc + cur, 0);
15
+ }
16
+ *[Symbol.iterator]() {
17
+ for (const map of this._maps) {
18
+ yield* map[Symbol.iterator]();
19
+ }
20
+ }
21
+ set(key, value) {
22
+ {
23
+ const map = this._maps.find(map => map.has(key));
24
+ if (map) {
25
+ map.set(key, value);
26
+ return;
27
+ }
28
+ }
29
+ for (const map of this._maps) {
30
+ try {
31
+ map.set(key, value);
32
+ return;
33
+ }
34
+ catch (e) {
35
+ if (e instanceof RangeError)
36
+ continue;
37
+ throw e;
38
+ }
39
+ }
40
+ const map = new Map();
41
+ map.set(key, value);
42
+ this._maps.push(map);
43
+ }
44
+ has(key) {
45
+ return this._maps.some(set => set.has(key));
46
+ }
47
+ get(key) {
48
+ for (const map of this._maps) {
49
+ if (map.has(key)) {
50
+ return map.get(key);
51
+ }
52
+ }
53
+ }
54
+ delete(key) {
55
+ for (const [index, map] of this._maps.entries()) {
56
+ if (map.has(key)) {
57
+ map.delete(key);
58
+ if (map.size === 0) {
59
+ this._maps.splice(index, 1);
60
+ }
61
+ return true;
62
+ }
63
+ }
64
+ return false;
65
+ }
66
+ clear() {
67
+ this._maps = [];
68
+ }
69
+ *entries() {
70
+ for (const map of this._maps) {
71
+ yield* map.entries();
72
+ }
73
+ }
74
+ *keys() {
75
+ for (const map of this._maps) {
76
+ yield* map.keys();
77
+ }
78
+ }
79
+ *values() {
80
+ for (const map of this._maps) {
81
+ yield* map.values();
82
+ }
83
+ }
84
+ }
85
+ exports.BigMap = BigMap;
86
+ //# sourceMappingURL=big-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"big-map.js","sourceRoot":"","sources":["../../src/big-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare class BigSet<T> implements Iterable<T> {
2
+ _sets: Array<Set<T>>;
3
+ get [Symbol.toStringTag](): string;
4
+ get size(): number;
5
+ [Symbol.iterator](): IterableIterator<T>;
6
+ add(value: T): void;
7
+ has(value: T): boolean;
8
+ delete(value: T): boolean;
9
+ clear(): void;
10
+ values(): IterableIterator<T>;
11
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BigSet = void 0;
4
+ class BigSet {
5
+ constructor() {
6
+ this._sets = [];
7
+ }
8
+ get [Symbol.toStringTag]() {
9
+ return this.constructor.name;
10
+ }
11
+ get size() {
12
+ return this._sets
13
+ .map(set => set.size)
14
+ .reduce((acc, cur) => acc + cur, 0);
15
+ }
16
+ *[Symbol.iterator]() {
17
+ for (const set of this._sets) {
18
+ yield* set[Symbol.iterator]();
19
+ }
20
+ }
21
+ add(value) {
22
+ if (this._sets.some(set => set.has(value)))
23
+ return;
24
+ for (const set of this._sets) {
25
+ try {
26
+ set.add(value);
27
+ return;
28
+ }
29
+ catch (e) {
30
+ if (e instanceof RangeError)
31
+ continue;
32
+ throw e;
33
+ }
34
+ }
35
+ const set = new Set();
36
+ set.add(value);
37
+ this._sets.push(set);
38
+ }
39
+ has(value) {
40
+ return this._sets.some(set => set.has(value));
41
+ }
42
+ delete(value) {
43
+ for (const [index, set] of this._sets.entries()) {
44
+ if (set.has(value)) {
45
+ set.delete(value);
46
+ if (set.size === 0) {
47
+ this._sets.splice(index, 1);
48
+ }
49
+ return true;
50
+ }
51
+ }
52
+ return false;
53
+ }
54
+ clear() {
55
+ this._sets = [];
56
+ }
57
+ *values() {
58
+ for (const set of this._sets) {
59
+ yield* set.values();
60
+ }
61
+ }
62
+ }
63
+ exports.BigSet = BigSet;
64
+ //# sourceMappingURL=big-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"big-set.js","sourceRoot":"","sources":["../../src/big-set.ts"],"names":[],"mappings":";;;AAKA,MAAa,MAAM;IAAnB;QACE,UAAK,GAAkB,EAAE,CAAA;IAiE3B,CAAC;IA/DC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK;aACd,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;aACpB,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;SAC9B;IACH,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAAE,OAAM;QAElD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5B,IAAI;gBACF,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBACd,OAAM;aACP;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,YAAY,UAAU;oBAAE,SAAQ;gBACrC,MAAM,CAAC,CAAA;aACR;SACF;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAK,CAAA;QACxB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACd,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;YAC/C,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAEjB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE;oBAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;iBAC5B;gBAED,OAAO,IAAI,CAAA;aACZ;SACF;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IAED,CAAE,MAAM;QACN,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5B,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;SACpB;IACH,CAAC;CACF;AAlED,wBAkEC"}
package/lib/es2015/box.js CHANGED
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Box = void 0;
4
4
  class Box {
5
- constructor(value) {
6
- this.value = value;
7
- }
8
5
  get [Symbol.toStringTag]() {
9
6
  return this.constructor.name;
10
7
  }
8
+ constructor(value) {
9
+ this.value = value;
10
+ }
11
11
  set(value) {
12
12
  this.value = value;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;;AAAA,MAAa,GAAG;IAKd,YAAoB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;IAJhC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAID,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
+ {"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,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.convertArrayToCons = exports.convertConsToArray = void 0;
4
- const types_1 = require("@blackglory/types");
4
+ const extra_utils_1 = require("extra-utils");
5
5
  function convertConsToArray([value, next]) {
6
- if ((0, types_1.isNull)(next)) {
6
+ if ((0, extra_utils_1.isNull)(next)) {
7
7
  return [value];
8
8
  }
9
9
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"cons.js","sourceRoot":"","sources":["../../src/cons.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAI1C,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,IAAI,CAAU;IAC1D,IAAI,IAAA,cAAM,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
+ {"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"}
@@ -3,15 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.computeNewCapacity = exports.DynamicTypedArray = void 0;
4
4
  const errors_1 = require("@blackglory/errors");
5
5
  class DynamicTypedArray {
6
- constructor(typedArrayConstructor, { capacity = 0, growthFactor = 1.5 } = {}) {
7
- this.typedArrayConstructor = typedArrayConstructor;
8
- this._length = 0;
9
- (0, errors_1.assert)(Number.isInteger(capacity), 'capacity must be an integer');
10
- (0, errors_1.assert)(capacity >= 0, 'capacity must be greater than or equal to 0');
11
- (0, errors_1.assert)(growthFactor >= 1, 'growthFactory must be greater than or equal to 1');
12
- this.array = new typedArrayConstructor(capacity);
13
- this.growthFactor = growthFactor;
14
- }
15
6
  get internalTypedArray() {
16
7
  return this.array;
17
8
  }
@@ -27,6 +18,15 @@ class DynamicTypedArray {
27
18
  get length() {
28
19
  return this._length;
29
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
30
  set(index, value) {
31
31
  if (index >= this.capacity) {
32
32
  const newCapacity = computeNewCapacity(this.capacity, index + 1, this.growthFactor);
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-typed-array.js","sourceRoot":"","sources":["../../src/dynamic-typed-array.ts"],"names":[],"mappings":";;;AACA,+CAA2C;AAQ3C,MAAa,iBAAiB;IA+B5B,YACU,qBAAwB,EAChC,EACE,QAAQ,GAAG,CAAC,EACZ,YAAY,GAAG,GAAG,KACW,EAAE;QAJzB,0BAAqB,GAArB,qBAAqB,CAAG;QA9B1B,YAAO,GAAW,CAAC,CAAA;QAoCzB,IAAA,eAAM,EAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,6BAA6B,CAAC,CAAA;QACjE,IAAA,eAAM,EAAC,QAAQ,IAAI,CAAC,EAAE,6CAA6C,CAAC,CAAA;QACpE,IAAA,eAAM,EAAC,YAAY,IAAI,CAAC,EAAE,kDAAkD,CAAC,CAAA;QAE7E,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAqB,CAAC,QAAQ,CAA+B,CAAA;QAC9E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAvCD,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAA;IACrD,CAAC;IAKD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAKD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAiBD,GAAG,CAAC,KAAa,EAAE,KAAa;QAC9B,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC1B,MAAM,WAAW,GAAG,kBAAkB,CACpC,IAAI,CAAC,QAAQ,EACb,KAAK,GAAG,CAAC,EACT,IAAI,CAAC,YAAY,CAClB,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;SACzB;QAED,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAA;SACzB;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;IAC3B,CAAC;IAED,GAAG,CAAC,KAAa;QACf,OAAO,KAAK,GAAG,IAAI,CAAC,OAAO;YACtB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACnB,CAAC,CAAC,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,CAAC,GAAG,MAAgB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAA;QAC9C,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC7B,MAAM,WAAW,GAAG,kBAAkB,CACpC,IAAI,CAAC,QAAQ,EACb,SAAS,EACT,IAAI,CAAC,YAAY,CAClB,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;SACzB;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAA;SACnC;IACH,CAAC;IAED,GAAG;QACD,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,MAAM,WAAW,GAAG,kBAAkB,CACpC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,CAClB,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAExB,OAAO,KAAK,CAAA;SACb;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAED,IAAI,CAAC,OAA0C;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACvB,CAAC;IAEO,MAAM,CAAC,WAAmB;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE;YACrC,OAAM;SACP;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE;YAC1C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAA;YAC5D,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,CAAC,KAAK,GAAG,QAAsC,CAAA;SACpD;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE;YAC1C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAA;YAE5D,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,GAAG;gBAC9B,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;aAC5B;YACD,IAAI,CAAC,KAAK,GAAG,QAAsC,CAAA;SACpD;IACH,CAAC;CACF;AA9HD,8CA8HC;AAED,SAAgB,kBAAkB,CAChC,WAAmB,EACnB,YAAoB,EACpB,YAAoB;IAEpB,IAAI,YAAY,KAAK,CAAC,EAAE;QACtB,OAAO,YAAY,CAAA;KACpB;SAAM;QACL,IAAI,WAAW,KAAK,YAAY,EAAE;YAChC,OAAO,YAAY,CAAA;SACpB;aAAM,IAAI,WAAW,GAAG,YAAY,EAAE;YAErC,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YAC1C,OAAO,WAAW,GAAG,YAAY,EAAE;gBACjC,WAAW,IAAI,YAAY,CAAA;aAC5B;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;SAC/B;aAAM;YAKL,IAAI,YAAY,KAAK,CAAC,EAAE;gBACtB,OAAO,CAAC,CAAA;aACT;iBAAM;gBACL,IAAI,WAAW,GAAG,WAAW,CAAA;gBAC7B,OAAO,IAAI,EAAE;oBACX,MAAM,IAAI,GAAG,WAAW,GAAG,YAAY,CAAA;oBACvC,IAAI,IAAI,GAAG,YAAY,EAAE;wBACvB,MAAK;qBACN;yBAAM;wBACL,WAAW,GAAG,IAAI,CAAA;qBACnB;iBACF;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;aAC/B;SACF;KACF;AACH,CAAC;AAtCD,gDAsCC"}
1
+ {"version":3,"file":"dynamic-typed-array.js","sourceRoot":"","sources":["../../src/dynamic-typed-array.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- declare type Listener<Args extends unknown[]> = (...args: Args) => void;
1
+ type Listener<Args extends unknown[]> = (...args: Args) => void;
2
2
  export declare class Emitter<EventToArgs extends Record<Key, unknown[]> = Record<string | number | symbol, unknown[]>, Key extends string | number | symbol = keyof EventToArgs> {
3
3
  private map;
4
4
  get [Symbol.toStringTag](): string;
@@ -1,19 +1,19 @@
1
1
  export declare class ExpirableMap<K, V> {
2
2
  private map;
3
- private cancelClearTimeout?;
4
- itemMetadataSortedByExpirationTime: Array<{
3
+ private cancelScheduledCleaner?;
4
+ protected itemMetadataSortedByExpirationTime: Array<{
5
5
  key: K;
6
6
  expirationTime: number;
7
7
  }>;
8
8
  get [Symbol.toStringTag](): string;
9
9
  get size(): number;
10
- set(key: K, value: V, maxAge: number): this;
10
+ set(key: K, value: V, timeToLive?: number): this;
11
11
  has(key: K): boolean;
12
12
  get(key: K): V | undefined;
13
13
  delete(key: K): boolean;
14
14
  clear(): void;
15
15
  private addItemMetadata;
16
16
  private removeItemMetadata;
17
+ private scheduleCleaner;
17
18
  private clearExpiredItems;
18
- private rescheduleClearTimeout;
19
19
  }
@@ -13,10 +13,10 @@ class ExpirableMap {
13
13
  get size() {
14
14
  return this.map.size;
15
15
  }
16
- set(key, value, maxAge) {
16
+ set(key, value, timeToLive = Infinity) {
17
17
  this.map.set(key, value);
18
18
  this.removeItemMetadata(key);
19
- this.addItemMetadata(key, Date.now() + maxAge);
19
+ this.addItemMetadata(key, Date.now() + timeToLive);
20
20
  return this;
21
21
  }
22
22
  has(key) {
@@ -26,12 +26,14 @@ class ExpirableMap {
26
26
  return this.map.get(key);
27
27
  }
28
28
  delete(key) {
29
+ var _a;
29
30
  const exists = this.map.delete(key);
30
31
  if (exists) {
31
32
  const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
32
33
  this.itemMetadataSortedByExpirationTime.splice(index, 1);
33
34
  if (index === 0) {
34
- this.rescheduleClearTimeout();
35
+ (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
36
+ this.scheduleCleaner();
35
37
  }
36
38
  }
37
39
  return exists;
@@ -39,58 +41,59 @@ class ExpirableMap {
39
41
  clear() {
40
42
  var _a;
41
43
  this.map.clear();
42
- (_a = this.cancelClearTimeout) === null || _a === void 0 ? void 0 : _a.call(this);
44
+ (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
43
45
  this.itemMetadataSortedByExpirationTime = [];
44
46
  }
45
47
  addItemMetadata(key, expirationTime) {
48
+ var _a, _b;
46
49
  for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
47
50
  const item = this.itemMetadataSortedByExpirationTime[i];
48
51
  if (expirationTime < item.expirationTime) {
49
52
  this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
50
53
  if (i === 0) {
51
- this.rescheduleClearTimeout();
54
+ (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
55
+ this.scheduleCleaner();
52
56
  }
53
57
  return;
54
58
  }
55
59
  }
56
60
  this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
57
61
  if (this.itemMetadataSortedByExpirationTime.length === 1) {
58
- this.rescheduleClearTimeout();
62
+ (_b = this.cancelScheduledCleaner) === null || _b === void 0 ? void 0 : _b.call(this);
63
+ this.scheduleCleaner();
59
64
  }
60
65
  }
61
66
  removeItemMetadata(key) {
67
+ var _a;
62
68
  const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
63
69
  if (index >= 0) {
64
70
  this.itemMetadataSortedByExpirationTime.splice(index, 1);
65
71
  if (index === 0) {
66
- this.rescheduleClearTimeout();
72
+ (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
73
+ this.scheduleCleaner();
67
74
  }
68
75
  }
69
76
  }
70
- clearExpiredItems(timestamp) {
71
- const indexOfFirstUnexpired = this.itemMetadataSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
72
- const expiredItemKeys = indexOfFirstUnexpired >= 0
73
- ? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpired)
74
- : this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
75
- expiredItemKeys.forEach(x => this.map.delete(x.key));
76
- }
77
- rescheduleClearTimeout() {
78
- var _a;
79
- (_a = this.cancelClearTimeout) === null || _a === void 0 ? void 0 : _a.call(this);
77
+ scheduleCleaner() {
80
78
  if (this.itemMetadataSortedByExpirationTime.length > 0) {
81
79
  const item = this.itemMetadataSortedByExpirationTime[0];
82
80
  if (Number.isFinite(item.expirationTime)) {
83
- const cancel = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
81
+ this.cancelScheduledCleaner = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
82
+ var _a;
84
83
  this.clearExpiredItems(Date.now());
85
- this.rescheduleClearTimeout();
84
+ (_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
85
+ this.scheduleCleaner();
86
86
  });
87
- this.cancelClearTimeout = () => {
88
- cancel();
89
- this.cancelClearTimeout = undefined;
90
- };
91
87
  }
92
88
  }
93
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
+ }
94
97
  }
95
98
  exports.ExpirableMap = ExpirableMap;
96
99
  //# sourceMappingURL=expirable-map.js.map
@@ -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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"}
@@ -2,16 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HashMap = void 0;
4
4
  class HashMap {
5
- constructor(hash) {
6
- this.hash = hash;
7
- this.map = new Map();
8
- }
9
5
  get [Symbol.toStringTag]() {
10
6
  return this.constructor.name;
11
7
  }
12
8
  get size() {
13
9
  return this.map.size;
14
10
  }
11
+ constructor(hash) {
12
+ this.hash = hash;
13
+ this.map = new Map();
14
+ }
15
15
  set(key, value) {
16
16
  this.map.set(this.hash(key), value);
17
17
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"hash-map.js","sourceRoot":"","sources":["../../src/hash-map.ts"],"names":[],"mappings":";;;AAAA,MAAa,OAAO;IAWlB,YAAoB,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;QAVlC,QAAG,GAAG,IAAI,GAAG,EAAW,CAAA;IAUa,CAAC;IAR9C,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;IAID,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
+ {"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"}
@@ -2,10 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HashSet = void 0;
4
4
  class HashSet {
5
- constructor(hash) {
6
- this.hash = hash;
7
- this.map = new Map();
8
- }
9
5
  get [Symbol.toStringTag]() {
10
6
  return this.constructor.name;
11
7
  }
@@ -15,6 +11,10 @@ class HashSet {
15
11
  [Symbol.iterator]() {
16
12
  return this.map.values();
17
13
  }
14
+ constructor(hash) {
15
+ this.hash = hash;
16
+ this.map = new Map();
17
+ }
18
18
  add(value) {
19
19
  this.map.set(this.hash(value), value);
20
20
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"hash-set.js","sourceRoot":"","sources":["../../src/hash-set.ts"],"names":[],"mappings":";;;AAAA,MAAa,OAAO;IAelB,YAAoB,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;QAdpC,QAAG,GAAG,IAAI,GAAG,EAAW,CAAA;IAce,CAAC;IAZhD,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;IAID,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"}
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"}
@@ -2,6 +2,8 @@ export * from './box';
2
2
  export * from './cons';
3
3
  export * from './array';
4
4
  export * from './emitter';
5
+ export * from './big-map';
6
+ export * from './big-set';
5
7
  export * from './hash-map';
6
8
  export * from './hash-set';
7
9
  export * from './queue';
@@ -19,6 +19,8 @@ __exportStar(require("./box"), exports);
19
19
  __exportStar(require("./cons"), exports);
20
20
  __exportStar(require("./array"), exports);
21
21
  __exportStar(require("./emitter"), exports);
22
+ __exportStar(require("./big-map"), exports);
23
+ __exportStar(require("./big-set"), exports);
22
24
  __exportStar(require("./hash-map"), exports);
23
25
  __exportStar(require("./hash-set"), exports);
24
26
  __exportStar(require("./queue"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,yCAAsB;AACtB,0CAAuB;AACvB,4CAAyB;AACzB,6CAA0B;AAC1B,6CAA0B;AAC1B,0CAAuB;AACvB,4CAAyB;AACzB,kDAA+B;AAC/B,6CAA0B;AAC1B,6CAA0B;AAC1B,+CAA4B;AAC5B,+CAA4B;AAC5B,qDAAkC;AAClC,qDAAkC;AAClC,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA;AAC1B,+CAA4B;AAC5B,4CAAyB;AACzB,kDAA+B"}
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,+CAA4B;AAC5B,+CAA4B;AAC5B,qDAAkC;AAClC,qDAAkC;AAClC,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA;AAC1B,+CAA4B;AAC5B,4CAAyB;AACzB,kDAA+B"}