ronds-metadata 1.2.37 → 1.2.39
Sign up to get free protection for your applications and to get access to all the features.
- package/es/api/index.js +83 -131
- package/es/comps/DynamicPorts/comps/ContextMenu.js +3 -11
- package/es/comps/DynamicPorts/comps/DragNode.js +3 -8
- package/es/comps/DynamicPorts/comps/GraphHandler/index.js +4 -5
- package/es/comps/DynamicPorts/comps/NodeElement.js +1 -4
- package/es/comps/DynamicPorts/comps/contextMenu/EdgeContextMenu/index.js +3 -6
- package/es/comps/DynamicPorts/comps/contextMenu/GraphContextMenu/index.js +3 -7
- package/es/comps/DynamicPorts/comps/contextMenu/NodeContextMenu/index.js +18 -21
- package/es/comps/DynamicPorts/comps/shape/edge.js +5 -18
- package/es/comps/DynamicPorts/comps/shape/node.js +4 -17
- package/es/comps/DynamicPorts/constant/index.js +2 -5
- package/es/comps/DynamicPorts/graph.d.ts +2 -2
- package/es/comps/DynamicPorts/graph.js +228 -312
- package/es/comps/DynamicPorts/index.js +39 -58
- package/es/comps/DynamicPorts/utils.js +21 -25
- package/es/comps/Editable/DataCell/ButtonCell.js +4 -10
- package/es/comps/Editable/DataCell/ColorPicker.js +2 -7
- package/es/comps/Editable/DataCell/Input.js +5 -14
- package/es/comps/Editable/DataCell/Number.js +3 -10
- package/es/comps/Editable/DataCell/Select.js +7 -14
- package/es/comps/Editable/DataCell/Switch.js +2 -7
- package/es/comps/Editable/comps/EditableAction.js +8 -12
- package/es/comps/Editable/comps/EditableCell.js +16 -26
- package/es/comps/Editable/comps/EditableHeardCell.js +21 -34
- package/es/comps/Editable/comps/EditableRow.js +49 -59
- package/es/comps/Editable/comps/Texty.js +40 -73
- package/es/comps/Editable/index.js +67 -112
- package/es/comps/Editable/interface.d.ts +1 -1
- package/es/comps/Editable/utils.js +0 -1
- package/es/comps/FileView/index.js +65 -101
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Checkbox.js +8 -13
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Color.js +8 -4
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Date.js +6 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Input.js +8 -4
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/List.js +6 -11
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/MutiSelect.js +6 -10
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Number.js +6 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Obj.js +6 -11
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Password.js +8 -4
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Radio.js +8 -13
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Select.js +6 -10
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Switch.js +6 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Table.js +6 -11
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/TextArea.js +6 -3
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Upload.js +2 -5
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/HOC/index.js +86 -109
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/index.js +3 -7
- package/es/comps/FormGenerator/comps/Canvas/core/index.js +54 -91
- package/es/comps/FormGenerator/comps/Canvas/index.js +8 -15
- package/es/comps/FormGenerator/comps/Settings/index.js +16 -30
- package/es/comps/FormGenerator/comps/Sidebar/Elements.js +23 -22
- package/es/comps/FormGenerator/comps/Sidebar/index.js +6 -2
- package/es/comps/FormGenerator/index.js +3 -9
- package/es/comps/FormGenerator/interface.d.ts +1 -1
- package/es/comps/FormGenerator/settings/index.js +12 -11
- package/es/comps/FormGenerator/settings/ruleConfig.js +0 -1
- package/es/comps/FormGenerator/transformer.js +40 -105
- package/es/comps/Icons/index.js +4 -7
- package/es/comps/JsonEdit/index.js +25 -50
- package/es/comps/JsonView/index.js +7 -21
- package/es/comps/MdEdit/index.js +7 -10
- package/es/comps/MdEditPro/index.d.ts +10 -0
- package/es/comps/MdEditPro/index.js +22 -0
- package/es/comps/MdEditPro/index.less +74 -0
- package/es/comps/MdNavbar/index.js +17 -40
- package/es/comps/MdNavbar/utils.js +0 -4
- package/es/comps/MdView/index.js +7 -11
- package/es/comps/MetadataEdit/components/MetaFieldsEdit.js +129 -183
- package/es/comps/MetadataEdit/components/MetaPropsEdit.js +11 -27
- package/es/comps/MetadataEdit/hooks/index.js +3 -11
- package/es/comps/MetadataEdit/index.js +25 -58
- package/es/comps/MetadataEditV2/components/MetaFieldsEdit.js +17 -33
- package/es/comps/MetadataEditV2/components/MetaPropsEdit.js +15 -29
- package/es/comps/MetadataEditV2/hooks/index.js +5 -12
- package/es/comps/MetadataEditV2/index.js +30 -65
- package/es/comps/MetadataForm/DataCell/Array.js +12 -23
- package/es/comps/MetadataForm/DataCell/Input.js +23 -39
- package/es/comps/MetadataForm/DataCell/Number.js +10 -21
- package/es/comps/MetadataForm/DataCell/Ref.js +87 -121
- package/es/comps/MetadataForm/DataCell/Select.js +131 -226
- package/es/comps/MetadataForm/DataCell/Switch.js +7 -14
- package/es/comps/MetadataForm/DataCell/layout/TableArray.js +98 -169
- package/es/comps/MetadataForm/HOC/index.js +20 -37
- package/es/comps/MetadataForm/hooks/index.js +12 -38
- package/es/comps/MetadataForm/index.js +37 -72
- package/es/comps/MetadataForm/interface.d.ts +3 -3
- package/es/comps/MetadataForm/utils.d.ts +1 -0
- package/es/comps/MetadataForm/utils.js +12 -14
- package/es/comps/Split/index.js +40 -38
- package/es/config.js +0 -4
- package/es/framework/RxStore/demo/index.js +9 -10
- package/es/framework/RxStore/hooks.d.ts +9 -9
- package/es/framework/RxStore/hooks.js +10 -35
- package/es/framework/RxStore/store.d.ts +4 -4
- package/es/framework/RxStore/store.js +0 -10
- package/es/framework/fg/index.js +18 -80
- package/es/framework/fg/interface.d.ts +2 -2
- package/es/framework/fg/utils.js +0 -10
- package/es/framework/graph/index.d.ts +2 -2
- package/es/framework/graph/index.js +55 -110
- package/es/framework/hooks/use-async-memo.js +3 -7
- package/es/framework/hooks/use-sync-scroll.js +2 -15
- package/es/framework/http/cache.js +25 -32
- package/es/framework/http/cancel.js +1 -7
- package/es/framework/http/index.js +22 -82
- package/es/framework/http/msgpack.js +0 -4
- package/es/framework/http/msgpack5/index.js +2 -12
- package/es/framework/http/msgpack5/lib/codecs/DateCodec.js +1 -13
- package/es/framework/http/msgpack5/lib/decoder.js +10 -68
- package/es/framework/http/msgpack5/lib/encoder.js +8 -36
- package/es/framework/http/msgpack5/lib/helpers.js +3 -2
- package/es/framework/http/msgpack5/lib/streams.js +0 -18
- package/es/framework/libs/jquery.min.js +1009 -1696
- package/es/framework/locale/dil8/di18n.js +4 -15
- package/es/framework/locale/dil8/translate.js +0 -14
- package/es/framework/locale/dil8/util.js +0 -3
- package/es/framework/locale/index.js +2 -3
- package/es/framework/metadata/MetadataService.js +39 -78
- package/es/framework/metadata/index.js +4 -70
- package/es/framework/rxjs-hooks/useMemoSubject.js +0 -2
- package/es/framework/rxjs-hooks/useObservable.js +2 -4
- package/es/framework/rxjs-hooks/useObservableState.js +8 -14
- package/es/index.d.ts +1 -0
- package/es/index.js +2 -1
- package/es/utils.js +58 -97
- package/package.json +4 -2
- package/es/comps/MdEdit/plugin/EditContent.d.ts +0 -5
- package/es/comps/MdEdit/plugin/EditContent.js +0 -34
- package/es/comps/MdEdit/plugin/Mark.d.ts +0 -7
- package/es/comps/MdEdit/plugin/Mark.js +0 -60
- package/es/framework/libs/iconfont/iconfont.json +0 -401
@@ -1,10 +1,8 @@
|
|
1
1
|
var type = -1;
|
2
|
-
|
3
2
|
function encode(dt) {
|
4
3
|
var millis = dt * 1;
|
5
4
|
var seconds = Math.floor(millis / 1000);
|
6
5
|
var nanos = (millis - seconds * 1000) * 1e6;
|
7
|
-
|
8
6
|
if (nanos || seconds > 0xffffffff) {
|
9
7
|
// Timestamp64
|
10
8
|
var encoded = Buffer.allocUnsafe(9);
|
@@ -19,30 +17,23 @@ function encode(dt) {
|
|
19
17
|
} else {
|
20
18
|
// Timestamp32
|
21
19
|
var _encoded = Buffer.allocUnsafe(5);
|
22
|
-
|
23
20
|
_encoded[0] = -1;
|
24
|
-
|
25
21
|
_encoded.writeUInt32BE(Math.floor(millis / 1000), 1);
|
26
|
-
|
27
22
|
return _encoded;
|
28
23
|
}
|
29
24
|
}
|
30
|
-
|
31
25
|
function check(obj) {
|
32
26
|
return typeof obj.getDate === 'function';
|
33
27
|
}
|
34
|
-
|
35
28
|
function decode(buf) {
|
36
29
|
// console.log(buf, 'msgpack');
|
37
30
|
var seconds;
|
38
31
|
var nanoseconds = 0;
|
39
|
-
|
40
32
|
switch (buf.length) {
|
41
33
|
case 4:
|
42
34
|
// timestamp 32 stores the number of seconds that have elapsed since 1970-01-01 00:00:00 UTC in an 32-bit unsigned integer
|
43
35
|
seconds = buf.readUInt32BE(0);
|
44
36
|
break;
|
45
|
-
|
46
37
|
case 8:
|
47
38
|
// Timestamp 64 stores the number of seconds and nanoseconds that have elapsed
|
48
39
|
// since 1970-01-01 00:00:00 UTC in 32-bit unsigned integers, split 30/34 bits
|
@@ -50,19 +41,16 @@ function decode(buf) {
|
|
50
41
|
var lower = buf.readUInt32BE(4);
|
51
42
|
nanoseconds = upper / 4;
|
52
43
|
seconds = (upper & 0x03) * Math.pow(2, 32) + lower; // If we use bitwise operators, we get truncated to 32bits
|
53
|
-
|
54
44
|
break;
|
55
|
-
// 修改了下这里 不让他报错
|
56
45
|
|
46
|
+
// 修改了下这里 不让他报错
|
57
47
|
case 12:
|
58
48
|
// throw new Error('timestamp 96 is not yet implemented');
|
59
49
|
return undefined;
|
60
50
|
}
|
61
|
-
|
62
51
|
var millis = seconds * 1000 + Math.round(nanoseconds / 1e6);
|
63
52
|
return new Date(millis);
|
64
53
|
}
|
65
|
-
|
66
54
|
module.exports = {
|
67
55
|
check: check,
|
68
56
|
type: type,
|
@@ -32,27 +32,22 @@ var SIZES = {
|
|
32
32
|
0xdc: 3,
|
33
33
|
0xdd: 5
|
34
34
|
};
|
35
|
-
|
36
35
|
function isValidDataSize(dataLength, bufLength, headerLength) {
|
37
36
|
return bufLength >= headerLength + dataLength;
|
38
37
|
}
|
39
|
-
|
40
38
|
export function buildDecode(decodingTypes) {
|
41
39
|
return decode;
|
42
|
-
|
43
40
|
function decode(buf) {
|
44
41
|
// TODO: Make it into ensureBl handler ?
|
45
42
|
if (!(buf instanceof bl)) {
|
46
43
|
buf = bl().append(buf);
|
47
44
|
}
|
48
|
-
|
49
|
-
|
50
|
-
|
45
|
+
var result = tryDecode(buf, 0);
|
46
|
+
// Handle worst case ASAP and keep code flat
|
51
47
|
if (!result) throw new IncompleteBufferError();
|
52
48
|
buf.consume(result[1]);
|
53
49
|
return result[0];
|
54
50
|
}
|
55
|
-
|
56
51
|
function tryDecode(buf, initialOffset) {
|
57
52
|
if (buf.length <= initialOffset) return null;
|
58
53
|
var bufLength = buf.length - initialOffset;
|
@@ -61,206 +56,155 @@ export function buildDecode(decodingTypes) {
|
|
61
56
|
offset += 1;
|
62
57
|
var size = SIZES[first] || -1;
|
63
58
|
if (bufLength < size) return null;
|
64
|
-
|
65
59
|
var inRange = function inRange(start, end) {
|
66
60
|
return first >= start && first <= end;
|
67
61
|
};
|
68
|
-
|
69
62
|
if (first < 0x80) return [first, 1]; // 7-bits positive ints
|
70
|
-
|
71
63
|
if ((first & 0xf0) === 0x80) {
|
72
64
|
var length = first & 0x0f;
|
73
|
-
var headerSize = offset - initialOffset;
|
74
|
-
|
65
|
+
var headerSize = offset - initialOffset;
|
66
|
+
// we have an array with less than 15 elements
|
75
67
|
return decodeMap(buf, offset, length, headerSize);
|
76
68
|
}
|
77
|
-
|
78
69
|
if ((first & 0xf0) === 0x90) {
|
79
70
|
var _length = first & 0x0f;
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
71
|
+
var _headerSize = offset - initialOffset;
|
72
|
+
// we have a map with less than 15 elements
|
84
73
|
return decodeArray(buf, offset, _length, _headerSize);
|
85
74
|
}
|
86
|
-
|
87
75
|
if ((first & 0xe0) === 0xa0) {
|
88
76
|
// fixstr up to 31 bytes
|
89
77
|
var _length2 = first & 0x1f;
|
90
|
-
|
91
78
|
if (!isValidDataSize(_length2, bufLength, 1)) return null;
|
92
79
|
var result = buf.toString('utf8', offset, offset + _length2);
|
93
80
|
return [result, _length2 + 1];
|
94
81
|
}
|
95
|
-
|
96
82
|
if (inRange(0xc0, 0xc3)) return decodeConstants(first);
|
97
|
-
|
98
83
|
if (inRange(0xc4, 0xc6)) {
|
99
84
|
var _length3 = buf.readUIntBE(offset, size - 1);
|
100
|
-
|
101
85
|
offset += size - 1;
|
102
86
|
if (!isValidDataSize(_length3, bufLength, size)) return null;
|
103
|
-
|
104
87
|
var _result = buf.slice(offset, offset + _length3);
|
105
|
-
|
106
88
|
return [_result, size + _length3];
|
107
89
|
}
|
108
|
-
|
109
90
|
if (inRange(0xc7, 0xc9)) {
|
110
91
|
var _length4 = buf.readUIntBE(offset, size - 2);
|
111
|
-
|
112
92
|
offset += size - 2;
|
113
|
-
|
114
93
|
var _type = buf.readInt8(offset);
|
115
|
-
|
116
94
|
offset += 1;
|
117
95
|
if (!isValidDataSize(_length4, bufLength, size)) return null;
|
118
96
|
return decodeExt(buf, offset, _type, _length4, size);
|
119
97
|
}
|
120
|
-
|
121
98
|
if (inRange(0xca, 0xcb)) return decodeFloat(buf, offset, size - 1);
|
122
99
|
if (inRange(0xcc, 0xcf)) return decodeUnsignedInt(buf, offset, size - 1);
|
123
100
|
if (inRange(0xd0, 0xd3)) return decodeSigned(buf, offset, size - 1);
|
124
|
-
|
125
101
|
if (inRange(0xd4, 0xd8)) {
|
126
102
|
var type = buf.readInt8(offset); // Signed
|
127
|
-
|
128
103
|
offset += 1;
|
129
104
|
return decodeExt(buf, offset, type, size - 2, 2);
|
130
105
|
}
|
131
|
-
|
132
106
|
if (inRange(0xd9, 0xdb)) {
|
133
107
|
var _length5 = buf.readUIntBE(offset, size - 1);
|
134
|
-
|
135
108
|
offset += size - 1;
|
136
109
|
if (!isValidDataSize(_length5, bufLength, size)) return null;
|
137
|
-
|
138
110
|
var _result2 = buf.toString('utf8', offset, offset + _length5);
|
139
|
-
|
140
111
|
return [_result2, size + _length5];
|
141
112
|
}
|
142
|
-
|
143
113
|
if (inRange(0xdc, 0xdd)) {
|
144
114
|
var _length6 = buf.readUIntBE(offset, size - 1);
|
145
|
-
|
146
115
|
offset += size - 1;
|
147
116
|
return decodeArray(buf, offset, _length6, size);
|
148
117
|
}
|
149
|
-
|
150
118
|
if (inRange(0xde, 0xdf)) {
|
151
119
|
var _length7;
|
152
|
-
|
153
120
|
switch (first) {
|
154
121
|
case 0xde:
|
155
122
|
// maps up to 2^16 elements - 2 bytes
|
156
123
|
_length7 = buf.readUInt16BE(offset);
|
157
|
-
offset += 2;
|
158
|
-
|
124
|
+
offset += 2;
|
125
|
+
// console.log(offset - initialOffset)
|
159
126
|
return decodeMap(buf, offset, _length7, 3);
|
160
|
-
|
161
127
|
case 0xdf:
|
162
128
|
_length7 = buf.readUInt32BE(offset);
|
163
129
|
offset += 4;
|
164
130
|
return decodeMap(buf, offset, _length7, 5);
|
165
131
|
}
|
166
132
|
}
|
167
|
-
|
168
133
|
if (first >= 0xe0) return [first - 0x100, 1]; // 5 bits negative ints
|
169
134
|
|
170
135
|
throw new Error('not implemented yet');
|
171
136
|
}
|
172
|
-
|
173
137
|
function decodeArray(buf, initialOffset, length, headerLength) {
|
174
138
|
var offset = initialOffset;
|
175
139
|
var result = [];
|
176
140
|
var i = 0;
|
177
|
-
|
178
141
|
while (i++ < length) {
|
179
142
|
var decodeResult = tryDecode(buf, offset);
|
180
143
|
if (!decodeResult) return null;
|
181
144
|
result.push(decodeResult[0]);
|
182
145
|
offset += decodeResult[1];
|
183
146
|
}
|
184
|
-
|
185
147
|
return [result, headerLength + offset - initialOffset];
|
186
148
|
}
|
187
|
-
|
188
149
|
function decodeMap(buf, offset, length, headerLength) {
|
189
150
|
var _temp = decodeArray(buf, offset, 2 * length, headerLength);
|
190
|
-
|
191
151
|
if (!_temp) return null;
|
192
|
-
|
193
152
|
var _temp2 = _slicedToArray(_temp, 2),
|
194
|
-
|
195
|
-
|
196
|
-
|
153
|
+
result = _temp2[0],
|
154
|
+
consumedBytes = _temp2[1];
|
197
155
|
var isPlainObject = true;
|
198
|
-
|
199
156
|
for (var i = 0; i < 2 * length; i += 2) {
|
200
157
|
if (typeof result[i] !== 'string') {
|
201
158
|
isPlainObject = false;
|
202
159
|
break;
|
203
160
|
}
|
204
161
|
}
|
205
|
-
|
206
162
|
if (isPlainObject) {
|
207
163
|
var object = {};
|
208
|
-
|
209
164
|
for (var _i = 0; _i < 2 * length; _i += 2) {
|
210
165
|
var key = result[_i];
|
211
166
|
var val = result[_i + 1];
|
212
167
|
object[key] = val;
|
213
168
|
}
|
214
|
-
|
215
169
|
return [object, consumedBytes];
|
216
170
|
} else {
|
217
171
|
var mapping = new Map();
|
218
|
-
|
219
172
|
for (var _i2 = 0; _i2 < 2 * length; _i2 += 2) {
|
220
173
|
var _key = result[_i2];
|
221
174
|
var _val = result[_i2 + 1];
|
222
175
|
mapping.set(_key, _val);
|
223
176
|
}
|
224
|
-
|
225
177
|
return [mapping, consumedBytes];
|
226
178
|
}
|
227
179
|
}
|
228
|
-
|
229
180
|
function readInt64BE(buf, offset) {
|
230
181
|
var negate = (buf[offset] & 0x80) == 0x80; // eslint-disable-line
|
231
182
|
|
232
183
|
if (negate) {
|
233
184
|
var carry = 1;
|
234
|
-
|
235
185
|
for (var i = offset + 7; i >= offset; i--) {
|
236
186
|
var v = (buf[i] ^ 0xff) + carry;
|
237
187
|
buf[i] = v & 0xff;
|
238
188
|
carry = v >> 8;
|
239
189
|
}
|
240
190
|
}
|
241
|
-
|
242
191
|
var hi = buf.readUInt32BE(offset + 0);
|
243
192
|
var lo = buf.readUInt32BE(offset + 4);
|
244
193
|
return (hi * 4294967296 + lo) * (negate ? -1 : +1);
|
245
194
|
}
|
246
|
-
|
247
195
|
function decodeUnsignedInt(buf, offset, size) {
|
248
196
|
var maxOffset = offset + size;
|
249
197
|
var result = 0;
|
250
|
-
|
251
198
|
while (offset < maxOffset) {
|
252
199
|
result += buf.readUInt8(offset++) * Math.pow(256, maxOffset - offset);
|
253
200
|
}
|
254
|
-
|
255
201
|
return [result, size + 1];
|
256
202
|
}
|
257
|
-
|
258
203
|
function decodeConstants(first) {
|
259
204
|
if (first === 0xc0) return [null, 1];
|
260
205
|
if (first === 0xc2) return [false, 1];
|
261
206
|
if (first === 0xc3) return [true, 1];
|
262
207
|
}
|
263
|
-
|
264
208
|
function decodeSigned(buf, offset, size) {
|
265
209
|
var result;
|
266
210
|
if (size === 1) result = buf.readInt8(offset);
|
@@ -269,14 +213,12 @@ export function buildDecode(decodingTypes) {
|
|
269
213
|
if (size === 8) result = readInt64BE(buf.slice(offset, offset + 8), 0);
|
270
214
|
return [result, size + 1];
|
271
215
|
}
|
272
|
-
|
273
216
|
function decodeFloat(buf, offset, size) {
|
274
217
|
var result;
|
275
218
|
if (size === 4) result = buf.readFloatBE(offset);
|
276
219
|
if (size === 8) result = buf.readDoubleBE(offset);
|
277
220
|
return [result, size + 1];
|
278
221
|
}
|
279
|
-
|
280
222
|
function decodeExt(buf, offset, type, size, headerSize) {
|
281
223
|
var toDecode = buf.slice(offset, offset + size);
|
282
224
|
var decode = decodingTypes.get(type);
|
@@ -14,27 +14,25 @@ export function buildEncode(encodingTypes, options) {
|
|
14
14
|
if (obj === false) return Buffer.from([0xc2]);
|
15
15
|
if (obj instanceof Map) return encodeMap(obj, options, encode);
|
16
16
|
if (typeof obj === 'string') return encodeString(obj, options);
|
17
|
-
|
18
17
|
if (obj && (obj.readUInt32LE || obj instanceof Uint8Array)) {
|
19
18
|
if (obj instanceof Uint8Array) {
|
20
19
|
obj = Buffer.from(obj);
|
21
|
-
}
|
20
|
+
}
|
21
|
+
// weird hack to support Buffer
|
22
22
|
// and Buffer-like objects
|
23
|
-
|
24
|
-
|
25
23
|
return bl([getBufferHeader(obj.length), obj]);
|
26
24
|
}
|
27
|
-
|
28
25
|
if (Array.isArray(obj)) return bl().append([getHeader(obj.length, 0x90, 0xdc)].concat(_toConsumableArray(obj.map(encode))));
|
29
26
|
if (_typeof(obj) === 'object') return encodeExt(obj, encodingTypes) || encodeObject(obj, options, encode);
|
30
27
|
if (typeof obj === 'number') return encodeNumber(obj, options);
|
31
28
|
throw new Error('not implemented yet');
|
32
29
|
}
|
33
|
-
|
34
30
|
return function (obj) {
|
35
31
|
return encode(obj).slice();
|
36
32
|
};
|
37
|
-
}
|
33
|
+
}
|
34
|
+
|
35
|
+
//
|
38
36
|
//
|
39
37
|
// === MENTAL SEPARATOR ===
|
40
38
|
//
|
@@ -42,30 +40,24 @@ export function buildEncode(encodingTypes, options) {
|
|
42
40
|
|
43
41
|
function encodeMap(map, options, encode) {
|
44
42
|
var acc = [getHeader(map.size, 0x80, 0xde)];
|
45
|
-
|
46
43
|
var keys = _toConsumableArray(map.keys());
|
47
|
-
|
48
44
|
if (keys.every(function (item) {
|
49
45
|
return typeof item === 'string';
|
50
46
|
})) {
|
51
47
|
console.warn('Map with string only keys will be deserialized as an object!');
|
52
48
|
}
|
53
|
-
|
54
49
|
keys.forEach(function (key) {
|
55
50
|
acc.push(encode(key), encode(map.get(key)));
|
56
51
|
});
|
57
52
|
return bl(acc);
|
58
53
|
}
|
59
|
-
|
60
54
|
function encodeObject(obj, options, encode) {
|
61
55
|
var keys = [];
|
62
|
-
|
63
56
|
for (var key in obj) {
|
64
57
|
if (obj.hasOwnProperty(key) && obj[key] !== undefined && typeof obj[key] !== 'function') {
|
65
58
|
keys.push(key);
|
66
59
|
}
|
67
60
|
}
|
68
|
-
|
69
61
|
var acc = [getHeader(keys.length, 0x80, 0xde)];
|
70
62
|
if (options.sortKeys) keys.sort();
|
71
63
|
keys.forEach(function (key) {
|
@@ -73,23 +65,22 @@ function encodeObject(obj, options, encode) {
|
|
73
65
|
});
|
74
66
|
return bl(acc);
|
75
67
|
}
|
76
|
-
|
77
68
|
function write64BitUint(buf, offset, num) {
|
78
69
|
var lo = num % 4294967296;
|
79
70
|
var hi = Math.floor(num / 4294967296);
|
80
71
|
buf.writeUInt32BE(hi, offset + 0);
|
81
72
|
buf.writeUInt32BE(lo, offset + 4);
|
82
73
|
}
|
83
|
-
|
84
74
|
function write64BitInt(buf, offset, num) {
|
85
75
|
var negate = num < 0;
|
86
76
|
num = Math.abs(num);
|
87
77
|
write64BitUint(buf, offset, num);
|
88
78
|
if (negate) negate64BitInt(buf, offset);
|
89
79
|
}
|
90
|
-
|
91
80
|
function negate64BitInt(buf, offset) {
|
92
|
-
var i = offset + 8;
|
81
|
+
var i = offset + 8;
|
82
|
+
|
83
|
+
// Optimization based on the fact that:
|
93
84
|
// buf[i] == 0x00 => (buf[i] ^ 0xff) + 1 = 0x100 = 0x00 + 1 curry
|
94
85
|
|
95
86
|
while (i-- > offset) {
|
@@ -97,17 +88,13 @@ function negate64BitInt(buf, offset) {
|
|
97
88
|
buf[i] = (buf[i] ^ 0xff) + 1;
|
98
89
|
break;
|
99
90
|
}
|
100
|
-
|
101
91
|
while (i-- > offset) {
|
102
92
|
buf[i] = buf[i] ^ 0xff;
|
103
93
|
}
|
104
94
|
}
|
105
|
-
|
106
95
|
var fround = Math.fround;
|
107
|
-
|
108
96
|
function encodeFloat(obj, forceFloat64) {
|
109
97
|
var buf;
|
110
|
-
|
111
98
|
if (forceFloat64 || !fround || fround(obj) !== obj) {
|
112
99
|
buf = Buffer.allocUnsafe(9);
|
113
100
|
buf[0] = 0xcb;
|
@@ -117,10 +104,8 @@ function encodeFloat(obj, forceFloat64) {
|
|
117
104
|
buf[0] = 0xca;
|
118
105
|
buf.writeFloatBE(obj, 1);
|
119
106
|
}
|
120
|
-
|
121
107
|
return buf;
|
122
108
|
}
|
123
|
-
|
124
109
|
function encodeExt(obj, encodingTypes) {
|
125
110
|
var codec = encodingTypes.find(function (codec) {
|
126
111
|
return codec.check(obj);
|
@@ -130,7 +115,6 @@ function encodeExt(obj, encodingTypes) {
|
|
130
115
|
if (!encoded) return null;
|
131
116
|
return bl([getExtHeader(encoded.length - 1), encoded]);
|
132
117
|
}
|
133
|
-
|
134
118
|
function getExtHeader(length) {
|
135
119
|
if (length === 1) return Buffer.from([0xd4]);
|
136
120
|
if (length === 2) return Buffer.from([0xd5]);
|
@@ -141,7 +125,6 @@ function getExtHeader(length) {
|
|
141
125
|
if (length < 0x10000) return Buffer.from([0xc8, length >> 8, length & 0x00ff]);
|
142
126
|
return Buffer.from([0xc9, length >> 24, length >> 16 & 0x000000ff, length >> 8 & 0x000000ff, length & 0x000000ff]);
|
143
127
|
}
|
144
|
-
|
145
128
|
function getHeader(length, tag1, tag2) {
|
146
129
|
if (length < 16) return Buffer.from([tag1 | length]);
|
147
130
|
var size = length < 0x10000 ? 2 : 4;
|
@@ -150,15 +133,12 @@ function getHeader(length, tag1, tag2) {
|
|
150
133
|
buf.writeUIntBE(length, 1, size);
|
151
134
|
return buf;
|
152
135
|
}
|
153
|
-
|
154
136
|
function encodeString(obj, options) {
|
155
137
|
var len = Buffer.byteLength(obj);
|
156
138
|
var buf;
|
157
|
-
|
158
139
|
if (len < 32) {
|
159
140
|
buf = Buffer.allocUnsafe(1 + len);
|
160
141
|
buf[0] = 0xa0 | len;
|
161
|
-
|
162
142
|
if (len > 0) {
|
163
143
|
buf.write(obj, 1);
|
164
144
|
}
|
@@ -179,13 +159,10 @@ function encodeString(obj, options) {
|
|
179
159
|
buf.writeUInt32BE(len, 1);
|
180
160
|
buf.write(obj, 5);
|
181
161
|
}
|
182
|
-
|
183
162
|
return buf;
|
184
163
|
}
|
185
|
-
|
186
164
|
function getBufferHeader(length) {
|
187
165
|
var header;
|
188
|
-
|
189
166
|
if (length <= 0xff) {
|
190
167
|
header = Buffer.allocUnsafe(2);
|
191
168
|
header[0] = 0xc4;
|
@@ -199,18 +176,14 @@ function getBufferHeader(length) {
|
|
199
176
|
header[0] = 0xc6;
|
200
177
|
header.writeUInt32BE(length, 1);
|
201
178
|
}
|
202
|
-
|
203
179
|
return header;
|
204
180
|
}
|
205
|
-
|
206
181
|
function encodeNumber(obj, options) {
|
207
182
|
var buf;
|
208
183
|
if (isFloat(obj)) return encodeFloat(obj, options.forceFloat64);
|
209
|
-
|
210
184
|
if (Math.abs(obj) > 9007199254740991) {
|
211
185
|
return encodeFloat(obj, true);
|
212
186
|
}
|
213
|
-
|
214
187
|
if (obj >= 0) {
|
215
188
|
if (obj < 128) {
|
216
189
|
return Buffer.from([obj]);
|
@@ -247,6 +220,5 @@ function encodeNumber(obj, options) {
|
|
247
220
|
write64BitInt(buf, 1, obj);
|
248
221
|
}
|
249
222
|
}
|
250
|
-
|
251
223
|
return buf;
|
252
224
|
}
|
@@ -1,10 +1,11 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
-
import util from 'util';
|
3
|
+
import util from 'util';
|
4
|
+
|
5
|
+
// exports.IncompleteBufferError = IncompleteBufferError;
|
4
6
|
|
5
7
|
export function IncompleteBufferError(message) {
|
6
8
|
Error.call(this); // super constructor
|
7
|
-
|
8
9
|
if (Error.captureStackTrace) {
|
9
10
|
Error.captureStackTrace(this, this.constructor); // super helper method to include stack trace in error object
|
10
11
|
}
|
@@ -3,7 +3,6 @@
|
|
3
3
|
import { Transform } from 'readable-stream';
|
4
4
|
import inherits from 'inherits';
|
5
5
|
import bl from 'bl';
|
6
|
-
|
7
6
|
function Base(opts) {
|
8
7
|
opts = opts || {};
|
9
8
|
opts.objectMode = true;
|
@@ -11,64 +10,50 @@ function Base(opts) {
|
|
11
10
|
Transform.call(this, opts);
|
12
11
|
this._msgpack = opts.msgpack;
|
13
12
|
}
|
14
|
-
|
15
13
|
inherits(Base, Transform);
|
16
|
-
|
17
14
|
function Encoder(opts) {
|
18
15
|
if (!(this instanceof Encoder)) {
|
19
16
|
opts = opts || {};
|
20
17
|
opts.msgpack = this;
|
21
18
|
return new Encoder(opts);
|
22
19
|
}
|
23
|
-
|
24
20
|
Base.call(this, opts);
|
25
21
|
this._wrap = 'wrap' in opts && opts.wrap;
|
26
22
|
}
|
27
|
-
|
28
23
|
inherits(Encoder, Base);
|
29
|
-
|
30
24
|
Encoder.prototype._transform = function (obj, enc, done) {
|
31
25
|
var buf = null;
|
32
|
-
|
33
26
|
try {
|
34
27
|
buf = this._msgpack.encode(this._wrap ? obj.value : obj).slice(0);
|
35
28
|
} catch (err) {
|
36
29
|
this.emit('error', err);
|
37
30
|
return done();
|
38
31
|
}
|
39
|
-
|
40
32
|
this.push(buf);
|
41
33
|
done();
|
42
34
|
};
|
43
|
-
|
44
35
|
function Decoder(opts) {
|
45
36
|
if (!(this instanceof Decoder)) {
|
46
37
|
opts = opts || {};
|
47
38
|
opts.msgpack = this;
|
48
39
|
return new Decoder(opts);
|
49
40
|
}
|
50
|
-
|
51
41
|
Base.call(this, opts);
|
52
42
|
this._chunks = bl();
|
53
43
|
this._wrap = 'wrap' in opts && opts.wrap;
|
54
44
|
}
|
55
|
-
|
56
45
|
inherits(Decoder, Base);
|
57
|
-
|
58
46
|
Decoder.prototype._transform = function (buf, enc, done) {
|
59
47
|
if (buf) {
|
60
48
|
this._chunks.append(buf);
|
61
49
|
}
|
62
|
-
|
63
50
|
try {
|
64
51
|
var result = this._msgpack.decode(this._chunks);
|
65
|
-
|
66
52
|
if (this._wrap) {
|
67
53
|
result = {
|
68
54
|
value: result
|
69
55
|
};
|
70
56
|
}
|
71
|
-
|
72
57
|
this.push(result);
|
73
58
|
} catch (err) {
|
74
59
|
if (err instanceof this._msgpack.IncompleteBufferError) {
|
@@ -76,17 +61,14 @@ Decoder.prototype._transform = function (buf, enc, done) {
|
|
76
61
|
} else {
|
77
62
|
this.emit('error', err);
|
78
63
|
}
|
79
|
-
|
80
64
|
return;
|
81
65
|
}
|
82
|
-
|
83
66
|
if (this._chunks.length > 0) {
|
84
67
|
this._transform(null, enc, done);
|
85
68
|
} else {
|
86
69
|
done();
|
87
70
|
}
|
88
71
|
};
|
89
|
-
|
90
72
|
export default {
|
91
73
|
Decoder: Decoder,
|
92
74
|
Encoder: Encoder
|