@boatkit-io/restream 0.0.1
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 +19 -0
- package/dist/cjs/index.js +34 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/restream/PackageRestream.js +371 -0
- package/dist/cjs/restream/PackageRestream.js.map +1 -0
- package/dist/cjs/stores/TriggerStore.js +130 -0
- package/dist/cjs/stores/TriggerStore.js.map +1 -0
- package/dist/cjs/utils/BinaryReader.js +171 -0
- package/dist/cjs/utils/BinaryReader.js.map +1 -0
- package/dist/cjs/utils/BinaryWriter.js +74 -0
- package/dist/cjs/utils/BinaryWriter.js.map +1 -0
- package/dist/cjs/utils/Decoders.js +286 -0
- package/dist/cjs/utils/Decoders.js.map +1 -0
- package/dist/cjs/utils/Encoders.js +232 -0
- package/dist/cjs/utils/Encoders.js.map +1 -0
- package/dist/cjs/utils/SerializationTypes.js +279 -0
- package/dist/cjs/utils/SerializationTypes.js.map +1 -0
- package/dist/cjs/utils/SimpleAssert.js +9 -0
- package/dist/cjs/utils/SimpleAssert.js.map +1 -0
- package/dist/cjs/utils/SubscribableEvent.js +60 -0
- package/dist/cjs/utils/SubscribableEvent.js.map +1 -0
- package/dist/cjs/utils/TSUtils.js +62 -0
- package/dist/cjs/utils/TSUtils.js.map +1 -0
- package/dist/cjs/websocket/SocketHelper.js +134 -0
- package/dist/cjs/websocket/SocketHelper.js.map +1 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/restream/PackageRestream.d.ts +71 -0
- package/dist/esm/restream/PackageRestream.d.ts.map +1 -0
- package/dist/esm/restream/PackageRestream.js +330 -0
- package/dist/esm/restream/PackageRestream.js.map +1 -0
- package/dist/esm/stores/TriggerStore.d.ts +34 -0
- package/dist/esm/stores/TriggerStore.d.ts.map +1 -0
- package/dist/esm/stores/TriggerStore.js +124 -0
- package/dist/esm/stores/TriggerStore.js.map +1 -0
- package/dist/esm/utils/BinaryReader.d.ts +27 -0
- package/dist/esm/utils/BinaryReader.d.ts.map +1 -0
- package/dist/esm/utils/BinaryReader.js +168 -0
- package/dist/esm/utils/BinaryReader.js.map +1 -0
- package/dist/esm/utils/BinaryWriter.d.ts +18 -0
- package/dist/esm/utils/BinaryWriter.d.ts.map +1 -0
- package/dist/esm/utils/BinaryWriter.js +71 -0
- package/dist/esm/utils/BinaryWriter.js.map +1 -0
- package/dist/esm/utils/Decoders.d.ts +27 -0
- package/dist/esm/utils/Decoders.d.ts.map +1 -0
- package/dist/esm/utils/Decoders.js +235 -0
- package/dist/esm/utils/Decoders.js.map +1 -0
- package/dist/esm/utils/Encoders.d.ts +25 -0
- package/dist/esm/utils/Encoders.d.ts.map +1 -0
- package/dist/esm/utils/Encoders.js +211 -0
- package/dist/esm/utils/Encoders.js.map +1 -0
- package/dist/esm/utils/SerializationTypes.d.ts +101 -0
- package/dist/esm/utils/SerializationTypes.d.ts.map +1 -0
- package/dist/esm/utils/SerializationTypes.js +267 -0
- package/dist/esm/utils/SerializationTypes.js.map +1 -0
- package/dist/esm/utils/SimpleAssert.d.ts +2 -0
- package/dist/esm/utils/SimpleAssert.d.ts.map +1 -0
- package/dist/esm/utils/SimpleAssert.js +6 -0
- package/dist/esm/utils/SimpleAssert.js.map +1 -0
- package/dist/esm/utils/SubscribableEvent.d.ts +26 -0
- package/dist/esm/utils/SubscribableEvent.d.ts.map +1 -0
- package/dist/esm/utils/SubscribableEvent.js +55 -0
- package/dist/esm/utils/SubscribableEvent.js.map +1 -0
- package/dist/esm/utils/TSUtils.d.ts +8 -0
- package/dist/esm/utils/TSUtils.d.ts.map +1 -0
- package/dist/esm/utils/TSUtils.js +58 -0
- package/dist/esm/utils/TSUtils.js.map +1 -0
- package/dist/esm/websocket/SocketHelper.d.ts +64 -0
- package/dist/esm/websocket/SocketHelper.d.ts.map +1 -0
- package/dist/esm/websocket/SocketHelper.js +125 -0
- package/dist/esm/websocket/SocketHelper.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const ZERO_CHAR = '0'.charCodeAt(0);
|
|
4
|
+
const decoderUTF8 = new TextDecoder('utf8');
|
|
5
|
+
const decoderUTF16 = new TextDecoder('utf-16le');
|
|
6
|
+
class BinaryReader {
|
|
7
|
+
_buffer;
|
|
8
|
+
_offset;
|
|
9
|
+
_length;
|
|
10
|
+
_int8Buffer;
|
|
11
|
+
_uint8Buffer;
|
|
12
|
+
constructor(_buffer, _offset = 0, _length = _buffer.byteLength) {
|
|
13
|
+
this._buffer = _buffer;
|
|
14
|
+
this._offset = _offset;
|
|
15
|
+
this._length = _length;
|
|
16
|
+
// ArrayBuffer also can take in typedarrays, which will screw up trying to cast them around.
|
|
17
|
+
// Make sure we actually use an arraybuffer.
|
|
18
|
+
if (this._buffer.constructor != ArrayBuffer) {
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
+
this._buffer = this._buffer.buffer;
|
|
21
|
+
}
|
|
22
|
+
this._int8Buffer = new Int8Array(this._buffer);
|
|
23
|
+
this._uint8Buffer = new Uint8Array(this._buffer);
|
|
24
|
+
}
|
|
25
|
+
readBytes(length) {
|
|
26
|
+
if (this._offset + length > this._length) {
|
|
27
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
28
|
+
}
|
|
29
|
+
const ret = this._buffer.slice(this._offset, this._offset + length);
|
|
30
|
+
this._offset += length;
|
|
31
|
+
return new Uint8Array(ret);
|
|
32
|
+
}
|
|
33
|
+
readString(numChars) {
|
|
34
|
+
if (this._offset + numChars > this._length) {
|
|
35
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
36
|
+
}
|
|
37
|
+
const ret = decoderUTF8.decode(this._buffer.slice(this._offset, this._offset + numChars));
|
|
38
|
+
this._offset += numChars;
|
|
39
|
+
return ret;
|
|
40
|
+
}
|
|
41
|
+
readWideStringToTerminator(terminator) {
|
|
42
|
+
for (let i = this._offset; i < this._length; i += 2) {
|
|
43
|
+
const char = this._uint8Buffer[i] | (this._uint8Buffer[i + 1] << 8);
|
|
44
|
+
if (char === terminator) {
|
|
45
|
+
const ret = decoderUTF16.decode(this._buffer.slice(this._offset, i));
|
|
46
|
+
// account for (skipping) the terminator as well as the slice we just pulled directly off above
|
|
47
|
+
const byteCount = (i + 2) - this._offset;
|
|
48
|
+
this._offset += byteCount;
|
|
49
|
+
return [ret, byteCount];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
throw new Error('Terminator not found');
|
|
53
|
+
}
|
|
54
|
+
readStringToTerminator(terminator) {
|
|
55
|
+
for (let i = this._offset; i < this._length; i++) {
|
|
56
|
+
if (this._uint8Buffer[i] === terminator) {
|
|
57
|
+
const ret = decoderUTF8.decode(this._buffer.slice(this._offset, i));
|
|
58
|
+
// account for (skipping) the terminator as well as the slice we just pulled directly off above
|
|
59
|
+
const byteCount = (i + 1) - this._offset;
|
|
60
|
+
this._offset += byteCount;
|
|
61
|
+
return [ret, byteCount];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
throw new Error('Terminator not found');
|
|
65
|
+
}
|
|
66
|
+
readNumericString(numChars) {
|
|
67
|
+
if (this._offset + numChars > this._length) {
|
|
68
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
69
|
+
}
|
|
70
|
+
let o = 0;
|
|
71
|
+
for (let i = 0; i < numChars; i++) {
|
|
72
|
+
o *= 10;
|
|
73
|
+
const char = this._uint8Buffer[this._offset++] - ZERO_CHAR;
|
|
74
|
+
if (char < 0 || char > 9) {
|
|
75
|
+
throw new Error('Char out of range in readNumericString: ' + char);
|
|
76
|
+
}
|
|
77
|
+
o += char;
|
|
78
|
+
}
|
|
79
|
+
return o;
|
|
80
|
+
}
|
|
81
|
+
peekByte() {
|
|
82
|
+
if (this._offset + 1 > this._length) {
|
|
83
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
84
|
+
}
|
|
85
|
+
return this._uint8Buffer[this._offset];
|
|
86
|
+
}
|
|
87
|
+
readByte() {
|
|
88
|
+
if (this._offset + 1 > this._length) {
|
|
89
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
90
|
+
}
|
|
91
|
+
return this._uint8Buffer[this._offset++];
|
|
92
|
+
}
|
|
93
|
+
readInt8() {
|
|
94
|
+
if (this._offset + 1 > this._length) {
|
|
95
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
96
|
+
}
|
|
97
|
+
return this._int8Buffer[this._offset++];
|
|
98
|
+
}
|
|
99
|
+
readUint8() {
|
|
100
|
+
return this.readByte();
|
|
101
|
+
}
|
|
102
|
+
readInt16() {
|
|
103
|
+
if (this._offset + 2 > this._length) {
|
|
104
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
105
|
+
}
|
|
106
|
+
const ret = this._uint8Buffer[this._offset] + (this._int8Buffer[this._offset + 1] << 8);
|
|
107
|
+
this._offset += 2;
|
|
108
|
+
return ret;
|
|
109
|
+
}
|
|
110
|
+
readUint16() {
|
|
111
|
+
if (this._offset + 2 > this._length) {
|
|
112
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
113
|
+
}
|
|
114
|
+
const ret = this._uint8Buffer[this._offset] | (this._uint8Buffer[this._offset + 1] << 8);
|
|
115
|
+
this._offset += 2;
|
|
116
|
+
return ret;
|
|
117
|
+
}
|
|
118
|
+
readInt32() {
|
|
119
|
+
if (this._offset + 4 > this._length) {
|
|
120
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
121
|
+
}
|
|
122
|
+
const ret = this._uint8Buffer[this._offset] | (this._uint8Buffer[this._offset + 1] << 8) |
|
|
123
|
+
(this._uint8Buffer[this._offset + 2] << 16) | (this._int8Buffer[this._offset + 3] << 24);
|
|
124
|
+
this._offset += 4;
|
|
125
|
+
return ret;
|
|
126
|
+
}
|
|
127
|
+
readUint32() {
|
|
128
|
+
if (this._offset + 4 > this._length) {
|
|
129
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
130
|
+
}
|
|
131
|
+
const ret = BigInt(this._uint8Buffer[this._offset]) | BigInt(this._uint8Buffer[this._offset + 1] << 8) |
|
|
132
|
+
BigInt(this._uint8Buffer[this._offset + 2] << 16) | (BigInt(this._uint8Buffer[this._offset + 3]) << BigInt(24));
|
|
133
|
+
this._offset += 4;
|
|
134
|
+
return Number(ret);
|
|
135
|
+
}
|
|
136
|
+
readFloat32() {
|
|
137
|
+
if (this._offset + 4 > this._length) {
|
|
138
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
139
|
+
}
|
|
140
|
+
const fa = new Float32Array(this._buffer.slice(this._offset, this._offset + 4));
|
|
141
|
+
this._offset += 4;
|
|
142
|
+
return fa[0];
|
|
143
|
+
}
|
|
144
|
+
readFloat64() {
|
|
145
|
+
if (this._offset + 8 > this._length) {
|
|
146
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
147
|
+
}
|
|
148
|
+
const fa = new Float64Array(this._buffer.slice(this._offset, this._offset + 8));
|
|
149
|
+
this._offset += 8;
|
|
150
|
+
return fa[0];
|
|
151
|
+
}
|
|
152
|
+
slice(count) {
|
|
153
|
+
if (this._offset + count > this._length) {
|
|
154
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
155
|
+
}
|
|
156
|
+
const br = new BinaryReader(this._buffer, this._offset, this._offset + count);
|
|
157
|
+
this._offset += count;
|
|
158
|
+
return br;
|
|
159
|
+
}
|
|
160
|
+
skipBytes(count) {
|
|
161
|
+
if (this._offset + count > this._length) {
|
|
162
|
+
throw new Error('Overflowing BinaryReader buffer');
|
|
163
|
+
}
|
|
164
|
+
this._offset += count;
|
|
165
|
+
}
|
|
166
|
+
isEOF() {
|
|
167
|
+
return this._offset === this._length;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
exports.default = BinaryReader;
|
|
171
|
+
//# sourceMappingURL=BinaryReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BinaryReader.js","sourceRoot":"","sources":["../../../src/utils/BinaryReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const INITIAL_LENGTH_GUESS = 512;
|
|
4
|
+
const encoder = new TextEncoder();
|
|
5
|
+
class BinaryWriter {
|
|
6
|
+
_buffer;
|
|
7
|
+
_offset = 0;
|
|
8
|
+
_length;
|
|
9
|
+
constructor(suggestedLength) {
|
|
10
|
+
this._length = suggestedLength || INITIAL_LENGTH_GUESS;
|
|
11
|
+
this._realloc();
|
|
12
|
+
}
|
|
13
|
+
_realloc() {
|
|
14
|
+
const oldBuf = this._buffer;
|
|
15
|
+
this._buffer = new Uint8Array(this._length);
|
|
16
|
+
if (oldBuf) {
|
|
17
|
+
this._buffer.set(oldBuf, 0);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
_ensureFits(numBytes) {
|
|
21
|
+
if (this._offset + numBytes >= this._length) {
|
|
22
|
+
if (numBytes < this._length) {
|
|
23
|
+
// Safe to double it
|
|
24
|
+
this._length *= 2;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// Round to the next higher multiple of this._length..?
|
|
28
|
+
this._length = Math.ceil((this._length + numBytes) / numBytes) * this._length;
|
|
29
|
+
}
|
|
30
|
+
this._realloc();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
writeUint8(val) {
|
|
34
|
+
this._ensureFits(1);
|
|
35
|
+
this._buffer[this._offset++] = val;
|
|
36
|
+
}
|
|
37
|
+
writeUint16(val) {
|
|
38
|
+
this._ensureFits(2);
|
|
39
|
+
this._buffer[this._offset++] = val & 0xFF;
|
|
40
|
+
this._buffer[this._offset++] = (val >> 8) & 0xFF;
|
|
41
|
+
}
|
|
42
|
+
writeUint32(val) {
|
|
43
|
+
this._ensureFits(4);
|
|
44
|
+
this._buffer[this._offset++] = val & 0xFF;
|
|
45
|
+
this._buffer[this._offset++] = (val >> 8) & 0xFF;
|
|
46
|
+
this._buffer[this._offset++] = (val >> 16) & 0xFF;
|
|
47
|
+
this._buffer[this._offset++] = (val >> 24) & 0xFF;
|
|
48
|
+
}
|
|
49
|
+
writeFloat32(val) {
|
|
50
|
+
const fa = new Float32Array([val]);
|
|
51
|
+
this.writeBytes(new Uint8Array(fa.buffer));
|
|
52
|
+
}
|
|
53
|
+
writeFloat64(val) {
|
|
54
|
+
const fa = new Float64Array([val]);
|
|
55
|
+
this.writeBytes(new Uint8Array(fa.buffer));
|
|
56
|
+
}
|
|
57
|
+
writeBytes(bytes) {
|
|
58
|
+
this._ensureFits(bytes.length);
|
|
59
|
+
this._buffer.set(bytes, this._offset);
|
|
60
|
+
this._offset += bytes.length;
|
|
61
|
+
}
|
|
62
|
+
writeStringAsBytes(str) {
|
|
63
|
+
const bytes = encoder.encode(str);
|
|
64
|
+
this.writeBytes(bytes);
|
|
65
|
+
}
|
|
66
|
+
getLength() {
|
|
67
|
+
return this._offset;
|
|
68
|
+
}
|
|
69
|
+
getBytes() {
|
|
70
|
+
return this._buffer.subarray(0, this._offset);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.default = BinaryWriter;
|
|
74
|
+
//# sourceMappingURL=BinaryWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BinaryWriter.js","sourceRoot":"","sources":["../../../src/utils/BinaryWriter.ts"],"names":[],"mappings":";;AAAA,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,MAAqB,YAAY;IACrB,OAAO,CAAc;IACrB,OAAO,GAAG,CAAC,CAAC;IACZ,OAAO,CAAS;IAExB,YAAY,eAAwB;QAChC,IAAI,CAAC,OAAO,GAAG,eAAe,IAAI,oBAAoB,CAAC;QACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAEO,QAAQ;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,QAAgB;QAChC,IAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1B,oBAAoB;gBACpB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACJ,uDAAuD;gBACvD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YAClF,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAW;QAClB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,GAAW;QACnB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACrD,CAAC;IAED,WAAW,CAAC,GAAW;QACnB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACtD,CAAC;IAED,YAAY,CAAC,GAAW;QACpB,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY,CAAC,GAAW;QACpB,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,KAAiB;QACxB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,GAAW;QAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;CACJ;AA9ED,+BA8EC"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.decodeInt64Big = exports.decodeInt64 = exports.decodeInt32 = exports.decodeInt16 = exports.decodeInt8 = exports.decodeUint64Big = exports.decodeUint64 = exports.decodeUint32 = exports.decodeUint16 = void 0;
|
|
37
|
+
exports.decodeFieldMap = decodeFieldMap;
|
|
38
|
+
exports.deserializeValue = deserializeValue;
|
|
39
|
+
exports.deserializePackedInt = deserializePackedInt;
|
|
40
|
+
exports.deserializePackedBigint = deserializePackedBigint;
|
|
41
|
+
exports.decodeBoolean = decodeBoolean;
|
|
42
|
+
exports.decodeString = decodeString;
|
|
43
|
+
exports.decodeUint8 = decodeUint8;
|
|
44
|
+
exports.decodeFloat32 = decodeFloat32;
|
|
45
|
+
exports.decodeFloat64 = decodeFloat64;
|
|
46
|
+
exports.decodeTime = decodeTime;
|
|
47
|
+
exports.deserializePointerValue = deserializePointerValue;
|
|
48
|
+
exports.deserializeArrayValue = deserializeArrayValue;
|
|
49
|
+
exports.deserializeMapValue = deserializeMapValue;
|
|
50
|
+
exports.deserializeDynamicValue = deserializeDynamicValue;
|
|
51
|
+
exports.deserializeStructValue = deserializeStructValue;
|
|
52
|
+
const assert = __importStar(require("./SimpleAssert.js"));
|
|
53
|
+
const SerializationTypes_js_1 = require("./SerializationTypes.js");
|
|
54
|
+
const SerializationTypes_js_2 = require("./SerializationTypes.js");
|
|
55
|
+
function decodeFieldMap(r, fieldMap) {
|
|
56
|
+
const ret = new Map();
|
|
57
|
+
while (!r.isEOF()) {
|
|
58
|
+
const fieldID = r.readByte();
|
|
59
|
+
const fieldLen = (0, exports.decodeUint32)(r);
|
|
60
|
+
const fi = fieldMap.get(fieldID);
|
|
61
|
+
if (fi === undefined) {
|
|
62
|
+
r.skipBytes(fieldLen);
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const subReader = r.slice(fieldLen);
|
|
66
|
+
const ov = deserializeValue(subReader, fi.varInfo);
|
|
67
|
+
ret.set(fieldID, ov);
|
|
68
|
+
}
|
|
69
|
+
return ret;
|
|
70
|
+
}
|
|
71
|
+
function deserializeValue(r, vi) {
|
|
72
|
+
if (vi instanceof SerializationTypes_js_1.VarInfoPrimitive) {
|
|
73
|
+
return deserializePrimitiveValue(r, vi);
|
|
74
|
+
}
|
|
75
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoPointer) {
|
|
76
|
+
return deserializePointerValue(r, vi);
|
|
77
|
+
}
|
|
78
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoArray) {
|
|
79
|
+
return deserializeArrayValue(r, vi);
|
|
80
|
+
}
|
|
81
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoMap) {
|
|
82
|
+
return deserializeMapValue(r, vi);
|
|
83
|
+
}
|
|
84
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoStruct) {
|
|
85
|
+
return deserializeStructValue(r, vi);
|
|
86
|
+
}
|
|
87
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoDynamic) {
|
|
88
|
+
return deserializeDynamicValue(r, vi);
|
|
89
|
+
}
|
|
90
|
+
throw new Error("unsupported varinfo type: " + vi);
|
|
91
|
+
}
|
|
92
|
+
function deserializePrimitiveValue(r, vi) {
|
|
93
|
+
switch (vi.dataType) {
|
|
94
|
+
case SerializationTypes_js_2.SerializationType.Bool:
|
|
95
|
+
return decodeBoolean(r);
|
|
96
|
+
case SerializationTypes_js_2.SerializationType.String:
|
|
97
|
+
return decodeString(r);
|
|
98
|
+
case SerializationTypes_js_2.SerializationType.Int8:
|
|
99
|
+
return (0, exports.decodeInt8)(r);
|
|
100
|
+
case SerializationTypes_js_2.SerializationType.Int16:
|
|
101
|
+
return (0, exports.decodeInt16)(r);
|
|
102
|
+
case SerializationTypes_js_2.SerializationType.Int32:
|
|
103
|
+
return (0, exports.decodeInt32)(r);
|
|
104
|
+
case SerializationTypes_js_2.SerializationType.Int64:
|
|
105
|
+
return (0, exports.decodeInt64)(r);
|
|
106
|
+
case SerializationTypes_js_2.SerializationType.Uint8:
|
|
107
|
+
return decodeUint8(r);
|
|
108
|
+
case SerializationTypes_js_2.SerializationType.Uint16:
|
|
109
|
+
return (0, exports.decodeUint16)(r);
|
|
110
|
+
case SerializationTypes_js_2.SerializationType.Uint32:
|
|
111
|
+
return (0, exports.decodeUint32)(r);
|
|
112
|
+
case SerializationTypes_js_2.SerializationType.Uint64:
|
|
113
|
+
return (0, exports.decodeUint64)(r);
|
|
114
|
+
case SerializationTypes_js_2.SerializationType.Float32:
|
|
115
|
+
return decodeFloat32(r);
|
|
116
|
+
case SerializationTypes_js_2.SerializationType.Float64:
|
|
117
|
+
return decodeFloat64(r);
|
|
118
|
+
case SerializationTypes_js_2.SerializationType.Time:
|
|
119
|
+
return decodeTime(r);
|
|
120
|
+
}
|
|
121
|
+
throw new Error("unsupported primitive type in deserializePrimitiveValue: " + vi.dataType);
|
|
122
|
+
}
|
|
123
|
+
function deserializePackedInt(r) {
|
|
124
|
+
let ret = 0;
|
|
125
|
+
let b = r.readByte();
|
|
126
|
+
ret |= b & 0x3f;
|
|
127
|
+
const neg = (b & 0x40) > 0;
|
|
128
|
+
if ((b & 0x80) > 0) {
|
|
129
|
+
b = r.readByte();
|
|
130
|
+
ret |= ((b & 0x7f) << 6);
|
|
131
|
+
if ((b & 0x80) > 0) {
|
|
132
|
+
const w = r.readUint16();
|
|
133
|
+
ret |= ((w & 0x7fff) << 13);
|
|
134
|
+
if ((w & 0x8000) > 0) {
|
|
135
|
+
let reta = BigInt(ret);
|
|
136
|
+
const dw = BigInt(r.readUint32());
|
|
137
|
+
reta |= ((dw & 0x7fffffffn) << 28n);
|
|
138
|
+
if ((dw & 0x80000000n) > 0) {
|
|
139
|
+
const bi = BigInt(r.readByte());
|
|
140
|
+
reta |= bi << 59n;
|
|
141
|
+
}
|
|
142
|
+
ret = Number(reta);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return neg ? -ret : ret;
|
|
147
|
+
}
|
|
148
|
+
function deserializePackedBigint(r) {
|
|
149
|
+
let ret = BigInt(0);
|
|
150
|
+
let b = r.readByte();
|
|
151
|
+
ret |= BigInt(b & 0x3f);
|
|
152
|
+
const neg = (b & 0x40) > 0;
|
|
153
|
+
if ((b & 0x80) > 0) {
|
|
154
|
+
b = r.readByte();
|
|
155
|
+
ret |= BigInt(((b & 0x7f) << 6));
|
|
156
|
+
if ((b & 0x80) > 0) {
|
|
157
|
+
const w = r.readUint16();
|
|
158
|
+
ret |= BigInt(((w & 0x7fff) << 13));
|
|
159
|
+
if ((w & 0x8000) > 0) {
|
|
160
|
+
const dw = BigInt(r.readUint32());
|
|
161
|
+
ret |= ((dw & 0x7fffffffn) << 28n);
|
|
162
|
+
if ((dw & 0x80000000n) > 0) {
|
|
163
|
+
const bi = BigInt(r.readByte());
|
|
164
|
+
ret |= bi << 59n;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return neg ? -ret : ret;
|
|
170
|
+
}
|
|
171
|
+
function decodeBoolean(r) {
|
|
172
|
+
const bVal = r.readByte();
|
|
173
|
+
assert.ok(bVal === 0 || bVal === 1, "invalid boolean value, datastream probably corrupt");
|
|
174
|
+
return bVal === 1;
|
|
175
|
+
}
|
|
176
|
+
function decodeString(r) {
|
|
177
|
+
const len = (0, exports.decodeUint32)(r);
|
|
178
|
+
return r.readString(len);
|
|
179
|
+
}
|
|
180
|
+
// Make this one different so we can hackily ID it in the array decode
|
|
181
|
+
function decodeUint8(r) {
|
|
182
|
+
return deserializePackedInt(r);
|
|
183
|
+
}
|
|
184
|
+
exports.decodeUint16 = deserializePackedInt;
|
|
185
|
+
exports.decodeUint32 = deserializePackedInt;
|
|
186
|
+
exports.decodeUint64 = deserializePackedInt;
|
|
187
|
+
exports.decodeUint64Big = deserializePackedBigint;
|
|
188
|
+
exports.decodeInt8 = deserializePackedInt;
|
|
189
|
+
exports.decodeInt16 = deserializePackedInt;
|
|
190
|
+
exports.decodeInt32 = deserializePackedInt;
|
|
191
|
+
exports.decodeInt64 = deserializePackedInt;
|
|
192
|
+
exports.decodeInt64Big = deserializePackedBigint;
|
|
193
|
+
function decodeFloat32(r) {
|
|
194
|
+
return r.readFloat32();
|
|
195
|
+
}
|
|
196
|
+
function decodeFloat64(r) {
|
|
197
|
+
return r.readFloat64();
|
|
198
|
+
}
|
|
199
|
+
function decodeTime(r) {
|
|
200
|
+
const millis = Number((0, exports.decodeInt64)(r));
|
|
201
|
+
return new Date(millis);
|
|
202
|
+
}
|
|
203
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
204
|
+
function deserializePointerValue(r, vi) {
|
|
205
|
+
if (!vi.notNil) {
|
|
206
|
+
const bIsNull = r.readByte();
|
|
207
|
+
assert.ok(bIsNull === 0 || bIsNull === 1, "invalid boolean pointer nullability value, datastream probably corrupt");
|
|
208
|
+
if (bIsNull === 1) {
|
|
209
|
+
return undefined;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
const val = deserializeValue(r, vi.subType);
|
|
213
|
+
if (vi.subType instanceof SerializationTypes_js_1.VarInfoPointer && val === undefined) {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
return val;
|
|
217
|
+
}
|
|
218
|
+
function deserializeArrayValue(r, vi) {
|
|
219
|
+
if (!vi.notNil) {
|
|
220
|
+
const isNil = r.readByte();
|
|
221
|
+
assert.ok(isNil === 0 || isNil === 1, "invalid boolean pointer nullability value, datastream probably corrupt");
|
|
222
|
+
if (isNil == 1) {
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
const len = (0, exports.decodeUint32)(r);
|
|
227
|
+
if (vi.elemType instanceof SerializationTypes_js_1.VarInfoPrimitive && vi.elemType.dataType == SerializationTypes_js_2.SerializationType.Uint8) {
|
|
228
|
+
return r.readBytes(len);
|
|
229
|
+
}
|
|
230
|
+
const arr = new Array(len);
|
|
231
|
+
for (let i = 0; i < len; i++) {
|
|
232
|
+
arr[i] = deserializeValue(r, vi.elemType);
|
|
233
|
+
}
|
|
234
|
+
return arr;
|
|
235
|
+
}
|
|
236
|
+
function deserializeMapValue(r, vi) {
|
|
237
|
+
if (!vi.notNil) {
|
|
238
|
+
const isNil = r.readByte();
|
|
239
|
+
if (isNil == 1) {
|
|
240
|
+
return undefined;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
const len = (0, exports.decodeUint32)(r);
|
|
244
|
+
if (vi.elemType === undefined) {
|
|
245
|
+
const ret = new Set();
|
|
246
|
+
for (let i = 0; i < len; i++) {
|
|
247
|
+
const k = deserializeValue(r, vi.keyType);
|
|
248
|
+
ret.add(k);
|
|
249
|
+
}
|
|
250
|
+
return ret;
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
const ret = new Map();
|
|
254
|
+
for (let i = 0; i < len; i++) {
|
|
255
|
+
const k = deserializeValue(r, vi.keyType);
|
|
256
|
+
const v = deserializeValue(r, vi.elemType);
|
|
257
|
+
ret.set(k, v);
|
|
258
|
+
}
|
|
259
|
+
return ret;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
function deserializeDynamicValue(r, _) {
|
|
263
|
+
const vi = (0, SerializationTypes_js_1.varInfoFromReader)(r);
|
|
264
|
+
if (vi instanceof SerializationTypes_js_1.VarInfoPrimitive) {
|
|
265
|
+
return deserializePrimitiveValue(r, vi);
|
|
266
|
+
}
|
|
267
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoPointer) {
|
|
268
|
+
return deserializePointerValue(r, vi);
|
|
269
|
+
}
|
|
270
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoArray) {
|
|
271
|
+
return deserializeArrayValue(r, vi);
|
|
272
|
+
}
|
|
273
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoMap) {
|
|
274
|
+
return deserializeMapValue(r, vi);
|
|
275
|
+
}
|
|
276
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoStruct) {
|
|
277
|
+
return deserializeStructValue(r, vi);
|
|
278
|
+
}
|
|
279
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoDynamic) {
|
|
280
|
+
throw new Error("dynamic dynamic type during deserialize: " + vi);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
function deserializeStructValue(r, vi) {
|
|
284
|
+
return vi.deserializer.deserialized(r, vi);
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=Decoders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Decoders.js","sourceRoot":"","sources":["../../../src/utils/Decoders.ts"],"names":[],"mappings":"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"}
|