@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.
Files changed (105) hide show
  1. package/README.md +12 -4
  2. package/assets/minecraft/26.2/effects.json +42 -0
  3. package/assets/minecraft/26.2/packets.json +1 -1
  4. package/dist/base/bitset.d.ts +43 -4
  5. package/dist/base/bitset.d.ts.map +1 -1
  6. package/dist/base/bitset.js +251 -30
  7. package/dist/base/bitset.js.map +1 -1
  8. package/dist/base/cache.d.ts +24 -0
  9. package/dist/base/cache.d.ts.map +1 -0
  10. package/dist/base/cache.js +58 -0
  11. package/dist/base/cache.js.map +1 -0
  12. package/dist/base/error.d.ts +7 -0
  13. package/dist/base/error.d.ts.map +1 -1
  14. package/dist/base/error.js +12 -1
  15. package/dist/base/error.js.map +1 -1
  16. package/dist/base/math.d.ts +12 -0
  17. package/dist/base/math.d.ts.map +1 -1
  18. package/dist/base/math.js +39 -0
  19. package/dist/base/math.js.map +1 -1
  20. package/dist/base/typing.d.ts +7 -0
  21. package/dist/base/typing.d.ts.map +1 -1
  22. package/dist/{packet → binary}/decoder.d.ts.map +1 -1
  23. package/dist/{packet → binary}/decoder.js.map +1 -1
  24. package/dist/{packet → binary}/encoder.d.ts +2 -2
  25. package/dist/binary/encoder.d.ts.map +1 -0
  26. package/dist/{packet → binary}/encoder.js +6 -2
  27. package/dist/binary/encoder.js.map +1 -0
  28. package/dist/{packet → binary}/static.d.ts.map +1 -1
  29. package/dist/{packet → binary}/static.js.map +1 -1
  30. package/dist/client/client.d.ts +23 -2
  31. package/dist/client/client.d.ts.map +1 -1
  32. package/dist/client/client.js +32 -15
  33. package/dist/client/client.js.map +1 -1
  34. package/dist/index.d.ts +12 -4
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +12 -4
  37. package/dist/index.js.map +1 -1
  38. package/dist/{client → net}/tcp.d.ts +2 -2
  39. package/dist/net/tcp.d.ts.map +1 -0
  40. package/dist/{client → net}/tcp.js +2 -2
  41. package/dist/net/tcp.js.map +1 -0
  42. package/dist/packet/{dispatcher.d.ts → listener.d.ts} +7 -18
  43. package/dist/packet/listener.d.ts.map +1 -0
  44. package/dist/packet/{dispatcher.js → listener.js} +71 -137
  45. package/dist/packet/listener.js.map +1 -0
  46. package/dist/packet/sender.d.ts +25 -0
  47. package/dist/packet/sender.d.ts.map +1 -0
  48. package/dist/packet/sender.js +144 -0
  49. package/dist/packet/sender.js.map +1 -0
  50. package/dist/physics/aabb.d.ts.map +1 -1
  51. package/dist/physics/aabb.js +9 -8
  52. package/dist/physics/aabb.js.map +1 -1
  53. package/dist/physics/player.d.ts +1 -0
  54. package/dist/physics/player.d.ts.map +1 -1
  55. package/dist/physics/player.js +21 -3
  56. package/dist/physics/player.js.map +1 -1
  57. package/dist/version/codec.d.ts +1 -1
  58. package/dist/version/codec.d.ts.map +1 -1
  59. package/dist/version/codec.js +21 -5
  60. package/dist/version/codec.js.map +1 -1
  61. package/dist/version/registry.d.ts +16 -1
  62. package/dist/version/registry.d.ts.map +1 -1
  63. package/dist/version/registry.js +31 -2
  64. package/dist/version/registry.js.map +1 -1
  65. package/dist/world/block.d.ts +5 -0
  66. package/dist/world/block.d.ts.map +1 -1
  67. package/dist/world/block.js +56 -0
  68. package/dist/world/block.js.map +1 -1
  69. package/dist/world/state.d.ts +19 -0
  70. package/dist/world/state.d.ts.map +1 -1
  71. package/dist/world/state.js +16 -0
  72. package/dist/world/state.js.map +1 -1
  73. package/package.json +8 -10
  74. package/src/base/bitset.ts +312 -31
  75. package/src/base/cache.ts +62 -0
  76. package/src/base/error.ts +9 -0
  77. package/src/base/math.ts +43 -1
  78. package/src/base/typing.ts +5 -0
  79. package/src/{packet → binary}/encoder.ts +6 -2
  80. package/src/client/client.ts +54 -19
  81. package/src/index.ts +12 -4
  82. package/src/{client → net}/tcp.ts +3 -3
  83. package/src/packet/{dispatcher.ts → listener.ts} +90 -175
  84. package/src/packet/sender.ts +176 -0
  85. package/src/physics/aabb.ts +9 -8
  86. package/src/physics/player.ts +19 -3
  87. package/src/version/codec.ts +22 -6
  88. package/src/version/registry.ts +49 -2
  89. package/src/world/block.ts +72 -2
  90. package/src/world/state.ts +39 -2
  91. package/test/bitset/index.ts +3 -8
  92. package/test/client/index.ts +12 -2
  93. package/test/state/index.ts +7 -0
  94. package/dist/client/tcp.d.ts.map +0 -1
  95. package/dist/client/tcp.js.map +0 -1
  96. package/dist/packet/dispatcher.d.ts.map +0 -1
  97. package/dist/packet/dispatcher.js.map +0 -1
  98. package/dist/packet/encoder.d.ts.map +0 -1
  99. package/dist/packet/encoder.js.map +0 -1
  100. /package/dist/{packet → binary}/decoder.d.ts +0 -0
  101. /package/dist/{packet → binary}/decoder.js +0 -0
  102. /package/dist/{packet → binary}/static.d.ts +0 -0
  103. /package/dist/{packet → binary}/static.js +0 -0
  104. /package/src/{packet → binary}/decoder.ts +0 -0
  105. /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
- // console.log(state);
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 a account that owns Minecraft.
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
+ }
@@ -3712,7 +3712,7 @@
3712
3712
  "type": "var_int"
3713
3713
  },
3714
3714
  "acknowledged": {
3715
- "type": "not_implemented",
3715
+ "type": "fixed_bitset",
3716
3716
  "length": 20
3717
3717
  },
3718
3718
  "checksum": {
@@ -1,9 +1,48 @@
1
- import BitSet_ from "bitset";
2
1
  /**
3
- * Custom implementation of BitSet to implement missing method
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 extends BitSet_ {
6
- nextClearBit(fromIndex: number): number;
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":"AAAA,OAAO,OAAO,MAAM,QAAQ,CAAC;AAE7B;;GAEG;AACH,qBAAa,MAAO,SAAQ,OAAO;IACxB,YAAY,CAAC,SAAS,EAAE,MAAM,UA8BpC;IAEe,KAAK,IAAI,MAAM,CAE9B;CACJ"}
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"}
@@ -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 bitset_1 = __importDefault(require("bitset"));
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const error_1 = require("./error");
9
+ const math_1 = require("./math");
8
10
  /**
9
- * Custom implementation of BitSet to implement missing method
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 extends bitset_1.default {
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
- fromIndex = fromIndex || 0;
14
- const data = this['data'];
15
- let wordIndex = fromIndex >>> 5;
16
- if (wordIndex >= data.length) {
17
- // Past the stored words — depends on the infinite tail bit
18
- return this['_'] === 0 ? fromIndex : Infinity;
19
- }
20
- // ~word marks clear bits; mask off anything before fromIndex.
21
- // JS's << only uses the low 5 bits of the shift amount, so
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 !== 0) {
26
- const lowestSet = word & -word; // isolate lowest set bit
27
- let c = 0;
28
- for (let v = lowestSet; (v >>>= 1); c++) {
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
- clone() {
42
- return new BitSet(this.toString());
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
@@ -1 +1 @@
1
- {"version":3,"file":"bitset.js","sourceRoot":"","sources":["../../src/base/bitset.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA6B;AAE7B;;GAEG;AACH,YAAoB,SAAQ,gBAAO;IACxB,YAAY,CAAC,SAAiB;QACjC,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAI,IAAY,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,SAAS,GAAG,SAAS,KAAK,CAAC,CAAC;QAEhC,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,2DAA2D;YAC3D,OAAQ,IAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3D,CAAC;QAED,8DAA8D;QAC9D,2DAA2D;QAC3D,8DAA8D;QAC9D,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;QAEhD,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAG,yBAAyB;gBAC3D,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,EAAE;gBACN,CAAC;gBACD,OAAO,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS,EAAE,CAAC;YACZ,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC3B,OAAQ,IAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAChE,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAAA,CAAC;IAEc,KAAK;QACjB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;CACJ"}
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"}
@@ -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
@@ -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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"}
@@ -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
@@ -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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"}