protobufjs 5.0.1 → 5.0.2
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 +2 -1
- package/README.md +144 -22
- package/bin/pbjs +2 -2
- package/bower.json +2 -2
- package/cli/pbjs/targets/amd.js +1 -1
- package/cli/pbjs/targets/json.js +8 -0
- package/cli/pbjs/util.js +1 -1
- package/cli/pbjs.js +1 -1
- package/dist/protobuf-light.js +166 -128
- package/dist/protobuf-light.min.js +88 -81
- package/dist/protobuf-light.min.js.gz +0 -0
- package/dist/protobuf-light.min.map +4 -4
- package/dist/protobuf.js +171 -129
- package/dist/protobuf.min.js +106 -98
- package/dist/protobuf.min.js.gz +0 -0
- package/dist/protobuf.min.map +4 -4
- package/docs/ProtoBuf.Builder.Message.html +1408 -971
- package/docs/ProtoBuf.Builder.Service.html +266 -197
- package/docs/ProtoBuf.Builder.html +758 -542
- package/docs/ProtoBuf.DotProto.Parser.html +223 -161
- package/docs/ProtoBuf.DotProto.Tokenizer.html +344 -248
- package/docs/ProtoBuf.DotProto.html +20 -12
- package/docs/ProtoBuf.Element.html +554 -554
- package/docs/ProtoBuf.Map.html +158 -123
- package/docs/ProtoBuf.Reflect.Element.html +286 -143
- package/docs/ProtoBuf.Reflect.Enum.Value.html +329 -228
- package/docs/ProtoBuf.Reflect.Enum.html +757 -537
- package/docs/ProtoBuf.Reflect.Extension.html +73 -56
- package/docs/ProtoBuf.Reflect.Message.ExtensionField.html +1013 -740
- package/docs/ProtoBuf.Reflect.Message.Field.html +926 -649
- package/docs/ProtoBuf.Reflect.Message.OneOf.html +327 -245
- package/docs/ProtoBuf.Reflect.Message.html +915 -651
- package/docs/ProtoBuf.Reflect.Namespace.html +648 -447
- package/docs/ProtoBuf.Reflect.Service.Method.html +363 -251
- package/docs/ProtoBuf.Reflect.Service.RPCMethod.html +545 -397
- package/docs/ProtoBuf.Reflect.Service.html +721 -511
- package/docs/ProtoBuf.Reflect.T.html +268 -197
- package/docs/ProtoBuf.Reflect.html +20 -12
- package/docs/ProtoBuf.Util.html +169 -118
- package/docs/ProtoBuf.html +840 -628
- package/docs/ProtoBuf.js.html +177 -134
- package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Light-webfont.svg +1831 -0
- package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
- package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/index.html +7 -5
- package/docs/styles/jsdoc-default.css +95 -75
- package/docs/styles/prettify-tomorrow.css +1 -1
- package/examples/protoify/json.js +123 -123
- package/examples/protoify/json.json +123 -123
- package/examples/websocket/server.js +4 -4
- package/externs/protobuf.js +1 -1
- package/jsdoc.json +1 -1
- package/package.json +2 -2
- package/scripts/build.js +53 -53
- package/src/ProtoBuf/Builder/Message.js +9 -5
- package/src/ProtoBuf/Builder.js +19 -2
- package/src/ProtoBuf/DotProto/Parser.js +5 -1
- package/src/ProtoBuf/Reflect/Element.js +13 -1
- package/src/ProtoBuf/Reflect/Message/Field.js +2 -2
- package/src/ProtoBuf/Reflect/Message.js +6 -1
- package/src/ProtoBuf/Util.js +116 -116
- package/src/bower.json +1 -1
- package/src/google/protobuf/descriptor.json +27 -1
- package/tests/bench.txt +373 -373
- package/tests/complex.json +8 -1
- package/tests/custom-options.json +169 -169
- package/tests/extend.json +71 -71
- package/tests/imports.json +83 -83
- package/tests/nodeunit-browser/nodeunit.css +70 -70
- package/tests/nodeunit-browser/nodeunit.js +2108 -2108
- package/tests/options.json +32 -32
- package/tests/proto2js/Bar.json +46 -46
- package/tests/suite.js +43 -1
- package/sandbox/gapi/googleapis/google/api/annotations.proto +0 -29
- package/sandbox/gapi/googleapis/google/api/http.proto +0 -245
- package/sandbox/gapi/googleapis/google/datastore/v1beta3/datastore.proto +0 -281
- package/sandbox/gapi/googleapis/google/datastore/v1beta3/entity.proto +0 -189
- package/sandbox/gapi/googleapis/google/datastore/v1beta3/query.proto +0 -281
- package/sandbox/gapi/googleapis/google/longrunning/operations.proto +0 -144
- package/sandbox/gapi/googleapis/google/protobuf/any.proto +0 -98
- package/sandbox/gapi/googleapis/google/protobuf/any_test.proto +0 -41
- package/sandbox/gapi/googleapis/google/protobuf/api.proto +0 -201
- package/sandbox/gapi/googleapis/google/protobuf/descriptor.proto +0 -773
- package/sandbox/gapi/googleapis/google/protobuf/duration.proto +0 -95
- package/sandbox/gapi/googleapis/google/protobuf/empty.proto +0 -50
- package/sandbox/gapi/googleapis/google/protobuf/field_mask.proto +0 -167
- package/sandbox/gapi/googleapis/google/protobuf/map_lite_unittest.proto +0 -130
- package/sandbox/gapi/googleapis/google/protobuf/map_proto2_unittest.proto +0 -60
- package/sandbox/gapi/googleapis/google/protobuf/map_unittest.proto +0 -129
- package/sandbox/gapi/googleapis/google/protobuf/map_unittest_proto3.proto +0 -120
- package/sandbox/gapi/googleapis/google/protobuf/source_context.proto +0 -47
- package/sandbox/gapi/googleapis/google/protobuf/struct.proto +0 -94
- package/sandbox/gapi/googleapis/google/protobuf/timestamp.proto +0 -107
- package/sandbox/gapi/googleapis/google/protobuf/type.proto +0 -176
- package/sandbox/gapi/googleapis/google/protobuf/unittest.proto +0 -878
- package/sandbox/gapi/googleapis/google/protobuf/unittest_arena.proto +0 -46
- package/sandbox/gapi/googleapis/google/protobuf/unittest_custom_options.proto +0 -394
- package/sandbox/gapi/googleapis/google/protobuf/unittest_drop_unknown_fields.proto +0 -58
- package/sandbox/gapi/googleapis/google/protobuf/unittest_embed_optimize_for.proto +0 -51
- package/sandbox/gapi/googleapis/google/protobuf/unittest_empty.proto +0 -38
- package/sandbox/gapi/googleapis/google/protobuf/unittest_enormous_descriptor.proto +0 -1048
- package/sandbox/gapi/googleapis/google/protobuf/unittest_import.proto +0 -66
- package/sandbox/gapi/googleapis/google/protobuf/unittest_import_lite.proto +0 -52
- package/sandbox/gapi/googleapis/google/protobuf/unittest_import_proto3.proto +0 -68
- package/sandbox/gapi/googleapis/google/protobuf/unittest_import_public.proto +0 -41
- package/sandbox/gapi/googleapis/google/protobuf/unittest_import_public_lite.proto +0 -43
- package/sandbox/gapi/googleapis/google/protobuf/unittest_import_public_proto3.proto +0 -42
- package/sandbox/gapi/googleapis/google/protobuf/unittest_lite.proto +0 -385
- package/sandbox/gapi/googleapis/google/protobuf/unittest_lite_imports_nonlite.proto +0 -44
- package/sandbox/gapi/googleapis/google/protobuf/unittest_mset.proto +0 -82
- package/sandbox/gapi/googleapis/google/protobuf/unittest_mset_wire_format.proto +0 -52
- package/sandbox/gapi/googleapis/google/protobuf/unittest_no_arena.proto +0 -202
- package/sandbox/gapi/googleapis/google/protobuf/unittest_no_arena_import.proto +0 -37
- package/sandbox/gapi/googleapis/google/protobuf/unittest_no_arena_lite.proto +0 -42
- package/sandbox/gapi/googleapis/google/protobuf/unittest_no_field_presence.proto +0 -138
- package/sandbox/gapi/googleapis/google/protobuf/unittest_no_generic_services.proto +0 -54
- package/sandbox/gapi/googleapis/google/protobuf/unittest_optimize_for.proto +0 -67
- package/sandbox/gapi/googleapis/google/protobuf/unittest_preserve_unknown_enum.proto +0 -71
- package/sandbox/gapi/googleapis/google/protobuf/unittest_preserve_unknown_enum2.proto +0 -50
- package/sandbox/gapi/googleapis/google/protobuf/unittest_proto3.proto +0 -388
- package/sandbox/gapi/googleapis/google/protobuf/unittest_proto3_arena.proto +0 -206
- package/sandbox/gapi/googleapis/google/protobuf/unittest_well_known_types.proto +0 -112
- package/sandbox/gapi/googleapis/google/protobuf/unknown_enum_test.proto +0 -62
- package/sandbox/gapi/googleapis/google/protobuf/wrappers.proto +0 -117
- package/sandbox/gapi/googleapis/google/rpc/code.proto +0 -190
- package/sandbox/gapi/googleapis/google/rpc/error_details.proto +0 -157
- package/sandbox/gapi/googleapis/google/rpc/status.proto +0 -90
- package/sandbox/gapi/googleapis/google/type/color.proto +0 -163
- package/sandbox/gapi/googleapis/google/type/date.proto +0 -43
- package/sandbox/gapi/googleapis/google/type/dayofweek.proto +0 -50
- package/sandbox/gapi/googleapis/google/type/latlng.proto +0 -36
- package/sandbox/gapi/googleapis/google/type/money.proto +0 -40
- package/sandbox/gapi/googleapis/google/type/timeofday.proto +0 -42
- package/sandbox/gapi/test.js +0 -17
- package/sandbox/gapi/test.proto +0 -12
- package/sandbox/issue146/MyOptions.proto +0 -28
- package/sandbox/issue146/Sample.proto +0 -21
- package/sandbox/issue146/main.js +0 -3
- package/sandbox/issue147/enum.proto +0 -8
- package/sandbox/issue147/main.js +0 -3
- package/sandbox/issue182/commands.proto +0 -10
- package/sandbox/issue182/execute.js +0 -22
- package/sandbox/issue182/session_commands.proto +0 -14
- package/sandbox/issue289/A.proto +0 -8
- package/sandbox/issue289/B.proto +0 -8
- package/sandbox/issue289/common.proto +0 -5
- package/sandbox/issue289/main.js +0 -7
- package/sandbox/issue300/IAuth.proto +0 -14
- package/sandbox/issue300/Request.proto +0 -14
- package/sandbox/issue300/main.js +0 -26
- package/sandbox/issue347/index.js +0 -27
- package/sandbox/issue355/main.proto +0 -15
- package/sandbox/issue42/innerextend.proto +0 -18
- package/sandbox/issue42/main.js +0 -8
- package/sandbox/issue42/outerextend.proto +0 -17
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.2";
|
|
61
61
|
|
|
62
62
|
/**
|
|
63
63
|
* Wire types.
|
|
@@ -289,122 +289,122 @@
|
|
|
289
289
|
*/
|
|
290
290
|
ProtoBuf.populateDefaults = true;
|
|
291
291
|
|
|
292
|
-
/**
|
|
293
|
-
* @alias ProtoBuf.Util
|
|
294
|
-
* @expose
|
|
295
|
-
*/
|
|
296
|
-
ProtoBuf.Util = (function() {
|
|
297
|
-
"use strict";
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* ProtoBuf utilities.
|
|
301
|
-
* @exports ProtoBuf.Util
|
|
302
|
-
* @namespace
|
|
303
|
-
*/
|
|
304
|
-
var Util = {};
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* Flag if running in node or not.
|
|
308
|
-
* @type {boolean}
|
|
309
|
-
* @const
|
|
310
|
-
* @expose
|
|
311
|
-
*/
|
|
312
|
-
Util.IS_NODE = !!(
|
|
313
|
-
typeof process === 'object' && process+'' === '[object process]' && !process['browser']
|
|
314
|
-
);
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* Constructs a XMLHttpRequest object.
|
|
318
|
-
* @return {XMLHttpRequest}
|
|
319
|
-
* @throws {Error} If XMLHttpRequest is not supported
|
|
320
|
-
* @expose
|
|
321
|
-
*/
|
|
322
|
-
Util.XHR = function() {
|
|
323
|
-
// No dependencies please, ref: http://www.quirksmode.org/js/xmlhttp.html
|
|
324
|
-
var XMLHttpFactories = [
|
|
325
|
-
function () {return new XMLHttpRequest()},
|
|
326
|
-
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
|
|
327
|
-
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
|
|
328
|
-
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
|
|
329
|
-
];
|
|
330
|
-
/** @type {?XMLHttpRequest} */
|
|
331
|
-
var xhr = null;
|
|
332
|
-
for (var i=0;i<XMLHttpFactories.length;i++) {
|
|
333
|
-
try { xhr = XMLHttpFactories[i](); }
|
|
334
|
-
catch (e) { continue; }
|
|
335
|
-
break;
|
|
336
|
-
}
|
|
337
|
-
if (!xhr)
|
|
338
|
-
throw Error("XMLHttpRequest is not supported");
|
|
339
|
-
return xhr;
|
|
340
|
-
};
|
|
341
|
-
|
|
342
|
-
/**
|
|
343
|
-
* Fetches a resource.
|
|
344
|
-
* @param {string} path Resource path
|
|
345
|
-
* @param {function(?string)=} callback Callback receiving the resource's contents. If omitted the resource will
|
|
346
|
-
* be fetched synchronously. If the request failed, contents will be null.
|
|
347
|
-
* @return {?string|undefined} Resource contents if callback is omitted (null if the request failed), else undefined.
|
|
348
|
-
* @expose
|
|
349
|
-
*/
|
|
350
|
-
Util.fetch = function(path, callback) {
|
|
351
|
-
if (callback && typeof callback != 'function')
|
|
352
|
-
callback = null;
|
|
353
|
-
if (Util.IS_NODE) {
|
|
354
|
-
var fs = require("fs");
|
|
355
|
-
if (callback) {
|
|
356
|
-
fs.readFile(path, function(err, data) {
|
|
357
|
-
if (err)
|
|
358
|
-
callback(null);
|
|
359
|
-
else
|
|
360
|
-
callback(""+data);
|
|
361
|
-
});
|
|
362
|
-
} else
|
|
363
|
-
try {
|
|
364
|
-
return fs.readFileSync(path);
|
|
365
|
-
} catch (e) {
|
|
366
|
-
return null;
|
|
367
|
-
}
|
|
368
|
-
} else {
|
|
369
|
-
var xhr = Util.XHR();
|
|
370
|
-
xhr.open('GET', path, callback ? true : false);
|
|
371
|
-
// xhr.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
|
|
372
|
-
xhr.setRequestHeader('Accept', 'text/plain');
|
|
373
|
-
if (typeof xhr.overrideMimeType === 'function') xhr.overrideMimeType('text/plain');
|
|
374
|
-
if (callback) {
|
|
375
|
-
xhr.onreadystatechange = function() {
|
|
376
|
-
if (xhr.readyState != 4) return;
|
|
377
|
-
if (/* remote */ xhr.status == 200 || /* local */ (xhr.status == 0 && typeof xhr.responseText === 'string'))
|
|
378
|
-
callback(xhr.responseText);
|
|
379
|
-
else
|
|
380
|
-
callback(null);
|
|
381
|
-
};
|
|
382
|
-
if (xhr.readyState == 4)
|
|
383
|
-
return;
|
|
384
|
-
xhr.send(null);
|
|
385
|
-
} else {
|
|
386
|
-
xhr.send(null);
|
|
387
|
-
if (/* remote */ xhr.status == 200 || /* local */ (xhr.status == 0 && typeof xhr.responseText === 'string'))
|
|
388
|
-
return xhr.responseText;
|
|
389
|
-
return null;
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
};
|
|
393
|
-
|
|
394
|
-
/**
|
|
395
|
-
* Converts a string to camel case.
|
|
396
|
-
* @param {string} str
|
|
397
|
-
* @returns {string}
|
|
398
|
-
* @expose
|
|
399
|
-
*/
|
|
400
|
-
Util.toCamelCase = function(str) {
|
|
401
|
-
return str.replace(/_([a-zA-Z])/g, function ($0, $1) {
|
|
402
|
-
return $1.toUpperCase();
|
|
403
|
-
});
|
|
404
|
-
};
|
|
405
|
-
|
|
406
|
-
return Util;
|
|
407
|
-
})();
|
|
292
|
+
/**
|
|
293
|
+
* @alias ProtoBuf.Util
|
|
294
|
+
* @expose
|
|
295
|
+
*/
|
|
296
|
+
ProtoBuf.Util = (function() {
|
|
297
|
+
"use strict";
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* ProtoBuf utilities.
|
|
301
|
+
* @exports ProtoBuf.Util
|
|
302
|
+
* @namespace
|
|
303
|
+
*/
|
|
304
|
+
var Util = {};
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Flag if running in node or not.
|
|
308
|
+
* @type {boolean}
|
|
309
|
+
* @const
|
|
310
|
+
* @expose
|
|
311
|
+
*/
|
|
312
|
+
Util.IS_NODE = !!(
|
|
313
|
+
typeof process === 'object' && process+'' === '[object process]' && !process['browser']
|
|
314
|
+
);
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Constructs a XMLHttpRequest object.
|
|
318
|
+
* @return {XMLHttpRequest}
|
|
319
|
+
* @throws {Error} If XMLHttpRequest is not supported
|
|
320
|
+
* @expose
|
|
321
|
+
*/
|
|
322
|
+
Util.XHR = function() {
|
|
323
|
+
// No dependencies please, ref: http://www.quirksmode.org/js/xmlhttp.html
|
|
324
|
+
var XMLHttpFactories = [
|
|
325
|
+
function () {return new XMLHttpRequest()},
|
|
326
|
+
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
|
|
327
|
+
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
|
|
328
|
+
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
|
|
329
|
+
];
|
|
330
|
+
/** @type {?XMLHttpRequest} */
|
|
331
|
+
var xhr = null;
|
|
332
|
+
for (var i=0;i<XMLHttpFactories.length;i++) {
|
|
333
|
+
try { xhr = XMLHttpFactories[i](); }
|
|
334
|
+
catch (e) { continue; }
|
|
335
|
+
break;
|
|
336
|
+
}
|
|
337
|
+
if (!xhr)
|
|
338
|
+
throw Error("XMLHttpRequest is not supported");
|
|
339
|
+
return xhr;
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* Fetches a resource.
|
|
344
|
+
* @param {string} path Resource path
|
|
345
|
+
* @param {function(?string)=} callback Callback receiving the resource's contents. If omitted the resource will
|
|
346
|
+
* be fetched synchronously. If the request failed, contents will be null.
|
|
347
|
+
* @return {?string|undefined} Resource contents if callback is omitted (null if the request failed), else undefined.
|
|
348
|
+
* @expose
|
|
349
|
+
*/
|
|
350
|
+
Util.fetch = function(path, callback) {
|
|
351
|
+
if (callback && typeof callback != 'function')
|
|
352
|
+
callback = null;
|
|
353
|
+
if (Util.IS_NODE) {
|
|
354
|
+
var fs = require("fs");
|
|
355
|
+
if (callback) {
|
|
356
|
+
fs.readFile(path, function(err, data) {
|
|
357
|
+
if (err)
|
|
358
|
+
callback(null);
|
|
359
|
+
else
|
|
360
|
+
callback(""+data);
|
|
361
|
+
});
|
|
362
|
+
} else
|
|
363
|
+
try {
|
|
364
|
+
return fs.readFileSync(path);
|
|
365
|
+
} catch (e) {
|
|
366
|
+
return null;
|
|
367
|
+
}
|
|
368
|
+
} else {
|
|
369
|
+
var xhr = Util.XHR();
|
|
370
|
+
xhr.open('GET', path, callback ? true : false);
|
|
371
|
+
// xhr.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
|
|
372
|
+
xhr.setRequestHeader('Accept', 'text/plain');
|
|
373
|
+
if (typeof xhr.overrideMimeType === 'function') xhr.overrideMimeType('text/plain');
|
|
374
|
+
if (callback) {
|
|
375
|
+
xhr.onreadystatechange = function() {
|
|
376
|
+
if (xhr.readyState != 4) return;
|
|
377
|
+
if (/* remote */ xhr.status == 200 || /* local */ (xhr.status == 0 && typeof xhr.responseText === 'string'))
|
|
378
|
+
callback(xhr.responseText);
|
|
379
|
+
else
|
|
380
|
+
callback(null);
|
|
381
|
+
};
|
|
382
|
+
if (xhr.readyState == 4)
|
|
383
|
+
return;
|
|
384
|
+
xhr.send(null);
|
|
385
|
+
} else {
|
|
386
|
+
xhr.send(null);
|
|
387
|
+
if (/* remote */ xhr.status == 200 || /* local */ (xhr.status == 0 && typeof xhr.responseText === 'string'))
|
|
388
|
+
return xhr.responseText;
|
|
389
|
+
return null;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* Converts a string to camel case.
|
|
396
|
+
* @param {string} str
|
|
397
|
+
* @returns {string}
|
|
398
|
+
* @expose
|
|
399
|
+
*/
|
|
400
|
+
Util.toCamelCase = function(str) {
|
|
401
|
+
return str.replace(/_([a-zA-Z])/g, function ($0, $1) {
|
|
402
|
+
return $1.toUpperCase();
|
|
403
|
+
});
|
|
404
|
+
};
|
|
405
|
+
|
|
406
|
+
return Util;
|
|
407
|
+
})();
|
|
408
408
|
|
|
409
409
|
/**
|
|
410
410
|
* Language expressions.
|
|
@@ -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).
|
|
@@ -1553,9 +1565,11 @@
|
|
|
1553
1565
|
MessagePrototype.set = function(keyOrObj, value, noAssert) {
|
|
1554
1566
|
if (keyOrObj && typeof keyOrObj === 'object') {
|
|
1555
1567
|
noAssert = value;
|
|
1556
|
-
for (var ikey in keyOrObj)
|
|
1557
|
-
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)
|
|
1558
1571
|
this.$set(ikey, value, noAssert);
|
|
1572
|
+
}
|
|
1559
1573
|
return this;
|
|
1560
1574
|
}
|
|
1561
1575
|
var field = T._fieldsByName[keyOrObj];
|
|
@@ -2019,10 +2033,11 @@
|
|
|
2019
2033
|
length = -1;
|
|
2020
2034
|
if (typeof buffer === 'string')
|
|
2021
2035
|
buffer = ByteBuffer.wrap(buffer, enc ? enc : "base64");
|
|
2022
|
-
|
|
2036
|
+
else if (!ByteBuffer.isByteBuffer(buffer))
|
|
2037
|
+
buffer = ByteBuffer.wrap(buffer); // May throw
|
|
2023
2038
|
var le = buffer.littleEndian;
|
|
2024
2039
|
try {
|
|
2025
|
-
var msg = T.decode(buffer.LE());
|
|
2040
|
+
var msg = T.decode(buffer.LE(), length);
|
|
2026
2041
|
buffer.LE(le);
|
|
2027
2042
|
return msg;
|
|
2028
2043
|
} catch (e) {
|
|
@@ -2045,7 +2060,8 @@
|
|
|
2045
2060
|
Message.decodeDelimited = function(buffer, enc) {
|
|
2046
2061
|
if (typeof buffer === 'string')
|
|
2047
2062
|
buffer = ByteBuffer.wrap(buffer, enc ? enc : "base64");
|
|
2048
|
-
|
|
2063
|
+
else if (!ByteBuffer.isByteBuffer(buffer))
|
|
2064
|
+
buffer = ByteBuffer.wrap(buffer); // May throw
|
|
2049
2065
|
if (buffer.remaining() < 1)
|
|
2050
2066
|
return null;
|
|
2051
2067
|
var off = buffer.offset,
|
|
@@ -2167,6 +2183,7 @@
|
|
|
2167
2183
|
this._fields = [];
|
|
2168
2184
|
this._fieldsById = {};
|
|
2169
2185
|
this._fieldsByName = {};
|
|
2186
|
+
this._oneofsByName = {};
|
|
2170
2187
|
for (var i=0, k=this.children.length, child; i<k; i++) {
|
|
2171
2188
|
child = this.children[i];
|
|
2172
2189
|
if (child instanceof Enum || child instanceof Message || child instanceof Service) {
|
|
@@ -2178,6 +2195,9 @@
|
|
|
2178
2195
|
this._fields.push(child),
|
|
2179
2196
|
this._fieldsById[child.id] = child,
|
|
2180
2197
|
this._fieldsByName[child.name] = child;
|
|
2198
|
+
else if (child instanceof Message.OneOf) {
|
|
2199
|
+
this._oneofsByName[child.name] = child;
|
|
2200
|
+
}
|
|
2181
2201
|
else if (!(child instanceof Message.OneOf) && !(child instanceof Extension)) // Not built
|
|
2182
2202
|
throw Error("Illegal reflect child of "+this.toString(true)+": "+this.children[i].toString(true));
|
|
2183
2203
|
}
|
|
@@ -2284,7 +2304,8 @@
|
|
|
2284
2304
|
* @expose
|
|
2285
2305
|
*/
|
|
2286
2306
|
MessagePrototype.decode = function(buffer, length, expectedGroupEndId) {
|
|
2287
|
-
|
|
2307
|
+
if (typeof length !== 'number')
|
|
2308
|
+
length = -1;
|
|
2288
2309
|
var start = buffer.offset,
|
|
2289
2310
|
msg = new (this.clazz)(),
|
|
2290
2311
|
tag, wireType, id, field;
|
|
@@ -2503,9 +2524,9 @@
|
|
|
2503
2524
|
* @expose
|
|
2504
2525
|
*/
|
|
2505
2526
|
FieldPrototype.build = function() {
|
|
2506
|
-
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);
|
|
2507
2528
|
if (this.map)
|
|
2508
|
-
this.keyElement = new Element(this.keyType, undefined, true, this.syntax);
|
|
2529
|
+
this.keyElement = new Element(this.keyType, undefined, true, this.syntax, this.name);
|
|
2509
2530
|
|
|
2510
2531
|
// In proto3, fields do not have field presence, and every field is set to
|
|
2511
2532
|
// its type's default value ("", 0, 0.0, or false).
|
|
@@ -3724,7 +3745,11 @@
|
|
|
3724
3745
|
root = require("path")['resolve'](root);
|
|
3725
3746
|
if (root.indexOf("\\") >= 0 || filename.file.indexOf("\\") >= 0)
|
|
3726
3747
|
delim = '\\';
|
|
3727
|
-
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;
|
|
3728
3753
|
if (this.files[fname] === true)
|
|
3729
3754
|
return this.reset();
|
|
3730
3755
|
this.files[fname] = true;
|
|
@@ -3770,7 +3795,10 @@
|
|
|
3770
3795
|
var importFilename = json['imports'][i];
|
|
3771
3796
|
if (importFilename === "google/protobuf/descriptor.proto")
|
|
3772
3797
|
continue; // Not needed and therefore not used
|
|
3773
|
-
|
|
3798
|
+
if (ProtoBuf.Util.IS_NODE)
|
|
3799
|
+
importFilename = require("path")['join'](importRoot, importFilename);
|
|
3800
|
+
else
|
|
3801
|
+
importFilename = importRoot + delim + importFilename;
|
|
3774
3802
|
if (this.files[importFilename] === true)
|
|
3775
3803
|
continue; // Already imported
|
|
3776
3804
|
if (/\.proto$/i.test(importFilename) && !ProtoBuf.DotProto) // If this is a light build
|
|
@@ -3868,6 +3896,16 @@
|
|
|
3868
3896
|
this.ptr.keyType = ProtoBuf.TYPES[this.ptr.keyType];
|
|
3869
3897
|
}
|
|
3870
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
|
+
|
|
3871
3909
|
} else if (this.ptr instanceof ProtoBuf.Reflect.Service.Method) {
|
|
3872
3910
|
|
|
3873
3911
|
if (this.ptr instanceof ProtoBuf.Reflect.Service.RPCMethod) {
|