protobufjs 8.1.5-experimental → 8.2.0

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.
Files changed (76) hide show
  1. package/README.md +219 -565
  2. package/dist/light/protobuf.js +1986 -1483
  3. package/dist/light/protobuf.js.map +1 -1
  4. package/dist/light/protobuf.min.js +3 -3
  5. package/dist/light/protobuf.min.js.map +1 -1
  6. package/dist/minimal/protobuf.js +1122 -861
  7. package/dist/minimal/protobuf.js.map +1 -1
  8. package/dist/minimal/protobuf.min.js +3 -3
  9. package/dist/minimal/protobuf.min.js.map +1 -1
  10. package/dist/protobuf.js +2089 -1513
  11. package/dist/protobuf.js.map +1 -1
  12. package/dist/protobuf.min.js +3 -3
  13. package/dist/protobuf.min.js.map +1 -1
  14. package/ext/README.md +81 -0
  15. package/ext/descriptor/README.md +3 -70
  16. package/ext/descriptor/index.d.ts +1 -191
  17. package/ext/descriptor/index.js +1 -1156
  18. package/ext/descriptor.d.ts +309 -0
  19. package/ext/descriptor.js +1236 -0
  20. package/ext/textformat.d.ts +30 -0
  21. package/ext/textformat.js +1249 -0
  22. package/google/protobuf/compiler/plugin.json +126 -0
  23. package/google/protobuf/compiler/plugin.proto +47 -0
  24. package/google/protobuf/descriptor.json +114 -10
  25. package/google/protobuf/descriptor.proto +35 -9
  26. package/index.d.ts +590 -476
  27. package/package.json +23 -38
  28. package/src/converter.js +60 -24
  29. package/src/decoder.js +122 -49
  30. package/src/encoder.js +10 -2
  31. package/src/enum.js +4 -1
  32. package/src/field.js +10 -7
  33. package/src/mapfield.js +1 -0
  34. package/src/message.js +7 -6
  35. package/src/method.js +4 -3
  36. package/src/namespace.js +23 -12
  37. package/src/object.js +24 -19
  38. package/src/oneof.js +2 -0
  39. package/src/parse.js +114 -46
  40. package/src/reader.js +145 -30
  41. package/src/reader_buffer.js +24 -3
  42. package/src/root.js +7 -4
  43. package/src/service.js +12 -6
  44. package/src/tokenize.js +6 -1
  45. package/src/type.js +48 -25
  46. package/src/types.js +1 -1
  47. package/src/util/aspromise.d.ts +13 -0
  48. package/src/util/aspromise.js +52 -0
  49. package/src/util/base64.d.ts +32 -0
  50. package/src/util/base64.js +146 -0
  51. package/src/util/codegen.d.ts +31 -0
  52. package/src/util/codegen.js +113 -0
  53. package/src/util/eventemitter.d.ts +45 -0
  54. package/src/util/eventemitter.js +84 -0
  55. package/src/util/fetch.d.ts +56 -0
  56. package/src/util/fetch.js +112 -0
  57. package/src/util/float.d.ts +83 -0
  58. package/src/util/float.js +335 -0
  59. package/src/util/fs.js +11 -0
  60. package/src/util/inquire.d.ts +10 -0
  61. package/src/util/inquire.js +38 -0
  62. package/src/util/minimal.js +67 -12
  63. package/src/util/path.d.ts +22 -0
  64. package/src/util/path.js +72 -0
  65. package/src/util/patterns.js +8 -0
  66. package/src/util/pool.d.ts +32 -0
  67. package/src/util/pool.js +48 -0
  68. package/src/util/utf8.d.ts +24 -0
  69. package/src/util/utf8.js +104 -0
  70. package/src/util.js +30 -13
  71. package/src/verifier.js +7 -4
  72. package/src/wrappers.js +4 -3
  73. package/src/writer.js +27 -4
  74. package/src/writer_buffer.js +12 -0
  75. package/tsconfig.json +2 -2
  76. package/ext/descriptor/test.js +0 -54
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * protobuf.js v8.1.5-experimental (c) 2016, daniel wirtz
3
- * compiled tue, 27 may 2025 20:34:38 utc
2
+ * protobuf.js v8.2.0 (c) 2016, daniel wirtz
3
+ * compiled sat, 09 may 2026 19:37:43 utc
4
4
  * licensed under the bsd-3-clause license
5
5
  * see: https://github.com/dcodeio/protobuf.js for details
6
6
  */
@@ -38,792 +38,6 @@
38
38
  module.exports = protobuf;
39
39
 
40
40
  })/* end of prelude */({1:[function(require,module,exports){
41
- "use strict";
42
- module.exports = asPromise;
43
-
44
- /**
45
- * Callback as used by {@link util.asPromise}.
46
- * @typedef asPromiseCallback
47
- * @type {function}
48
- * @param {Error|null} error Error, if any
49
- * @param {...*} params Additional arguments
50
- * @returns {undefined}
51
- */
52
-
53
- /**
54
- * Returns a promise from a node-style callback function.
55
- * @memberof util
56
- * @param {asPromiseCallback} fn Function to call
57
- * @param {*} ctx Function context
58
- * @param {...*} params Function arguments
59
- * @returns {Promise<*>} Promisified function
60
- */
61
- function asPromise(fn, ctx/*, varargs */) {
62
- var params = new Array(arguments.length - 1),
63
- offset = 0,
64
- index = 2,
65
- pending = true;
66
- while (index < arguments.length)
67
- params[offset++] = arguments[index++];
68
- return new Promise(function executor(resolve, reject) {
69
- params[offset] = function callback(err/*, varargs */) {
70
- if (pending) {
71
- pending = false;
72
- if (err)
73
- reject(err);
74
- else {
75
- var params = new Array(arguments.length - 1),
76
- offset = 0;
77
- while (offset < params.length)
78
- params[offset++] = arguments[offset];
79
- resolve.apply(null, params);
80
- }
81
- }
82
- };
83
- try {
84
- fn.apply(ctx || null, params);
85
- } catch (err) {
86
- if (pending) {
87
- pending = false;
88
- reject(err);
89
- }
90
- }
91
- });
92
- }
93
-
94
- },{}],2:[function(require,module,exports){
95
- "use strict";
96
-
97
- /**
98
- * A minimal base64 implementation for number arrays.
99
- * @memberof util
100
- * @namespace
101
- */
102
- var base64 = exports;
103
-
104
- /**
105
- * Calculates the byte length of a base64 encoded string.
106
- * @param {string} string Base64 encoded string
107
- * @returns {number} Byte length
108
- */
109
- base64.length = function length(string) {
110
- var p = string.length;
111
- if (!p)
112
- return 0;
113
- var n = 0;
114
- while (--p % 4 > 1 && string.charAt(p) === "=")
115
- ++n;
116
- return Math.ceil(string.length * 3) / 4 - n;
117
- };
118
-
119
- // Base64 encoding table
120
- var b64 = new Array(64);
121
-
122
- // Base64 decoding table
123
- var s64 = new Array(123);
124
-
125
- // 65..90, 97..122, 48..57, 43, 47
126
- for (var i = 0; i < 64;)
127
- s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;
128
-
129
- /**
130
- * Encodes a buffer to a base64 encoded string.
131
- * @param {Uint8Array} buffer Source buffer
132
- * @param {number} start Source start
133
- * @param {number} end Source end
134
- * @returns {string} Base64 encoded string
135
- */
136
- base64.encode = function encode(buffer, start, end) {
137
- var parts = null,
138
- chunk = [];
139
- var i = 0, // output index
140
- j = 0, // goto index
141
- t; // temporary
142
- while (start < end) {
143
- var b = buffer[start++];
144
- switch (j) {
145
- case 0:
146
- chunk[i++] = b64[b >> 2];
147
- t = (b & 3) << 4;
148
- j = 1;
149
- break;
150
- case 1:
151
- chunk[i++] = b64[t | b >> 4];
152
- t = (b & 15) << 2;
153
- j = 2;
154
- break;
155
- case 2:
156
- chunk[i++] = b64[t | b >> 6];
157
- chunk[i++] = b64[b & 63];
158
- j = 0;
159
- break;
160
- }
161
- if (i > 8191) {
162
- (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));
163
- i = 0;
164
- }
165
- }
166
- if (j) {
167
- chunk[i++] = b64[t];
168
- chunk[i++] = 61;
169
- if (j === 1)
170
- chunk[i++] = 61;
171
- }
172
- if (parts) {
173
- if (i)
174
- parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));
175
- return parts.join("");
176
- }
177
- return String.fromCharCode.apply(String, chunk.slice(0, i));
178
- };
179
-
180
- var invalidEncoding = "invalid encoding";
181
-
182
- /**
183
- * Decodes a base64 encoded string to a buffer.
184
- * @param {string} string Source string
185
- * @param {Uint8Array} buffer Destination buffer
186
- * @param {number} offset Destination offset
187
- * @returns {number} Number of bytes written
188
- * @throws {Error} If encoding is invalid
189
- */
190
- base64.decode = function decode(string, buffer, offset) {
191
- var start = offset;
192
- var j = 0, // goto index
193
- t; // temporary
194
- for (var i = 0; i < string.length;) {
195
- var c = string.charCodeAt(i++);
196
- if (c === 61 && j > 1)
197
- break;
198
- if ((c = s64[c]) === undefined)
199
- throw Error(invalidEncoding);
200
- switch (j) {
201
- case 0:
202
- t = c;
203
- j = 1;
204
- break;
205
- case 1:
206
- buffer[offset++] = t << 2 | (c & 48) >> 4;
207
- t = c;
208
- j = 2;
209
- break;
210
- case 2:
211
- buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;
212
- t = c;
213
- j = 3;
214
- break;
215
- case 3:
216
- buffer[offset++] = (t & 3) << 6 | c;
217
- j = 0;
218
- break;
219
- }
220
- }
221
- if (j === 1)
222
- throw Error(invalidEncoding);
223
- return offset - start;
224
- };
225
-
226
- /**
227
- * Tests if the specified string appears to be base64 encoded.
228
- * @param {string} string String to test
229
- * @returns {boolean} `true` if probably base64 encoded, otherwise false
230
- */
231
- base64.test = function test(string) {
232
- return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);
233
- };
234
-
235
- },{}],3:[function(require,module,exports){
236
- "use strict";
237
- module.exports = EventEmitter;
238
-
239
- /**
240
- * Constructs a new event emitter instance.
241
- * @classdesc A minimal event emitter.
242
- * @memberof util
243
- * @constructor
244
- */
245
- function EventEmitter() {
246
-
247
- /**
248
- * Registered listeners.
249
- * @type {Object.<string,*>}
250
- * @private
251
- */
252
- this._listeners = {};
253
- }
254
-
255
- /**
256
- * Registers an event listener.
257
- * @param {string} evt Event name
258
- * @param {function} fn Listener
259
- * @param {*} [ctx] Listener context
260
- * @returns {util.EventEmitter} `this`
261
- */
262
- EventEmitter.prototype.on = function on(evt, fn, ctx) {
263
- (this._listeners[evt] || (this._listeners[evt] = [])).push({
264
- fn : fn,
265
- ctx : ctx || this
266
- });
267
- return this;
268
- };
269
-
270
- /**
271
- * Removes an event listener or any matching listeners if arguments are omitted.
272
- * @param {string} [evt] Event name. Removes all listeners if omitted.
273
- * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.
274
- * @returns {util.EventEmitter} `this`
275
- */
276
- EventEmitter.prototype.off = function off(evt, fn) {
277
- if (evt === undefined)
278
- this._listeners = {};
279
- else {
280
- if (fn === undefined)
281
- this._listeners[evt] = [];
282
- else {
283
- var listeners = this._listeners[evt];
284
- for (var i = 0; i < listeners.length;)
285
- if (listeners[i].fn === fn)
286
- listeners.splice(i, 1);
287
- else
288
- ++i;
289
- }
290
- }
291
- return this;
292
- };
293
-
294
- /**
295
- * Emits an event by calling its listeners with the specified arguments.
296
- * @param {string} evt Event name
297
- * @param {...*} args Arguments
298
- * @returns {util.EventEmitter} `this`
299
- */
300
- EventEmitter.prototype.emit = function emit(evt) {
301
- var listeners = this._listeners[evt];
302
- if (listeners) {
303
- var args = [],
304
- i = 1;
305
- for (; i < arguments.length;)
306
- args.push(arguments[i++]);
307
- for (i = 0; i < listeners.length;)
308
- listeners[i].fn.apply(listeners[i++].ctx, args);
309
- }
310
- return this;
311
- };
312
-
313
- },{}],4:[function(require,module,exports){
314
- "use strict";
315
-
316
- module.exports = factory(factory);
317
-
318
- /**
319
- * Reads / writes floats / doubles from / to buffers.
320
- * @name util.float
321
- * @namespace
322
- */
323
-
324
- /**
325
- * Writes a 32 bit float to a buffer using little endian byte order.
326
- * @name util.float.writeFloatLE
327
- * @function
328
- * @param {number} val Value to write
329
- * @param {Uint8Array} buf Target buffer
330
- * @param {number} pos Target buffer offset
331
- * @returns {undefined}
332
- */
333
-
334
- /**
335
- * Writes a 32 bit float to a buffer using big endian byte order.
336
- * @name util.float.writeFloatBE
337
- * @function
338
- * @param {number} val Value to write
339
- * @param {Uint8Array} buf Target buffer
340
- * @param {number} pos Target buffer offset
341
- * @returns {undefined}
342
- */
343
-
344
- /**
345
- * Reads a 32 bit float from a buffer using little endian byte order.
346
- * @name util.float.readFloatLE
347
- * @function
348
- * @param {Uint8Array} buf Source buffer
349
- * @param {number} pos Source buffer offset
350
- * @returns {number} Value read
351
- */
352
-
353
- /**
354
- * Reads a 32 bit float from a buffer using big endian byte order.
355
- * @name util.float.readFloatBE
356
- * @function
357
- * @param {Uint8Array} buf Source buffer
358
- * @param {number} pos Source buffer offset
359
- * @returns {number} Value read
360
- */
361
-
362
- /**
363
- * Writes a 64 bit double to a buffer using little endian byte order.
364
- * @name util.float.writeDoubleLE
365
- * @function
366
- * @param {number} val Value to write
367
- * @param {Uint8Array} buf Target buffer
368
- * @param {number} pos Target buffer offset
369
- * @returns {undefined}
370
- */
371
-
372
- /**
373
- * Writes a 64 bit double to a buffer using big endian byte order.
374
- * @name util.float.writeDoubleBE
375
- * @function
376
- * @param {number} val Value to write
377
- * @param {Uint8Array} buf Target buffer
378
- * @param {number} pos Target buffer offset
379
- * @returns {undefined}
380
- */
381
-
382
- /**
383
- * Reads a 64 bit double from a buffer using little endian byte order.
384
- * @name util.float.readDoubleLE
385
- * @function
386
- * @param {Uint8Array} buf Source buffer
387
- * @param {number} pos Source buffer offset
388
- * @returns {number} Value read
389
- */
390
-
391
- /**
392
- * Reads a 64 bit double from a buffer using big endian byte order.
393
- * @name util.float.readDoubleBE
394
- * @function
395
- * @param {Uint8Array} buf Source buffer
396
- * @param {number} pos Source buffer offset
397
- * @returns {number} Value read
398
- */
399
-
400
- // Factory function for the purpose of node-based testing in modified global environments
401
- function factory(exports) {
402
-
403
- // float: typed array
404
- if (typeof Float32Array !== "undefined") (function() {
405
-
406
- var f32 = new Float32Array([ -0 ]),
407
- f8b = new Uint8Array(f32.buffer),
408
- le = f8b[3] === 128;
409
-
410
- function writeFloat_f32_cpy(val, buf, pos) {
411
- f32[0] = val;
412
- buf[pos ] = f8b[0];
413
- buf[pos + 1] = f8b[1];
414
- buf[pos + 2] = f8b[2];
415
- buf[pos + 3] = f8b[3];
416
- }
417
-
418
- function writeFloat_f32_rev(val, buf, pos) {
419
- f32[0] = val;
420
- buf[pos ] = f8b[3];
421
- buf[pos + 1] = f8b[2];
422
- buf[pos + 2] = f8b[1];
423
- buf[pos + 3] = f8b[0];
424
- }
425
-
426
- /* istanbul ignore next */
427
- exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;
428
- /* istanbul ignore next */
429
- exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;
430
-
431
- function readFloat_f32_cpy(buf, pos) {
432
- f8b[0] = buf[pos ];
433
- f8b[1] = buf[pos + 1];
434
- f8b[2] = buf[pos + 2];
435
- f8b[3] = buf[pos + 3];
436
- return f32[0];
437
- }
438
-
439
- function readFloat_f32_rev(buf, pos) {
440
- f8b[3] = buf[pos ];
441
- f8b[2] = buf[pos + 1];
442
- f8b[1] = buf[pos + 2];
443
- f8b[0] = buf[pos + 3];
444
- return f32[0];
445
- }
446
-
447
- /* istanbul ignore next */
448
- exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;
449
- /* istanbul ignore next */
450
- exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;
451
-
452
- // float: ieee754
453
- })(); else (function() {
454
-
455
- function writeFloat_ieee754(writeUint, val, buf, pos) {
456
- var sign = val < 0 ? 1 : 0;
457
- if (sign)
458
- val = -val;
459
- if (val === 0)
460
- writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);
461
- else if (isNaN(val))
462
- writeUint(2143289344, buf, pos);
463
- else if (val > 3.4028234663852886e+38) // +-Infinity
464
- writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);
465
- else if (val < 1.1754943508222875e-38) // denormal
466
- writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);
467
- else {
468
- var exponent = Math.floor(Math.log(val) / Math.LN2),
469
- mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;
470
- writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);
471
- }
472
- }
473
-
474
- exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);
475
- exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);
476
-
477
- function readFloat_ieee754(readUint, buf, pos) {
478
- var uint = readUint(buf, pos),
479
- sign = (uint >> 31) * 2 + 1,
480
- exponent = uint >>> 23 & 255,
481
- mantissa = uint & 8388607;
482
- return exponent === 255
483
- ? mantissa
484
- ? NaN
485
- : sign * Infinity
486
- : exponent === 0 // denormal
487
- ? sign * 1.401298464324817e-45 * mantissa
488
- : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);
489
- }
490
-
491
- exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);
492
- exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);
493
-
494
- })();
495
-
496
- // double: typed array
497
- if (typeof Float64Array !== "undefined") (function() {
498
-
499
- var f64 = new Float64Array([-0]),
500
- f8b = new Uint8Array(f64.buffer),
501
- le = f8b[7] === 128;
502
-
503
- function writeDouble_f64_cpy(val, buf, pos) {
504
- f64[0] = val;
505
- buf[pos ] = f8b[0];
506
- buf[pos + 1] = f8b[1];
507
- buf[pos + 2] = f8b[2];
508
- buf[pos + 3] = f8b[3];
509
- buf[pos + 4] = f8b[4];
510
- buf[pos + 5] = f8b[5];
511
- buf[pos + 6] = f8b[6];
512
- buf[pos + 7] = f8b[7];
513
- }
514
-
515
- function writeDouble_f64_rev(val, buf, pos) {
516
- f64[0] = val;
517
- buf[pos ] = f8b[7];
518
- buf[pos + 1] = f8b[6];
519
- buf[pos + 2] = f8b[5];
520
- buf[pos + 3] = f8b[4];
521
- buf[pos + 4] = f8b[3];
522
- buf[pos + 5] = f8b[2];
523
- buf[pos + 6] = f8b[1];
524
- buf[pos + 7] = f8b[0];
525
- }
526
-
527
- /* istanbul ignore next */
528
- exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;
529
- /* istanbul ignore next */
530
- exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;
531
-
532
- function readDouble_f64_cpy(buf, pos) {
533
- f8b[0] = buf[pos ];
534
- f8b[1] = buf[pos + 1];
535
- f8b[2] = buf[pos + 2];
536
- f8b[3] = buf[pos + 3];
537
- f8b[4] = buf[pos + 4];
538
- f8b[5] = buf[pos + 5];
539
- f8b[6] = buf[pos + 6];
540
- f8b[7] = buf[pos + 7];
541
- return f64[0];
542
- }
543
-
544
- function readDouble_f64_rev(buf, pos) {
545
- f8b[7] = buf[pos ];
546
- f8b[6] = buf[pos + 1];
547
- f8b[5] = buf[pos + 2];
548
- f8b[4] = buf[pos + 3];
549
- f8b[3] = buf[pos + 4];
550
- f8b[2] = buf[pos + 5];
551
- f8b[1] = buf[pos + 6];
552
- f8b[0] = buf[pos + 7];
553
- return f64[0];
554
- }
555
-
556
- /* istanbul ignore next */
557
- exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;
558
- /* istanbul ignore next */
559
- exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;
560
-
561
- // double: ieee754
562
- })(); else (function() {
563
-
564
- function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {
565
- var sign = val < 0 ? 1 : 0;
566
- if (sign)
567
- val = -val;
568
- if (val === 0) {
569
- writeUint(0, buf, pos + off0);
570
- writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);
571
- } else if (isNaN(val)) {
572
- writeUint(0, buf, pos + off0);
573
- writeUint(2146959360, buf, pos + off1);
574
- } else if (val > 1.7976931348623157e+308) { // +-Infinity
575
- writeUint(0, buf, pos + off0);
576
- writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);
577
- } else {
578
- var mantissa;
579
- if (val < 2.2250738585072014e-308) { // denormal
580
- mantissa = val / 5e-324;
581
- writeUint(mantissa >>> 0, buf, pos + off0);
582
- writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);
583
- } else {
584
- var exponent = Math.floor(Math.log(val) / Math.LN2);
585
- if (exponent === 1024)
586
- exponent = 1023;
587
- mantissa = val * Math.pow(2, -exponent);
588
- writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);
589
- writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);
590
- }
591
- }
592
- }
593
-
594
- exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);
595
- exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);
596
-
597
- function readDouble_ieee754(readUint, off0, off1, buf, pos) {
598
- var lo = readUint(buf, pos + off0),
599
- hi = readUint(buf, pos + off1);
600
- var sign = (hi >> 31) * 2 + 1,
601
- exponent = hi >>> 20 & 2047,
602
- mantissa = 4294967296 * (hi & 1048575) + lo;
603
- return exponent === 2047
604
- ? mantissa
605
- ? NaN
606
- : sign * Infinity
607
- : exponent === 0 // denormal
608
- ? sign * 5e-324 * mantissa
609
- : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);
610
- }
611
-
612
- exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);
613
- exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);
614
-
615
- })();
616
-
617
- return exports;
618
- }
619
-
620
- // uint helpers
621
-
622
- function writeUintLE(val, buf, pos) {
623
- buf[pos ] = val & 255;
624
- buf[pos + 1] = val >>> 8 & 255;
625
- buf[pos + 2] = val >>> 16 & 255;
626
- buf[pos + 3] = val >>> 24;
627
- }
628
-
629
- function writeUintBE(val, buf, pos) {
630
- buf[pos ] = val >>> 24;
631
- buf[pos + 1] = val >>> 16 & 255;
632
- buf[pos + 2] = val >>> 8 & 255;
633
- buf[pos + 3] = val & 255;
634
- }
635
-
636
- function readUintLE(buf, pos) {
637
- return (buf[pos ]
638
- | buf[pos + 1] << 8
639
- | buf[pos + 2] << 16
640
- | buf[pos + 3] << 24) >>> 0;
641
- }
642
-
643
- function readUintBE(buf, pos) {
644
- return (buf[pos ] << 24
645
- | buf[pos + 1] << 16
646
- | buf[pos + 2] << 8
647
- | buf[pos + 3]) >>> 0;
648
- }
649
-
650
- },{}],5:[function(require,module,exports){
651
- "use strict";
652
- module.exports = inquire;
653
-
654
- /**
655
- * Requires a module only if available.
656
- * @memberof util
657
- * @param {string} moduleName Module to require
658
- * @returns {?Object} Required module if available and not empty, otherwise `null`
659
- */
660
- function inquire(moduleName) {
661
- try {
662
- var mod = eval("quire".replace(/^/,"re"))(moduleName); // eslint-disable-line no-eval
663
- if (mod && (mod.length || Object.keys(mod).length))
664
- return mod;
665
- } catch (e) {} // eslint-disable-line no-empty
666
- return null;
667
- }
668
-
669
- },{}],6:[function(require,module,exports){
670
- "use strict";
671
- module.exports = pool;
672
-
673
- /**
674
- * An allocator as used by {@link util.pool}.
675
- * @typedef PoolAllocator
676
- * @type {function}
677
- * @param {number} size Buffer size
678
- * @returns {Uint8Array} Buffer
679
- */
680
-
681
- /**
682
- * A slicer as used by {@link util.pool}.
683
- * @typedef PoolSlicer
684
- * @type {function}
685
- * @param {number} start Start offset
686
- * @param {number} end End offset
687
- * @returns {Uint8Array} Buffer slice
688
- * @this {Uint8Array}
689
- */
690
-
691
- /**
692
- * A general purpose buffer pool.
693
- * @memberof util
694
- * @function
695
- * @param {PoolAllocator} alloc Allocator
696
- * @param {PoolSlicer} slice Slicer
697
- * @param {number} [size=8192] Slab size
698
- * @returns {PoolAllocator} Pooled allocator
699
- */
700
- function pool(alloc, slice, size) {
701
- var SIZE = size || 8192;
702
- var MAX = SIZE >>> 1;
703
- var slab = null;
704
- var offset = SIZE;
705
- return function pool_alloc(size) {
706
- if (size < 1 || size > MAX)
707
- return alloc(size);
708
- if (offset + size > SIZE) {
709
- slab = alloc(SIZE);
710
- offset = 0;
711
- }
712
- var buf = slice.call(slab, offset, offset += size);
713
- if (offset & 7) // align to 32 bit
714
- offset = (offset | 7) + 1;
715
- return buf;
716
- };
717
- }
718
-
719
- },{}],7:[function(require,module,exports){
720
- "use strict";
721
-
722
- /**
723
- * A minimal UTF8 implementation for number arrays.
724
- * @memberof util
725
- * @namespace
726
- */
727
- var utf8 = exports;
728
-
729
- /**
730
- * Calculates the UTF8 byte length of a string.
731
- * @param {string} string String
732
- * @returns {number} Byte length
733
- */
734
- utf8.length = function utf8_length(string) {
735
- var len = 0,
736
- c = 0;
737
- for (var i = 0; i < string.length; ++i) {
738
- c = string.charCodeAt(i);
739
- if (c < 128)
740
- len += 1;
741
- else if (c < 2048)
742
- len += 2;
743
- else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {
744
- ++i;
745
- len += 4;
746
- } else
747
- len += 3;
748
- }
749
- return len;
750
- };
751
-
752
- /**
753
- * Reads UTF8 bytes as a string.
754
- * @param {Uint8Array} buffer Source buffer
755
- * @param {number} start Source start
756
- * @param {number} end Source end
757
- * @returns {string} String read
758
- */
759
- utf8.read = function utf8_read(buffer, start, end) {
760
- var len = end - start;
761
- if (len < 1)
762
- return "";
763
- var parts = null,
764
- chunk = [],
765
- i = 0, // char offset
766
- t; // temporary
767
- while (start < end) {
768
- t = buffer[start++];
769
- if (t < 128)
770
- chunk[i++] = t;
771
- else if (t > 191 && t < 224)
772
- chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;
773
- else if (t > 239 && t < 365) {
774
- t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;
775
- chunk[i++] = 0xD800 + (t >> 10);
776
- chunk[i++] = 0xDC00 + (t & 1023);
777
- } else
778
- chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;
779
- if (i > 8191) {
780
- (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));
781
- i = 0;
782
- }
783
- }
784
- if (parts) {
785
- if (i)
786
- parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));
787
- return parts.join("");
788
- }
789
- return String.fromCharCode.apply(String, chunk.slice(0, i));
790
- };
791
-
792
- /**
793
- * Writes a string as UTF8 bytes.
794
- * @param {string} string Source string
795
- * @param {Uint8Array} buffer Destination buffer
796
- * @param {number} offset Destination offset
797
- * @returns {number} Bytes written
798
- */
799
- utf8.write = function utf8_write(string, buffer, offset) {
800
- var start = offset,
801
- c1, // character 1
802
- c2; // character 2
803
- for (var i = 0; i < string.length; ++i) {
804
- c1 = string.charCodeAt(i);
805
- if (c1 < 128) {
806
- buffer[offset++] = c1;
807
- } else if (c1 < 2048) {
808
- buffer[offset++] = c1 >> 6 | 192;
809
- buffer[offset++] = c1 & 63 | 128;
810
- } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {
811
- c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);
812
- ++i;
813
- buffer[offset++] = c1 >> 18 | 240;
814
- buffer[offset++] = c1 >> 12 & 63 | 128;
815
- buffer[offset++] = c1 >> 6 & 63 | 128;
816
- buffer[offset++] = c1 & 63 | 128;
817
- } else {
818
- buffer[offset++] = c1 >> 12 | 224;
819
- buffer[offset++] = c1 >> 6 & 63 | 128;
820
- buffer[offset++] = c1 & 63 | 128;
821
- }
822
- }
823
- return offset - start;
824
- };
825
-
826
- },{}],8:[function(require,module,exports){
827
41
  "use strict";
828
42
  var protobuf = exports;
829
43
 
@@ -838,13 +52,13 @@ protobuf.build = "minimal";
838
52
  // Serialization
839
53
  protobuf.Writer = require(16);
840
54
  protobuf.BufferWriter = require(17);
841
- protobuf.Reader = require(9);
842
- protobuf.BufferReader = require(10);
55
+ protobuf.Reader = require(2);
56
+ protobuf.BufferReader = require(3);
843
57
 
844
58
  // Utility
845
- protobuf.util = require(15);
846
- protobuf.rpc = require(12);
847
- protobuf.roots = require(11);
59
+ protobuf.util = require(13);
60
+ protobuf.rpc = require(5);
61
+ protobuf.roots = require(4);
848
62
  protobuf.configure = configure;
849
63
 
850
64
  /* istanbul ignore next */
@@ -861,11 +75,11 @@ function configure() {
861
75
  // Set up buffer utility according to the environment
862
76
  configure();
863
77
 
864
- },{"10":10,"11":11,"12":12,"15":15,"16":16,"17":17,"9":9}],9:[function(require,module,exports){
78
+ },{"13":13,"16":16,"17":17,"2":2,"3":3,"4":4,"5":5}],2:[function(require,module,exports){
865
79
  "use strict";
866
80
  module.exports = Reader;
867
81
 
868
- var util = require(15);
82
+ var util = require(13);
869
83
 
870
84
  var BufferReader; // cyclic
871
85
 
@@ -942,28 +156,108 @@ Reader.create = create();
942
156
 
943
157
  Reader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;
944
158
 
159
+ /**
160
+ * Returns raw bytes from the backing buffer without advancing the reader.
161
+ * @param {number} start Start offset
162
+ * @param {number} end End offset
163
+ * @returns {Uint8Array} Raw bytes
164
+ */
165
+ Reader.prototype.raw = function read_raw(start, end) {
166
+ if (Array.isArray(this.buf)) // plain array
167
+ return this.buf.slice(start, end);
168
+
169
+ if (start === end) // fix for IE 10/Win8 and others' subarray returning array of size 1
170
+ return new this.buf.constructor(0);
171
+ return this._slice.call(this.buf, start, end);
172
+ };
173
+
945
174
  /**
946
175
  * Reads a varint as an unsigned 32 bit value.
947
176
  * @function
948
177
  * @returns {number} Value read
949
178
  */
950
- Reader.prototype.uint32 = (function read_uint32_setup() {
951
- var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)
952
- return function read_uint32() {
953
- value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;
954
- value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;
955
- value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;
956
- value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;
957
- value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;
179
+ Reader.prototype.uint32 = function read_uint32() {
180
+ var buf = this.buf,
181
+ pos = this.pos,
182
+ value = (buf[pos] & 127) >>> 0;
183
+ if (buf[pos++] < 128) {
184
+ this.pos = pos;
185
+ return value;
186
+ }
187
+ value = (value | (buf[pos] & 127) << 7) >>> 0;
188
+ if (buf[pos++] < 128) {
189
+ this.pos = pos;
190
+ return value;
191
+ }
192
+ value = (value | (buf[pos] & 127) << 14) >>> 0;
193
+ if (buf[pos++] < 128) {
194
+ this.pos = pos;
195
+ return value;
196
+ }
197
+ value = (value | (buf[pos] & 127) << 21) >>> 0;
198
+ if (buf[pos++] < 128) {
199
+ this.pos = pos;
200
+ return value;
201
+ }
202
+ value = (value | (buf[pos] & 15) << 28) >>> 0;
203
+ if (buf[pos++] < 128) {
204
+ this.pos = pos;
205
+ return value;
206
+ }
958
207
 
208
+ for (var i = 0; i < 5; ++i) {
959
209
  /* istanbul ignore if */
960
- if ((this.pos += 5) > this.len) {
961
- this.pos = this.len;
962
- throw indexOutOfRange(this, 10);
210
+ if (pos >= this.len) {
211
+ this.pos = pos;
212
+ throw indexOutOfRange(this);
213
+ }
214
+ if (buf[pos++] < 128) {
215
+ this.pos = pos;
216
+ return value;
963
217
  }
218
+ }
219
+ /* istanbul ignore next */
220
+ this.pos = pos;
221
+ throw Error("invalid varint encoding");
222
+ };
223
+
224
+ /**
225
+ * Reads a field tag.
226
+ * @function
227
+ * @returns {number} Tag read
228
+ */
229
+ Reader.prototype.tag = function read_tag() {
230
+ var buf = this.buf,
231
+ pos = this.pos,
232
+ value = (buf[pos] & 127) >>> 0;
233
+ if (buf[pos++] < 128) {
234
+ this.pos = pos;
964
235
  return value;
965
- };
966
- })();
236
+ }
237
+ value = (value | (buf[pos] & 127) << 7) >>> 0;
238
+ if (buf[pos++] < 128) {
239
+ this.pos = pos;
240
+ return value;
241
+ }
242
+ value = (value | (buf[pos] & 127) << 14) >>> 0;
243
+ if (buf[pos++] < 128) {
244
+ this.pos = pos;
245
+ return value;
246
+ }
247
+ value = (value | (buf[pos] & 127) << 21) >>> 0;
248
+ if (buf[pos++] < 128) {
249
+ this.pos = pos;
250
+ return value;
251
+ }
252
+ value = (value | (buf[pos] & 15) << 28) >>> 0;
253
+ if (buf[pos] < 128 && (buf[pos] & 112) === 0) {
254
+ this.pos = pos + 1;
255
+ return value;
256
+ }
257
+
258
+ this.pos = pos + 1;
259
+ throw Error("invalid tag encoding");
260
+ };
967
261
 
968
262
  /**
969
263
  * Reads a varint as a signed 32 bit value.
@@ -1065,7 +359,20 @@ function readLongVarint() {
1065
359
  * @returns {boolean} Value read
1066
360
  */
1067
361
  Reader.prototype.bool = function read_bool() {
1068
- return this.uint32() !== 0;
362
+ var value = false,
363
+ b;
364
+ for (var i = 0; i < 10; ++i) {
365
+ /* istanbul ignore if */
366
+ if (this.pos >= this.len)
367
+ throw indexOutOfRange(this);
368
+ b = this.buf[this.pos++];
369
+ if (b & 127)
370
+ value = true;
371
+ if (b < 128)
372
+ return value;
373
+ }
374
+ /* istanbul ignore next */
375
+ throw Error("invalid varint encoding");
1069
376
  };
1070
377
 
1071
378
  function readFixed32_end(buf, end) { // note that this uses `end`, not `pos`
@@ -1173,17 +480,8 @@ Reader.prototype.bytes = function read_bytes() {
1173
480
  if (end > this.len)
1174
481
  throw indexOutOfRange(this, length);
1175
482
 
1176
- this.pos += length;
1177
- if (Array.isArray(this.buf)) // plain array
1178
- return this.buf.slice(start, end);
1179
-
1180
- if (start === end) { // fix for IE 10/Win8 and others' subarray returning array of size 1
1181
- var nativeBuffer = util.Buffer;
1182
- return nativeBuffer
1183
- ? nativeBuffer.alloc(0)
1184
- : new this.buf.constructor(0);
1185
- }
1186
- return this._slice.call(this.buf, start, end);
483
+ this.pos = end;
484
+ return this.raw(start, end);
1187
485
  };
1188
486
 
1189
487
  /**
@@ -1191,8 +489,16 @@ Reader.prototype.bytes = function read_bytes() {
1191
489
  * @returns {string} Value read
1192
490
  */
1193
491
  Reader.prototype.string = function read_string() {
1194
- var bytes = this.bytes();
1195
- return utf8.read(bytes, 0, bytes.length);
492
+ var length = this.uint32(),
493
+ start = this.pos,
494
+ end = this.pos + length;
495
+
496
+ /* istanbul ignore if */
497
+ if (end > this.len)
498
+ throw indexOutOfRange(this, length);
499
+
500
+ this.pos = end;
501
+ return utf8.read(this.buf, start, end);
1196
502
  };
1197
503
 
1198
504
  /**
@@ -1216,12 +522,25 @@ Reader.prototype.skip = function skip(length) {
1216
522
  return this;
1217
523
  };
1218
524
 
525
+ /**
526
+ * Recursion limit.
527
+ * @type {number}
528
+ */
529
+ Reader.recursionLimit = util.recursionLimit;
530
+
1219
531
  /**
1220
532
  * Skips the next element of the specified wire type.
1221
533
  * @param {number} wireType Wire type received
534
+ * @param {number} [depth] Depth of recursion to control nested calls; 0 if omitted
535
+ * @param {number} [fieldNumber] Field number for validating group end tags
1222
536
  * @returns {Reader} `this`
1223
537
  */
1224
- Reader.prototype.skipType = function(wireType) {
538
+ Reader.prototype.skipType = function(wireType, depth, fieldNumber) {
539
+ if (depth === undefined) depth = 0;
540
+ if (depth > Reader.recursionLimit)
541
+ throw Error("max depth exceeded");
542
+ if (fieldNumber === 0)
543
+ throw Error("illegal tag: field number 0");
1225
544
  switch (wireType) {
1226
545
  case 0:
1227
546
  this.skip();
@@ -1233,8 +552,18 @@ Reader.prototype.skipType = function(wireType) {
1233
552
  this.skip(this.uint32());
1234
553
  break;
1235
554
  case 3:
1236
- while ((wireType = this.uint32() & 7) !== 4) {
1237
- this.skipType(wireType);
555
+ while (true) {
556
+ var tag = this.tag();
557
+ var nestedField = tag >>> 3;
558
+ wireType = tag & 7;
559
+ if (!nestedField)
560
+ throw Error("illegal tag: field number 0");
561
+ if (wireType === 4) {
562
+ if (fieldNumber !== undefined && nestedField !== fieldNumber)
563
+ throw Error("invalid end group tag");
564
+ break;
565
+ }
566
+ this.skipType(wireType, depth + 1, nestedField);
1238
567
  }
1239
568
  break;
1240
569
  case 5:
@@ -1279,15 +608,15 @@ Reader._configure = function(BufferReader_) {
1279
608
  });
1280
609
  };
1281
610
 
1282
- },{"15":15}],10:[function(require,module,exports){
611
+ },{"13":13}],3:[function(require,module,exports){
1283
612
  "use strict";
1284
613
  module.exports = BufferReader;
1285
614
 
1286
615
  // extends Reader
1287
- var Reader = require(9);
616
+ var Reader = require(2);
1288
617
  (BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;
1289
618
 
1290
- var util = require(15);
619
+ var util = require(13);
1291
620
 
1292
621
  /**
1293
622
  * Constructs a new buffer reader instance.
@@ -1312,15 +641,36 @@ BufferReader._configure = function () {
1312
641
  BufferReader.prototype._slice = util.Buffer.prototype.slice;
1313
642
  };
1314
643
 
644
+ /**
645
+ * Returns raw bytes from the backing buffer without advancing the reader.
646
+ * @name BufferReader#raw
647
+ * @function
648
+ * @param {number} start Start offset
649
+ * @param {number} end End offset
650
+ * @returns {Buffer} Raw bytes
651
+ */
652
+ BufferReader.prototype.raw = function read_raw_buffer(start, end) {
653
+ if (start === end)
654
+ return util.Buffer.alloc(0);
655
+ return this._slice.call(this.buf, start, end);
656
+ };
1315
657
 
1316
658
  /**
1317
659
  * @override
1318
660
  */
1319
661
  BufferReader.prototype.string = function read_string_buffer() {
1320
- var len = this.uint32(); // modifies pos
662
+ var len = this.uint32(), // modifies pos
663
+ start = this.pos,
664
+ end = this.pos + len;
665
+
666
+ /* istanbul ignore if */
667
+ if (end > this.len)
668
+ throw RangeError("index out of range: " + this.pos + " + " + len + " > " + this.len);
669
+
670
+ this.pos = end;
1321
671
  return this.buf.utf8Slice
1322
- ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))
1323
- : this.buf.toString("utf-8", this.pos, this.pos = Math.min(this.pos + len, this.len));
672
+ ? this.buf.utf8Slice(start, end)
673
+ : this.buf.toString("utf-8", start, end);
1324
674
  };
1325
675
 
1326
676
  /**
@@ -1332,7 +682,7 @@ BufferReader.prototype.string = function read_string_buffer() {
1332
682
 
1333
683
  BufferReader._configure();
1334
684
 
1335
- },{"15":15,"9":9}],11:[function(require,module,exports){
685
+ },{"13":13,"2":2}],4:[function(require,module,exports){
1336
686
  "use strict";
1337
687
  module.exports = {};
1338
688
 
@@ -1352,7 +702,7 @@ module.exports = {};
1352
702
  * var root = protobuf.roots["myroot"];
1353
703
  */
1354
704
 
1355
- },{}],12:[function(require,module,exports){
705
+ },{}],5:[function(require,module,exports){
1356
706
  "use strict";
1357
707
 
1358
708
  /**
@@ -1388,13 +738,13 @@ var rpc = exports;
1388
738
  * @returns {undefined}
1389
739
  */
1390
740
 
1391
- rpc.Service = require(13);
741
+ rpc.Service = require(6);
1392
742
 
1393
- },{"13":13}],13:[function(require,module,exports){
743
+ },{"6":6}],6:[function(require,module,exports){
1394
744
  "use strict";
1395
745
  module.exports = Service;
1396
746
 
1397
- var util = require(15);
747
+ var util = require(13);
1398
748
 
1399
749
  // Extends EventEmitter
1400
750
  (Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;
@@ -1534,11 +884,676 @@ Service.prototype.end = function end(endedByRPC) {
1534
884
  return this;
1535
885
  };
1536
886
 
1537
- },{"15":15}],14:[function(require,module,exports){
887
+ },{"13":13}],7:[function(require,module,exports){
888
+ "use strict";
889
+ module.exports = asPromise;
890
+
891
+ /**
892
+ * Callback as used by {@link util.asPromise}.
893
+ * @typedef asPromiseCallback
894
+ * @type {function}
895
+ * @param {Error|null} error Error, if any
896
+ * @param {...*} params Additional arguments
897
+ * @returns {undefined}
898
+ */
899
+
900
+ /**
901
+ * Returns a promise from a node-style callback function.
902
+ * @memberof util
903
+ * @param {asPromiseCallback} fn Function to call
904
+ * @param {*} ctx Function context
905
+ * @param {...*} params Function arguments
906
+ * @returns {Promise<*>} Promisified function
907
+ */
908
+ function asPromise(fn, ctx/*, varargs */) {
909
+ var params = new Array(arguments.length - 1),
910
+ offset = 0,
911
+ index = 2,
912
+ pending = true;
913
+ while (index < arguments.length)
914
+ params[offset++] = arguments[index++];
915
+ return new Promise(function executor(resolve, reject) {
916
+ params[offset] = function callback(err/*, varargs */) {
917
+ if (pending) {
918
+ pending = false;
919
+ if (err)
920
+ reject(err);
921
+ else {
922
+ var params = new Array(arguments.length - 1),
923
+ offset = 0;
924
+ while (offset < params.length)
925
+ params[offset++] = arguments[offset];
926
+ resolve.apply(null, params);
927
+ }
928
+ }
929
+ };
930
+ try {
931
+ fn.apply(ctx || null, params);
932
+ } catch (err) {
933
+ if (pending) {
934
+ pending = false;
935
+ reject(err);
936
+ }
937
+ }
938
+ });
939
+ }
940
+
941
+ },{}],8:[function(require,module,exports){
942
+ "use strict";
943
+
944
+ /**
945
+ * A minimal base64 implementation for number arrays.
946
+ * @memberof util
947
+ * @namespace
948
+ */
949
+ var base64 = exports;
950
+
951
+ /**
952
+ * Calculates the byte length of a base64 encoded string.
953
+ * @param {string} string Base64 encoded string
954
+ * @returns {number} Byte length
955
+ */
956
+ base64.length = function length(string) {
957
+ var p = string.length;
958
+ if (!p)
959
+ return 0;
960
+ while (p > 0 && string.charAt(p - 1) === "=")
961
+ --p;
962
+ return Math.floor(p * 3 / 4);
963
+ };
964
+
965
+ // Base64 encoding table
966
+ var b64 = new Array(64);
967
+
968
+ // Base64 decoding table
969
+ var s64 = new Array(123);
970
+
971
+ // 65..90, 97..122, 48..57, 43, 47
972
+ for (var i = 0; i < 64;)
973
+ s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;
974
+
975
+ s64[45] = 62; // - -> +
976
+ s64[95] = 63; // _ -> /
977
+
978
+ /**
979
+ * Encodes a buffer to a base64 encoded string.
980
+ * @param {Uint8Array} buffer Source buffer
981
+ * @param {number} start Source start
982
+ * @param {number} end Source end
983
+ * @returns {string} Base64 encoded string
984
+ */
985
+ base64.encode = function encode(buffer, start, end) {
986
+ var parts = null,
987
+ chunk = [];
988
+ var i = 0, // output index
989
+ j = 0, // goto index
990
+ t; // temporary
991
+ while (start < end) {
992
+ var b = buffer[start++];
993
+ switch (j) {
994
+ case 0:
995
+ chunk[i++] = b64[b >> 2];
996
+ t = (b & 3) << 4;
997
+ j = 1;
998
+ break;
999
+ case 1:
1000
+ chunk[i++] = b64[t | b >> 4];
1001
+ t = (b & 15) << 2;
1002
+ j = 2;
1003
+ break;
1004
+ case 2:
1005
+ chunk[i++] = b64[t | b >> 6];
1006
+ chunk[i++] = b64[b & 63];
1007
+ j = 0;
1008
+ break;
1009
+ }
1010
+ if (i > 8191) {
1011
+ (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));
1012
+ i = 0;
1013
+ }
1014
+ }
1015
+ if (j) {
1016
+ chunk[i++] = b64[t];
1017
+ chunk[i++] = 61;
1018
+ if (j === 1)
1019
+ chunk[i++] = 61;
1020
+ }
1021
+ if (parts) {
1022
+ if (i)
1023
+ parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));
1024
+ return parts.join("");
1025
+ }
1026
+ return String.fromCharCode.apply(String, chunk.slice(0, i));
1027
+ };
1028
+
1029
+ var invalidEncoding = "invalid encoding";
1030
+
1031
+ /**
1032
+ * Decodes a base64 encoded string to a buffer.
1033
+ * @param {string} string Source string
1034
+ * @param {Uint8Array} buffer Destination buffer
1035
+ * @param {number} offset Destination offset
1036
+ * @returns {number} Number of bytes written
1037
+ * @throws {Error} If encoding is invalid
1038
+ */
1039
+ base64.decode = function decode(string, buffer, offset) {
1040
+ var start = offset;
1041
+ var j = 0, // goto index
1042
+ t; // temporary
1043
+ for (var i = 0; i < string.length;) {
1044
+ var c = string.charCodeAt(i++);
1045
+ if (c === 61 && j > 1)
1046
+ break;
1047
+ if ((c = s64[c]) === undefined)
1048
+ throw Error(invalidEncoding);
1049
+ switch (j) {
1050
+ case 0:
1051
+ t = c;
1052
+ j = 1;
1053
+ break;
1054
+ case 1:
1055
+ buffer[offset++] = t << 2 | (c & 48) >> 4;
1056
+ t = c;
1057
+ j = 2;
1058
+ break;
1059
+ case 2:
1060
+ buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;
1061
+ t = c;
1062
+ j = 3;
1063
+ break;
1064
+ case 3:
1065
+ buffer[offset++] = (t & 3) << 6 | c;
1066
+ j = 0;
1067
+ break;
1068
+ }
1069
+ }
1070
+ if (j === 1)
1071
+ throw Error(invalidEncoding);
1072
+ return offset - start;
1073
+ };
1074
+
1075
+ var base64Re = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,
1076
+ base64UrlRe = /[-_]/,
1077
+ base64UrlNoPaddingRe = /^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2}(?:==)?|[A-Za-z0-9_-]{3}=?)?$/;
1078
+
1079
+ /**
1080
+ * Tests if the specified string appears to be base64 encoded.
1081
+ * @param {string} string String to test
1082
+ * @returns {boolean} `true` if probably base64 encoded, otherwise false
1083
+ */
1084
+ base64.test = function test(string) {
1085
+ return base64Re.test(string)
1086
+ || base64UrlRe.test(string) && base64UrlNoPaddingRe.test(string);
1087
+ };
1088
+
1089
+ },{}],9:[function(require,module,exports){
1090
+ "use strict";
1091
+ module.exports = EventEmitter;
1092
+
1093
+ /**
1094
+ * Constructs a new event emitter instance.
1095
+ * @classdesc A minimal event emitter.
1096
+ * @memberof util
1097
+ * @constructor
1098
+ */
1099
+ function EventEmitter() {
1100
+
1101
+ /**
1102
+ * Registered listeners.
1103
+ * @type {Object.<string,*>}
1104
+ * @private
1105
+ */
1106
+ this._listeners = {};
1107
+ }
1108
+
1109
+ /**
1110
+ * Event listener as used by {@link util.EventEmitter}.
1111
+ * @typedef EventEmitterListener
1112
+ * @type {function}
1113
+ * @param {...*} args Arguments
1114
+ * @returns {undefined}
1115
+ */
1116
+
1117
+ /**
1118
+ * Registers an event listener.
1119
+ * @param {string} evt Event name
1120
+ * @param {EventEmitterListener} fn Listener
1121
+ * @param {*} [ctx] Listener context
1122
+ * @returns {this} `this`
1123
+ */
1124
+ EventEmitter.prototype.on = function on(evt, fn, ctx) {
1125
+ (this._listeners[evt] || (this._listeners[evt] = [])).push({
1126
+ fn : fn,
1127
+ ctx : ctx || this
1128
+ });
1129
+ return this;
1130
+ };
1131
+
1132
+ /**
1133
+ * Removes an event listener or any matching listeners if arguments are omitted.
1134
+ * @param {string} [evt] Event name. Removes all listeners if omitted.
1135
+ * @param {EventEmitterListener} [fn] Listener to remove. Removes all listeners of `evt` if omitted.
1136
+ * @returns {this} `this`
1137
+ */
1138
+ EventEmitter.prototype.off = function off(evt, fn) {
1139
+ if (evt === undefined)
1140
+ this._listeners = {};
1141
+ else {
1142
+ if (fn === undefined)
1143
+ this._listeners[evt] = [];
1144
+ else {
1145
+ var listeners = this._listeners[evt];
1146
+ for (var i = 0; i < listeners.length;)
1147
+ if (listeners[i].fn === fn)
1148
+ listeners.splice(i, 1);
1149
+ else
1150
+ ++i;
1151
+ }
1152
+ }
1153
+ return this;
1154
+ };
1155
+
1156
+ /**
1157
+ * Emits an event by calling its listeners with the specified arguments.
1158
+ * @param {string} evt Event name
1159
+ * @param {...*} args Arguments
1160
+ * @returns {this} `this`
1161
+ */
1162
+ EventEmitter.prototype.emit = function emit(evt) {
1163
+ var listeners = this._listeners[evt];
1164
+ if (listeners) {
1165
+ var args = [],
1166
+ i = 1;
1167
+ for (; i < arguments.length;)
1168
+ args.push(arguments[i++]);
1169
+ for (i = 0; i < listeners.length;)
1170
+ listeners[i].fn.apply(listeners[i++].ctx, args);
1171
+ }
1172
+ return this;
1173
+ };
1174
+
1175
+ },{}],10:[function(require,module,exports){
1176
+ "use strict";
1177
+
1178
+ module.exports = factory(factory);
1179
+
1180
+ /**
1181
+ * Reads / writes floats / doubles from / to buffers.
1182
+ * @name util.float
1183
+ * @namespace
1184
+ */
1185
+
1186
+ /**
1187
+ * Writes a 32 bit float to a buffer using little endian byte order.
1188
+ * @name util.float.writeFloatLE
1189
+ * @function
1190
+ * @param {number} val Value to write
1191
+ * @param {Uint8Array} buf Target buffer
1192
+ * @param {number} pos Target buffer offset
1193
+ * @returns {undefined}
1194
+ */
1195
+
1196
+ /**
1197
+ * Writes a 32 bit float to a buffer using big endian byte order.
1198
+ * @name util.float.writeFloatBE
1199
+ * @function
1200
+ * @param {number} val Value to write
1201
+ * @param {Uint8Array} buf Target buffer
1202
+ * @param {number} pos Target buffer offset
1203
+ * @returns {undefined}
1204
+ */
1205
+
1206
+ /**
1207
+ * Reads a 32 bit float from a buffer using little endian byte order.
1208
+ * @name util.float.readFloatLE
1209
+ * @function
1210
+ * @param {Uint8Array} buf Source buffer
1211
+ * @param {number} pos Source buffer offset
1212
+ * @returns {number} Value read
1213
+ */
1214
+
1215
+ /**
1216
+ * Reads a 32 bit float from a buffer using big endian byte order.
1217
+ * @name util.float.readFloatBE
1218
+ * @function
1219
+ * @param {Uint8Array} buf Source buffer
1220
+ * @param {number} pos Source buffer offset
1221
+ * @returns {number} Value read
1222
+ */
1223
+
1224
+ /**
1225
+ * Writes a 64 bit double to a buffer using little endian byte order.
1226
+ * @name util.float.writeDoubleLE
1227
+ * @function
1228
+ * @param {number} val Value to write
1229
+ * @param {Uint8Array} buf Target buffer
1230
+ * @param {number} pos Target buffer offset
1231
+ * @returns {undefined}
1232
+ */
1233
+
1234
+ /**
1235
+ * Writes a 64 bit double to a buffer using big endian byte order.
1236
+ * @name util.float.writeDoubleBE
1237
+ * @function
1238
+ * @param {number} val Value to write
1239
+ * @param {Uint8Array} buf Target buffer
1240
+ * @param {number} pos Target buffer offset
1241
+ * @returns {undefined}
1242
+ */
1243
+
1244
+ /**
1245
+ * Reads a 64 bit double from a buffer using little endian byte order.
1246
+ * @name util.float.readDoubleLE
1247
+ * @function
1248
+ * @param {Uint8Array} buf Source buffer
1249
+ * @param {number} pos Source buffer offset
1250
+ * @returns {number} Value read
1251
+ */
1252
+
1253
+ /**
1254
+ * Reads a 64 bit double from a buffer using big endian byte order.
1255
+ * @name util.float.readDoubleBE
1256
+ * @function
1257
+ * @param {Uint8Array} buf Source buffer
1258
+ * @param {number} pos Source buffer offset
1259
+ * @returns {number} Value read
1260
+ */
1261
+
1262
+ // Factory function for the purpose of node-based testing in modified global environments
1263
+ function factory(exports) {
1264
+
1265
+ // float: typed array
1266
+ if (typeof Float32Array !== "undefined") (function() {
1267
+
1268
+ var f32 = new Float32Array([ -0 ]),
1269
+ f8b = new Uint8Array(f32.buffer),
1270
+ le = f8b[3] === 128;
1271
+
1272
+ function writeFloat_f32_cpy(val, buf, pos) {
1273
+ f32[0] = val;
1274
+ buf[pos ] = f8b[0];
1275
+ buf[pos + 1] = f8b[1];
1276
+ buf[pos + 2] = f8b[2];
1277
+ buf[pos + 3] = f8b[3];
1278
+ }
1279
+
1280
+ function writeFloat_f32_rev(val, buf, pos) {
1281
+ f32[0] = val;
1282
+ buf[pos ] = f8b[3];
1283
+ buf[pos + 1] = f8b[2];
1284
+ buf[pos + 2] = f8b[1];
1285
+ buf[pos + 3] = f8b[0];
1286
+ }
1287
+
1288
+ /* istanbul ignore next */
1289
+ exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;
1290
+ /* istanbul ignore next */
1291
+ exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;
1292
+
1293
+ function readFloat_f32_cpy(buf, pos) {
1294
+ f8b[0] = buf[pos ];
1295
+ f8b[1] = buf[pos + 1];
1296
+ f8b[2] = buf[pos + 2];
1297
+ f8b[3] = buf[pos + 3];
1298
+ return f32[0];
1299
+ }
1300
+
1301
+ function readFloat_f32_rev(buf, pos) {
1302
+ f8b[3] = buf[pos ];
1303
+ f8b[2] = buf[pos + 1];
1304
+ f8b[1] = buf[pos + 2];
1305
+ f8b[0] = buf[pos + 3];
1306
+ return f32[0];
1307
+ }
1308
+
1309
+ /* istanbul ignore next */
1310
+ exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;
1311
+ /* istanbul ignore next */
1312
+ exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;
1313
+
1314
+ // float: ieee754
1315
+ })(); else (function() {
1316
+
1317
+ function writeFloat_ieee754(writeUint, val, buf, pos) {
1318
+ var sign = val < 0 ? 1 : 0;
1319
+ if (sign)
1320
+ val = -val;
1321
+ if (val === 0)
1322
+ writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);
1323
+ else if (isNaN(val))
1324
+ writeUint(2143289344, buf, pos);
1325
+ else if (val > 3.4028234663852886e+38) // +-Infinity
1326
+ writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);
1327
+ else if (val < 1.1754943508222875e-38) // denormal
1328
+ writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);
1329
+ else {
1330
+ var exponent = Math.floor(Math.log(val) / Math.LN2),
1331
+ mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;
1332
+ writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);
1333
+ }
1334
+ }
1335
+
1336
+ exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);
1337
+ exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);
1338
+
1339
+ function readFloat_ieee754(readUint, buf, pos) {
1340
+ var uint = readUint(buf, pos),
1341
+ sign = (uint >> 31) * 2 + 1,
1342
+ exponent = uint >>> 23 & 255,
1343
+ mantissa = uint & 8388607;
1344
+ return exponent === 255
1345
+ ? mantissa
1346
+ ? NaN
1347
+ : sign * Infinity
1348
+ : exponent === 0 // denormal
1349
+ ? sign * 1.401298464324817e-45 * mantissa
1350
+ : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);
1351
+ }
1352
+
1353
+ exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);
1354
+ exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);
1355
+
1356
+ })();
1357
+
1358
+ // double: typed array
1359
+ if (typeof Float64Array !== "undefined") (function() {
1360
+
1361
+ var f64 = new Float64Array([-0]),
1362
+ f8b = new Uint8Array(f64.buffer),
1363
+ le = f8b[7] === 128;
1364
+
1365
+ function writeDouble_f64_cpy(val, buf, pos) {
1366
+ f64[0] = val;
1367
+ buf[pos ] = f8b[0];
1368
+ buf[pos + 1] = f8b[1];
1369
+ buf[pos + 2] = f8b[2];
1370
+ buf[pos + 3] = f8b[3];
1371
+ buf[pos + 4] = f8b[4];
1372
+ buf[pos + 5] = f8b[5];
1373
+ buf[pos + 6] = f8b[6];
1374
+ buf[pos + 7] = f8b[7];
1375
+ }
1376
+
1377
+ function writeDouble_f64_rev(val, buf, pos) {
1378
+ f64[0] = val;
1379
+ buf[pos ] = f8b[7];
1380
+ buf[pos + 1] = f8b[6];
1381
+ buf[pos + 2] = f8b[5];
1382
+ buf[pos + 3] = f8b[4];
1383
+ buf[pos + 4] = f8b[3];
1384
+ buf[pos + 5] = f8b[2];
1385
+ buf[pos + 6] = f8b[1];
1386
+ buf[pos + 7] = f8b[0];
1387
+ }
1388
+
1389
+ /* istanbul ignore next */
1390
+ exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;
1391
+ /* istanbul ignore next */
1392
+ exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;
1393
+
1394
+ function readDouble_f64_cpy(buf, pos) {
1395
+ f8b[0] = buf[pos ];
1396
+ f8b[1] = buf[pos + 1];
1397
+ f8b[2] = buf[pos + 2];
1398
+ f8b[3] = buf[pos + 3];
1399
+ f8b[4] = buf[pos + 4];
1400
+ f8b[5] = buf[pos + 5];
1401
+ f8b[6] = buf[pos + 6];
1402
+ f8b[7] = buf[pos + 7];
1403
+ return f64[0];
1404
+ }
1405
+
1406
+ function readDouble_f64_rev(buf, pos) {
1407
+ f8b[7] = buf[pos ];
1408
+ f8b[6] = buf[pos + 1];
1409
+ f8b[5] = buf[pos + 2];
1410
+ f8b[4] = buf[pos + 3];
1411
+ f8b[3] = buf[pos + 4];
1412
+ f8b[2] = buf[pos + 5];
1413
+ f8b[1] = buf[pos + 6];
1414
+ f8b[0] = buf[pos + 7];
1415
+ return f64[0];
1416
+ }
1417
+
1418
+ /* istanbul ignore next */
1419
+ exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;
1420
+ /* istanbul ignore next */
1421
+ exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;
1422
+
1423
+ // double: ieee754
1424
+ })(); else (function() {
1425
+
1426
+ function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {
1427
+ var sign = val < 0 ? 1 : 0;
1428
+ if (sign)
1429
+ val = -val;
1430
+ if (val === 0) {
1431
+ writeUint(0, buf, pos + off0);
1432
+ writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);
1433
+ } else if (isNaN(val)) {
1434
+ writeUint(0, buf, pos + off0);
1435
+ writeUint(2146959360, buf, pos + off1);
1436
+ } else if (val > 1.7976931348623157e+308) { // +-Infinity
1437
+ writeUint(0, buf, pos + off0);
1438
+ writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);
1439
+ } else {
1440
+ var mantissa;
1441
+ if (val < 2.2250738585072014e-308) { // denormal
1442
+ mantissa = val / 5e-324;
1443
+ writeUint(mantissa >>> 0, buf, pos + off0);
1444
+ writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);
1445
+ } else {
1446
+ var exponent = Math.floor(Math.log(val) / Math.LN2);
1447
+ if (exponent === 1024)
1448
+ exponent = 1023;
1449
+ mantissa = val * Math.pow(2, -exponent);
1450
+ writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);
1451
+ writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);
1452
+ }
1453
+ }
1454
+ }
1455
+
1456
+ exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);
1457
+ exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);
1458
+
1459
+ function readDouble_ieee754(readUint, off0, off1, buf, pos) {
1460
+ var lo = readUint(buf, pos + off0),
1461
+ hi = readUint(buf, pos + off1);
1462
+ var sign = (hi >> 31) * 2 + 1,
1463
+ exponent = hi >>> 20 & 2047,
1464
+ mantissa = 4294967296 * (hi & 1048575) + lo;
1465
+ return exponent === 2047
1466
+ ? mantissa
1467
+ ? NaN
1468
+ : sign * Infinity
1469
+ : exponent === 0 // denormal
1470
+ ? sign * 5e-324 * mantissa
1471
+ : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);
1472
+ }
1473
+
1474
+ exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);
1475
+ exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);
1476
+
1477
+ })();
1478
+
1479
+ return exports;
1480
+ }
1481
+
1482
+ // uint helpers
1483
+
1484
+ function writeUintLE(val, buf, pos) {
1485
+ buf[pos ] = val & 255;
1486
+ buf[pos + 1] = val >>> 8 & 255;
1487
+ buf[pos + 2] = val >>> 16 & 255;
1488
+ buf[pos + 3] = val >>> 24;
1489
+ }
1490
+
1491
+ function writeUintBE(val, buf, pos) {
1492
+ buf[pos ] = val >>> 24;
1493
+ buf[pos + 1] = val >>> 16 & 255;
1494
+ buf[pos + 2] = val >>> 8 & 255;
1495
+ buf[pos + 3] = val & 255;
1496
+ }
1497
+
1498
+ function readUintLE(buf, pos) {
1499
+ return (buf[pos ]
1500
+ | buf[pos + 1] << 8
1501
+ | buf[pos + 2] << 16
1502
+ | buf[pos + 3] << 24) >>> 0;
1503
+ }
1504
+
1505
+ function readUintBE(buf, pos) {
1506
+ return (buf[pos ] << 24
1507
+ | buf[pos + 1] << 16
1508
+ | buf[pos + 2] << 8
1509
+ | buf[pos + 3]) >>> 0;
1510
+ }
1511
+
1512
+ },{}],11:[function(require,module,exports){
1513
+ "use strict";
1514
+ module.exports = inquire;
1515
+
1516
+ /**
1517
+ * Requires a module only if available.
1518
+ * @memberof util
1519
+ * @param {string} moduleName Module to require
1520
+ * @returns {?Object} Required module if available and not empty, otherwise `null`
1521
+ * @deprecated Legacy optional require helper. Will be removed in a future release.
1522
+ */
1523
+ function inquire(moduleName) {
1524
+ try {
1525
+ if (typeof require !== "function") {
1526
+ return null;
1527
+ }
1528
+ var mod = require(moduleName);
1529
+ if (mod && (mod.length || Object.keys(mod).length)) return mod;
1530
+ return null;
1531
+ } catch (err) {
1532
+ // ignore
1533
+ return null;
1534
+ }
1535
+ }
1536
+
1537
+ /*
1538
+ // maybe worth a shot to prevent renaming issues:
1539
+ // see: https://github.com/webpack/webpack/blob/master/lib/dependencies/CommonJsRequireDependencyParserPlugin.js
1540
+ // triggers on:
1541
+ // - expression require.cache
1542
+ // - expression require (???)
1543
+ // - call require
1544
+ // - call require:commonjs:item
1545
+ // - call require:commonjs:context
1546
+
1547
+ Object.defineProperty(Function.prototype, "__self", { get: function() { return this; } });
1548
+ var r = require.__self;
1549
+ delete Function.prototype.__self;
1550
+ */
1551
+
1552
+ },{}],12:[function(require,module,exports){
1538
1553
  "use strict";
1539
1554
  module.exports = LongBits;
1540
1555
 
1541
- var util = require(15);
1556
+ var util = require(13);
1542
1557
 
1543
1558
  /**
1544
1559
  * Constructs new long bits.
@@ -1736,33 +1751,33 @@ LongBits.prototype.length = function length() {
1736
1751
  : part2 < 128 ? 9 : 10;
1737
1752
  };
1738
1753
 
1739
- },{"15":15}],15:[function(require,module,exports){
1754
+ },{"13":13}],13:[function(require,module,exports){
1740
1755
  "use strict";
1741
1756
  var util = exports;
1742
1757
 
1743
1758
  // used to return a Promise where callback is omitted
1744
- util.asPromise = require(1);
1759
+ util.asPromise = require(7);
1745
1760
 
1746
1761
  // converts to / from base64 encoded strings
1747
- util.base64 = require(2);
1762
+ util.base64 = require(8);
1748
1763
 
1749
1764
  // base class of rpc.Service
1750
- util.EventEmitter = require(3);
1765
+ util.EventEmitter = require(9);
1751
1766
 
1752
1767
  // float handling accross browsers
1753
- util.float = require(4);
1768
+ util.float = require(10);
1754
1769
 
1755
1770
  // requires modules optionally and hides the call from bundlers
1756
- util.inquire = require(5);
1771
+ util.inquire = require(11);
1757
1772
 
1758
1773
  // converts to / from utf8 encoded strings
1759
- util.utf8 = require(7);
1774
+ util.utf8 = require(15);
1760
1775
 
1761
1776
  // provides a node-like buffer pool in the browser
1762
- util.pool = require(6);
1777
+ util.pool = require(14);
1763
1778
 
1764
1779
  // utility to work with the low and high bits of a 64 bit value
1765
- util.LongBits = require(14);
1780
+ util.LongBits = require(12);
1766
1781
 
1767
1782
  /**
1768
1783
  * Whether running within node or not.
@@ -1864,7 +1879,7 @@ util.isSet = function isSet(obj, prop) {
1864
1879
  */
1865
1880
  util.Buffer = (function() {
1866
1881
  try {
1867
- var Buffer = util.inquire("buffer").Buffer;
1882
+ var Buffer = util.global.Buffer;
1868
1883
  // refuse to use non-node buffers if not explicitly assigned (perf reasons):
1869
1884
  return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;
1870
1885
  } catch (e) {
@@ -1918,14 +1933,22 @@ util.Array = typeof Uint8Array !== "undefined" ? Uint8Array /* istanbul ignore n
1918
1933
  */
1919
1934
  util.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long
1920
1935
  || /* istanbul ignore next */ util.global.Long
1921
- || util.inquire("long");
1936
+ || (function() {
1937
+ try {
1938
+ var Long = require("long");
1939
+ return Long && Long.isLong ? Long : null;
1940
+ } catch (e) {
1941
+ /* istanbul ignore next */
1942
+ return null;
1943
+ }
1944
+ })();
1922
1945
 
1923
1946
  /**
1924
1947
  * Regular expression used to verify 2 bit (`bool`) map keys.
1925
1948
  * @type {RegExp}
1926
1949
  * @const
1927
1950
  */
1928
- util.key2Re = /^true|false|0|1$/;
1951
+ util.key2Re = /^(?:true|false|0|1)$/;
1929
1952
 
1930
1953
  /**
1931
1954
  * Regular expression used to verify 32 bit (`int32` etc.) map keys.
@@ -1939,7 +1962,7 @@ util.key32Re = /^-?(?:0|[1-9][0-9]*)$/;
1939
1962
  * @type {RegExp}
1940
1963
  * @const
1941
1964
  */
1942
- util.key64Re = /^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;
1965
+ util.key64Re = /^(?:[\x00-\xff]{8}|-?(?:0|[1-9][0-9]*))$/; // eslint-disable-line no-control-regex
1943
1966
 
1944
1967
  /**
1945
1968
  * Converts a number or long to an 8 characters long hash string.
@@ -1965,6 +1988,27 @@ util.longFromHash = function longFromHash(hash, unsigned) {
1965
1988
  return bits.toNumber(Boolean(unsigned));
1966
1989
  };
1967
1990
 
1991
+ /**
1992
+ * Converts a 64 bit key to a long or number if it is an 8 characters long hash string.
1993
+ * @param {string} key Map key
1994
+ * @param {boolean} [unsigned=false] Whether unsigned or not
1995
+ * @returns {Long|number|string} Original value
1996
+ */
1997
+ util.longFromKey = function longFromKey(key, unsigned) {
1998
+ return util.key64Re.test(key) && !util.key32Re.test(key)
1999
+ ? util.longFromHash(key, unsigned)
2000
+ : key;
2001
+ };
2002
+
2003
+ /**
2004
+ * Converts a boolean key to a boolean value.
2005
+ * @param {string} key Map key
2006
+ * @returns {boolean} Boolean value
2007
+ */
2008
+ util.boolFromKey = function boolFromKey(key) {
2009
+ return key === "true" || key === "1";
2010
+ };
2011
+
1968
2012
  /**
1969
2013
  * Merges the properties of the source object into the destination object.
1970
2014
  * @memberof util
@@ -1976,12 +2020,38 @@ util.longFromHash = function longFromHash(hash, unsigned) {
1976
2020
  function merge(dst, src, ifNotSet) { // used by converters
1977
2021
  for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)
1978
2022
  if (dst[keys[i]] === undefined || !ifNotSet)
1979
- dst[keys[i]] = src[keys[i]];
2023
+ if (keys[i] !== "__proto__")
2024
+ dst[keys[i]] = src[keys[i]];
1980
2025
  return dst;
1981
2026
  }
1982
2027
 
1983
2028
  util.merge = merge;
1984
2029
 
2030
+ /**
2031
+ * Recursion limit.
2032
+ * @memberof util
2033
+ * @type {number}
2034
+ */
2035
+ util.recursionLimit = 100;
2036
+
2037
+ /**
2038
+ * Makes a property safe for assignment as an own property.
2039
+ * @memberof util
2040
+ * @param {Object.<string,*>} obj Object
2041
+ * @param {string} key Property key
2042
+ * @param {boolean} [enumerable=true] Whether the property should be enumerable
2043
+ * @returns {undefined}
2044
+ */
2045
+ util.makeProp = function makeProp(obj, key, enumerable) {
2046
+ if (Object.prototype.hasOwnProperty.call(obj, key))
2047
+ return;
2048
+ Object.defineProperty(obj, key, {
2049
+ enumerable: enumerable === undefined ? true : enumerable,
2050
+ configurable: true,
2051
+ writable: true
2052
+ });
2053
+ };
2054
+
1985
2055
  /**
1986
2056
  * Converts the first character of a string to lower case.
1987
2057
  * @param {string} str String to convert
@@ -2176,11 +2246,167 @@ util._configure = function() {
2176
2246
  };
2177
2247
  };
2178
2248
 
2179
- },{"1":1,"14":14,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7}],16:[function(require,module,exports){
2249
+ },{"10":10,"11":11,"12":12,"14":14,"15":15,"7":7,"8":8,"9":9,"long":"long"}],14:[function(require,module,exports){
2250
+ "use strict";
2251
+ module.exports = pool;
2252
+
2253
+ /**
2254
+ * An allocator as used by {@link util.pool}.
2255
+ * @typedef PoolAllocator
2256
+ * @type {function}
2257
+ * @param {number} size Buffer size
2258
+ * @returns {Uint8Array} Buffer
2259
+ */
2260
+
2261
+ /**
2262
+ * A slicer as used by {@link util.pool}.
2263
+ * @typedef PoolSlicer
2264
+ * @type {function}
2265
+ * @param {number} start Start offset
2266
+ * @param {number} end End offset
2267
+ * @returns {Uint8Array} Buffer slice
2268
+ * @this {Uint8Array}
2269
+ */
2270
+
2271
+ /**
2272
+ * A general purpose buffer pool.
2273
+ * @memberof util
2274
+ * @function
2275
+ * @param {PoolAllocator} alloc Allocator
2276
+ * @param {PoolSlicer} slice Slicer
2277
+ * @param {number} [size=8192] Slab size
2278
+ * @returns {PoolAllocator} Pooled allocator
2279
+ */
2280
+ function pool(alloc, slice, size) {
2281
+ var SIZE = size || 8192;
2282
+ var MAX = SIZE >>> 1;
2283
+ var slab = null;
2284
+ var offset = SIZE;
2285
+ return function pool_alloc(size) {
2286
+ if (size < 1 || size > MAX)
2287
+ return alloc(size);
2288
+ if (offset + size > SIZE) {
2289
+ slab = alloc(SIZE);
2290
+ offset = 0;
2291
+ }
2292
+ var buf = slice.call(slab, offset, offset += size);
2293
+ if (offset & 7) // align to 32 bit
2294
+ offset = (offset | 7) + 1;
2295
+ return buf;
2296
+ };
2297
+ }
2298
+
2299
+ },{}],15:[function(require,module,exports){
2300
+ "use strict";
2301
+
2302
+ /**
2303
+ * A minimal UTF8 implementation for number arrays.
2304
+ * @memberof util
2305
+ * @namespace
2306
+ */
2307
+ var utf8 = exports,
2308
+ replacementChar = "\ufffd";
2309
+
2310
+ /**
2311
+ * Calculates the UTF8 byte length of a string.
2312
+ * @param {string} string String
2313
+ * @returns {number} Byte length
2314
+ */
2315
+ utf8.length = function utf8_length(string) {
2316
+ var len = 0,
2317
+ c = 0;
2318
+ for (var i = 0; i < string.length; ++i) {
2319
+ c = string.charCodeAt(i);
2320
+ if (c < 128)
2321
+ len += 1;
2322
+ else if (c < 2048)
2323
+ len += 2;
2324
+ else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {
2325
+ ++i;
2326
+ len += 4;
2327
+ } else
2328
+ len += 3;
2329
+ }
2330
+ return len;
2331
+ };
2332
+
2333
+ /**
2334
+ * Reads UTF8 bytes as a string.
2335
+ * @param {Uint8Array} buffer Source buffer
2336
+ * @param {number} start Source start
2337
+ * @param {number} end Source end
2338
+ * @returns {string} String read
2339
+ */
2340
+ utf8.read = function utf8_read(buffer, start, end) {
2341
+ if (end - start < 1) {
2342
+ return "";
2343
+ }
2344
+
2345
+ var str = "";
2346
+ for (var i = start; i < end;) {
2347
+ var t = buffer[i++];
2348
+ if (t <= 0x7F) {
2349
+ str += String.fromCharCode(t);
2350
+ } else if (t >= 0xC0 && t < 0xE0) {
2351
+ var c2 = (t & 0x1F) << 6 | buffer[i++] & 0x3F;
2352
+ str += c2 >= 0x80 ? String.fromCharCode(c2) : replacementChar;
2353
+ } else if (t >= 0xE0 && t < 0xF0) {
2354
+ var c3 = (t & 0xF) << 12 | (buffer[i++] & 0x3F) << 6 | buffer[i++] & 0x3F;
2355
+ str += c3 >= 0x800 ? String.fromCharCode(c3) : replacementChar;
2356
+ } else if (t >= 0xF0) {
2357
+ var t2 = (t & 7) << 18 | (buffer[i++] & 0x3F) << 12 | (buffer[i++] & 0x3F) << 6 | buffer[i++] & 0x3F;
2358
+ if (t2 < 0x10000 || t2 > 0x10FFFF)
2359
+ str += replacementChar;
2360
+ else {
2361
+ t2 -= 0x10000;
2362
+ str += String.fromCharCode(0xD800 + (t2 >> 10));
2363
+ str += String.fromCharCode(0xDC00 + (t2 & 0x3FF));
2364
+ }
2365
+ }
2366
+ }
2367
+
2368
+ return str;
2369
+ };
2370
+
2371
+ /**
2372
+ * Writes a string as UTF8 bytes.
2373
+ * @param {string} string Source string
2374
+ * @param {Uint8Array} buffer Destination buffer
2375
+ * @param {number} offset Destination offset
2376
+ * @returns {number} Bytes written
2377
+ */
2378
+ utf8.write = function utf8_write(string, buffer, offset) {
2379
+ var start = offset,
2380
+ c1, // character 1
2381
+ c2; // character 2
2382
+ for (var i = 0; i < string.length; ++i) {
2383
+ c1 = string.charCodeAt(i);
2384
+ if (c1 < 128) {
2385
+ buffer[offset++] = c1;
2386
+ } else if (c1 < 2048) {
2387
+ buffer[offset++] = c1 >> 6 | 192;
2388
+ buffer[offset++] = c1 & 63 | 128;
2389
+ } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {
2390
+ c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);
2391
+ ++i;
2392
+ buffer[offset++] = c1 >> 18 | 240;
2393
+ buffer[offset++] = c1 >> 12 & 63 | 128;
2394
+ buffer[offset++] = c1 >> 6 & 63 | 128;
2395
+ buffer[offset++] = c1 & 63 | 128;
2396
+ } else {
2397
+ buffer[offset++] = c1 >> 12 | 224;
2398
+ buffer[offset++] = c1 >> 6 & 63 | 128;
2399
+ buffer[offset++] = c1 & 63 | 128;
2400
+ }
2401
+ }
2402
+ return offset - start;
2403
+ };
2404
+
2405
+ },{}],16:[function(require,module,exports){
2180
2406
  "use strict";
2181
2407
  module.exports = Writer;
2182
2408
 
2183
- var util = require(15);
2409
+ var util = require(13);
2184
2410
 
2185
2411
  var BufferWriter; // cyclic
2186
2412
 
@@ -2562,6 +2788,16 @@ Writer.prototype.bytes = function write_bytes(value) {
2562
2788
  return this.uint32(len)._push(writeBytes, len, value);
2563
2789
  };
2564
2790
 
2791
+ /**
2792
+ * Writes raw bytes without a tag or length prefix.
2793
+ * @param {Uint8Array} value Raw bytes
2794
+ * @returns {Writer} `this`
2795
+ */
2796
+ Writer.prototype.raw = function write_raw(value) {
2797
+ var len = value.length >>> 0;
2798
+ return len ? this._push(writeBytes, len, value) : this;
2799
+ };
2800
+
2565
2801
  /**
2566
2802
  * Writes a string.
2567
2803
  * @param {string} value Value to write
@@ -2625,15 +2861,28 @@ Writer.prototype.ldelim = function ldelim() {
2625
2861
  * @returns {Uint8Array} Finished buffer
2626
2862
  */
2627
2863
  Writer.prototype.finish = function finish() {
2628
- var head = this.head.next, // skip noop
2629
- buf = this.constructor.alloc(this.len),
2630
- pos = 0;
2864
+ return this.finishInto(this.constructor.alloc(this.len), 0);
2865
+ };
2866
+
2867
+ /**
2868
+ * Finishes the write operation, writing into the provided buffer.
2869
+ * The caller must ensure that `buf` has enough space starting at `offset`
2870
+ * to hold {@link Writer#len} bytes.
2871
+ * @param {T} buf Target buffer
2872
+ * @param {number} [offset=0] Offset to start writing at
2873
+ * @returns {T} The provided buffer
2874
+ * @template T extends Uint8Array
2875
+ */
2876
+ Writer.prototype.finishInto = function finishInto(buf, offset) {
2877
+ if (offset === undefined)
2878
+ offset = 0;
2879
+ var head = this.head.next,
2880
+ pos = offset;
2631
2881
  while (head) {
2632
2882
  head.fn(head.val, buf, pos);
2633
2883
  pos += head.len;
2634
2884
  head = head.next;
2635
2885
  }
2636
- // this.head = this.tail = null;
2637
2886
  return buf;
2638
2887
  };
2639
2888
 
@@ -2643,7 +2892,7 @@ Writer._configure = function(BufferWriter_) {
2643
2892
  BufferWriter._configure();
2644
2893
  };
2645
2894
 
2646
- },{"15":15}],17:[function(require,module,exports){
2895
+ },{"13":13}],17:[function(require,module,exports){
2647
2896
  "use strict";
2648
2897
  module.exports = BufferWriter;
2649
2898
 
@@ -2651,7 +2900,7 @@ module.exports = BufferWriter;
2651
2900
  var Writer = require(16);
2652
2901
  (BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;
2653
2902
 
2654
- var util = require(15);
2903
+ var util = require(13);
2655
2904
 
2656
2905
  /**
2657
2906
  * Constructs a new buffer writer instance.
@@ -2700,6 +2949,18 @@ BufferWriter.prototype.bytes = function write_bytes_buffer(value) {
2700
2949
  return this;
2701
2950
  };
2702
2951
 
2952
+ /**
2953
+ * Writes raw bytes without a tag or length prefix.
2954
+ * @name BufferWriter#raw
2955
+ * @function
2956
+ * @param {Uint8Array} value Raw bytes
2957
+ * @returns {BufferWriter} `this`
2958
+ */
2959
+ BufferWriter.prototype.raw = function write_raw_buffer(value) {
2960
+ var len = value.length >>> 0;
2961
+ return len ? this._push(BufferWriter.writeBytesBuffer, len, value) : this;
2962
+ };
2963
+
2703
2964
  function writeStringBuffer(val, buf, pos) {
2704
2965
  if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)
2705
2966
  util.utf8.write(val, buf, pos);
@@ -2730,7 +2991,7 @@ BufferWriter.prototype.string = function write_string_buffer(value) {
2730
2991
 
2731
2992
  BufferWriter._configure();
2732
2993
 
2733
- },{"15":15,"16":16}]},{},[8])
2994
+ },{"13":13,"16":16}]},{},[1])
2734
2995
 
2735
2996
  })();
2736
2997
  //# sourceMappingURL=protobuf.js.map