@vaitosoi/minejs 0.4.3 → 0.5.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.
- package/README.md +12 -4
- package/assets/minecraft/26.2/effects.json +42 -0
- package/assets/minecraft/26.2/packets.json +1 -1
- package/dist/base/bitset.d.ts +43 -4
- package/dist/base/bitset.d.ts.map +1 -1
- package/dist/base/bitset.js +251 -30
- package/dist/base/bitset.js.map +1 -1
- package/dist/base/cache.d.ts +24 -0
- package/dist/base/cache.d.ts.map +1 -0
- package/dist/base/cache.js +58 -0
- package/dist/base/cache.js.map +1 -0
- package/dist/base/error.d.ts +7 -0
- package/dist/base/error.d.ts.map +1 -1
- package/dist/base/error.js +12 -1
- package/dist/base/error.js.map +1 -1
- package/dist/base/math.d.ts +12 -0
- package/dist/base/math.d.ts.map +1 -1
- package/dist/base/math.js +39 -0
- package/dist/base/math.js.map +1 -1
- package/dist/base/typing.d.ts +7 -0
- package/dist/base/typing.d.ts.map +1 -1
- package/dist/{packet → binary}/decoder.d.ts.map +1 -1
- package/dist/{packet → binary}/decoder.js.map +1 -1
- package/dist/{packet → binary}/encoder.d.ts +2 -2
- package/dist/binary/encoder.d.ts.map +1 -0
- package/dist/{packet → binary}/encoder.js +6 -2
- package/dist/binary/encoder.js.map +1 -0
- package/dist/{packet → binary}/static.d.ts.map +1 -1
- package/dist/{packet → binary}/static.js.map +1 -1
- package/dist/client/client.d.ts +23 -2
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +32 -15
- package/dist/client/client.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/{client → net}/tcp.d.ts +2 -2
- package/dist/net/tcp.d.ts.map +1 -0
- package/dist/{client → net}/tcp.js +2 -2
- package/dist/net/tcp.js.map +1 -0
- package/dist/packet/{dispatcher.d.ts → listener.d.ts} +7 -18
- package/dist/packet/listener.d.ts.map +1 -0
- package/dist/packet/{dispatcher.js → listener.js} +71 -137
- package/dist/packet/listener.js.map +1 -0
- package/dist/packet/sender.d.ts +25 -0
- package/dist/packet/sender.d.ts.map +1 -0
- package/dist/packet/sender.js +144 -0
- package/dist/packet/sender.js.map +1 -0
- package/dist/physics/aabb.d.ts.map +1 -1
- package/dist/physics/aabb.js +9 -8
- package/dist/physics/aabb.js.map +1 -1
- package/dist/physics/player.d.ts +1 -0
- package/dist/physics/player.d.ts.map +1 -1
- package/dist/physics/player.js +21 -3
- package/dist/physics/player.js.map +1 -1
- package/dist/version/codec.d.ts +1 -1
- package/dist/version/codec.d.ts.map +1 -1
- package/dist/version/codec.js +21 -5
- package/dist/version/codec.js.map +1 -1
- package/dist/version/registry.d.ts +16 -1
- package/dist/version/registry.d.ts.map +1 -1
- package/dist/version/registry.js +31 -2
- package/dist/version/registry.js.map +1 -1
- package/dist/world/block.d.ts +5 -0
- package/dist/world/block.d.ts.map +1 -1
- package/dist/world/block.js +56 -0
- package/dist/world/block.js.map +1 -1
- package/dist/world/state.d.ts +19 -0
- package/dist/world/state.d.ts.map +1 -1
- package/dist/world/state.js +16 -0
- package/dist/world/state.js.map +1 -1
- package/package.json +8 -10
- package/src/base/bitset.ts +312 -31
- package/src/base/cache.ts +62 -0
- package/src/base/error.ts +9 -0
- package/src/base/math.ts +43 -1
- package/src/base/typing.ts +5 -0
- package/src/{packet → binary}/encoder.ts +6 -2
- package/src/client/client.ts +54 -19
- package/src/index.ts +12 -4
- package/src/{client → net}/tcp.ts +3 -3
- package/src/packet/{dispatcher.ts → listener.ts} +90 -175
- package/src/packet/sender.ts +176 -0
- package/src/physics/aabb.ts +9 -8
- package/src/physics/player.ts +19 -3
- package/src/version/codec.ts +22 -6
- package/src/version/registry.ts +49 -2
- package/src/world/block.ts +72 -2
- package/src/world/state.ts +39 -2
- package/test/bitset/index.ts +3 -8
- package/test/client/index.ts +12 -2
- package/test/state/index.ts +7 -0
- package/dist/client/tcp.d.ts.map +0 -1
- package/dist/client/tcp.js.map +0 -1
- package/dist/packet/dispatcher.d.ts.map +0 -1
- package/dist/packet/dispatcher.js.map +0 -1
- package/dist/packet/encoder.d.ts.map +0 -1
- package/dist/packet/encoder.js.map +0 -1
- /package/dist/{packet → binary}/decoder.d.ts +0 -0
- /package/dist/{packet → binary}/decoder.js +0 -0
- /package/dist/{packet → binary}/static.d.ts +0 -0
- /package/dist/{packet → binary}/static.js +0 -0
- /package/src/{packet → binary}/decoder.ts +0 -0
- /package/src/{packet → binary}/static.ts +0 -0
package/README.md
CHANGED
|
@@ -38,8 +38,8 @@ const client = new Client({
|
|
|
38
38
|
// openBrowser: true,
|
|
39
39
|
// port: 12345
|
|
40
40
|
// },
|
|
41
|
-
shouldVerifyMessageOrder: true,
|
|
42
|
-
shouldVerifyMessageSignature: true
|
|
41
|
+
// shouldVerifyMessageOrder: true,
|
|
42
|
+
// shouldVerifyMessageSignature: true
|
|
43
43
|
});
|
|
44
44
|
client.connect();
|
|
45
45
|
client.on("disconnect", (...args) => console.dir({ name: "disconnect", args }, { depth: null }));
|
|
@@ -80,7 +80,15 @@ client.on("message", (message) => {
|
|
|
80
80
|
case "at": {
|
|
81
81
|
const [, x, y, z] = args.map(val => parseInt(val)) as [any, number, number, number];
|
|
82
82
|
const state = client.at(x, y, z);
|
|
83
|
-
|
|
83
|
+
console.log(state);
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
case "e":
|
|
88
|
+
case "echo":
|
|
89
|
+
case "say": {
|
|
90
|
+
const message = args.slice(1).join(" ");
|
|
91
|
+
client.chat(message);
|
|
84
92
|
break;
|
|
85
93
|
}
|
|
86
94
|
|
|
@@ -108,7 +116,7 @@ See [documentation](https://minejs.vaito.dev)
|
|
|
108
116
|
|
|
109
117
|
+ `Offline server` is a server you can join with a cracked account, meaning that you don't have to own Minecraft to join.
|
|
110
118
|
|
|
111
|
-
+ `Online server`, on the other hand, require
|
|
119
|
+
+ `Online server`, on the other hand, require an account that owns Minecraft.
|
|
112
120
|
|
|
113
121
|
### 2. Why I can't join online server yet:
|
|
114
122
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"minecraft:absorption": 21,
|
|
3
|
+
"minecraft:bad_omen": 30,
|
|
4
|
+
"minecraft:blindness": 14,
|
|
5
|
+
"minecraft:breath_of_the_nautilus": 39,
|
|
6
|
+
"minecraft:conduit_power": 28,
|
|
7
|
+
"minecraft:darkness": 32,
|
|
8
|
+
"minecraft:dolphins_grace": 29,
|
|
9
|
+
"minecraft:fire_resistance": 11,
|
|
10
|
+
"minecraft:glowing": 23,
|
|
11
|
+
"minecraft:haste": 2,
|
|
12
|
+
"minecraft:health_boost": 20,
|
|
13
|
+
"minecraft:hero_of_the_village": 31,
|
|
14
|
+
"minecraft:hunger": 16,
|
|
15
|
+
"minecraft:infested": 38,
|
|
16
|
+
"minecraft:instant_damage": 6,
|
|
17
|
+
"minecraft:instant_health": 5,
|
|
18
|
+
"minecraft:invisibility": 13,
|
|
19
|
+
"minecraft:jump_boost": 7,
|
|
20
|
+
"minecraft:levitation": 24,
|
|
21
|
+
"minecraft:luck": 25,
|
|
22
|
+
"minecraft:mining_fatigue": 3,
|
|
23
|
+
"minecraft:nausea": 8,
|
|
24
|
+
"minecraft:night_vision": 15,
|
|
25
|
+
"minecraft:oozing": 37,
|
|
26
|
+
"minecraft:poison": 18,
|
|
27
|
+
"minecraft:raid_omen": 34,
|
|
28
|
+
"minecraft:regeneration": 9,
|
|
29
|
+
"minecraft:resistance": 10,
|
|
30
|
+
"minecraft:saturation": 22,
|
|
31
|
+
"minecraft:slow_falling": 27,
|
|
32
|
+
"minecraft:slowness": 1,
|
|
33
|
+
"minecraft:speed": 0,
|
|
34
|
+
"minecraft:strength": 4,
|
|
35
|
+
"minecraft:trial_omen": 33,
|
|
36
|
+
"minecraft:unluck": 26,
|
|
37
|
+
"minecraft:water_breathing": 12,
|
|
38
|
+
"minecraft:weakness": 17,
|
|
39
|
+
"minecraft:weaving": 36,
|
|
40
|
+
"minecraft:wind_charged": 35,
|
|
41
|
+
"minecraft:wither": 19
|
|
42
|
+
}
|
package/dist/base/bitset.d.ts
CHANGED
|
@@ -1,9 +1,48 @@
|
|
|
1
|
-
import BitSet_ from "bitset";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* Simplified implementation of the Java's BitSet class
|
|
3
|
+
*
|
|
4
|
+
* @see https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/BitSet.java
|
|
5
|
+
* @hidden
|
|
4
6
|
*/
|
|
5
|
-
export declare class BitSet
|
|
6
|
-
|
|
7
|
+
export declare class BitSet {
|
|
8
|
+
static readonly ADDRESS_BITS_PER_WORD = 6;
|
|
9
|
+
static readonly BITS_PER_WORD: number;
|
|
10
|
+
static readonly WORD_MASK = 18446744073709551615n;
|
|
11
|
+
words: BigUint64Array;
|
|
12
|
+
wordsInUse: number;
|
|
13
|
+
private static wordIndex;
|
|
14
|
+
private static bitIndexInWord;
|
|
15
|
+
/**
|
|
16
|
+
* Create a mask with lowest `n` bits set to 1
|
|
17
|
+
*
|
|
18
|
+
* For example:
|
|
19
|
+
* * n = 0 -> `0b0n`
|
|
20
|
+
* * n = 3 -> `0b111n`
|
|
21
|
+
* * n = 5 -> `0b11111n`
|
|
22
|
+
*
|
|
23
|
+
* @param nBits
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
private static lowBits;
|
|
27
|
+
private initWords;
|
|
28
|
+
private static checkRange;
|
|
29
|
+
constructor(nBits?: number);
|
|
7
30
|
clone(): BitSet;
|
|
31
|
+
private expandTo;
|
|
32
|
+
private ensureCapacity;
|
|
33
|
+
private recalculateWordsInUse;
|
|
34
|
+
private checkInvariants;
|
|
35
|
+
toByteArray(): number[];
|
|
36
|
+
flip(bitIndex: number): void;
|
|
37
|
+
set(bitIndex: number): void;
|
|
38
|
+
setRange(fromIndex: number, toIndex: number): void;
|
|
39
|
+
clear(bitIndex: number): void;
|
|
40
|
+
clearRange(fromIndex: number, toIndex: number): void;
|
|
41
|
+
get(bitIndex: number): boolean;
|
|
42
|
+
nextSetBit(fromIndex: number): number;
|
|
43
|
+
nextClearBit(fromIndex: number): number;
|
|
44
|
+
length(): number;
|
|
45
|
+
isEmpty(): boolean;
|
|
8
46
|
}
|
|
47
|
+
export default BitSet;
|
|
9
48
|
//# sourceMappingURL=bitset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitset.d.ts","sourceRoot":"","sources":["../../src/base/bitset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bitset.d.ts","sourceRoot":"","sources":["../../src/base/bitset.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,qBAAa,MAAM;IACf,gBAAuB,qBAAqB,KAAK;IACjD,gBAAuB,aAAa,SAAmC;IACvE,gBAAuB,SAAS,yBAAuB;IAEhD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,MAAM,CAAK;IAE9B,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IAItB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB,YAAY,KAAK,CAAC,EAAE,MAAM,EAIzB;IAEM,KAAK,WAMX;IAED,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,eAAe;IAOhB,WAAW,aAiBjB;IAEM,IAAI,CAAC,QAAQ,EAAE,MAAM,QAW3B;IAEM,GAAG,CAAC,QAAQ,EAAE,MAAM,QAU1B;IACM,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAgDjD;IAGM,KAAK,CAAC,QAAQ,EAAE,MAAM,QAY5B;IACM,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAyCnD;IAGM,GAAG,CAAC,QAAQ,EAAE,MAAM,WAW1B;IAEM,UAAU,CAAC,SAAS,EAAE,MAAM,UAmBlC;IAEM,YAAY,CAAC,SAAS,EAAE,MAAM,UAqBpC;IAEM,MAAM,WAMZ;IAEM,OAAO,YAEb;CACJ;eAEc,MAAM"}
|
package/dist/base/bitset.js
CHANGED
|
@@ -4,43 +4,264 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BitSet = void 0;
|
|
7
|
-
const
|
|
7
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
8
|
+
const error_1 = require("./error");
|
|
9
|
+
const math_1 = require("./math");
|
|
8
10
|
/**
|
|
9
|
-
*
|
|
11
|
+
* Simplified implementation of the Java's BitSet class
|
|
12
|
+
*
|
|
13
|
+
* @see https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/BitSet.java
|
|
14
|
+
* @hidden
|
|
10
15
|
*/
|
|
11
|
-
class BitSet
|
|
16
|
+
class BitSet {
|
|
17
|
+
static ADDRESS_BITS_PER_WORD = 6;
|
|
18
|
+
static BITS_PER_WORD = 1 << this.ADDRESS_BITS_PER_WORD;
|
|
19
|
+
static WORD_MASK = 0xffffffffffffffffn;
|
|
20
|
+
words;
|
|
21
|
+
wordsInUse = 0;
|
|
22
|
+
static wordIndex(bitIndex) {
|
|
23
|
+
return bitIndex >> this.ADDRESS_BITS_PER_WORD;
|
|
24
|
+
}
|
|
25
|
+
static bitIndexInWord(bitIndex) {
|
|
26
|
+
return bitIndex & (this.BITS_PER_WORD - 1); // should be bitIndex & 63
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create a mask with lowest `n` bits set to 1
|
|
30
|
+
*
|
|
31
|
+
* For example:
|
|
32
|
+
* * n = 0 -> `0b0n`
|
|
33
|
+
* * n = 3 -> `0b111n`
|
|
34
|
+
* * n = 5 -> `0b11111n`
|
|
35
|
+
*
|
|
36
|
+
* @param nBits
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
static lowBits(nBits) {
|
|
40
|
+
return (1n << BigInt(nBits)) - 1n;
|
|
41
|
+
}
|
|
42
|
+
initWords(nBits) {
|
|
43
|
+
return new BigUint64Array(BitSet.wordIndex(nBits - 1) + 1);
|
|
44
|
+
}
|
|
45
|
+
static checkRange(fromIndex, toIndex) {
|
|
46
|
+
if (fromIndex < 0)
|
|
47
|
+
throw new error_1.UnexpectedValue("value of fromIndex", fromIndex.toString(), "non-negative number");
|
|
48
|
+
if (toIndex < 0)
|
|
49
|
+
throw new error_1.UnexpectedValue("value of toIndex", toIndex.toString(), "non-negative number");
|
|
50
|
+
if (fromIndex > toIndex)
|
|
51
|
+
throw new error_1.UnexpectedValue("fromIndex and toIndex", `fromIndex ${fromIndex}; toIndex ${toIndex}`, "fromIndex has to be smaller than toIndex");
|
|
52
|
+
}
|
|
53
|
+
constructor(nBits) {
|
|
54
|
+
if (nBits && nBits < 0)
|
|
55
|
+
throw new error_1.UnexpectedValue("length of bitset", nBits.toString(), "non-negative number");
|
|
56
|
+
this.words = this.initWords(nBits ?? BitSet.BITS_PER_WORD);
|
|
57
|
+
}
|
|
58
|
+
clone() {
|
|
59
|
+
const bitset = new BitSet(0);
|
|
60
|
+
bitset.words = structuredClone(this.words);
|
|
61
|
+
bitset.wordsInUse = this.wordsInUse;
|
|
62
|
+
bitset.checkInvariants();
|
|
63
|
+
return bitset;
|
|
64
|
+
}
|
|
65
|
+
expandTo(wordIndex) {
|
|
66
|
+
const wordsRequired = wordIndex + 1;
|
|
67
|
+
if (this.wordsInUse < wordsRequired) {
|
|
68
|
+
this.ensureCapacity(wordsRequired);
|
|
69
|
+
this.wordsInUse = wordsRequired;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
ensureCapacity(wordsRequired) {
|
|
73
|
+
if (wordsRequired > this.words.length) {
|
|
74
|
+
// Allocate larger of doubled size or required size
|
|
75
|
+
const request = Math.max(2 * this.words.length, wordsRequired);
|
|
76
|
+
const newWords = new BigUint64Array(request);
|
|
77
|
+
newWords.set(this.words);
|
|
78
|
+
this.words = newWords;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
recalculateWordsInUse() {
|
|
82
|
+
let i = this.wordsInUse - 1;
|
|
83
|
+
while (i >= 0 && this.words[i] === 0n)
|
|
84
|
+
i--;
|
|
85
|
+
this.wordsInUse = i + 1; // The new logical size
|
|
86
|
+
}
|
|
87
|
+
checkInvariants() {
|
|
88
|
+
(0, node_assert_1.default)(this.wordsInUse === 0 || this.words[this.wordsInUse - 1] !== 0n);
|
|
89
|
+
(0, node_assert_1.default)(this.wordsInUse >= 0 && this.wordsInUse <= this.words.length);
|
|
90
|
+
(0, node_assert_1.default)(this.wordsInUse === this.words.length || this.words[this.wordsInUse] === 0n);
|
|
91
|
+
}
|
|
92
|
+
toByteArray() {
|
|
93
|
+
const n = this.wordsInUse;
|
|
94
|
+
if (n == 0)
|
|
95
|
+
return [];
|
|
96
|
+
const bytes = [];
|
|
97
|
+
for (const word of this.words) {
|
|
98
|
+
let coppiedWord = structuredClone(word);
|
|
99
|
+
// Slice a 64-bit (or 8-byte word) into 8 8-bit (or 1-byte) slices
|
|
100
|
+
for (let i = 0; i < 8; i++) {
|
|
101
|
+
bytes.push(Number(coppiedWord & 0xffn));
|
|
102
|
+
coppiedWord >>= 8n;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
while (bytes.length > 0 && bytes.at(-1) === 0)
|
|
106
|
+
bytes.pop();
|
|
107
|
+
return bytes;
|
|
108
|
+
}
|
|
109
|
+
flip(bitIndex) {
|
|
110
|
+
if (bitIndex < 0)
|
|
111
|
+
throw new error_1.UnexpectedValue("value of bitIndex", bitIndex.toString(), "non-negative number");
|
|
112
|
+
const wordIndex = BitSet.wordIndex(bitIndex);
|
|
113
|
+
this.expandTo(wordIndex);
|
|
114
|
+
this.words[wordIndex] ^= BigInt(BitSet.bitIndexInWord(bitIndex));
|
|
115
|
+
this.recalculateWordsInUse();
|
|
116
|
+
this.checkInvariants();
|
|
117
|
+
}
|
|
118
|
+
set(bitIndex) {
|
|
119
|
+
if (bitIndex < 0)
|
|
120
|
+
throw new error_1.UnexpectedValue("value of bitIndex", bitIndex.toString(), "non-negative number");
|
|
121
|
+
const wordIndex = BitSet.wordIndex(bitIndex);
|
|
122
|
+
this.expandTo(wordIndex);
|
|
123
|
+
this.words[wordIndex] |= 1n << BigInt(BitSet.bitIndexInWord(bitIndex)); // Restores invariants
|
|
124
|
+
this.checkInvariants();
|
|
125
|
+
}
|
|
126
|
+
setRange(fromIndex, toIndex) {
|
|
127
|
+
BitSet.checkRange(fromIndex, toIndex);
|
|
128
|
+
if (fromIndex == toIndex)
|
|
129
|
+
return;
|
|
130
|
+
// Increase capacity if necessary
|
|
131
|
+
const startWordIndex = BitSet.wordIndex(fromIndex);
|
|
132
|
+
const endWordIndex = BitSet.wordIndex(toIndex - 1);
|
|
133
|
+
this.expandTo(endWordIndex);
|
|
134
|
+
const fromBit = BitSet.bitIndexInWord(fromIndex), toBitInclusive = BitSet.bitIndexInWord(toIndex - 1) + 1,
|
|
135
|
+
/**
|
|
136
|
+
* The NOT (~) bitwise meaning:
|
|
137
|
+
*
|
|
138
|
+
* Let say we want to set 2 to 6:
|
|
139
|
+
* ```
|
|
140
|
+
* 110010100
|
|
141
|
+
* ^ ^
|
|
142
|
+
* | +-- this is the 2nd bit
|
|
143
|
+
* and this is the 6th bit
|
|
144
|
+
* ```
|
|
145
|
+
*
|
|
146
|
+
* So we call lowBits(2) and it return `...0011`
|
|
147
|
+
*
|
|
148
|
+
* Then we have to flip it to `...1100` to access the '2nd bit and the bits after it'
|
|
149
|
+
*/
|
|
150
|
+
firstWordMask = ~BitSet.lowBits(fromBit), lastWordMask = BitSet.lowBits(toBitInclusive);
|
|
151
|
+
if (startWordIndex == endWordIndex) {
|
|
152
|
+
// Case 1: One word
|
|
153
|
+
this.words[startWordIndex] |= (firstWordMask & lastWordMask);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
// Case 2: Multiple words
|
|
157
|
+
// Handle first word
|
|
158
|
+
this.words[startWordIndex] |= firstWordMask;
|
|
159
|
+
// Handle intermediate words, if any
|
|
160
|
+
for (let i = startWordIndex + 1; i < endWordIndex; i++)
|
|
161
|
+
this.words[i] = BitSet.WORD_MASK;
|
|
162
|
+
// Handle last word (restores invariants)
|
|
163
|
+
this.words[endWordIndex] |= lastWordMask;
|
|
164
|
+
}
|
|
165
|
+
this.checkInvariants();
|
|
166
|
+
}
|
|
167
|
+
clear(bitIndex) {
|
|
168
|
+
if (bitIndex < 0)
|
|
169
|
+
throw new error_1.UnexpectedValue("value of bitIndex", bitIndex.toString(), "non-negative number");
|
|
170
|
+
const wordIndex = BitSet.wordIndex(bitIndex);
|
|
171
|
+
if (wordIndex >= this.wordsInUse)
|
|
172
|
+
return;
|
|
173
|
+
this.words[wordIndex] &= ~(1n << BigInt(bitIndex));
|
|
174
|
+
this.recalculateWordsInUse();
|
|
175
|
+
this.checkInvariants();
|
|
176
|
+
}
|
|
177
|
+
clearRange(fromIndex, toIndex) {
|
|
178
|
+
BitSet.checkRange(fromIndex, toIndex);
|
|
179
|
+
if (fromIndex == toIndex)
|
|
180
|
+
return;
|
|
181
|
+
const startWordIndex = BitSet.wordIndex(fromIndex);
|
|
182
|
+
if (startWordIndex >= this.wordsInUse)
|
|
183
|
+
return;
|
|
184
|
+
let endWordIndex = BitSet.wordIndex(toIndex - 1);
|
|
185
|
+
if (endWordIndex >= this.wordsInUse) {
|
|
186
|
+
toIndex = this.length();
|
|
187
|
+
endWordIndex = this.wordsInUse - 1;
|
|
188
|
+
}
|
|
189
|
+
const fromBit = BitSet.bitIndexInWord(fromIndex), toBitInclusive = BitSet.bitIndexInWord(toIndex - 1) + 1,
|
|
190
|
+
/**
|
|
191
|
+
* See the explaination in the setRange function
|
|
192
|
+
*/
|
|
193
|
+
firstWordMask = ~BitSet.lowBits(fromBit), lastWordMask = BitSet.lowBits(toBitInclusive);
|
|
194
|
+
if (startWordIndex == endWordIndex) {
|
|
195
|
+
// Case 1: One word
|
|
196
|
+
this.words[startWordIndex] &= ~(firstWordMask & lastWordMask);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
// Case 2: Multiple words
|
|
200
|
+
// Handle first word
|
|
201
|
+
this.words[startWordIndex] &= ~firstWordMask;
|
|
202
|
+
// Handle intermediate words, if any
|
|
203
|
+
for (let i = startWordIndex + 1; i < endWordIndex; i++)
|
|
204
|
+
this.words[i] = 0n;
|
|
205
|
+
// Handle last word
|
|
206
|
+
this.words[endWordIndex] &= ~lastWordMask;
|
|
207
|
+
}
|
|
208
|
+
this.recalculateWordsInUse();
|
|
209
|
+
this.checkInvariants();
|
|
210
|
+
}
|
|
211
|
+
get(bitIndex) {
|
|
212
|
+
if (bitIndex < 0)
|
|
213
|
+
throw new error_1.UnexpectedValue("value of bitIndex", bitIndex.toString(), "non-negative number");
|
|
214
|
+
this.checkInvariants();
|
|
215
|
+
const wordIndex = BitSet.wordIndex(bitIndex);
|
|
216
|
+
if (wordIndex >= this.wordsInUse)
|
|
217
|
+
return false;
|
|
218
|
+
const bit = 1n << BigInt(BitSet.bitIndexInWord(bitIndex));
|
|
219
|
+
return (Number(this.words[wordIndex] & bit) != 0);
|
|
220
|
+
}
|
|
221
|
+
nextSetBit(fromIndex) {
|
|
222
|
+
if (fromIndex < 0)
|
|
223
|
+
throw new error_1.UnexpectedValue("value of fromIndex", fromIndex.toString(), "non-negative number");
|
|
224
|
+
this.checkInvariants();
|
|
225
|
+
let u = BitSet.wordIndex(fromIndex);
|
|
226
|
+
if (u >= this.wordsInUse)
|
|
227
|
+
return -1;
|
|
228
|
+
let word = this.words[u] & (~0n << BigInt(BitSet.bitIndexInWord(fromIndex)));
|
|
229
|
+
while (true) {
|
|
230
|
+
if (word != 0n)
|
|
231
|
+
return (u * BitSet.BITS_PER_WORD) + (0, math_1.numberOfTrailingZeros)(word);
|
|
232
|
+
if (++u == this.wordsInUse)
|
|
233
|
+
return -1;
|
|
234
|
+
word = this.words[u];
|
|
235
|
+
}
|
|
236
|
+
}
|
|
12
237
|
nextClearBit(fromIndex) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
// `-1 << fromIndex` masks correctly even when fromIndex > 31.
|
|
23
|
-
let word = ~data[wordIndex] & (-1 << fromIndex);
|
|
238
|
+
// Neither spec nor implementation handle bitsets of maximal length.
|
|
239
|
+
// See 4816253.
|
|
240
|
+
if (fromIndex < 0)
|
|
241
|
+
throw new error_1.UnexpectedValue("value of fromIndex", fromIndex.toString(), "non-negative number");
|
|
242
|
+
this.checkInvariants();
|
|
243
|
+
let u = BitSet.wordIndex(fromIndex);
|
|
244
|
+
if (u >= this.wordsInUse)
|
|
245
|
+
return fromIndex;
|
|
246
|
+
let word = ~this.words[u] & (BitSet.WORD_MASK << BigInt(fromIndex));
|
|
24
247
|
while (true) {
|
|
25
|
-
if (word
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
return wordIndex * 32 + c;
|
|
32
|
-
}
|
|
33
|
-
wordIndex++;
|
|
34
|
-
if (wordIndex >= data.length) {
|
|
35
|
-
return this['_'] === 0 ? wordIndex * 32 : Infinity;
|
|
36
|
-
}
|
|
37
|
-
word = ~data[wordIndex];
|
|
248
|
+
if (word != 0n)
|
|
249
|
+
return (u * BitSet.BITS_PER_WORD) + (0, math_1.numberOfTrailingZeros)(word);
|
|
250
|
+
if (++u == this.wordsInUse)
|
|
251
|
+
return this.wordsInUse * BitSet.BITS_PER_WORD;
|
|
252
|
+
word = ~this.words[u];
|
|
38
253
|
}
|
|
39
254
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
255
|
+
length() {
|
|
256
|
+
if (this.wordsInUse == 0)
|
|
257
|
+
return 0;
|
|
258
|
+
return BitSet.BITS_PER_WORD * (this.wordsInUse - 1) +
|
|
259
|
+
(BitSet.BITS_PER_WORD - (0, math_1.numberOfLeadingZeros)(this.words[this.wordsInUse - 1]));
|
|
260
|
+
}
|
|
261
|
+
isEmpty() {
|
|
262
|
+
return this.wordsInUse == 0;
|
|
43
263
|
}
|
|
44
264
|
}
|
|
45
265
|
exports.BitSet = BitSet;
|
|
266
|
+
exports.default = BitSet;
|
|
46
267
|
//# sourceMappingURL=bitset.js.map
|
package/dist/base/bitset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitset.js","sourceRoot":"","sources":["../../src/base/bitset.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"bitset.js","sourceRoot":"","sources":["../../src/base/bitset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The base implementation for the Cache class
|
|
3
|
+
*/
|
|
4
|
+
export declare abstract class CacheImplementation<T = any> {
|
|
5
|
+
abstract put(key: string, item: T): void;
|
|
6
|
+
abstract get(key: string): T | undefined;
|
|
7
|
+
abstract del(key: string): void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The LRU cache implementation.
|
|
11
|
+
*
|
|
12
|
+
* @see https://en.wikipedia.org/wiki/Cache_replacement_policies#Time-Aware,_Least_Recently_Used_(TLRU)
|
|
13
|
+
*/
|
|
14
|
+
export declare class LRUCache<T> extends CacheImplementation<T> {
|
|
15
|
+
private capacity;
|
|
16
|
+
private hash;
|
|
17
|
+
private list;
|
|
18
|
+
constructor(capacity: number);
|
|
19
|
+
put(key: string, item: T): void;
|
|
20
|
+
get(key: string): T | undefined;
|
|
21
|
+
del(key: string): void;
|
|
22
|
+
private truncateHash;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/base/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,8BAAsB,mBAAmB,CAAC,CAAC,GAAG,GAAG;IAC7C,SAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAChD,SAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAChD,SAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED;;;;GAIG;AACH,qBAAa,QAAQ,CAAC,CAAC,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAIvC,OAAO,CAAC,QAAQ;IAH5B,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,IAAI,CAAgB;IAE5B,YAAoB,QAAQ,EAAE,MAAM,EAEnC;IAEM,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAWrC;IAEM,GAAG,CAAC,GAAG,EAAE,MAAM,iBAUrB;IAEM,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAK5B;IAED,OAAO,CAAC,YAAY;CAOvB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LRUCache = exports.CacheImplementation = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The base implementation for the Cache class
|
|
6
|
+
*/
|
|
7
|
+
class CacheImplementation {
|
|
8
|
+
}
|
|
9
|
+
exports.CacheImplementation = CacheImplementation;
|
|
10
|
+
/**
|
|
11
|
+
* The LRU cache implementation.
|
|
12
|
+
*
|
|
13
|
+
* @see https://en.wikipedia.org/wiki/Cache_replacement_policies#Time-Aware,_Least_Recently_Used_(TLRU)
|
|
14
|
+
*/
|
|
15
|
+
class LRUCache extends CacheImplementation {
|
|
16
|
+
capacity;
|
|
17
|
+
hash = new Map();
|
|
18
|
+
list = [];
|
|
19
|
+
constructor(capacity) {
|
|
20
|
+
super();
|
|
21
|
+
this.capacity = capacity;
|
|
22
|
+
}
|
|
23
|
+
put(key, item) {
|
|
24
|
+
if (this.hash.has(key)) {
|
|
25
|
+
const oldIndex = this.list.indexOf(key);
|
|
26
|
+
if (oldIndex > -1)
|
|
27
|
+
this.list.splice(oldIndex, 1);
|
|
28
|
+
}
|
|
29
|
+
this.hash.set(key, item);
|
|
30
|
+
this.list.push(key);
|
|
31
|
+
this.truncateHash();
|
|
32
|
+
}
|
|
33
|
+
get(key) {
|
|
34
|
+
if (!this.hash.has(key))
|
|
35
|
+
return undefined;
|
|
36
|
+
const item = this.hash.get(key);
|
|
37
|
+
const oldIndex = this.list.indexOf(key);
|
|
38
|
+
if (oldIndex > -1)
|
|
39
|
+
this.list.splice(oldIndex, 1);
|
|
40
|
+
this.list.push(key);
|
|
41
|
+
return item;
|
|
42
|
+
}
|
|
43
|
+
del(key) {
|
|
44
|
+
const oldIndex = this.list.indexOf(key);
|
|
45
|
+
if (oldIndex > -1)
|
|
46
|
+
this.list.splice(oldIndex, 1);
|
|
47
|
+
this.hash.delete(key);
|
|
48
|
+
}
|
|
49
|
+
truncateHash() {
|
|
50
|
+
while (this.list.length > this.capacity) {
|
|
51
|
+
const popping = this.list.pop();
|
|
52
|
+
if (popping)
|
|
53
|
+
this.hash.delete(popping);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.LRUCache = LRUCache;
|
|
58
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/base/cache.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH;CAIC;;AAED;;;;GAIG;AACH,cAAyB,SAAQ,mBAAsB;IAI/B,QAAQ;IAHpB,IAAI,GAAmB,IAAI,GAAG,EAAE,CAAC;IACjC,IAAI,GAAa,EAAE,CAAC;IAE5B,YAAoB,QAAgB;QAChC,KAAK,EAAE,CAAC;wBADQ,QAAQ;IAE5B,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,IAAO;QAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAEM,GAAG,CAAC,GAAW;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,GAAG,CAAC,GAAW;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEO,YAAY;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,OAAO;gBACP,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;CACJ"}
|
package/dist/base/error.d.ts
CHANGED
|
@@ -135,4 +135,11 @@ export declare class MessageLinkNotFound extends Error {
|
|
|
135
135
|
export declare class HaveSignatureButNotIndex extends Error {
|
|
136
136
|
constructor();
|
|
137
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* @hidden
|
|
140
|
+
*/
|
|
141
|
+
export declare class MessageTooLong extends Error {
|
|
142
|
+
message: string;
|
|
143
|
+
constructor(message: string);
|
|
144
|
+
}
|
|
138
145
|
//# sourceMappingURL=error.d.ts.map
|
package/dist/base/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/base/error.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/base/error.ts"],"names":[],"mappings":"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"}
|
package/dist/base/error.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HaveSignatureButNotIndex = exports.MessageLinkNotFound = exports.SkippableNotImplemented = exports.NotImplemented = exports.MissingField = exports.MissingPacketField = exports.InvalidPacketStructure = exports.CantReadFile = exports.VersionNotSupport = exports.RegistryItemNotFound = exports.AuthRelatedNotFound = exports.MissingAuthOption = exports.AuthTokenExpired = exports.AuthDenied = exports.ProfileError = exports.ProfileNotFound = exports.MinecraftError = exports.XboxError = exports.AuthClientError = exports.OAuthError = exports.CantGetMsAccessToken = exports.CantGetMsAuthToken = exports.SockerIsNotWritable = exports.InvalidValue = exports.StringSizeExceedLimit = exports.NumberTooBig = exports.UnexpectedValue = exports.ClientNotReady = void 0;
|
|
3
|
+
exports.MessageTooLong = exports.HaveSignatureButNotIndex = exports.MessageLinkNotFound = exports.SkippableNotImplemented = exports.NotImplemented = exports.MissingField = exports.MissingPacketField = exports.InvalidPacketStructure = exports.CantReadFile = exports.VersionNotSupport = exports.RegistryItemNotFound = exports.AuthRelatedNotFound = exports.MissingAuthOption = exports.AuthTokenExpired = exports.AuthDenied = exports.ProfileError = exports.ProfileNotFound = exports.MinecraftError = exports.XboxError = exports.AuthClientError = exports.OAuthError = exports.CantGetMsAccessToken = exports.CantGetMsAuthToken = exports.SockerIsNotWritable = exports.InvalidValue = exports.StringSizeExceedLimit = exports.NumberTooBig = exports.UnexpectedValue = exports.ClientNotReady = void 0;
|
|
4
4
|
/** @hidden */
|
|
5
5
|
class ClientNotReady extends Error {
|
|
6
6
|
constructor() {
|
|
@@ -261,4 +261,15 @@ class HaveSignatureButNotIndex extends Error {
|
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
exports.HaveSignatureButNotIndex = HaveSignatureButNotIndex;
|
|
264
|
+
/**
|
|
265
|
+
* @hidden
|
|
266
|
+
*/
|
|
267
|
+
class MessageTooLong extends Error {
|
|
268
|
+
message;
|
|
269
|
+
constructor(message) {
|
|
270
|
+
super(`your message is exceeding the 256 characters long limit, got ${message.length} characters`);
|
|
271
|
+
this.message = message;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
exports.MessageTooLong = MessageTooLong;
|
|
264
275
|
//# sourceMappingURL=error.js.map
|
package/dist/base/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/base/error.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/base/error.ts"],"names":[],"mappings":"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"}
|