@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.
Files changed (75) hide show
  1. package/README.md +19 -0
  2. package/dist/cjs/index.js +34 -0
  3. package/dist/cjs/index.js.map +1 -0
  4. package/dist/cjs/package.json +3 -0
  5. package/dist/cjs/restream/PackageRestream.js +371 -0
  6. package/dist/cjs/restream/PackageRestream.js.map +1 -0
  7. package/dist/cjs/stores/TriggerStore.js +130 -0
  8. package/dist/cjs/stores/TriggerStore.js.map +1 -0
  9. package/dist/cjs/utils/BinaryReader.js +171 -0
  10. package/dist/cjs/utils/BinaryReader.js.map +1 -0
  11. package/dist/cjs/utils/BinaryWriter.js +74 -0
  12. package/dist/cjs/utils/BinaryWriter.js.map +1 -0
  13. package/dist/cjs/utils/Decoders.js +286 -0
  14. package/dist/cjs/utils/Decoders.js.map +1 -0
  15. package/dist/cjs/utils/Encoders.js +232 -0
  16. package/dist/cjs/utils/Encoders.js.map +1 -0
  17. package/dist/cjs/utils/SerializationTypes.js +279 -0
  18. package/dist/cjs/utils/SerializationTypes.js.map +1 -0
  19. package/dist/cjs/utils/SimpleAssert.js +9 -0
  20. package/dist/cjs/utils/SimpleAssert.js.map +1 -0
  21. package/dist/cjs/utils/SubscribableEvent.js +60 -0
  22. package/dist/cjs/utils/SubscribableEvent.js.map +1 -0
  23. package/dist/cjs/utils/TSUtils.js +62 -0
  24. package/dist/cjs/utils/TSUtils.js.map +1 -0
  25. package/dist/cjs/websocket/SocketHelper.js +134 -0
  26. package/dist/cjs/websocket/SocketHelper.js.map +1 -0
  27. package/dist/esm/index.d.ts +10 -0
  28. package/dist/esm/index.d.ts.map +1 -0
  29. package/dist/esm/index.js +9 -0
  30. package/dist/esm/index.js.map +1 -0
  31. package/dist/esm/restream/PackageRestream.d.ts +71 -0
  32. package/dist/esm/restream/PackageRestream.d.ts.map +1 -0
  33. package/dist/esm/restream/PackageRestream.js +330 -0
  34. package/dist/esm/restream/PackageRestream.js.map +1 -0
  35. package/dist/esm/stores/TriggerStore.d.ts +34 -0
  36. package/dist/esm/stores/TriggerStore.d.ts.map +1 -0
  37. package/dist/esm/stores/TriggerStore.js +124 -0
  38. package/dist/esm/stores/TriggerStore.js.map +1 -0
  39. package/dist/esm/utils/BinaryReader.d.ts +27 -0
  40. package/dist/esm/utils/BinaryReader.d.ts.map +1 -0
  41. package/dist/esm/utils/BinaryReader.js +168 -0
  42. package/dist/esm/utils/BinaryReader.js.map +1 -0
  43. package/dist/esm/utils/BinaryWriter.d.ts +18 -0
  44. package/dist/esm/utils/BinaryWriter.d.ts.map +1 -0
  45. package/dist/esm/utils/BinaryWriter.js +71 -0
  46. package/dist/esm/utils/BinaryWriter.js.map +1 -0
  47. package/dist/esm/utils/Decoders.d.ts +27 -0
  48. package/dist/esm/utils/Decoders.d.ts.map +1 -0
  49. package/dist/esm/utils/Decoders.js +235 -0
  50. package/dist/esm/utils/Decoders.js.map +1 -0
  51. package/dist/esm/utils/Encoders.d.ts +25 -0
  52. package/dist/esm/utils/Encoders.d.ts.map +1 -0
  53. package/dist/esm/utils/Encoders.js +211 -0
  54. package/dist/esm/utils/Encoders.js.map +1 -0
  55. package/dist/esm/utils/SerializationTypes.d.ts +101 -0
  56. package/dist/esm/utils/SerializationTypes.d.ts.map +1 -0
  57. package/dist/esm/utils/SerializationTypes.js +267 -0
  58. package/dist/esm/utils/SerializationTypes.js.map +1 -0
  59. package/dist/esm/utils/SimpleAssert.d.ts +2 -0
  60. package/dist/esm/utils/SimpleAssert.d.ts.map +1 -0
  61. package/dist/esm/utils/SimpleAssert.js +6 -0
  62. package/dist/esm/utils/SimpleAssert.js.map +1 -0
  63. package/dist/esm/utils/SubscribableEvent.d.ts +26 -0
  64. package/dist/esm/utils/SubscribableEvent.d.ts.map +1 -0
  65. package/dist/esm/utils/SubscribableEvent.js +55 -0
  66. package/dist/esm/utils/SubscribableEvent.js.map +1 -0
  67. package/dist/esm/utils/TSUtils.d.ts +8 -0
  68. package/dist/esm/utils/TSUtils.d.ts.map +1 -0
  69. package/dist/esm/utils/TSUtils.js +58 -0
  70. package/dist/esm/utils/TSUtils.js.map +1 -0
  71. package/dist/esm/websocket/SocketHelper.d.ts +64 -0
  72. package/dist/esm/websocket/SocketHelper.d.ts.map +1 -0
  73. package/dist/esm/websocket/SocketHelper.js +125 -0
  74. package/dist/esm/websocket/SocketHelper.js.map +1 -0
  75. package/package.json +58 -0
@@ -0,0 +1,235 @@
1
+ import * as assert from './SimpleAssert.js';
2
+ import { VarInfoArray, VarInfoDynamic, VarInfoMap, VarInfoPointer, VarInfoPrimitive, VarInfoStruct, varInfoFromReader } from "./SerializationTypes.js";
3
+ import { SerializationType } from "./SerializationTypes.js";
4
+ export function decodeFieldMap(r, fieldMap) {
5
+ const ret = new Map();
6
+ while (!r.isEOF()) {
7
+ const fieldID = r.readByte();
8
+ const fieldLen = decodeUint32(r);
9
+ const fi = fieldMap.get(fieldID);
10
+ if (fi === undefined) {
11
+ r.skipBytes(fieldLen);
12
+ continue;
13
+ }
14
+ const subReader = r.slice(fieldLen);
15
+ const ov = deserializeValue(subReader, fi.varInfo);
16
+ ret.set(fieldID, ov);
17
+ }
18
+ return ret;
19
+ }
20
+ export function deserializeValue(r, vi) {
21
+ if (vi instanceof VarInfoPrimitive) {
22
+ return deserializePrimitiveValue(r, vi);
23
+ }
24
+ else if (vi instanceof VarInfoPointer) {
25
+ return deserializePointerValue(r, vi);
26
+ }
27
+ else if (vi instanceof VarInfoArray) {
28
+ return deserializeArrayValue(r, vi);
29
+ }
30
+ else if (vi instanceof VarInfoMap) {
31
+ return deserializeMapValue(r, vi);
32
+ }
33
+ else if (vi instanceof VarInfoStruct) {
34
+ return deserializeStructValue(r, vi);
35
+ }
36
+ else if (vi instanceof VarInfoDynamic) {
37
+ return deserializeDynamicValue(r, vi);
38
+ }
39
+ throw new Error("unsupported varinfo type: " + vi);
40
+ }
41
+ function deserializePrimitiveValue(r, vi) {
42
+ switch (vi.dataType) {
43
+ case SerializationType.Bool:
44
+ return decodeBoolean(r);
45
+ case SerializationType.String:
46
+ return decodeString(r);
47
+ case SerializationType.Int8:
48
+ return decodeInt8(r);
49
+ case SerializationType.Int16:
50
+ return decodeInt16(r);
51
+ case SerializationType.Int32:
52
+ return decodeInt32(r);
53
+ case SerializationType.Int64:
54
+ return decodeInt64(r);
55
+ case SerializationType.Uint8:
56
+ return decodeUint8(r);
57
+ case SerializationType.Uint16:
58
+ return decodeUint16(r);
59
+ case SerializationType.Uint32:
60
+ return decodeUint32(r);
61
+ case SerializationType.Uint64:
62
+ return decodeUint64(r);
63
+ case SerializationType.Float32:
64
+ return decodeFloat32(r);
65
+ case SerializationType.Float64:
66
+ return decodeFloat64(r);
67
+ case SerializationType.Time:
68
+ return decodeTime(r);
69
+ }
70
+ throw new Error("unsupported primitive type in deserializePrimitiveValue: " + vi.dataType);
71
+ }
72
+ export function deserializePackedInt(r) {
73
+ let ret = 0;
74
+ let b = r.readByte();
75
+ ret |= b & 0x3f;
76
+ const neg = (b & 0x40) > 0;
77
+ if ((b & 0x80) > 0) {
78
+ b = r.readByte();
79
+ ret |= ((b & 0x7f) << 6);
80
+ if ((b & 0x80) > 0) {
81
+ const w = r.readUint16();
82
+ ret |= ((w & 0x7fff) << 13);
83
+ if ((w & 0x8000) > 0) {
84
+ let reta = BigInt(ret);
85
+ const dw = BigInt(r.readUint32());
86
+ reta |= ((dw & 0x7fffffffn) << 28n);
87
+ if ((dw & 0x80000000n) > 0) {
88
+ const bi = BigInt(r.readByte());
89
+ reta |= bi << 59n;
90
+ }
91
+ ret = Number(reta);
92
+ }
93
+ }
94
+ }
95
+ return neg ? -ret : ret;
96
+ }
97
+ export function deserializePackedBigint(r) {
98
+ let ret = BigInt(0);
99
+ let b = r.readByte();
100
+ ret |= BigInt(b & 0x3f);
101
+ const neg = (b & 0x40) > 0;
102
+ if ((b & 0x80) > 0) {
103
+ b = r.readByte();
104
+ ret |= BigInt(((b & 0x7f) << 6));
105
+ if ((b & 0x80) > 0) {
106
+ const w = r.readUint16();
107
+ ret |= BigInt(((w & 0x7fff) << 13));
108
+ if ((w & 0x8000) > 0) {
109
+ const dw = BigInt(r.readUint32());
110
+ ret |= ((dw & 0x7fffffffn) << 28n);
111
+ if ((dw & 0x80000000n) > 0) {
112
+ const bi = BigInt(r.readByte());
113
+ ret |= bi << 59n;
114
+ }
115
+ }
116
+ }
117
+ }
118
+ return neg ? -ret : ret;
119
+ }
120
+ export function decodeBoolean(r) {
121
+ const bVal = r.readByte();
122
+ assert.ok(bVal === 0 || bVal === 1, "invalid boolean value, datastream probably corrupt");
123
+ return bVal === 1;
124
+ }
125
+ export function decodeString(r) {
126
+ const len = decodeUint32(r);
127
+ return r.readString(len);
128
+ }
129
+ // Make this one different so we can hackily ID it in the array decode
130
+ export function decodeUint8(r) {
131
+ return deserializePackedInt(r);
132
+ }
133
+ export const decodeUint16 = deserializePackedInt;
134
+ export const decodeUint32 = deserializePackedInt;
135
+ export const decodeUint64 = deserializePackedInt;
136
+ export const decodeUint64Big = deserializePackedBigint;
137
+ export const decodeInt8 = deserializePackedInt;
138
+ export const decodeInt16 = deserializePackedInt;
139
+ export const decodeInt32 = deserializePackedInt;
140
+ export const decodeInt64 = deserializePackedInt;
141
+ export const decodeInt64Big = deserializePackedBigint;
142
+ export function decodeFloat32(r) {
143
+ return r.readFloat32();
144
+ }
145
+ export function decodeFloat64(r) {
146
+ return r.readFloat64();
147
+ }
148
+ export function decodeTime(r) {
149
+ const millis = Number(decodeInt64(r));
150
+ return new Date(millis);
151
+ }
152
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
153
+ export function deserializePointerValue(r, vi) {
154
+ if (!vi.notNil) {
155
+ const bIsNull = r.readByte();
156
+ assert.ok(bIsNull === 0 || bIsNull === 1, "invalid boolean pointer nullability value, datastream probably corrupt");
157
+ if (bIsNull === 1) {
158
+ return undefined;
159
+ }
160
+ }
161
+ const val = deserializeValue(r, vi.subType);
162
+ if (vi.subType instanceof VarInfoPointer && val === undefined) {
163
+ return null;
164
+ }
165
+ return val;
166
+ }
167
+ export function deserializeArrayValue(r, vi) {
168
+ if (!vi.notNil) {
169
+ const isNil = r.readByte();
170
+ assert.ok(isNil === 0 || isNil === 1, "invalid boolean pointer nullability value, datastream probably corrupt");
171
+ if (isNil == 1) {
172
+ return undefined;
173
+ }
174
+ }
175
+ const len = decodeUint32(r);
176
+ if (vi.elemType instanceof VarInfoPrimitive && vi.elemType.dataType == SerializationType.Uint8) {
177
+ return r.readBytes(len);
178
+ }
179
+ const arr = new Array(len);
180
+ for (let i = 0; i < len; i++) {
181
+ arr[i] = deserializeValue(r, vi.elemType);
182
+ }
183
+ return arr;
184
+ }
185
+ export function deserializeMapValue(r, vi) {
186
+ if (!vi.notNil) {
187
+ const isNil = r.readByte();
188
+ if (isNil == 1) {
189
+ return undefined;
190
+ }
191
+ }
192
+ const len = decodeUint32(r);
193
+ if (vi.elemType === undefined) {
194
+ const ret = new Set();
195
+ for (let i = 0; i < len; i++) {
196
+ const k = deserializeValue(r, vi.keyType);
197
+ ret.add(k);
198
+ }
199
+ return ret;
200
+ }
201
+ else {
202
+ const ret = new Map();
203
+ for (let i = 0; i < len; i++) {
204
+ const k = deserializeValue(r, vi.keyType);
205
+ const v = deserializeValue(r, vi.elemType);
206
+ ret.set(k, v);
207
+ }
208
+ return ret;
209
+ }
210
+ }
211
+ export function deserializeDynamicValue(r, _) {
212
+ const vi = varInfoFromReader(r);
213
+ if (vi instanceof VarInfoPrimitive) {
214
+ return deserializePrimitiveValue(r, vi);
215
+ }
216
+ else if (vi instanceof VarInfoPointer) {
217
+ return deserializePointerValue(r, vi);
218
+ }
219
+ else if (vi instanceof VarInfoArray) {
220
+ return deserializeArrayValue(r, vi);
221
+ }
222
+ else if (vi instanceof VarInfoMap) {
223
+ return deserializeMapValue(r, vi);
224
+ }
225
+ else if (vi instanceof VarInfoStruct) {
226
+ return deserializeStructValue(r, vi);
227
+ }
228
+ else if (vi instanceof VarInfoDynamic) {
229
+ throw new Error("dynamic dynamic type during deserialize: " + vi);
230
+ }
231
+ }
232
+ export function deserializeStructValue(r, vi) {
233
+ return vi.deserializer.deserialized(r, vi);
234
+ }
235
+ //# sourceMappingURL=Decoders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Decoders.js","sourceRoot":"","sources":["../../../src/utils/Decoders.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACiB,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAC5E,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EACrD,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,UAAU,cAAc,CAAC,CAAe,EAAE,QAAgC;IAC5E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACnB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtB,SAAS;QACb,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAe,EAAE,EAAW;IACzD,IAAI,EAAE,YAAY,gBAAgB,EAAE,CAAC;QACjC,OAAO,yBAAyB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;SAAM,IAAI,EAAE,YAAY,cAAc,EAAE,CAAC;QACtC,OAAO,uBAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,EAAE,YAAY,YAAY,EAAE,CAAC;QACpC,OAAO,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,EAAE,YAAY,UAAU,EAAE,CAAC;QAClC,OAAO,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,EAAE,YAAY,aAAa,EAAE,CAAC;QACrC,OAAO,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,EAAE,YAAY,cAAc,EAAE,CAAC;QACtC,OAAO,uBAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,yBAAyB,CAAC,CAAe,EAAE,EAAoB;IACpE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,iBAAiB,CAAC,IAAI;YACvB,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,KAAK,iBAAiB,CAAC,MAAM;YACzB,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,KAAK,iBAAiB,CAAC,IAAI;YACvB,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,KAAK,iBAAiB,CAAC,KAAK;YACxB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1B,KAAK,iBAAiB,CAAC,KAAK;YACxB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1B,KAAK,iBAAiB,CAAC,KAAK;YACxB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1B,KAAK,iBAAiB,CAAC,KAAK;YACxB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1B,KAAK,iBAAiB,CAAC,MAAM;YACzB,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,KAAK,iBAAiB,CAAC,MAAM;YACzB,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,KAAK,iBAAiB,CAAC,MAAM;YACzB,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,KAAK,iBAAiB,CAAC,OAAO;YAC1B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,KAAK,iBAAiB,CAAC,OAAO;YAC1B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,KAAK,iBAAiB,CAAC,IAAI;YACvB,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2DAA2D,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAe;IAChD,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAExB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;YACzB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAE5B,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;gBACtB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;gBAEpC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChC,IAAI,IAAI,EAAE,IAAI,GAAG,CAAC;gBACtB,CAAC;gBAED,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,CAAe;IACnD,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrB,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjB,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEhC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;YACzB,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAEpC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClC,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;gBAEnC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC;gBACrB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAe;IACzC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,oDAAoD,CAAC,CAAA;IACzF,OAAO,IAAI,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAe;IACxC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,WAAW,CAAC,CAAe;IACvC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAChD,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAChD,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAEtD,MAAM,UAAU,aAAa,CAAC,CAAe;IACzC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAe;IACzC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAe;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,uBAAuB,CAAC,CAAe,EAAE,EAAkB;IACvE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,wEAAwE,CAAC,CAAA;QACnH,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,EAAE,CAAC,OAAO,YAAY,cAAc,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAe,EAAE,EAAgB;IACnE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,wEAAwE,CAAC,CAAA;QAC/G,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,QAAQ,YAAY,gBAAgB,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC7F,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAO,CAAe,EAAE,EAAc;IACrE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAK,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YAC1C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,GAAG,IAAI,GAAG,EAAQ,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC3C,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,CAAe,EAAE,CAAiB;IACtE,MAAM,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAEhC,IAAI,EAAE,YAAY,gBAAgB,EAAE,CAAC;QACjC,OAAO,yBAAyB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;SAAM,IAAI,EAAE,YAAY,cAAc,EAAE,CAAC;QACtC,OAAO,uBAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,EAAE,YAAY,YAAY,EAAE,CAAC;QACpC,OAAO,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,EAAE,YAAY,UAAU,EAAE,CAAC;QAClC,OAAO,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,EAAE,YAAY,aAAa,EAAE,CAAC;QACrC,OAAO,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,EAAE,YAAY,cAAc,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC;IACtE,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,CAAe,EAAE,EAAiB;IACrE,OAAO,EAAE,CAAC,YAAa,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,25 @@
1
+ import BinaryWriter from './BinaryWriter.js';
2
+ import { FieldInfo, VarInfo, VarInfoArray, VarInfoDynamic, VarInfoMap, VarInfoPointer, VarInfoPrimitive, VarInfoStruct } from './SerializationTypes.js';
3
+ export declare function serializeField(val: unknown, fi: FieldInfo, w: BinaryWriter): void;
4
+ export declare function serializeValue(val: unknown, w: BinaryWriter, vi: VarInfo): void;
5
+ export declare function serializePrimitiveValue(val: unknown, w: BinaryWriter, vi: VarInfoPrimitive): void;
6
+ export declare function serializePackedInt(valRaw: number | bigint, w: BinaryWriter): void;
7
+ export declare function encodeBoolean(val: boolean, w: BinaryWriter): void;
8
+ export declare function encodeString(val: string, w: BinaryWriter): void;
9
+ export declare function encodeUint8(val: number | bigint, writer: BinaryWriter): void;
10
+ export declare const encodeUint16: typeof serializePackedInt;
11
+ export declare const encodeUint32: typeof serializePackedInt;
12
+ export declare const encodeUint64: typeof serializePackedInt;
13
+ export declare const encodeInt8: typeof serializePackedInt;
14
+ export declare const encodeInt16: typeof serializePackedInt;
15
+ export declare const encodeInt32: typeof serializePackedInt;
16
+ export declare const encodeInt64: typeof serializePackedInt;
17
+ export declare function encodeFloat32(val: number, w: BinaryWriter): void;
18
+ export declare function encodeFloat64(val: number, w: BinaryWriter): void;
19
+ export declare function encodeTime(val: Date, w: BinaryWriter): void;
20
+ export declare function serializePointerValue<T>(val: T | null | undefined, w: BinaryWriter, vi: VarInfoPointer): void;
21
+ export declare function serializeArrayValue<T>(val: T[] | Uint8Array | undefined, w: BinaryWriter, vi: VarInfoArray): void;
22
+ export declare function serializeMapValue<K, V>(val: Map<K, V> | Set<K> | undefined, w: BinaryWriter, vi: VarInfoMap): void;
23
+ export declare function serializeStructValue(v: unknown, w: BinaryWriter, vi: VarInfoStruct): void;
24
+ export declare function serializeDynamicValue(v: unknown, w: BinaryWriter, _: VarInfoDynamic): void;
25
+ //# sourceMappingURL=Encoders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Encoders.d.ts","sourceRoot":"","sources":["../../../src/utils/Encoders.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAgB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAkB,MAAM,yBAAyB,CAAC;AAGtL,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,QAY1E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,QAexE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,gBAAgB,QA8B1F;AACD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CA0CjF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAEjE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAG/D;AAGD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAE5E;AAED,eAAO,MAAM,YAAY,2BAAqB,CAAC;AAC/C,eAAO,MAAM,YAAY,2BAAqB,CAAC;AAC/C,eAAO,MAAM,YAAY,2BAAqB,CAAC;AAC/C,eAAO,MAAM,UAAU,2BAAqB,CAAC;AAC7C,eAAO,MAAM,WAAW,2BAAqB,CAAC;AAC9C,eAAO,MAAM,WAAW,2BAAqB,CAAC;AAC9C,eAAO,MAAM,WAAW,2BAAqB,CAAC;AAE9C,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAEhE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAEhE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAG3D;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,QAuBtG;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,UAAU,GAAG,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,QAsB1G;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,QAoB3G;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,QAMlF;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,GAAG,IAAI,CAI1F"}
@@ -0,0 +1,211 @@
1
+ import BinaryWriter from './BinaryWriter.js';
2
+ import { VarInfoArray, VarInfoDynamic, VarInfoMap, VarInfoPointer, VarInfoPrimitive, VarInfoStruct, varInfoFromObj } from './SerializationTypes.js';
3
+ import { SerializationType } from './SerializationTypes.js';
4
+ export function serializeField(val, fi, w) {
5
+ if (val === undefined) {
6
+ return;
7
+ }
8
+ w.writeUint8(fi.fieldID);
9
+ const w2 = new BinaryWriter();
10
+ serializeValue(val, w2, fi.varInfo);
11
+ const b = w2.getBytes();
12
+ encodeUint64(b.length, w);
13
+ w.writeBytes(b);
14
+ }
15
+ export function serializeValue(val, w, vi) {
16
+ if (vi instanceof VarInfoPrimitive) {
17
+ return serializePrimitiveValue(val, w, vi);
18
+ }
19
+ else if (vi instanceof VarInfoPointer) {
20
+ return serializePointerValue(val, w, vi);
21
+ }
22
+ else if (vi instanceof VarInfoArray) {
23
+ return serializeArrayValue(val, w, vi);
24
+ }
25
+ else if (vi instanceof VarInfoMap) {
26
+ return serializeMapValue(val, w, vi);
27
+ }
28
+ else if (vi instanceof VarInfoStruct) {
29
+ return serializeStructValue(val, w, vi);
30
+ }
31
+ else if (vi instanceof VarInfoDynamic) {
32
+ return serializeDynamicValue(val, w, vi);
33
+ }
34
+ throw new Error("unsupported varinfo type: " + vi);
35
+ }
36
+ export function serializePrimitiveValue(val, w, vi) {
37
+ switch (vi.dataType) {
38
+ case SerializationType.Bool:
39
+ return encodeBoolean(val, w);
40
+ case SerializationType.String:
41
+ return encodeString(val, w);
42
+ case SerializationType.Int8:
43
+ return encodeInt8(val, w);
44
+ case SerializationType.Int16:
45
+ return encodeInt16(val, w);
46
+ case SerializationType.Int32:
47
+ return encodeInt32(val, w);
48
+ case SerializationType.Int64:
49
+ return encodeInt64(val, w);
50
+ case SerializationType.Uint8:
51
+ return encodeUint8(val, w);
52
+ case SerializationType.Uint16:
53
+ return encodeUint16(val, w);
54
+ case SerializationType.Uint32:
55
+ return encodeUint32(val, w);
56
+ case SerializationType.Uint64:
57
+ return encodeUint64(val, w);
58
+ case SerializationType.Float32:
59
+ return encodeFloat32(val, w);
60
+ case SerializationType.Float64:
61
+ return encodeFloat64(val, w);
62
+ case SerializationType.Time:
63
+ return encodeTime(val, w);
64
+ }
65
+ throw new Error("unsupported primitive type in serializePrimitiveValue: " + vi.dataType);
66
+ }
67
+ export function serializePackedInt(valRaw, w) {
68
+ let val = BigInt(valRaw);
69
+ let signBit = 0;
70
+ if (val < 0) {
71
+ signBit = 0x40;
72
+ val = -val;
73
+ }
74
+ if (val < (1n << 6n)) {
75
+ w.writeUint8(Number(val & 0x3fn) | signBit);
76
+ return;
77
+ }
78
+ w.writeUint8(Number(val & 0x3fn) | signBit | 0x80);
79
+ val >>= 6n;
80
+ if (val < (1n << 7n)) {
81
+ w.writeUint8(Number(val & 0x7fn));
82
+ return;
83
+ }
84
+ w.writeUint8(Number(val & 0x7fn) | 0x80);
85
+ val >>= 7n;
86
+ if (val < (1n << 15n)) {
87
+ w.writeUint16(Number(val & 0x7fffn));
88
+ return;
89
+ }
90
+ w.writeUint16(Number(val & 0x7fffn) | 0x8000);
91
+ val >>= 15n;
92
+ if (val < (1n << 31n)) {
93
+ w.writeUint32(Number(val & 0x7fffffffn));
94
+ return;
95
+ }
96
+ w.writeUint32(Number(val & 0x7fffffffn) | 0x80000000);
97
+ val >>= 31n;
98
+ // up to 5 bits left over
99
+ if (val > 31) {
100
+ throw new Error("value too large for restream serialization in serializePackedInt");
101
+ }
102
+ w.writeUint8(Number(val));
103
+ }
104
+ export function encodeBoolean(val, w) {
105
+ w.writeUint8(val ? 1 : 0);
106
+ }
107
+ export function encodeString(val, w) {
108
+ encodeUint32(val.length, w);
109
+ w.writeStringAsBytes(val);
110
+ }
111
+ // Make this one different so we can hackily ID it in the array decode
112
+ export function encodeUint8(val, writer) {
113
+ serializePackedInt(val, writer);
114
+ }
115
+ export const encodeUint16 = serializePackedInt;
116
+ export const encodeUint32 = serializePackedInt;
117
+ export const encodeUint64 = serializePackedInt;
118
+ export const encodeInt8 = serializePackedInt;
119
+ export const encodeInt16 = serializePackedInt;
120
+ export const encodeInt32 = serializePackedInt;
121
+ export const encodeInt64 = serializePackedInt;
122
+ export function encodeFloat32(val, w) {
123
+ w.writeFloat32(val);
124
+ }
125
+ export function encodeFloat64(val, w) {
126
+ w.writeFloat64(val);
127
+ }
128
+ export function encodeTime(val, w) {
129
+ const millis = val.getTime();
130
+ encodeInt64(millis, w);
131
+ }
132
+ export function serializePointerValue(val, w, vi) {
133
+ if (!vi.notNil) {
134
+ if (val === undefined) {
135
+ w.writeUint8(1);
136
+ return;
137
+ }
138
+ if (val === null) {
139
+ if (vi.subType instanceof VarInfoPointer) {
140
+ w.writeUint8(0);
141
+ serializePointerValue(undefined, w, vi.subType);
142
+ return;
143
+ }
144
+ w.writeUint8(1);
145
+ return;
146
+ }
147
+ w.writeUint8(0);
148
+ }
149
+ else {
150
+ if (val === undefined || val === null) {
151
+ throw new Error("serializePointerValue called with NotNil but value is undefined/null");
152
+ }
153
+ }
154
+ serializeValue(val, w, vi.subType);
155
+ }
156
+ export function serializeArrayValue(val, w, vi) {
157
+ if (!vi.notNil) {
158
+ if (val === undefined) {
159
+ w.writeUint8(1);
160
+ return;
161
+ }
162
+ w.writeUint8(0);
163
+ }
164
+ else {
165
+ if (val === undefined) {
166
+ throw new Error("encodeArray called with NotNil but value is undefined");
167
+ }
168
+ }
169
+ encodeUint32(val.length, w);
170
+ if (vi.elemType instanceof VarInfoPrimitive && vi.elemType.dataType === SerializationType.Uint8 && (val instanceof Uint8Array)) {
171
+ w.writeBytes(val);
172
+ return;
173
+ }
174
+ for (let i = 0; i < val.length; i++) {
175
+ serializeValue(val[i], w, vi.elemType);
176
+ }
177
+ }
178
+ export function serializeMapValue(val, w, vi) {
179
+ if (!vi.notNil) {
180
+ if (val === undefined) {
181
+ w.writeUint8(1);
182
+ return;
183
+ }
184
+ w.writeUint8(0);
185
+ }
186
+ else {
187
+ if (val === undefined) {
188
+ throw new Error("encodeMap called with NotNil but value is undefined");
189
+ }
190
+ }
191
+ encodeUint32(val.size, w);
192
+ for (const [k, v] of val.entries()) {
193
+ serializeValue(k, w, vi.keyType);
194
+ if (vi.elemType != undefined) {
195
+ serializeValue(v, w, vi.elemType);
196
+ }
197
+ }
198
+ }
199
+ export function serializeStructValue(v, w, vi) {
200
+ const vs = v;
201
+ if (!vs.serialize) {
202
+ throw new Error("serializeStructValue called with non-serializable value");
203
+ }
204
+ vs.serialize(w, vi);
205
+ }
206
+ export function serializeDynamicValue(v, w, _) {
207
+ const vi = varInfoFromObj(v);
208
+ w.writeBytes(vi.getSerializationData());
209
+ serializeValue(v, w, vi);
210
+ }
211
+ //# 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,101 @@
1
+ import BinaryReader from './BinaryReader.js';
2
+ import BinaryWriter from './BinaryWriter.js';
3
+ export declare enum SerializationType {
4
+ Invalid = 0,
5
+ Bool = 1,
6
+ String = 2,
7
+ Int8 = 3,
8
+ Int16 = 4,
9
+ Int32 = 5,
10
+ Int64 = 6,
11
+ Uint8 = 7,
12
+ Uint16 = 8,
13
+ Uint32 = 9,
14
+ Uint64 = 10,
15
+ Float32 = 11,
16
+ Float64 = 12,
17
+ Time = 13,
18
+ Pointer = 14,
19
+ Array = 15,
20
+ Map = 16,
21
+ Dynamic = 17,
22
+ Void = 18
23
+ }
24
+ export interface Serializable {
25
+ serialize(w: BinaryWriter, vi: VarInfoStruct | undefined): void;
26
+ }
27
+ export interface Deserializable<T = unknown> {
28
+ deserialized: (r: BinaryReader, vi: VarInfoStruct | undefined) => T;
29
+ }
30
+ export interface AppliablePartial<V> {
31
+ applyTo(por: V): (string | number)[][];
32
+ }
33
+ export interface AppliableOnTopPartial<V> {
34
+ applyOnTop(por: V): [V, (string | number)[][]];
35
+ }
36
+ export type MergeablePartial<V> = AppliablePartial<V> | AppliableOnTopPartial<V>;
37
+ export interface PartialFor<S extends object> {
38
+ applyTo(por: S): (string | number)[][];
39
+ }
40
+ export interface VarInfo {
41
+ getSerializationData(): Uint8Array;
42
+ fillGenerics(argTypes: Map<string, VarInfo>): VarInfo;
43
+ }
44
+ export declare class VarInfoDynamic implements VarInfo {
45
+ getSerializationData(): Uint8Array;
46
+ fillGenerics(_: Map<string, VarInfo>): VarInfo;
47
+ }
48
+ export declare class VarInfoPrimitive implements VarInfo {
49
+ dataType: SerializationType;
50
+ mappedType?: string | undefined;
51
+ constructor(dataType: SerializationType, mappedType?: string | undefined);
52
+ getSerializationData(): Uint8Array;
53
+ fillGenerics(_: Map<string, VarInfo>): VarInfo;
54
+ }
55
+ export declare class VarInfoPointer implements VarInfo {
56
+ notNil: boolean;
57
+ subType: VarInfo;
58
+ constructor(notNil: boolean, subType: VarInfo);
59
+ getSerializationData(): Uint8Array;
60
+ fillGenerics(gm: Map<string, VarInfo>): VarInfo;
61
+ }
62
+ export declare class VarInfoArray implements VarInfo {
63
+ notNil: boolean;
64
+ elemType: VarInfo;
65
+ constructor(notNil: boolean, elemType: VarInfo);
66
+ getSerializationData(): Uint8Array;
67
+ fillGenerics(gm: Map<string, VarInfo>): VarInfo;
68
+ }
69
+ export declare class VarInfoMap implements VarInfo {
70
+ notNil: boolean;
71
+ keyType: VarInfo;
72
+ elemType: VarInfo | undefined;
73
+ constructor(notNil: boolean, keyType: VarInfo, elemType: VarInfo | undefined);
74
+ getSerializationData(): Uint8Array;
75
+ fillGenerics(gm: Map<string, VarInfo>): VarInfo;
76
+ }
77
+ export declare class VarInfoStruct implements VarInfo {
78
+ name: string;
79
+ packageName: string;
80
+ deserializer?: Deserializable | undefined;
81
+ fieldList?: FieldInfo[] | undefined;
82
+ genericTypes?: VarInfo[] | undefined;
83
+ constructor(name: string, packageName: string, deserializer?: Deserializable | undefined, fieldList?: FieldInfo[] | undefined, genericTypes?: VarInfo[] | undefined);
84
+ getSerializationData(): Uint8Array;
85
+ fillGenerics(_: Map<string, VarInfo>): VarInfo;
86
+ }
87
+ export declare class VarInfoGenericParam implements VarInfo {
88
+ name: string;
89
+ constructor(name: string);
90
+ getSerializationData(): Uint8Array;
91
+ fillGenerics(gm: Map<string, VarInfo>): VarInfo;
92
+ }
93
+ export declare function varInfoFromReader(r: BinaryReader): VarInfo | undefined;
94
+ export declare function varInfoFromObj(obj: unknown): VarInfo;
95
+ export interface FieldInfo {
96
+ name: string;
97
+ fieldIdx: number;
98
+ fieldID?: number;
99
+ varInfo: VarInfo;
100
+ }
101
+ //# sourceMappingURL=SerializationTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SerializationTypes.d.ts","sourceRoot":"","sources":["../../../src/utils/SerializationTypes.ts"],"names":[],"mappings":"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"}