protobufjs 8.2.1 → 8.3.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "protobufjs",
3
- "version": "8.2.1",
3
+ "version": "8.3.0",
4
4
  "versionScheme": "~",
5
5
  "description": "Protocol Buffers for JavaScript & TypeScript.",
6
6
  "author": "Daniel Wirtz <dcode+protobufjs@dcode.io>",
@@ -26,7 +26,7 @@
26
26
  "bench": "node bench",
27
27
  "build": "npm run build:bundle && npm run build:types",
28
28
  "build:bundle": "gulp --gulpfile scripts/gulpfile.js",
29
- "build:types": "node cli/bin/pbts --main --global protobuf --out index.d.ts src/",
29
+ "build:types": "node cli/bin/pbts --main --global protobuf --out index.d.ts src/ && node cli/bin/pbts --main --import \"\\$protobuf=..\" --out ext/descriptor.generated.d.ts ext/descriptor.js && node cli/bin/pbts --main --out ext/textformat.generated.d.ts ext/textformat.js",
30
30
  "coverage": "npm run coverage:test && npm run coverage:report",
31
31
  "coverage:test": "nyc --silent tape -r ./lib/tape-adapter tests/*.js tests/node/*.js",
32
32
  "coverage:report": "nyc report --reporter=lcov --reporter=text",
@@ -42,15 +42,15 @@
42
42
  "prof": "node bench/prof",
43
43
  "test": "npm run test:sources && npm run test:types",
44
44
  "test:sources": "tape -r ./lib/tape-adapter tests/*.js tests/node/*.js",
45
- "test:types": "tsc tests/comp_typescript.ts --types node --lib es2015 --esModuleInterop --strictNullChecks --experimentalDecorators --emitDecoratorMetadata && tsc tests/comp_descriptor.ts --types node --lib es2015 --esModuleInterop --noEmit --strictNullChecks && tsc tests/comp_textformat.ts --types node --lib es2015 --esModuleInterop --noEmit --strictNullChecks && tsc tests/data/test.js.ts --types node --lib es2015 --esModuleInterop --noEmit --strictNullChecks && tsc tests/data/*.ts --types node --lib es2015 --esModuleInterop --noEmit --strictNullChecks",
45
+ "test:types": "tsc tests/comp_typescript.ts --target es2019 --module commonjs --types node --lib es2019 --esModuleInterop --strictNullChecks --experimentalDecorators --emitDecoratorMetadata && tsc -p tsconfig.test-types.json",
46
46
  "make": "npm run lint:sources && npm run build && npm run lint:types && node ./scripts/gentests.js && npm test"
47
47
  },
48
48
  "dependencies": {
49
- "@types/node": ">=13.7.0",
50
49
  "long": "^5.0.0"
51
50
  },
52
51
  "devDependencies": {
53
52
  "@eslint/js": "^10.0.0",
53
+ "@types/node": ">=13.7.0",
54
54
  "browserify": "^17.0.0",
55
55
  "browserify-wrap": "^1.0.2",
56
56
  "bundle-collapser": "^1.3.0",
package/src/enum.js CHANGED
@@ -17,7 +17,7 @@ var Namespace = require("./namespace"),
17
17
  * @param {Object.<string,number>} [values] Enum values as an object, by name
18
18
  * @param {Object.<string,*>} [options] Declared options
19
19
  * @param {string} [comment] The comment for this enum
20
- * @param {Object.<string,string>} [comments] The value comments for this enum
20
+ * @param {Object.<string,string|null>} [comments] The value comments for this enum
21
21
  * @param {Object.<string,Object<string,*>>|undefined} [valuesOptions] The value options for this enum
22
22
  */
23
23
  function Enum(name, values, options, comment, comments, valuesOptions) {
@@ -46,7 +46,7 @@ function Enum(name, values, options, comment, comments, valuesOptions) {
46
46
 
47
47
  /**
48
48
  * Value comment texts, if any.
49
- * @type {Object.<string,string>}
49
+ * @type {Object.<string,string|null>}
50
50
  */
51
51
  this.comments = comments || {};
52
52
 
@@ -96,8 +96,13 @@ Enum.prototype._resolveFeatures = function _resolveFeatures(edition) {
96
96
  /**
97
97
  * Enum descriptor.
98
98
  * @interface IEnum
99
+ * @property {string} [edition] Edition
99
100
  * @property {Object.<string,number>} values Enum values
100
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
101
106
  */
102
107
 
103
108
  /**
@@ -108,7 +113,7 @@ Enum.prototype._resolveFeatures = function _resolveFeatures(edition) {
108
113
  * @throws {TypeError} If arguments are invalid
109
114
  */
110
115
  Enum.fromJSON = function fromJSON(name, json) {
111
- var enm = new Enum(name, json.values, json.options, json.comment, json.comments);
116
+ var enm = new Enum(name, json.values, json.options, json.comment, json.comments, json.valuesOptions);
112
117
  enm.reserved = json.reserved;
113
118
  if (json.edition)
114
119
  enm._edition = json.edition;
package/src/field.js CHANGED
@@ -259,10 +259,12 @@ Field.prototype.setOption = function setOption(name, value, ifNotSet) {
259
259
  /**
260
260
  * Field descriptor.
261
261
  * @interface IField
262
+ * @property {string} [edition] Edition
262
263
  * @property {string} [rule="optional"] Field rule
263
264
  * @property {string} type Field type
264
265
  * @property {number} id Field id
265
266
  * @property {Object.<string,*>} [options] Field options
267
+ * @property {string|null} [comment] Field comment
266
268
  */
267
269
 
268
270
  /**
package/src/message.js CHANGED
@@ -14,12 +14,9 @@ var util = require("./util/minimal");
14
14
  function Message(properties) {
15
15
  // not used internally
16
16
  if (properties)
17
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) {
18
- var key = keys[i];
19
- if (key === "__proto__")
20
- continue;
21
- this[key] = properties[key];
22
- }
17
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
18
+ if (properties[keys[i]] != null && keys[i] !== "__proto__")
19
+ this[keys[i]] = properties[keys[i]];
23
20
  }
24
21
 
25
22
  /**
package/src/method.js CHANGED
@@ -111,7 +111,7 @@ function Method(name, type, requestType, responseType, requestStream, responseSt
111
111
  * @property {boolean} [requestStream=false] Whether requests are streamed
112
112
  * @property {boolean} [responseStream=false] Whether responses are streamed
113
113
  * @property {Object.<string,*>} [options] Method options
114
- * @property {string} comment Method comments
114
+ * @property {string|null} [comment] Method comment
115
115
  * @property {Array.<Object.<string,*>>} [parsedOptions] Method options properly parsed into objects
116
116
  */
117
117
 
package/src/object.js CHANGED
@@ -142,7 +142,6 @@ Object.defineProperties(ReflectionObject.prototype, {
142
142
  /**
143
143
  * Converts this reflection object to its descriptor representation.
144
144
  * @returns {Object.<string,*>} Descriptor
145
- * @abstract
146
145
  */
147
146
  ReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {
148
147
  throw Error(); // not implemented, shouldn't happen
package/src/oneof.js CHANGED
@@ -54,6 +54,7 @@ function OneOf(name, fieldNames, options, comment) {
54
54
  * @interface IOneOf
55
55
  * @property {Array.<string>} oneof Oneof field names
56
56
  * @property {Object.<string,*>} [options] Oneof options
57
+ * @property {string|null} [comment] Oneof comment
57
58
  */
58
59
 
59
60
  /**
package/src/service.js CHANGED
@@ -41,7 +41,9 @@ function Service(name, options) {
41
41
  * Service descriptor.
42
42
  * @interface IService
43
43
  * @extends INamespace
44
+ * @property {string} [edition] Edition
44
45
  * @property {Object.<string,IMethod>} methods Method descriptors
46
+ * @property {string|null} [comment] Service comment
45
47
  */
46
48
 
47
49
  /**
package/src/type.js CHANGED
@@ -226,11 +226,13 @@ function clearCache(type) {
226
226
  * Message type descriptor.
227
227
  * @interface IType
228
228
  * @extends INamespace
229
+ * @property {string} [edition] Edition
229
230
  * @property {Object.<string,IOneOf>} [oneofs] Oneof descriptors
230
231
  * @property {Object.<string,IField>} fields Field descriptors
231
232
  * @property {number[][]} [extensions] Extension ranges
232
233
  * @property {Array.<number[]|string>} [reserved] Reserved ranges
233
234
  * @property {boolean} [group=false] Whether a legacy group or not
235
+ * @property {string|null} [comment] Message type comment
234
236
  */
235
237
 
236
238
  /**
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /* eslint-disable no-unused-vars */
3
+
4
+ // Global TypeScript helper typedefs. The unused vars anchor these typedefs so
5
+ // both TypeScript checkJs and pbts can discover them from this script file.
6
+
7
+ /**
8
+ * Constructor type.
9
+ * @template T
10
+ * @typedef {Function & { new(...params: any[]): T; prototype: T }} Constructor
11
+ */
12
+ var Constructor;
13
+
14
+ /**
15
+ * Properties type.
16
+ * @template T
17
+ * @typedef {{ [P in keyof T]?: T[P] }} Properties
18
+ */
19
+ var Properties;
package/tsconfig.json CHANGED
@@ -1,8 +1,6 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "target": "ES5",
4
- "experimentalDecorators": true,
5
- "emitDecoratorMetadata": true,
6
- "esModuleInterop": true
3
+ "target": "es2019",
4
+ "module": "commonjs"
7
5
  }
8
6
  }
@@ -1,15 +0,0 @@
1
- /**
2
- * Constructor type.
3
- * @interface Constructor
4
- * @extends Function
5
- * @template T
6
- * @tstype new(...params: any[]): T; prototype: T;
7
- */
8
-
9
- /**
10
- * Properties type.
11
- * @typedef Properties
12
- * @template T
13
- * @type {Object.<string,*>}
14
- * @tstype { [P in keyof T]?: T[P] }
15
- */