protobufjs 4.1.3 → 5.0.3
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/.travis.yml +3 -1
- package/README.md +147 -25
- package/bin/pbjs +2 -2
- package/bower.json +3 -3
- package/cli/pbjs/targets/amd.js +1 -1
- package/cli/pbjs/targets/json.js +9 -1
- package/cli/pbjs/targets/proto.js +48 -24
- package/cli/pbjs/util.js +1 -1
- package/cli/pbjs.js +9 -2
- package/dist/README.md +10 -10
- package/dist/{ProtoBuf-light.js → protobuf-light.js} +92 -37
- package/dist/protobuf-light.min.js +94 -0
- package/dist/protobuf-light.min.js.gz +0 -0
- package/dist/protobuf-light.min.map +8 -0
- package/dist/{ProtoBuf.js → protobuf.js} +150 -60
- package/dist/protobuf.min.js +116 -0
- package/dist/protobuf.min.js.gz +0 -0
- package/dist/protobuf.min.map +8 -0
- package/docs/ProtoBuf.Builder.Message.html +106 -37
- package/docs/ProtoBuf.Builder.Service.html +9 -9
- package/docs/ProtoBuf.Builder.html +22 -22
- package/docs/ProtoBuf.DotProto.Parser.html +7 -7
- package/docs/ProtoBuf.DotProto.Tokenizer.html +11 -11
- package/docs/ProtoBuf.DotProto.html +2 -2
- package/docs/ProtoBuf.Map.html +6 -6
- package/docs/ProtoBuf.Reflect.Element.html +104 -8
- package/docs/ProtoBuf.Reflect.Enum.Value.html +10 -10
- package/docs/ProtoBuf.Reflect.Enum.html +21 -21
- package/docs/ProtoBuf.Reflect.Extension.html +3 -3
- package/docs/ProtoBuf.Reflect.Message.ExtensionField.html +29 -29
- package/docs/ProtoBuf.Reflect.Message.Field.html +28 -28
- package/docs/ProtoBuf.Reflect.Message.OneOf.html +10 -10
- package/docs/ProtoBuf.Reflect.Message.html +31 -28
- package/docs/ProtoBuf.Reflect.Namespace.html +19 -19
- package/docs/ProtoBuf.Reflect.Service.Method.html +11 -11
- package/docs/ProtoBuf.Reflect.Service.RPCMethod.html +17 -17
- package/docs/ProtoBuf.Reflect.Service.html +20 -20
- package/docs/ProtoBuf.Reflect.T.html +9 -9
- package/docs/ProtoBuf.Reflect.html +2 -2
- package/docs/ProtoBuf.Util.html +6 -6
- package/docs/ProtoBuf.html +28 -28
- package/docs/ProtoBuf.js.html +151 -61
- package/docs/index.html +1 -1
- package/donate.png +0 -0
- package/examples/websocket/server.js +4 -4
- package/externs/{ProtoBuf.js → protobuf.js} +25 -14
- package/index.js +1 -18
- package/jsdoc.json +1 -1
- package/package.json +11 -11
- package/protobuf.png +0 -0
- package/scripts/build.js +5 -10
- package/src/ProtoBuf/Builder/Message.js +17 -8
- package/src/ProtoBuf/Builder/Service.js +3 -0
- package/src/ProtoBuf/Builder.js +34 -10
- package/src/ProtoBuf/DotProto/Parser.js +58 -23
- package/src/ProtoBuf/Lang.js +2 -2
- package/src/ProtoBuf/Reflect/Element.js +17 -4
- package/src/ProtoBuf/Reflect/Message/Field.js +6 -5
- package/src/ProtoBuf/Reflect/Message.js +9 -4
- package/src/{bower.json → bower.json.in} +2 -2
- package/src/google/protobuf/descriptor.json +55 -15
- package/src/{ProtoBuf.js → protobuf.js} +0 -0
- package/src/wrap.js +4 -4
- package/tests/complex.json +8 -1
- package/tests/imports-weak.proto +7 -0
- package/tests/suite.js +107 -82
- package/.npmignore +0 -3
- package/ProtoBuf.png +0 -0
- package/dist/ProtoBuf-light.min.js +0 -87
- package/dist/ProtoBuf-light.min.js.gz +0 -0
- package/dist/ProtoBuf-light.min.map +0 -8
- package/dist/ProtoBuf.min.js +0 -108
- package/dist/ProtoBuf.min.js.gz +0 -0
- package/dist/ProtoBuf.min.map +0 -8
- package/examples/protoify/.npmignore +0 -2
- package/examples/websocket/.npmignore +0 -3
- package/externs/ByteBuffer.js +0 -767
- package/externs/Long.js +0 -328
- package/tests/gtfs-realtime.proto +0 -552
- package/webpack.config.js +0 -9
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* @license
|
|
18
|
+
* @license protobuf.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
|
|
19
19
|
* Released under the Apache License, Version 2.0
|
|
20
|
-
* see: https://github.com/dcodeIO/
|
|
20
|
+
* see: https://github.com/dcodeIO/protobuf.js for details
|
|
21
21
|
*/
|
|
22
22
|
(function(global, factory) {
|
|
23
23
|
|
|
24
24
|
/* AMD */ if (typeof define === 'function' && define["amd"])
|
|
25
|
-
define(["
|
|
25
|
+
define(["bytebuffer"], factory);
|
|
26
26
|
/* CommonJS */ else if (typeof require === "function" && typeof module === "object" && module && module["exports"])
|
|
27
27
|
module["exports"] = factory(require("bytebuffer"), true);
|
|
28
28
|
/* Global */ else
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* @const
|
|
58
58
|
* @expose
|
|
59
59
|
*/
|
|
60
|
-
ProtoBuf.VERSION = "
|
|
60
|
+
ProtoBuf.VERSION = "5.0.3";
|
|
61
61
|
|
|
62
62
|
/**
|
|
63
63
|
* Wire types.
|
|
@@ -429,10 +429,10 @@
|
|
|
429
429
|
TYPEDEF: /^[a-zA-Z][a-zA-Z_0-9]*$/,
|
|
430
430
|
|
|
431
431
|
// Type references
|
|
432
|
-
TYPEREF: /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)
|
|
432
|
+
TYPEREF: /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,
|
|
433
433
|
|
|
434
434
|
// Fully qualified type references
|
|
435
|
-
FQTYPEREF: /^(?:\.[a-zA-
|
|
435
|
+
FQTYPEREF: /^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/,
|
|
436
436
|
|
|
437
437
|
// All numbers
|
|
438
438
|
NUMBER: /^-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+|([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?)|inf|nan)$/,
|
|
@@ -801,9 +801,11 @@
|
|
|
801
801
|
* converted to string form if so.
|
|
802
802
|
* @param {string} syntax Syntax level of defining message type, e.g.,
|
|
803
803
|
* proto2 or proto3.
|
|
804
|
+
* @param {string} name Name of the field containing this element (for error
|
|
805
|
+
* messages)
|
|
804
806
|
* @constructor
|
|
805
807
|
*/
|
|
806
|
-
var Element = function(type, resolvedType, isMapKey, syntax) {
|
|
808
|
+
var Element = function(type, resolvedType, isMapKey, syntax, name) {
|
|
807
809
|
|
|
808
810
|
/**
|
|
809
811
|
* Element type, as a string (e.g., int32).
|
|
@@ -829,6 +831,12 @@
|
|
|
829
831
|
*/
|
|
830
832
|
this.syntax = syntax;
|
|
831
833
|
|
|
834
|
+
/**
|
|
835
|
+
* Name of the field containing this element (for error messages)
|
|
836
|
+
* @type {string}
|
|
837
|
+
*/
|
|
838
|
+
this.name = name;
|
|
839
|
+
|
|
832
840
|
if (isMapKey && ProtoBuf.MAP_KEY_TYPES.indexOf(type) < 0)
|
|
833
841
|
throw Error("Invalid map key type: " + type.name);
|
|
834
842
|
};
|
|
@@ -879,6 +887,10 @@
|
|
|
879
887
|
throw Error("not convertible to Long");
|
|
880
888
|
}
|
|
881
889
|
|
|
890
|
+
ElementPrototype.toString = function() {
|
|
891
|
+
return (this.name || '') + (this.isMapKey ? 'map' : 'value') + ' element';
|
|
892
|
+
}
|
|
893
|
+
|
|
882
894
|
/**
|
|
883
895
|
* Checks if the given value can be set for an element of this type (singular
|
|
884
896
|
* field or one element of a repeated field or map).
|
|
@@ -888,9 +900,10 @@
|
|
|
888
900
|
* @expose
|
|
889
901
|
*/
|
|
890
902
|
ElementPrototype.verifyValue = function(value) {
|
|
891
|
-
var
|
|
892
|
-
|
|
893
|
-
|
|
903
|
+
var self = this;
|
|
904
|
+
function fail(val, msg) {
|
|
905
|
+
throw Error("Illegal value for "+self.toString(true)+" of type "+self.type.name+": "+val+" ("+msg+")");
|
|
906
|
+
}
|
|
894
907
|
switch (this.type) {
|
|
895
908
|
// Signed 32bit
|
|
896
909
|
case ProtoBuf.TYPES["int32"]:
|
|
@@ -1380,10 +1393,10 @@
|
|
|
1380
1393
|
|
|
1381
1394
|
/**
|
|
1382
1395
|
* Extensions range.
|
|
1383
|
-
* @type {!Array.<number
|
|
1396
|
+
* @type {!Array.<number>|undefined}
|
|
1384
1397
|
* @expose
|
|
1385
1398
|
*/
|
|
1386
|
-
this.extensions =
|
|
1399
|
+
this.extensions = undefined;
|
|
1387
1400
|
|
|
1388
1401
|
/**
|
|
1389
1402
|
* Runtime message class.
|
|
@@ -1552,9 +1565,11 @@
|
|
|
1552
1565
|
MessagePrototype.set = function(keyOrObj, value, noAssert) {
|
|
1553
1566
|
if (keyOrObj && typeof keyOrObj === 'object') {
|
|
1554
1567
|
noAssert = value;
|
|
1555
|
-
for (var ikey in keyOrObj)
|
|
1556
|
-
if
|
|
1568
|
+
for (var ikey in keyOrObj) {
|
|
1569
|
+
// Check if virtual oneof field - don't set these
|
|
1570
|
+
if (keyOrObj.hasOwnProperty(ikey) && typeof (value = keyOrObj[ikey]) !== 'undefined' && T._oneofsByName[ikey] === undefined)
|
|
1557
1571
|
this.$set(ikey, value, noAssert);
|
|
1572
|
+
}
|
|
1558
1573
|
return this;
|
|
1559
1574
|
}
|
|
1560
1575
|
var field = T._fieldsByName[keyOrObj];
|
|
@@ -1782,18 +1797,19 @@
|
|
|
1782
1797
|
* @name ProtoBuf.Builder.Message#encodeDelimited
|
|
1783
1798
|
* @function
|
|
1784
1799
|
* @param {(!ByteBuffer|boolean)=} buffer ByteBuffer to encode to. Will create a new one and flip it if omitted.
|
|
1800
|
+
* @param {boolean=} noVerify Whether to not verify field values, defaults to `false`
|
|
1785
1801
|
* @return {!ByteBuffer} Encoded message as a ByteBuffer
|
|
1786
1802
|
* @throws {Error} If the message cannot be encoded or if required fields are missing. The later still
|
|
1787
1803
|
* returns the encoded ByteBuffer in the `encoded` property on the error.
|
|
1788
1804
|
* @expose
|
|
1789
1805
|
*/
|
|
1790
|
-
MessagePrototype.encodeDelimited = function(buffer) {
|
|
1806
|
+
MessagePrototype.encodeDelimited = function(buffer, noVerify) {
|
|
1791
1807
|
var isNew = false;
|
|
1792
1808
|
if (!buffer)
|
|
1793
1809
|
buffer = new ByteBuffer(),
|
|
1794
1810
|
isNew = true;
|
|
1795
1811
|
var enc = new ByteBuffer().LE();
|
|
1796
|
-
T.encode(this, enc).flip();
|
|
1812
|
+
T.encode(this, enc, noVerify).flip();
|
|
1797
1813
|
buffer.writeVarint32(enc.remaining());
|
|
1798
1814
|
buffer.append(enc);
|
|
1799
1815
|
return isNew ? buffer.flip() : buffer;
|
|
@@ -2002,6 +2018,7 @@
|
|
|
2002
2018
|
* @name ProtoBuf.Builder.Message.decode
|
|
2003
2019
|
* @function
|
|
2004
2020
|
* @param {!ByteBuffer|!ArrayBuffer|!Buffer|string} buffer Buffer to decode from
|
|
2021
|
+
* @param {(number|string)=} length Message length. Defaults to decode all the remainig data.
|
|
2005
2022
|
* @param {string=} enc Encoding if buffer is a string: hex, utf8 (not recommended), defaults to base64
|
|
2006
2023
|
* @return {!ProtoBuf.Builder.Message} Decoded message
|
|
2007
2024
|
* @throws {Error} If the message cannot be decoded or if required fields are missing. The later still
|
|
@@ -2010,13 +2027,17 @@
|
|
|
2010
2027
|
* @see ProtoBuf.Builder.Message.decode64
|
|
2011
2028
|
* @see ProtoBuf.Builder.Message.decodeHex
|
|
2012
2029
|
*/
|
|
2013
|
-
Message.decode = function(buffer, enc) {
|
|
2030
|
+
Message.decode = function(buffer, length, enc) {
|
|
2031
|
+
if (typeof length === 'string')
|
|
2032
|
+
enc = length,
|
|
2033
|
+
length = -1;
|
|
2014
2034
|
if (typeof buffer === 'string')
|
|
2015
2035
|
buffer = ByteBuffer.wrap(buffer, enc ? enc : "base64");
|
|
2016
|
-
|
|
2036
|
+
else if (!ByteBuffer.isByteBuffer(buffer))
|
|
2037
|
+
buffer = ByteBuffer.wrap(buffer); // May throw
|
|
2017
2038
|
var le = buffer.littleEndian;
|
|
2018
2039
|
try {
|
|
2019
|
-
var msg = T.decode(buffer.LE());
|
|
2040
|
+
var msg = T.decode(buffer.LE(), length);
|
|
2020
2041
|
buffer.LE(le);
|
|
2021
2042
|
return msg;
|
|
2022
2043
|
} catch (e) {
|
|
@@ -2039,7 +2060,8 @@
|
|
|
2039
2060
|
Message.decodeDelimited = function(buffer, enc) {
|
|
2040
2061
|
if (typeof buffer === 'string')
|
|
2041
2062
|
buffer = ByteBuffer.wrap(buffer, enc ? enc : "base64");
|
|
2042
|
-
|
|
2063
|
+
else if (!ByteBuffer.isByteBuffer(buffer))
|
|
2064
|
+
buffer = ByteBuffer.wrap(buffer); // May throw
|
|
2043
2065
|
if (buffer.remaining() < 1)
|
|
2044
2066
|
return null;
|
|
2045
2067
|
var off = buffer.offset,
|
|
@@ -2161,6 +2183,7 @@
|
|
|
2161
2183
|
this._fields = [];
|
|
2162
2184
|
this._fieldsById = {};
|
|
2163
2185
|
this._fieldsByName = {};
|
|
2186
|
+
this._oneofsByName = {};
|
|
2164
2187
|
for (var i=0, k=this.children.length, child; i<k; i++) {
|
|
2165
2188
|
child = this.children[i];
|
|
2166
2189
|
if (child instanceof Enum || child instanceof Message || child instanceof Service) {
|
|
@@ -2172,6 +2195,9 @@
|
|
|
2172
2195
|
this._fields.push(child),
|
|
2173
2196
|
this._fieldsById[child.id] = child,
|
|
2174
2197
|
this._fieldsByName[child.name] = child;
|
|
2198
|
+
else if (child instanceof Message.OneOf) {
|
|
2199
|
+
this._oneofsByName[child.name] = child;
|
|
2200
|
+
}
|
|
2175
2201
|
else if (!(child instanceof Message.OneOf) && !(child instanceof Extension)) // Not built
|
|
2176
2202
|
throw Error("Illegal reflect child of "+this.toString(true)+": "+this.children[i].toString(true));
|
|
2177
2203
|
}
|
|
@@ -2271,14 +2297,15 @@
|
|
|
2271
2297
|
/**
|
|
2272
2298
|
* Decodes an encoded message and returns the decoded message.
|
|
2273
2299
|
* @param {ByteBuffer} buffer ByteBuffer to decode from
|
|
2274
|
-
* @param {number=} length Message length. Defaults to decode all
|
|
2300
|
+
* @param {number=} length Message length. Defaults to decode all remaining data.
|
|
2275
2301
|
* @param {number=} expectedGroupEndId Expected GROUPEND id if this is a legacy group
|
|
2276
2302
|
* @return {ProtoBuf.Builder.Message} Decoded message
|
|
2277
2303
|
* @throws {Error} If the message cannot be decoded
|
|
2278
2304
|
* @expose
|
|
2279
2305
|
*/
|
|
2280
2306
|
MessagePrototype.decode = function(buffer, length, expectedGroupEndId) {
|
|
2281
|
-
|
|
2307
|
+
if (typeof length !== 'number')
|
|
2308
|
+
length = -1;
|
|
2282
2309
|
var start = buffer.offset,
|
|
2283
2310
|
msg = new (this.clazz)(),
|
|
2284
2311
|
tag, wireType, id, field;
|
|
@@ -2497,9 +2524,9 @@
|
|
|
2497
2524
|
* @expose
|
|
2498
2525
|
*/
|
|
2499
2526
|
FieldPrototype.build = function() {
|
|
2500
|
-
this.element = new Element(this.type, this.resolvedType, false, this.syntax);
|
|
2527
|
+
this.element = new Element(this.type, this.resolvedType, false, this.syntax, this.name);
|
|
2501
2528
|
if (this.map)
|
|
2502
|
-
this.keyElement = new Element(this.keyType, undefined, true, this.syntax);
|
|
2529
|
+
this.keyElement = new Element(this.keyType, undefined, true, this.syntax, this.name);
|
|
2503
2530
|
|
|
2504
2531
|
// In proto3, fields do not have field presence, and every field is set to
|
|
2505
2532
|
// its type's default value ("", 0, 0.0, or false).
|
|
@@ -2521,9 +2548,10 @@
|
|
|
2521
2548
|
*/
|
|
2522
2549
|
FieldPrototype.verifyValue = function(value, skipRepeated) {
|
|
2523
2550
|
skipRepeated = skipRepeated || false;
|
|
2524
|
-
var
|
|
2525
|
-
|
|
2526
|
-
|
|
2551
|
+
var self = this;
|
|
2552
|
+
function fail(val, msg) {
|
|
2553
|
+
throw Error("Illegal value for "+self.toString(true)+" of type "+self.type.name+": "+val+" ("+msg+")");
|
|
2554
|
+
}
|
|
2527
2555
|
if (value === null) { // NULL values for optional fields
|
|
2528
2556
|
if (this.required)
|
|
2529
2557
|
fail(typeof value, "required");
|
|
@@ -3137,6 +3165,9 @@
|
|
|
3137
3165
|
callback(err);
|
|
3138
3166
|
return;
|
|
3139
3167
|
}
|
|
3168
|
+
// Coalesce to empty string when service response has empty content
|
|
3169
|
+
if (res === null)
|
|
3170
|
+
res = ''
|
|
3140
3171
|
try { res = method.resolvedResponseType.clazz.decode(res); } catch (notABuffer) {}
|
|
3141
3172
|
if (!res || !(res instanceof method.resolvedResponseType.clazz)) {
|
|
3142
3173
|
callback(Error("Illegal response type received in service method "+ T.name+"#"+method.name));
|
|
@@ -3580,13 +3611,12 @@
|
|
|
3580
3611
|
subObj.push(svc);
|
|
3581
3612
|
});
|
|
3582
3613
|
|
|
3583
|
-
// Set extension
|
|
3614
|
+
// Set extension ranges
|
|
3584
3615
|
if (def["extensions"]) {
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
obj.extensions[1] = ProtoBuf.ID_MAX;
|
|
3616
|
+
if (typeof def["extensions"][0] === 'number') // pre 5.0.1
|
|
3617
|
+
obj.extensions = [ def["extensions"] ];
|
|
3618
|
+
else
|
|
3619
|
+
obj.extensions = def["extensions"];
|
|
3590
3620
|
}
|
|
3591
3621
|
|
|
3592
3622
|
// Create on top of current namespace
|
|
@@ -3625,8 +3655,16 @@
|
|
|
3625
3655
|
def["fields"].forEach(function(fld) {
|
|
3626
3656
|
if (obj.getChild(fld['id']|0) !== null)
|
|
3627
3657
|
throw Error("duplicate extended field id in "+obj.name+": "+fld['id']);
|
|
3628
|
-
if
|
|
3629
|
-
|
|
3658
|
+
// Check if field id is allowed to be extended
|
|
3659
|
+
if (obj.extensions) {
|
|
3660
|
+
var valid = false;
|
|
3661
|
+
obj.extensions.forEach(function(range) {
|
|
3662
|
+
if (fld["id"] >= range[0] && fld["id"] <= range[1])
|
|
3663
|
+
valid = true;
|
|
3664
|
+
});
|
|
3665
|
+
if (!valid)
|
|
3666
|
+
throw Error("illegal extended field id in "+obj.name+": "+fld['id']+" (not within valid ranges)");
|
|
3667
|
+
}
|
|
3630
3668
|
// Convert extension field names to camel case notation if the override is set
|
|
3631
3669
|
var name = fld["name"];
|
|
3632
3670
|
if (this.options['convertFieldsToCamelCase'])
|
|
@@ -3707,7 +3745,11 @@
|
|
|
3707
3745
|
root = require("path")['resolve'](root);
|
|
3708
3746
|
if (root.indexOf("\\") >= 0 || filename.file.indexOf("\\") >= 0)
|
|
3709
3747
|
delim = '\\';
|
|
3710
|
-
var fname
|
|
3748
|
+
var fname;
|
|
3749
|
+
if (ProtoBuf.Util.IS_NODE)
|
|
3750
|
+
fname = require("path")['join'](root, filename.file);
|
|
3751
|
+
else
|
|
3752
|
+
fname = root + delim + filename.file;
|
|
3711
3753
|
if (this.files[fname] === true)
|
|
3712
3754
|
return this.reset();
|
|
3713
3755
|
this.files[fname] = true;
|
|
@@ -3753,7 +3795,10 @@
|
|
|
3753
3795
|
var importFilename = json['imports'][i];
|
|
3754
3796
|
if (importFilename === "google/protobuf/descriptor.proto")
|
|
3755
3797
|
continue; // Not needed and therefore not used
|
|
3756
|
-
|
|
3798
|
+
if (ProtoBuf.Util.IS_NODE)
|
|
3799
|
+
importFilename = require("path")['join'](importRoot, importFilename);
|
|
3800
|
+
else
|
|
3801
|
+
importFilename = importRoot + delim + importFilename;
|
|
3757
3802
|
if (this.files[importFilename] === true)
|
|
3758
3803
|
continue; // Already imported
|
|
3759
3804
|
if (/\.proto$/i.test(importFilename) && !ProtoBuf.DotProto) // If this is a light build
|
|
@@ -3851,6 +3896,16 @@
|
|
|
3851
3896
|
this.ptr.keyType = ProtoBuf.TYPES[this.ptr.keyType];
|
|
3852
3897
|
}
|
|
3853
3898
|
|
|
3899
|
+
// If it's a repeated and packable field then proto3 mandates it should be packed by
|
|
3900
|
+
// default
|
|
3901
|
+
if (
|
|
3902
|
+
this.ptr.syntax === 'proto3' &&
|
|
3903
|
+
this.ptr.repeated && this.ptr.options.packed === undefined &&
|
|
3904
|
+
ProtoBuf.PACKABLE_WIRE_TYPES.indexOf(this.ptr.type.wireType) !== -1
|
|
3905
|
+
) {
|
|
3906
|
+
this.ptr.options.packed = true;
|
|
3907
|
+
}
|
|
3908
|
+
|
|
3854
3909
|
} else if (this.ptr instanceof ProtoBuf.Reflect.Service.Method) {
|
|
3855
3910
|
|
|
3856
3911
|
if (this.ptr instanceof ProtoBuf.Reflect.Service.RPCMethod) {
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/*
|
|
2
|
+
protobuf.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
|
|
3
|
+
Released under the Apache License, Version 2.0
|
|
4
|
+
see: https://github.com/dcodeIO/protobuf.js for details
|
|
5
|
+
*/
|
|
6
|
+
var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(e,p,d){if(d.get||d.set)throw new TypeError("ES3 does not support getters and setters.");e!=Array.prototype&&e!=Object.prototype&&(e[p]=d.value)};$jscomp.getGlobal=function(e){return"undefined"!=typeof window&&window===e?e:"undefined"!=typeof global&&null!=global?global:e};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_";
|
|
7
|
+
$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(e){return $jscomp.SYMBOL_PREFIX+(e||"")+$jscomp.symbolCounter_++};
|
|
8
|
+
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var e=$jscomp.global.Symbol.iterator;e||(e=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[e]&&$jscomp.defineProperty(Array.prototype,e,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(e){var p=0;return $jscomp.iteratorPrototype(function(){return p<e.length?{done:!1,value:e[p++]}:{done:!0}})};
|
|
9
|
+
$jscomp.iteratorPrototype=function(e){$jscomp.initSymbolIterator();e={next:e};e[$jscomp.global.Symbol.iterator]=function(){return this};return e};$jscomp.array=$jscomp.array||{};$jscomp.iteratorFromArray=function(e,p){$jscomp.initSymbolIterator();e instanceof String&&(e+="");var d=0,c={next:function(){if(d<e.length){var t=d++;return{value:p(t,e[t]),done:!1}}c.next=function(){return{done:!0,value:void 0}};return c.next()}};c[Symbol.iterator]=function(){return c};return c};
|
|
10
|
+
$jscomp.polyfill=function(e,p,d,c){if(p){d=$jscomp.global;e=e.split(".");for(c=0;c<e.length-1;c++){var t=e[c];t in d||(d[t]={});d=d[t]}e=e[e.length-1];c=d[e];p=p(c);p!=c&&null!=p&&$jscomp.defineProperty(d,e,{configurable:!0,writable:!0,value:p})}};$jscomp.polyfill("Array.prototype.keys",function(e){return e?e:function(){return $jscomp.iteratorFromArray(this,function(e){return e})}},"es6-impl","es3");
|
|
11
|
+
$jscomp.polyfill("Array.prototype.entries",function(e){return e?e:function(){return $jscomp.iteratorFromArray(this,function(e,d){return[e,d]})}},"es6-impl","es3");$jscomp.polyfill("Array.prototype.values",function(e){return e?e:function(){return $jscomp.iteratorFromArray(this,function(e,d){return d})}},"es6","es3");
|
|
12
|
+
(function(e,p){"function"===typeof define&&define.amd?define(["bytebuffer"],p):"function"===typeof require&&"object"===typeof module&&module&&module.exports?module.exports=p(require("bytebuffer"),!0):(e.dcodeIO=e.dcodeIO||{}).ProtoBuf=p(e.dcodeIO.ByteBuffer)})(this,function(e,p){var d={};d.ByteBuffer=e;d.Long=e.Long||null;d.VERSION="5.0.3";d.WIRE_TYPES={};d.WIRE_TYPES.VARINT=0;d.WIRE_TYPES.BITS64=1;d.WIRE_TYPES.LDELIM=2;d.WIRE_TYPES.STARTGROUP=3;d.WIRE_TYPES.ENDGROUP=4;d.WIRE_TYPES.BITS32=5;d.PACKABLE_WIRE_TYPES=
|
|
13
|
+
[d.WIRE_TYPES.VARINT,d.WIRE_TYPES.BITS64,d.WIRE_TYPES.BITS32];d.TYPES={int32:{name:"int32",wireType:d.WIRE_TYPES.VARINT,defaultValue:0},uint32:{name:"uint32",wireType:d.WIRE_TYPES.VARINT,defaultValue:0},sint32:{name:"sint32",wireType:d.WIRE_TYPES.VARINT,defaultValue:0},int64:{name:"int64",wireType:d.WIRE_TYPES.VARINT,defaultValue:d.Long?d.Long.ZERO:void 0},uint64:{name:"uint64",wireType:d.WIRE_TYPES.VARINT,defaultValue:d.Long?d.Long.UZERO:void 0},sint64:{name:"sint64",wireType:d.WIRE_TYPES.VARINT,
|
|
14
|
+
defaultValue:d.Long?d.Long.ZERO:void 0},bool:{name:"bool",wireType:d.WIRE_TYPES.VARINT,defaultValue:!1},"double":{name:"double",wireType:d.WIRE_TYPES.BITS64,defaultValue:0},string:{name:"string",wireType:d.WIRE_TYPES.LDELIM,defaultValue:""},bytes:{name:"bytes",wireType:d.WIRE_TYPES.LDELIM,defaultValue:null},fixed32:{name:"fixed32",wireType:d.WIRE_TYPES.BITS32,defaultValue:0},sfixed32:{name:"sfixed32",wireType:d.WIRE_TYPES.BITS32,defaultValue:0},fixed64:{name:"fixed64",wireType:d.WIRE_TYPES.BITS64,
|
|
15
|
+
defaultValue:d.Long?d.Long.UZERO:void 0},sfixed64:{name:"sfixed64",wireType:d.WIRE_TYPES.BITS64,defaultValue:d.Long?d.Long.ZERO:void 0},"float":{name:"float",wireType:d.WIRE_TYPES.BITS32,defaultValue:0},"enum":{name:"enum",wireType:d.WIRE_TYPES.VARINT,defaultValue:0},message:{name:"message",wireType:d.WIRE_TYPES.LDELIM,defaultValue:null},group:{name:"group",wireType:d.WIRE_TYPES.STARTGROUP,defaultValue:null}};d.MAP_KEY_TYPES=[d.TYPES.int32,d.TYPES.sint32,d.TYPES.sfixed32,d.TYPES.uint32,d.TYPES.fixed32,
|
|
16
|
+
d.TYPES.int64,d.TYPES.sint64,d.TYPES.sfixed64,d.TYPES.uint64,d.TYPES.fixed64,d.TYPES.bool,d.TYPES.string,d.TYPES.bytes];d.ID_MIN=1;d.ID_MAX=536870911;d.convertFieldsToCamelCase=!1;d.populateAccessors=!0;d.populateDefaults=!0;d.Util=function(){var c={};c.IS_NODE=!("object"!==typeof process||"[object process]"!==process+""||process.browser);c.XHR=function(){for(var c=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},
|
|
17
|
+
function(){return new ActiveXObject("Microsoft.XMLHTTP")}],d=null,e=0;e<c.length;e++){try{d=c[e]()}catch(k){continue}break}if(!d)throw Error("XMLHttpRequest is not supported");return d};c.fetch=function(d,e){e&&"function"!=typeof e&&(e=null);if(c.IS_NODE){var t=require("fs");if(e)t.readFile(d,function(c,b){c?e(null):e(""+b)});else try{return t.readFileSync(d)}catch(l){return null}}else{var k=c.XHR();k.open("GET",d,e?!0:!1);k.setRequestHeader("Accept","text/plain");"function"===typeof k.overrideMimeType&&
|
|
18
|
+
k.overrideMimeType("text/plain");if(e)k.onreadystatechange=function(){4==k.readyState&&(200==k.status||0==k.status&&"string"===typeof k.responseText?e(k.responseText):e(null))},4!=k.readyState&&k.send(null);else return k.send(null),200==k.status||0==k.status&&"string"===typeof k.responseText?k.responseText:null}};c.toCamelCase=function(c){return c.replace(/_([a-zA-Z])/g,function(c,e){return e.toUpperCase()})};return c}();d.Lang={DELIM:/[\s\{\}=;:\[\],'"\(\)<>]/g,RULE:/^(?:required|optional|repeated|map)$/,
|
|
19
|
+
TYPE:/^(?:double|float|int32|uint32|sint32|int64|uint64|sint64|fixed32|sfixed32|fixed64|sfixed64|bool|string|bytes)$/,NAME:/^[a-zA-Z_][a-zA-Z_0-9]*$/,TYPEDEF:/^[a-zA-Z][a-zA-Z_0-9]*$/,TYPEREF:/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,FQTYPEREF:/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/,NUMBER:/^-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+|([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?)|inf|nan)$/,NUMBER_DEC:/^(?:[1-9][0-9]*|0)$/,NUMBER_HEX:/^0[xX][0-9a-fA-F]+$/,NUMBER_OCT:/^0[0-7]+$/,NUMBER_FLT:/^([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?|inf|nan)$/,
|
|
20
|
+
BOOL:/^(?:true|false)$/i,ID:/^(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,NEGID:/^\-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,WHITESPACE:/\s/,STRING:/(?:"([^"\\]*(?:\\.[^"\\]*)*)")|(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,STRING_DQ:/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,STRING_SQ:/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g};d.Reflect=function(c){function d(a,g){if(a&&"number"===typeof a.low&&"number"===typeof a.high&&"boolean"===typeof a.unsigned&&a.low===a.low&&a.high===a.high)return new c.Long(a.low,a.high,"undefined"===
|
|
21
|
+
typeof g?a.unsigned:g);if("string"===typeof a)return c.Long.fromString(a,g||!1,10);if("number"===typeof a)return c.Long.fromNumber(a,g||!1);throw Error("not convertible to Long");}function z(a,g){var h=g.readVarint32(),b=h&7,h=h>>>3;switch(b){case c.WIRE_TYPES.VARINT:do h=g.readUint8();while(128===(h&128));break;case c.WIRE_TYPES.BITS64:g.offset+=8;break;case c.WIRE_TYPES.LDELIM:h=g.readVarint32();g.offset+=h;break;case c.WIRE_TYPES.STARTGROUP:z(h,g);break;case c.WIRE_TYPES.ENDGROUP:if(h===a)return!1;
|
|
22
|
+
throw Error("Illegal GROUPEND after unknown group: "+h+" ("+a+" expected)");case c.WIRE_TYPES.BITS32:g.offset+=4;break;default:throw Error("Illegal wire type in unknown group "+a+": "+b);}return!0}var r={},k=function(a,g,c){this.builder=a;this.parent=g;this.name=c},l=k.prototype;l.fqn=function(){var a=this.name,g=this;do{g=g.parent;if(null==g)break;a=g.name+"."+a}while(1);return a};l.toString=function(a){return(a?this.className+" ":"")+this.fqn()};l.build=function(){throw Error(this.toString(!0)+
|
|
23
|
+
" cannot be built directly");};r.T=k;var b=function(a,g,c,b,e){k.call(this,a,g,c);this.className="Namespace";this.children=[];this.options=b||{};this.syntax=e||"proto2"},l=b.prototype=Object.create(k.prototype);l.getChildren=function(a){a=a||null;if(null==a)return this.children.slice();for(var g=[],c=0,b=this.children.length;c<b;++c)this.children[c]instanceof a&&g.push(this.children[c]);return g};l.addChild=function(a){var c;if(c=this.getChild(a.name))if(c instanceof u.Field&&c.name!==c.originalName&&
|
|
24
|
+
null===this.getChild(c.originalName))c.name=c.originalName;else if(a instanceof u.Field&&a.name!==a.originalName&&null===this.getChild(a.originalName))a.name=a.originalName;else throw Error("Duplicate name in namespace "+this.toString(!0)+": "+a.name);this.children.push(a)};l.getChild=function(a){for(var c="number"===typeof a?"id":"name",h=0,b=this.children.length;h<b;++h)if(this.children[h][c]===a)return this.children[h];return null};l.resolve=function(a,c){var g="string"===typeof a?a.split("."):
|
|
25
|
+
a,b=this,e=0;if(""===g[e]){for(;null!==b.parent;)b=b.parent;e++}do{do{if(!(b instanceof r.Namespace)){b=null;break}b=b.getChild(g[e]);if(!(b&&b instanceof r.T)||c&&!(b instanceof r.Namespace)){b=null;break}e++}while(e<g.length);if(null!=b)break;if(null!==this.parent)return this.parent.resolve(a,c)}while(null!=b);return b};l.qn=function(a){var c=[],b=a;do c.unshift(b.name),b=b.parent;while(null!==b);for(b=1;b<=c.length;b++){var e=c.slice(c.length-b);if(a===this.resolve(e,a instanceof r.Namespace))return e.join(".")}return a.fqn()};
|
|
26
|
+
l.build=function(){for(var a={},c=this.children,h=0,e=c.length,d;h<e;++h)d=c[h],d instanceof b&&(a[d.name]=d.build());Object.defineProperty&&Object.defineProperty(a,"$options",{value:this.buildOpt()});return a};l.buildOpt=function(){for(var a={},c=Object.keys(this.options),b=0,e=c.length;b<e;++b)a[c[b]]=this.options[c[b]];return a};l.getOption=function(a){return"undefined"===typeof a?this.options:"undefined"!==typeof this.options[a]?this.options[a]:null};r.Namespace=b;var m=function(a,g,b,e,d){this.type=
|
|
27
|
+
a;this.resolvedType=g;this.isMapKey=b;this.syntax=e;this.name=d;if(b&&0>c.MAP_KEY_TYPES.indexOf(a))throw Error("Invalid map key type: "+a.name);},f=m.prototype;m.defaultFieldValue=function(a){"string"===typeof a&&(a=c.TYPES[a]);if("undefined"===typeof a.defaultValue)throw Error("default value for type "+a.name+" is not supported");return a==c.TYPES.bytes?new e(0):a.defaultValue};f.toString=function(){return(this.name||"")+(this.isMapKey?"map":"value")+" element"};f.verifyValue=function(a){function g(a,
|
|
28
|
+
c){throw Error("Illegal value for "+b.toString(!0)+" of type "+b.type.name+": "+a+" ("+c+")");}var b=this;switch(this.type){case c.TYPES.int32:case c.TYPES.sint32:case c.TYPES.sfixed32:return("number"!==typeof a||a===a&&0!==a%1)&&g(typeof a,"not an integer"),4294967295<a?a|0:a;case c.TYPES.uint32:case c.TYPES.fixed32:return("number"!==typeof a||a===a&&0!==a%1)&&g(typeof a,"not an integer"),0>a?a>>>0:a;case c.TYPES.int64:case c.TYPES.sint64:case c.TYPES.sfixed64:if(c.Long)try{return d(a,!1)}catch(w){g(typeof a,
|
|
29
|
+
w.message)}else g(typeof a,"requires Long.js");case c.TYPES.uint64:case c.TYPES.fixed64:if(c.Long)try{return d(a,!0)}catch(w){g(typeof a,w.message)}else g(typeof a,"requires Long.js");case c.TYPES.bool:return"boolean"!==typeof a&&g(typeof a,"not a boolean"),a;case c.TYPES["float"]:case c.TYPES["double"]:return"number"!==typeof a&&g(typeof a,"not a number"),a;case c.TYPES.string:return"string"===typeof a||a&&a instanceof String||g(typeof a,"not a string"),""+a;case c.TYPES.bytes:return e.isByteBuffer(a)?
|
|
30
|
+
a:e.wrap(a,"base64");case c.TYPES["enum"]:for(var v=this.resolvedType.getChildren(c.Reflect.Enum.Value),q=0;q<v.length;q++)if(v[q].name==a||v[q].id==a)return v[q].id;if("proto3"===this.syntax)return("number"!==typeof a||a===a&&0!==a%1)&&g(typeof a,"not an integer"),(4294967295<a||0>a)&&g(typeof a,"not in range for uint32"),a;g(a,"not a valid enum value");case c.TYPES.group:case c.TYPES.message:a&&"object"===typeof a||g(typeof a,"object expected");if(a instanceof this.resolvedType.clazz)return a;if(a instanceof
|
|
31
|
+
c.Builder.Message){var v={},q;for(q in a)a.hasOwnProperty(q)&&(v[q]=a[q]);a=v}return new this.resolvedType.clazz(a)}throw Error("[INTERNAL] Illegal value for "+this.toString(!0)+": "+a+" (undefined type "+this.type+")");};f.calculateLength=function(a,g){if(null===g)return 0;var b;switch(this.type){case c.TYPES.int32:return 0>g?e.calculateVarint64(g):e.calculateVarint32(g);case c.TYPES.uint32:return e.calculateVarint32(g);case c.TYPES.sint32:return e.calculateVarint32(e.zigZagEncode32(g));case c.TYPES.fixed32:case c.TYPES.sfixed32:case c.TYPES["float"]:return 4;
|
|
32
|
+
case c.TYPES.int64:case c.TYPES.uint64:return e.calculateVarint64(g);case c.TYPES.sint64:return e.calculateVarint64(e.zigZagEncode64(g));case c.TYPES.fixed64:case c.TYPES.sfixed64:return 8;case c.TYPES.bool:return 1;case c.TYPES["enum"]:return e.calculateVarint32(g);case c.TYPES["double"]:return 8;case c.TYPES.string:return b=e.calculateUTF8Bytes(g),e.calculateVarint32(b)+b;case c.TYPES.bytes:if(0>g.remaining())throw Error("Illegal value for "+this.toString(!0)+": "+g.remaining()+" bytes remaining");
|
|
33
|
+
return e.calculateVarint32(g.remaining())+g.remaining();case c.TYPES.message:return b=this.resolvedType.calculate(g),e.calculateVarint32(b)+b;case c.TYPES.group:return b=this.resolvedType.calculate(g),b+e.calculateVarint32(a<<3|c.WIRE_TYPES.ENDGROUP)}throw Error("[INTERNAL] Illegal value to encode in "+this.toString(!0)+": "+g+" (unknown type)");};f.encodeValue=function(a,g,b){if(null===g)return b;switch(this.type){case c.TYPES.int32:0>g?b.writeVarint64(g):b.writeVarint32(g);break;case c.TYPES.uint32:b.writeVarint32(g);
|
|
34
|
+
break;case c.TYPES.sint32:b.writeVarint32ZigZag(g);break;case c.TYPES.fixed32:b.writeUint32(g);break;case c.TYPES.sfixed32:b.writeInt32(g);break;case c.TYPES.int64:case c.TYPES.uint64:b.writeVarint64(g);break;case c.TYPES.sint64:b.writeVarint64ZigZag(g);break;case c.TYPES.fixed64:b.writeUint64(g);break;case c.TYPES.sfixed64:b.writeInt64(g);break;case c.TYPES.bool:"string"===typeof g?b.writeVarint32("false"===g.toLowerCase()?0:!!g):b.writeVarint32(g?1:0);break;case c.TYPES["enum"]:b.writeVarint32(g);
|
|
35
|
+
break;case c.TYPES["float"]:b.writeFloat32(g);break;case c.TYPES["double"]:b.writeFloat64(g);break;case c.TYPES.string:b.writeVString(g);break;case c.TYPES.bytes:if(0>g.remaining())throw Error("Illegal value for "+this.toString(!0)+": "+g.remaining()+" bytes remaining");a=g.offset;b.writeVarint32(g.remaining());b.append(g);g.offset=a;break;case c.TYPES.message:a=(new e).LE();this.resolvedType.encode(g,a);b.writeVarint32(a.offset);b.append(a.flip());break;case c.TYPES.group:this.resolvedType.encode(g,
|
|
36
|
+
b);b.writeVarint32(a<<3|c.WIRE_TYPES.ENDGROUP);break;default:throw Error("[INTERNAL] Illegal value to encode in "+this.toString(!0)+": "+g+" (unknown type)");}return b};f.decode=function(a,b,e){if(b!=this.type.wireType)throw Error("Unexpected wire type for element");switch(this.type){case c.TYPES.int32:return a.readVarint32()|0;case c.TYPES.uint32:return a.readVarint32()>>>0;case c.TYPES.sint32:return a.readVarint32ZigZag()|0;case c.TYPES.fixed32:return a.readUint32()>>>0;case c.TYPES.sfixed32:return a.readInt32()|
|
|
37
|
+
0;case c.TYPES.int64:return a.readVarint64();case c.TYPES.uint64:return a.readVarint64().toUnsigned();case c.TYPES.sint64:return a.readVarint64ZigZag();case c.TYPES.fixed64:return a.readUint64();case c.TYPES.sfixed64:return a.readInt64();case c.TYPES.bool:return!!a.readVarint32();case c.TYPES["enum"]:return a.readVarint32();case c.TYPES["float"]:return a.readFloat();case c.TYPES["double"]:return a.readDouble();case c.TYPES.string:return a.readVString();case c.TYPES.bytes:e=a.readVarint32();if(a.remaining()<
|
|
38
|
+
e)throw Error("Illegal number of bytes for "+this.toString(!0)+": "+e+" required but got only "+a.remaining());b=a.clone();b.limit=b.offset+e;a.offset+=e;return b;case c.TYPES.message:return e=a.readVarint32(),this.resolvedType.decode(a,e);case c.TYPES.group:return this.resolvedType.decode(a,-1,e)}throw Error("[INTERNAL] Illegal decode type");};f.valueFromString=function(a){if(!this.isMapKey)throw Error("valueFromString() called on non-map-key element");switch(this.type){case c.TYPES.int32:case c.TYPES.sint32:case c.TYPES.sfixed32:case c.TYPES.uint32:case c.TYPES.fixed32:return this.verifyValue(parseInt(a));
|
|
39
|
+
case c.TYPES.int64:case c.TYPES.sint64:case c.TYPES.sfixed64:case c.TYPES.uint64:case c.TYPES.fixed64:return this.verifyValue(a);case c.TYPES.bool:return"true"===a;case c.TYPES.string:return this.verifyValue(a);case c.TYPES.bytes:return e.fromBinary(a)}};f.valueToString=function(a){if(!this.isMapKey)throw Error("valueToString() called on non-map-key element");return this.type===c.TYPES.bytes?a.toString("binary"):a.toString()};r.Element=m;var u=function(a,c,e,d,q,f){b.call(this,a,c,e,d,f);this.className=
|
|
40
|
+
"Message";this.extensions=void 0;this.clazz=null;this.isGroup=!!q;this._fieldsByName=this._fieldsById=this._fields=null},f=u.prototype=Object.create(b.prototype);f.build=function(a){if(this.clazz&&!a)return this.clazz;a=function(a,c){function b(c,g,f,d){if(null===c||"object"!==typeof c){if(d&&d instanceof a.Reflect.Enum){var h=a.Reflect.Enum.getName(d.object,c);if(null!==h)return h}return c}if(e.isByteBuffer(c))return g?c.toBase64():c.toBuffer();if(a.Long.isLong(c))return f?c.toString():a.Long.fromValue(c);
|
|
41
|
+
var n;if(Array.isArray(c))return n=[],c.forEach(function(a,c){n[c]=b(a,g,f,d)}),n;n={};if(c instanceof a.Map){for(var h=c.entries(),m=h.next();!m.done;m=h.next())n[c.keyElem.valueToString(m.value[0])]=b(m.value[1],g,f,c.valueElem.resolvedType);return n}var h=c.$type,m=void 0,q;for(q in c)c.hasOwnProperty(q)&&(h&&(m=h.getChild(q))?n[q]=b(c[q],g,f,m.resolvedType):n[q]=b(c[q],g,f));return n}var g=c.getChildren(a.Reflect.Message.Field),d=c.getChildren(a.Reflect.Message.OneOf),f=function(b,h){a.Builder.Message.call(this);
|
|
42
|
+
for(var n=0,m=d.length;n<m;++n)this[d[n].name]=null;n=0;for(m=g.length;n<m;++n){var q=g[n];this[q.name]=q.repeated?[]:q.map?new a.Map(q):null;!q.required&&"proto3"!==c.syntax||null===q.defaultValue||(this[q.name]=q.defaultValue)}if(0<arguments.length)if(1!==arguments.length||null===b||"object"!==typeof b||!("function"!==typeof b.encode||b instanceof f)||Array.isArray(b)||b instanceof a.Map||e.isByteBuffer(b)||b instanceof ArrayBuffer||a.Long&&b instanceof a.Long)for(n=0,m=arguments.length;n<m;++n)"undefined"!==
|
|
43
|
+
typeof(q=arguments[n])&&this.$set(g[n].name,q);else this.$set(b)},h=f.prototype=Object.create(a.Builder.Message.prototype);h.add=function(b,g,e){var f=c._fieldsByName[b];if(!e){if(!f)throw Error(this+"#"+b+" is undefined");if(!(f instanceof a.Reflect.Message.Field))throw Error(this+"#"+b+" is not a field: "+f.toString(!0));if(!f.repeated)throw Error(this+"#"+b+" is not a repeated field");g=f.verifyValue(g,!0)}null===this[b]&&(this[b]=[]);this[b].push(g);return this};h.$add=h.add;h.set=function(b,
|
|
44
|
+
g,e){if(b&&"object"===typeof b){e=g;for(var f in b)b.hasOwnProperty(f)&&"undefined"!==typeof(g=b[f])&&void 0===c._oneofsByName[f]&&this.$set(f,g,e);return this}f=c._fieldsByName[b];if(e)this[b]=g;else{if(!f)throw Error(this+"#"+b+" is not a field: undefined");if(!(f instanceof a.Reflect.Message.Field))throw Error(this+"#"+b+" is not a field: "+f.toString(!0));this[f.name]=g=f.verifyValue(g)}f&&f.oneof&&(e=this[f.oneof.name],null!==g?(null!==e&&e!==f.name&&(this[e]=null),this[f.oneof.name]=f.name):
|
|
45
|
+
e===b&&(this[f.oneof.name]=null));return this};h.$set=h.set;h.get=function(b,g){if(g)return this[b];var f=c._fieldsByName[b];if(!(f&&f instanceof a.Reflect.Message.Field))throw Error(this+"#"+b+" is not a field: undefined");if(!(f instanceof a.Reflect.Message.Field))throw Error(this+"#"+b+" is not a field: "+f.toString(!0));return this[f.name]};h.$get=h.get;for(var m=0;m<g.length;m++){var q=g[m];q instanceof a.Reflect.Message.ExtensionField||c.builder.options.populateAccessors&&function(a){var b=
|
|
46
|
+
a.originalName.replace(/(_[a-zA-Z])/g,function(a){return a.toUpperCase().replace("_","")}),b=b.substring(0,1).toUpperCase()+b.substring(1),g=a.originalName.replace(/([A-Z])/g,function(a){return"_"+a}),f=function(c,b){this[a.name]=b?c:a.verifyValue(c);return this},e=function(){return this[a.name]};null===c.getChild("set"+b)&&(h["set"+b]=f);null===c.getChild("set_"+g)&&(h["set_"+g]=f);null===c.getChild("get"+b)&&(h["get"+b]=e);null===c.getChild("get_"+g)&&(h["get_"+g]=e)}(q)}h.encode=function(a,b){"boolean"===
|
|
47
|
+
typeof a&&(b=a,a=void 0);var g=!1;a||(a=new e,g=!0);var f=a.littleEndian;try{return c.encode(this,a.LE(),b),(g?a.flip():a).LE(f)}catch(C){throw a.LE(f),C;}};f.encode=function(a,c,b){return(new f(a)).encode(c,b)};h.calculate=function(){return c.calculate(this)};h.encodeDelimited=function(a,b){var g=!1;a||(a=new e,g=!0);var f=(new e).LE();c.encode(this,f,b).flip();a.writeVarint32(f.remaining());a.append(f);return g?a.flip():a};h.encodeAB=function(){try{return this.encode().toArrayBuffer()}catch(n){throw n.encoded&&
|
|
48
|
+
(n.encoded=n.encoded.toArrayBuffer()),n;}};h.toArrayBuffer=h.encodeAB;h.encodeNB=function(){try{return this.encode().toBuffer()}catch(n){throw n.encoded&&(n.encoded=n.encoded.toBuffer()),n;}};h.toBuffer=h.encodeNB;h.encode64=function(){try{return this.encode().toBase64()}catch(n){throw n.encoded&&(n.encoded=n.encoded.toBase64()),n;}};h.toBase64=h.encode64;h.encodeHex=function(){try{return this.encode().toHex()}catch(n){throw n.encoded&&(n.encoded=n.encoded.toHex()),n;}};h.toHex=h.encodeHex;h.toRaw=
|
|
49
|
+
function(a,c){return b(this,!!a,!!c,this.$type)};h.encodeJSON=function(){return JSON.stringify(b(this,!0,!0,this.$type))};f.decode=function(a,b,g){"string"===typeof b&&(g=b,b=-1);"string"===typeof a?a=e.wrap(a,g?g:"base64"):e.isByteBuffer(a)||(a=e.wrap(a));g=a.littleEndian;try{var f=c.decode(a.LE(),b);a.LE(g);return f}catch(C){throw a.LE(g),C;}};f.decodeDelimited=function(a,b){"string"===typeof a?a=e.wrap(a,b?b:"base64"):e.isByteBuffer(a)||(a=e.wrap(a));if(1>a.remaining())return null;var g=a.offset,
|
|
50
|
+
f=a.readVarint32();if(a.remaining()<f)return a.offset=g,null;try{var h=c.decode(a.slice(a.offset,a.offset+f).LE());a.offset+=f;return h}catch(E){throw a.offset+=f,E;}};f.decode64=function(a){return f.decode(a,"base64")};f.decodeHex=function(a){return f.decode(a,"hex")};f.decodeJSON=function(a){return new f(JSON.parse(a))};h.toString=function(){return c.toString()};Object.defineProperty&&(Object.defineProperty(f,"$options",{value:c.buildOpt()}),Object.defineProperty(h,"$options",{value:f.$options}),
|
|
51
|
+
Object.defineProperty(f,"$type",{value:c}),Object.defineProperty(h,"$type",{value:c}));return f}(c,this);this._fields=[];this._fieldsById={};this._fieldsByName={};this._oneofsByName={};for(var b=0,d=this.children.length,f;b<d;b++)if(f=this.children[b],f instanceof x||f instanceof u||f instanceof D){if(a.hasOwnProperty(f.name))throw Error("Illegal reflect child of "+this.toString(!0)+": "+f.toString(!0)+" cannot override static property '"+f.name+"'");a[f.name]=f.build()}else if(f instanceof u.Field)f.build(),
|
|
52
|
+
this._fields.push(f),this._fieldsById[f.id]=f,this._fieldsByName[f.name]=f;else if(f instanceof u.OneOf)this._oneofsByName[f.name]=f;else if(!(f instanceof u.OneOf||f instanceof y))throw Error("Illegal reflect child of "+this.toString(!0)+": "+this.children[b].toString(!0));return this.clazz=a};f.encode=function(a,c,b){for(var g=null,f,e=0,h=this._fields.length,d;e<h;++e)f=this._fields[e],d=a[f.name],f.required&&null===d?null===g&&(g=f):f.encode(b?d:f.verifyValue(d),c,a);if(null!==g)throw a=Error("Missing at least one required field for "+
|
|
53
|
+
this.toString(!0)+": "+g),a.encoded=c,a;return c};f.calculate=function(a){for(var c=0,b=0,f=this._fields.length,e,d;b<f;++b){e=this._fields[b];d=a[e.name];if(e.required&&null===d)throw Error("Missing at least one required field for "+this.toString(!0)+": "+e);c+=e.calculate(d,a)}return c};f.decode=function(a,b,f){"number"!==typeof b&&(b=-1);for(var g=a.offset,e=new this.clazz,d,h,m;a.offset<g+b||-1===b&&0<a.remaining();){d=a.readVarint32();h=d&7;m=d>>>3;if(h===c.WIRE_TYPES.ENDGROUP){if(m!==f)throw Error("Illegal group end indicator for "+
|
|
54
|
+
this.toString(!0)+": "+m+" ("+(f?f+" expected":"not a group")+")");break}if(d=this._fieldsById[m])d.repeated&&!d.options.packed?e[d.name].push(d.decode(h,a)):d.map?(h=d.decode(h,a),e[d.name].set(h[0],h[1])):(e[d.name]=d.decode(h,a),d.oneof&&(h=e[d.oneof.name],null!==h&&h!==d.name&&(e[h]=null),e[d.oneof.name]=d.name));else switch(h){case c.WIRE_TYPES.VARINT:a.readVarint32();break;case c.WIRE_TYPES.BITS32:a.offset+=4;break;case c.WIRE_TYPES.BITS64:a.offset+=8;break;case c.WIRE_TYPES.LDELIM:d=a.readVarint32();
|
|
55
|
+
a.offset+=d;break;case c.WIRE_TYPES.STARTGROUP:for(;z(m,a););break;default:throw Error("Illegal wire type for unknown field "+m+" in "+this.toString(!0)+"#decode: "+h);}}a=0;for(b=this._fields.length;a<b;++a)if(d=this._fields[a],null===e[d.name])if("proto3"===this.syntax)e[d.name]=d.defaultValue;else{if(d.required)throw a=Error("Missing at least one required field for "+this.toString(!0)+": "+d.name),a.decoded=e,a;c.populateDefaults&&null!==d.defaultValue&&(e[d.name]=d.defaultValue)}return e};r.Message=
|
|
56
|
+
u;var p=function(a,b,f,e,d,m,l,y,t,z){k.call(this,a,b,m);this.className="Message.Field";this.required="required"===f;this.repeated="repeated"===f;this.map="map"===f;this.keyType=e||null;this.type=d;this.resolvedType=null;this.id=l;this.options=y||{};this.defaultValue=null;this.oneof=t||null;this.syntax=z||"proto2";this.originalName=this.name;this.keyElement=this.element=null;!this.builder.options.convertFieldsToCamelCase||this instanceof u.ExtensionField||(this.name=c.Util.toCamelCase(this.name))},
|
|
57
|
+
f=p.prototype=Object.create(k.prototype);f.build=function(){this.element=new m(this.type,this.resolvedType,!1,this.syntax,this.name);this.map&&(this.keyElement=new m(this.keyType,void 0,!0,this.syntax,this.name));"proto3"!==this.syntax||this.repeated||this.map?"undefined"!==typeof this.options["default"]&&(this.defaultValue=this.verifyValue(this.options["default"])):this.defaultValue=m.defaultFieldValue(this.type)};f.verifyValue=function(a,b){function g(a,c){throw Error("Illegal value for "+f.toString(!0)+
|
|
58
|
+
" of type "+f.type.name+": "+a+" ("+c+")");}b=b||!1;var f=this;if(null===a)return this.required&&g(typeof a,"required"),"proto3"===this.syntax&&this.type!==c.TYPES.message&&g(typeof a,"proto3 field without field presence cannot be null"),null;var e;if(this.repeated&&!b){Array.isArray(a)||(a=[a]);var d=[];for(e=0;e<a.length;e++)d.push(this.element.verifyValue(a[e]));return d}if(this.map&&!b){if(a instanceof c.Map)return a;a instanceof Object||g(typeof a,"expected ProtoBuf.Map or raw object for map field");
|
|
59
|
+
return new c.Map(this,a)}!this.repeated&&Array.isArray(a)&&g(typeof a,"no array expected");return this.element.verifyValue(a)};f.hasWirePresence=function(a,b){if("proto3"!==this.syntax)return null!==a;if(this.oneof&&b[this.oneof.name]===this.name)return!0;switch(this.type){case c.TYPES.int32:case c.TYPES.sint32:case c.TYPES.sfixed32:case c.TYPES.uint32:case c.TYPES.fixed32:return 0!==a;case c.TYPES.int64:case c.TYPES.sint64:case c.TYPES.sfixed64:case c.TYPES.uint64:case c.TYPES.fixed64:return 0!==
|
|
60
|
+
a.low||0!==a.high;case c.TYPES.bool:return a;case c.TYPES["float"]:case c.TYPES["double"]:return 0!==a;case c.TYPES.string:return 0<a.length;case c.TYPES.bytes:return 0<a.remaining();case c.TYPES["enum"]:return 0!==a;case c.TYPES.message:return null!==a;default:return!0}};f.encode=function(a,b,f){if(null===this.type||"object"!==typeof this.type)throw Error("[INTERNAL] Unresolved type in "+this.toString(!0)+": "+this.type);if(null===a||this.repeated&&0==a.length)return b;try{if(this.repeated){var g;
|
|
61
|
+
if(this.options.packed&&0<=c.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)){b.writeVarint32(this.id<<3|c.WIRE_TYPES.LDELIM);b.ensureCapacity(b.offset+=1);var d=b.offset;for(g=0;g<a.length;g++)this.element.encodeValue(this.id,a[g],b);var h=b.offset-d,m=e.calculateVarint32(h);if(1<m){var l=b.slice(d,b.offset),d=d+(m-1);b.offset=d;b.append(l)}b.writeVarint32(h,d-m)}else for(g=0;g<a.length;g++)b.writeVarint32(this.id<<3|this.type.wireType),this.element.encodeValue(this.id,a[g],b)}else this.map?a.forEach(function(a,
|
|
62
|
+
g,f){f=e.calculateVarint32(8|this.keyType.wireType)+this.keyElement.calculateLength(1,g)+e.calculateVarint32(16|this.type.wireType)+this.element.calculateLength(2,a);b.writeVarint32(this.id<<3|c.WIRE_TYPES.LDELIM);b.writeVarint32(f);b.writeVarint32(8|this.keyType.wireType);this.keyElement.encodeValue(1,g,b);b.writeVarint32(16|this.type.wireType);this.element.encodeValue(2,a,b)},this):this.hasWirePresence(a,f)&&(b.writeVarint32(this.id<<3|this.type.wireType),this.element.encodeValue(this.id,a,b))}catch(F){throw Error("Illegal value for "+
|
|
63
|
+
this.toString(!0)+": "+a+" ("+F+")");}return b};f.calculate=function(a,b){a=this.verifyValue(a);if(null===this.type||"object"!==typeof this.type)throw Error("[INTERNAL] Unresolved type in "+this.toString(!0)+": "+this.type);if(null===a||this.repeated&&0==a.length)return 0;var g=0;try{if(this.repeated){var f,d;if(this.options.packed&&0<=c.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)){g+=e.calculateVarint32(this.id<<3|c.WIRE_TYPES.LDELIM);for(f=d=0;f<a.length;f++)d+=this.element.calculateLength(this.id,
|
|
64
|
+
a[f]);g+=e.calculateVarint32(d);g+=d}else for(f=0;f<a.length;f++)g+=e.calculateVarint32(this.id<<3|this.type.wireType),g+=this.element.calculateLength(this.id,a[f])}else this.map?a.forEach(function(a,b,f){a=e.calculateVarint32(8|this.keyType.wireType)+this.keyElement.calculateLength(1,b)+e.calculateVarint32(16|this.type.wireType)+this.element.calculateLength(2,a);g+=e.calculateVarint32(this.id<<3|c.WIRE_TYPES.LDELIM);g+=e.calculateVarint32(a);g+=a},this):this.hasWirePresence(a,b)&&(g+=e.calculateVarint32(this.id<<
|
|
65
|
+
3|this.type.wireType),g+=this.element.calculateLength(this.id,a))}catch(w){throw Error("Illegal value for "+this.toString(!0)+": "+a+" ("+w+")");}return g};f.decode=function(a,b,f){if(!(!this.map&&a==this.type.wireType||!f&&this.repeated&&this.options.packed&&a==c.WIRE_TYPES.LDELIM||this.map&&a==c.WIRE_TYPES.LDELIM))throw Error("Illegal wire type for field "+this.toString(!0)+": "+a+" ("+this.type.wireType+" expected)");if(a==c.WIRE_TYPES.LDELIM&&this.repeated&&this.options.packed&&0<=c.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)&&
|
|
66
|
+
!f){a=b.readVarint32();a=b.offset+a;for(f=[];b.offset<a;)f.push(this.decode(this.type.wireType,b,!0));return f}if(this.map){var g=m.defaultFieldValue(this.keyType);f=m.defaultFieldValue(this.type);a=b.readVarint32();if(b.remaining()<a)throw Error("Illegal number of bytes for "+this.toString(!0)+": "+a+" required but got only "+b.remaining());var d=b.clone();d.limit=d.offset+a;for(b.offset+=a;0<d.remaining();)if(b=d.readVarint32(),a=b&7,b>>>=3,1===b)g=this.keyElement.decode(d,a,b);else if(2===b)f=
|
|
67
|
+
this.element.decode(d,a,b);else throw Error("Unexpected tag in map field key/value submessage");return[g,f]}return this.element.decode(b,a,this.id)};r.Message.Field=p;f=function(a,b,c,f,d,e,m){p.call(this,a,b,c,null,f,d,e,m)};f.prototype=Object.create(p.prototype);r.Message.ExtensionField=f;r.Message.OneOf=function(a,b,c){k.call(this,a,b,c);this.fields=[]};var x=function(a,c,f,d,e){b.call(this,a,c,f,d,e);this.className="Enum";this.object=null};x.getName=function(a,b){for(var c=Object.keys(a),f=0,
|
|
68
|
+
g;f<c.length;++f)if(a[g=c[f]]===b)return g;return null};(x.prototype=Object.create(b.prototype)).build=function(a){if(this.object&&!a)return this.object;a=new c.Builder.Enum;for(var b=this.getChildren(x.Value),f=0,d=b.length;f<d;++f)a[b[f].name]=b[f].id;Object.defineProperty&&Object.defineProperty(a,"$options",{value:this.buildOpt(),enumerable:!1});return this.object=a};r.Enum=x;f=function(a,b,c,f){k.call(this,a,b,c);this.className="Enum.Value";this.id=f};f.prototype=Object.create(k.prototype);r.Enum.Value=
|
|
69
|
+
f;var y=function(a,b,c,f){k.call(this,a,b,c);this.field=f};y.prototype=Object.create(k.prototype);r.Extension=y;var D=function(a,c,f,d){b.call(this,a,c,f,d);this.className="Service";this.clazz=null};(D.prototype=Object.create(b.prototype)).build=function(a){return this.clazz&&!a?this.clazz:this.clazz=function(a,b){for(var c=function(b){a.Builder.Service.call(this);this.rpcImpl=b||function(a,b,c){setTimeout(c.bind(this,Error("Not implemented, see: https://github.com/dcodeIO/ProtoBuf.js/wiki/Services")),
|
|
70
|
+
0)}},f=c.prototype=Object.create(a.Builder.Service.prototype),d=b.getChildren(a.Reflect.Service.RPCMethod),g=0;g<d.length;g++)(function(a){f[a.name]=function(c,f){try{try{c=a.resolvedRequestType.clazz.decode(e.wrap(c))}catch(A){if(!(A instanceof TypeError))throw A;}if(null===c||"object"!==typeof c)throw Error("Illegal arguments");c instanceof a.resolvedRequestType.clazz||(c=new a.resolvedRequestType.clazz(c));this.rpcImpl(a.fqn(),c,function(c,d){if(c)f(c);else{null===d&&(d="");try{d=a.resolvedResponseType.clazz.decode(d)}catch(G){}d&&
|
|
71
|
+
d instanceof a.resolvedResponseType.clazz?f(null,d):f(Error("Illegal response type received in service method "+b.name+"#"+a.name))}})}catch(A){setTimeout(f.bind(this,A),0)}};c[a.name]=function(b,f,d){(new c(b))[a.name](f,d)};Object.defineProperty&&(Object.defineProperty(c[a.name],"$options",{value:a.buildOpt()}),Object.defineProperty(f[a.name],"$options",{value:c[a.name].$options}))})(d[g]);Object.defineProperty&&(Object.defineProperty(c,"$options",{value:b.buildOpt()}),Object.defineProperty(f,"$options",
|
|
72
|
+
{value:c.$options}),Object.defineProperty(c,"$type",{value:b}),Object.defineProperty(f,"$type",{value:b}));return c}(c,this)};r.Service=D;var B=function(a,b,c,f){k.call(this,a,b,c);this.className="Service.Method";this.options=f||{}};(B.prototype=Object.create(k.prototype)).buildOpt=l.buildOpt;r.Service.Method=B;l=function(a,b,c,f,d,e,m,l){B.call(this,a,b,c,l);this.className="Service.RPCMethod";this.requestName=f;this.responseName=d;this.requestStream=e;this.responseStream=m;this.resolvedResponseType=
|
|
73
|
+
this.resolvedRequestType=null};l.prototype=Object.create(B.prototype);r.Service.RPCMethod=l;return r}(d);d.Builder=function(c,d,e){function t(b){b.messages&&b.messages.forEach(function(c){c.syntax=b.syntax;t(c)});b.enums&&b.enums.forEach(function(c){c.syntax=b.syntax})}var k=function(b){this.ptr=this.ns=new e.Namespace(this,null,"");this.resolved=!1;this.result=null;this.files={};this.importRoot=null;this.options=b||{}},l=k.prototype;k.isMessage=function(b){return"string"!==typeof b.name||"undefined"!==
|
|
74
|
+
typeof b.values||"undefined"!==typeof b.rpc?!1:!0};k.isMessageField=function(b){return"string"!==typeof b.rule||"string"!==typeof b.name||"string"!==typeof b.type||"undefined"===typeof b.id?!1:!0};k.isEnum=function(b){return"string"===typeof b.name&&"undefined"!==typeof b.values&&Array.isArray(b.values)&&0!==b.values.length?!0:!1};k.isService=function(b){return"string"===typeof b.name&&"object"===typeof b.rpc&&b.rpc?!0:!1};k.isExtend=function(b){return"string"!==typeof b.ref?!1:!0};l.reset=function(){this.ptr=
|
|
75
|
+
this.ns;return this};l.define=function(b){if("string"!==typeof b||!d.TYPEREF.test(b))throw Error("illegal namespace: "+b);b.split(".").forEach(function(b){var c=this.ptr.getChild(b);null===c&&this.ptr.addChild(c=new e.Namespace(this,this.ptr,b));this.ptr=c},this);return this};l.create=function(b){if(!b)return this;if(Array.isArray(b)){if(0===b.length)return this;b=b.slice()}else b=[b];for(var d=[b];0<d.length;){b=d.pop();if(!Array.isArray(b))throw Error("not a valid namespace: "+JSON.stringify(b));
|
|
76
|
+
for(;0<b.length;){var f=b.shift();if(k.isMessage(f)){var l=new e.Message(this,this.ptr,f.name,f.options,f.isGroup,f.syntax),t={};f.oneofs&&Object.keys(f.oneofs).forEach(function(b){l.addChild(t[b]=new e.Message.OneOf(this,l,b))},this);f.fields&&f.fields.forEach(function(b){if(null!==l.getChild(b.id|0))throw Error("duplicate or invalid field id in "+l.name+": "+b.id);if(b.options&&"object"!==typeof b.options)throw Error("illegal field options in "+l.name+"#"+b.name);var c=null;if("string"===typeof b.oneof&&
|
|
77
|
+
!(c=t[b.oneof]))throw Error("illegal oneof in "+l.name+"#"+b.name+": "+b.oneof);b=new e.Message.Field(this,l,b.rule,b.keytype,b.type,b.name,b.id,b.options,c,f.syntax);c&&c.fields.push(b);l.addChild(b)},this);var r=[];f.enums&&f.enums.forEach(function(b){r.push(b)});f.messages&&f.messages.forEach(function(b){r.push(b)});f.services&&f.services.forEach(function(b){r.push(b)});f.extensions&&(l.extensions="number"===typeof f.extensions[0]?[f.extensions]:f.extensions);this.ptr.addChild(l);if(0<r.length){d.push(b);
|
|
78
|
+
b=r;r=null;this.ptr=l;l=null;continue}r=null}else if(k.isEnum(f))l=new e.Enum(this,this.ptr,f.name,f.options,f.syntax),f.values.forEach(function(b){l.addChild(new e.Enum.Value(this,l,b.name,b.id))},this),this.ptr.addChild(l);else if(k.isService(f))l=new e.Service(this,this.ptr,f.name,f.options),Object.keys(f.rpc).forEach(function(b){var c=f.rpc[b];l.addChild(new e.Service.RPCMethod(this,l,b,c.request,c.response,!!c.request_stream,!!c.response_stream,c.options))},this),this.ptr.addChild(l);else if(k.isExtend(f))if(l=
|
|
79
|
+
this.ptr.resolve(f.ref,!0))f.fields.forEach(function(b){if(null!==l.getChild(b.id|0))throw Error("duplicate extended field id in "+l.name+": "+b.id);if(l.extensions){var f=!1;l.extensions.forEach(function(a){b.id>=a[0]&&b.id<=a[1]&&(f=!0)});if(!f)throw Error("illegal extended field id in "+l.name+": "+b.id+" (not within valid ranges)");}var d=b.name;this.options.convertFieldsToCamelCase&&(d=c.Util.toCamelCase(d));var d=new e.Message.ExtensionField(this,l,b.rule,b.type,this.ptr.fqn()+"."+d,b.id,b.options),
|
|
80
|
+
a=new e.Extension(this,this.ptr,b.name,d);d.extension=a;this.ptr.addChild(a);l.addChild(d)},this);else{if(!/\.?google\.protobuf\./.test(f.ref))throw Error("extended message "+f.ref+" is not defined");}else throw Error("not a valid definition: "+JSON.stringify(f));l=f=null}b=null;this.ptr=this.ptr.parent}this.resolved=!1;this.result=null;return this};l["import"]=function(b,d){var f="/";if("string"===typeof d){c.Util.IS_NODE&&(d=require("path").resolve(d));if(!0===this.files[d])return this.reset();
|
|
81
|
+
this.files[d]=!0}else if("object"===typeof d){var e=d.root;c.Util.IS_NODE&&(e=require("path").resolve(e));if(0<=e.indexOf("\\")||0<=d.file.indexOf("\\"))f="\\";e=c.Util.IS_NODE?require("path").join(e,d.file):e+f+d.file;if(!0===this.files[e])return this.reset();this.files[e]=!0}if(b.imports&&0<b.imports.length){var l=!1;if("object"===typeof d){if(this.importRoot=d.root,l=!0,e=this.importRoot,d=d.file,0<=e.indexOf("\\")||0<=d.indexOf("\\"))f="\\"}else"string"===typeof d?this.importRoot?e=this.importRoot:
|
|
82
|
+
0<=d.indexOf("/")?(e=d.replace(/\/[^\/]*$/,""),""===e&&(e="/")):0<=d.indexOf("\\")?(e=d.replace(/\\[^\\]*$/,""),f="\\"):e=".":e=null;for(var m=0;m<b.imports.length;m++)if("string"===typeof b.imports[m]){if(!e)throw Error("cannot determine import root");var k=b.imports[m];if("google/protobuf/descriptor.proto"!==k&&(k=c.Util.IS_NODE?require("path").join(e,k):e+f+k,!0!==this.files[k])){/\.proto$/i.test(k)&&!c.DotProto&&(k=k.replace(/\.proto$/,".json"));var r=c.Util.fetch(k);if(null===r)throw Error("failed to import '"+
|
|
83
|
+
k+"' in '"+d+"': file not found");if(/\.json$/i.test(k))this["import"](JSON.parse(r+""),k);else this["import"](c.DotProto.Parser.parse(r),k)}}else if(d)if(/\.(\w+)$/.test(d))this["import"](b.imports[m],d.replace(/^(.+)\.(\w+)$/,function(a,b,c){return b+"_import"+m+"."+c}));else this["import"](b.imports[m],d+"_import"+m);else this["import"](b.imports[m]);l&&(this.importRoot=null)}b["package"]&&this.define(b["package"]);b.syntax&&t(b);var p=this.ptr;b.options&&Object.keys(b.options).forEach(function(a){p.options[a]=
|
|
84
|
+
b.options[a]});b.messages&&(this.create(b.messages),this.ptr=p);b.enums&&(this.create(b.enums),this.ptr=p);b.services&&(this.create(b.services),this.ptr=p);b["extends"]&&this.create(b["extends"]);return this.reset()};l.resolveAll=function(){var b;if(null==this.ptr||"object"===typeof this.ptr.type)return this;if(this.ptr instanceof e.Namespace)this.ptr.children.forEach(function(b){this.ptr=b;this.resolveAll()},this);else if(this.ptr instanceof e.Message.Field){if(d.TYPE.test(this.ptr.type))this.ptr.type=
|
|
85
|
+
c.TYPES[this.ptr.type];else{if(!d.TYPEREF.test(this.ptr.type))throw Error("illegal type reference in "+this.ptr.toString(!0)+": "+this.ptr.type);b=(this.ptr instanceof e.Message.ExtensionField?this.ptr.extension.parent:this.ptr.parent).resolve(this.ptr.type,!0);if(!b)throw Error("unresolvable type reference in "+this.ptr.toString(!0)+": "+this.ptr.type);this.ptr.resolvedType=b;if(b instanceof e.Enum){if(this.ptr.type=c.TYPES["enum"],"proto3"===this.ptr.syntax&&"proto3"!==b.syntax)throw Error("proto3 message cannot reference proto2 enum");
|
|
86
|
+
}else if(b instanceof e.Message)this.ptr.type=b.isGroup?c.TYPES.group:c.TYPES.message;else throw Error("illegal type reference in "+this.ptr.toString(!0)+": "+this.ptr.type);}if(this.ptr.map){if(!d.TYPE.test(this.ptr.keyType))throw Error("illegal key type for map field in "+this.ptr.toString(!0)+": "+this.ptr.keyType);this.ptr.keyType=c.TYPES[this.ptr.keyType]}"proto3"===this.ptr.syntax&&this.ptr.repeated&&void 0===this.ptr.options.packed&&-1!==c.PACKABLE_WIRE_TYPES.indexOf(this.ptr.type.wireType)&&
|
|
87
|
+
(this.ptr.options.packed=!0)}else if(this.ptr instanceof c.Reflect.Service.Method)if(this.ptr instanceof c.Reflect.Service.RPCMethod){b=this.ptr.parent.resolve(this.ptr.requestName,!0);if(!(b&&b instanceof c.Reflect.Message))throw Error("Illegal type reference in "+this.ptr.toString(!0)+": "+this.ptr.requestName);this.ptr.resolvedRequestType=b;b=this.ptr.parent.resolve(this.ptr.responseName,!0);if(!(b&&b instanceof c.Reflect.Message))throw Error("Illegal type reference in "+this.ptr.toString(!0)+
|
|
88
|
+
": "+this.ptr.responseName);this.ptr.resolvedResponseType=b}else throw Error("illegal service type in "+this.ptr.toString(!0));else if(!(this.ptr instanceof c.Reflect.Message.OneOf||this.ptr instanceof c.Reflect.Extension||this.ptr instanceof c.Reflect.Enum.Value))throw Error("illegal object in namespace: "+typeof this.ptr+": "+this.ptr);return this.reset()};l.build=function(b){this.reset();this.resolved||(this.resolveAll(),this.resolved=!0,this.result=null);null===this.result&&(this.result=this.ns.build());
|
|
89
|
+
if(!b)return this.result;b="string"===typeof b?b.split("."):b;for(var c=this.result,f=0;f<b.length;f++)if(c[b[f]])c=c[b[f]];else{c=null;break}return c};l.lookup=function(b,c){return b?this.ns.resolve(b,c):this.ns};l.toString=function(){return"Builder"};k.Message=function(){};k.Enum=function(){};k.Service=function(){};return k}(d,d.Lang,d.Reflect);d.Map=function(c,d){function e(c){var b=0;return{next:function(){return b<c.length?{done:!1,value:c[b++]}:{done:!0}}}}var t=function(c,b){if(!c.map)throw Error("field is not a map");
|
|
90
|
+
this.field=c;this.keyElem=new d.Element(c.keyType,null,!0,c.syntax);this.valueElem=new d.Element(c.type,c.resolvedType,!1,c.syntax);this.map={};Object.defineProperty(this,"size",{get:function(){return Object.keys(this.map).length}});if(b)for(var e=Object.keys(b),f=0;f<e.length;f++){var l=this.keyElem.valueFromString(e[f]),k=this.valueElem.verifyValue(b[e[f]]);this.map[this.keyElem.valueToString(l)]={key:l,value:k}}},k=t.prototype;k.clear=function(){this.map={}};k["delete"]=function(c){c=this.keyElem.valueToString(this.keyElem.verifyValue(c));
|
|
91
|
+
var b=c in this.map;delete this.map[c];return b};k.entries=function(){for(var c=[],b=Object.keys(this.map),d=0,f;d<b.length;d++)c.push([(f=this.map[b[d]]).key,f.value]);return e(c)};k.keys=function(){for(var c=[],b=Object.keys(this.map),d=0;d<b.length;d++)c.push(this.map[b[d]].key);return e(c)};k.values=function(){for(var c=[],b=Object.keys(this.map),d=0;d<b.length;d++)c.push(this.map[b[d]].value);return e(c)};k.forEach=function(c,b){for(var d=Object.keys(this.map),f=0,e;f<d.length;f++)c.call(b,(e=
|
|
92
|
+
this.map[d[f]]).value,e.key,this)};k.set=function(c,b){var d=this.keyElem.verifyValue(c),f=this.valueElem.verifyValue(b);this.map[this.keyElem.valueToString(d)]={key:d,value:f};return this};k.get=function(c){c=this.keyElem.valueToString(this.keyElem.verifyValue(c));if(c in this.map)return this.map[c].value};k.has=function(c){return this.keyElem.valueToString(this.keyElem.verifyValue(c))in this.map};return t}(d,d.Reflect);d.newBuilder=function(c){c=c||{};"undefined"===typeof c.convertFieldsToCamelCase&&
|
|
93
|
+
(c.convertFieldsToCamelCase=d.convertFieldsToCamelCase);"undefined"===typeof c.populateAccessors&&(c.populateAccessors=d.populateAccessors);return new d.Builder(c)};d.loadJson=function(c,e,p){if("string"===typeof e||e&&"string"===typeof e.file&&"string"===typeof e.root)p=e,e=null;e&&"object"===typeof e||(e=d.newBuilder());"string"===typeof c&&(c=JSON.parse(c));e["import"](c,p);e.resolveAll();return e};d.loadJsonFile=function(c,e,p){e&&"object"===typeof e?(p=e,e=null):e&&"function"===typeof e||(e=
|
|
94
|
+
null);if(e)return d.Util.fetch("string"===typeof c?c:c.root+"/"+c.file,function(k){if(null===k)e(Error("Failed to fetch file"));else try{e(null,d.loadJson(JSON.parse(k),p,c))}catch(l){e(l)}});var r=d.Util.fetch("object"===typeof c?c.root+"/"+c.file:c);return null===r?null:d.loadJson(JSON.parse(r),p,c)};return d});
|
|
Binary file
|