@colyseus/schema 2.0.28 → 2.0.30
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/build/cjs/index.js +29 -31
- package/build/cjs/index.js.map +1 -1
- package/build/esm/index.mjs +26 -43
- package/build/esm/index.mjs.map +1 -1
- package/build/umd/index.js +29 -31
- package/lib/index.js +2 -4
- package/lib/index.js.map +1 -1
- package/lib/types/ArraySchema.js +7 -0
- package/lib/types/ArraySchema.js.map +1 -1
- package/lib/utils.d.ts +0 -1
- package/lib/utils.js +1 -26
- package/lib/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +0 -3
- package/src/types/ArraySchema.ts +7 -0
- package/src/utils.ts +0 -25
- package/lib/Decoder.d.ts +0 -16
- package/lib/Decoder.js +0 -182
- package/lib/Decoder.js.map +0 -1
- package/lib/Encoder.d.ts +0 -13
- package/lib/Encoder.js +0 -79
- package/lib/Encoder.js.map +0 -1
- package/lib/Metadata.d.ts +0 -22
- package/lib/Metadata.js +0 -65
- package/lib/Metadata.js.map +0 -1
- package/lib/changes/ChangeSet.d.ts +0 -12
- package/lib/changes/ChangeSet.js +0 -35
- package/lib/changes/ChangeSet.js.map +0 -1
- package/lib/changes/DecodeOperation.d.ts +0 -15
- package/lib/changes/DecodeOperation.js +0 -186
- package/lib/changes/DecodeOperation.js.map +0 -1
- package/lib/changes/EncodeOperation.d.ts +0 -18
- package/lib/changes/EncodeOperation.js +0 -130
- package/lib/changes/EncodeOperation.js.map +0 -1
- package/lib/changes/consts.d.ts +0 -14
- package/lib/changes/consts.js +0 -18
- package/lib/changes/consts.js.map +0 -1
- package/lib/decoder/strategy/StateCallbacks.d.ts +0 -6
- package/lib/decoder/strategy/StateCallbacks.js +0 -20
- package/lib/decoder/strategy/StateCallbacks.js.map +0 -1
- package/lib/decoding/decode.d.ts +0 -48
- package/lib/decoding/decode.js +0 -267
- package/lib/decoding/decode.js.map +0 -1
- package/lib/encoding/assert.d.ts +0 -9
- package/lib/encoding/assert.js +0 -47
- package/lib/encoding/assert.js.map +0 -1
- package/lib/symbol.shim.d.ts +0 -6
- package/lib/symbol.shim.js +0 -4
- package/lib/symbol.shim.js.map +0 -1
- package/lib/usage.d.ts +0 -1
- package/lib/usage.js +0 -22
- package/lib/usage.js.map +0 -1
- package/lib/v3.d.ts +0 -1
- package/lib/v3.js +0 -313
- package/lib/v3.js.map +0 -1
package/lib/decoding/decode.js
DELETED
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2018 Endel Dreyer
|
|
4
|
-
* Copyright (c) 2014 Ion Drive Software Ltd.
|
|
5
|
-
*
|
|
6
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
8
|
-
* in the Software without restriction, including without limitation the rights
|
|
9
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
11
|
-
* furnished to do so, subject to the following conditions:
|
|
12
|
-
*
|
|
13
|
-
* The above copyright notice and this permission notice shall be included in all
|
|
14
|
-
* copies or substantial portions of the Software.
|
|
15
|
-
*
|
|
16
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
-
* SOFTWARE
|
|
23
|
-
*/
|
|
24
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.switchStructureCheck = exports.arrayCheck = exports.numberCheck = exports.number = exports.stringCheck = exports.string = exports.boolean = exports.readFloat64 = exports.readFloat32 = exports.uint64 = exports.int64 = exports.float64 = exports.float32 = exports.uint32 = exports.int32 = exports.uint16 = exports.int16 = exports.uint8 = exports.int8 = void 0;
|
|
26
|
-
const spec_1 = require("../spec");
|
|
27
|
-
function utf8Read(bytes, offset, length) {
|
|
28
|
-
var string = '', chr = 0;
|
|
29
|
-
for (var i = offset, end = offset + length; i < end; i++) {
|
|
30
|
-
var byte = bytes[i];
|
|
31
|
-
if ((byte & 0x80) === 0x00) {
|
|
32
|
-
string += String.fromCharCode(byte);
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
if ((byte & 0xe0) === 0xc0) {
|
|
36
|
-
string += String.fromCharCode(((byte & 0x1f) << 6) |
|
|
37
|
-
(bytes[++i] & 0x3f));
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
if ((byte & 0xf0) === 0xe0) {
|
|
41
|
-
string += String.fromCharCode(((byte & 0x0f) << 12) |
|
|
42
|
-
((bytes[++i] & 0x3f) << 6) |
|
|
43
|
-
((bytes[++i] & 0x3f) << 0));
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
if ((byte & 0xf8) === 0xf0) {
|
|
47
|
-
chr = ((byte & 0x07) << 18) |
|
|
48
|
-
((bytes[++i] & 0x3f) << 12) |
|
|
49
|
-
((bytes[++i] & 0x3f) << 6) |
|
|
50
|
-
((bytes[++i] & 0x3f) << 0);
|
|
51
|
-
if (chr >= 0x010000) { // surrogate pair
|
|
52
|
-
chr -= 0x010000;
|
|
53
|
-
string += String.fromCharCode((chr >>> 10) + 0xD800, (chr & 0x3FF) + 0xDC00);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
string += String.fromCharCode(chr);
|
|
57
|
-
}
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
console.error('Invalid byte ' + byte.toString(16));
|
|
61
|
-
// (do not throw error to avoid server/client from crashing due to hack attemps)
|
|
62
|
-
// throw new Error('Invalid byte ' + byte.toString(16));
|
|
63
|
-
}
|
|
64
|
-
return string;
|
|
65
|
-
}
|
|
66
|
-
function int8(bytes, it) {
|
|
67
|
-
return uint8(bytes, it) << 24 >> 24;
|
|
68
|
-
}
|
|
69
|
-
exports.int8 = int8;
|
|
70
|
-
;
|
|
71
|
-
function uint8(bytes, it) {
|
|
72
|
-
return bytes[it.offset++];
|
|
73
|
-
}
|
|
74
|
-
exports.uint8 = uint8;
|
|
75
|
-
;
|
|
76
|
-
function int16(bytes, it) {
|
|
77
|
-
return uint16(bytes, it) << 16 >> 16;
|
|
78
|
-
}
|
|
79
|
-
exports.int16 = int16;
|
|
80
|
-
;
|
|
81
|
-
function uint16(bytes, it) {
|
|
82
|
-
return bytes[it.offset++] | bytes[it.offset++] << 8;
|
|
83
|
-
}
|
|
84
|
-
exports.uint16 = uint16;
|
|
85
|
-
;
|
|
86
|
-
function int32(bytes, it) {
|
|
87
|
-
return bytes[it.offset++] | bytes[it.offset++] << 8 | bytes[it.offset++] << 16 | bytes[it.offset++] << 24;
|
|
88
|
-
}
|
|
89
|
-
exports.int32 = int32;
|
|
90
|
-
;
|
|
91
|
-
function uint32(bytes, it) {
|
|
92
|
-
return int32(bytes, it) >>> 0;
|
|
93
|
-
}
|
|
94
|
-
exports.uint32 = uint32;
|
|
95
|
-
;
|
|
96
|
-
function float32(bytes, it) {
|
|
97
|
-
return readFloat32(bytes, it);
|
|
98
|
-
}
|
|
99
|
-
exports.float32 = float32;
|
|
100
|
-
function float64(bytes, it) {
|
|
101
|
-
return readFloat64(bytes, it);
|
|
102
|
-
}
|
|
103
|
-
exports.float64 = float64;
|
|
104
|
-
function int64(bytes, it) {
|
|
105
|
-
const low = uint32(bytes, it);
|
|
106
|
-
const high = int32(bytes, it) * Math.pow(2, 32);
|
|
107
|
-
return high + low;
|
|
108
|
-
}
|
|
109
|
-
exports.int64 = int64;
|
|
110
|
-
;
|
|
111
|
-
function uint64(bytes, it) {
|
|
112
|
-
const low = uint32(bytes, it);
|
|
113
|
-
const high = uint32(bytes, it) * Math.pow(2, 32);
|
|
114
|
-
return high + low;
|
|
115
|
-
}
|
|
116
|
-
exports.uint64 = uint64;
|
|
117
|
-
;
|
|
118
|
-
// force little endian to facilitate decoding on multiple implementations
|
|
119
|
-
const _isLittleEndian = true; // new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;
|
|
120
|
-
const _int32 = new Int32Array(2);
|
|
121
|
-
const _float32 = new Float32Array(_int32.buffer);
|
|
122
|
-
const _float64 = new Float64Array(_int32.buffer);
|
|
123
|
-
function readFloat32(bytes, it) {
|
|
124
|
-
_int32[0] = int32(bytes, it);
|
|
125
|
-
return _float32[0];
|
|
126
|
-
}
|
|
127
|
-
exports.readFloat32 = readFloat32;
|
|
128
|
-
;
|
|
129
|
-
function readFloat64(bytes, it) {
|
|
130
|
-
_int32[_isLittleEndian ? 0 : 1] = int32(bytes, it);
|
|
131
|
-
_int32[_isLittleEndian ? 1 : 0] = int32(bytes, it);
|
|
132
|
-
return _float64[0];
|
|
133
|
-
}
|
|
134
|
-
exports.readFloat64 = readFloat64;
|
|
135
|
-
;
|
|
136
|
-
function boolean(bytes, it) {
|
|
137
|
-
return uint8(bytes, it) > 0;
|
|
138
|
-
}
|
|
139
|
-
exports.boolean = boolean;
|
|
140
|
-
;
|
|
141
|
-
function string(bytes, it) {
|
|
142
|
-
const prefix = bytes[it.offset++];
|
|
143
|
-
let length;
|
|
144
|
-
if (prefix < 0xc0) {
|
|
145
|
-
// fixstr
|
|
146
|
-
length = prefix & 0x1f;
|
|
147
|
-
}
|
|
148
|
-
else if (prefix === 0xd9) {
|
|
149
|
-
length = uint8(bytes, it);
|
|
150
|
-
}
|
|
151
|
-
else if (prefix === 0xda) {
|
|
152
|
-
length = uint16(bytes, it);
|
|
153
|
-
}
|
|
154
|
-
else if (prefix === 0xdb) {
|
|
155
|
-
length = uint32(bytes, it);
|
|
156
|
-
}
|
|
157
|
-
const value = utf8Read(bytes, it.offset, length);
|
|
158
|
-
it.offset += length;
|
|
159
|
-
return value;
|
|
160
|
-
}
|
|
161
|
-
exports.string = string;
|
|
162
|
-
function stringCheck(bytes, it) {
|
|
163
|
-
const prefix = bytes[it.offset];
|
|
164
|
-
return (
|
|
165
|
-
// fixstr
|
|
166
|
-
(prefix < 0xc0 && prefix > 0xa0) ||
|
|
167
|
-
// str 8
|
|
168
|
-
prefix === 0xd9 ||
|
|
169
|
-
// str 16
|
|
170
|
-
prefix === 0xda ||
|
|
171
|
-
// str 32
|
|
172
|
-
prefix === 0xdb);
|
|
173
|
-
}
|
|
174
|
-
exports.stringCheck = stringCheck;
|
|
175
|
-
function number(bytes, it) {
|
|
176
|
-
const prefix = bytes[it.offset++];
|
|
177
|
-
if (prefix < 0x80) {
|
|
178
|
-
// positive fixint
|
|
179
|
-
return prefix;
|
|
180
|
-
}
|
|
181
|
-
else if (prefix === 0xca) {
|
|
182
|
-
// float 32
|
|
183
|
-
return readFloat32(bytes, it);
|
|
184
|
-
}
|
|
185
|
-
else if (prefix === 0xcb) {
|
|
186
|
-
// float 64
|
|
187
|
-
return readFloat64(bytes, it);
|
|
188
|
-
}
|
|
189
|
-
else if (prefix === 0xcc) {
|
|
190
|
-
// uint 8
|
|
191
|
-
return uint8(bytes, it);
|
|
192
|
-
}
|
|
193
|
-
else if (prefix === 0xcd) {
|
|
194
|
-
// uint 16
|
|
195
|
-
return uint16(bytes, it);
|
|
196
|
-
}
|
|
197
|
-
else if (prefix === 0xce) {
|
|
198
|
-
// uint 32
|
|
199
|
-
return uint32(bytes, it);
|
|
200
|
-
}
|
|
201
|
-
else if (prefix === 0xcf) {
|
|
202
|
-
// uint 64
|
|
203
|
-
return uint64(bytes, it);
|
|
204
|
-
}
|
|
205
|
-
else if (prefix === 0xd0) {
|
|
206
|
-
// int 8
|
|
207
|
-
return int8(bytes, it);
|
|
208
|
-
}
|
|
209
|
-
else if (prefix === 0xd1) {
|
|
210
|
-
// int 16
|
|
211
|
-
return int16(bytes, it);
|
|
212
|
-
}
|
|
213
|
-
else if (prefix === 0xd2) {
|
|
214
|
-
// int 32
|
|
215
|
-
return int32(bytes, it);
|
|
216
|
-
}
|
|
217
|
-
else if (prefix === 0xd3) {
|
|
218
|
-
// int 64
|
|
219
|
-
return int64(bytes, it);
|
|
220
|
-
}
|
|
221
|
-
else if (prefix > 0xdf) {
|
|
222
|
-
// negative fixint
|
|
223
|
-
return (0xff - prefix + 1) * -1;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
exports.number = number;
|
|
227
|
-
;
|
|
228
|
-
function numberCheck(bytes, it) {
|
|
229
|
-
const prefix = bytes[it.offset];
|
|
230
|
-
// positive fixint - 0x00 - 0x7f
|
|
231
|
-
// float 32 - 0xca
|
|
232
|
-
// float 64 - 0xcb
|
|
233
|
-
// uint 8 - 0xcc
|
|
234
|
-
// uint 16 - 0xcd
|
|
235
|
-
// uint 32 - 0xce
|
|
236
|
-
// uint 64 - 0xcf
|
|
237
|
-
// int 8 - 0xd0
|
|
238
|
-
// int 16 - 0xd1
|
|
239
|
-
// int 32 - 0xd2
|
|
240
|
-
// int 64 - 0xd3
|
|
241
|
-
return (prefix < 0x80 ||
|
|
242
|
-
(prefix >= 0xca && prefix <= 0xd3));
|
|
243
|
-
}
|
|
244
|
-
exports.numberCheck = numberCheck;
|
|
245
|
-
function arrayCheck(bytes, it) {
|
|
246
|
-
return bytes[it.offset] < 0xa0;
|
|
247
|
-
// const prefix = bytes[it.offset] ;
|
|
248
|
-
// if (prefix < 0xa0) {
|
|
249
|
-
// return prefix;
|
|
250
|
-
// // array
|
|
251
|
-
// } else if (prefix === 0xdc) {
|
|
252
|
-
// it.offset += 2;
|
|
253
|
-
// } else if (0xdd) {
|
|
254
|
-
// it.offset += 4;
|
|
255
|
-
// }
|
|
256
|
-
// return prefix;
|
|
257
|
-
}
|
|
258
|
-
exports.arrayCheck = arrayCheck;
|
|
259
|
-
function switchStructureCheck(bytes, it) {
|
|
260
|
-
return (
|
|
261
|
-
// previous byte should be `SWITCH_TO_STRUCTURE`
|
|
262
|
-
bytes[it.offset - 1] === spec_1.SWITCH_TO_STRUCTURE &&
|
|
263
|
-
// next byte should be a number
|
|
264
|
-
(bytes[it.offset] < 0x80 || (bytes[it.offset] >= 0xca && bytes[it.offset] <= 0xd3)));
|
|
265
|
-
}
|
|
266
|
-
exports.switchStructureCheck = switchStructureCheck;
|
|
267
|
-
//# sourceMappingURL=decode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/decoding/decode.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) 2018 Endel Dreyer\n * Copyright (c) 2014 Ion Drive Software Ltd.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE\n */\n\nimport { SWITCH_TO_STRUCTURE } from \"../spec\";\n\n/**\n * msgpack implementation highly based on notepack.io\n * https://github.com/darrachequesne/notepack\n */\n\nexport interface Iterator { offset: number; }\n\nfunction utf8Read(bytes, offset, length) {\n var string = '', chr = 0;\n for (var i = offset, end = offset + length; i < end; i++) {\n var byte = bytes[i];\n if ((byte & 0x80) === 0x00) {\n string += String.fromCharCode(byte);\n continue;\n }\n if ((byte & 0xe0) === 0xc0) {\n string += String.fromCharCode(\n ((byte & 0x1f) << 6) |\n (bytes[++i] & 0x3f)\n );\n continue;\n }\n if ((byte & 0xf0) === 0xe0) {\n string += String.fromCharCode(\n ((byte & 0x0f) << 12) |\n ((bytes[++i] & 0x3f) << 6) |\n ((bytes[++i] & 0x3f) << 0)\n );\n continue;\n }\n if ((byte & 0xf8) === 0xf0) {\n chr = ((byte & 0x07) << 18) |\n ((bytes[++i] & 0x3f) << 12) |\n ((bytes[++i] & 0x3f) << 6) |\n ((bytes[++i] & 0x3f) << 0);\n if (chr >= 0x010000) { // surrogate pair\n chr -= 0x010000;\n string += String.fromCharCode((chr >>> 10) + 0xD800, (chr & 0x3FF) + 0xDC00);\n } else {\n string += String.fromCharCode(chr);\n }\n continue;\n }\n\n console.error('Invalid byte ' + byte.toString(16));\n // (do not throw error to avoid server/client from crashing due to hack attemps)\n // throw new Error('Invalid byte ' + byte.toString(16));\n }\n return string;\n}\n\nexport function int8 (bytes: number[], it: Iterator) {\n return uint8(bytes, it) << 24 >> 24;\n};\n\nexport function uint8 (bytes: number[], it: Iterator) {\n return bytes[it.offset++];\n};\n\nexport function int16 (bytes: number[], it: Iterator) {\n return uint16(bytes, it) << 16 >> 16;\n};\n\nexport function uint16 (bytes: number[], it: Iterator) {\n return bytes[it.offset++] | bytes[it.offset++] << 8;\n};\n\nexport function int32 (bytes: number[], it: Iterator) {\n return bytes[it.offset++] | bytes[it.offset++] << 8 | bytes[it.offset++] << 16 | bytes[it.offset++] << 24;\n};\n\nexport function uint32 (bytes: number[], it: Iterator) {\n return int32(bytes, it) >>> 0;\n};\n\nexport function float32(bytes: number[], it: Iterator) {\n return readFloat32(bytes, it);\n}\n\nexport function float64(bytes: number[], it: Iterator) {\n return readFloat64(bytes, it);\n}\n\nexport function int64(bytes: number[], it: Iterator) {\n const low = uint32(bytes, it);\n const high = int32(bytes, it) * Math.pow(2, 32);\n return high + low;\n};\n\nexport function uint64(bytes: number[], it: Iterator) {\n const low = uint32(bytes, it);\n const high = uint32(bytes, it) * Math.pow(2, 32);\n return high + low;\n};\n\n// force little endian to facilitate decoding on multiple implementations\nconst _isLittleEndian = true; // new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;\nconst _int32 = new Int32Array(2);\nconst _float32 = new Float32Array(_int32.buffer);\nconst _float64 = new Float64Array(_int32.buffer);\n\nexport function readFloat32 (bytes: number[], it: Iterator) {\n _int32[0] = int32(bytes, it);\n return _float32[0];\n};\n\nexport function readFloat64 (bytes: number[], it: Iterator) {\n _int32[_isLittleEndian ? 0 : 1] = int32(bytes, it);\n _int32[_isLittleEndian ? 1 : 0] = int32(bytes, it);\n return _float64[0];\n};\n\nexport function boolean (bytes: number[], it: Iterator) {\n return uint8(bytes, it) > 0;\n};\n\nexport function string (bytes, it: Iterator) {\n const prefix = bytes[it.offset++];\n let length: number;\n\n if (prefix < 0xc0) {\n // fixstr\n length = prefix & 0x1f;\n\n } else if (prefix === 0xd9) {\n length = uint8(bytes, it);\n\n } else if (prefix === 0xda) {\n length = uint16(bytes, it);\n\n } else if (prefix === 0xdb) {\n length = uint32(bytes, it);\n }\n\n const value = utf8Read(bytes, it.offset, length);\n it.offset += length;\n\n return value;\n}\n\nexport function stringCheck(bytes, it: Iterator) {\n const prefix = bytes[it.offset];\n return (\n // fixstr\n (prefix < 0xc0 && prefix > 0xa0) ||\n // str 8\n prefix === 0xd9 ||\n // str 16\n prefix === 0xda ||\n // str 32\n prefix === 0xdb\n );\n}\n\nexport function number (bytes, it: Iterator) {\n const prefix = bytes[it.offset++];\n\n if (prefix < 0x80) {\n // positive fixint\n return prefix;\n\n } else if (prefix === 0xca) {\n // float 32\n return readFloat32(bytes, it);\n\n } else if (prefix === 0xcb) {\n // float 64\n return readFloat64(bytes, it);\n\n } else if (prefix === 0xcc) {\n // uint 8\n return uint8(bytes, it);\n\n } else if (prefix === 0xcd) {\n // uint 16\n return uint16(bytes, it);\n\n } else if (prefix === 0xce) {\n // uint 32\n return uint32(bytes, it);\n\n } else if (prefix === 0xcf) {\n // uint 64\n return uint64(bytes, it);\n\n } else if (prefix === 0xd0) {\n // int 8\n return int8(bytes, it);\n\n } else if (prefix === 0xd1) {\n // int 16\n return int16(bytes, it);\n\n } else if (prefix === 0xd2) {\n // int 32\n return int32(bytes, it);\n\n } else if (prefix === 0xd3) {\n // int 64\n return int64(bytes, it);\n\n } else if (prefix > 0xdf) {\n // negative fixint\n return (0xff - prefix + 1) * -1\n }\n};\n\nexport function numberCheck (bytes, it: Iterator) {\n const prefix = bytes[it.offset];\n // positive fixint - 0x00 - 0x7f\n // float 32 - 0xca\n // float 64 - 0xcb\n // uint 8 - 0xcc\n // uint 16 - 0xcd\n // uint 32 - 0xce\n // uint 64 - 0xcf\n // int 8 - 0xd0\n // int 16 - 0xd1\n // int 32 - 0xd2\n // int 64 - 0xd3\n return (\n prefix < 0x80 ||\n (prefix >= 0xca && prefix <= 0xd3)\n );\n}\n\nexport function arrayCheck (bytes, it: Iterator) {\n return bytes[it.offset] < 0xa0;\n\n // const prefix = bytes[it.offset] ;\n\n // if (prefix < 0xa0) {\n // return prefix;\n\n // // array\n // } else if (prefix === 0xdc) {\n // it.offset += 2;\n\n // } else if (0xdd) {\n // it.offset += 4;\n // }\n\n // return prefix;\n}\n\nexport function switchStructureCheck(bytes, it: Iterator) {\n return (\n // previous byte should be `SWITCH_TO_STRUCTURE`\n bytes[it.offset - 1] === SWITCH_TO_STRUCTURE &&\n // next byte should be a number\n (bytes[it.offset] < 0x80 || (bytes[it.offset] >= 0xca && bytes[it.offset] <= 0xd3))\n );\n}"]}
|
package/lib/encoding/assert.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Schema } from "../Schema";
|
|
2
|
-
import { CollectionSchema } from "../types/CollectionSchema";
|
|
3
|
-
import { MapSchema } from "../types/MapSchema";
|
|
4
|
-
import { SetSchema } from "../types/SetSchema";
|
|
5
|
-
import { ArraySchema } from "../types/ArraySchema";
|
|
6
|
-
export declare class EncodeSchemaError extends Error {
|
|
7
|
-
}
|
|
8
|
-
export declare function assertType(value: any, type: string, klass: Schema, field: string | number): void;
|
|
9
|
-
export declare function assertInstanceType(value: Schema, type: typeof Schema | typeof ArraySchema | typeof MapSchema | typeof CollectionSchema | typeof SetSchema, klass: Schema, field: string | number): void;
|
package/lib/encoding/assert.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assertInstanceType = exports.assertType = exports.EncodeSchemaError = void 0;
|
|
4
|
-
class EncodeSchemaError extends Error {
|
|
5
|
-
}
|
|
6
|
-
exports.EncodeSchemaError = EncodeSchemaError;
|
|
7
|
-
function assertType(value, type, klass, field) {
|
|
8
|
-
let typeofTarget;
|
|
9
|
-
let allowNull = false;
|
|
10
|
-
switch (type) {
|
|
11
|
-
case "number":
|
|
12
|
-
case "int8":
|
|
13
|
-
case "uint8":
|
|
14
|
-
case "int16":
|
|
15
|
-
case "uint16":
|
|
16
|
-
case "int32":
|
|
17
|
-
case "uint32":
|
|
18
|
-
case "int64":
|
|
19
|
-
case "uint64":
|
|
20
|
-
case "float32":
|
|
21
|
-
case "float64":
|
|
22
|
-
typeofTarget = "number";
|
|
23
|
-
if (isNaN(value)) {
|
|
24
|
-
console.log(`trying to encode "NaN" in ${klass.constructor.name}#${field}`);
|
|
25
|
-
}
|
|
26
|
-
break;
|
|
27
|
-
case "string":
|
|
28
|
-
typeofTarget = "string";
|
|
29
|
-
allowNull = true;
|
|
30
|
-
break;
|
|
31
|
-
case "boolean":
|
|
32
|
-
// boolean is always encoded as true/false based on truthiness
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (typeof (value) !== typeofTarget && (!allowNull || (allowNull && value !== null))) {
|
|
36
|
-
let foundValue = `'${JSON.stringify(value)}'${(value && value.constructor && ` (${value.constructor.name})`) || ''}`;
|
|
37
|
-
throw new EncodeSchemaError(`a '${typeofTarget}' was expected, but ${foundValue} was provided in ${klass.constructor.name}#${field}`);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.assertType = assertType;
|
|
41
|
-
function assertInstanceType(value, type, klass, field) {
|
|
42
|
-
if (!(value instanceof type)) {
|
|
43
|
-
throw new EncodeSchemaError(`a '${type.name}' was expected, but '${value.constructor.name}' was provided in ${klass.constructor.name}#${field}`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
exports.assertInstanceType = assertInstanceType;
|
|
47
|
-
//# sourceMappingURL=assert.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/encoding/assert.ts"],"names":[],"mappings":";;;AAMA,MAAa,iBAAkB,SAAQ,KAAK;CAAG;AAA/C,8CAA+C;AAE/C,SAAgB,UAAU,CAAC,KAAU,EAAE,IAAY,EAAE,KAAa,EAAE,KAAsB;IACtF,IAAI,YAAoB,CAAC;IACzB,IAAI,SAAS,GAAY,KAAK,CAAC;IAE/B,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACV,YAAY,GAAG,QAAQ,CAAC;YACxB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,MAAM;QACV,KAAK,QAAQ;YACT,YAAY,GAAG,QAAQ,CAAC;YACxB,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM;QACV,KAAK,SAAS;YACV,8DAA8D;YAC9D,OAAO;IACf,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;QACnF,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QACrH,MAAM,IAAI,iBAAiB,CAAC,MAAM,YAAY,uBAAuB,UAAU,oBAAoB,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IAC1I,CAAC;AACL,CAAC;AAlCD,gCAkCC;AAED,SAAgB,kBAAkB,CAC9B,KAAa,EACb,IAIsB,EACtB,KAAa,EACb,KAAsB;IAEtB,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,IAAI,wBAAyB,KAAa,CAAC,WAAW,CAAC,IAAI,qBAAqB,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IAC9J,CAAC;AACL,CAAC;AAbD,gDAaC","sourcesContent":["import { Schema } from \"../Schema\";\nimport { CollectionSchema } from \"../types/CollectionSchema\";\nimport { MapSchema } from \"../types/MapSchema\";\nimport { SetSchema } from \"../types/SetSchema\";\nimport { ArraySchema } from \"../types/ArraySchema\";\n\nexport class EncodeSchemaError extends Error {}\n\nexport function assertType(value: any, type: string, klass: Schema, field: string | number) {\n let typeofTarget: string;\n let allowNull: boolean = false;\n\n switch (type) {\n case \"number\":\n case \"int8\":\n case \"uint8\":\n case \"int16\":\n case \"uint16\":\n case \"int32\":\n case \"uint32\":\n case \"int64\":\n case \"uint64\":\n case \"float32\":\n case \"float64\":\n typeofTarget = \"number\";\n if (isNaN(value)) {\n console.log(`trying to encode \"NaN\" in ${klass.constructor.name}#${field}`);\n }\n break;\n case \"string\":\n typeofTarget = \"string\";\n allowNull = true;\n break;\n case \"boolean\":\n // boolean is always encoded as true/false based on truthiness\n return;\n }\n\n if (typeof (value) !== typeofTarget && (!allowNull || (allowNull && value !== null))) {\n let foundValue = `'${JSON.stringify(value)}'${(value && value.constructor && ` (${value.constructor.name})`) || ''}`;\n throw new EncodeSchemaError(`a '${typeofTarget}' was expected, but ${foundValue} was provided in ${klass.constructor.name}#${field}`);\n }\n}\n\nexport function assertInstanceType(\n value: Schema,\n type: typeof Schema\n | typeof ArraySchema\n | typeof MapSchema\n | typeof CollectionSchema\n | typeof SetSchema,\n klass: Schema,\n field: string | number,\n) {\n if (!(value instanceof type)) {\n throw new EncodeSchemaError(`a '${type.name}' was expected, but '${(value as any).constructor.name}' was provided in ${klass.constructor.name}#${field}`);\n }\n}"]}
|
package/lib/symbol.shim.d.ts
DELETED
package/lib/symbol.shim.js
DELETED
package/lib/symbol.shim.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"symbol.shim.js","sourceRoot":"","sources":["../src/symbol.shim.ts"],"names":[],"mappings":";;AAWC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC","sourcesContent":["\n//\n// Must have Symbol.metadata defined for metadata support on decorators:\n// https://github.com/microsoft/TypeScript/issues/55453#issuecomment-1687496648\n//\nexport {};\ndeclare global {\n interface SymbolConstructor {\n readonly metadata: unique symbol;\n }\n}\n(Symbol as any).metadata ??= Symbol.for(\"Symbol.metadata\");"]}
|
package/lib/usage.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/usage.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const index_1 = require("./index");
|
|
13
|
-
class MySchema extends index_1.Schema {
|
|
14
|
-
}
|
|
15
|
-
__decorate([
|
|
16
|
-
(0, index_1.type)("string"),
|
|
17
|
-
__metadata("design:type", String)
|
|
18
|
-
], MySchema.prototype, "hello", void 0);
|
|
19
|
-
const state = new MySchema();
|
|
20
|
-
state.hello = "world";
|
|
21
|
-
console.log(state.encode());
|
|
22
|
-
//# sourceMappingURL=usage.js.map
|
package/lib/usage.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAuC;AAGvC,MAAM,QAAS,SAAQ,cAAM;CAE5B;AADmB;IAAf,IAAA,YAAI,EAAC,QAAQ,CAAC;;uCAAe;AAIlC,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;AAC7B,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;AAEtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC","sourcesContent":["import { Schema, type } from \"./index\";\n\n\nclass MySchema extends Schema {\n @type(\"string\") hello: string;\n}\n\n\nconst state = new MySchema();\nstate.hello = \"world\";\n\nconsole.log(state.encode());\n\n"]}
|
package/lib/v3.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./symbol.shim";
|