protobufjs 5.0.0 → 5.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/bower.json +1 -1
- package/cli/pbjs/targets/json.js +1 -1
- package/cli/pbjs/targets/proto.js +10 -2
- package/dist/protobuf-light.js +38 -21
- package/dist/protobuf-light.min.js +78 -78
- package/dist/protobuf-light.min.js.gz +0 -0
- package/dist/protobuf-light.min.map +2 -2
- package/dist/protobuf.js +81 -55
- package/dist/protobuf.min.js +92 -92
- package/dist/protobuf.min.js.gz +0 -0
- package/dist/protobuf.min.map +2 -2
- 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 +3 -3
- package/docs/ProtoBuf.DotProto.Tokenizer.html +1 -1
- package/docs/ProtoBuf.DotProto.html +1 -1
- package/docs/ProtoBuf.Map.html +6 -6
- package/docs/ProtoBuf.Reflect.Element.html +7 -7
- 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 +1 -1
- package/docs/ProtoBuf.html +8 -8
- package/docs/ProtoBuf.js.html +82 -56
- package/docs/index.html +1 -1
- package/externs/protobuf.js +2 -1
- package/package.json +1 -1
- package/src/ProtoBuf/Builder/Message.js +8 -3
- package/src/ProtoBuf/Builder/Service.js +3 -0
- package/src/ProtoBuf/Builder.js +15 -8
- package/src/ProtoBuf/DotProto/Parser.js +43 -34
- package/src/ProtoBuf/Reflect/Element.js +4 -3
- package/src/ProtoBuf/Reflect/Message/Field.js +4 -3
- package/src/ProtoBuf/Reflect/Message.js +3 -3
- package/src/google/protobuf/descriptor.json +28 -14
- package/tests/imports-weak.proto +7 -0
- package/tests/suite.js +63 -83
- package/tests/gtfs-realtime.proto +0 -552
package/bower.json
CHANGED
package/cli/pbjs/targets/json.js
CHANGED
|
@@ -160,7 +160,7 @@ function buildMessage(msg) {
|
|
|
160
160
|
msg.getChildren(ProtoBuf.Reflect.Message.OneOf).forEach(function(oneof) {
|
|
161
161
|
oneofs[oneof.name] = buildMessageOneof(oneof);
|
|
162
162
|
});
|
|
163
|
-
if (msg.extensions
|
|
163
|
+
if (msg.extensions)
|
|
164
164
|
out["extensions"] = msg.extensions;
|
|
165
165
|
if (Object.keys(oneofs).length === 0)
|
|
166
166
|
delete out["oneofs"];
|
|
@@ -129,10 +129,18 @@ var proto = module.exports = function(builder, options) {
|
|
|
129
129
|
});
|
|
130
130
|
if (n > 0 && !options.min)
|
|
131
131
|
out[out.length-1] += "\n";
|
|
132
|
-
if (msg.extensions
|
|
132
|
+
if (msg.extensions) { // array of ranges
|
|
133
133
|
if (!options.min)
|
|
134
134
|
out.push(indent, " ");
|
|
135
|
-
out.push("extensions "
|
|
135
|
+
out.push("extensions ");
|
|
136
|
+
msg.extensions.forEach(function(range, index) {
|
|
137
|
+
if (index > 0)
|
|
138
|
+
out.push(options.min ? "," : ", ");
|
|
139
|
+
out.push(value(range[0]));
|
|
140
|
+
if (range[1] !== range[0])
|
|
141
|
+
out.push(" to ", range[1] === ProtoBuf.ID_MAX ? "max" : value(range[1]));
|
|
142
|
+
});
|
|
143
|
+
out.push(options.min ? ";" : ";\n\n");
|
|
136
144
|
}
|
|
137
145
|
buildNamespace(msg, indent+" ");
|
|
138
146
|
if (!options.min)
|
package/dist/protobuf-light.js
CHANGED
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* @const
|
|
58
58
|
* @expose
|
|
59
59
|
*/
|
|
60
|
-
ProtoBuf.VERSION = "5.0.
|
|
60
|
+
ProtoBuf.VERSION = "5.0.1";
|
|
61
61
|
|
|
62
62
|
/**
|
|
63
63
|
* Wire types.
|
|
@@ -888,9 +888,10 @@
|
|
|
888
888
|
* @expose
|
|
889
889
|
*/
|
|
890
890
|
ElementPrototype.verifyValue = function(value) {
|
|
891
|
-
var
|
|
892
|
-
|
|
893
|
-
|
|
891
|
+
var self = this;
|
|
892
|
+
function fail(val, msg) {
|
|
893
|
+
throw Error("Illegal value for "+self.toString(true)+" of type "+self.type.name+": "+val+" ("+msg+")");
|
|
894
|
+
}
|
|
894
895
|
switch (this.type) {
|
|
895
896
|
// Signed 32bit
|
|
896
897
|
case ProtoBuf.TYPES["int32"]:
|
|
@@ -1380,10 +1381,10 @@
|
|
|
1380
1381
|
|
|
1381
1382
|
/**
|
|
1382
1383
|
* Extensions range.
|
|
1383
|
-
* @type {!Array.<number
|
|
1384
|
+
* @type {!Array.<number>|undefined}
|
|
1384
1385
|
* @expose
|
|
1385
1386
|
*/
|
|
1386
|
-
this.extensions =
|
|
1387
|
+
this.extensions = undefined;
|
|
1387
1388
|
|
|
1388
1389
|
/**
|
|
1389
1390
|
* Runtime message class.
|
|
@@ -1782,18 +1783,19 @@
|
|
|
1782
1783
|
* @name ProtoBuf.Builder.Message#encodeDelimited
|
|
1783
1784
|
* @function
|
|
1784
1785
|
* @param {(!ByteBuffer|boolean)=} buffer ByteBuffer to encode to. Will create a new one and flip it if omitted.
|
|
1786
|
+
* @param {boolean=} noVerify Whether to not verify field values, defaults to `false`
|
|
1785
1787
|
* @return {!ByteBuffer} Encoded message as a ByteBuffer
|
|
1786
1788
|
* @throws {Error} If the message cannot be encoded or if required fields are missing. The later still
|
|
1787
1789
|
* returns the encoded ByteBuffer in the `encoded` property on the error.
|
|
1788
1790
|
* @expose
|
|
1789
1791
|
*/
|
|
1790
|
-
MessagePrototype.encodeDelimited = function(buffer) {
|
|
1792
|
+
MessagePrototype.encodeDelimited = function(buffer, noVerify) {
|
|
1791
1793
|
var isNew = false;
|
|
1792
1794
|
if (!buffer)
|
|
1793
1795
|
buffer = new ByteBuffer(),
|
|
1794
1796
|
isNew = true;
|
|
1795
1797
|
var enc = new ByteBuffer().LE();
|
|
1796
|
-
T.encode(this, enc).flip();
|
|
1798
|
+
T.encode(this, enc, noVerify).flip();
|
|
1797
1799
|
buffer.writeVarint32(enc.remaining());
|
|
1798
1800
|
buffer.append(enc);
|
|
1799
1801
|
return isNew ? buffer.flip() : buffer;
|
|
@@ -2002,6 +2004,7 @@
|
|
|
2002
2004
|
* @name ProtoBuf.Builder.Message.decode
|
|
2003
2005
|
* @function
|
|
2004
2006
|
* @param {!ByteBuffer|!ArrayBuffer|!Buffer|string} buffer Buffer to decode from
|
|
2007
|
+
* @param {(number|string)=} length Message length. Defaults to decode all the remainig data.
|
|
2005
2008
|
* @param {string=} enc Encoding if buffer is a string: hex, utf8 (not recommended), defaults to base64
|
|
2006
2009
|
* @return {!ProtoBuf.Builder.Message} Decoded message
|
|
2007
2010
|
* @throws {Error} If the message cannot be decoded or if required fields are missing. The later still
|
|
@@ -2010,7 +2013,10 @@
|
|
|
2010
2013
|
* @see ProtoBuf.Builder.Message.decode64
|
|
2011
2014
|
* @see ProtoBuf.Builder.Message.decodeHex
|
|
2012
2015
|
*/
|
|
2013
|
-
Message.decode = function(buffer, enc) {
|
|
2016
|
+
Message.decode = function(buffer, length, enc) {
|
|
2017
|
+
if (typeof length === 'string')
|
|
2018
|
+
enc = length,
|
|
2019
|
+
length = -1;
|
|
2014
2020
|
if (typeof buffer === 'string')
|
|
2015
2021
|
buffer = ByteBuffer.wrap(buffer, enc ? enc : "base64");
|
|
2016
2022
|
buffer = ByteBuffer.isByteBuffer(buffer) ? buffer : ByteBuffer.wrap(buffer); // May throw
|
|
@@ -2271,7 +2277,7 @@
|
|
|
2271
2277
|
/**
|
|
2272
2278
|
* Decodes an encoded message and returns the decoded message.
|
|
2273
2279
|
* @param {ByteBuffer} buffer ByteBuffer to decode from
|
|
2274
|
-
* @param {number=} length Message length. Defaults to decode all
|
|
2280
|
+
* @param {number=} length Message length. Defaults to decode all remaining data.
|
|
2275
2281
|
* @param {number=} expectedGroupEndId Expected GROUPEND id if this is a legacy group
|
|
2276
2282
|
* @return {ProtoBuf.Builder.Message} Decoded message
|
|
2277
2283
|
* @throws {Error} If the message cannot be decoded
|
|
@@ -2521,9 +2527,10 @@
|
|
|
2521
2527
|
*/
|
|
2522
2528
|
FieldPrototype.verifyValue = function(value, skipRepeated) {
|
|
2523
2529
|
skipRepeated = skipRepeated || false;
|
|
2524
|
-
var
|
|
2525
|
-
|
|
2526
|
-
|
|
2530
|
+
var self = this;
|
|
2531
|
+
function fail(val, msg) {
|
|
2532
|
+
throw Error("Illegal value for "+self.toString(true)+" of type "+self.type.name+": "+val+" ("+msg+")");
|
|
2533
|
+
}
|
|
2527
2534
|
if (value === null) { // NULL values for optional fields
|
|
2528
2535
|
if (this.required)
|
|
2529
2536
|
fail(typeof value, "required");
|
|
@@ -3137,6 +3144,9 @@
|
|
|
3137
3144
|
callback(err);
|
|
3138
3145
|
return;
|
|
3139
3146
|
}
|
|
3147
|
+
// Coalesce to empty string when service response has empty content
|
|
3148
|
+
if (res === null)
|
|
3149
|
+
res = ''
|
|
3140
3150
|
try { res = method.resolvedResponseType.clazz.decode(res); } catch (notABuffer) {}
|
|
3141
3151
|
if (!res || !(res instanceof method.resolvedResponseType.clazz)) {
|
|
3142
3152
|
callback(Error("Illegal response type received in service method "+ T.name+"#"+method.name));
|
|
@@ -3580,13 +3590,12 @@
|
|
|
3580
3590
|
subObj.push(svc);
|
|
3581
3591
|
});
|
|
3582
3592
|
|
|
3583
|
-
// Set extension
|
|
3593
|
+
// Set extension ranges
|
|
3584
3594
|
if (def["extensions"]) {
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
obj.extensions[1] = ProtoBuf.ID_MAX;
|
|
3595
|
+
if (typeof def["extensions"][0] === 'number') // pre 5.0.1
|
|
3596
|
+
obj.extensions = [ def["extensions"] ];
|
|
3597
|
+
else
|
|
3598
|
+
obj.extensions = def["extensions"];
|
|
3590
3599
|
}
|
|
3591
3600
|
|
|
3592
3601
|
// Create on top of current namespace
|
|
@@ -3625,8 +3634,16 @@
|
|
|
3625
3634
|
def["fields"].forEach(function(fld) {
|
|
3626
3635
|
if (obj.getChild(fld['id']|0) !== null)
|
|
3627
3636
|
throw Error("duplicate extended field id in "+obj.name+": "+fld['id']);
|
|
3628
|
-
if
|
|
3629
|
-
|
|
3637
|
+
// Check if field id is allowed to be extended
|
|
3638
|
+
if (obj.extensions) {
|
|
3639
|
+
var valid = false;
|
|
3640
|
+
obj.extensions.forEach(function(range) {
|
|
3641
|
+
if (fld["id"] >= range[0] && fld["id"] <= range[1])
|
|
3642
|
+
valid = true;
|
|
3643
|
+
});
|
|
3644
|
+
if (!valid)
|
|
3645
|
+
throw Error("illegal extended field id in "+obj.name+": "+fld['id']+" (not within valid ranges)");
|
|
3646
|
+
}
|
|
3630
3647
|
// Convert extension field names to camel case notation if the override is set
|
|
3631
3648
|
var name = fld["name"];
|
|
3632
3649
|
if (this.options['convertFieldsToCamelCase'])
|
|
@@ -3,85 +3,85 @@
|
|
|
3
3
|
Released under the Apache License, Version 2.0
|
|
4
4
|
see: https://github.com/dcodeIO/protobuf.js for details
|
|
5
5
|
*/
|
|
6
|
-
(function(h,
|
|
6
|
+
(function(h,y){"function"===typeof define&&define.amd?define(["bytebuffer"],y):"function"===typeof require&&"object"===typeof module&&module&&module.exports?module.exports=y(require("bytebuffer"),!0):(h.dcodeIO=h.dcodeIO||{}).ProtoBuf=y(h.dcodeIO.ByteBuffer)})(this,function(h,y){var c={};c.ByteBuffer=h;c.Long=h.Long||null;c.VERSION="5.0.1";c.WIRE_TYPES={};c.WIRE_TYPES.VARINT=0;c.WIRE_TYPES.BITS64=1;c.WIRE_TYPES.LDELIM=2;c.WIRE_TYPES.STARTGROUP=3;c.WIRE_TYPES.ENDGROUP=4;c.WIRE_TYPES.BITS32=5;c.PACKABLE_WIRE_TYPES=
|
|
7
7
|
[c.WIRE_TYPES.VARINT,c.WIRE_TYPES.BITS64,c.WIRE_TYPES.BITS32];c.TYPES={int32:{name:"int32",wireType:c.WIRE_TYPES.VARINT,defaultValue:0},uint32:{name:"uint32",wireType:c.WIRE_TYPES.VARINT,defaultValue:0},sint32:{name:"sint32",wireType:c.WIRE_TYPES.VARINT,defaultValue:0},int64:{name:"int64",wireType:c.WIRE_TYPES.VARINT,defaultValue:c.Long?c.Long.ZERO:void 0},uint64:{name:"uint64",wireType:c.WIRE_TYPES.VARINT,defaultValue:c.Long?c.Long.UZERO:void 0},sint64:{name:"sint64",wireType:c.WIRE_TYPES.VARINT,
|
|
8
8
|
defaultValue:c.Long?c.Long.ZERO:void 0},bool:{name:"bool",wireType:c.WIRE_TYPES.VARINT,defaultValue:!1},"double":{name:"double",wireType:c.WIRE_TYPES.BITS64,defaultValue:0},string:{name:"string",wireType:c.WIRE_TYPES.LDELIM,defaultValue:""},bytes:{name:"bytes",wireType:c.WIRE_TYPES.LDELIM,defaultValue:null},fixed32:{name:"fixed32",wireType:c.WIRE_TYPES.BITS32,defaultValue:0},sfixed32:{name:"sfixed32",wireType:c.WIRE_TYPES.BITS32,defaultValue:0},fixed64:{name:"fixed64",wireType:c.WIRE_TYPES.BITS64,
|
|
9
9
|
defaultValue:c.Long?c.Long.UZERO:void 0},sfixed64:{name:"sfixed64",wireType:c.WIRE_TYPES.BITS64,defaultValue:c.Long?c.Long.ZERO:void 0},"float":{name:"float",wireType:c.WIRE_TYPES.BITS32,defaultValue:0},"enum":{name:"enum",wireType:c.WIRE_TYPES.VARINT,defaultValue:0},message:{name:"message",wireType:c.WIRE_TYPES.LDELIM,defaultValue:null},group:{name:"group",wireType:c.WIRE_TYPES.STARTGROUP,defaultValue:null}};c.MAP_KEY_TYPES=[c.TYPES.int32,c.TYPES.sint32,c.TYPES.sfixed32,c.TYPES.uint32,c.TYPES.fixed32,
|
|
10
|
-
c.TYPES.int64,c.TYPES.sint64,c.TYPES.sfixed64,c.TYPES.uint64,c.TYPES.fixed64,c.TYPES.bool,c.TYPES.string,c.TYPES.bytes];c.ID_MIN=1;c.ID_MAX=536870911;c.convertFieldsToCamelCase=!1;c.populateAccessors=!0;c.populateDefaults=!0;c.Util=function(){var
|
|
11
|
-
function(){return new ActiveXObject("Microsoft.XMLHTTP")}],c=null,h=0;h<
|
|
12
|
-
g.overrideMimeType("text/plain");if(h)g.onreadystatechange=function(){4==g.readyState&&(200==g.status||0==g.status&&"string"===typeof g.responseText?h(g.responseText):h(null))},4!=g.readyState&&g.send(null);else return g.send(null),200==g.status||0==g.status&&"string"===typeof g.responseText?g.responseText:null}};
|
|
10
|
+
c.TYPES.int64,c.TYPES.sint64,c.TYPES.sfixed64,c.TYPES.uint64,c.TYPES.fixed64,c.TYPES.bool,c.TYPES.string,c.TYPES.bytes];c.ID_MIN=1;c.ID_MAX=536870911;c.convertFieldsToCamelCase=!1;c.populateAccessors=!0;c.populateDefaults=!0;c.Util=function(){var b={};b.IS_NODE=!("object"!==typeof process||"[object process]"!==process+""||process.browser);b.XHR=function(){for(var b=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},
|
|
11
|
+
function(){return new ActiveXObject("Microsoft.XMLHTTP")}],c=null,h=0;h<b.length;h++){try{c=b[h]()}catch(l){continue}break}if(!c)throw Error("XMLHttpRequest is not supported");return c};b.fetch=function(c,h){h&&"function"!=typeof h&&(h=null);if(b.IS_NODE){var n=require("fs");if(h)n.readFile(c,function(b,c){b?h(null):h(""+c)});else try{return n.readFileSync(c)}catch(l){return null}}else{var g=b.XHR();g.open("GET",c,h?!0:!1);g.setRequestHeader("Accept","text/plain");"function"===typeof g.overrideMimeType&&
|
|
12
|
+
g.overrideMimeType("text/plain");if(h)g.onreadystatechange=function(){4==g.readyState&&(200==g.status||0==g.status&&"string"===typeof g.responseText?h(g.responseText):h(null))},4!=g.readyState&&g.send(null);else return g.send(null),200==g.status||0==g.status&&"string"===typeof g.responseText?g.responseText:null}};b.toCamelCase=function(b){return b.replace(/_([a-zA-Z])/g,function(b,c){return c.toUpperCase()})};return b}();c.Lang={DELIM:/[\s\{\}=;:\[\],'"\(\)<>]/g,RULE:/^(?:required|optional|repeated|map)$/,
|
|
13
13
|
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]*)+$/,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)$/,
|
|
14
|
-
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};c.Reflect=function(
|
|
15
|
-
typeof e?
|
|
16
|
-
throw Error("Illegal GROUPEND after unknown group: "+m+" ("+
|
|
17
|
-
" cannot be built directly");};
|
|
18
|
-
null===this.getChild(e.originalName))e.name=e.originalName;else if(
|
|
19
|
-
|
|
20
|
-
g.build=function(){for(var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
!0)}catch(
|
|
24
|
-
0;
|
|
25
|
-
this.toString(!0)+": "+
|
|
26
|
-
case
|
|
27
|
-
d;case
|
|
28
|
-
break;case
|
|
29
|
-
break;case
|
|
30
|
-
e+" (unknown type)");}return d};f.decode=function(
|
|
31
|
-
case
|
|
32
|
-
|
|
33
|
-
case
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
f.add=function(e,d,c){var f=
|
|
38
|
-
|
|
39
|
-
"#"+e+" is not a field: undefined");if(!(c instanceof
|
|
40
|
-
|
|
41
|
-
e)};f.calculate=function(){return
|
|
42
|
-
f.encodeNB;f.encode64=function(){try{return this.encode().toBase64()}catch(
|
|
43
|
-
|
|
44
|
-
"hex")};m.decodeJSON=function(
|
|
45
|
-
c instanceof
|
|
46
|
-
null,f,g=0,k=this._fields.length,
|
|
47
|
-
f.decode=function(
|
|
48
|
-
null!==k&&k!==g.name&&(f[k]=null),f[g.oneof.name]=g.name));else switch(k){case
|
|
49
|
-
this.syntax)f[g.name]=g.defaultValue;else{if(g.required)throw
|
|
50
|
-
null;this.
|
|
51
|
-
(this.defaultValue=this.verifyValue(this.options["default"])):this.defaultValue=k.defaultFieldValue(this.type)};f.verifyValue=function(
|
|
52
|
-
[
|
|
53
|
-
b;case
|
|
54
|
-
this.toString(!0)+": "+this.type);if(null===
|
|
55
|
-
3|this.type.wireType),this.element.encodeValue(this.id,
|
|
56
|
-
d)&&(e.writeVarint32(this.id<<3|this.type.wireType),this.element.encodeValue(this.id,
|
|
57
|
-
h.calculateVarint32(this.id<<3|
|
|
58
|
-
|
|
59
|
-
b+" ("+this.type.wireType+" expected)");if(b
|
|
60
|
-
var g=d.clone();g.limit=g.offset+
|
|
61
|
-
[]};var
|
|
62
|
-
|
|
63
|
-
this.rpcImpl=
|
|
64
|
-
(a=new
|
|
65
|
-
{value:a[b.name].$options}))})(f[g]);Object.defineProperty&&(Object.defineProperty(
|
|
66
|
-
b,a,d,
|
|
67
|
-
|
|
68
|
-
function(
|
|
69
|
-
d.length)return this;d=d.slice()}else d=[d];for(var c=[d];0<c.length;){d=c.pop();if(!Array.isArray(d))throw Error("not a valid namespace: "+JSON.stringify(d));for(;0<d.length;){var f=d.shift();if(l.isMessage(f)){var g=new h.Message(this,this.ptr,f.name,f.options,f.isGroup,f.syntax),
|
|
70
|
-
g.name+": "+
|
|
71
|
-
f.
|
|
72
|
-
f.rpc[
|
|
73
|
-
(c=
|
|
74
|
-
if("string"===typeof c){
|
|
75
|
-
"\\"}else"string"===typeof c?this.importRoot?g=this.importRoot:0<=c.indexOf("/")?(g=c.replace(/\/[^\/]*$/,""),""===g&&(g="/")):0<=c.indexOf("\\")?(g=c.replace(/\\[^\\]*$/,""),f="\\"):g=".":g=null;for(var l=0;l<d.imports.length;l++)if("string"===typeof d.imports[l]){if(!g)throw Error("cannot determine import root");
|
|
76
|
-
s)throw Error("failed to import '"+
|
|
77
|
-
d.options[
|
|
78
|
-
|
|
79
|
-
}else if(d instanceof h.Message)this.ptr.type=d.isGroup?
|
|
80
|
-
|
|
81
|
-
this.ptr instanceof
|
|
82
|
-
c){return
|
|
83
|
-
Object.defineProperty(this,"size",{get:function(){return Object.keys(this.map).length}});if(d)for(var h=Object.keys(d),f=0;f<h.length;f++){var l=this.keyElem.valueFromString(h[f]),
|
|
84
|
-
|
|
85
|
-
this.map[this.keyElem.valueToString(h)]={key:h,value:f};return this};l.get=function(
|
|
86
|
-
c.populateAccessors);return new c.Builder(
|
|
87
|
-
else try{h(null,c.loadJson(JSON.parse(l),s,
|
|
14
|
+
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};c.Reflect=function(b){function c(a,e){if(a&&"number"===typeof a.low&&"number"===typeof a.high&&"boolean"===typeof a.unsigned&&a.low===a.low&&a.high===a.high)return new b.Long(a.low,a.high,"undefined"===
|
|
15
|
+
typeof e?a.unsigned:e);if("string"===typeof a)return b.Long.fromString(a,e||!1,10);if("number"===typeof a)return b.Long.fromNumber(a,e||!1);throw Error("not convertible to Long");}function s(a,e){var m=e.readVarint32(),d=m&7,m=m>>>3;switch(d){case b.WIRE_TYPES.VARINT:do m=e.readUint8();while(128===(m&128));break;case b.WIRE_TYPES.BITS64:e.offset+=8;break;case b.WIRE_TYPES.LDELIM:m=e.readVarint32();e.offset+=m;break;case b.WIRE_TYPES.STARTGROUP:s(m,e);break;case b.WIRE_TYPES.ENDGROUP:if(m===a)return!1;
|
|
16
|
+
throw Error("Illegal GROUPEND after unknown group: "+m+" ("+a+" expected)");case b.WIRE_TYPES.BITS32:e.offset+=4;break;default:throw Error("Illegal wire type in unknown group "+a+": "+d);}return!0}var n={},l=function(a,e,b){this.builder=a;this.parent=e;this.name=b},g=l.prototype;g.fqn=function(){var a=this.name,e=this;do{e=e.parent;if(null==e)break;a=e.name+"."+a}while(1);return a};g.toString=function(a){return(a?this.className+" ":"")+this.fqn()};g.build=function(){throw Error(this.toString(!0)+
|
|
17
|
+
" cannot be built directly");};n.T=l;var d=function(a,e,b,d,r){l.call(this,a,e,b);this.className="Namespace";this.children=[];this.options=d||{};this.syntax=r||"proto2"},g=d.prototype=Object.create(l.prototype);g.getChildren=function(a){a=a||null;if(null==a)return this.children.slice();for(var e=[],b=0,d=this.children.length;b<d;++b)this.children[b]instanceof a&&e.push(this.children[b]);return e};g.addChild=function(a){var e;if(e=this.getChild(a.name))if(e instanceof t.Field&&e.name!==e.originalName&&
|
|
18
|
+
null===this.getChild(e.originalName))e.name=e.originalName;else if(a instanceof t.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)};g.getChild=function(a){for(var e="number"===typeof a?"id":"name",b=0,d=this.children.length;b<d;++b)if(this.children[b][e]===a)return this.children[b];return null};g.resolve=function(a,e){var b="string"===typeof a?a.split("."):
|
|
19
|
+
a,d=this,r=0;if(""===b[r]){for(;null!==d.parent;)d=d.parent;r++}do{do{if(!(d instanceof n.Namespace)){d=null;break}d=d.getChild(b[r]);if(!(d&&d instanceof n.T)||e&&!(d instanceof n.Namespace)){d=null;break}r++}while(r<b.length);if(null!=d)break;if(null!==this.parent)return this.parent.resolve(a,e)}while(null!=d);return d};g.qn=function(a){var e=[],b=a;do e.unshift(b.name),b=b.parent;while(null!==b);for(b=1;b<=e.length;b++){var d=e.slice(e.length-b);if(a===this.resolve(d,a instanceof n.Namespace))return d.join(".")}return a.fqn()};
|
|
20
|
+
g.build=function(){for(var a={},b=this.children,m=0,c=b.length,r;m<c;++m)r=b[m],r instanceof d&&(a[r.name]=r.build());Object.defineProperty&&Object.defineProperty(a,"$options",{value:this.buildOpt()});return a};g.buildOpt=function(){for(var a={},b=Object.keys(this.options),d=0,c=b.length;d<c;++d)a[b[d]]=this.options[b[d]];return a};g.getOption=function(a){return"undefined"===typeof a?this.options:"undefined"!==typeof this.options[a]?this.options[a]:null};n.Namespace=d;var k=function(a,e,d,c){this.type=
|
|
21
|
+
a;this.resolvedType=e;this.isMapKey=d;this.syntax=c;if(d&&0>b.MAP_KEY_TYPES.indexOf(a))throw Error("Invalid map key type: "+a.name);},f=k.prototype;k.defaultFieldValue=function(a){"string"===typeof a&&(a=b.TYPES[a]);if("undefined"===typeof a.defaultValue)throw Error("default value for type "+a.name+" is not supported");return a==b.TYPES.bytes?new h(0):a.defaultValue};f.verifyValue=function(a){function e(a,b){throw Error("Illegal value for "+d.toString(!0)+" of type "+d.type.name+": "+a+" ("+b+")");
|
|
22
|
+
}var d=this;switch(this.type){case b.TYPES.int32:case b.TYPES.sint32:case b.TYPES.sfixed32:return("number"!==typeof a||a===a&&0!==a%1)&&e(typeof a,"not an integer"),4294967295<a?a|0:a;case b.TYPES.uint32:case b.TYPES.fixed32:return("number"!==typeof a||a===a&&0!==a%1)&&e(typeof a,"not an integer"),0>a?a>>>0:a;case b.TYPES.int64:case b.TYPES.sint64:case b.TYPES.sfixed64:if(b.Long)try{return c(a,!1)}catch(f){e(typeof a,f.message)}else e(typeof a,"requires Long.js");case b.TYPES.uint64:case b.TYPES.fixed64:if(b.Long)try{return c(a,
|
|
23
|
+
!0)}catch(r){e(typeof a,r.message)}else e(typeof a,"requires Long.js");case b.TYPES.bool:return"boolean"!==typeof a&&e(typeof a,"not a boolean"),a;case b.TYPES["float"]:case b.TYPES["double"]:return"number"!==typeof a&&e(typeof a,"not a number"),a;case b.TYPES.string:return"string"===typeof a||a&&a instanceof String||e(typeof a,"not a string"),""+a;case b.TYPES.bytes:return h.isByteBuffer(a)?a:h.wrap(a,"base64");case b.TYPES["enum"]:for(var v=this.resolvedType.getChildren(b.Reflect.Enum.Value),g=
|
|
24
|
+
0;g<v.length;g++)if(v[g].name==a||v[g].id==a)return v[g].id;if("proto3"===this.syntax)return("number"!==typeof a||a===a&&0!==a%1)&&e(typeof a,"not an integer"),(4294967295<a||0>a)&&e(typeof a,"not in range for uint32"),a;e(a,"not a valid enum value");case b.TYPES.group:case b.TYPES.message:a&&"object"===typeof a||e(typeof a,"object expected");if(a instanceof this.resolvedType.clazz)return a;if(a instanceof b.Builder.Message){var v={},g;for(g in a)a.hasOwnProperty(g)&&(v[g]=a[g]);a=v}return new this.resolvedType.clazz(a)}throw Error("[INTERNAL] Illegal value for "+
|
|
25
|
+
this.toString(!0)+": "+a+" (undefined type "+this.type+")");};f.calculateLength=function(a,e){if(null===e)return 0;var d;switch(this.type){case b.TYPES.int32:return 0>e?h.calculateVarint64(e):h.calculateVarint32(e);case b.TYPES.uint32:return h.calculateVarint32(e);case b.TYPES.sint32:return h.calculateVarint32(h.zigZagEncode32(e));case b.TYPES.fixed32:case b.TYPES.sfixed32:case b.TYPES["float"]:return 4;case b.TYPES.int64:case b.TYPES.uint64:return h.calculateVarint64(e);case b.TYPES.sint64:return h.calculateVarint64(h.zigZagEncode64(e));
|
|
26
|
+
case b.TYPES.fixed64:case b.TYPES.sfixed64:return 8;case b.TYPES.bool:return 1;case b.TYPES["enum"]:return h.calculateVarint32(e);case b.TYPES["double"]:return 8;case b.TYPES.string:return d=h.calculateUTF8Bytes(e),h.calculateVarint32(d)+d;case b.TYPES.bytes:if(0>e.remaining())throw Error("Illegal value for "+this.toString(!0)+": "+e.remaining()+" bytes remaining");return h.calculateVarint32(e.remaining())+e.remaining();case b.TYPES.message:return d=this.resolvedType.calculate(e),h.calculateVarint32(d)+
|
|
27
|
+
d;case b.TYPES.group:return d=this.resolvedType.calculate(e),d+h.calculateVarint32(a<<3|b.WIRE_TYPES.ENDGROUP)}throw Error("[INTERNAL] Illegal value to encode in "+this.toString(!0)+": "+e+" (unknown type)");};f.encodeValue=function(a,e,d){if(null===e)return d;switch(this.type){case b.TYPES.int32:0>e?d.writeVarint64(e):d.writeVarint32(e);break;case b.TYPES.uint32:d.writeVarint32(e);break;case b.TYPES.sint32:d.writeVarint32ZigZag(e);break;case b.TYPES.fixed32:d.writeUint32(e);break;case b.TYPES.sfixed32:d.writeInt32(e);
|
|
28
|
+
break;case b.TYPES.int64:case b.TYPES.uint64:d.writeVarint64(e);break;case b.TYPES.sint64:d.writeVarint64ZigZag(e);break;case b.TYPES.fixed64:d.writeUint64(e);break;case b.TYPES.sfixed64:d.writeInt64(e);break;case b.TYPES.bool:"string"===typeof e?d.writeVarint32("false"===e.toLowerCase()?0:!!e):d.writeVarint32(e?1:0);break;case b.TYPES["enum"]:d.writeVarint32(e);break;case b.TYPES["float"]:d.writeFloat32(e);break;case b.TYPES["double"]:d.writeFloat64(e);break;case b.TYPES.string:d.writeVString(e);
|
|
29
|
+
break;case b.TYPES.bytes:if(0>e.remaining())throw Error("Illegal value for "+this.toString(!0)+": "+e.remaining()+" bytes remaining");a=e.offset;d.writeVarint32(e.remaining());d.append(e);e.offset=a;break;case b.TYPES.message:a=(new h).LE();this.resolvedType.encode(e,a);d.writeVarint32(a.offset);d.append(a.flip());break;case b.TYPES.group:this.resolvedType.encode(e,d);d.writeVarint32(a<<3|b.WIRE_TYPES.ENDGROUP);break;default:throw Error("[INTERNAL] Illegal value to encode in "+this.toString(!0)+": "+
|
|
30
|
+
e+" (unknown type)");}return d};f.decode=function(a,e,d){if(e!=this.type.wireType)throw Error("Unexpected wire type for element");switch(this.type){case b.TYPES.int32:return a.readVarint32()|0;case b.TYPES.uint32:return a.readVarint32()>>>0;case b.TYPES.sint32:return a.readVarint32ZigZag()|0;case b.TYPES.fixed32:return a.readUint32()>>>0;case b.TYPES.sfixed32:return a.readInt32()|0;case b.TYPES.int64:return a.readVarint64();case b.TYPES.uint64:return a.readVarint64().toUnsigned();case b.TYPES.sint64:return a.readVarint64ZigZag();
|
|
31
|
+
case b.TYPES.fixed64:return a.readUint64();case b.TYPES.sfixed64:return a.readInt64();case b.TYPES.bool:return!!a.readVarint32();case b.TYPES["enum"]:return a.readVarint32();case b.TYPES["float"]:return a.readFloat();case b.TYPES["double"]:return a.readDouble();case b.TYPES.string:return a.readVString();case b.TYPES.bytes:d=a.readVarint32();if(a.remaining()<d)throw Error("Illegal number of bytes for "+this.toString(!0)+": "+d+" required but got only "+a.remaining());e=a.clone();e.limit=e.offset+d;
|
|
32
|
+
a.offset+=d;return e;case b.TYPES.message:return d=a.readVarint32(),this.resolvedType.decode(a,d);case b.TYPES.group:return this.resolvedType.decode(a,-1,d)}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 b.TYPES.int32:case b.TYPES.sint32:case b.TYPES.sfixed32:case b.TYPES.uint32:case b.TYPES.fixed32:return this.verifyValue(parseInt(a));case b.TYPES.int64:case b.TYPES.sint64:case b.TYPES.sfixed64:case b.TYPES.uint64:case b.TYPES.fixed64:return this.verifyValue(a);
|
|
33
|
+
case b.TYPES.bool:return"true"===a;case b.TYPES.string:return this.verifyValue(a);case b.TYPES.bytes:return h.fromBinary(a)}};f.valueToString=function(a){if(!this.isMapKey)throw Error("valueToString() called on non-map-key element");return this.type===b.TYPES.bytes?a.toString("binary"):a.toString()};n.Element=k;var t=function(a,b,c,f,r,g){d.call(this,a,b,c,f,g);this.className="Message";this.extensions=void 0;this.clazz=null;this.isGroup=!!r;this._fieldsByName=this._fieldsById=this._fields=null},f=
|
|
34
|
+
t.prototype=Object.create(d.prototype);f.build=function(a){if(this.clazz&&!a)return this.clazz;a=function(a,b){function e(b,d,c,f){if(null===b||"object"!==typeof b){if(f&&f instanceof a.Reflect.Enum){var m=a.Reflect.Enum.getName(f.object,b);if(null!==m)return m}return b}if(h.isByteBuffer(b))return d?b.toBase64():b.toBuffer();if(a.Long.isLong(b))return c?b.toString():a.Long.fromValue(b);var g;if(Array.isArray(b))return g=[],b.forEach(function(a,b){g[b]=e(a,d,c,f)}),g;g={};if(b instanceof a.Map){for(var m=
|
|
35
|
+
b.entries(),k=m.next();!k.done;k=m.next())g[b.keyElem.valueToString(k.value[0])]=e(k.value[1],d,c,b.valueElem.resolvedType);return g}var m=b.$type,k=void 0,q;for(q in b)b.hasOwnProperty(q)&&(m&&(k=m.getChild(q))?g[q]=e(b[q],d,c,k.resolvedType):g[q]=e(b[q],d,c));return g}var d=b.getChildren(a.Reflect.Message.Field),c=b.getChildren(a.Reflect.Message.OneOf),m=function(e,f){a.Builder.Message.call(this);for(var g=0,k=c.length;g<k;++g)this[c[g].name]=null;g=0;for(k=d.length;g<k;++g){var q=d[g];this[q.name]=
|
|
36
|
+
q.repeated?[]:q.map?new a.Map(q):null;!q.required&&"proto3"!==b.syntax||null===q.defaultValue||(this[q.name]=q.defaultValue)}if(0<arguments.length)if(1!==arguments.length||null===e||"object"!==typeof e||!("function"!==typeof e.encode||e instanceof m)||Array.isArray(e)||e instanceof a.Map||h.isByteBuffer(e)||e instanceof ArrayBuffer||a.Long&&e instanceof a.Long)for(g=0,k=arguments.length;g<k;++g)"undefined"!==typeof(q=arguments[g])&&this.$set(d[g].name,q);else this.$set(e)},f=m.prototype=Object.create(a.Builder.Message.prototype);
|
|
37
|
+
f.add=function(e,d,c){var f=b._fieldsByName[e];if(!c){if(!f)throw Error(this+"#"+e+" is undefined");if(!(f instanceof a.Reflect.Message.Field))throw Error(this+"#"+e+" is not a field: "+f.toString(!0));if(!f.repeated)throw Error(this+"#"+e+" is not a repeated field");d=f.verifyValue(d,!0)}null===this[e]&&(this[e]=[]);this[e].push(d);return this};f.$add=f.add;f.set=function(e,d,f){if(e&&"object"===typeof e){f=d;for(var c in e)e.hasOwnProperty(c)&&"undefined"!==typeof(d=e[c])&&this.$set(c,d,f);return this}c=
|
|
38
|
+
b._fieldsByName[e];if(f)this[e]=d;else{if(!c)throw Error(this+"#"+e+" is not a field: undefined");if(!(c instanceof a.Reflect.Message.Field))throw Error(this+"#"+e+" is not a field: "+c.toString(!0));this[c.name]=d=c.verifyValue(d)}c&&c.oneof&&(f=this[c.oneof.name],null!==d?(null!==f&&f!==c.name&&(this[f]=null),this[c.oneof.name]=c.name):f===e&&(this[c.oneof.name]=null));return this};f.$set=f.set;f.get=function(e,d){if(d)return this[e];var c=b._fieldsByName[e];if(!(c&&c instanceof a.Reflect.Message.Field))throw Error(this+
|
|
39
|
+
"#"+e+" is not a field: undefined");if(!(c instanceof a.Reflect.Message.Field))throw Error(this+"#"+e+" is not a field: "+c.toString(!0));return this[c.name]};f.$get=f.get;for(var g=0;g<d.length;g++){var k=d[g];k instanceof a.Reflect.Message.ExtensionField||b.builder.options.populateAccessors&&function(a){var e=a.originalName.replace(/(_[a-zA-Z])/g,function(a){return a.toUpperCase().replace("_","")}),e=e.substring(0,1).toUpperCase()+e.substring(1),d=a.originalName.replace(/([A-Z])/g,function(a){return"_"+
|
|
40
|
+
a}),c=function(b,e){this[a.name]=e?b:a.verifyValue(b);return this},m=function(){return this[a.name]};null===b.getChild("set"+e)&&(f["set"+e]=c);null===b.getChild("set_"+d)&&(f["set_"+d]=c);null===b.getChild("get"+e)&&(f["get"+e]=m);null===b.getChild("get_"+d)&&(f["get_"+d]=m)}(k)}f.encode=function(a,e){"boolean"===typeof a&&(e=a,a=void 0);var d=!1;a||(a=new h,d=!0);var c=a.littleEndian;try{return b.encode(this,a.LE(),e),(d?a.flip():a).LE(c)}catch(f){throw a.LE(c),f;}};m.encode=function(a,b,e){return(new m(a)).encode(b,
|
|
41
|
+
e)};f.calculate=function(){return b.calculate(this)};f.encodeDelimited=function(a,e){var d=!1;a||(a=new h,d=!0);var c=(new h).LE();b.encode(this,c,e).flip();a.writeVarint32(c.remaining());a.append(c);return d?a.flip():a};f.encodeAB=function(){try{return this.encode().toArrayBuffer()}catch(a){throw a.encoded&&(a.encoded=a.encoded.toArrayBuffer()),a;}};f.toArrayBuffer=f.encodeAB;f.encodeNB=function(){try{return this.encode().toBuffer()}catch(a){throw a.encoded&&(a.encoded=a.encoded.toBuffer()),a;}};
|
|
42
|
+
f.toBuffer=f.encodeNB;f.encode64=function(){try{return this.encode().toBase64()}catch(a){throw a.encoded&&(a.encoded=a.encoded.toBase64()),a;}};f.toBase64=f.encode64;f.encodeHex=function(){try{return this.encode().toHex()}catch(a){throw a.encoded&&(a.encoded=a.encoded.toHex()),a;}};f.toHex=f.encodeHex;f.toRaw=function(a,b){return e(this,!!a,!!b,this.$type)};f.encodeJSON=function(){return JSON.stringify(e(this,!0,!0,this.$type))};m.decode=function(a,e,d){"string"===typeof e&&(d=e);"string"===typeof a&&
|
|
43
|
+
(a=h.wrap(a,d?d:"base64"));a=h.isByteBuffer(a)?a:h.wrap(a);e=a.littleEndian;try{var c=b.decode(a.LE());a.LE(e);return c}catch(f){throw a.LE(e),f;}};m.decodeDelimited=function(a,e){"string"===typeof a&&(a=h.wrap(a,e?e:"base64"));a=h.isByteBuffer(a)?a:h.wrap(a);if(1>a.remaining())return null;var d=a.offset,c=a.readVarint32();if(a.remaining()<c)return a.offset=d,null;try{var f=b.decode(a.slice(a.offset,a.offset+c).LE());a.offset+=c;return f}catch(m){throw a.offset+=c,m;}};m.decode64=function(a){return m.decode(a,
|
|
44
|
+
"base64")};m.decodeHex=function(a){return m.decode(a,"hex")};m.decodeJSON=function(a){return new m(JSON.parse(a))};f.toString=function(){return b.toString()};Object.defineProperty&&(Object.defineProperty(m,"$options",{value:b.buildOpt()}),Object.defineProperty(f,"$options",{value:m.$options}),Object.defineProperty(m,"$type",{value:b}),Object.defineProperty(f,"$type",{value:b}));return m}(b,this);this._fields=[];this._fieldsById={};this._fieldsByName={};for(var e=0,d=this.children.length,c;e<d;e++)if(c=
|
|
45
|
+
this.children[e],c instanceof x||c instanceof t||c instanceof A){if(a.hasOwnProperty(c.name))throw Error("Illegal reflect child of "+this.toString(!0)+": "+c.toString(!0)+" cannot override static property '"+c.name+"'");a[c.name]=c.build()}else if(c instanceof t.Field)c.build(),this._fields.push(c),this._fieldsById[c.id]=c,this._fieldsByName[c.name]=c;else if(!(c instanceof t.OneOf||c instanceof w))throw Error("Illegal reflect child of "+this.toString(!0)+": "+this.children[e].toString(!0));return this.clazz=
|
|
46
|
+
a};f.encode=function(a,b,d){for(var c=null,f,g=0,k=this._fields.length,h;g<k;++g)f=this._fields[g],h=a[f.name],f.required&&null===h?null===c&&(c=f):f.encode(d?h:f.verifyValue(h),b,a);if(null!==c)throw a=Error("Missing at least one required field for "+this.toString(!0)+": "+c),a.encoded=b,a;return b};f.calculate=function(a){for(var b=0,d=0,c=this._fields.length,f,g;d<c;++d){f=this._fields[d];g=a[f.name];if(f.required&&null===g)throw Error("Missing at least one required field for "+this.toString(!0)+
|
|
47
|
+
": "+f);b+=f.calculate(g,a)}return b};f.decode=function(a,e,d){e="number"===typeof e?e:-1;for(var c=a.offset,f=new this.clazz,g,k,h;a.offset<c+e||-1===e&&0<a.remaining();){g=a.readVarint32();k=g&7;h=g>>>3;if(k===b.WIRE_TYPES.ENDGROUP){if(h!==d)throw Error("Illegal group end indicator for "+this.toString(!0)+": "+h+" ("+(d?d+" expected":"not a group")+")");break}if(g=this._fieldsById[h])g.repeated&&!g.options.packed?f[g.name].push(g.decode(k,a)):g.map?(k=g.decode(k,a),f[g.name].set(k[0],k[1])):(f[g.name]=
|
|
48
|
+
g.decode(k,a),g.oneof&&(k=f[g.oneof.name],null!==k&&k!==g.name&&(f[k]=null),f[g.oneof.name]=g.name));else switch(k){case b.WIRE_TYPES.VARINT:a.readVarint32();break;case b.WIRE_TYPES.BITS32:a.offset+=4;break;case b.WIRE_TYPES.BITS64:a.offset+=8;break;case b.WIRE_TYPES.LDELIM:g=a.readVarint32();a.offset+=g;break;case b.WIRE_TYPES.STARTGROUP:for(;s(h,a););break;default:throw Error("Illegal wire type for unknown field "+h+" in "+this.toString(!0)+"#decode: "+k);}}a=0;for(e=this._fields.length;a<e;++a)if(g=
|
|
49
|
+
this._fields[a],null===f[g.name])if("proto3"===this.syntax)f[g.name]=g.defaultValue;else{if(g.required)throw a=Error("Missing at least one required field for "+this.toString(!0)+": "+g.name),a.decoded=f,a;b.populateDefaults&&null!==g.defaultValue&&(f[g.name]=g.defaultValue)}return f};n.Message=t;var z=function(a,e,d,c,f,g,k,h,w,p){l.call(this,a,e,g);this.className="Message.Field";this.required="required"===d;this.repeated="repeated"===d;this.map="map"===d;this.keyType=c||null;this.type=f;this.resolvedType=
|
|
50
|
+
null;this.id=k;this.options=h||{};this.defaultValue=null;this.oneof=w||null;this.syntax=p||"proto2";this.originalName=this.name;this.keyElement=this.element=null;!this.builder.options.convertFieldsToCamelCase||this instanceof t.ExtensionField||(this.name=b.Util.toCamelCase(this.name))},f=z.prototype=Object.create(l.prototype);f.build=function(){this.element=new k(this.type,this.resolvedType,!1,this.syntax);this.map&&(this.keyElement=new k(this.keyType,void 0,!0,this.syntax));"proto3"!==this.syntax||
|
|
51
|
+
this.repeated||this.map?"undefined"!==typeof this.options["default"]&&(this.defaultValue=this.verifyValue(this.options["default"])):this.defaultValue=k.defaultFieldValue(this.type)};f.verifyValue=function(a,e){function d(a,b){throw Error("Illegal value for "+c.toString(!0)+" of type "+c.type.name+": "+a+" ("+b+")");}e=e||!1;var c=this;if(null===a)return this.required&&d(typeof a,"required"),"proto3"===this.syntax&&this.type!==b.TYPES.message&&d(typeof a,"proto3 field without field presence cannot be null"),
|
|
52
|
+
null;var f;if(this.repeated&&!e){Array.isArray(a)||(a=[a]);var g=[];for(f=0;f<a.length;f++)g.push(this.element.verifyValue(a[f]));return g}if(this.map&&!e){if(a instanceof b.Map)return a;a instanceof Object||d(typeof a,"expected ProtoBuf.Map or raw object for map field");return new b.Map(this,a)}!this.repeated&&Array.isArray(a)&&d(typeof a,"no array expected");return this.element.verifyValue(a)};f.hasWirePresence=function(a,e){if("proto3"!==this.syntax)return null!==a;if(this.oneof&&e[this.oneof.name]===
|
|
53
|
+
this.name)return!0;switch(this.type){case b.TYPES.int32:case b.TYPES.sint32:case b.TYPES.sfixed32:case b.TYPES.uint32:case b.TYPES.fixed32:return 0!==a;case b.TYPES.int64:case b.TYPES.sint64:case b.TYPES.sfixed64:case b.TYPES.uint64:case b.TYPES.fixed64:return 0!==a.low||0!==a.high;case b.TYPES.bool:return a;case b.TYPES["float"]:case b.TYPES["double"]:return 0!==a;case b.TYPES.string:return 0<a.length;case b.TYPES.bytes:return 0<a.remaining();case b.TYPES["enum"]:return 0!==a;case b.TYPES.message:return null!==
|
|
54
|
+
a;default:return!0}};f.encode=function(a,e,d){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 e;try{if(this.repeated){var c;if(this.options.packed&&0<=b.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)){e.writeVarint32(this.id<<3|b.WIRE_TYPES.LDELIM);e.ensureCapacity(e.offset+=1);var f=e.offset;for(c=0;c<a.length;c++)this.element.encodeValue(this.id,a[c],e);var g=e.offset-
|
|
55
|
+
f,k=h.calculateVarint32(g);if(1<k){var w=e.slice(f,e.offset),f=f+(k-1);e.offset=f;e.append(w)}e.writeVarint32(g,f-k)}else for(c=0;c<a.length;c++)e.writeVarint32(this.id<<3|this.type.wireType),this.element.encodeValue(this.id,a[c],e)}else this.map?a.forEach(function(a,d,c){c=h.calculateVarint32(8|this.keyType.wireType)+this.keyElement.calculateLength(1,d)+h.calculateVarint32(16|this.type.wireType)+this.element.calculateLength(2,a);e.writeVarint32(this.id<<3|b.WIRE_TYPES.LDELIM);e.writeVarint32(c);
|
|
56
|
+
e.writeVarint32(8|this.keyType.wireType);this.keyElement.encodeValue(1,d,e);e.writeVarint32(16|this.type.wireType);this.element.encodeValue(2,a,e)},this):this.hasWirePresence(a,d)&&(e.writeVarint32(this.id<<3|this.type.wireType),this.element.encodeValue(this.id,a,e))}catch(t){throw Error("Illegal value for "+this.toString(!0)+": "+a+" ("+t+")");}return e};f.calculate=function(a,d){a=this.verifyValue(a);if(null===this.type||"object"!==typeof this.type)throw Error("[INTERNAL] Unresolved type in "+this.toString(!0)+
|
|
57
|
+
": "+this.type);if(null===a||this.repeated&&0==a.length)return 0;var c=0;try{if(this.repeated){var f,g;if(this.options.packed&&0<=b.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)){c+=h.calculateVarint32(this.id<<3|b.WIRE_TYPES.LDELIM);for(f=g=0;f<a.length;f++)g+=this.element.calculateLength(this.id,a[f]);c+=h.calculateVarint32(g);c+=g}else for(f=0;f<a.length;f++)c+=h.calculateVarint32(this.id<<3|this.type.wireType),c+=this.element.calculateLength(this.id,a[f])}else this.map?a.forEach(function(a,
|
|
58
|
+
d,e){a=h.calculateVarint32(8|this.keyType.wireType)+this.keyElement.calculateLength(1,d)+h.calculateVarint32(16|this.type.wireType)+this.element.calculateLength(2,a);c+=h.calculateVarint32(this.id<<3|b.WIRE_TYPES.LDELIM);c+=h.calculateVarint32(a);c+=a},this):this.hasWirePresence(a,d)&&(c+=h.calculateVarint32(this.id<<3|this.type.wireType),c+=this.element.calculateLength(this.id,a))}catch(k){throw Error("Illegal value for "+this.toString(!0)+": "+a+" ("+k+")");}return c};f.decode=function(a,d,c){if(!(!this.map&&
|
|
59
|
+
a==this.type.wireType||!c&&this.repeated&&this.options.packed&&a==b.WIRE_TYPES.LDELIM||this.map&&a==b.WIRE_TYPES.LDELIM))throw Error("Illegal wire type for field "+this.toString(!0)+": "+a+" ("+this.type.wireType+" expected)");if(a==b.WIRE_TYPES.LDELIM&&this.repeated&&this.options.packed&&0<=b.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)&&!c){a=d.readVarint32();a=d.offset+a;for(c=[];d.offset<a;)c.push(this.decode(this.type.wireType,d,!0));return c}if(this.map){var f=k.defaultFieldValue(this.keyType);
|
|
60
|
+
c=k.defaultFieldValue(this.type);a=d.readVarint32();if(d.remaining()<a)throw Error("Illegal number of bytes for "+this.toString(!0)+": "+a+" required but got only "+d.remaining());var g=d.clone();g.limit=g.offset+a;for(d.offset+=a;0<g.remaining();)if(d=g.readVarint32(),a=d&7,d>>>=3,1===d)f=this.keyElement.decode(g,a,d);else if(2===d)c=this.element.decode(g,a,d);else throw Error("Unexpected tag in map field key/value submessage");return[f,c]}return this.element.decode(d,a,this.id)};n.Message.Field=
|
|
61
|
+
z;f=function(a,d,b,c,f,g,k){z.call(this,a,d,b,null,c,f,g,k)};f.prototype=Object.create(z.prototype);n.Message.ExtensionField=f;n.Message.OneOf=function(a,d,b){l.call(this,a,d,b);this.fields=[]};var x=function(a,b,c,f,g){d.call(this,a,b,c,f,g);this.className="Enum";this.object=null};x.getName=function(a,d){for(var b=Object.keys(a),c=0,f;c<b.length;++c)if(a[f=b[c]]===d)return f;return null};(x.prototype=Object.create(d.prototype)).build=function(a){if(this.object&&!a)return this.object;a=new b.Builder.Enum;
|
|
62
|
+
for(var d=this.getChildren(x.Value),c=0,f=d.length;c<f;++c)a[d[c].name]=d[c].id;Object.defineProperty&&Object.defineProperty(a,"$options",{value:this.buildOpt(),enumerable:!1});return this.object=a};n.Enum=x;f=function(a,d,b,c){l.call(this,a,d,b);this.className="Enum.Value";this.id=c};f.prototype=Object.create(l.prototype);n.Enum.Value=f;var w=function(a,d,b,c){l.call(this,a,d,b);this.field=c};w.prototype=Object.create(l.prototype);n.Extension=w;var A=function(a,b,c,f){d.call(this,a,b,c,f);this.className=
|
|
63
|
+
"Service";this.clazz=null};(A.prototype=Object.create(d.prototype)).build=function(a){return this.clazz&&!a?this.clazz:this.clazz=function(a,d){for(var b=function(b){a.Builder.Service.call(this);this.rpcImpl=b||function(a,b,d){setTimeout(d.bind(this,Error("Not implemented, see: https://github.com/dcodeIO/ProtoBuf.js/wiki/Services")),0)}},c=b.prototype=Object.create(a.Builder.Service.prototype),f=d.getChildren(a.Reflect.Service.RPCMethod),g=0;g<f.length;g++)(function(a){c[a.name]=function(b,c){try{try{b=
|
|
64
|
+
a.resolvedRequestType.clazz.decode(h.wrap(b))}catch(e){if(!(e instanceof TypeError))throw e;}if(null===b||"object"!==typeof b)throw Error("Illegal arguments");b instanceof a.resolvedRequestType.clazz||(b=new a.resolvedRequestType.clazz(b));this.rpcImpl(a.fqn(),b,function(b,e){if(b)c(b);else{null===e&&(e="");try{e=a.resolvedResponseType.clazz.decode(e)}catch(f){}e&&e instanceof a.resolvedResponseType.clazz?c(null,e):c(Error("Illegal response type received in service method "+d.name+"#"+a.name))}})}catch(f){setTimeout(c.bind(this,
|
|
65
|
+
f),0)}};b[a.name]=function(d,c,e){(new b(d))[a.name](c,e)};Object.defineProperty&&(Object.defineProperty(b[a.name],"$options",{value:a.buildOpt()}),Object.defineProperty(c[a.name],"$options",{value:b[a.name].$options}))})(f[g]);Object.defineProperty&&(Object.defineProperty(b,"$options",{value:d.buildOpt()}),Object.defineProperty(c,"$options",{value:b.$options}),Object.defineProperty(b,"$type",{value:d}),Object.defineProperty(c,"$type",{value:d}));return b}(b,this)};n.Service=A;var u=function(a,b,
|
|
66
|
+
d,c){l.call(this,a,b,d);this.className="Service.Method";this.options=c||{}};(u.prototype=Object.create(l.prototype)).buildOpt=g.buildOpt;n.Service.Method=u;g=function(a,b,d,c,f,g,k,h){u.call(this,a,b,d,h);this.className="Service.RPCMethod";this.requestName=c;this.responseName=f;this.requestStream=g;this.responseStream=k;this.resolvedResponseType=this.resolvedRequestType=null};g.prototype=Object.create(u.prototype);n.Service.RPCMethod=g;return n}(c);c.Builder=function(b,c,h){function n(b){b.messages&&
|
|
67
|
+
b.messages.forEach(function(c){c.syntax=b.syntax;n(c)});b.enums&&b.enums.forEach(function(c){c.syntax=b.syntax})}var l=function(b){this.ptr=this.ns=new h.Namespace(this,null,"");this.resolved=!1;this.result=null;this.files={};this.importRoot=null;this.options=b||{}},g=l.prototype;l.isMessage=function(b){return"string"!==typeof b.name||"undefined"!==typeof b.values||"undefined"!==typeof b.rpc?!1:!0};l.isMessageField=function(b){return"string"!==typeof b.rule||"string"!==typeof b.name||"string"!==typeof b.type||
|
|
68
|
+
"undefined"===typeof b.id?!1:!0};l.isEnum=function(b){return"string"===typeof b.name&&"undefined"!==typeof b.values&&Array.isArray(b.values)&&0!==b.values.length?!0:!1};l.isService=function(b){return"string"===typeof b.name&&"object"===typeof b.rpc&&b.rpc?!0:!1};l.isExtend=function(b){return"string"!==typeof b.ref?!1:!0};g.reset=function(){this.ptr=this.ns;return this};g.define=function(b){if("string"!==typeof b||!c.TYPEREF.test(b))throw Error("illegal namespace: "+b);b.split(".").forEach(function(b){var d=
|
|
69
|
+
this.ptr.getChild(b);null===d&&this.ptr.addChild(d=new h.Namespace(this,this.ptr,b));this.ptr=d},this);return this};g.create=function(d){if(!d)return this;if(Array.isArray(d)){if(0===d.length)return this;d=d.slice()}else d=[d];for(var c=[d];0<c.length;){d=c.pop();if(!Array.isArray(d))throw Error("not a valid namespace: "+JSON.stringify(d));for(;0<d.length;){var f=d.shift();if(l.isMessage(f)){var g=new h.Message(this,this.ptr,f.name,f.options,f.isGroup,f.syntax),n={};f.oneofs&&Object.keys(f.oneofs).forEach(function(b){g.addChild(n[b]=
|
|
70
|
+
new h.Message.OneOf(this,g,b))},this);f.fields&&f.fields.forEach(function(b){if(null!==g.getChild(b.id|0))throw Error("duplicate or invalid field id in "+g.name+": "+b.id);if(b.options&&"object"!==typeof b.options)throw Error("illegal field options in "+g.name+"#"+b.name);var d=null;if("string"===typeof b.oneof&&!(d=n[b.oneof]))throw Error("illegal oneof in "+g.name+"#"+b.name+": "+b.oneof);b=new h.Message.Field(this,g,b.rule,b.keytype,b.type,b.name,b.id,b.options,d,f.syntax);d&&d.fields.push(b);
|
|
71
|
+
g.addChild(b)},this);var p=[];f.enums&&f.enums.forEach(function(b){p.push(b)});f.messages&&f.messages.forEach(function(b){p.push(b)});f.services&&f.services.forEach(function(b){p.push(b)});f.extensions&&(g.extensions="number"===typeof f.extensions[0]?[f.extensions]:f.extensions);this.ptr.addChild(g);if(0<p.length){c.push(d);d=p;p=null;this.ptr=g;g=null;continue}p=null}else if(l.isEnum(f))g=new h.Enum(this,this.ptr,f.name,f.options,f.syntax),f.values.forEach(function(b){g.addChild(new h.Enum.Value(this,
|
|
72
|
+
g,b.name,b.id))},this),this.ptr.addChild(g);else if(l.isService(f))g=new h.Service(this,this.ptr,f.name,f.options),Object.keys(f.rpc).forEach(function(b){var d=f.rpc[b];g.addChild(new h.Service.RPCMethod(this,g,b,d.request,d.response,!!d.request_stream,!!d.response_stream,d.options))},this),this.ptr.addChild(g);else if(l.isExtend(f))if(g=this.ptr.resolve(f.ref,!0))f.fields.forEach(function(d){if(null!==g.getChild(d.id|0))throw Error("duplicate extended field id in "+g.name+": "+d.id);if(g.extensions){var c=
|
|
73
|
+
!1;g.extensions.forEach(function(a){d.id>=a[0]&&d.id<=a[1]&&(c=!0)});if(!c)throw Error("illegal extended field id in "+g.name+": "+d.id+" (not within valid ranges)");}var f=d.name;this.options.convertFieldsToCamelCase&&(f=b.Util.toCamelCase(f));var f=new h.Message.ExtensionField(this,g,d.rule,d.type,this.ptr.fqn()+"."+f,d.id,d.options),a=new h.Extension(this,this.ptr,d.name,f);f.extension=a;this.ptr.addChild(a);g.addChild(f)},this);else{if(!/\.?google\.protobuf\./.test(f.ref))throw Error("extended message "+
|
|
74
|
+
f.ref+" is not defined");}else throw Error("not a valid definition: "+JSON.stringify(f));g=f=null}d=null;this.ptr=this.ptr.parent}this.resolved=!1;this.result=null;return this};g["import"]=function(d,c){var f="/";if("string"===typeof c){b.Util.IS_NODE&&(c=require("path").resolve(c));if(!0===this.files[c])return this.reset();this.files[c]=!0}else if("object"===typeof c){var g=c.root;b.Util.IS_NODE&&(g=require("path").resolve(g));if(0<=g.indexOf("\\")||0<=c.file.indexOf("\\"))f="\\";g=g+f+c.file;if(!0===
|
|
75
|
+
this.files[g])return this.reset();this.files[g]=!0}if(d.imports&&0<d.imports.length){var h=!1;if("object"===typeof c){if(this.importRoot=c.root,h=!0,g=this.importRoot,c=c.file,0<=g.indexOf("\\")||0<=c.indexOf("\\"))f="\\"}else"string"===typeof c?this.importRoot?g=this.importRoot:0<=c.indexOf("/")?(g=c.replace(/\/[^\/]*$/,""),""===g&&(g="/")):0<=c.indexOf("\\")?(g=c.replace(/\\[^\\]*$/,""),f="\\"):g=".":g=null;for(var l=0;l<d.imports.length;l++)if("string"===typeof d.imports[l]){if(!g)throw Error("cannot determine import root");
|
|
76
|
+
var p=d.imports[l];if("google/protobuf/descriptor.proto"!==p&&(p=g+f+p,!0!==this.files[p])){/\.proto$/i.test(p)&&!b.DotProto&&(p=p.replace(/\.proto$/,".json"));var s=b.Util.fetch(p);if(null===s)throw Error("failed to import '"+p+"' in '"+c+"': file not found");if(/\.json$/i.test(p))this["import"](JSON.parse(s+""),p);else this["import"](b.DotProto.Parser.parse(s),p)}}else if(c)if(/\.(\w+)$/.test(c))this["import"](d.imports[l],c.replace(/^(.+)\.(\w+)$/,function(a,b,d){return b+"_import"+l+"."+d}));
|
|
77
|
+
else this["import"](d.imports[l],c+"_import"+l);else this["import"](d.imports[l]);h&&(this.importRoot=null)}d["package"]&&this.define(d["package"]);d.syntax&&n(d);var u=this.ptr;d.options&&Object.keys(d.options).forEach(function(a){u.options[a]=d.options[a]});d.messages&&(this.create(d.messages),this.ptr=u);d.enums&&(this.create(d.enums),this.ptr=u);d.services&&(this.create(d.services),this.ptr=u);d["extends"]&&this.create(d["extends"]);return this.reset()};g.resolveAll=function(){var d;if(null==
|
|
78
|
+
this.ptr||"object"===typeof this.ptr.type)return this;if(this.ptr instanceof h.Namespace)this.ptr.children.forEach(function(b){this.ptr=b;this.resolveAll()},this);else if(this.ptr instanceof h.Message.Field){if(c.TYPE.test(this.ptr.type))this.ptr.type=b.TYPES[this.ptr.type];else{if(!c.TYPEREF.test(this.ptr.type))throw Error("illegal type reference in "+this.ptr.toString(!0)+": "+this.ptr.type);d=(this.ptr instanceof h.Message.ExtensionField?this.ptr.extension.parent:this.ptr.parent).resolve(this.ptr.type,
|
|
79
|
+
!0);if(!d)throw Error("unresolvable type reference in "+this.ptr.toString(!0)+": "+this.ptr.type);this.ptr.resolvedType=d;if(d instanceof h.Enum){if(this.ptr.type=b.TYPES["enum"],"proto3"===this.ptr.syntax&&"proto3"!==d.syntax)throw Error("proto3 message cannot reference proto2 enum");}else if(d instanceof h.Message)this.ptr.type=d.isGroup?b.TYPES.group:b.TYPES.message;else throw Error("illegal type reference in "+this.ptr.toString(!0)+": "+this.ptr.type);}if(this.ptr.map){if(!c.TYPE.test(this.ptr.keyType))throw Error("illegal key type for map field in "+
|
|
80
|
+
this.ptr.toString(!0)+": "+this.ptr.keyType);this.ptr.keyType=b.TYPES[this.ptr.keyType]}}else if(this.ptr instanceof b.Reflect.Service.Method)if(this.ptr instanceof b.Reflect.Service.RPCMethod){d=this.ptr.parent.resolve(this.ptr.requestName,!0);if(!(d&&d instanceof b.Reflect.Message))throw Error("Illegal type reference in "+this.ptr.toString(!0)+": "+this.ptr.requestName);this.ptr.resolvedRequestType=d;d=this.ptr.parent.resolve(this.ptr.responseName,!0);if(!(d&&d instanceof b.Reflect.Message))throw Error("Illegal type reference in "+
|
|
81
|
+
this.ptr.toString(!0)+": "+this.ptr.responseName);this.ptr.resolvedResponseType=d}else throw Error("illegal service type in "+this.ptr.toString(!0));else if(!(this.ptr instanceof b.Reflect.Message.OneOf||this.ptr instanceof b.Reflect.Extension||this.ptr instanceof b.Reflect.Enum.Value))throw Error("illegal object in namespace: "+typeof this.ptr+": "+this.ptr);return this.reset()};g.build=function(b){this.reset();this.resolved||(this.resolveAll(),this.resolved=!0,this.result=null);null===this.result&&
|
|
82
|
+
(this.result=this.ns.build());if(!b)return this.result;b="string"===typeof b?b.split("."):b;for(var c=this.result,g=0;g<b.length;g++)if(c[b[g]])c=c[b[g]];else{c=null;break}return c};g.lookup=function(b,c){return b?this.ns.resolve(b,c):this.ns};g.toString=function(){return"Builder"};l.Message=function(){};l.Enum=function(){};l.Service=function(){};return l}(c,c.Lang,c.Reflect);c.Map=function(b,c){function h(b){var c=0;return{next:function(){return c<b.length?{done:!1,value:b[c++]}:{done:!0}}}}var n=
|
|
83
|
+
function(b,d){if(!b.map)throw Error("field is not a map");this.field=b;this.keyElem=new c.Element(b.keyType,null,!0,b.syntax);this.valueElem=new c.Element(b.type,b.resolvedType,!1,b.syntax);this.map={};Object.defineProperty(this,"size",{get:function(){return Object.keys(this.map).length}});if(d)for(var h=Object.keys(d),f=0;f<h.length;f++){var l=this.keyElem.valueFromString(h[f]),n=this.valueElem.verifyValue(d[h[f]]);this.map[this.keyElem.valueToString(l)]={key:l,value:n}}},l=n.prototype;l.clear=function(){this.map=
|
|
84
|
+
{}};l["delete"]=function(b){b=this.keyElem.valueToString(this.keyElem.verifyValue(b));var c=b in this.map;delete this.map[b];return c};l.entries=function(){for(var b=[],c=Object.keys(this.map),k=0,f;k<c.length;k++)b.push([(f=this.map[c[k]]).key,f.value]);return h(b)};l.keys=function(){for(var b=[],c=Object.keys(this.map),k=0;k<c.length;k++)b.push(this.map[c[k]].key);return h(b)};l.values=function(){for(var b=[],c=Object.keys(this.map),k=0;k<c.length;k++)b.push(this.map[c[k]].value);return h(b)};l.forEach=
|
|
85
|
+
function(b,c){for(var h=Object.keys(this.map),f=0,l;f<h.length;f++)b.call(c,(l=this.map[h[f]]).value,l.key,this)};l.set=function(b,c){var h=this.keyElem.verifyValue(b),f=this.valueElem.verifyValue(c);this.map[this.keyElem.valueToString(h)]={key:h,value:f};return this};l.get=function(b){b=this.keyElem.valueToString(this.keyElem.verifyValue(b));return b in this.map?this.map[b].value:void 0};l.has=function(b){return this.keyElem.valueToString(this.keyElem.verifyValue(b))in this.map};return n}(c,c.Reflect);
|
|
86
|
+
c.newBuilder=function(b){b=b||{};"undefined"===typeof b.convertFieldsToCamelCase&&(b.convertFieldsToCamelCase=c.convertFieldsToCamelCase);"undefined"===typeof b.populateAccessors&&(b.populateAccessors=c.populateAccessors);return new c.Builder(b)};c.loadJson=function(b,h,s){if("string"===typeof h||h&&"string"===typeof h.file&&"string"===typeof h.root)s=h,h=null;h&&"object"===typeof h||(h=c.newBuilder());"string"===typeof b&&(b=JSON.parse(b));h["import"](b,s);h.resolveAll();return h};c.loadJsonFile=
|
|
87
|
+
function(b,h,s){h&&"object"===typeof h?(s=h,h=null):h&&"function"===typeof h||(h=null);if(h)return c.Util.fetch("string"===typeof b?b:b.root+"/"+b.file,function(l){if(null===l)h(Error("Failed to fetch file"));else try{h(null,c.loadJson(JSON.parse(l),s,b))}catch(g){h(g)}});var n=c.Util.fetch("object"===typeof b?b.root+"/"+b.file:b);return null===n?null:c.loadJson(JSON.parse(n),s,b)};return c});
|
|
Binary file
|