tardis-machine 18.0.0 → 18.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/benchmark.js +35 -14
- package/bin/tardis-machine.js +0 -1
- package/dist/tardismachine.d.ts.map +1 -1
- package/dist/tardismachine.js +20 -55
- package/dist/tardismachine.js.map +1 -1
- package/dist/ws/replay.d.ts +2 -2
- package/dist/ws/replay.d.ts.map +1 -1
- package/dist/ws/replay.js +11 -5
- package/dist/ws/replay.js.map +1 -1
- package/dist/ws/replaynormalized.d.ts +2 -2
- package/dist/ws/replaynormalized.d.ts.map +1 -1
- package/dist/ws/replaynormalized.js +7 -5
- package/dist/ws/replaynormalized.js.map +1 -1
- package/dist/ws/server.d.ts +20 -0
- package/dist/ws/server.d.ts.map +1 -0
- package/dist/ws/server.js +154 -0
- package/dist/ws/server.js.map +1 -0
- package/dist/ws/streamnormalized.d.ts +2 -2
- package/dist/ws/streamnormalized.d.ts.map +1 -1
- package/dist/ws/streamnormalized.js +7 -5
- package/dist/ws/streamnormalized.js.map +1 -1
- package/dist/ws/subscriptionsmappers.d.ts +1 -1
- package/dist/ws/subscriptionsmappers.d.ts.map +1 -1
- package/node_modules/tardis-dev/README.md +1 -1
- package/node_modules/tardis-dev/dist/debug.d.ts +12 -2
- package/node_modules/tardis-dev/dist/debug.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/debug.js +2 -1
- package/node_modules/tardis-dev/dist/debug.js.map +1 -1
- package/node_modules/tardis-dev/dist/handy.d.ts +3 -1
- package/node_modules/tardis-dev/dist/handy.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/handy.js +72 -86
- package/node_modules/tardis-dev/dist/handy.js.map +1 -1
- package/node_modules/tardis-dev/dist/realtimefeeds/mexc.d.ts +0 -7
- package/node_modules/tardis-dev/dist/realtimefeeds/mexc.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/realtimefeeds/mexc.js +2 -70
- package/node_modules/tardis-dev/dist/realtimefeeds/mexc.js.map +1 -1
- package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.d.ts +43 -0
- package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.d.ts.map +1 -0
- package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.js +294 -0
- package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.js.map +1 -0
- package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.d.ts +3 -3
- package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.js +3 -3
- package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.js.map +1 -1
- package/node_modules/tardis-dev/dist/worker.js +2 -2
- package/node_modules/tardis-dev/dist/worker.js.map +1 -1
- package/node_modules/tardis-dev/package.json +3 -7
- package/node_modules/tardis-dev/src/debug.ts +16 -1
- package/node_modules/tardis-dev/src/external-modules.d.ts +5 -0
- package/node_modules/tardis-dev/src/handy.ts +93 -89
- package/node_modules/tardis-dev/src/realtimefeeds/mexc.ts +2 -72
- package/node_modules/tardis-dev/src/realtimefeeds/mexcprotobuf.ts +364 -0
- package/node_modules/tardis-dev/src/realtimefeeds/realtimefeed.ts +5 -5
- package/node_modules/tardis-dev/src/worker.ts +2 -2
- package/package.json +8 -34
- package/src/tardismachine.ts +25 -66
- package/src/ws/replay.ts +13 -8
- package/src/ws/replaynormalized.ts +8 -6
- package/src/ws/server.ts +173 -0
- package/src/ws/streamnormalized.ts +8 -6
- package/src/ws/subscriptionsmappers.ts +1 -1
- package/node_modules/follow-redirects/LICENSE +0 -18
- package/node_modules/follow-redirects/README.md +0 -157
- package/node_modules/follow-redirects/debug.js +0 -15
- package/node_modules/follow-redirects/http.js +0 -1
- package/node_modules/follow-redirects/https.js +0 -1
- package/node_modules/follow-redirects/index.js +0 -709
- package/node_modules/follow-redirects/package.json +0 -58
- package/node_modules/long/LICENSE +0 -202
- package/node_modules/long/README.md +0 -286
- package/node_modules/long/index.d.ts +0 -2
- package/node_modules/long/index.js +0 -1581
- package/node_modules/long/package.json +0 -58
- package/node_modules/long/types.d.ts +0 -474
- package/node_modules/long/umd/index.d.ts +0 -3
- package/node_modules/long/umd/index.js +0 -1622
- package/node_modules/long/umd/package.json +0 -3
- package/node_modules/long/umd/types.d.ts +0 -474
- package/node_modules/protobufjs/LICENSE +0 -39
- package/node_modules/protobufjs/README.md +0 -440
- package/node_modules/protobufjs/dist/light/protobuf.js +0 -9276
- package/node_modules/protobufjs/dist/light/protobuf.js.map +0 -1
- package/node_modules/protobufjs/dist/light/protobuf.min.js +0 -8
- package/node_modules/protobufjs/dist/light/protobuf.min.js.map +0 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.js +0 -3556
- package/node_modules/protobufjs/dist/minimal/protobuf.js.map +0 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js +0 -8
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +0 -1
- package/node_modules/protobufjs/dist/protobuf.js +0 -11233
- package/node_modules/protobufjs/dist/protobuf.js.map +0 -1
- package/node_modules/protobufjs/dist/protobuf.min.js +0 -8
- package/node_modules/protobufjs/dist/protobuf.min.js.map +0 -1
- package/node_modules/protobufjs/ext/README.md +0 -70
- package/node_modules/protobufjs/ext/debug/README.md +0 -4
- package/node_modules/protobufjs/ext/debug/index.js +0 -71
- package/node_modules/protobufjs/ext/descriptor/README.md +0 -5
- package/node_modules/protobufjs/ext/descriptor/index.d.ts +0 -2
- package/node_modules/protobufjs/ext/descriptor/index.js +0 -2
- package/node_modules/protobufjs/ext/descriptor.d.ts +0 -87
- package/node_modules/protobufjs/ext/descriptor.generated.d.ts +0 -417
- package/node_modules/protobufjs/ext/descriptor.js +0 -1356
- package/node_modules/protobufjs/ext/protojson.LICENSE +0 -201
- package/node_modules/protobufjs/ext/protojson.d.ts +0 -20
- package/node_modules/protobufjs/ext/protojson.generated.d.ts +0 -49
- package/node_modules/protobufjs/ext/protojson.js +0 -951
- package/node_modules/protobufjs/ext/textformat.d.ts +0 -19
- package/node_modules/protobufjs/ext/textformat.generated.d.ts +0 -33
- package/node_modules/protobufjs/ext/textformat.js +0 -1276
- package/node_modules/protobufjs/google/LICENSE +0 -27
- package/node_modules/protobufjs/google/README.md +0 -1
- package/node_modules/protobufjs/google/api/annotations.json +0 -85
- package/node_modules/protobufjs/google/api/annotations.proto +0 -11
- package/node_modules/protobufjs/google/api/http.json +0 -87
- package/node_modules/protobufjs/google/api/http.proto +0 -31
- package/node_modules/protobufjs/google/protobuf/api.json +0 -124
- package/node_modules/protobufjs/google/protobuf/api.proto +0 -34
- package/node_modules/protobufjs/google/protobuf/compiler/plugin.json +0 -126
- package/node_modules/protobufjs/google/protobuf/compiler/plugin.proto +0 -47
- package/node_modules/protobufjs/google/protobuf/descriptor.json +0 -1465
- package/node_modules/protobufjs/google/protobuf/descriptor.proto +0 -527
- package/node_modules/protobufjs/google/protobuf/source_context.json +0 -21
- package/node_modules/protobufjs/google/protobuf/source_context.proto +0 -7
- package/node_modules/protobufjs/google/protobuf/type.json +0 -209
- package/node_modules/protobufjs/google/protobuf/type.proto +0 -89
- package/node_modules/protobufjs/index.d.ts +0 -3203
- package/node_modules/protobufjs/index.js +0 -4
- package/node_modules/protobufjs/light.d.ts +0 -2
- package/node_modules/protobufjs/light.js +0 -4
- package/node_modules/protobufjs/minimal.d.ts +0 -2
- package/node_modules/protobufjs/minimal.js +0 -4
- package/node_modules/protobufjs/package.json +0 -93
- package/node_modules/protobufjs/src/common.js +0 -405
- package/node_modules/protobufjs/src/converter.js +0 -352
- package/node_modules/protobufjs/src/decoder.js +0 -279
- package/node_modules/protobufjs/src/encoder.js +0 -123
- package/node_modules/protobufjs/src/enum.js +0 -239
- package/node_modules/protobufjs/src/field.js +0 -505
- package/node_modules/protobufjs/src/index-light.js +0 -104
- package/node_modules/protobufjs/src/index-minimal.js +0 -35
- package/node_modules/protobufjs/src/index.js +0 -12
- package/node_modules/protobufjs/src/mapfield.js +0 -144
- package/node_modules/protobufjs/src/message.js +0 -137
- package/node_modules/protobufjs/src/method.js +0 -183
- package/node_modules/protobufjs/src/namespace.js +0 -574
- package/node_modules/protobufjs/src/object.js +0 -392
- package/node_modules/protobufjs/src/oneof.js +0 -233
- package/node_modules/protobufjs/src/parse.js +0 -1111
- package/node_modules/protobufjs/src/reader.js +0 -788
- package/node_modules/protobufjs/src/reader_buffer.js +0 -77
- package/node_modules/protobufjs/src/root.js +0 -424
- package/node_modules/protobufjs/src/roots.js +0 -18
- package/node_modules/protobufjs/src/rpc/service.js +0 -155
- package/node_modules/protobufjs/src/rpc.js +0 -36
- package/node_modules/protobufjs/src/service.js +0 -206
- package/node_modules/protobufjs/src/tokenize.js +0 -421
- package/node_modules/protobufjs/src/type.js +0 -676
- package/node_modules/protobufjs/src/types.js +0 -196
- package/node_modules/protobufjs/src/typescript.js +0 -25
- package/node_modules/protobufjs/src/util/aspromise.d.ts +0 -13
- package/node_modules/protobufjs/src/util/aspromise.js +0 -52
- package/node_modules/protobufjs/src/util/base64.d.ts +0 -32
- package/node_modules/protobufjs/src/util/base64.js +0 -146
- package/node_modules/protobufjs/src/util/codegen.d.ts +0 -31
- package/node_modules/protobufjs/src/util/codegen.js +0 -118
- package/node_modules/protobufjs/src/util/eventemitter.d.ts +0 -45
- package/node_modules/protobufjs/src/util/eventemitter.js +0 -86
- package/node_modules/protobufjs/src/util/fetch.d.ts +0 -56
- package/node_modules/protobufjs/src/util/fetch.js +0 -112
- package/node_modules/protobufjs/src/util/float.d.ts +0 -83
- package/node_modules/protobufjs/src/util/float.js +0 -335
- package/node_modules/protobufjs/src/util/fs.js +0 -11
- package/node_modules/protobufjs/src/util/longbits.js +0 -204
- package/node_modules/protobufjs/src/util/minimal.js +0 -511
- package/node_modules/protobufjs/src/util/path.d.ts +0 -22
- package/node_modules/protobufjs/src/util/path.js +0 -100
- package/node_modules/protobufjs/src/util/patterns.js +0 -7
- package/node_modules/protobufjs/src/util/pool.d.ts +0 -32
- package/node_modules/protobufjs/src/util/pool.js +0 -48
- package/node_modules/protobufjs/src/util/utf8.d.ts +0 -24
- package/node_modules/protobufjs/src/util/utf8.js +0 -190
- package/node_modules/protobufjs/src/util.js +0 -264
- package/node_modules/protobufjs/src/verifier.js +0 -185
- package/node_modules/protobufjs/src/wrappers.js +0 -106
- package/node_modules/protobufjs/src/writer.js +0 -700
- package/node_modules/protobufjs/src/writer_buffer.js +0 -100
- package/node_modules/protobufjs/tsconfig.json +0 -6
- package/node_modules/uWebSockets.js/ESM_wrapper.mjs +0 -53
- package/node_modules/uWebSockets.js/LICENSE +0 -201
- package/node_modules/uWebSockets.js/README.md +0 -6
- package/node_modules/uWebSockets.js/index.d.ts +0 -468
- package/node_modules/uWebSockets.js/package.json +0 -12
- package/node_modules/uWebSockets.js/source_commit +0 -1
- package/node_modules/uWebSockets.js/uws.js +0 -76
- package/node_modules/uWebSockets.js/uws_darwin_arm64_127.node +0 -0
- package/node_modules/uWebSockets.js/uws_darwin_arm64_137.node +0 -0
- package/node_modules/uWebSockets.js/uws_darwin_arm64_147.node +0 -0
- package/node_modules/uWebSockets.js/uws_darwin_x64_127.node +0 -0
- package/node_modules/uWebSockets.js/uws_darwin_x64_137.node +0 -0
- package/node_modules/uWebSockets.js/uws_darwin_x64_147.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_arm64_127.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_arm64_137.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_arm64_147.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_x64_127.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_x64_137.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_x64_147.node +0 -0
- package/node_modules/uWebSockets.js/uws_win32_x64_127.node +0 -0
- package/node_modules/uWebSockets.js/uws_win32_x64_137.node +0 -0
- package/node_modules/uWebSockets.js/uws_win32_x64_147.node +0 -0
|
@@ -1,788 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
module.exports = Reader;
|
|
3
|
-
|
|
4
|
-
var util = require("./util/minimal");
|
|
5
|
-
|
|
6
|
-
var BufferReader; // cyclic
|
|
7
|
-
|
|
8
|
-
var LongBits = util.LongBits,
|
|
9
|
-
utf8 = util.utf8;
|
|
10
|
-
|
|
11
|
-
/* istanbul ignore next */
|
|
12
|
-
function indexOutOfRange(reader, writeLength) {
|
|
13
|
-
return RangeError("index out of range: " + reader.pos + " + " + (writeLength || 1) + " > " + reader.len);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Constructs a new reader instance using the specified buffer.
|
|
18
|
-
* @classdesc Wire format reader using `Uint8Array`.
|
|
19
|
-
* @constructor
|
|
20
|
-
* @param {Uint8Array} buffer Buffer to read from
|
|
21
|
-
*/
|
|
22
|
-
function Reader(buffer) {
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Read buffer.
|
|
26
|
-
* @type {Uint8Array}
|
|
27
|
-
*/
|
|
28
|
-
this.buf = buffer;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Read buffer position.
|
|
32
|
-
* @type {number}
|
|
33
|
-
*/
|
|
34
|
-
this.pos = 0;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Read buffer length.
|
|
38
|
-
* @type {number}
|
|
39
|
-
*/
|
|
40
|
-
this.len = buffer.length;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Cached DataView for packed reads.
|
|
44
|
-
* @type {DataView|null}
|
|
45
|
-
*/
|
|
46
|
-
this.view = null;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Whether to discard unknown fields while decoding.
|
|
50
|
-
* @type {boolean}
|
|
51
|
-
*/
|
|
52
|
-
this.discardUnknown = Reader.discardUnknown;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function create_array(buffer) {
|
|
56
|
-
// TODO: Remove plain array reader support in the next major release.
|
|
57
|
-
if (Array.isArray(buffer))
|
|
58
|
-
buffer = new Uint8Array(buffer);
|
|
59
|
-
if (buffer instanceof Uint8Array)
|
|
60
|
-
return new Reader(buffer);
|
|
61
|
-
throw Error("illegal buffer");
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
var create = function create() {
|
|
65
|
-
return util.Buffer
|
|
66
|
-
? function create_buffer_setup(buffer) {
|
|
67
|
-
return (Reader.create = function create_buffer(buffer) {
|
|
68
|
-
return util.Buffer.isBuffer(buffer)
|
|
69
|
-
? new BufferReader(buffer)
|
|
70
|
-
/* istanbul ignore next */
|
|
71
|
-
: create_array(buffer);
|
|
72
|
-
})(buffer);
|
|
73
|
-
}
|
|
74
|
-
/* istanbul ignore next */
|
|
75
|
-
: create_array;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Creates a new reader using the specified buffer.
|
|
80
|
-
* @function
|
|
81
|
-
* @param {Uint8Array|Buffer} buffer Buffer to read from
|
|
82
|
-
* @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}
|
|
83
|
-
* @throws {Error} If `buffer` is not a valid buffer
|
|
84
|
-
*/
|
|
85
|
-
Reader.create = create();
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Returns raw bytes from the backing buffer without advancing the reader.
|
|
89
|
-
* @param {number} start Start offset
|
|
90
|
-
* @param {number} end End offset
|
|
91
|
-
* @returns {Uint8Array} Raw bytes
|
|
92
|
-
*/
|
|
93
|
-
Reader.prototype.raw = function read_raw(start, end) {
|
|
94
|
-
return this.buf.subarray(start, end);
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Reads a varint as an unsigned 32 bit value.
|
|
99
|
-
* @function
|
|
100
|
-
* @returns {number} Value read
|
|
101
|
-
*/
|
|
102
|
-
Reader.prototype.uint32 = function read_uint32() {
|
|
103
|
-
var buf = this.buf,
|
|
104
|
-
pos = this.pos,
|
|
105
|
-
value = (buf[pos] & 127) >>> 0;
|
|
106
|
-
if (buf[pos++] < 128) {
|
|
107
|
-
this.pos = pos;
|
|
108
|
-
return value;
|
|
109
|
-
}
|
|
110
|
-
value = (value | (buf[pos] & 127) << 7) >>> 0;
|
|
111
|
-
if (buf[pos++] < 128) {
|
|
112
|
-
this.pos = pos;
|
|
113
|
-
return value;
|
|
114
|
-
}
|
|
115
|
-
value = (value | (buf[pos] & 127) << 14) >>> 0;
|
|
116
|
-
if (buf[pos++] < 128) {
|
|
117
|
-
this.pos = pos;
|
|
118
|
-
return value;
|
|
119
|
-
}
|
|
120
|
-
value = (value | (buf[pos] & 127) << 21) >>> 0;
|
|
121
|
-
if (buf[pos++] < 128) {
|
|
122
|
-
this.pos = pos;
|
|
123
|
-
return value;
|
|
124
|
-
}
|
|
125
|
-
value = (value | (buf[pos] & 15) << 28) >>> 0;
|
|
126
|
-
if (buf[pos++] < 128) {
|
|
127
|
-
this.pos = pos;
|
|
128
|
-
return value;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
for (var i = 0; i < 5; ++i) {
|
|
132
|
-
/* istanbul ignore if */
|
|
133
|
-
if (pos >= this.len) {
|
|
134
|
-
this.pos = pos;
|
|
135
|
-
throw indexOutOfRange(this);
|
|
136
|
-
}
|
|
137
|
-
if (buf[pos++] < 128) {
|
|
138
|
-
this.pos = pos;
|
|
139
|
-
return value;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/* istanbul ignore next */
|
|
143
|
-
this.pos = pos;
|
|
144
|
-
throw Error("invalid varint encoding");
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Reads a field tag.
|
|
149
|
-
* @function
|
|
150
|
-
* @returns {number} Tag read
|
|
151
|
-
*/
|
|
152
|
-
Reader.prototype.tag = function read_tag() {
|
|
153
|
-
var buf = this.buf,
|
|
154
|
-
pos = this.pos,
|
|
155
|
-
value = (buf[pos] & 127) >>> 0;
|
|
156
|
-
if (buf[pos++] < 128) {
|
|
157
|
-
this.pos = pos;
|
|
158
|
-
return value;
|
|
159
|
-
}
|
|
160
|
-
value = (value | (buf[pos] & 127) << 7) >>> 0;
|
|
161
|
-
if (buf[pos++] < 128) {
|
|
162
|
-
this.pos = pos;
|
|
163
|
-
return value;
|
|
164
|
-
}
|
|
165
|
-
value = (value | (buf[pos] & 127) << 14) >>> 0;
|
|
166
|
-
if (buf[pos++] < 128) {
|
|
167
|
-
this.pos = pos;
|
|
168
|
-
return value;
|
|
169
|
-
}
|
|
170
|
-
value = (value | (buf[pos] & 127) << 21) >>> 0;
|
|
171
|
-
if (buf[pos++] < 128) {
|
|
172
|
-
this.pos = pos;
|
|
173
|
-
return value;
|
|
174
|
-
}
|
|
175
|
-
value = (value | (buf[pos] & 15) << 28) >>> 0;
|
|
176
|
-
if (buf[pos] < 128 && (buf[pos] & 112) === 0) {
|
|
177
|
-
this.pos = pos + 1;
|
|
178
|
-
return value;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
this.pos = pos + 1;
|
|
182
|
-
throw Error("invalid tag encoding");
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
* Reads a varint as a signed 32 bit value.
|
|
187
|
-
* @returns {number} Value read
|
|
188
|
-
*/
|
|
189
|
-
Reader.prototype.int32 = function read_int32() {
|
|
190
|
-
return this.uint32() | 0;
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Reads a zig-zag encoded varint as a signed 32 bit value.
|
|
195
|
-
* @returns {number} Value read
|
|
196
|
-
*/
|
|
197
|
-
Reader.prototype.sint32 = function read_sint32() {
|
|
198
|
-
var value = this.uint32();
|
|
199
|
-
return value >>> 1 ^ -(value & 1) | 0;
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
/* eslint-disable no-invalid-this */
|
|
203
|
-
|
|
204
|
-
function readLongVarint() {
|
|
205
|
-
// tends to deopt with local vars for octet etc.
|
|
206
|
-
var bits = new LongBits(0, 0);
|
|
207
|
-
var i = 0;
|
|
208
|
-
if (this.len - this.pos > 4) { // fast route (lo)
|
|
209
|
-
for (; i < 4; ++i) {
|
|
210
|
-
// 1st..4th
|
|
211
|
-
bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;
|
|
212
|
-
if (this.buf[this.pos++] < 128)
|
|
213
|
-
return bits;
|
|
214
|
-
}
|
|
215
|
-
// 5th
|
|
216
|
-
bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;
|
|
217
|
-
bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;
|
|
218
|
-
if (this.buf[this.pos++] < 128)
|
|
219
|
-
return bits;
|
|
220
|
-
i = 0;
|
|
221
|
-
} else {
|
|
222
|
-
for (; i < 4; ++i) {
|
|
223
|
-
/* istanbul ignore if */
|
|
224
|
-
if (this.pos >= this.len)
|
|
225
|
-
throw indexOutOfRange(this);
|
|
226
|
-
// 1st..4th
|
|
227
|
-
bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;
|
|
228
|
-
if (this.buf[this.pos++] < 128)
|
|
229
|
-
return bits;
|
|
230
|
-
}
|
|
231
|
-
throw indexOutOfRange(this);
|
|
232
|
-
}
|
|
233
|
-
if (this.len - this.pos > 4) { // fast route (hi)
|
|
234
|
-
for (; i < 5; ++i) {
|
|
235
|
-
// 6th..10th
|
|
236
|
-
bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;
|
|
237
|
-
if (this.buf[this.pos++] < 128)
|
|
238
|
-
return bits;
|
|
239
|
-
}
|
|
240
|
-
} else {
|
|
241
|
-
for (; i < 5; ++i) {
|
|
242
|
-
/* istanbul ignore if */
|
|
243
|
-
if (this.pos >= this.len)
|
|
244
|
-
throw indexOutOfRange(this);
|
|
245
|
-
// 6th..10th
|
|
246
|
-
bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;
|
|
247
|
-
if (this.buf[this.pos++] < 128)
|
|
248
|
-
return bits;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
/* istanbul ignore next */
|
|
252
|
-
throw Error("invalid varint encoding");
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/* eslint-enable no-invalid-this */
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Reads a varint as a signed 64 bit value.
|
|
259
|
-
* @name Reader#int64
|
|
260
|
-
* @function
|
|
261
|
-
* @returns {Long} Value read
|
|
262
|
-
*/
|
|
263
|
-
|
|
264
|
-
/**
|
|
265
|
-
* Reads a varint as an unsigned 64 bit value.
|
|
266
|
-
* @name Reader#uint64
|
|
267
|
-
* @function
|
|
268
|
-
* @returns {Long} Value read
|
|
269
|
-
*/
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* Reads a zig-zag encoded varint as a signed 64 bit value.
|
|
273
|
-
* @name Reader#sint64
|
|
274
|
-
* @function
|
|
275
|
-
* @returns {Long} Value read
|
|
276
|
-
*/
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Reads a varint as a boolean.
|
|
280
|
-
* @returns {boolean} Value read
|
|
281
|
-
*/
|
|
282
|
-
Reader.prototype.bool = function read_bool() {
|
|
283
|
-
var value = false,
|
|
284
|
-
b;
|
|
285
|
-
for (var i = 0; i < 10; ++i) {
|
|
286
|
-
/* istanbul ignore if */
|
|
287
|
-
if (this.pos >= this.len)
|
|
288
|
-
throw indexOutOfRange(this);
|
|
289
|
-
b = this.buf[this.pos++];
|
|
290
|
-
if (b & 127)
|
|
291
|
-
value = true;
|
|
292
|
-
if (b < 128)
|
|
293
|
-
return value;
|
|
294
|
-
}
|
|
295
|
-
/* istanbul ignore next */
|
|
296
|
-
throw Error("invalid varint encoding");
|
|
297
|
-
};
|
|
298
|
-
|
|
299
|
-
function readFixed32_end(buf, end) { // note that this uses `end`, not `pos`
|
|
300
|
-
return (buf[end - 4]
|
|
301
|
-
| buf[end - 3] << 8
|
|
302
|
-
| buf[end - 2] << 16
|
|
303
|
-
| buf[end - 1] << 24) >>> 0;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* Reads fixed 32 bits as an unsigned 32 bit integer.
|
|
308
|
-
* @returns {number} Value read
|
|
309
|
-
*/
|
|
310
|
-
Reader.prototype.fixed32 = function read_fixed32() {
|
|
311
|
-
|
|
312
|
-
/* istanbul ignore if */
|
|
313
|
-
if (this.pos + 4 > this.len)
|
|
314
|
-
throw indexOutOfRange(this, 4);
|
|
315
|
-
|
|
316
|
-
return readFixed32_end(this.buf, this.pos += 4);
|
|
317
|
-
};
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* Reads fixed 32 bits as a signed 32 bit integer.
|
|
321
|
-
* @returns {number} Value read
|
|
322
|
-
*/
|
|
323
|
-
Reader.prototype.sfixed32 = function read_sfixed32() {
|
|
324
|
-
|
|
325
|
-
/* istanbul ignore if */
|
|
326
|
-
if (this.pos + 4 > this.len)
|
|
327
|
-
throw indexOutOfRange(this, 4);
|
|
328
|
-
|
|
329
|
-
return readFixed32_end(this.buf, this.pos += 4) | 0;
|
|
330
|
-
};
|
|
331
|
-
|
|
332
|
-
/* eslint-disable no-invalid-this */
|
|
333
|
-
|
|
334
|
-
function readFixed64(/* this: Reader */) {
|
|
335
|
-
|
|
336
|
-
/* istanbul ignore if */
|
|
337
|
-
if (this.pos + 8 > this.len)
|
|
338
|
-
throw indexOutOfRange(this, 8);
|
|
339
|
-
|
|
340
|
-
return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
/* eslint-enable no-invalid-this */
|
|
344
|
-
|
|
345
|
-
/**
|
|
346
|
-
* Reads fixed 64 bits.
|
|
347
|
-
* @name Reader#fixed64
|
|
348
|
-
* @function
|
|
349
|
-
* @returns {Long} Value read
|
|
350
|
-
*/
|
|
351
|
-
|
|
352
|
-
/**
|
|
353
|
-
* Reads zig-zag encoded fixed 64 bits.
|
|
354
|
-
* @name Reader#sfixed64
|
|
355
|
-
* @function
|
|
356
|
-
* @returns {Long} Value read
|
|
357
|
-
*/
|
|
358
|
-
|
|
359
|
-
/**
|
|
360
|
-
* Reads a float (32 bit) as a number.
|
|
361
|
-
* @function
|
|
362
|
-
* @returns {number} Value read
|
|
363
|
-
*/
|
|
364
|
-
Reader.prototype.float = function read_float() {
|
|
365
|
-
|
|
366
|
-
/* istanbul ignore if */
|
|
367
|
-
if (this.pos + 4 > this.len)
|
|
368
|
-
throw indexOutOfRange(this, 4);
|
|
369
|
-
|
|
370
|
-
var value = util.float.readFloatLE(this.buf, this.pos);
|
|
371
|
-
this.pos += 4;
|
|
372
|
-
return value;
|
|
373
|
-
};
|
|
374
|
-
|
|
375
|
-
/**
|
|
376
|
-
* Reads a double (64 bit float) as a number.
|
|
377
|
-
* @function
|
|
378
|
-
* @returns {number} Value read
|
|
379
|
-
*/
|
|
380
|
-
Reader.prototype.double = function read_double() {
|
|
381
|
-
|
|
382
|
-
/* istanbul ignore if */
|
|
383
|
-
if (this.pos + 8 > this.len)
|
|
384
|
-
throw indexOutOfRange(this, 4);
|
|
385
|
-
|
|
386
|
-
var value = util.float.readDoubleLE(this.buf, this.pos);
|
|
387
|
-
this.pos += 8;
|
|
388
|
-
return value;
|
|
389
|
-
};
|
|
390
|
-
|
|
391
|
-
/**
|
|
392
|
-
* Reads a packed repeated field of unsigned 32 bit varints.
|
|
393
|
-
* @param {number[]} [array] Array to read into; a new one is created if omitted
|
|
394
|
-
* @returns {number[]} Array read into
|
|
395
|
-
*/
|
|
396
|
-
Reader.prototype.uint32s = function read_uint32s(array) {
|
|
397
|
-
if (array === undefined) array = [];
|
|
398
|
-
var end = this.uint32() + this.pos;
|
|
399
|
-
while (this.pos < end)
|
|
400
|
-
array.push(this.uint32());
|
|
401
|
-
return array;
|
|
402
|
-
};
|
|
403
|
-
|
|
404
|
-
/**
|
|
405
|
-
* Reads a packed repeated field of signed 32 bit varints.
|
|
406
|
-
* @param {number[]} [array] Array to read into; a new one is created if omitted
|
|
407
|
-
* @returns {number[]} Array read into
|
|
408
|
-
*/
|
|
409
|
-
Reader.prototype.int32s = function read_int32s(array) {
|
|
410
|
-
if (array === undefined) array = [];
|
|
411
|
-
var end = this.uint32() + this.pos;
|
|
412
|
-
while (this.pos < end)
|
|
413
|
-
array.push(this.int32());
|
|
414
|
-
return array;
|
|
415
|
-
};
|
|
416
|
-
|
|
417
|
-
/**
|
|
418
|
-
* Reads a packed repeated field of zig-zag encoded signed 32 bit varints.
|
|
419
|
-
* @param {number[]} [array] Array to read into; a new one is created if omitted
|
|
420
|
-
* @returns {number[]} Array read into
|
|
421
|
-
*/
|
|
422
|
-
Reader.prototype.sint32s = function read_sint32s(array) {
|
|
423
|
-
if (array === undefined) array = [];
|
|
424
|
-
var end = this.uint32() + this.pos;
|
|
425
|
-
while (this.pos < end)
|
|
426
|
-
array.push(this.sint32());
|
|
427
|
-
return array;
|
|
428
|
-
};
|
|
429
|
-
|
|
430
|
-
/**
|
|
431
|
-
* Reads a packed repeated field of booleans.
|
|
432
|
-
* @param {boolean[]} [array] Array to read into; a new one is created if omitted
|
|
433
|
-
* @returns {boolean[]} Array read into
|
|
434
|
-
*/
|
|
435
|
-
Reader.prototype.bools = function read_bools(array) {
|
|
436
|
-
if (array === undefined) array = [];
|
|
437
|
-
var end = this.uint32() + this.pos;
|
|
438
|
-
while (this.pos < end)
|
|
439
|
-
array.push(this.bool());
|
|
440
|
-
return array;
|
|
441
|
-
};
|
|
442
|
-
|
|
443
|
-
// The view allocation only pays off when amortized over enough reads
|
|
444
|
-
var VIEW_THRESHOLD_FLOAT = 8,
|
|
445
|
-
VIEW_THRESHOLD_INT = 128;
|
|
446
|
-
|
|
447
|
-
function getLazyView(reader, count, threshold) {
|
|
448
|
-
var view = reader.view;
|
|
449
|
-
if (view || count < threshold)
|
|
450
|
-
return view;
|
|
451
|
-
var buf = reader.buf;
|
|
452
|
-
return reader.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
/**
|
|
456
|
-
* Reads a packed repeated field of unsigned 32 bit fixed values.
|
|
457
|
-
* @param {number[]} [array] Array to read into; a new one is created if omitted
|
|
458
|
-
* @returns {number[]} Array read into
|
|
459
|
-
*/
|
|
460
|
-
Reader.prototype.fixed32s = function read_fixed32s(array) {
|
|
461
|
-
if (array === undefined) array = [];
|
|
462
|
-
var len = this.uint32(), end = this.pos + len;
|
|
463
|
-
/* istanbul ignore if */
|
|
464
|
-
if (end > this.len) throw indexOutOfRange(this, len);
|
|
465
|
-
var count = len >>> 2, i = array.length, pos = this.pos;
|
|
466
|
-
array.length = i + count;
|
|
467
|
-
var dv = getLazyView(this, count, VIEW_THRESHOLD_INT);
|
|
468
|
-
if (dv)
|
|
469
|
-
for (var k = 0; k < count; ++k, pos += 4) array[i++] = dv.getUint32(pos, true);
|
|
470
|
-
else {
|
|
471
|
-
var buf = this.buf;
|
|
472
|
-
for (var j = 0; j < count; ++j, pos += 4) array[i++] = readFixed32_end(buf, pos + 4);
|
|
473
|
-
}
|
|
474
|
-
this.pos = pos;
|
|
475
|
-
if (pos !== end) throw indexOutOfRange(this, 4);
|
|
476
|
-
return array;
|
|
477
|
-
};
|
|
478
|
-
|
|
479
|
-
/**
|
|
480
|
-
* Reads a packed repeated field of signed 32 bit fixed values.
|
|
481
|
-
* @param {number[]} [array] Array to read into; a new one is created if omitted
|
|
482
|
-
* @returns {number[]} Array read into
|
|
483
|
-
*/
|
|
484
|
-
Reader.prototype.sfixed32s = function read_sfixed32s(array) {
|
|
485
|
-
if (array === undefined) array = [];
|
|
486
|
-
var len = this.uint32(), end = this.pos + len;
|
|
487
|
-
/* istanbul ignore if */
|
|
488
|
-
if (end > this.len) throw indexOutOfRange(this, len);
|
|
489
|
-
var count = len >>> 2, i = array.length, pos = this.pos;
|
|
490
|
-
array.length = i + count;
|
|
491
|
-
var dv = getLazyView(this, count, VIEW_THRESHOLD_INT);
|
|
492
|
-
if (dv)
|
|
493
|
-
for (var k = 0; k < count; ++k, pos += 4) array[i++] = dv.getInt32(pos, true);
|
|
494
|
-
else {
|
|
495
|
-
var buf = this.buf;
|
|
496
|
-
for (var j = 0; j < count; ++j, pos += 4) array[i++] = readFixed32_end(buf, pos + 4) | 0;
|
|
497
|
-
}
|
|
498
|
-
this.pos = pos;
|
|
499
|
-
if (pos !== end) throw indexOutOfRange(this, 4);
|
|
500
|
-
return array;
|
|
501
|
-
};
|
|
502
|
-
|
|
503
|
-
/**
|
|
504
|
-
* Reads a packed repeated field of floats (32 bit).
|
|
505
|
-
* @param {number[]} [array] Array to read into; a new one is created if omitted
|
|
506
|
-
* @returns {number[]} Array read into
|
|
507
|
-
*/
|
|
508
|
-
Reader.prototype.floats = function read_floats(array) {
|
|
509
|
-
if (array === undefined) array = [];
|
|
510
|
-
var len = this.uint32(), end = this.pos + len;
|
|
511
|
-
/* istanbul ignore if */
|
|
512
|
-
if (end > this.len) throw indexOutOfRange(this, len);
|
|
513
|
-
var count = len >>> 2, i = array.length, pos = this.pos;
|
|
514
|
-
array.length = i + count;
|
|
515
|
-
var dv = getLazyView(this, count, VIEW_THRESHOLD_FLOAT);
|
|
516
|
-
if (dv)
|
|
517
|
-
for (var k = 0; k < count; ++k, pos += 4) array[i++] = dv.getFloat32(pos, true);
|
|
518
|
-
else {
|
|
519
|
-
var buf = this.buf;
|
|
520
|
-
for (var j = 0; j < count; ++j, pos += 4) array[i++] = util.float.readFloatLE(buf, pos);
|
|
521
|
-
}
|
|
522
|
-
this.pos = pos;
|
|
523
|
-
if (pos !== end) throw indexOutOfRange(this, 4);
|
|
524
|
-
return array;
|
|
525
|
-
};
|
|
526
|
-
|
|
527
|
-
/**
|
|
528
|
-
* Reads a packed repeated field of doubles (64 bit float).
|
|
529
|
-
* @param {number[]} [array] Array to read into; a new one is created if omitted
|
|
530
|
-
* @returns {number[]} Array read into
|
|
531
|
-
*/
|
|
532
|
-
Reader.prototype.doubles = function read_doubles(array) {
|
|
533
|
-
if (array === undefined) array = [];
|
|
534
|
-
var len = this.uint32(), end = this.pos + len;
|
|
535
|
-
/* istanbul ignore if */
|
|
536
|
-
if (end > this.len) throw indexOutOfRange(this, len);
|
|
537
|
-
var count = len >>> 3, i = array.length, pos = this.pos;
|
|
538
|
-
array.length = i + count;
|
|
539
|
-
var dv = getLazyView(this, count, VIEW_THRESHOLD_FLOAT);
|
|
540
|
-
if (dv)
|
|
541
|
-
for (var k = 0; k < count; ++k, pos += 8) array[i++] = dv.getFloat64(pos, true);
|
|
542
|
-
else {
|
|
543
|
-
var buf = this.buf;
|
|
544
|
-
for (var j = 0; j < count; ++j, pos += 8) array[i++] = util.float.readDoubleLE(buf, pos);
|
|
545
|
-
}
|
|
546
|
-
this.pos = pos;
|
|
547
|
-
if (pos !== end) throw indexOutOfRange(this, 8);
|
|
548
|
-
return array;
|
|
549
|
-
};
|
|
550
|
-
|
|
551
|
-
/**
|
|
552
|
-
* Reads a packed repeated field of unsigned 64 bit varints.
|
|
553
|
-
* @param {Array.<Long|number>} [array] Array to read into; a new one is created if omitted
|
|
554
|
-
* @returns {Array.<Long|number>} Array read into
|
|
555
|
-
*/
|
|
556
|
-
Reader.prototype.uint64s = function read_uint64s(array) {
|
|
557
|
-
if (array === undefined) array = [];
|
|
558
|
-
var end = this.uint32() + this.pos;
|
|
559
|
-
while (this.pos < end)
|
|
560
|
-
array.push(this.uint64());
|
|
561
|
-
return array;
|
|
562
|
-
};
|
|
563
|
-
|
|
564
|
-
/**
|
|
565
|
-
* Reads a packed repeated field of signed 64 bit varints.
|
|
566
|
-
* @param {Array.<Long|number>} [array] Array to read into; a new one is created if omitted
|
|
567
|
-
* @returns {Array.<Long|number>} Array read into
|
|
568
|
-
*/
|
|
569
|
-
Reader.prototype.int64s = function read_int64s(array) {
|
|
570
|
-
if (array === undefined) array = [];
|
|
571
|
-
var end = this.uint32() + this.pos;
|
|
572
|
-
while (this.pos < end)
|
|
573
|
-
array.push(this.int64());
|
|
574
|
-
return array;
|
|
575
|
-
};
|
|
576
|
-
|
|
577
|
-
/**
|
|
578
|
-
* Reads a packed repeated field of zig-zag encoded signed 64 bit varints.
|
|
579
|
-
* @param {Array.<Long|number>} [array] Array to read into; a new one is created if omitted
|
|
580
|
-
* @returns {Array.<Long|number>} Array read into
|
|
581
|
-
*/
|
|
582
|
-
Reader.prototype.sint64s = function read_sint64s(array) {
|
|
583
|
-
if (array === undefined) array = [];
|
|
584
|
-
var end = this.uint32() + this.pos;
|
|
585
|
-
while (this.pos < end)
|
|
586
|
-
array.push(this.sint64());
|
|
587
|
-
return array;
|
|
588
|
-
};
|
|
589
|
-
|
|
590
|
-
/**
|
|
591
|
-
* Reads a packed repeated field of unsigned 64 bit fixed values.
|
|
592
|
-
* @param {Array.<Long|number>} [array] Array to read into; a new one is created if omitted
|
|
593
|
-
* @returns {Array.<Long|number>} Array read into
|
|
594
|
-
*/
|
|
595
|
-
Reader.prototype.fixed64s = function read_fixed64s(array) {
|
|
596
|
-
if (array === undefined) array = [];
|
|
597
|
-
var len = this.uint32(), end = this.pos + len, i = array.length;
|
|
598
|
-
/* istanbul ignore if */
|
|
599
|
-
if (end > this.len) throw indexOutOfRange(this, len);
|
|
600
|
-
var count = len >>> 3;
|
|
601
|
-
array.length = i + count; // 8 bytes per value, count is known
|
|
602
|
-
for (var j = 0; j < count; ++j)
|
|
603
|
-
array[i++] = this.fixed64();
|
|
604
|
-
if (this.pos !== end) throw indexOutOfRange(this, 8);
|
|
605
|
-
return array;
|
|
606
|
-
};
|
|
607
|
-
|
|
608
|
-
/**
|
|
609
|
-
* Reads a packed repeated field of signed 64 bit fixed values.
|
|
610
|
-
* @param {Array.<Long|number>} [array] Array to read into; a new one is created if omitted
|
|
611
|
-
* @returns {Array.<Long|number>} Array read into
|
|
612
|
-
*/
|
|
613
|
-
Reader.prototype.sfixed64s = function read_sfixed64s(array) {
|
|
614
|
-
if (array === undefined) array = [];
|
|
615
|
-
var len = this.uint32(), end = this.pos + len, i = array.length;
|
|
616
|
-
/* istanbul ignore if */
|
|
617
|
-
if (end > this.len) throw indexOutOfRange(this, len);
|
|
618
|
-
var count = len >>> 3;
|
|
619
|
-
array.length = i + count; // 8 bytes per value, count is known
|
|
620
|
-
for (var j = 0; j < count; ++j)
|
|
621
|
-
array[i++] = this.sfixed64();
|
|
622
|
-
if (this.pos !== end) throw indexOutOfRange(this, 8);
|
|
623
|
-
return array;
|
|
624
|
-
};
|
|
625
|
-
|
|
626
|
-
/**
|
|
627
|
-
* Reads a sequence of bytes preceeded by its length as a varint.
|
|
628
|
-
* @returns {Uint8Array} Value read
|
|
629
|
-
*/
|
|
630
|
-
Reader.prototype.bytes = function read_bytes() {
|
|
631
|
-
var length = this.uint32(),
|
|
632
|
-
start = this.pos,
|
|
633
|
-
end = this.pos + length;
|
|
634
|
-
|
|
635
|
-
/* istanbul ignore if */
|
|
636
|
-
if (end > this.len)
|
|
637
|
-
throw indexOutOfRange(this, length);
|
|
638
|
-
|
|
639
|
-
this.pos = end;
|
|
640
|
-
return this.raw(start, end);
|
|
641
|
-
};
|
|
642
|
-
|
|
643
|
-
/**
|
|
644
|
-
* Reads a string preceeded by its byte length as a varint.
|
|
645
|
-
* @returns {string} Value read
|
|
646
|
-
*/
|
|
647
|
-
Reader.prototype.string = function read_string() {
|
|
648
|
-
var length = this.uint32(),
|
|
649
|
-
start = this.pos,
|
|
650
|
-
end = this.pos + length;
|
|
651
|
-
|
|
652
|
-
/* istanbul ignore if */
|
|
653
|
-
if (end > this.len)
|
|
654
|
-
throw indexOutOfRange(this, length);
|
|
655
|
-
|
|
656
|
-
this.pos = end;
|
|
657
|
-
return utf8.read(this.buf, start, end);
|
|
658
|
-
};
|
|
659
|
-
|
|
660
|
-
/**
|
|
661
|
-
* Reads a string preceeded by its byte length as a varint, rejecting invalid UTF8.
|
|
662
|
-
* @returns {string} Value read
|
|
663
|
-
*/
|
|
664
|
-
Reader.prototype.stringVerify = function read_string_verify() {
|
|
665
|
-
var length = this.uint32(),
|
|
666
|
-
start = this.pos,
|
|
667
|
-
end = this.pos + length;
|
|
668
|
-
|
|
669
|
-
/* istanbul ignore if */
|
|
670
|
-
if (end > this.len)
|
|
671
|
-
throw indexOutOfRange(this, length);
|
|
672
|
-
|
|
673
|
-
this.pos = end;
|
|
674
|
-
return utf8.readStrict(this.buf, start, end);
|
|
675
|
-
};
|
|
676
|
-
|
|
677
|
-
/**
|
|
678
|
-
* Skips the specified number of bytes if specified, otherwise skips a varint.
|
|
679
|
-
* @param {number} [length] Length if known, otherwise a varint is assumed
|
|
680
|
-
* @returns {Reader} `this`
|
|
681
|
-
*/
|
|
682
|
-
Reader.prototype.skip = function skip(length) {
|
|
683
|
-
if (typeof length === "number") {
|
|
684
|
-
/* istanbul ignore if */
|
|
685
|
-
if (this.pos + length > this.len)
|
|
686
|
-
throw indexOutOfRange(this, length);
|
|
687
|
-
this.pos += length;
|
|
688
|
-
} else {
|
|
689
|
-
do {
|
|
690
|
-
/* istanbul ignore if */
|
|
691
|
-
if (this.pos >= this.len)
|
|
692
|
-
throw indexOutOfRange(this);
|
|
693
|
-
} while (this.buf[this.pos++] & 128);
|
|
694
|
-
}
|
|
695
|
-
return this;
|
|
696
|
-
};
|
|
697
|
-
|
|
698
|
-
/**
|
|
699
|
-
* Recursion limit.
|
|
700
|
-
* @type {number}
|
|
701
|
-
*/
|
|
702
|
-
Reader.recursionLimit = util.recursionLimit;
|
|
703
|
-
|
|
704
|
-
/**
|
|
705
|
-
* Whether readers discard unknown fields while decoding.
|
|
706
|
-
* @type {boolean}
|
|
707
|
-
*/
|
|
708
|
-
Reader.discardUnknown = true;
|
|
709
|
-
|
|
710
|
-
/**
|
|
711
|
-
* Skips the next element of the specified wire type.
|
|
712
|
-
* @param {number} wireType Wire type received
|
|
713
|
-
* @param {number} [depth] Depth of recursion to control nested calls; 0 if omitted
|
|
714
|
-
* @param {number} [fieldNumber] Field number for validating group end tags
|
|
715
|
-
* @returns {Reader} `this`
|
|
716
|
-
*/
|
|
717
|
-
Reader.prototype.skipType = function(wireType, depth, fieldNumber) {
|
|
718
|
-
if (depth === undefined) depth = 0;
|
|
719
|
-
if (depth > Reader.recursionLimit)
|
|
720
|
-
throw Error("max depth exceeded");
|
|
721
|
-
if (fieldNumber === 0)
|
|
722
|
-
throw Error("illegal tag: field number 0");
|
|
723
|
-
switch (wireType) {
|
|
724
|
-
case 0:
|
|
725
|
-
this.skip();
|
|
726
|
-
break;
|
|
727
|
-
case 1:
|
|
728
|
-
this.skip(8);
|
|
729
|
-
break;
|
|
730
|
-
case 2:
|
|
731
|
-
this.skip(this.uint32());
|
|
732
|
-
break;
|
|
733
|
-
case 3:
|
|
734
|
-
while (true) {
|
|
735
|
-
var tag = this.tag();
|
|
736
|
-
var nestedField = tag >>> 3;
|
|
737
|
-
wireType = tag & 7;
|
|
738
|
-
if (!nestedField)
|
|
739
|
-
throw Error("illegal tag: field number 0");
|
|
740
|
-
if (wireType === 4) {
|
|
741
|
-
if (fieldNumber !== undefined && nestedField !== fieldNumber)
|
|
742
|
-
throw Error("invalid end group tag");
|
|
743
|
-
break;
|
|
744
|
-
}
|
|
745
|
-
this.skipType(wireType, depth + 1, nestedField);
|
|
746
|
-
}
|
|
747
|
-
break;
|
|
748
|
-
case 5:
|
|
749
|
-
this.skip(4);
|
|
750
|
-
break;
|
|
751
|
-
|
|
752
|
-
/* istanbul ignore next */
|
|
753
|
-
default:
|
|
754
|
-
throw Error("invalid wire type " + wireType + " at offset " + this.pos);
|
|
755
|
-
}
|
|
756
|
-
return this;
|
|
757
|
-
};
|
|
758
|
-
|
|
759
|
-
Reader._configure = function(BufferReader_) {
|
|
760
|
-
BufferReader = BufferReader_;
|
|
761
|
-
Reader.create = create();
|
|
762
|
-
BufferReader._configure();
|
|
763
|
-
|
|
764
|
-
var fn = util.Long ? "toLong" : /* istanbul ignore next */ "toNumber";
|
|
765
|
-
util.merge(Reader.prototype, {
|
|
766
|
-
|
|
767
|
-
int64: function read_int64() {
|
|
768
|
-
return readLongVarint.call(this)[fn](false);
|
|
769
|
-
},
|
|
770
|
-
|
|
771
|
-
uint64: function read_uint64() {
|
|
772
|
-
return readLongVarint.call(this)[fn](true);
|
|
773
|
-
},
|
|
774
|
-
|
|
775
|
-
sint64: function read_sint64() {
|
|
776
|
-
return readLongVarint.call(this).zzDecode()[fn](false);
|
|
777
|
-
},
|
|
778
|
-
|
|
779
|
-
fixed64: function read_fixed64() {
|
|
780
|
-
return readFixed64.call(this)[fn](true);
|
|
781
|
-
},
|
|
782
|
-
|
|
783
|
-
sfixed64: function read_sfixed64() {
|
|
784
|
-
return readFixed64.call(this)[fn](false);
|
|
785
|
-
}
|
|
786
|
-
|
|
787
|
-
});
|
|
788
|
-
};
|