protobufjs 8.7.2 → 8.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -17
- package/dist/light/protobuf.js +179 -30
- package/dist/light/protobuf.js.map +1 -1
- package/dist/light/protobuf.min.js +3 -3
- package/dist/light/protobuf.min.js.map +1 -1
- package/dist/minimal/protobuf.js +113 -20
- package/dist/minimal/protobuf.js.map +1 -1
- package/dist/minimal/protobuf.min.js +3 -3
- package/dist/minimal/protobuf.min.js.map +1 -1
- package/dist/protobuf.js +202 -37
- package/dist/protobuf.js.map +1 -1
- package/dist/protobuf.min.js +3 -3
- package/dist/protobuf.min.js.map +1 -1
- package/ext/descriptor.generated.d.ts +7 -0
- package/ext/descriptor.js +33 -0
- package/ext/protojson.js +29 -8
- package/ext/textformat.js +8 -4
- package/google/protobuf/descriptor.json +24 -1
- package/google/protobuf/descriptor.proto +15 -1
- package/google/protobuf/json_enumvalue_options.json +56 -0
- package/google/protobuf/json_enumvalue_options.proto +31 -0
- package/index.d.ts +18 -0
- package/package.json +1 -1
- package/src/decoder.js +35 -6
- package/src/enum.js +10 -0
- package/src/object.js +5 -2
- package/src/parse.js +9 -4
- package/src/reader.js +110 -17
- package/src/reader_buffer.js +1 -1
- package/src/tokenize.js +14 -3
- package/src/type.js +11 -1
- package/src/wrappers.js +5 -1
package/dist/minimal/protobuf.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* protobuf.js v8.
|
|
3
|
-
* compiled
|
|
2
|
+
* protobuf.js v8.8.1 (c) 2016, daniel wirtz
|
|
3
|
+
* compiled sun, 11 oct 2026 17:08:01 utc
|
|
4
4
|
* licensed under the bsd-3-clause license
|
|
5
5
|
* see: https://github.com/dcodeio/protobuf.js for details
|
|
6
6
|
*/
|
|
@@ -171,12 +171,32 @@ Reader.prototype.raw = function read_raw(start, end) {
|
|
|
171
171
|
return this.buf.subarray(start, end);
|
|
172
172
|
};
|
|
173
173
|
|
|
174
|
+
function readVarint32NearEnd(reader) {
|
|
175
|
+
// Safely read up to four bytes of a varint32 near the reader limit
|
|
176
|
+
var value = 0;
|
|
177
|
+
for (var i = 0; i < 4; ++i) {
|
|
178
|
+
if (reader.pos >= reader.len)
|
|
179
|
+
throw indexOutOfRange(reader);
|
|
180
|
+
var b = reader.buf[reader.pos++];
|
|
181
|
+
value = (value | (b & 127) << i * 7) >>> 0;
|
|
182
|
+
if (b < 128)
|
|
183
|
+
return value;
|
|
184
|
+
}
|
|
185
|
+
throw indexOutOfRange(reader);
|
|
186
|
+
}
|
|
187
|
+
|
|
174
188
|
/**
|
|
175
189
|
* Reads a varint as an unsigned 32 bit value.
|
|
176
190
|
* @function
|
|
177
191
|
* @returns {number} Value read
|
|
178
192
|
*/
|
|
179
193
|
Reader.prototype.uint32 = function read_uint32() {
|
|
194
|
+
if (this.len - this.pos < 5) {
|
|
195
|
+
if (this.pos >= this.len)
|
|
196
|
+
throw indexOutOfRange(this);
|
|
197
|
+
if (this.buf[this.pos] >= 128)
|
|
198
|
+
return readVarint32NearEnd(this);
|
|
199
|
+
}
|
|
180
200
|
var buf = this.buf,
|
|
181
201
|
pos = this.pos,
|
|
182
202
|
value = (buf[pos] & 127) >>> 0;
|
|
@@ -227,6 +247,12 @@ Reader.prototype.uint32 = function read_uint32() {
|
|
|
227
247
|
* @returns {number} Tag read
|
|
228
248
|
*/
|
|
229
249
|
Reader.prototype.tag = function read_tag() {
|
|
250
|
+
if (this.len - this.pos < 5) {
|
|
251
|
+
if (this.pos >= this.len)
|
|
252
|
+
throw indexOutOfRange(this);
|
|
253
|
+
if (this.buf[this.pos] >= 128)
|
|
254
|
+
return readVarint32NearEnd(this);
|
|
255
|
+
}
|
|
230
256
|
var buf = this.buf,
|
|
231
257
|
pos = this.pos,
|
|
232
258
|
value = (buf[pos] & 127) >>> 0;
|
|
@@ -259,6 +285,45 @@ Reader.prototype.tag = function read_tag() {
|
|
|
259
285
|
throw Error("invalid tag encoding");
|
|
260
286
|
};
|
|
261
287
|
|
|
288
|
+
/**
|
|
289
|
+
* Reads a varint length prefix within signed 32 bit range.
|
|
290
|
+
* @returns {number} Length read
|
|
291
|
+
*/
|
|
292
|
+
Reader.prototype.size = function read_size() {
|
|
293
|
+
if (this.len - this.pos < 5) {
|
|
294
|
+
if (this.pos >= this.len)
|
|
295
|
+
throw indexOutOfRange(this);
|
|
296
|
+
if (this.buf[this.pos] >= 128)
|
|
297
|
+
return readVarint32NearEnd(this);
|
|
298
|
+
}
|
|
299
|
+
var buf = this.buf,
|
|
300
|
+
pos = this.pos,
|
|
301
|
+
value = (buf[pos] & 127) >>> 0;
|
|
302
|
+
if (buf[pos++] < 128) {
|
|
303
|
+
this.pos = pos;
|
|
304
|
+
return value;
|
|
305
|
+
}
|
|
306
|
+
value = (value | (buf[pos] & 127) << 7) >>> 0;
|
|
307
|
+
if (buf[pos++] < 128) {
|
|
308
|
+
this.pos = pos;
|
|
309
|
+
return value;
|
|
310
|
+
}
|
|
311
|
+
value = (value | (buf[pos] & 127) << 14) >>> 0;
|
|
312
|
+
if (buf[pos++] < 128) {
|
|
313
|
+
this.pos = pos;
|
|
314
|
+
return value;
|
|
315
|
+
}
|
|
316
|
+
value = (value | (buf[pos] & 127) << 21) >>> 0;
|
|
317
|
+
if (buf[pos++] < 128) {
|
|
318
|
+
this.pos = pos;
|
|
319
|
+
return value;
|
|
320
|
+
}
|
|
321
|
+
this.pos = pos + 1;
|
|
322
|
+
if (buf[pos] > 7)
|
|
323
|
+
throw Error("invalid length encoding");
|
|
324
|
+
return (value | buf[pos] << 28) >>> 0;
|
|
325
|
+
};
|
|
326
|
+
|
|
262
327
|
/**
|
|
263
328
|
* Reads a varint as a signed 32 bit value.
|
|
264
329
|
* @returns {number} Value read
|
|
@@ -472,7 +537,9 @@ Reader.prototype.double = function read_double() {
|
|
|
472
537
|
*/
|
|
473
538
|
Reader.prototype.uint32s = function read_uint32s(array) {
|
|
474
539
|
if (array === undefined) array = [];
|
|
475
|
-
var end = this.
|
|
540
|
+
var end = this.size() + this.pos, len = this.len, buf = this.buf, pos = this.pos, value;
|
|
541
|
+
if (end > len) throw indexOutOfRange(this, end - this.pos);
|
|
542
|
+
this.len = end;
|
|
476
543
|
while (pos < end) {
|
|
477
544
|
value = buf[pos++];
|
|
478
545
|
if (value < 128)
|
|
@@ -484,6 +551,8 @@ Reader.prototype.uint32s = function read_uint32s(array) {
|
|
|
484
551
|
}
|
|
485
552
|
}
|
|
486
553
|
this.pos = pos;
|
|
554
|
+
if (pos !== end) throw RangeError("index out of range");
|
|
555
|
+
this.len = len;
|
|
487
556
|
return array;
|
|
488
557
|
};
|
|
489
558
|
|
|
@@ -494,7 +563,9 @@ Reader.prototype.uint32s = function read_uint32s(array) {
|
|
|
494
563
|
*/
|
|
495
564
|
Reader.prototype.int32s = function read_int32s(array) {
|
|
496
565
|
if (array === undefined) array = [];
|
|
497
|
-
var end = this.
|
|
566
|
+
var end = this.size() + this.pos, len = this.len, buf = this.buf, pos = this.pos, value;
|
|
567
|
+
if (end > len) throw indexOutOfRange(this, end - this.pos);
|
|
568
|
+
this.len = end;
|
|
498
569
|
while (pos < end) {
|
|
499
570
|
value = buf[pos++];
|
|
500
571
|
if (value < 128)
|
|
@@ -506,6 +577,8 @@ Reader.prototype.int32s = function read_int32s(array) {
|
|
|
506
577
|
}
|
|
507
578
|
}
|
|
508
579
|
this.pos = pos;
|
|
580
|
+
if (pos !== end) throw RangeError("index out of range");
|
|
581
|
+
this.len = len;
|
|
509
582
|
return array;
|
|
510
583
|
};
|
|
511
584
|
|
|
@@ -516,9 +589,13 @@ Reader.prototype.int32s = function read_int32s(array) {
|
|
|
516
589
|
*/
|
|
517
590
|
Reader.prototype.sint32s = function read_sint32s(array) {
|
|
518
591
|
if (array === undefined) array = [];
|
|
519
|
-
var end = this.
|
|
592
|
+
var end = this.size() + this.pos, len = this.len;
|
|
593
|
+
if (end > len) throw indexOutOfRange(this, end - this.pos);
|
|
594
|
+
this.len = end;
|
|
520
595
|
while (this.pos < end)
|
|
521
596
|
array.push(this.sint32());
|
|
597
|
+
if (this.pos !== end) throw RangeError("index out of range");
|
|
598
|
+
this.len = len;
|
|
522
599
|
return array;
|
|
523
600
|
};
|
|
524
601
|
|
|
@@ -529,7 +606,9 @@ Reader.prototype.sint32s = function read_sint32s(array) {
|
|
|
529
606
|
*/
|
|
530
607
|
Reader.prototype.bools = function read_bools(array) {
|
|
531
608
|
if (array === undefined) array = [];
|
|
532
|
-
var end = this.
|
|
609
|
+
var end = this.size() + this.pos, len = this.len, buf = this.buf, pos = this.pos, value;
|
|
610
|
+
if (end > len) throw indexOutOfRange(this, end - this.pos);
|
|
611
|
+
this.len = end;
|
|
533
612
|
while (pos < end) {
|
|
534
613
|
value = buf[pos++];
|
|
535
614
|
if (value < 128)
|
|
@@ -541,6 +620,8 @@ Reader.prototype.bools = function read_bools(array) {
|
|
|
541
620
|
}
|
|
542
621
|
}
|
|
543
622
|
this.pos = pos;
|
|
623
|
+
if (pos !== end) throw RangeError("index out of range");
|
|
624
|
+
this.len = len;
|
|
544
625
|
return array;
|
|
545
626
|
};
|
|
546
627
|
|
|
@@ -563,7 +644,7 @@ function getLazyView(reader, count, threshold) {
|
|
|
563
644
|
*/
|
|
564
645
|
Reader.prototype.fixed32s = function read_fixed32s(array) {
|
|
565
646
|
if (array === undefined) array = [];
|
|
566
|
-
var len = this.
|
|
647
|
+
var len = this.size(), end = this.pos + len;
|
|
567
648
|
/* istanbul ignore if */
|
|
568
649
|
if (end > this.len) throw indexOutOfRange(this, len);
|
|
569
650
|
var count = len >>> 2, i = array.length, pos = this.pos;
|
|
@@ -587,7 +668,7 @@ Reader.prototype.fixed32s = function read_fixed32s(array) {
|
|
|
587
668
|
*/
|
|
588
669
|
Reader.prototype.sfixed32s = function read_sfixed32s(array) {
|
|
589
670
|
if (array === undefined) array = [];
|
|
590
|
-
var len = this.
|
|
671
|
+
var len = this.size(), end = this.pos + len;
|
|
591
672
|
/* istanbul ignore if */
|
|
592
673
|
if (end > this.len) throw indexOutOfRange(this, len);
|
|
593
674
|
var count = len >>> 2, i = array.length, pos = this.pos;
|
|
@@ -611,7 +692,7 @@ Reader.prototype.sfixed32s = function read_sfixed32s(array) {
|
|
|
611
692
|
*/
|
|
612
693
|
Reader.prototype.floats = function read_floats(array) {
|
|
613
694
|
if (array === undefined) array = [];
|
|
614
|
-
var len = this.
|
|
695
|
+
var len = this.size(), end = this.pos + len;
|
|
615
696
|
/* istanbul ignore if */
|
|
616
697
|
if (end > this.len) throw indexOutOfRange(this, len);
|
|
617
698
|
var count = len >>> 2, i = array.length, pos = this.pos;
|
|
@@ -635,7 +716,7 @@ Reader.prototype.floats = function read_floats(array) {
|
|
|
635
716
|
*/
|
|
636
717
|
Reader.prototype.doubles = function read_doubles(array) {
|
|
637
718
|
if (array === undefined) array = [];
|
|
638
|
-
var len = this.
|
|
719
|
+
var len = this.size(), end = this.pos + len;
|
|
639
720
|
/* istanbul ignore if */
|
|
640
721
|
if (end > this.len) throw indexOutOfRange(this, len);
|
|
641
722
|
var count = len >>> 3, i = array.length, pos = this.pos;
|
|
@@ -659,9 +740,13 @@ Reader.prototype.doubles = function read_doubles(array) {
|
|
|
659
740
|
*/
|
|
660
741
|
Reader.prototype.uint64s = function read_uint64s(array) {
|
|
661
742
|
if (array === undefined) array = [];
|
|
662
|
-
var end = this.
|
|
743
|
+
var end = this.size() + this.pos, len = this.len;
|
|
744
|
+
if (end > len) throw indexOutOfRange(this, end - this.pos);
|
|
745
|
+
this.len = end;
|
|
663
746
|
while (this.pos < end)
|
|
664
747
|
array.push(this.uint64());
|
|
748
|
+
if (this.pos !== end) throw RangeError("index out of range");
|
|
749
|
+
this.len = len;
|
|
665
750
|
return array;
|
|
666
751
|
};
|
|
667
752
|
|
|
@@ -672,9 +757,13 @@ Reader.prototype.uint64s = function read_uint64s(array) {
|
|
|
672
757
|
*/
|
|
673
758
|
Reader.prototype.int64s = function read_int64s(array) {
|
|
674
759
|
if (array === undefined) array = [];
|
|
675
|
-
var end = this.
|
|
760
|
+
var end = this.size() + this.pos, len = this.len;
|
|
761
|
+
if (end > len) throw indexOutOfRange(this, end - this.pos);
|
|
762
|
+
this.len = end;
|
|
676
763
|
while (this.pos < end)
|
|
677
764
|
array.push(this.int64());
|
|
765
|
+
if (this.pos !== end) throw RangeError("index out of range");
|
|
766
|
+
this.len = len;
|
|
678
767
|
return array;
|
|
679
768
|
};
|
|
680
769
|
|
|
@@ -685,9 +774,13 @@ Reader.prototype.int64s = function read_int64s(array) {
|
|
|
685
774
|
*/
|
|
686
775
|
Reader.prototype.sint64s = function read_sint64s(array) {
|
|
687
776
|
if (array === undefined) array = [];
|
|
688
|
-
var end = this.
|
|
777
|
+
var end = this.size() + this.pos, len = this.len;
|
|
778
|
+
if (end > len) throw indexOutOfRange(this, end - this.pos);
|
|
779
|
+
this.len = end;
|
|
689
780
|
while (this.pos < end)
|
|
690
781
|
array.push(this.sint64());
|
|
782
|
+
if (this.pos !== end) throw RangeError("index out of range");
|
|
783
|
+
this.len = len;
|
|
691
784
|
return array;
|
|
692
785
|
};
|
|
693
786
|
|
|
@@ -698,7 +791,7 @@ Reader.prototype.sint64s = function read_sint64s(array) {
|
|
|
698
791
|
*/
|
|
699
792
|
Reader.prototype.fixed64s = function read_fixed64s(array) {
|
|
700
793
|
if (array === undefined) array = [];
|
|
701
|
-
var len = this.
|
|
794
|
+
var len = this.size(), end = this.pos + len, i = array.length;
|
|
702
795
|
/* istanbul ignore if */
|
|
703
796
|
if (end > this.len) throw indexOutOfRange(this, len);
|
|
704
797
|
var count = len >>> 3;
|
|
@@ -716,7 +809,7 @@ Reader.prototype.fixed64s = function read_fixed64s(array) {
|
|
|
716
809
|
*/
|
|
717
810
|
Reader.prototype.sfixed64s = function read_sfixed64s(array) {
|
|
718
811
|
if (array === undefined) array = [];
|
|
719
|
-
var len = this.
|
|
812
|
+
var len = this.size(), end = this.pos + len, i = array.length;
|
|
720
813
|
/* istanbul ignore if */
|
|
721
814
|
if (end > this.len) throw indexOutOfRange(this, len);
|
|
722
815
|
var count = len >>> 3;
|
|
@@ -732,7 +825,7 @@ Reader.prototype.sfixed64s = function read_sfixed64s(array) {
|
|
|
732
825
|
* @returns {Uint8Array} Value read
|
|
733
826
|
*/
|
|
734
827
|
Reader.prototype.bytes = function read_bytes() {
|
|
735
|
-
var length = this.
|
|
828
|
+
var length = this.size(),
|
|
736
829
|
start = this.pos,
|
|
737
830
|
end = this.pos + length;
|
|
738
831
|
|
|
@@ -749,7 +842,7 @@ Reader.prototype.bytes = function read_bytes() {
|
|
|
749
842
|
* @returns {string} Value read
|
|
750
843
|
*/
|
|
751
844
|
Reader.prototype.string = function read_string() {
|
|
752
|
-
var length = this.
|
|
845
|
+
var length = this.size(),
|
|
753
846
|
start = this.pos,
|
|
754
847
|
end = this.pos + length;
|
|
755
848
|
|
|
@@ -766,7 +859,7 @@ Reader.prototype.string = function read_string() {
|
|
|
766
859
|
* @returns {string} Value read
|
|
767
860
|
*/
|
|
768
861
|
Reader.prototype.stringVerify = function read_string_verify() {
|
|
769
|
-
var length = this.
|
|
862
|
+
var length = this.size(),
|
|
770
863
|
start = this.pos,
|
|
771
864
|
end = this.pos + length;
|
|
772
865
|
|
|
@@ -832,7 +925,7 @@ Reader.prototype.skipType = function(wireType, depth, fieldNumber) {
|
|
|
832
925
|
this.skip(8);
|
|
833
926
|
break;
|
|
834
927
|
case 2:
|
|
835
|
-
this.skip(this.
|
|
928
|
+
this.skip(this.size());
|
|
836
929
|
break;
|
|
837
930
|
case 3:
|
|
838
931
|
while (true) {
|
|
@@ -947,7 +1040,7 @@ BufferReader.prototype.raw = function read_raw_buffer(start, end) {
|
|
|
947
1040
|
* @override
|
|
948
1041
|
*/
|
|
949
1042
|
BufferReader.prototype.string = function read_string_buffer() {
|
|
950
|
-
var len = this.
|
|
1043
|
+
var len = this.size(), // modifies pos
|
|
951
1044
|
start = this.pos,
|
|
952
1045
|
end = this.pos + len;
|
|
953
1046
|
|