protobufjs 8.6.2 → 8.6.4

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 (105) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +441 -441
  3. package/dist/light/protobuf.js +8582 -8454
  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 +3071 -2999
  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 +10486 -10358
  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 -87
  22. package/ext/descriptor.js +1354 -1354
  23. package/ext/protojson.LICENSE +201 -201
  24. package/ext/protojson.d.ts +20 -20
  25. package/ext/protojson.js +945 -925
  26. package/ext/textformat.d.ts +19 -19
  27. package/ext/textformat.js +1256 -1256
  28. package/google/LICENSE +27 -27
  29. package/google/README.md +1 -1
  30. package/google/api/annotations.json +82 -82
  31. package/google/api/annotations.proto +10 -10
  32. package/google/api/http.json +85 -85
  33. package/google/api/http.proto +30 -30
  34. package/google/protobuf/api.json +117 -117
  35. package/google/protobuf/api.proto +33 -33
  36. package/google/protobuf/compiler/plugin.json +126 -126
  37. package/google/protobuf/compiler/plugin.proto +47 -47
  38. package/google/protobuf/descriptor.json +1381 -1381
  39. package/google/protobuf/descriptor.proto +534 -534
  40. package/google/protobuf/source_context.json +19 -19
  41. package/google/protobuf/source_context.proto +7 -7
  42. package/google/protobuf/type.json +201 -201
  43. package/google/protobuf/type.proto +89 -89
  44. package/index.d.ts +30 -0
  45. package/index.js +4 -4
  46. package/light.d.ts +2 -2
  47. package/light.js +3 -3
  48. package/minimal.d.ts +2 -2
  49. package/minimal.js +4 -4
  50. package/package.json +93 -93
  51. package/src/common.js +399 -399
  52. package/src/converter.js +344 -344
  53. package/src/decoder.js +214 -208
  54. package/src/encoder.js +111 -111
  55. package/src/enum.js +231 -231
  56. package/src/field.js +497 -497
  57. package/src/index-light.js +104 -104
  58. package/src/index-minimal.js +35 -36
  59. package/src/index.js +12 -12
  60. package/src/mapfield.js +136 -136
  61. package/src/message.js +137 -137
  62. package/src/method.js +175 -175
  63. package/src/namespace.js +566 -565
  64. package/src/object.js +382 -382
  65. package/src/oneof.js +225 -225
  66. package/src/parse.js +1068 -1068
  67. package/src/reader.js +558 -543
  68. package/src/reader_buffer.js +72 -72
  69. package/src/root.js +416 -416
  70. package/src/roots.js +18 -18
  71. package/src/rpc/service.js +148 -148
  72. package/src/rpc.js +36 -36
  73. package/src/service.js +198 -198
  74. package/src/tokenize.js +421 -421
  75. package/src/type.js +654 -655
  76. package/src/types.js +196 -196
  77. package/src/typescript.js +25 -25
  78. package/src/util/aspromise.d.ts +13 -13
  79. package/src/util/aspromise.js +52 -52
  80. package/src/util/base64.d.ts +32 -32
  81. package/src/util/base64.js +146 -146
  82. package/src/util/codegen.d.ts +31 -31
  83. package/src/util/codegen.js +113 -113
  84. package/src/util/eventemitter.d.ts +45 -45
  85. package/src/util/eventemitter.js +86 -86
  86. package/src/util/fetch.d.ts +56 -56
  87. package/src/util/fetch.js +112 -112
  88. package/src/util/float.d.ts +83 -83
  89. package/src/util/float.js +335 -335
  90. package/src/util/fs.js +11 -11
  91. package/src/util/longbits.js +200 -200
  92. package/src/util/minimal.js +515 -515
  93. package/src/util/path.d.ts +22 -22
  94. package/src/util/path.js +100 -72
  95. package/src/util/patterns.js +7 -7
  96. package/src/util/pool.d.ts +32 -32
  97. package/src/util/pool.js +48 -48
  98. package/src/util/utf8.d.ts +24 -24
  99. package/src/util/utf8.js +188 -130
  100. package/src/util.js +264 -242
  101. package/src/verifier.js +180 -180
  102. package/src/wrappers.js +106 -106
  103. package/src/writer.js +495 -495
  104. package/src/writer_buffer.js +102 -102
  105. package/tsconfig.json +6 -6
package/src/decoder.js CHANGED
@@ -1,208 +1,214 @@
1
- "use strict";
2
- module.exports = decoder;
3
-
4
- var Enum = require("./enum"),
5
- types = require("./types"),
6
- util = require("./util");
7
-
8
- function missing(field) {
9
- return "missing required '" + field.name + "'";
10
- }
11
-
12
- /**
13
- * Generates a decoder specific to the specified message type.
14
- * @param {Type} mtype Message type
15
- * @returns {Codegen} Codegen instance
16
- */
17
- function decoder(mtype) {
18
- /* eslint-disable no-unexpected-multiline */
19
- var hasMapField = false,
20
- hasImplicitPresenceField = false,
21
- i = 0;
22
- for (; i < mtype.fieldsArray.length; ++i) {
23
- var pfield = mtype._fieldsArray[i];
24
- if (pfield.map)
25
- hasMapField = true;
26
- if (!pfield.repeated && !pfield.map && !pfield.hasPresence)
27
- hasImplicitPresenceField = true;
28
- }
29
- var gen = util.codegen(["r", "l", "z", "q", "g"])
30
- ("if(!(r instanceof Reader))")
31
- ("r=Reader.create(r)")
32
- ("if(q===undefined)q=0")
33
- ("if(q>Reader.recursionLimit)")
34
- ("throw Error(\"max depth exceeded\")")
35
- ("var c=l===undefined?r.len:r.pos+l,m=g||new C" + (hasMapField ? ",k,v" : hasImplicitPresenceField ? ",v" : ""))
36
- ("while(r.pos<c){")
37
- ("var s=r.pos")
38
- ("var t=r.tag()")
39
- ("if(t===z){")
40
- ("z=undefined")
41
- ("break")
42
- ("}");
43
- if (mtype.fieldsArray.length) gen
44
- ("var u=t&7")
45
- ("switch(t>>>=3){");
46
- for (i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {
47
- var field = mtype._fieldsArray[i].resolve(),
48
- type = field.resolvedType instanceof Enum ? "int32" : field.type,
49
- ref = "m" + util.safeProp(field.name);
50
-
51
- // Map fields
52
- if (field.map) {
53
- gen
54
- ("case %i:{", field.id)
55
- ("if(u!==2)")
56
- ("break")
57
- ("if(%s===util.emptyObject)", ref)
58
- ("%s={}", ref)
59
- ("var c2=r.uint32()+r.pos");
60
-
61
- if (types.defaults[field.keyType] !== undefined) gen
62
- ("k=%j", types.defaults[field.keyType]);
63
- else gen
64
- ("k=null");
65
-
66
- if (types.long[type] !== undefined) gen
67
- ("v=util.Long?util.Long.fromNumber(0,%j):0", type === "uint64" || type === "fixed64");
68
- else if (types.defaults[type] !== undefined) gen
69
- ("v=%j", types.defaults[type]);
70
- else gen
71
- ("v=null");
72
-
73
- gen
74
- ("while(r.pos<c2){")
75
- ("var t2=r.tag()")
76
- ("u=t2&7")
77
- ("switch(t2>>>=3){")
78
- ("case 1:")
79
- ("if(u!==%i)", types.mapKey[field.keyType])
80
- ("break")
81
- ("k=r.%s()", field.keyType)
82
- ("continue")
83
- ("case 2:")
84
- ("if(u!==%i)", types.basic[type] === undefined ? 2 : types.basic[type])
85
- ("break");
86
-
87
- if (types.basic[type] === undefined) gen
88
- ("v=types[%i].decode(r,r.uint32(),undefined,q+1)", i); // can't be groups
89
- else gen
90
- ("v=r.%s()", type);
91
-
92
- gen
93
- ("continue")
94
- ("}")
95
- ("r.skipType(u,q,t2)")
96
- ("}");
97
-
98
- var val = types.basic[type] === undefined ? "v||new types[" + i + "].ctor" : "v";
99
- if (types.long[field.keyType] !== undefined) gen
100
- ("%s[typeof k===\"object\"?util.longToHash(k):k]=%s", ref, val);
101
- else {
102
- if (field.keyType === "string") gen
103
- ("if(k===\"__proto__\")")
104
- ("util.makeProp(%s,k)", ref);
105
- gen
106
- ("%s[k]=%s", ref, val);
107
- }
108
-
109
- // Repeated fields
110
- } else if (field.repeated) { gen
111
- ("case %i:", field.id)
112
- ("{");
113
-
114
- // Packable (always check for forward and backward compatiblity)
115
- if (types.packed[type] !== undefined) gen
116
- ("if(u===2){")
117
- ("if(!(%s&&%s.length))", ref, ref)
118
- ("%s=[]", ref)
119
- ("var c2=r.uint32()+r.pos")
120
- ("while(r.pos<c2)")
121
- ("%s.push(r.%s())", ref, type)
122
- ("continue")
123
- ("}");
124
-
125
- // Non-packed
126
- gen
127
- ("if(u!==%i)", types.basic[type] === undefined ? field.delimited ? 3 : 2 : types.basic[type])
128
- ("break")
129
- ("if(!(%s&&%s.length))", ref, ref)
130
- ("%s=[]", ref);
131
- if (types.basic[type] === undefined) {
132
- if (field.delimited) gen
133
- ("%s.push(types[%i].decode(r,undefined,%i,q+1))", ref, i, field.id * 8 + 4);
134
- else gen
135
- ("%s.push(types[%i].decode(r,r.uint32(),undefined,q+1))", ref, i);
136
- } else gen
137
- ("%s.push(r.%s())", ref, type);
138
-
139
- // Non-repeated
140
- } else if (types.basic[type] === undefined) {
141
- gen
142
- ("case %i:{", field.id)
143
- ("if(u!==%i)", field.delimited ? 3 : 2)
144
- ("break");
145
- if (field.delimited) gen
146
- ("%s=types[%i].decode(r,undefined,%i,q+1,%s)", ref, i, field.id * 8 + 4, ref);
147
- else gen
148
- ("%s=types[%i].decode(r,r.uint32(),undefined,q+1,%s)", ref, i, ref);
149
- }
150
- else if (field.hasPresence) {
151
- gen
152
- ("case %i:{", field.id)
153
- ("if(u!==%i)", types.basic[type])
154
- ("break")
155
- ("%s=r.%s()", ref, type);
156
- } else {
157
- gen
158
- ("case %i:{", field.id)
159
- ("if(u!==%i)", types.basic[type])
160
- ("break");
161
- if (field.resolvedType instanceof Enum && field.typeDefault !== 0) gen
162
- // TODO: Protoc rejects open enums whose first value is not zero.
163
- // We should do the same, but for v8 this would be a regression.
164
- ("if((v=r.%s())!==%j)", type, field.typeDefault);
165
- else if (type === "string" || type === "bytes") gen
166
- ("if((v=r.%s()).length)", type);
167
- else if (types.long[type] !== undefined) gen
168
- ("if(typeof(v=r.%s())===\"object\"?v.low||v.high:v!==0)", type);
169
- else if (type === "double" || type === "float") gen
170
- ("if((v=r.%s())!==0)", type);
171
- else gen
172
- ("if(v=r.%s())", type);
173
- gen
174
- ("%s=v", ref)
175
- ("else")
176
- ("delete %s", ref); // rare/odd case: later default clears earlier non-default
177
- }
178
- if (field.partOf) gen
179
- ("m%s=%j", util.safeProp(field.partOf.name), field.name);
180
- gen
181
- ("continue")
182
- ("}");
183
- }
184
- if (i) gen
185
- ("}");
186
- // Unknown fields
187
- gen
188
- ("r.skipType(%s,q,t)", i ? "u" : "t&7")
189
- ("if(!r.discardUnknown){")
190
- ("util.makeProp(m,\"$unknowns\",false);")
191
- ("(m.$unknowns||(m.$unknowns=[])).push(r.raw(s,r.pos))")
192
- ("}")
193
- ("}")
194
- ("if(z!==undefined)")
195
- ("throw Error(\"missing end group\")");
196
-
197
- // Field presence
198
- for (i = 0; i < mtype._fieldsArray.length; ++i) {
199
- var rfield = mtype._fieldsArray[i];
200
- if (rfield.required) gen
201
- ("if(!Object.hasOwnProperty.call(m,%j))", rfield.name)
202
- ("throw util.ProtocolError(%j,{instance:m})", missing(rfield));
203
- }
204
-
205
- return gen
206
- ("return m");
207
- /* eslint-enable no-unexpected-multiline */
208
- }
1
+ "use strict";
2
+ module.exports = decoder;
3
+
4
+ var Enum = require("./enum"),
5
+ types = require("./types"),
6
+ util = require("./util");
7
+
8
+ function missing(field) {
9
+ return "missing required '" + field.name + "'";
10
+ }
11
+
12
+ function stringMethod(field) {
13
+ return field._features.utf8_validation === "VERIFY" ? "stringVerify" : "string";
14
+ }
15
+
16
+ /**
17
+ * Generates a decoder specific to the specified message type.
18
+ * @param {Type} mtype Message type
19
+ * @returns {Codegen} Codegen instance
20
+ */
21
+ function decoder(mtype) {
22
+ /* eslint-disable no-unexpected-multiline */
23
+ var hasMapField = false,
24
+ hasImplicitPresenceField = false,
25
+ i = 0;
26
+ for (; i < mtype.fieldsArray.length; ++i) {
27
+ var pfield = mtype._fieldsArray[i];
28
+ if (pfield.map)
29
+ hasMapField = true;
30
+ if (!pfield.repeated && !pfield.map && !pfield.hasPresence)
31
+ hasImplicitPresenceField = true;
32
+ }
33
+ var gen = util.codegen(["r", "l", "z", "q", "g"])
34
+ ("if(!(r instanceof Reader))")
35
+ ("r=Reader.create(r)")
36
+ ("if(q===undefined)q=0")
37
+ ("if(q>Reader.recursionLimit)")
38
+ ("throw Error(\"max depth exceeded\")")
39
+ ("var c=l===undefined?r.len:r.pos+l,m=g||new C" + (hasMapField ? ",k,v" : hasImplicitPresenceField ? ",v" : ""))
40
+ ("while(r.pos<c){")
41
+ ("var s=r.pos")
42
+ ("var t=r.tag()")
43
+ ("if(t===z){")
44
+ ("z=undefined")
45
+ ("break")
46
+ ("}");
47
+ if (mtype.fieldsArray.length) gen
48
+ ("var u=t&7")
49
+ ("switch(t>>>=3){");
50
+ for (i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {
51
+ var field = mtype._fieldsArray[i].resolve(),
52
+ type = field.resolvedType instanceof Enum ? "int32" : field.type,
53
+ ref = "m" + util.safeProp(field.name);
54
+
55
+ // Map fields
56
+ if (field.map) {
57
+ gen
58
+ ("case %i:{", field.id)
59
+ ("if(u!==2)")
60
+ ("break")
61
+ ("if(%s===util.emptyObject)", ref)
62
+ ("%s={}", ref)
63
+ ("var c2=r.uint32()+r.pos");
64
+
65
+ if (types.defaults[field.keyType] !== undefined) gen
66
+ ("k=%j", types.defaults[field.keyType]);
67
+ else gen
68
+ ("k=null");
69
+
70
+ if (types.long[type] !== undefined) gen
71
+ ("v=util.Long?util.Long.fromNumber(0,%j):0", type === "uint64" || type === "fixed64");
72
+ else if (types.defaults[type] !== undefined) gen
73
+ ("v=%j", types.defaults[type]);
74
+ else gen
75
+ ("v=null");
76
+
77
+ gen
78
+ ("while(r.pos<c2){")
79
+ ("var t2=r.tag()")
80
+ ("u=t2&7")
81
+ ("switch(t2>>>=3){")
82
+ ("case 1:")
83
+ ("if(u!==%i)", types.mapKey[field.keyType])
84
+ ("break")
85
+ ("k=r.%s()", field.keyType === "string" ? stringMethod(field) : field.keyType)
86
+ ("continue")
87
+ ("case 2:")
88
+ ("if(u!==%i)", types.basic[type] === undefined ? 2 : types.basic[type])
89
+ ("break");
90
+
91
+ if (types.basic[type] === undefined) gen
92
+ ("v=types[%i].decode(r,r.uint32(),undefined,q+1)", i); // can't be groups
93
+ else gen
94
+ ("v=r.%s()", type === "string" ? stringMethod(field) : type);
95
+
96
+ gen
97
+ ("continue")
98
+ ("}")
99
+ ("r.skipType(u,q,t2)")
100
+ ("}");
101
+
102
+ var val = types.basic[type] === undefined ? "v||new types[" + i + "].ctor" : "v";
103
+ if (types.long[field.keyType] !== undefined) gen
104
+ ("%s[typeof k===\"object\"?util.longToHash(k):k]=%s", ref, val);
105
+ else {
106
+ if (field.keyType === "string") gen
107
+ ("if(k===\"__proto__\")")
108
+ ("util.makeProp(%s,k)", ref);
109
+ gen
110
+ ("%s[k]=%s", ref, val);
111
+ }
112
+
113
+ // Repeated fields
114
+ } else if (field.repeated) { gen
115
+ ("case %i:", field.id)
116
+ ("{");
117
+
118
+ // Packable (always check for forward and backward compatiblity)
119
+ if (types.packed[type] !== undefined) gen
120
+ ("if(u===2){")
121
+ ("if(!(%s&&%s.length))", ref, ref)
122
+ ("%s=[]", ref)
123
+ ("var c2=r.uint32()+r.pos")
124
+ ("while(r.pos<c2)")
125
+ ("%s.push(r.%s())", ref, type)
126
+ ("continue")
127
+ ("}");
128
+
129
+ // Non-packed
130
+ gen
131
+ ("if(u!==%i)", types.basic[type] === undefined ? field.delimited ? 3 : 2 : types.basic[type])
132
+ ("break")
133
+ ("if(!(%s&&%s.length))", ref, ref)
134
+ ("%s=[]", ref);
135
+ if (types.basic[type] === undefined) {
136
+ if (field.delimited) gen
137
+ ("%s.push(types[%i].decode(r,undefined,%i,q+1))", ref, i, field.id * 8 + 4);
138
+ else gen
139
+ ("%s.push(types[%i].decode(r,r.uint32(),undefined,q+1))", ref, i);
140
+ } else gen
141
+ ("%s.push(r.%s())", ref, type === "string" ? stringMethod(field) : type);
142
+
143
+ // Non-repeated
144
+ } else if (types.basic[type] === undefined) {
145
+ gen
146
+ ("case %i:{", field.id)
147
+ ("if(u!==%i)", field.delimited ? 3 : 2)
148
+ ("break");
149
+ if (field.delimited) gen
150
+ ("%s=types[%i].decode(r,undefined,%i,q+1,%s)", ref, i, field.id * 8 + 4, ref);
151
+ else gen
152
+ ("%s=types[%i].decode(r,r.uint32(),undefined,q+1,%s)", ref, i, ref);
153
+ }
154
+ else if (field.hasPresence) {
155
+ gen
156
+ ("case %i:{", field.id)
157
+ ("if(u!==%i)", types.basic[type])
158
+ ("break")
159
+ ("%s=r.%s()", ref, type === "string" ? stringMethod(field) : type);
160
+ } else {
161
+ gen
162
+ ("case %i:{", field.id)
163
+ ("if(u!==%i)", types.basic[type])
164
+ ("break");
165
+ if (field.resolvedType instanceof Enum && field.typeDefault !== 0) gen
166
+ // TODO: Protoc rejects open enums whose first value is not zero.
167
+ // We should do the same, but for v8 this would be a regression.
168
+ ("if((v=r.%s())!==%j)", type, field.typeDefault);
169
+ else if (type === "string") gen
170
+ ("if((v=r.%s()).length)", stringMethod(field));
171
+ else if (type === "bytes") gen
172
+ ("if((v=r.%s()).length)", type);
173
+ else if (types.long[type] !== undefined) gen
174
+ ("if(typeof(v=r.%s())===\"object\"?v.low||v.high:v!==0)", type);
175
+ else if (type === "double" || type === "float") gen
176
+ ("if((v=r.%s())!==0)", type);
177
+ else gen
178
+ ("if(v=r.%s())", type);
179
+ gen
180
+ ("%s=v", ref)
181
+ ("else")
182
+ ("delete %s", ref); // rare/odd case: later default clears earlier non-default
183
+ }
184
+ if (field.partOf) gen
185
+ ("m%s=%j", util.safeProp(field.partOf.name), field.name);
186
+ gen
187
+ ("continue")
188
+ ("}");
189
+ }
190
+ if (i) gen
191
+ ("}");
192
+ // Unknown fields
193
+ gen
194
+ ("r.skipType(%s,q,t)", i ? "u" : "t&7")
195
+ ("if(!r.discardUnknown){")
196
+ ("util.makeProp(m,\"$unknowns\",false);")
197
+ ("(m.$unknowns||(m.$unknowns=[])).push(r.raw(s,r.pos))")
198
+ ("}")
199
+ ("}")
200
+ ("if(z!==undefined)")
201
+ ("throw Error(\"missing end group\")");
202
+
203
+ // Field presence
204
+ for (i = 0; i < mtype._fieldsArray.length; ++i) {
205
+ var rfield = mtype._fieldsArray[i];
206
+ if (rfield.required) gen
207
+ ("if(!Object.hasOwnProperty.call(m,%j))", rfield.name)
208
+ ("throw util.ProtocolError(%j,{instance:m})", missing(rfield));
209
+ }
210
+
211
+ return gen
212
+ ("return m");
213
+ /* eslint-enable no-unexpected-multiline */
214
+ }