protobufjs 8.6.0 → 8.6.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.
Files changed (108) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +441 -441
  3. package/dist/light/protobuf.js +8473 -8516
  4. package/dist/light/protobuf.js.map +1 -1
  5. package/dist/light/protobuf.min.js +3 -3
  6. package/dist/light/protobuf.min.js.map +1 -1
  7. package/dist/minimal/protobuf.js +3018 -3061
  8. package/dist/minimal/protobuf.js.map +1 -1
  9. package/dist/minimal/protobuf.min.js +3 -3
  10. package/dist/minimal/protobuf.min.js.map +1 -1
  11. package/dist/protobuf.js +10376 -10419
  12. package/dist/protobuf.js.map +1 -1
  13. package/dist/protobuf.min.js +3 -3
  14. package/dist/protobuf.min.js.map +1 -1
  15. package/ext/README.md +70 -70
  16. package/ext/debug/README.md +4 -4
  17. package/ext/debug/index.js +71 -71
  18. package/ext/descriptor/README.md +5 -5
  19. package/ext/descriptor/index.d.ts +2 -2
  20. package/ext/descriptor/index.js +2 -2
  21. package/ext/descriptor.d.ts +87 -86
  22. package/ext/descriptor.generated.d.ts +14 -6
  23. package/ext/descriptor.js +1354 -1303
  24. package/ext/protojson.LICENSE +201 -201
  25. package/ext/protojson.d.ts +20 -20
  26. package/ext/protojson.js +925 -903
  27. package/ext/textformat.d.ts +19 -19
  28. package/ext/textformat.js +1256 -1256
  29. package/google/LICENSE +27 -27
  30. package/google/README.md +1 -1
  31. package/google/api/annotations.json +82 -82
  32. package/google/api/annotations.proto +10 -10
  33. package/google/api/http.json +85 -85
  34. package/google/api/http.proto +30 -30
  35. package/google/protobuf/api.json +117 -117
  36. package/google/protobuf/api.proto +33 -33
  37. package/google/protobuf/compiler/plugin.json +126 -126
  38. package/google/protobuf/compiler/plugin.proto +47 -47
  39. package/google/protobuf/descriptor.json +1381 -1381
  40. package/google/protobuf/descriptor.proto +534 -534
  41. package/google/protobuf/source_context.json +19 -19
  42. package/google/protobuf/source_context.proto +7 -7
  43. package/google/protobuf/type.json +201 -201
  44. package/google/protobuf/type.proto +89 -89
  45. package/index.d.ts +10 -18
  46. package/index.js +4 -4
  47. package/light.d.ts +2 -2
  48. package/light.js +3 -3
  49. package/minimal.d.ts +2 -2
  50. package/minimal.js +4 -4
  51. package/package.json +93 -93
  52. package/src/common.js +399 -399
  53. package/src/converter.js +344 -344
  54. package/src/decoder.js +208 -208
  55. package/src/encoder.js +111 -111
  56. package/src/enum.js +231 -231
  57. package/src/field.js +497 -497
  58. package/src/index-light.js +104 -104
  59. package/src/index-minimal.js +36 -36
  60. package/src/index.js +12 -12
  61. package/src/mapfield.js +136 -136
  62. package/src/message.js +137 -137
  63. package/src/method.js +175 -175
  64. package/src/namespace.js +565 -565
  65. package/src/object.js +382 -382
  66. package/src/oneof.js +225 -225
  67. package/src/parse.js +1068 -1068
  68. package/src/reader.js +543 -543
  69. package/src/reader_buffer.js +72 -72
  70. package/src/root.js +416 -416
  71. package/src/roots.js +18 -18
  72. package/src/rpc/service.js +148 -148
  73. package/src/rpc.js +36 -36
  74. package/src/service.js +198 -198
  75. package/src/tokenize.js +421 -421
  76. package/src/type.js +655 -655
  77. package/src/types.js +196 -196
  78. package/src/typescript.js +25 -25
  79. package/src/util/aspromise.d.ts +13 -13
  80. package/src/util/aspromise.js +52 -52
  81. package/src/util/base64.d.ts +32 -32
  82. package/src/util/base64.js +146 -146
  83. package/src/util/codegen.d.ts +31 -31
  84. package/src/util/codegen.js +113 -113
  85. package/src/util/eventemitter.d.ts +45 -45
  86. package/src/util/eventemitter.js +86 -86
  87. package/src/util/fetch.d.ts +56 -56
  88. package/src/util/fetch.js +112 -112
  89. package/src/util/float.d.ts +83 -83
  90. package/src/util/float.js +335 -335
  91. package/src/util/fs.js +11 -11
  92. package/src/util/longbits.js +200 -200
  93. package/src/util/minimal.js +515 -518
  94. package/src/util/path.d.ts +22 -22
  95. package/src/util/path.js +72 -72
  96. package/src/util/patterns.js +7 -7
  97. package/src/util/pool.d.ts +32 -32
  98. package/src/util/pool.js +48 -48
  99. package/src/util/utf8.d.ts +24 -24
  100. package/src/util/utf8.js +130 -130
  101. package/src/util.js +242 -242
  102. package/src/verifier.js +180 -180
  103. package/src/wrappers.js +106 -106
  104. package/src/writer.js +495 -495
  105. package/src/writer_buffer.js +102 -102
  106. package/tsconfig.json +6 -6
  107. package/src/util/inquire.d.ts +0 -10
  108. package/src/util/inquire.js +0 -38
package/src/enum.js CHANGED
@@ -1,231 +1,231 @@
1
- "use strict";
2
- module.exports = Enum;
3
-
4
- // extends ReflectionObject
5
- var ReflectionObject = require("./object");
6
- ((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = "Enum";
7
-
8
- var Namespace = require("./namespace"),
9
- util = require("./util");
10
-
11
- /**
12
- * Constructs a new enum instance.
13
- * @classdesc Reflected enum.
14
- * @extends ReflectionObject
15
- * @constructor
16
- * @param {string} name Unique name within its namespace
17
- * @param {Object.<string,number>} [values] Enum values as an object, by name
18
- * @param {Object.<string,*>} [options] Declared options
19
- * @param {string} [comment] The comment for this enum
20
- * @param {Object.<string,string|null>} [comments] The value comments for this enum
21
- * @param {Object.<string,Object<string,*>>|undefined} [valuesOptions] The value options for this enum
22
- */
23
- function Enum(name, values, options, comment, comments, valuesOptions) {
24
- ReflectionObject.call(this, name, options);
25
-
26
- if (values && typeof values !== "object")
27
- throw TypeError("values must be an object");
28
-
29
- /**
30
- * Enum values by id.
31
- * @type {Object.<number,string>}
32
- */
33
- this.valuesById = {};
34
-
35
- /**
36
- * Enum values by name.
37
- * @type {Object.<string,number>}
38
- */
39
- this.values = Object.create(this.valuesById); // toJSON, marker
40
-
41
- /**
42
- * Enum comment text.
43
- * @type {string|null}
44
- */
45
- this.comment = comment;
46
-
47
- /**
48
- * Value comment texts, if any.
49
- * @type {Object.<string,string|null>}
50
- */
51
- this.comments = comments || {};
52
-
53
- /**
54
- * Values options, if any
55
- * @type {Object<string, Object<string, *>>|undefined}
56
- */
57
- this.valuesOptions = valuesOptions;
58
-
59
- /**
60
- * Resolved values features, if any
61
- * @type {Object<string, Object<string, *>>|undefined}
62
- */
63
- this._valuesFeatures = {};
64
-
65
- /**
66
- * Reserved ranges, if any.
67
- * @type {Array.<number[]|string>}
68
- */
69
- this.reserved = undefined; // toJSON
70
-
71
- // Note that values inherit valuesById on their prototype which makes them a TypeScript-
72
- // compatible enum. This is used by pbts to write actual enum definitions that work for
73
- // static and reflection code alike instead of emitting generic object definitions.
74
-
75
- if (values)
76
- for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)
77
- if (keys[i] !== "__proto__" && typeof values[keys[i]] === "number") // use forward entries only
78
- this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];
79
- }
80
-
81
- /**
82
- * @override
83
- */
84
- Enum.prototype._resolveFeatures = function _resolveFeatures(edition) {
85
- edition = this._edition || edition;
86
- ReflectionObject.prototype._resolveFeatures.call(this, edition);
87
-
88
- Object.keys(this.values).forEach(key => {
89
- var parentFeaturesCopy = util.merge({}, this._features);
90
- this._valuesFeatures[key] = util.merge(parentFeaturesCopy, this.valuesOptions && this.valuesOptions[key] && this.valuesOptions[key].features || {});
91
- });
92
-
93
- return this;
94
- };
95
-
96
- /**
97
- * Enum descriptor.
98
- * @interface IEnum
99
- * @property {string} [edition] Edition
100
- * @property {Object.<string,number>} values Enum values
101
- * @property {Object.<string,*>} [options] Enum options
102
- * @property {Object.<string,Object.<string,*>>} [valuesOptions] Enum value options
103
- * @property {Array.<number[]|string>} [reserved] Reserved ranges
104
- * @property {string|null} [comment] Enum comment
105
- * @property {Object.<string,string|null>} [comments] Value comments
106
- */
107
-
108
- /**
109
- * Constructs an enum from an enum descriptor.
110
- * @param {string} name Enum name
111
- * @param {IEnum} json Enum descriptor
112
- * @returns {Enum} Created enum
113
- * @throws {TypeError} If arguments are invalid
114
- */
115
- Enum.fromJSON = function fromJSON(name, json) {
116
- var enm = new Enum(name, json.values, json.options, json.comment, json.comments, json.valuesOptions);
117
- enm.reserved = json.reserved;
118
- if (json.edition)
119
- enm._edition = json.edition;
120
- enm._defaultEdition = "proto3"; // For backwards-compatibility.
121
- return enm;
122
- };
123
-
124
- /**
125
- * Converts this enum to an enum descriptor.
126
- * @param {IToJSONOptions} [toJSONOptions] JSON conversion options
127
- * @returns {IEnum} Enum descriptor
128
- */
129
- Enum.prototype.toJSON = function toJSON(toJSONOptions) {
130
- var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;
131
- return util.toObject([
132
- "edition" , this._editionToJSON(),
133
- "options" , this.options,
134
- "valuesOptions" , this.valuesOptions,
135
- "values" , this.values,
136
- "reserved" , this.reserved && this.reserved.length ? this.reserved : undefined,
137
- "comment" , keepComments ? this.comment : undefined,
138
- "comments" , keepComments ? this.comments : undefined
139
- ]);
140
- };
141
-
142
- /**
143
- * Adds a value to this enum.
144
- * @param {string} name Value name
145
- * @param {number} id Value id
146
- * @param {string} [comment] Comment, if any
147
- * @param {Object.<string, *>|undefined} [options] Options, if any
148
- * @returns {Enum} `this`
149
- * @throws {TypeError} If arguments are invalid
150
- * @throws {Error} If there is already a value with this name or id
151
- */
152
- Enum.prototype.add = function add(name, id, comment, options) {
153
- // utilized by the parser but not by .fromJSON
154
-
155
- if (!util.isString(name))
156
- throw TypeError("name must be a string");
157
-
158
- if (!util.isInteger(id))
159
- throw TypeError("id must be an integer");
160
-
161
- if (name === "__proto__")
162
- return this;
163
-
164
- if (this.values[name] !== undefined)
165
- throw Error("duplicate name '" + name + "' in " + this);
166
-
167
- if (this.isReservedId(id))
168
- throw Error("id " + id + " is reserved in " + this);
169
-
170
- if (this.isReservedName(name))
171
- throw Error("name '" + name + "' is reserved in " + this);
172
-
173
- if (this.valuesById[id] !== undefined) {
174
- if (!(this.options && this.options.allow_alias))
175
- throw Error("duplicate id " + id + " in " + this);
176
- this.values[name] = id;
177
- } else
178
- this.valuesById[this.values[name] = id] = name;
179
-
180
- if (options) {
181
- if (this.valuesOptions === undefined)
182
- this.valuesOptions = {};
183
- this.valuesOptions[name] = options || null;
184
- }
185
-
186
- this.comments[name] = comment || null;
187
- return this;
188
- };
189
-
190
- /**
191
- * Removes a value from this enum
192
- * @param {string} name Value name
193
- * @returns {Enum} `this`
194
- * @throws {TypeError} If arguments are invalid
195
- * @throws {Error} If `name` is not a name of this enum
196
- */
197
- Enum.prototype.remove = function remove(name) {
198
-
199
- if (!util.isString(name))
200
- throw TypeError("name must be a string");
201
-
202
- var val = this.values[name];
203
- if (val == null)
204
- throw Error("name '" + name + "' does not exist in " + this);
205
-
206
- delete this.valuesById[val];
207
- delete this.values[name];
208
- delete this.comments[name];
209
- if (this.valuesOptions)
210
- delete this.valuesOptions[name];
211
-
212
- return this;
213
- };
214
-
215
- /**
216
- * Tests if the specified id is reserved.
217
- * @param {number} id Id to test
218
- * @returns {boolean} `true` if reserved, otherwise `false`
219
- */
220
- Enum.prototype.isReservedId = function isReservedId(id) {
221
- return Namespace.isReservedId(this.reserved, id);
222
- };
223
-
224
- /**
225
- * Tests if the specified name is reserved.
226
- * @param {string} name Name to test
227
- * @returns {boolean} `true` if reserved, otherwise `false`
228
- */
229
- Enum.prototype.isReservedName = function isReservedName(name) {
230
- return Namespace.isReservedName(this.reserved, name);
231
- };
1
+ "use strict";
2
+ module.exports = Enum;
3
+
4
+ // extends ReflectionObject
5
+ var ReflectionObject = require("./object");
6
+ ((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = "Enum";
7
+
8
+ var Namespace = require("./namespace"),
9
+ util = require("./util");
10
+
11
+ /**
12
+ * Constructs a new enum instance.
13
+ * @classdesc Reflected enum.
14
+ * @extends ReflectionObject
15
+ * @constructor
16
+ * @param {string} name Unique name within its namespace
17
+ * @param {Object.<string,number>} [values] Enum values as an object, by name
18
+ * @param {Object.<string,*>} [options] Declared options
19
+ * @param {string} [comment] The comment for this enum
20
+ * @param {Object.<string,string|null>} [comments] The value comments for this enum
21
+ * @param {Object.<string,Object<string,*>>|undefined} [valuesOptions] The value options for this enum
22
+ */
23
+ function Enum(name, values, options, comment, comments, valuesOptions) {
24
+ ReflectionObject.call(this, name, options);
25
+
26
+ if (values && typeof values !== "object")
27
+ throw TypeError("values must be an object");
28
+
29
+ /**
30
+ * Enum values by id.
31
+ * @type {Object.<number,string>}
32
+ */
33
+ this.valuesById = {};
34
+
35
+ /**
36
+ * Enum values by name.
37
+ * @type {Object.<string,number>}
38
+ */
39
+ this.values = Object.create(this.valuesById); // toJSON, marker
40
+
41
+ /**
42
+ * Enum comment text.
43
+ * @type {string|null}
44
+ */
45
+ this.comment = comment;
46
+
47
+ /**
48
+ * Value comment texts, if any.
49
+ * @type {Object.<string,string|null>}
50
+ */
51
+ this.comments = comments || {};
52
+
53
+ /**
54
+ * Values options, if any
55
+ * @type {Object<string, Object<string, *>>|undefined}
56
+ */
57
+ this.valuesOptions = valuesOptions;
58
+
59
+ /**
60
+ * Resolved values features, if any
61
+ * @type {Object<string, Object<string, *>>|undefined}
62
+ */
63
+ this._valuesFeatures = {};
64
+
65
+ /**
66
+ * Reserved ranges, if any.
67
+ * @type {Array.<number[]|string>}
68
+ */
69
+ this.reserved = undefined; // toJSON
70
+
71
+ // Note that values inherit valuesById on their prototype which makes them a TypeScript-
72
+ // compatible enum. This is used by pbts to write actual enum definitions that work for
73
+ // static and reflection code alike instead of emitting generic object definitions.
74
+
75
+ if (values)
76
+ for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)
77
+ if (keys[i] !== "__proto__" && typeof values[keys[i]] === "number") // use forward entries only
78
+ this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];
79
+ }
80
+
81
+ /**
82
+ * @override
83
+ */
84
+ Enum.prototype._resolveFeatures = function _resolveFeatures(edition) {
85
+ edition = this._edition || edition;
86
+ ReflectionObject.prototype._resolveFeatures.call(this, edition);
87
+
88
+ Object.keys(this.values).forEach(key => {
89
+ var parentFeaturesCopy = util.merge({}, this._features);
90
+ this._valuesFeatures[key] = util.merge(parentFeaturesCopy, this.valuesOptions && this.valuesOptions[key] && this.valuesOptions[key].features || {});
91
+ });
92
+
93
+ return this;
94
+ };
95
+
96
+ /**
97
+ * Enum descriptor.
98
+ * @interface IEnum
99
+ * @property {string} [edition] Edition
100
+ * @property {Object.<string,number>} values Enum values
101
+ * @property {Object.<string,*>} [options] Enum options
102
+ * @property {Object.<string,Object.<string,*>>} [valuesOptions] Enum value options
103
+ * @property {Array.<number[]|string>} [reserved] Reserved ranges
104
+ * @property {string|null} [comment] Enum comment
105
+ * @property {Object.<string,string|null>} [comments] Value comments
106
+ */
107
+
108
+ /**
109
+ * Constructs an enum from an enum descriptor.
110
+ * @param {string} name Enum name
111
+ * @param {IEnum} json Enum descriptor
112
+ * @returns {Enum} Created enum
113
+ * @throws {TypeError} If arguments are invalid
114
+ */
115
+ Enum.fromJSON = function fromJSON(name, json) {
116
+ var enm = new Enum(name, json.values, json.options, json.comment, json.comments, json.valuesOptions);
117
+ enm.reserved = json.reserved;
118
+ if (json.edition)
119
+ enm._edition = json.edition;
120
+ enm._defaultEdition = "proto3"; // For backwards-compatibility.
121
+ return enm;
122
+ };
123
+
124
+ /**
125
+ * Converts this enum to an enum descriptor.
126
+ * @param {IToJSONOptions} [toJSONOptions] JSON conversion options
127
+ * @returns {IEnum} Enum descriptor
128
+ */
129
+ Enum.prototype.toJSON = function toJSON(toJSONOptions) {
130
+ var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;
131
+ return util.toObject([
132
+ "edition" , this._editionToJSON(),
133
+ "options" , this.options,
134
+ "valuesOptions" , this.valuesOptions,
135
+ "values" , this.values,
136
+ "reserved" , this.reserved && this.reserved.length ? this.reserved : undefined,
137
+ "comment" , keepComments ? this.comment : undefined,
138
+ "comments" , keepComments ? this.comments : undefined
139
+ ]);
140
+ };
141
+
142
+ /**
143
+ * Adds a value to this enum.
144
+ * @param {string} name Value name
145
+ * @param {number} id Value id
146
+ * @param {string} [comment] Comment, if any
147
+ * @param {Object.<string, *>|undefined} [options] Options, if any
148
+ * @returns {Enum} `this`
149
+ * @throws {TypeError} If arguments are invalid
150
+ * @throws {Error} If there is already a value with this name or id
151
+ */
152
+ Enum.prototype.add = function add(name, id, comment, options) {
153
+ // utilized by the parser but not by .fromJSON
154
+
155
+ if (!util.isString(name))
156
+ throw TypeError("name must be a string");
157
+
158
+ if (!util.isInteger(id))
159
+ throw TypeError("id must be an integer");
160
+
161
+ if (name === "__proto__")
162
+ return this;
163
+
164
+ if (this.values[name] !== undefined)
165
+ throw Error("duplicate name '" + name + "' in " + this);
166
+
167
+ if (this.isReservedId(id))
168
+ throw Error("id " + id + " is reserved in " + this);
169
+
170
+ if (this.isReservedName(name))
171
+ throw Error("name '" + name + "' is reserved in " + this);
172
+
173
+ if (this.valuesById[id] !== undefined) {
174
+ if (!(this.options && this.options.allow_alias))
175
+ throw Error("duplicate id " + id + " in " + this);
176
+ this.values[name] = id;
177
+ } else
178
+ this.valuesById[this.values[name] = id] = name;
179
+
180
+ if (options) {
181
+ if (this.valuesOptions === undefined)
182
+ this.valuesOptions = {};
183
+ this.valuesOptions[name] = options || null;
184
+ }
185
+
186
+ this.comments[name] = comment || null;
187
+ return this;
188
+ };
189
+
190
+ /**
191
+ * Removes a value from this enum
192
+ * @param {string} name Value name
193
+ * @returns {Enum} `this`
194
+ * @throws {TypeError} If arguments are invalid
195
+ * @throws {Error} If `name` is not a name of this enum
196
+ */
197
+ Enum.prototype.remove = function remove(name) {
198
+
199
+ if (!util.isString(name))
200
+ throw TypeError("name must be a string");
201
+
202
+ var val = this.values[name];
203
+ if (val == null)
204
+ throw Error("name '" + name + "' does not exist in " + this);
205
+
206
+ delete this.valuesById[val];
207
+ delete this.values[name];
208
+ delete this.comments[name];
209
+ if (this.valuesOptions)
210
+ delete this.valuesOptions[name];
211
+
212
+ return this;
213
+ };
214
+
215
+ /**
216
+ * Tests if the specified id is reserved.
217
+ * @param {number} id Id to test
218
+ * @returns {boolean} `true` if reserved, otherwise `false`
219
+ */
220
+ Enum.prototype.isReservedId = function isReservedId(id) {
221
+ return Namespace.isReservedId(this.reserved, id);
222
+ };
223
+
224
+ /**
225
+ * Tests if the specified name is reserved.
226
+ * @param {string} name Name to test
227
+ * @returns {boolean} `true` if reserved, otherwise `false`
228
+ */
229
+ Enum.prototype.isReservedName = function isReservedName(name) {
230
+ return Namespace.isReservedName(this.reserved, name);
231
+ };