@mainsail/utils 0.0.1-rc.3 → 0.0.1-rc.4
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.
- package/distribution/assert.d.ts +12 -11
- package/distribution/assert.d.ts.map +1 -1
- package/distribution/assert.js.map +1 -1
- package/distribution/big-number.js +5 -4
- package/distribution/big-number.js.map +1 -1
- package/distribution/byte-buffer.js +31 -44
- package/distribution/byte-buffer.js.map +1 -1
- package/distribution/capped-map.js +7 -20
- package/distribution/capped-map.js.map +1 -1
- package/distribution/capped-set.js +8 -21
- package/distribution/capped-set.js.map +1 -1
- package/distribution/collection.js +12 -27
- package/distribution/collection.js.map +1 -1
- package/distribution/lock.js +11 -26
- package/distribution/lock.js.map +1 -1
- package/distribution/nsect.js +17 -30
- package/distribution/nsect.js.map +1 -1
- package/package.json +9 -9
package/distribution/assert.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
export
|
|
2
|
-
array
|
|
3
|
-
bigint
|
|
4
|
-
boolean
|
|
5
|
-
buffer
|
|
6
|
-
defined
|
|
7
|
-
number
|
|
8
|
-
object
|
|
9
|
-
string
|
|
10
|
-
symbol
|
|
11
|
-
undefined
|
|
1
|
+
export type Assert = {
|
|
2
|
+
array<T>(value: unknown): asserts value is Array<T>;
|
|
3
|
+
bigint(value: unknown): asserts value is bigint;
|
|
4
|
+
boolean(value: unknown): asserts value is boolean;
|
|
5
|
+
buffer(value: unknown): asserts value is Buffer;
|
|
6
|
+
defined<T>(value: undefined | null | T): asserts value is NonNullable<T>;
|
|
7
|
+
number(value: unknown): asserts value is number;
|
|
8
|
+
object(value: unknown): asserts value is Record<string, any>;
|
|
9
|
+
string(value: unknown): asserts value is string;
|
|
10
|
+
symbol(value: unknown): asserts value is symbol;
|
|
11
|
+
undefined(value: unknown): asserts value is undefined;
|
|
12
12
|
};
|
|
13
|
+
export declare const assert: Assert;
|
|
13
14
|
//# sourceMappingURL=assert.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../source/assert.ts"],"names":[],"mappings":"AAMA,
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../source/assert.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG;IACpB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IAChD,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IAChD,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IAChD,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAYpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../source/assert.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,SAAkB,EAAE,WAAmB,EAAqB,EAAE;IACjF,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,WAAW,IAAI,CAAC,CAAC;IAC9D,CAAC;AACF,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../source/assert.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,SAAkB,EAAE,WAAmB,EAAqB,EAAE;IACjF,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,WAAW,IAAI,CAAC,CAAC;IAC9D,CAAC;AACF,CAAC,CAAC;AAeF,MAAM,CAAC,MAAM,MAAM,GAAW;IAC7B,KAAK,EAAE,CAAI,KAAc,EAA6B,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAClG,MAAM,EAAE,CAAC,KAAc,EAA2B,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAC;IACpG,OAAO,EAAE,CAAC,KAAc,EAA4B,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,SAAS,EAAE,SAAS,CAAC;IACxG,MAAM,EAAE,CAAC,KAAc,EAA2B,EAAE,CAAC,UAAU,CAAC,KAAK,YAAY,MAAM,EAAE,QAAQ,CAAC;IAClG,OAAO,EAAE,CAAI,KAA2B,EAAmC,EAAE,CAC5E,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,4BAA4B,CAAC;IAChF,MAAM,EAAE,CAAC,KAAc,EAA2B,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAC;IACpG,MAAM,EAAE,CAAC,KAAc,EAAwC,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAC;IACjH,MAAM,EAAE,CAAC,KAAc,EAA2B,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAC;IACpG,MAAM,EAAE,CAAC,KAAc,EAA2B,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAC;IACpG,SAAS,EAAE,CAAC,KAAc,EAA8B,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,WAAW,CAAC;CACvG,CAAC"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export class BigNumber {
|
|
2
|
+
static ZERO = new BigNumber(0);
|
|
3
|
+
static ONE = new BigNumber(1);
|
|
4
|
+
static WEI = new BigNumber(1e18);
|
|
5
|
+
static UINT256_MAX = new BigNumber(2n ** 256n - 1n);
|
|
6
|
+
value;
|
|
2
7
|
constructor(value) {
|
|
3
8
|
this.value = this.toBigNumber(value);
|
|
4
9
|
}
|
|
@@ -70,8 +75,4 @@ export class BigNumber {
|
|
|
70
75
|
return BigInt(value);
|
|
71
76
|
}
|
|
72
77
|
}
|
|
73
|
-
BigNumber.ZERO = new BigNumber(0);
|
|
74
|
-
BigNumber.ONE = new BigNumber(1);
|
|
75
|
-
BigNumber.WEI = new BigNumber(1e18);
|
|
76
|
-
BigNumber.UINT256_MAX = new BigNumber(2n ** 256n - 1n);
|
|
77
78
|
//# sourceMappingURL=big-number.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"big-number.js","sourceRoot":"","sources":["../source/big-number.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,SAAS;
|
|
1
|
+
{"version":3,"file":"big-number.js","sourceRoot":"","sources":["../source/big-number.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,SAAS;IACd,MAAM,CAAU,IAAI,GAAc,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,CAAU,GAAG,GAAc,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAU,GAAG,GAAc,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAU,WAAW,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IAEnD,KAAK,CAAS;IAE/B,YAAmB,KAAoB;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,KAAoB;QACtC,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEM,IAAI,CAAC,KAAoB;QAC/B,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,KAAoB;QAChC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,KAAoB;QAChC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,SAAS,CAAC,KAAoB;QACpC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,GAAG,CAAC,KAAoB;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM;QACZ,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAEM,UAAU,CAAC,KAAoB;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC;QACV,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QAED,OAAO,CAAC,CAAC;IACV,CAAC;IAEM,UAAU,CAAC,KAAoB;QACrC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEM,eAAe,CAAC,KAAoB;QAC1C,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEM,aAAa,CAAC,KAAoB;QACxC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEM,kBAAkB,CAAC,KAAoB;QAC7C,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEM,SAAS,CAAC,KAAoB;QACpC,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,UAAU;QAChB,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACvB,CAAC;IAEM,OAAO;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEM,QAAQ,CAAC,IAAI,GAAG,EAAE;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM;QACZ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEM,QAAQ;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAEO,WAAW,CAAC,KAAoB;QACvC,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,CAAC,KAAY,CAAC,CAAC;IAC7B,CAAC"}
|
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var _ByteBuffer_buffer, _ByteBuffer_offset, _ByteBuffer_marker;
|
|
13
1
|
import { bytesToBigInt, padBytes, toBytes, trim } from "viem";
|
|
14
2
|
export class ByteBuffer {
|
|
3
|
+
#buffer;
|
|
4
|
+
#offset = 0;
|
|
5
|
+
#marker = 0;
|
|
15
6
|
constructor(buffer) {
|
|
16
|
-
|
|
17
|
-
_ByteBuffer_offset.set(this, 0);
|
|
18
|
-
_ByteBuffer_marker.set(this, 0);
|
|
19
|
-
__classPrivateFieldSet(this, _ByteBuffer_buffer, buffer, "f");
|
|
7
|
+
this.#buffer = buffer;
|
|
20
8
|
}
|
|
21
9
|
static fromSize(size) {
|
|
22
10
|
return new ByteBuffer(Buffer.alloc(size));
|
|
@@ -25,45 +13,45 @@ export class ByteBuffer {
|
|
|
25
13
|
return new ByteBuffer(buffer);
|
|
26
14
|
}
|
|
27
15
|
writeUint8(value) {
|
|
28
|
-
|
|
16
|
+
this.#offset = this.#buffer.writeUInt8(value, this.#offset);
|
|
29
17
|
}
|
|
30
18
|
readUint8() {
|
|
31
|
-
const value =
|
|
32
|
-
|
|
19
|
+
const value = this.#buffer.readUInt8(this.#offset);
|
|
20
|
+
this.#offset += 1;
|
|
33
21
|
return value;
|
|
34
22
|
}
|
|
35
23
|
writeUint16(value) {
|
|
36
|
-
|
|
24
|
+
this.#offset = this.#buffer.writeUInt16LE(value, this.#offset);
|
|
37
25
|
}
|
|
38
26
|
readUint16() {
|
|
39
|
-
const value =
|
|
40
|
-
|
|
27
|
+
const value = this.#buffer.readUInt16LE(this.#offset);
|
|
28
|
+
this.#offset += 2;
|
|
41
29
|
return value;
|
|
42
30
|
}
|
|
43
31
|
writeUint32(value) {
|
|
44
|
-
|
|
32
|
+
this.#offset = this.#buffer.writeUInt32LE(value, this.#offset);
|
|
45
33
|
}
|
|
46
34
|
readUint32() {
|
|
47
|
-
const value =
|
|
48
|
-
|
|
35
|
+
const value = this.#buffer.readUInt32LE(this.#offset);
|
|
36
|
+
this.#offset += 4;
|
|
49
37
|
return value;
|
|
50
38
|
}
|
|
51
39
|
writeUint48(value) {
|
|
52
40
|
if (value < 0 || value > 2 ** 48 - 1) {
|
|
53
41
|
throw new Error(`The value of "value" is out of range. It must be >= 0 and <= ${2 ** 48 - 1}. Received ${value}`);
|
|
54
42
|
}
|
|
55
|
-
|
|
43
|
+
this.#offset = this.#buffer.writeUIntLE(value, this.#offset, 6);
|
|
56
44
|
}
|
|
57
45
|
readUint48() {
|
|
58
|
-
const value =
|
|
59
|
-
|
|
46
|
+
const value = this.#buffer.readUIntLE(this.#offset, 6);
|
|
47
|
+
this.#offset += 6;
|
|
60
48
|
return value;
|
|
61
49
|
}
|
|
62
50
|
writeUint64(value) {
|
|
63
51
|
if (typeof value !== "bigint") {
|
|
64
52
|
value = BigInt(value);
|
|
65
53
|
}
|
|
66
|
-
|
|
54
|
+
this.#offset = this.#buffer.writeBigUInt64LE(value, this.#offset);
|
|
67
55
|
}
|
|
68
56
|
writeUint256(value) {
|
|
69
57
|
if (typeof value !== "bigint") {
|
|
@@ -77,8 +65,8 @@ export class ByteBuffer {
|
|
|
77
65
|
this.writeBytes(Buffer.from(padded));
|
|
78
66
|
}
|
|
79
67
|
readUint64() {
|
|
80
|
-
const value =
|
|
81
|
-
|
|
68
|
+
const value = this.#buffer.readBigUInt64LE(this.#offset);
|
|
69
|
+
this.#offset += 8;
|
|
82
70
|
return value;
|
|
83
71
|
}
|
|
84
72
|
readUint256() {
|
|
@@ -96,7 +84,7 @@ export class ByteBuffer {
|
|
|
96
84
|
(value.length - this.getRemainderLength()) +
|
|
97
85
|
")");
|
|
98
86
|
}
|
|
99
|
-
|
|
87
|
+
this.#offset += value.copy(this.#buffer, this.#offset);
|
|
100
88
|
}
|
|
101
89
|
readBytes(length) {
|
|
102
90
|
if (length > this.getRemainderLength()) {
|
|
@@ -108,40 +96,39 @@ export class ByteBuffer {
|
|
|
108
96
|
(length - this.getRemainderLength()) +
|
|
109
97
|
")");
|
|
110
98
|
}
|
|
111
|
-
const value =
|
|
112
|
-
|
|
99
|
+
const value = this.#buffer.subarray(this.#offset, this.#offset + length);
|
|
100
|
+
this.#offset += length;
|
|
113
101
|
return value;
|
|
114
102
|
}
|
|
115
103
|
readHex(length) {
|
|
116
104
|
return this.readBytes(length);
|
|
117
105
|
}
|
|
118
106
|
getRemainder() {
|
|
119
|
-
return
|
|
107
|
+
return this.#buffer.subarray(this.#offset);
|
|
120
108
|
}
|
|
121
109
|
getRemainderLength() {
|
|
122
|
-
return
|
|
110
|
+
return this.#buffer.length - this.#offset;
|
|
123
111
|
}
|
|
124
112
|
getResult() {
|
|
125
|
-
return
|
|
113
|
+
return this.#buffer.subarray(0, this.#offset);
|
|
126
114
|
}
|
|
127
115
|
getResultLength() {
|
|
128
|
-
return
|
|
116
|
+
return this.#offset;
|
|
129
117
|
}
|
|
130
118
|
mark() {
|
|
131
|
-
|
|
119
|
+
this.#marker = this.#offset;
|
|
132
120
|
}
|
|
133
121
|
reset() {
|
|
134
|
-
|
|
122
|
+
this.#offset = this.#marker ?? 0;
|
|
135
123
|
}
|
|
136
124
|
skip(length) {
|
|
137
|
-
if (length < -
|
|
125
|
+
if (length < -this.#offset || length > this.getRemainderLength()) {
|
|
138
126
|
throw new Error("Jump over buffer boundary.");
|
|
139
127
|
}
|
|
140
|
-
|
|
128
|
+
this.#offset += length;
|
|
141
129
|
}
|
|
142
130
|
toBuffer() {
|
|
143
|
-
return Buffer.from(
|
|
131
|
+
return Buffer.from(this.#buffer.buffer);
|
|
144
132
|
}
|
|
145
133
|
}
|
|
146
|
-
_ByteBuffer_buffer = new WeakMap(), _ByteBuffer_offset = new WeakMap(), _ByteBuffer_marker = new WeakMap();
|
|
147
134
|
//# sourceMappingURL=byte-buffer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"byte-buffer.js","sourceRoot":"","sources":["../source/byte-buffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"byte-buffer.js","sourceRoot":"","sources":["../source/byte-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,14 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var _CappedMap_maxSize;
|
|
13
1
|
export class CappedMap {
|
|
2
|
+
store = new Map();
|
|
3
|
+
#maxSize;
|
|
14
4
|
constructor(maxSize) {
|
|
15
|
-
this
|
|
16
|
-
_CappedMap_maxSize.set(this, void 0);
|
|
17
|
-
__classPrivateFieldSet(this, _CappedMap_maxSize, maxSize, "f");
|
|
5
|
+
this.#maxSize = maxSize;
|
|
18
6
|
}
|
|
19
7
|
get(key) {
|
|
20
8
|
return this.store.get(key);
|
|
21
9
|
}
|
|
22
10
|
set(key, value) {
|
|
23
|
-
if (this.store.size >=
|
|
11
|
+
if (this.store.size >= this.#maxSize) {
|
|
24
12
|
this.store.delete([...this.store][0][0]);
|
|
25
13
|
}
|
|
26
14
|
this.store = this.store.set(key, value);
|
|
@@ -39,9 +27,9 @@ export class CappedMap {
|
|
|
39
27
|
this.store.clear();
|
|
40
28
|
}
|
|
41
29
|
resize(maxSize) {
|
|
42
|
-
|
|
43
|
-
if (this.store.size >
|
|
44
|
-
this.store = new Map([...this.store].slice(-Math.max(0,
|
|
30
|
+
this.#maxSize = maxSize;
|
|
31
|
+
if (this.store.size > this.#maxSize) {
|
|
32
|
+
this.store = new Map([...this.store].slice(-Math.max(0, this.#maxSize)));
|
|
45
33
|
}
|
|
46
34
|
}
|
|
47
35
|
first() {
|
|
@@ -60,5 +48,4 @@ export class CappedMap {
|
|
|
60
48
|
return this.store.size;
|
|
61
49
|
}
|
|
62
50
|
}
|
|
63
|
-
_CappedMap_maxSize = new WeakMap();
|
|
64
51
|
//# sourceMappingURL=capped-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capped-map.js","sourceRoot":"","sources":["../source/capped-map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capped-map.js","sourceRoot":"","sources":["../source/capped-map.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IACX,KAAK,GAAc,IAAI,GAAG,EAAQ,CAAC;IAC7C,QAAQ,CAAS;IAEjB,YAAmB,OAAe;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,GAAG,CAAC,GAAM;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,GAAG,CAAC,GAAM,EAAE,KAAQ;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAEM,GAAG,CAAC,GAAM;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,GAAM;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,KAAK;QACX,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,OAAe;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;IACF,CAAC;IAEM,KAAK;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAEM,IAAI;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,IAAI;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACxB,CAAC;CACD"}
|
|
@@ -1,34 +1,21 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var _CappedSet_data, _CappedSet_maxSize;
|
|
13
1
|
// A Set that is capped in size and acts like a FIFO.
|
|
14
2
|
export class CappedSet {
|
|
3
|
+
#data = new Set();
|
|
4
|
+
#maxSize;
|
|
15
5
|
constructor(maxSize = 16_384) {
|
|
16
|
-
|
|
17
|
-
_CappedSet_maxSize.set(this, void 0);
|
|
18
|
-
__classPrivateFieldSet(this, _CappedSet_maxSize, maxSize, "f");
|
|
6
|
+
this.#maxSize = maxSize;
|
|
19
7
|
}
|
|
20
8
|
add(newElement) {
|
|
21
|
-
if (
|
|
22
|
-
const oldest =
|
|
9
|
+
if (this.#data.size >= this.#maxSize) {
|
|
10
|
+
const oldest = this.#data.values().next().value;
|
|
23
11
|
if (oldest !== undefined) {
|
|
24
|
-
|
|
12
|
+
this.#data.delete(oldest);
|
|
25
13
|
}
|
|
26
14
|
}
|
|
27
|
-
|
|
15
|
+
this.#data.add(newElement);
|
|
28
16
|
}
|
|
29
17
|
has(element) {
|
|
30
|
-
return
|
|
18
|
+
return this.#data.has(element);
|
|
31
19
|
}
|
|
32
20
|
}
|
|
33
|
-
_CappedSet_data = new WeakMap(), _CappedSet_maxSize = new WeakMap();
|
|
34
21
|
//# sourceMappingURL=capped-set.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capped-set.js","sourceRoot":"","sources":["../source/capped-set.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capped-set.js","sourceRoot":"","sources":["../source/capped-set.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,OAAO,SAAS;IACZ,KAAK,GAAW,IAAI,GAAG,EAAK,CAAC;IACtC,QAAQ,CAAS;IAEjB,YAAmB,OAAO,GAAG,MAAM;QAClC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,GAAG,CAAC,UAAa;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAEhD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAEM,GAAG,CAAC,OAAU;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACD"}
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
7
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
|
-
};
|
|
12
|
-
var _Collection_collection;
|
|
13
1
|
import { get } from "./get.js";
|
|
14
2
|
import { has } from "./has.js";
|
|
15
3
|
import { sample } from "./sample.js";
|
|
@@ -17,46 +5,44 @@ import { set } from "./set.js";
|
|
|
17
5
|
import { stringify } from "./stringify.js";
|
|
18
6
|
import { unset } from "./unset.js";
|
|
19
7
|
export class Collection {
|
|
20
|
-
|
|
21
|
-
_Collection_collection.set(this, {});
|
|
22
|
-
}
|
|
8
|
+
#collection = {};
|
|
23
9
|
all() {
|
|
24
|
-
return
|
|
10
|
+
return this.#collection;
|
|
25
11
|
}
|
|
26
12
|
entries() {
|
|
27
|
-
return Object.entries(
|
|
13
|
+
return Object.entries(this.#collection);
|
|
28
14
|
}
|
|
29
15
|
keys() {
|
|
30
|
-
return Object.keys(
|
|
16
|
+
return Object.keys(this.#collection);
|
|
31
17
|
}
|
|
32
18
|
values() {
|
|
33
|
-
return Object.values(
|
|
19
|
+
return Object.values(this.#collection);
|
|
34
20
|
}
|
|
35
21
|
pull(key) {
|
|
36
|
-
const item = get(
|
|
22
|
+
const item = get(this.#collection, key);
|
|
37
23
|
this.forget(key);
|
|
38
24
|
return item;
|
|
39
25
|
}
|
|
40
26
|
get(key) {
|
|
41
|
-
return get(
|
|
27
|
+
return get(this.#collection, key);
|
|
42
28
|
}
|
|
43
29
|
set(key, value) {
|
|
44
|
-
set(
|
|
30
|
+
set(this.#collection, key, value);
|
|
45
31
|
}
|
|
46
32
|
forget(key) {
|
|
47
|
-
unset(
|
|
33
|
+
unset(this.#collection, key);
|
|
48
34
|
}
|
|
49
35
|
flush() {
|
|
50
|
-
|
|
36
|
+
this.#collection = {};
|
|
51
37
|
}
|
|
52
38
|
has(key) {
|
|
53
|
-
return has(
|
|
39
|
+
return has(this.#collection, key);
|
|
54
40
|
}
|
|
55
41
|
missing(key) {
|
|
56
42
|
return !this.has(key);
|
|
57
43
|
}
|
|
58
44
|
count() {
|
|
59
|
-
return Object.keys(
|
|
45
|
+
return Object.keys(this.#collection).length;
|
|
60
46
|
}
|
|
61
47
|
isEmpty() {
|
|
62
48
|
return this.count() <= 0;
|
|
@@ -75,5 +61,4 @@ export class Collection {
|
|
|
75
61
|
return stringify(collection);
|
|
76
62
|
}
|
|
77
63
|
}
|
|
78
|
-
_Collection_collection = new WeakMap();
|
|
79
64
|
//# sourceMappingURL=collection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../source/collection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../source/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,OAAO,UAAU;IACtB,WAAW,GAAsB,EAAE,CAAC;IAE7B,GAAG;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAEM,OAAO;QACb,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAEM,IAAI;QACV,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM;QACZ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAEM,IAAI,CAAC,GAAW;QACtB,MAAM,IAAI,GAAG,GAAG,CAAuB,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEjB,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,GAAG,CAAC,GAAW;QACrB,OAAO,GAAG,CAAuB,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC/B,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,GAAW;QACxB,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEM,KAAK;QACX,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACvB,CAAC;IAEM,GAAG,CAAC,GAAW;QACrB,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,OAAO,CAAC,GAAW;QACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAEM,KAAK;QACX,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IAC7C,CAAC;IAEM,OAAO;QACb,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEM,UAAU;QAChB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAEM,MAAM;QACZ,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM;QACZ,MAAM,UAAU,GAAsB,EAAE,CAAC;QAEzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3C,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;QAED,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;CACD"}
|
package/distribution/lock.js
CHANGED
|
@@ -1,45 +1,31 @@
|
|
|
1
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
7
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
|
-
};
|
|
12
|
-
var _Lock_exclusivePromise, _Lock_nonExclusivePromises;
|
|
13
1
|
export class Lock {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
_Lock_nonExclusivePromises.set(this, new Set());
|
|
17
|
-
}
|
|
2
|
+
#exclusivePromise;
|
|
3
|
+
#nonExclusivePromises = new Set();
|
|
18
4
|
async runNonExclusive(callback) {
|
|
19
|
-
while (
|
|
5
|
+
while (this.#exclusivePromise) {
|
|
20
6
|
try {
|
|
21
|
-
await
|
|
7
|
+
await this.#exclusivePromise;
|
|
22
8
|
}
|
|
23
9
|
catch { }
|
|
24
10
|
}
|
|
25
11
|
const nonExclusivePromise = callback();
|
|
26
12
|
try {
|
|
27
|
-
|
|
13
|
+
this.#nonExclusivePromises.add(nonExclusivePromise);
|
|
28
14
|
return await nonExclusivePromise;
|
|
29
15
|
}
|
|
30
16
|
finally {
|
|
31
|
-
|
|
17
|
+
this.#nonExclusivePromises.delete(nonExclusivePromise);
|
|
32
18
|
}
|
|
33
19
|
}
|
|
34
20
|
async runExclusive(callback) {
|
|
35
|
-
while (
|
|
21
|
+
while (this.#exclusivePromise) {
|
|
36
22
|
try {
|
|
37
|
-
await
|
|
23
|
+
await this.#exclusivePromise;
|
|
38
24
|
}
|
|
39
25
|
catch { }
|
|
40
26
|
}
|
|
41
27
|
const exclusivePromise = (async () => {
|
|
42
|
-
await Promise.all([...
|
|
28
|
+
await Promise.all([...this.#nonExclusivePromises].map(async (nonExclusivePromise) => {
|
|
43
29
|
try {
|
|
44
30
|
await nonExclusivePromise;
|
|
45
31
|
}
|
|
@@ -48,13 +34,12 @@ export class Lock {
|
|
|
48
34
|
return await callback();
|
|
49
35
|
})();
|
|
50
36
|
try {
|
|
51
|
-
|
|
37
|
+
this.#exclusivePromise = exclusivePromise;
|
|
52
38
|
return await exclusivePromise;
|
|
53
39
|
}
|
|
54
40
|
finally {
|
|
55
|
-
|
|
41
|
+
this.#exclusivePromise = undefined;
|
|
56
42
|
}
|
|
57
43
|
}
|
|
58
44
|
}
|
|
59
|
-
_Lock_exclusivePromise = new WeakMap(), _Lock_nonExclusivePromises = new WeakMap();
|
|
60
45
|
//# sourceMappingURL=lock.js.map
|
package/distribution/lock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../source/lock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../source/lock.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,IAAI;IAChB,iBAAiB,CAAoB;IAE5B,qBAAqB,GAA0B,IAAI,GAAG,EAAoB,CAAC;IAE7E,KAAK,CAAC,eAAe,CAAI,QAA0B;QACzD,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACX,CAAC;QAED,MAAM,mBAAmB,GAAG,QAAQ,EAAE,CAAC;QAEvC,IAAI,CAAC;YACJ,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACpD,OAAO,MAAM,mBAAmB,CAAC;QAClC,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,YAAY,CAAI,QAA0B;QACtD,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,OAAO,CAAC,GAAG,CAChB,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE;gBACjE,IAAI,CAAC;oBACJ,MAAM,mBAAmB,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACX,CAAC,CAAC,CACF,CAAC;YAEF,OAAO,MAAM,QAAQ,EAAE,CAAC;QACzB,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC;YACJ,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;YAC1C,OAAO,MAAM,gBAAgB,CAAC;QAC/B,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACpC,CAAC;IACF,CAAC;CACD"}
|
package/distribution/nsect.js
CHANGED
|
@@ -1,34 +1,21 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var _NSect_instances, _NSect_nAry, _NSect_probe, _NSect_calcProbes;
|
|
13
1
|
import assert from "assert";
|
|
14
2
|
export class NSect {
|
|
3
|
+
#nAry;
|
|
4
|
+
#probe;
|
|
15
5
|
constructor(nAry, probe) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
_NSect_probe.set(this, void 0);
|
|
19
|
-
__classPrivateFieldSet(this, _NSect_nAry, nAry, "f");
|
|
20
|
-
__classPrivateFieldSet(this, _NSect_probe, probe, "f");
|
|
6
|
+
this.#nAry = nAry;
|
|
7
|
+
this.#probe = probe;
|
|
21
8
|
}
|
|
22
9
|
async find(low, high) {
|
|
23
10
|
let highestMatching;
|
|
24
11
|
for (;;) {
|
|
25
|
-
const indexesToProbe =
|
|
26
|
-
const temporary = await
|
|
12
|
+
const indexesToProbe = this.#calcProbes(low, high);
|
|
13
|
+
const temporary = await this.#probe(indexesToProbe);
|
|
27
14
|
if (temporary === undefined) {
|
|
28
15
|
break;
|
|
29
16
|
}
|
|
30
17
|
highestMatching = temporary;
|
|
31
|
-
if (low +
|
|
18
|
+
if (low + this.#nAry >= high) {
|
|
32
19
|
// The range is narrowed so much that we probed every element in the range.
|
|
33
20
|
// No need to narrow further - highestMatching contains the definitive result.
|
|
34
21
|
break;
|
|
@@ -78,15 +65,15 @@ export class NSect {
|
|
|
78
65
|
}
|
|
79
66
|
return highestMatching;
|
|
80
67
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
68
|
+
#calcProbes(low, high) {
|
|
69
|
+
assert(low <= high, `${low} <= ${high}`);
|
|
70
|
+
const diff = high - low;
|
|
71
|
+
const p = new Set();
|
|
72
|
+
for (let index = 0; index < this.#nAry + 1; index++) {
|
|
73
|
+
const h = low + Math.round((diff * index) / this.#nAry);
|
|
74
|
+
p.add(h);
|
|
75
|
+
}
|
|
76
|
+
return [...p];
|
|
89
77
|
}
|
|
90
|
-
|
|
91
|
-
};
|
|
78
|
+
}
|
|
92
79
|
//# sourceMappingURL=nsect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nsect.js","sourceRoot":"","sources":["../source/nsect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nsect.js","sourceRoot":"","sources":["../source/nsect.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mainsail/utils",
|
|
3
|
-
"version": "0.0.1-rc.
|
|
3
|
+
"version": "0.0.1-rc.4",
|
|
4
4
|
"description": "Performance oriented implementations of commonly used functions in TypeScript.",
|
|
5
5
|
"license": "GPL-3.0-only",
|
|
6
6
|
"contributors": [],
|
|
@@ -23,17 +23,17 @@
|
|
|
23
23
|
"fast-sort": "3.4.1",
|
|
24
24
|
"ipaddr.js": "2.2.0",
|
|
25
25
|
"nanomatch": "1.2.13",
|
|
26
|
-
"type-fest": "4.
|
|
27
|
-
"viem": "2.
|
|
26
|
+
"type-fest": "4.41.0",
|
|
27
|
+
"viem": "2.34.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@hapi/boom": "10.0.1",
|
|
31
|
-
"@hapi/hapi": "21.4.
|
|
31
|
+
"@hapi/hapi": "21.4.3",
|
|
32
32
|
"big-number": "2.0.0",
|
|
33
|
-
"bignumber.js": "9.1
|
|
34
|
-
"jsbi": "4.3.
|
|
33
|
+
"bignumber.js": "9.3.1",
|
|
34
|
+
"jsbi": "4.3.2",
|
|
35
35
|
"lodash": "4.17.21",
|
|
36
|
-
"micro-bmark": "0.4.
|
|
36
|
+
"micro-bmark": "0.4.2",
|
|
37
37
|
"pluralize": "8.0.0",
|
|
38
38
|
"uvu": "0.5.6"
|
|
39
39
|
},
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"bench": "pnpm run build && node benchmark/index.js",
|
|
45
|
-
"build": "
|
|
45
|
+
"build": "tsc -b",
|
|
46
46
|
"build:watch": "pnpm run clean && tsc -w",
|
|
47
|
-
"clean": "del distribution",
|
|
47
|
+
"clean": "del distribution && del tsconfig.tsbuildinfo",
|
|
48
48
|
"release": "pnpm publish --access public",
|
|
49
49
|
"test": "pnpm run uvu source .test.ts",
|
|
50
50
|
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
|