@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,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.encodeInt64 = exports.encodeInt32 = exports.encodeInt16 = exports.encodeInt8 = exports.encodeUint64 = exports.encodeUint32 = exports.encodeUint16 = void 0;
|
|
7
|
+
exports.serializeField = serializeField;
|
|
8
|
+
exports.serializeValue = serializeValue;
|
|
9
|
+
exports.serializePrimitiveValue = serializePrimitiveValue;
|
|
10
|
+
exports.serializePackedInt = serializePackedInt;
|
|
11
|
+
exports.encodeBoolean = encodeBoolean;
|
|
12
|
+
exports.encodeString = encodeString;
|
|
13
|
+
exports.encodeUint8 = encodeUint8;
|
|
14
|
+
exports.encodeFloat32 = encodeFloat32;
|
|
15
|
+
exports.encodeFloat64 = encodeFloat64;
|
|
16
|
+
exports.encodeTime = encodeTime;
|
|
17
|
+
exports.serializePointerValue = serializePointerValue;
|
|
18
|
+
exports.serializeArrayValue = serializeArrayValue;
|
|
19
|
+
exports.serializeMapValue = serializeMapValue;
|
|
20
|
+
exports.serializeStructValue = serializeStructValue;
|
|
21
|
+
exports.serializeDynamicValue = serializeDynamicValue;
|
|
22
|
+
const BinaryWriter_js_1 = __importDefault(require("./BinaryWriter.js"));
|
|
23
|
+
const SerializationTypes_js_1 = require("./SerializationTypes.js");
|
|
24
|
+
const SerializationTypes_js_2 = require("./SerializationTypes.js");
|
|
25
|
+
function serializeField(val, fi, w) {
|
|
26
|
+
if (val === undefined) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
w.writeUint8(fi.fieldID);
|
|
30
|
+
const w2 = new BinaryWriter_js_1.default();
|
|
31
|
+
serializeValue(val, w2, fi.varInfo);
|
|
32
|
+
const b = w2.getBytes();
|
|
33
|
+
(0, exports.encodeUint64)(b.length, w);
|
|
34
|
+
w.writeBytes(b);
|
|
35
|
+
}
|
|
36
|
+
function serializeValue(val, w, vi) {
|
|
37
|
+
if (vi instanceof SerializationTypes_js_1.VarInfoPrimitive) {
|
|
38
|
+
return serializePrimitiveValue(val, w, vi);
|
|
39
|
+
}
|
|
40
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoPointer) {
|
|
41
|
+
return serializePointerValue(val, w, vi);
|
|
42
|
+
}
|
|
43
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoArray) {
|
|
44
|
+
return serializeArrayValue(val, w, vi);
|
|
45
|
+
}
|
|
46
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoMap) {
|
|
47
|
+
return serializeMapValue(val, w, vi);
|
|
48
|
+
}
|
|
49
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoStruct) {
|
|
50
|
+
return serializeStructValue(val, w, vi);
|
|
51
|
+
}
|
|
52
|
+
else if (vi instanceof SerializationTypes_js_1.VarInfoDynamic) {
|
|
53
|
+
return serializeDynamicValue(val, w, vi);
|
|
54
|
+
}
|
|
55
|
+
throw new Error("unsupported varinfo type: " + vi);
|
|
56
|
+
}
|
|
57
|
+
function serializePrimitiveValue(val, w, vi) {
|
|
58
|
+
switch (vi.dataType) {
|
|
59
|
+
case SerializationTypes_js_2.SerializationType.Bool:
|
|
60
|
+
return encodeBoolean(val, w);
|
|
61
|
+
case SerializationTypes_js_2.SerializationType.String:
|
|
62
|
+
return encodeString(val, w);
|
|
63
|
+
case SerializationTypes_js_2.SerializationType.Int8:
|
|
64
|
+
return (0, exports.encodeInt8)(val, w);
|
|
65
|
+
case SerializationTypes_js_2.SerializationType.Int16:
|
|
66
|
+
return (0, exports.encodeInt16)(val, w);
|
|
67
|
+
case SerializationTypes_js_2.SerializationType.Int32:
|
|
68
|
+
return (0, exports.encodeInt32)(val, w);
|
|
69
|
+
case SerializationTypes_js_2.SerializationType.Int64:
|
|
70
|
+
return (0, exports.encodeInt64)(val, w);
|
|
71
|
+
case SerializationTypes_js_2.SerializationType.Uint8:
|
|
72
|
+
return encodeUint8(val, w);
|
|
73
|
+
case SerializationTypes_js_2.SerializationType.Uint16:
|
|
74
|
+
return (0, exports.encodeUint16)(val, w);
|
|
75
|
+
case SerializationTypes_js_2.SerializationType.Uint32:
|
|
76
|
+
return (0, exports.encodeUint32)(val, w);
|
|
77
|
+
case SerializationTypes_js_2.SerializationType.Uint64:
|
|
78
|
+
return (0, exports.encodeUint64)(val, w);
|
|
79
|
+
case SerializationTypes_js_2.SerializationType.Float32:
|
|
80
|
+
return encodeFloat32(val, w);
|
|
81
|
+
case SerializationTypes_js_2.SerializationType.Float64:
|
|
82
|
+
return encodeFloat64(val, w);
|
|
83
|
+
case SerializationTypes_js_2.SerializationType.Time:
|
|
84
|
+
return encodeTime(val, w);
|
|
85
|
+
}
|
|
86
|
+
throw new Error("unsupported primitive type in serializePrimitiveValue: " + vi.dataType);
|
|
87
|
+
}
|
|
88
|
+
function serializePackedInt(valRaw, w) {
|
|
89
|
+
let val = BigInt(valRaw);
|
|
90
|
+
let signBit = 0;
|
|
91
|
+
if (val < 0) {
|
|
92
|
+
signBit = 0x40;
|
|
93
|
+
val = -val;
|
|
94
|
+
}
|
|
95
|
+
if (val < (1n << 6n)) {
|
|
96
|
+
w.writeUint8(Number(val & 0x3fn) | signBit);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
w.writeUint8(Number(val & 0x3fn) | signBit | 0x80);
|
|
100
|
+
val >>= 6n;
|
|
101
|
+
if (val < (1n << 7n)) {
|
|
102
|
+
w.writeUint8(Number(val & 0x7fn));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
w.writeUint8(Number(val & 0x7fn) | 0x80);
|
|
106
|
+
val >>= 7n;
|
|
107
|
+
if (val < (1n << 15n)) {
|
|
108
|
+
w.writeUint16(Number(val & 0x7fffn));
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
w.writeUint16(Number(val & 0x7fffn) | 0x8000);
|
|
112
|
+
val >>= 15n;
|
|
113
|
+
if (val < (1n << 31n)) {
|
|
114
|
+
w.writeUint32(Number(val & 0x7fffffffn));
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
w.writeUint32(Number(val & 0x7fffffffn) | 0x80000000);
|
|
118
|
+
val >>= 31n;
|
|
119
|
+
// up to 5 bits left over
|
|
120
|
+
if (val > 31) {
|
|
121
|
+
throw new Error("value too large for restream serialization in serializePackedInt");
|
|
122
|
+
}
|
|
123
|
+
w.writeUint8(Number(val));
|
|
124
|
+
}
|
|
125
|
+
function encodeBoolean(val, w) {
|
|
126
|
+
w.writeUint8(val ? 1 : 0);
|
|
127
|
+
}
|
|
128
|
+
function encodeString(val, w) {
|
|
129
|
+
(0, exports.encodeUint32)(val.length, w);
|
|
130
|
+
w.writeStringAsBytes(val);
|
|
131
|
+
}
|
|
132
|
+
// Make this one different so we can hackily ID it in the array decode
|
|
133
|
+
function encodeUint8(val, writer) {
|
|
134
|
+
serializePackedInt(val, writer);
|
|
135
|
+
}
|
|
136
|
+
exports.encodeUint16 = serializePackedInt;
|
|
137
|
+
exports.encodeUint32 = serializePackedInt;
|
|
138
|
+
exports.encodeUint64 = serializePackedInt;
|
|
139
|
+
exports.encodeInt8 = serializePackedInt;
|
|
140
|
+
exports.encodeInt16 = serializePackedInt;
|
|
141
|
+
exports.encodeInt32 = serializePackedInt;
|
|
142
|
+
exports.encodeInt64 = serializePackedInt;
|
|
143
|
+
function encodeFloat32(val, w) {
|
|
144
|
+
w.writeFloat32(val);
|
|
145
|
+
}
|
|
146
|
+
function encodeFloat64(val, w) {
|
|
147
|
+
w.writeFloat64(val);
|
|
148
|
+
}
|
|
149
|
+
function encodeTime(val, w) {
|
|
150
|
+
const millis = val.getTime();
|
|
151
|
+
(0, exports.encodeInt64)(millis, w);
|
|
152
|
+
}
|
|
153
|
+
function serializePointerValue(val, w, vi) {
|
|
154
|
+
if (!vi.notNil) {
|
|
155
|
+
if (val === undefined) {
|
|
156
|
+
w.writeUint8(1);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (val === null) {
|
|
160
|
+
if (vi.subType instanceof SerializationTypes_js_1.VarInfoPointer) {
|
|
161
|
+
w.writeUint8(0);
|
|
162
|
+
serializePointerValue(undefined, w, vi.subType);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
w.writeUint8(1);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
w.writeUint8(0);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
if (val === undefined || val === null) {
|
|
172
|
+
throw new Error("serializePointerValue called with NotNil but value is undefined/null");
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
serializeValue(val, w, vi.subType);
|
|
176
|
+
}
|
|
177
|
+
function serializeArrayValue(val, w, vi) {
|
|
178
|
+
if (!vi.notNil) {
|
|
179
|
+
if (val === undefined) {
|
|
180
|
+
w.writeUint8(1);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
w.writeUint8(0);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
if (val === undefined) {
|
|
187
|
+
throw new Error("encodeArray called with NotNil but value is undefined");
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
(0, exports.encodeUint32)(val.length, w);
|
|
191
|
+
if (vi.elemType instanceof SerializationTypes_js_1.VarInfoPrimitive && vi.elemType.dataType === SerializationTypes_js_2.SerializationType.Uint8 && (val instanceof Uint8Array)) {
|
|
192
|
+
w.writeBytes(val);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
for (let i = 0; i < val.length; i++) {
|
|
196
|
+
serializeValue(val[i], w, vi.elemType);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function serializeMapValue(val, w, vi) {
|
|
200
|
+
if (!vi.notNil) {
|
|
201
|
+
if (val === undefined) {
|
|
202
|
+
w.writeUint8(1);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
w.writeUint8(0);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
if (val === undefined) {
|
|
209
|
+
throw new Error("encodeMap called with NotNil but value is undefined");
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
(0, exports.encodeUint32)(val.size, w);
|
|
213
|
+
for (const [k, v] of val.entries()) {
|
|
214
|
+
serializeValue(k, w, vi.keyType);
|
|
215
|
+
if (vi.elemType != undefined) {
|
|
216
|
+
serializeValue(v, w, vi.elemType);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
function serializeStructValue(v, w, vi) {
|
|
221
|
+
const vs = v;
|
|
222
|
+
if (!vs.serialize) {
|
|
223
|
+
throw new Error("serializeStructValue called with non-serializable value");
|
|
224
|
+
}
|
|
225
|
+
vs.serialize(w, vi);
|
|
226
|
+
}
|
|
227
|
+
function serializeDynamicValue(v, w, _) {
|
|
228
|
+
const vi = (0, SerializationTypes_js_1.varInfoFromObj)(v);
|
|
229
|
+
w.writeBytes(vi.getSerializationData());
|
|
230
|
+
serializeValue(v, w, vi);
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=Encoders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Encoders.js","sourceRoot":"","sources":["../../../src/utils/Encoders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VarInfoGenericParam = exports.VarInfoStruct = exports.VarInfoMap = exports.VarInfoArray = exports.VarInfoPointer = exports.VarInfoPrimitive = exports.VarInfoDynamic = exports.SerializationType = void 0;
|
|
4
|
+
exports.varInfoFromReader = varInfoFromReader;
|
|
5
|
+
exports.varInfoFromObj = varInfoFromObj;
|
|
6
|
+
const TSUtils_js_1 = require("./TSUtils.js");
|
|
7
|
+
var SerializationType;
|
|
8
|
+
(function (SerializationType) {
|
|
9
|
+
SerializationType[SerializationType["Invalid"] = 0] = "Invalid";
|
|
10
|
+
SerializationType[SerializationType["Bool"] = 1] = "Bool";
|
|
11
|
+
SerializationType[SerializationType["String"] = 2] = "String";
|
|
12
|
+
SerializationType[SerializationType["Int8"] = 3] = "Int8";
|
|
13
|
+
SerializationType[SerializationType["Int16"] = 4] = "Int16";
|
|
14
|
+
SerializationType[SerializationType["Int32"] = 5] = "Int32";
|
|
15
|
+
SerializationType[SerializationType["Int64"] = 6] = "Int64";
|
|
16
|
+
SerializationType[SerializationType["Uint8"] = 7] = "Uint8";
|
|
17
|
+
SerializationType[SerializationType["Uint16"] = 8] = "Uint16";
|
|
18
|
+
SerializationType[SerializationType["Uint32"] = 9] = "Uint32";
|
|
19
|
+
SerializationType[SerializationType["Uint64"] = 10] = "Uint64";
|
|
20
|
+
SerializationType[SerializationType["Float32"] = 11] = "Float32";
|
|
21
|
+
SerializationType[SerializationType["Float64"] = 12] = "Float64";
|
|
22
|
+
SerializationType[SerializationType["Time"] = 13] = "Time";
|
|
23
|
+
SerializationType[SerializationType["Pointer"] = 14] = "Pointer";
|
|
24
|
+
SerializationType[SerializationType["Array"] = 15] = "Array";
|
|
25
|
+
SerializationType[SerializationType["Map"] = 16] = "Map";
|
|
26
|
+
SerializationType[SerializationType["Dynamic"] = 17] = "Dynamic";
|
|
27
|
+
SerializationType[SerializationType["Void"] = 18] = "Void";
|
|
28
|
+
})(SerializationType || (exports.SerializationType = SerializationType = {}));
|
|
29
|
+
class VarInfoDynamic {
|
|
30
|
+
getSerializationData() {
|
|
31
|
+
return new Uint8Array([SerializationType.Dynamic]);
|
|
32
|
+
}
|
|
33
|
+
fillGenerics(_) {
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.VarInfoDynamic = VarInfoDynamic;
|
|
38
|
+
class VarInfoPrimitive {
|
|
39
|
+
dataType;
|
|
40
|
+
mappedType;
|
|
41
|
+
constructor(dataType, mappedType) {
|
|
42
|
+
this.dataType = dataType;
|
|
43
|
+
this.mappedType = mappedType;
|
|
44
|
+
}
|
|
45
|
+
getSerializationData() {
|
|
46
|
+
return new Uint8Array([this.dataType]);
|
|
47
|
+
}
|
|
48
|
+
fillGenerics(_) {
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.VarInfoPrimitive = VarInfoPrimitive;
|
|
53
|
+
class VarInfoPointer {
|
|
54
|
+
notNil;
|
|
55
|
+
subType;
|
|
56
|
+
constructor(notNil, subType) {
|
|
57
|
+
this.notNil = notNil;
|
|
58
|
+
this.subType = subType;
|
|
59
|
+
}
|
|
60
|
+
getSerializationData() {
|
|
61
|
+
const sd = this.subType.getSerializationData();
|
|
62
|
+
const na = new Uint8Array(1 + sd.length);
|
|
63
|
+
na[0] = SerializationType.Pointer;
|
|
64
|
+
na.set(sd, 1);
|
|
65
|
+
return na;
|
|
66
|
+
}
|
|
67
|
+
fillGenerics(gm) {
|
|
68
|
+
return new VarInfoPointer(this.notNil, this.subType.fillGenerics(gm));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.VarInfoPointer = VarInfoPointer;
|
|
72
|
+
class VarInfoArray {
|
|
73
|
+
notNil;
|
|
74
|
+
elemType;
|
|
75
|
+
constructor(notNil, elemType) {
|
|
76
|
+
this.notNil = notNil;
|
|
77
|
+
this.elemType = elemType;
|
|
78
|
+
}
|
|
79
|
+
getSerializationData() {
|
|
80
|
+
const sd = this.elemType.getSerializationData();
|
|
81
|
+
const na = new Uint8Array(1 + sd.length);
|
|
82
|
+
na[0] = SerializationType.Array;
|
|
83
|
+
na.set(sd, 1);
|
|
84
|
+
return na;
|
|
85
|
+
}
|
|
86
|
+
fillGenerics(gm) {
|
|
87
|
+
return new VarInfoArray(this.notNil, this.elemType.fillGenerics(gm));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.VarInfoArray = VarInfoArray;
|
|
91
|
+
class VarInfoMap {
|
|
92
|
+
notNil;
|
|
93
|
+
keyType;
|
|
94
|
+
elemType;
|
|
95
|
+
constructor(notNil, keyType, elemType) {
|
|
96
|
+
this.notNil = notNil;
|
|
97
|
+
this.keyType = keyType;
|
|
98
|
+
this.elemType = elemType;
|
|
99
|
+
}
|
|
100
|
+
getSerializationData() {
|
|
101
|
+
const ksd = this.keyType.getSerializationData();
|
|
102
|
+
const esd = this.elemType ? this.elemType.getSerializationData() : new Uint8Array([SerializationType.Void]);
|
|
103
|
+
const na = new Uint8Array(1 + ksd.length + esd.length);
|
|
104
|
+
na[0] = SerializationType.Map;
|
|
105
|
+
na.set(ksd, 1);
|
|
106
|
+
na.set(esd, 1 + ksd.length);
|
|
107
|
+
return na;
|
|
108
|
+
}
|
|
109
|
+
fillGenerics(gm) {
|
|
110
|
+
const elemType = this.elemType ? this.elemType.fillGenerics(gm) : undefined;
|
|
111
|
+
return new VarInfoMap(this.notNil, this.keyType.fillGenerics(gm), elemType);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.VarInfoMap = VarInfoMap;
|
|
115
|
+
class VarInfoStruct {
|
|
116
|
+
name;
|
|
117
|
+
packageName;
|
|
118
|
+
deserializer;
|
|
119
|
+
fieldList;
|
|
120
|
+
genericTypes;
|
|
121
|
+
constructor(name, packageName, deserializer, fieldList, genericTypes) {
|
|
122
|
+
this.name = name;
|
|
123
|
+
this.packageName = packageName;
|
|
124
|
+
this.deserializer = deserializer;
|
|
125
|
+
this.fieldList = fieldList;
|
|
126
|
+
this.genericTypes = genericTypes;
|
|
127
|
+
}
|
|
128
|
+
getSerializationData() {
|
|
129
|
+
throw new Error("dynamic GetSerializationData of structs not supported");
|
|
130
|
+
}
|
|
131
|
+
fillGenerics(_) {
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.VarInfoStruct = VarInfoStruct;
|
|
136
|
+
class VarInfoGenericParam {
|
|
137
|
+
name;
|
|
138
|
+
constructor(name) {
|
|
139
|
+
this.name = name;
|
|
140
|
+
}
|
|
141
|
+
getSerializationData() {
|
|
142
|
+
throw new Error("dynamic GetSerializationData of structs not supported");
|
|
143
|
+
}
|
|
144
|
+
fillGenerics(gm) {
|
|
145
|
+
if (gm.has(this.name)) {
|
|
146
|
+
return gm.get(this.name);
|
|
147
|
+
}
|
|
148
|
+
return this;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.VarInfoGenericParam = VarInfoGenericParam;
|
|
152
|
+
function varInfoFromReader(r) {
|
|
153
|
+
const st = r.readByte();
|
|
154
|
+
switch (st) {
|
|
155
|
+
case SerializationType.Bool:
|
|
156
|
+
case SerializationType.String:
|
|
157
|
+
case SerializationType.Int8:
|
|
158
|
+
case SerializationType.Int16:
|
|
159
|
+
case SerializationType.Int32:
|
|
160
|
+
case SerializationType.Int64:
|
|
161
|
+
case SerializationType.Uint8:
|
|
162
|
+
case SerializationType.Uint16:
|
|
163
|
+
case SerializationType.Uint32:
|
|
164
|
+
case SerializationType.Uint64:
|
|
165
|
+
case SerializationType.Float32:
|
|
166
|
+
case SerializationType.Float64:
|
|
167
|
+
case SerializationType.Time:
|
|
168
|
+
return new VarInfoPrimitive(st);
|
|
169
|
+
case SerializationType.Pointer: {
|
|
170
|
+
const sub = varInfoFromReader(r);
|
|
171
|
+
if (sub == undefined) {
|
|
172
|
+
throw new Error("undefined varinfo for Pointer in varInfoFromReader");
|
|
173
|
+
}
|
|
174
|
+
return new VarInfoPointer(false, sub);
|
|
175
|
+
}
|
|
176
|
+
case SerializationType.Array: {
|
|
177
|
+
const sub = varInfoFromReader(r);
|
|
178
|
+
if (sub == undefined) {
|
|
179
|
+
throw new Error("undefined varinfo for Array in varInfoFromReader");
|
|
180
|
+
}
|
|
181
|
+
return new VarInfoArray(false, sub);
|
|
182
|
+
}
|
|
183
|
+
case SerializationType.Map: {
|
|
184
|
+
const key = varInfoFromReader(r);
|
|
185
|
+
const elem = varInfoFromReader(r);
|
|
186
|
+
if (key == undefined) {
|
|
187
|
+
throw new Error("undefined varinfo for Map key in varInfoFromReader");
|
|
188
|
+
}
|
|
189
|
+
return new VarInfoMap(false, key, elem);
|
|
190
|
+
}
|
|
191
|
+
case SerializationType.Dynamic:
|
|
192
|
+
return new VarInfoDynamic();
|
|
193
|
+
case SerializationType.Void:
|
|
194
|
+
return undefined;
|
|
195
|
+
default:
|
|
196
|
+
throw new Error("can't dynamically deserialize varinfo for unknown serialization type: " + st);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function varInfoFromObj(obj) {
|
|
200
|
+
switch (typeof obj) {
|
|
201
|
+
case 'boolean':
|
|
202
|
+
return new VarInfoPrimitive(SerializationType.Bool);
|
|
203
|
+
case 'string':
|
|
204
|
+
return new VarInfoPrimitive(SerializationType.String);
|
|
205
|
+
case 'number':
|
|
206
|
+
return (obj === (obj | 0)) ? new VarInfoPrimitive(SerializationType.Int64) : new VarInfoPrimitive(SerializationType.Float64);
|
|
207
|
+
case 'bigint':
|
|
208
|
+
return new VarInfoPrimitive(SerializationType.Int64);
|
|
209
|
+
case 'undefined':
|
|
210
|
+
return new VarInfoPointer(false, new VarInfoPrimitive(SerializationType.Int64));
|
|
211
|
+
case 'object':
|
|
212
|
+
if (obj === null) {
|
|
213
|
+
return new VarInfoPointer(false, new VarInfoPrimitive(SerializationType.Int64));
|
|
214
|
+
}
|
|
215
|
+
if (obj instanceof Date) {
|
|
216
|
+
return new VarInfoPrimitive(SerializationType.Time);
|
|
217
|
+
}
|
|
218
|
+
if (obj instanceof Uint8Array) {
|
|
219
|
+
return new VarInfoArray(false, new VarInfoPrimitive(SerializationType.Uint8));
|
|
220
|
+
}
|
|
221
|
+
if (obj instanceof Array) {
|
|
222
|
+
if (obj.length === 0) {
|
|
223
|
+
return new VarInfoArray(false, new VarInfoPrimitive(SerializationType.Int64));
|
|
224
|
+
}
|
|
225
|
+
const firstVI = varInfoFromObj(obj[0]);
|
|
226
|
+
for (let i = 1; i < obj.length; i++) {
|
|
227
|
+
if (!(0, TSUtils_js_1.deepEqual)(varInfoFromObj(obj[i]), firstVI)) {
|
|
228
|
+
return new VarInfoArray(false, new VarInfoDynamic());
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return new VarInfoArray(false, firstVI);
|
|
232
|
+
}
|
|
233
|
+
if (obj instanceof Map) {
|
|
234
|
+
if (obj.size === 0) {
|
|
235
|
+
return new VarInfoMap(false, new VarInfoPrimitive(SerializationType.Int64), new VarInfoPrimitive(SerializationType.Int64));
|
|
236
|
+
}
|
|
237
|
+
const entries = obj.entries();
|
|
238
|
+
let entry = entries.next();
|
|
239
|
+
const firstKT = varInfoFromObj(entry.value[0]);
|
|
240
|
+
let keyDiff = false;
|
|
241
|
+
const firstVT = varInfoFromObj(entry.value[1]);
|
|
242
|
+
let valueDiff = false;
|
|
243
|
+
for (; !entry.done; entry = entries.next()) {
|
|
244
|
+
if (!keyDiff && !(0, TSUtils_js_1.deepEqual)(varInfoFromObj(entry.value[0]), firstKT)) {
|
|
245
|
+
keyDiff = true;
|
|
246
|
+
}
|
|
247
|
+
if (!valueDiff && !(0, TSUtils_js_1.deepEqual)(varInfoFromObj(entry.value[1]), firstVT)) {
|
|
248
|
+
valueDiff = true;
|
|
249
|
+
}
|
|
250
|
+
if (keyDiff && valueDiff) {
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
const kt = keyDiff ? new VarInfoDynamic() : firstKT;
|
|
255
|
+
const vt = valueDiff ? new VarInfoDynamic() : firstVT;
|
|
256
|
+
return new VarInfoMap(false, kt, vt);
|
|
257
|
+
}
|
|
258
|
+
if (obj instanceof Set) {
|
|
259
|
+
if (obj.size === 0) {
|
|
260
|
+
return new VarInfoMap(false, new VarInfoPrimitive(SerializationType.Int64), new VarInfoPrimitive(SerializationType.Int64));
|
|
261
|
+
}
|
|
262
|
+
const entries = obj.entries();
|
|
263
|
+
let entry = entries.next();
|
|
264
|
+
const firstKT = varInfoFromObj(entry.value[0]);
|
|
265
|
+
for (; !entry.done; entry = entries.next()) {
|
|
266
|
+
if (!(0, TSUtils_js_1.deepEqual)(varInfoFromObj(entry.value[0]), firstKT)) {
|
|
267
|
+
return new VarInfoMap(false, new VarInfoDynamic(), undefined);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return new VarInfoMap(false, firstKT, undefined);
|
|
271
|
+
}
|
|
272
|
+
// TODO: not sure if this works at all
|
|
273
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
274
|
+
return new VarInfoStruct(obj.constructor.name, "", obj.prototype);
|
|
275
|
+
default:
|
|
276
|
+
throw new Error("can't create varinfo for unknown type: " + typeof obj);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=SerializationTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SerializationTypes.js","sourceRoot":"","sources":["../../../src/utils/SerializationTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleAssert.js","sourceRoot":"","sources":["../../../src/utils/SimpleAssert.ts"],"names":[],"mappings":";;AAAA,gBAIC;AAJD,SAAgB,EAAE,CAAC,SAAkB,EAAE,OAAO,GAAG,kBAAkB;IAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unsafe-function-type */
|
|
4
|
+
/**
|
|
5
|
+
* SubscribableEvent.ts
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
8
|
+
* Licensed under the MIT license.
|
|
9
|
+
*
|
|
10
|
+
* A simple strongly-typed pub/sub/fire eventing system.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.SubscriptionToken = void 0;
|
|
14
|
+
class SubscriptionToken {
|
|
15
|
+
_event;
|
|
16
|
+
_callback;
|
|
17
|
+
constructor(_event, _callback) {
|
|
18
|
+
this._event = _event;
|
|
19
|
+
this._callback = _callback;
|
|
20
|
+
}
|
|
21
|
+
unsubscribe() {
|
|
22
|
+
this._event.unsubscribe(this._callback);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.SubscriptionToken = SubscriptionToken;
|
|
26
|
+
class SubscribableEvent {
|
|
27
|
+
_allowStopPropagation;
|
|
28
|
+
_subscribers;
|
|
29
|
+
// By default, SubscribableEvent will fire to all subscribers regardless of any conditions.
|
|
30
|
+
// If you enable allowStopPropagation, then a subscription callback can return a truthy response and it will halt further callbacks.
|
|
31
|
+
constructor(_allowStopPropagation = false) {
|
|
32
|
+
this._allowStopPropagation = _allowStopPropagation;
|
|
33
|
+
this._subscribers = [];
|
|
34
|
+
}
|
|
35
|
+
dispose() {
|
|
36
|
+
this._subscribers = [];
|
|
37
|
+
}
|
|
38
|
+
subscribe(callback) {
|
|
39
|
+
this._subscribers = this._subscribers.concat(callback);
|
|
40
|
+
return new SubscriptionToken(this, callback);
|
|
41
|
+
}
|
|
42
|
+
unsubscribe(callback) {
|
|
43
|
+
this._subscribers = this._subscribers.filter(value => value !== callback);
|
|
44
|
+
}
|
|
45
|
+
fire = ((...args) => {
|
|
46
|
+
// Keep reference to the original readonly array. We don't want to have it change while we're firing
|
|
47
|
+
const subs = this._subscribers;
|
|
48
|
+
// Execute handlers in the reverse order in which they were registered.
|
|
49
|
+
for (let i = subs.length - 1; i >= 0; i--) {
|
|
50
|
+
const ret = subs[i].apply(null, args);
|
|
51
|
+
if (this._allowStopPropagation && !!ret) {
|
|
52
|
+
// If the value was handled, early out.
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
exports.default = SubscribableEvent;
|
|
60
|
+
//# sourceMappingURL=SubscribableEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscribableEvent.js","sourceRoot":"","sources":["../../../src/utils/SubscribableEvent.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,+DAA+D;AAC/D;;;;;;;GAOG;;;AAEH,MAAa,iBAAiB;IACN;IACR;IADZ,YAAoB,MAA8B,EACtC,SAA2C;QADnC,WAAM,GAAN,MAAM,CAAwB;QACtC,cAAS,GAAT,SAAS,CAAkC;IACvD,CAAC;IAED,WAAW;QACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;CACJ;AARD,8CAQC;AAED,MAAqB,iBAAiB;IAKd;IAJZ,YAAY,CAA0B;IAE9C,2FAA2F;IAC3F,oIAAoI;IACpI,YAAoB,wBAAwB,KAAK;QAA7B,0BAAqB,GAArB,qBAAqB,CAAQ;QAC7C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO;QACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,QAAW;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEvD,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,WAAW,CAAC,QAAW;QACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,GAAY,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;QAChC,oGAAoG;QACpG,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAE/B,uEAAuE;QACvE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACtC,uCAAuC;gBACvC,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;CACN;AAtCD,oCAsCC"}
|