@bufbuild/protobuf 2.0.0-alpha.3 → 2.0.0-beta.1
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/dist/cjs/clone.d.ts +1 -1
- package/dist/cjs/clone.js +9 -17
- package/dist/cjs/codegenv1/embed.js +25 -25
- package/dist/cjs/codegenv1/enum.d.ts +2 -1
- package/dist/cjs/codegenv1/file.js +1 -1
- package/dist/cjs/codegenv1/message.d.ts +2 -1
- package/dist/cjs/codegenv1/scalar.d.ts +4 -0
- package/dist/cjs/codegenv1/scalar.js +30 -1
- package/dist/cjs/codegenv1/symbols.d.ts +10 -0
- package/dist/cjs/codegenv1/symbols.js +2 -0
- package/dist/cjs/codegenv1/types.d.ts +7 -5
- package/dist/cjs/codegenv1/types.js +2 -1
- package/dist/cjs/create.d.ts +1 -1
- package/dist/cjs/create.js +47 -20
- package/dist/cjs/equals.d.ts +1 -1
- package/dist/cjs/equals.js +8 -15
- package/dist/cjs/from-binary.d.ts +2 -2
- package/dist/cjs/from-binary.js +17 -14
- package/dist/cjs/from-json.d.ts +14 -6
- package/dist/cjs/from-json.js +51 -55
- package/dist/cjs/is-message.d.ts +1 -1
- package/dist/cjs/is-message.js +3 -3
- package/dist/cjs/reflect/guard.js +4 -4
- package/dist/cjs/reflect/reflect-types.d.ts +13 -80
- package/dist/cjs/reflect/reflect.d.ts +29 -18
- package/dist/cjs/reflect/reflect.js +183 -78
- package/dist/cjs/reflect/scalar.d.ts +1 -1
- package/dist/cjs/reflect/unsafe.d.ts +0 -16
- package/dist/cjs/reflect/unsafe.js +1 -19
- package/dist/cjs/registry.d.ts +18 -2
- package/dist/cjs/registry.js +62 -60
- package/dist/cjs/to-binary.d.ts +1 -1
- package/dist/cjs/to-binary.js +2 -2
- package/dist/cjs/to-json.d.ts +14 -4
- package/dist/cjs/to-json.js +26 -13
- package/dist/cjs/types.d.ts +9 -0
- package/dist/cjs/wire/binary-encoding.js +30 -9
- package/dist/cjs/wkt/any.d.ts +7 -7
- package/dist/cjs/wkt/any.js +5 -5
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.d.ts +9 -3
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +88 -9
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.js +8 -8
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +107 -11
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +11 -11
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +1005 -92
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +86 -86
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.d.ts +12 -3
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.d.ts +25 -8
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +9 -9
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.d.ts +165 -16
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.js +15 -15
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +55 -19
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +20 -20
- package/dist/cjs/wkt/timestamp.js +1 -2
- package/dist/esm/clone.d.ts +1 -1
- package/dist/esm/clone.js +9 -17
- package/dist/esm/codegenv1/embed.js +26 -26
- package/dist/esm/codegenv1/enum.d.ts +2 -1
- package/dist/esm/codegenv1/file.js +2 -2
- package/dist/esm/codegenv1/message.d.ts +2 -1
- package/dist/esm/codegenv1/scalar.d.ts +4 -0
- package/dist/esm/codegenv1/scalar.js +28 -0
- package/dist/esm/codegenv1/symbols.d.ts +10 -0
- package/dist/esm/codegenv1/symbols.js +2 -0
- package/dist/esm/codegenv1/types.d.ts +7 -5
- package/dist/esm/codegenv1/types.js +2 -1
- package/dist/esm/create.d.ts +1 -1
- package/dist/esm/create.js +47 -20
- package/dist/esm/equals.d.ts +1 -1
- package/dist/esm/equals.js +8 -15
- package/dist/esm/from-binary.d.ts +2 -2
- package/dist/esm/from-binary.js +17 -14
- package/dist/esm/from-json.d.ts +14 -6
- package/dist/esm/from-json.js +49 -55
- package/dist/esm/is-message.d.ts +1 -1
- package/dist/esm/is-message.js +3 -3
- package/dist/esm/reflect/guard.js +4 -4
- package/dist/esm/reflect/reflect-types.d.ts +13 -80
- package/dist/esm/reflect/reflect-types.js +0 -1
- package/dist/esm/reflect/reflect.d.ts +29 -18
- package/dist/esm/reflect/reflect.js +185 -80
- package/dist/esm/reflect/scalar.d.ts +1 -1
- package/dist/esm/reflect/unsafe.d.ts +0 -16
- package/dist/esm/reflect/unsafe.js +0 -16
- package/dist/esm/registry.d.ts +18 -2
- package/dist/esm/registry.js +60 -59
- package/dist/esm/to-binary.d.ts +1 -1
- package/dist/esm/to-binary.js +2 -2
- package/dist/esm/to-json.d.ts +14 -4
- package/dist/esm/to-json.js +24 -12
- package/dist/esm/types.d.ts +9 -0
- package/dist/esm/wire/binary-encoding.js +30 -9
- package/dist/esm/wkt/any.d.ts +7 -7
- package/dist/esm/wkt/any.js +6 -6
- package/dist/esm/wkt/gen/google/protobuf/any_pb.d.ts +9 -3
- package/dist/esm/wkt/gen/google/protobuf/any_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +88 -9
- package/dist/esm/wkt/gen/google/protobuf/api_pb.js +9 -9
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +107 -11
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +11 -11
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +1005 -92
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +84 -84
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +12 -3
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.d.ts +25 -8
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.js +8 -8
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +165 -16
- package/dist/esm/wkt/gen/google/protobuf/type_pb.js +16 -16
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +55 -19
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +19 -19
- package/dist/esm/wkt/timestamp.js +2 -3
- package/package.json +2 -2
|
@@ -27,9 +27,15 @@ const guard_js_1 = require("./guard.js");
|
|
|
27
27
|
* Create a ReflectMessage.
|
|
28
28
|
*/
|
|
29
29
|
function reflect(messageDesc, message,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
/**
|
|
31
|
+
* By default, field values are validated when setting them. For example,
|
|
32
|
+
* a value for an uint32 field must be a ECMAScript Number >= 0.
|
|
33
|
+
*
|
|
34
|
+
* When field values are trusted, performance can be improved by disabling
|
|
35
|
+
* checks.
|
|
36
|
+
*/
|
|
37
|
+
check = true) {
|
|
38
|
+
return new ReflectMessageImpl(messageDesc, message, check);
|
|
33
39
|
}
|
|
34
40
|
exports.reflect = reflect;
|
|
35
41
|
class ReflectMessageImpl {
|
|
@@ -39,9 +45,9 @@ class ReflectMessageImpl {
|
|
|
39
45
|
.concat()
|
|
40
46
|
.sort((a, b) => a.number - b.number)));
|
|
41
47
|
}
|
|
42
|
-
constructor(messageDesc, message,
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
constructor(messageDesc, message, check = true) {
|
|
49
|
+
this.lists = new Map();
|
|
50
|
+
this.maps = new Map();
|
|
45
51
|
this.check = check;
|
|
46
52
|
this.desc = messageDesc;
|
|
47
53
|
this.message = this[unsafe_js_1.unsafeLocal] = message !== null && message !== void 0 ? message : (0, create_js_1.create)(messageDesc);
|
|
@@ -69,24 +75,24 @@ class ReflectMessageImpl {
|
|
|
69
75
|
}
|
|
70
76
|
get(field) {
|
|
71
77
|
assertOwn(this.message, field);
|
|
72
|
-
|
|
78
|
+
const value = (0, unsafe_js_1.unsafeGet)(this.message, field);
|
|
73
79
|
switch (field.fieldKind) {
|
|
74
80
|
case "list":
|
|
75
|
-
|
|
81
|
+
// eslint-disable-next-line no-case-declarations
|
|
82
|
+
let list = this.lists.get(field);
|
|
83
|
+
if (!list || list[unsafe_js_1.unsafeLocal] !== value) {
|
|
84
|
+
this.lists.set(field, (list = new ReflectListImpl(field, value, this.check)));
|
|
85
|
+
}
|
|
86
|
+
return list;
|
|
76
87
|
case "map":
|
|
77
|
-
//
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (value !== undefined &&
|
|
82
|
-
!field.oneof &&
|
|
83
|
-
(0, wrappers_js_1.isWrapperDesc)(field.message)) {
|
|
84
|
-
value = {
|
|
85
|
-
$typeName: field.message.typeName,
|
|
86
|
-
value: longToReflect(field.message.fields[0], value),
|
|
87
|
-
};
|
|
88
|
+
// eslint-disable-next-line no-case-declarations
|
|
89
|
+
let map = this.maps.get(field);
|
|
90
|
+
if (!map || map[unsafe_js_1.unsafeLocal] !== value) {
|
|
91
|
+
this.maps.set(field, (map = new ReflectMapImpl(field, value, this.check)));
|
|
88
92
|
}
|
|
89
|
-
return
|
|
93
|
+
return map;
|
|
94
|
+
case "message":
|
|
95
|
+
return messageToReflect(field, value, this.check);
|
|
90
96
|
case "scalar":
|
|
91
97
|
return (value === undefined
|
|
92
98
|
? (0, scalar_js_1.scalarZeroValue)(field.scalar, false)
|
|
@@ -100,46 +106,20 @@ class ReflectMessageImpl {
|
|
|
100
106
|
if (this.check) {
|
|
101
107
|
const err = (0, reflect_check_js_1.checkField)(field, value);
|
|
102
108
|
if (err) {
|
|
103
|
-
|
|
109
|
+
throw err;
|
|
104
110
|
}
|
|
105
111
|
}
|
|
106
112
|
let local;
|
|
107
|
-
if (
|
|
108
|
-
local = value
|
|
113
|
+
if (field.fieldKind == "message") {
|
|
114
|
+
local = messageToLocal(field, value);
|
|
109
115
|
}
|
|
110
|
-
else if ((0, guard_js_1.
|
|
111
|
-
|
|
112
|
-
local = !field.oneof && (0, wrappers_js_1.isWrapper)(msg) ? msg.value : msg;
|
|
116
|
+
else if ((0, guard_js_1.isReflectMap)(value) || (0, guard_js_1.isReflectList)(value)) {
|
|
117
|
+
local = value[unsafe_js_1.unsafeLocal];
|
|
113
118
|
}
|
|
114
119
|
else {
|
|
115
120
|
local = longToLocal(field, value);
|
|
116
121
|
}
|
|
117
122
|
(0, unsafe_js_1.unsafeSet)(this.message, field, local);
|
|
118
|
-
return undefined;
|
|
119
|
-
}
|
|
120
|
-
addListItem(field, value) {
|
|
121
|
-
assertOwn(this.message, field);
|
|
122
|
-
assertKind(field, "list");
|
|
123
|
-
if (this.check) {
|
|
124
|
-
if ((0, reflect_check_js_1.checkListItem)(field, 0, value)) {
|
|
125
|
-
const arr = (0, unsafe_js_1.unsafeGet)(this.message, field);
|
|
126
|
-
return (0, reflect_check_js_1.checkListItem)(field, arr.length, value);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
(0, unsafe_js_1.unsafeAddListItem)(this.message, field, listItemToLocal(field, value));
|
|
130
|
-
return undefined;
|
|
131
|
-
}
|
|
132
|
-
setMapEntry(field, key, value) {
|
|
133
|
-
assertOwn(this.message, field);
|
|
134
|
-
assertKind(field, "map");
|
|
135
|
-
if (this.check) {
|
|
136
|
-
const err = (0, reflect_check_js_1.checkMapEntry)(field, key, value);
|
|
137
|
-
if (err) {
|
|
138
|
-
return err;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
(0, unsafe_js_1.unsafeSetMapEntry)(this.message, field, mapKeyToLocal(key), mapValueToLocal(field, value));
|
|
142
|
-
return undefined;
|
|
143
123
|
}
|
|
144
124
|
getUnknown() {
|
|
145
125
|
return this.message.$unknown;
|
|
@@ -148,11 +128,6 @@ class ReflectMessageImpl {
|
|
|
148
128
|
this.message.$unknown = value;
|
|
149
129
|
}
|
|
150
130
|
}
|
|
151
|
-
function assertKind(field, kind) {
|
|
152
|
-
if (field.fieldKind != kind) {
|
|
153
|
-
throw new error_js_1.FieldError(field, `${field.toString()} is ${field.fieldKind}`, "ForeignFieldError");
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
131
|
function assertOwn(owner, member) {
|
|
157
132
|
if (member.parent.typeName !== owner.$typeName) {
|
|
158
133
|
throw new error_js_1.FieldError(member, `cannot use ${member.toString()} with message ${owner.$typeName}`, "ForeignFieldError");
|
|
@@ -161,7 +136,15 @@ function assertOwn(owner, member) {
|
|
|
161
136
|
/**
|
|
162
137
|
* Create a ReflectList.
|
|
163
138
|
*/
|
|
164
|
-
function reflectList(field, unsafeInput,
|
|
139
|
+
function reflectList(field, unsafeInput,
|
|
140
|
+
/**
|
|
141
|
+
* By default, field values are validated when setting them. For example,
|
|
142
|
+
* a value for an uint32 field must be a ECMAScript Number >= 0.
|
|
143
|
+
*
|
|
144
|
+
* When field values are trusted, performance can be improved by disabling
|
|
145
|
+
* checks.
|
|
146
|
+
*/
|
|
147
|
+
check = true) {
|
|
165
148
|
return new ReflectListImpl(field, unsafeInput !== null && unsafeInput !== void 0 ? unsafeInput : [], check);
|
|
166
149
|
}
|
|
167
150
|
exports.reflectList = reflectList;
|
|
@@ -185,29 +168,24 @@ class ReflectListImpl {
|
|
|
185
168
|
}
|
|
186
169
|
set(index, item) {
|
|
187
170
|
if (index < 0 || index >= this._arr.length) {
|
|
188
|
-
|
|
171
|
+
throw new error_js_1.FieldError(this._field, `list item #${index + 1}: out of range`);
|
|
189
172
|
}
|
|
190
173
|
if (this.check) {
|
|
191
174
|
const err = (0, reflect_check_js_1.checkListItem)(this._field, index, item);
|
|
192
175
|
if (err) {
|
|
193
|
-
|
|
176
|
+
throw err;
|
|
194
177
|
}
|
|
195
178
|
}
|
|
196
179
|
this._arr[index] = listItemToLocal(this._field, item);
|
|
197
|
-
return undefined;
|
|
198
180
|
}
|
|
199
|
-
add(
|
|
181
|
+
add(item) {
|
|
200
182
|
if (this.check) {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
return err;
|
|
205
|
-
}
|
|
183
|
+
const err = (0, reflect_check_js_1.checkListItem)(this._field, this._arr.length, item);
|
|
184
|
+
if (err) {
|
|
185
|
+
throw err;
|
|
206
186
|
}
|
|
207
187
|
}
|
|
208
|
-
|
|
209
|
-
this._arr.push(listItemToLocal(this._field, item));
|
|
210
|
-
}
|
|
188
|
+
this._arr.push(listItemToLocal(this._field, item));
|
|
211
189
|
return undefined;
|
|
212
190
|
}
|
|
213
191
|
clear() {
|
|
@@ -233,7 +211,15 @@ class ReflectListImpl {
|
|
|
233
211
|
/**
|
|
234
212
|
* Create a ReflectMap.
|
|
235
213
|
*/
|
|
236
|
-
function reflectMap(field, unsafeInput,
|
|
214
|
+
function reflectMap(field, unsafeInput,
|
|
215
|
+
/**
|
|
216
|
+
* By default, field values are validated when setting them. For example,
|
|
217
|
+
* a value for an uint32 field must be a ECMAScript Number >= 0.
|
|
218
|
+
*
|
|
219
|
+
* When field values are trusted, performance can be improved by disabling
|
|
220
|
+
* checks.
|
|
221
|
+
*/
|
|
222
|
+
check = true) {
|
|
237
223
|
return new ReflectMapImpl(field, unsafeInput, check);
|
|
238
224
|
}
|
|
239
225
|
exports.reflectMap = reflectMap;
|
|
@@ -250,11 +236,11 @@ class ReflectMapImpl {
|
|
|
250
236
|
if (this.check) {
|
|
251
237
|
const err = (0, reflect_check_js_1.checkMapEntry)(this._field, key, value);
|
|
252
238
|
if (err) {
|
|
253
|
-
|
|
239
|
+
throw err;
|
|
254
240
|
}
|
|
255
241
|
}
|
|
256
242
|
this.obj[mapKeyToLocal(key)] = mapValueToLocal(this._field, value);
|
|
257
|
-
return
|
|
243
|
+
return this;
|
|
258
244
|
}
|
|
259
245
|
delete(key) {
|
|
260
246
|
const k = mapKeyToLocal(key);
|
|
@@ -309,27 +295,68 @@ class ReflectMapImpl {
|
|
|
309
295
|
}
|
|
310
296
|
}
|
|
311
297
|
}
|
|
298
|
+
function messageToLocal(field, value) {
|
|
299
|
+
if (!(0, guard_js_1.isReflectMessage)(value)) {
|
|
300
|
+
return value;
|
|
301
|
+
}
|
|
302
|
+
if ((0, wrappers_js_1.isWrapper)(value.message) &&
|
|
303
|
+
!field.oneof &&
|
|
304
|
+
field.fieldKind == "message") {
|
|
305
|
+
// Types from google/protobuf/wrappers.proto are unwrapped when used in
|
|
306
|
+
// a singular field that is not part of a oneof group.
|
|
307
|
+
return value.message.value;
|
|
308
|
+
}
|
|
309
|
+
if (value.desc.typeName == "google.protobuf.Struct" &&
|
|
310
|
+
field.parent.typeName != "google.protobuf.Value") {
|
|
311
|
+
// google.protobuf.Struct is represented with JsonObject when used in a
|
|
312
|
+
// field, except when used in google.protobuf.Value.
|
|
313
|
+
return wktStructToLocal(value.message);
|
|
314
|
+
}
|
|
315
|
+
return value.message;
|
|
316
|
+
}
|
|
317
|
+
function messageToReflect(field, value, check) {
|
|
318
|
+
if (value !== undefined) {
|
|
319
|
+
if ((0, wrappers_js_1.isWrapperDesc)(field.message) &&
|
|
320
|
+
!field.oneof &&
|
|
321
|
+
field.fieldKind == "message") {
|
|
322
|
+
// Types from google/protobuf/wrappers.proto are unwrapped when used in
|
|
323
|
+
// a singular field that is not part of a oneof group.
|
|
324
|
+
value = {
|
|
325
|
+
$typeName: field.message.typeName,
|
|
326
|
+
value: longToReflect(field.message.fields[0], value),
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
else if (field.message.typeName == "google.protobuf.Struct" &&
|
|
330
|
+
field.parent.typeName != "google.protobuf.Value" &&
|
|
331
|
+
(0, guard_js_1.isObject)(value)) {
|
|
332
|
+
// google.protobuf.Struct is represented with JsonObject when used in a
|
|
333
|
+
// field, except when used in google.protobuf.Value.
|
|
334
|
+
value = wktStructToReflect(value);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
return new ReflectMessageImpl(field.message, value, check);
|
|
338
|
+
}
|
|
312
339
|
function listItemToLocal(field, value) {
|
|
313
|
-
if (
|
|
314
|
-
return value
|
|
340
|
+
if (field.listKind == "message") {
|
|
341
|
+
return messageToLocal(field, value);
|
|
315
342
|
}
|
|
316
343
|
return longToLocal(field, value);
|
|
317
344
|
}
|
|
318
345
|
function listItemToReflect(field, value, check) {
|
|
319
346
|
if (field.listKind == "message") {
|
|
320
|
-
return
|
|
347
|
+
return messageToReflect(field, value, check);
|
|
321
348
|
}
|
|
322
349
|
return longToReflect(field, value);
|
|
323
350
|
}
|
|
324
351
|
function mapValueToLocal(field, value) {
|
|
325
|
-
if (
|
|
326
|
-
return value
|
|
352
|
+
if (field.mapKind == "message") {
|
|
353
|
+
return messageToLocal(field, value);
|
|
327
354
|
}
|
|
328
355
|
return longToLocal(field, value);
|
|
329
356
|
}
|
|
330
357
|
function mapValueToReflect(field, value, check) {
|
|
331
358
|
if (field.mapKind == "message") {
|
|
332
|
-
return
|
|
359
|
+
return messageToReflect(field, value, check);
|
|
333
360
|
}
|
|
334
361
|
return value;
|
|
335
362
|
}
|
|
@@ -433,3 +460,81 @@ function longToLocal(field, value) {
|
|
|
433
460
|
}
|
|
434
461
|
return value;
|
|
435
462
|
}
|
|
463
|
+
function wktStructToReflect(json) {
|
|
464
|
+
const struct = {
|
|
465
|
+
$typeName: "google.protobuf.Struct",
|
|
466
|
+
fields: {},
|
|
467
|
+
};
|
|
468
|
+
if ((0, guard_js_1.isObject)(json)) {
|
|
469
|
+
for (const [k, v] of Object.entries(json)) {
|
|
470
|
+
struct.fields[k] = wktValueToReflect(v);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
return struct;
|
|
474
|
+
}
|
|
475
|
+
function wktStructToLocal(val) {
|
|
476
|
+
const json = {};
|
|
477
|
+
for (const [k, v] of Object.entries(val.fields)) {
|
|
478
|
+
json[k] = wktValueToLocal(v);
|
|
479
|
+
}
|
|
480
|
+
return json;
|
|
481
|
+
}
|
|
482
|
+
function wktValueToLocal(val) {
|
|
483
|
+
switch (val.kind.case) {
|
|
484
|
+
case "structValue":
|
|
485
|
+
return wktStructToLocal(val.kind.value);
|
|
486
|
+
case "listValue":
|
|
487
|
+
return val.kind.value.values.map(wktValueToLocal);
|
|
488
|
+
case "nullValue":
|
|
489
|
+
case undefined:
|
|
490
|
+
return null;
|
|
491
|
+
default:
|
|
492
|
+
return val.kind.value;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
function wktValueToReflect(json) {
|
|
496
|
+
const value = {
|
|
497
|
+
$typeName: "google.protobuf.Value",
|
|
498
|
+
kind: { case: undefined },
|
|
499
|
+
};
|
|
500
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- invalid input is unselected kind
|
|
501
|
+
switch (typeof json) {
|
|
502
|
+
case "number":
|
|
503
|
+
value.kind = { case: "numberValue", value: json };
|
|
504
|
+
break;
|
|
505
|
+
case "string":
|
|
506
|
+
value.kind = { case: "stringValue", value: json };
|
|
507
|
+
break;
|
|
508
|
+
case "boolean":
|
|
509
|
+
value.kind = { case: "boolValue", value: json };
|
|
510
|
+
break;
|
|
511
|
+
case "object":
|
|
512
|
+
if (json === null) {
|
|
513
|
+
const nullValue = 0;
|
|
514
|
+
value.kind = { case: "nullValue", value: nullValue };
|
|
515
|
+
}
|
|
516
|
+
else if (Array.isArray(json)) {
|
|
517
|
+
const listValue = {
|
|
518
|
+
$typeName: "google.protobuf.ListValue",
|
|
519
|
+
values: [],
|
|
520
|
+
};
|
|
521
|
+
if (Array.isArray(json)) {
|
|
522
|
+
for (const e of json) {
|
|
523
|
+
listValue.values.push(wktValueToReflect(e));
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
value.kind = {
|
|
527
|
+
case: "listValue",
|
|
528
|
+
value: listValue,
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
else {
|
|
532
|
+
value.kind = {
|
|
533
|
+
case: "structValue",
|
|
534
|
+
value: wktStructToReflect(json),
|
|
535
|
+
};
|
|
536
|
+
}
|
|
537
|
+
break;
|
|
538
|
+
}
|
|
539
|
+
return value;
|
|
540
|
+
}
|
|
@@ -6,7 +6,7 @@ export type ScalarValue<T = ScalarType, LongAsString extends boolean = false> =
|
|
|
6
6
|
/**
|
|
7
7
|
* Returns true if both scalar values are equal.
|
|
8
8
|
*/
|
|
9
|
-
export declare function scalarEquals(type: ScalarType, a:
|
|
9
|
+
export declare function scalarEquals(type: ScalarType, a: ScalarValue | undefined, b: ScalarValue | undefined): boolean;
|
|
10
10
|
/**
|
|
11
11
|
* Returns the zero value for the given scalar type.
|
|
12
12
|
*/
|
|
@@ -40,19 +40,3 @@ export declare function unsafeSet(target: Record<string, unknown>, field: DescFi
|
|
|
40
40
|
*/
|
|
41
41
|
export declare function unsafeClear(target: Record<string, any>, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access
|
|
42
42
|
field: DescField): void;
|
|
43
|
-
/**
|
|
44
|
-
* Add an item to a list field.
|
|
45
|
-
*
|
|
46
|
-
* @private
|
|
47
|
-
*/
|
|
48
|
-
export declare function unsafeAddListItem(target: Record<string, unknown>, field: DescField & {
|
|
49
|
-
fieldKind: "list";
|
|
50
|
-
}, value: unknown): void;
|
|
51
|
-
/**
|
|
52
|
-
* Set a map entry.
|
|
53
|
-
*
|
|
54
|
-
* @private
|
|
55
|
-
*/
|
|
56
|
-
export declare function unsafeSetMapEntry(target: Record<string, unknown>, field: DescField & {
|
|
57
|
-
fieldKind: "map";
|
|
58
|
-
}, key: string | number, value: unknown): void;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// See the License for the specific language governing permissions and
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.
|
|
16
|
+
exports.unsafeClear = exports.unsafeSet = exports.unsafeGet = exports.unsafeIsSetExplicit = exports.unsafeIsSet = exports.unsafeOneofCase = exports.unsafeLocal = void 0;
|
|
17
17
|
const scalar_js_1 = require("./scalar.js");
|
|
18
18
|
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;
|
|
19
19
|
const IMPLICIT = 2;
|
|
@@ -146,21 +146,3 @@ field) {
|
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
exports.unsafeClear = unsafeClear;
|
|
149
|
-
/**
|
|
150
|
-
* Add an item to a list field.
|
|
151
|
-
*
|
|
152
|
-
* @private
|
|
153
|
-
*/
|
|
154
|
-
function unsafeAddListItem(target, field, value) {
|
|
155
|
-
target[field.localName].push(value);
|
|
156
|
-
}
|
|
157
|
-
exports.unsafeAddListItem = unsafeAddListItem;
|
|
158
|
-
/**
|
|
159
|
-
* Set a map entry.
|
|
160
|
-
*
|
|
161
|
-
* @private
|
|
162
|
-
*/
|
|
163
|
-
function unsafeSetMapEntry(target, field, key, value) {
|
|
164
|
-
target[field.localName][key] = value;
|
|
165
|
-
}
|
|
166
|
-
exports.unsafeSetMapEntry = unsafeSetMapEntry;
|
package/dist/cjs/registry.d.ts
CHANGED
|
@@ -39,8 +39,20 @@ export interface Registry {
|
|
|
39
39
|
getService(typeName: string): DescService | undefined;
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* A
|
|
43
|
-
|
|
42
|
+
* A registry that allows adding and removing descriptors.
|
|
43
|
+
*/
|
|
44
|
+
export interface MutableRegistry extends Registry {
|
|
45
|
+
/**
|
|
46
|
+
* Adds the given descriptor - but not types nested within - to the registry.
|
|
47
|
+
*/
|
|
48
|
+
add(desc: DescMessage | DescEnum | DescExtension | DescService): void;
|
|
49
|
+
/**
|
|
50
|
+
* Remove the given descriptor - but not types nested within - from the registry.
|
|
51
|
+
*/
|
|
52
|
+
remove(desc: DescMessage | DescEnum | DescExtension | DescService): void;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A registry that includes files.
|
|
44
56
|
*/
|
|
45
57
|
export interface FileRegistry extends Registry {
|
|
46
58
|
/**
|
|
@@ -64,6 +76,10 @@ export interface FileRegistry extends Registry {
|
|
|
64
76
|
* For duplicate descriptors (same type name), the one given last wins.
|
|
65
77
|
*/
|
|
66
78
|
export declare function createRegistry(...input: (Registry | DescFile | DescMessage | DescEnum | DescExtension | DescService)[]): Registry;
|
|
79
|
+
/**
|
|
80
|
+
* Create a registry that allows adding and removing descriptors.
|
|
81
|
+
*/
|
|
82
|
+
export declare function createMutableRegistry(...input: (Registry | DescFile | DescMessage | DescEnum | DescExtension | DescService)[]): MutableRegistry;
|
|
67
83
|
/**
|
|
68
84
|
* Create a registry (including file descriptors) from a google.protobuf.FileDescriptorSet
|
|
69
85
|
* message.
|
package/dist/cjs/registry.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// See the License for the specific language governing permissions and
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.maximumEdition = exports.minimumEdition = exports.createFileRegistry = exports.createRegistry = void 0;
|
|
16
|
+
exports.maximumEdition = exports.minimumEdition = exports.createFileRegistry = exports.createMutableRegistry = exports.createRegistry = void 0;
|
|
17
17
|
const descriptors_js_1 = require("./descriptors.js");
|
|
18
18
|
const text_format_js_1 = require("./wire/text-format.js");
|
|
19
19
|
const nested_types_js_1 = require("./reflect/nested-types.js");
|
|
@@ -31,29 +31,25 @@ const names_js_1 = require("./reflect/names.js");
|
|
|
31
31
|
* For duplicate descriptors (same type name), the one given last wins.
|
|
32
32
|
*/
|
|
33
33
|
function createRegistry(...input) {
|
|
34
|
-
|
|
35
|
-
for (const i of input) {
|
|
36
|
-
switch (i.kind) {
|
|
37
|
-
case "registry":
|
|
38
|
-
for (const n of i) {
|
|
39
|
-
reg.add(n);
|
|
40
|
-
}
|
|
41
|
-
break;
|
|
42
|
-
case "file":
|
|
43
|
-
for (const n of (0, nested_types_js_1.nestedTypes)(i)) {
|
|
44
|
-
reg.add(n);
|
|
45
|
-
}
|
|
46
|
-
break;
|
|
47
|
-
default:
|
|
48
|
-
reg.add(i);
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return reg;
|
|
34
|
+
return initBaseRegistry(input);
|
|
53
35
|
}
|
|
54
36
|
exports.createRegistry = createRegistry;
|
|
37
|
+
/**
|
|
38
|
+
* Create a registry that allows adding and removing descriptors.
|
|
39
|
+
*/
|
|
40
|
+
function createMutableRegistry(...input) {
|
|
41
|
+
const reg = initBaseRegistry(input);
|
|
42
|
+
return Object.assign(Object.assign({}, reg), { remove(desc) {
|
|
43
|
+
var _a;
|
|
44
|
+
if (desc.kind == "extension") {
|
|
45
|
+
(_a = reg.extendees.get(desc.extendee.typeName)) === null || _a === void 0 ? void 0 : _a.delete(desc.number);
|
|
46
|
+
}
|
|
47
|
+
reg.types.delete(desc.typeName);
|
|
48
|
+
} });
|
|
49
|
+
}
|
|
50
|
+
exports.createMutableRegistry = createMutableRegistry;
|
|
55
51
|
function createFileRegistry(...args) {
|
|
56
|
-
const registry =
|
|
52
|
+
const registry = createBaseRegistry();
|
|
57
53
|
if ("$typeName" in args[0] &&
|
|
58
54
|
args[0].$typeName == "google.protobuf.FileDescriptorSet") {
|
|
59
55
|
for (const file of args[0].file) {
|
|
@@ -80,7 +76,7 @@ function createFileRegistry(...args) {
|
|
|
80
76
|
throw new Error(`Unable to resolve ${protoFileName}, imported by ${file.name}`);
|
|
81
77
|
}
|
|
82
78
|
if ("kind" in dep) {
|
|
83
|
-
|
|
79
|
+
registry.addFile(dep, false, true);
|
|
84
80
|
}
|
|
85
81
|
else {
|
|
86
82
|
seen.add(dep.name);
|
|
@@ -96,10 +92,7 @@ function createFileRegistry(...args) {
|
|
|
96
92
|
else {
|
|
97
93
|
for (const fileReg of args) {
|
|
98
94
|
for (const file of fileReg.files) {
|
|
99
|
-
registry.
|
|
100
|
-
for (const type of (0, nested_types_js_1.nestedTypes)(file)) {
|
|
101
|
-
registry.add(type);
|
|
102
|
-
}
|
|
95
|
+
registry.addFile(file);
|
|
103
96
|
}
|
|
104
97
|
}
|
|
105
98
|
}
|
|
@@ -107,47 +100,46 @@ function createFileRegistry(...args) {
|
|
|
107
100
|
}
|
|
108
101
|
exports.createFileRegistry = createFileRegistry;
|
|
109
102
|
/**
|
|
110
|
-
* Create a mutable file registry.
|
|
111
103
|
* @private
|
|
112
104
|
*/
|
|
113
|
-
function
|
|
105
|
+
function createBaseRegistry() {
|
|
114
106
|
const types = new Map();
|
|
115
107
|
const extendees = new Map();
|
|
116
108
|
const files = new Map();
|
|
117
109
|
return {
|
|
118
110
|
kind: "registry",
|
|
111
|
+
types,
|
|
112
|
+
extendees,
|
|
119
113
|
[Symbol.iterator]() {
|
|
120
114
|
return types.values();
|
|
121
115
|
},
|
|
122
116
|
get files() {
|
|
123
117
|
return files.values();
|
|
124
118
|
},
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
// eslint-disable-next-line no-fallthrough
|
|
139
|
-
default:
|
|
140
|
-
types.set(desc.typeName, desc);
|
|
119
|
+
addFile(file, skipTypes, withDeps) {
|
|
120
|
+
files.set(file.proto.name, file);
|
|
121
|
+
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
122
|
+
if (!skipTypes) {
|
|
123
|
+
for (const type of (0, nested_types_js_1.nestedTypes)(file)) {
|
|
124
|
+
this.add(type);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
128
|
+
if (withDeps) {
|
|
129
|
+
for (const f of file.dependencies) {
|
|
130
|
+
this.addFile(f, skipTypes, withDeps);
|
|
131
|
+
}
|
|
141
132
|
}
|
|
142
133
|
},
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
134
|
+
add(desc) {
|
|
135
|
+
if (desc.kind == "extension") {
|
|
136
|
+
let numberToExt = extendees.get(desc.extendee.typeName);
|
|
137
|
+
if (!numberToExt) {
|
|
138
|
+
extendees.set(desc.extendee.typeName, (numberToExt = new Map()));
|
|
139
|
+
}
|
|
140
|
+
numberToExt.set(desc.number, desc);
|
|
150
141
|
}
|
|
142
|
+
types.set(desc.typeName, desc);
|
|
151
143
|
},
|
|
152
144
|
get(typeName) {
|
|
153
145
|
return types.get(typeName);
|
|
@@ -178,16 +170,26 @@ function createMutableRegistry() {
|
|
|
178
170
|
};
|
|
179
171
|
}
|
|
180
172
|
/**
|
|
181
|
-
*
|
|
173
|
+
* @private
|
|
182
174
|
*/
|
|
183
|
-
function
|
|
184
|
-
|
|
185
|
-
for (const
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
175
|
+
function initBaseRegistry(inputs) {
|
|
176
|
+
const registry = createBaseRegistry();
|
|
177
|
+
for (const input of inputs) {
|
|
178
|
+
switch (input.kind) {
|
|
179
|
+
case "registry":
|
|
180
|
+
for (const n of input) {
|
|
181
|
+
registry.add(n);
|
|
182
|
+
}
|
|
183
|
+
break;
|
|
184
|
+
case "file":
|
|
185
|
+
registry.addFile(input);
|
|
186
|
+
break;
|
|
187
|
+
default:
|
|
188
|
+
registry.add(input);
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
190
191
|
}
|
|
192
|
+
return registry;
|
|
191
193
|
}
|
|
192
194
|
// bootstrap-inject google.protobuf.Edition.EDITION_PROTO2: const $name: Edition.$localName = $number;
|
|
193
195
|
const EDITION_PROTO2 = 998;
|
|
@@ -306,7 +308,7 @@ function addFile(proto, reg) {
|
|
|
306
308
|
addFields(message, reg, mapEntries);
|
|
307
309
|
addExtensions(message, reg);
|
|
308
310
|
}
|
|
309
|
-
reg.
|
|
311
|
+
reg.addFile(file, true);
|
|
310
312
|
}
|
|
311
313
|
/**
|
|
312
314
|
* Create descriptors for extensions, and add them to the message / file,
|
package/dist/cjs/to-binary.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface BinaryWriteOptions {
|
|
|
17
17
|
*/
|
|
18
18
|
writeUnknownFields: boolean;
|
|
19
19
|
}
|
|
20
|
-
export declare function toBinary<Desc extends DescMessage>(
|
|
20
|
+
export declare function toBinary<Desc extends DescMessage>(schema: Desc, message: MessageShape<Desc>, options?: Partial<BinaryWriteOptions>): Uint8Array;
|
|
21
21
|
/**
|
|
22
22
|
* @private
|
|
23
23
|
*/
|