@bufbuild/protobuf 2.0.0-alpha.1 → 2.0.0-alpha.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.
- package/dist/cjs/codegenv1/embed.d.ts +2 -2
- package/dist/cjs/codegenv1/embed.js +25 -25
- package/dist/cjs/codegenv1/enum.js +2 -4
- package/dist/cjs/codegenv1/restore-json-names.d.ts +3 -0
- package/dist/cjs/codegenv1/restore-json-names.js +3 -0
- package/dist/cjs/codegenv1/symbols.d.ts +9 -0
- package/dist/cjs/codegenv1/symbols.js +9 -0
- package/dist/cjs/codegenv1/types.d.ts +55 -2
- package/dist/cjs/create.js +7 -18
- package/dist/cjs/desc-types.d.ts +27 -10
- package/dist/cjs/extensions.d.ts +21 -1
- package/dist/cjs/extensions.js +38 -7
- package/dist/cjs/fields.d.ts +17 -16
- package/dist/cjs/fields.js +17 -10
- package/dist/cjs/from-binary.js +9 -19
- package/dist/cjs/from-json.js +9 -13
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/reflect/names.d.ts +0 -12
- package/dist/cjs/reflect/names.js +1 -39
- package/dist/cjs/reflect/nested-types.d.ts +11 -1
- package/dist/cjs/reflect/nested-types.js +34 -1
- package/dist/cjs/reflect/reflect-types.d.ts +158 -10
- package/dist/cjs/reflect/reflect.d.ts +11 -2
- package/dist/cjs/reflect/reflect.js +306 -281
- package/dist/cjs/reflect/registry.js +50 -41
- package/dist/cjs/reflect/unsafe.js +38 -43
- package/dist/cjs/to-binary.js +1 -3
- package/dist/cjs/to-json.js +7 -27
- package/dist/cjs/wire/base64-encoding.js +2 -2
- package/dist/cjs/wire/binary-encoding.d.ts +5 -3
- package/dist/cjs/wire/binary-encoding.js +16 -10
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +15 -0
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.js +15 -6
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +22 -0
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +22 -9
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +186 -0
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +186 -83
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.d.ts +18 -0
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +18 -7
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.d.ts +32 -0
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.js +32 -13
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +39 -0
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +39 -18
- package/dist/esm/codegenv1/embed.d.ts +2 -2
- package/dist/esm/codegenv1/embed.js +25 -25
- package/dist/esm/codegenv1/enum.js +2 -4
- package/dist/esm/codegenv1/restore-json-names.d.ts +3 -0
- package/dist/esm/codegenv1/restore-json-names.js +3 -0
- package/dist/esm/codegenv1/symbols.d.ts +9 -0
- package/dist/esm/codegenv1/symbols.js +9 -0
- package/dist/esm/codegenv1/types.d.ts +55 -2
- package/dist/esm/create.js +7 -18
- package/dist/esm/desc-types.d.ts +27 -10
- package/dist/esm/extensions.d.ts +21 -1
- package/dist/esm/extensions.js +35 -6
- package/dist/esm/fields.d.ts +17 -16
- package/dist/esm/fields.js +17 -10
- package/dist/esm/from-binary.js +9 -19
- package/dist/esm/from-json.js +11 -15
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/reflect/names.d.ts +0 -12
- package/dist/esm/reflect/names.js +0 -37
- package/dist/esm/reflect/nested-types.d.ts +11 -1
- package/dist/esm/reflect/nested-types.js +32 -0
- package/dist/esm/reflect/reflect-types.d.ts +158 -10
- package/dist/esm/reflect/reflect.d.ts +11 -2
- package/dist/esm/reflect/reflect.js +304 -279
- package/dist/esm/reflect/registry.js +50 -41
- package/dist/esm/reflect/unsafe.js +38 -43
- package/dist/esm/to-binary.js +1 -3
- package/dist/esm/to-json.js +7 -27
- package/dist/esm/wire/base64-encoding.js +2 -2
- package/dist/esm/wire/binary-encoding.d.ts +5 -3
- package/dist/esm/wire/binary-encoding.js +16 -10
- package/dist/esm/wkt/gen/google/protobuf/any_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/any_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +15 -0
- package/dist/esm/wkt/gen/google/protobuf/api_pb.js +15 -6
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +22 -0
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +22 -9
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +186 -0
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +186 -83
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.d.ts +18 -0
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.js +18 -7
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +32 -0
- package/dist/esm/wkt/gen/google/protobuf/type_pb.js +32 -13
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +39 -0
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +39 -18
- package/package.json +2 -2
package/dist/cjs/from-binary.js
CHANGED
|
@@ -62,12 +62,12 @@ function readMessage(message, reader, options, delimited, lengthOrDelimitedField
|
|
|
62
62
|
const unknownFields = (_a = message.getUnknown()) !== null && _a !== void 0 ? _a : [];
|
|
63
63
|
while (reader.pos < end) {
|
|
64
64
|
[fieldNo, wireType] = reader.tag();
|
|
65
|
-
if (wireType == binary_encoding_js_1.WireType.EndGroup) {
|
|
65
|
+
if (delimited && wireType == binary_encoding_js_1.WireType.EndGroup) {
|
|
66
66
|
break;
|
|
67
67
|
}
|
|
68
68
|
const field = message.findNumber(fieldNo);
|
|
69
69
|
if (!field) {
|
|
70
|
-
const data = reader.skip(wireType);
|
|
70
|
+
const data = reader.skip(wireType, fieldNo);
|
|
71
71
|
if (options.readUnknownFields) {
|
|
72
72
|
unknownFields.push({ no: fieldNo, wireType, data });
|
|
73
73
|
}
|
|
@@ -90,7 +90,7 @@ function readMessage(message, reader, options, delimited, lengthOrDelimitedField
|
|
|
90
90
|
function readField(message, reader, field, wireType, options) {
|
|
91
91
|
switch (field.fieldKind) {
|
|
92
92
|
case "scalar":
|
|
93
|
-
message.set(field, readScalar(reader, field.scalar
|
|
93
|
+
message.set(field, readScalar(reader, field.scalar));
|
|
94
94
|
break;
|
|
95
95
|
case "enum":
|
|
96
96
|
message.set(field, readScalar(reader, scalar_js_1.ScalarType.INT32));
|
|
@@ -102,15 +102,13 @@ function readField(message, reader, field, wireType, options) {
|
|
|
102
102
|
readListField(message, reader, options, field, wireType);
|
|
103
103
|
break;
|
|
104
104
|
case "map":
|
|
105
|
-
|
|
106
|
-
const [key, val] = readMapEntry(field, reader, options);
|
|
107
|
-
message.setMapEntry(field, key, val);
|
|
105
|
+
readMapEntry(message, field, reader, options);
|
|
108
106
|
break;
|
|
109
107
|
}
|
|
110
108
|
}
|
|
111
109
|
exports.readField = readField;
|
|
112
110
|
// Read a map field, expecting key field = 1, value field = 2
|
|
113
|
-
function readMapEntry(field, reader, options) {
|
|
111
|
+
function readMapEntry(message, field, reader, options) {
|
|
114
112
|
let key, val;
|
|
115
113
|
const end = reader.pos + reader.uint32();
|
|
116
114
|
while (reader.pos < end) {
|
|
@@ -150,7 +148,7 @@ function readMapEntry(field, reader, options) {
|
|
|
150
148
|
break;
|
|
151
149
|
}
|
|
152
150
|
}
|
|
153
|
-
|
|
151
|
+
message.setMapEntry(field, key, val);
|
|
154
152
|
}
|
|
155
153
|
function readListField(message, reader, options, field, wireType) {
|
|
156
154
|
var _a;
|
|
@@ -159,17 +157,16 @@ function readListField(message, reader, options, field, wireType) {
|
|
|
159
157
|
return;
|
|
160
158
|
}
|
|
161
159
|
const scalarType = (_a = field.scalar) !== null && _a !== void 0 ? _a : scalar_js_1.ScalarType.INT32;
|
|
162
|
-
const longType = field.listKind == "scalar" ? field.longType : undefined;
|
|
163
160
|
const packed = wireType == binary_encoding_js_1.WireType.LengthDelimited &&
|
|
164
161
|
scalarType != scalar_js_1.ScalarType.STRING &&
|
|
165
162
|
scalarType != scalar_js_1.ScalarType.BYTES;
|
|
166
163
|
if (!packed) {
|
|
167
|
-
message.addListItem(field, readScalar(reader, scalarType
|
|
164
|
+
message.addListItem(field, readScalar(reader, scalarType));
|
|
168
165
|
return;
|
|
169
166
|
}
|
|
170
167
|
const e = reader.uint32() + reader.pos;
|
|
171
168
|
while (reader.pos < e) {
|
|
172
|
-
message.addListItem(field, readScalar(reader, scalarType
|
|
169
|
+
message.addListItem(field, readScalar(reader, scalarType));
|
|
173
170
|
}
|
|
174
171
|
}
|
|
175
172
|
function readMessageField(reader, options, field, mergeMessage) {
|
|
@@ -178,14 +175,7 @@ function readMessageField(reader, options, field, mergeMessage) {
|
|
|
178
175
|
readMessage(message, reader, options, delimited, delimited ? field.number : reader.uint32());
|
|
179
176
|
return message;
|
|
180
177
|
}
|
|
181
|
-
function readScalar(reader, type
|
|
182
|
-
let v = readScalarValue(reader, type);
|
|
183
|
-
if (longType === scalar_js_1.LongType.STRING) {
|
|
184
|
-
v = typeof v == "bigint" ? v.toString() : v;
|
|
185
|
-
}
|
|
186
|
-
return v;
|
|
187
|
-
}
|
|
188
|
-
function readScalarValue(reader, type) {
|
|
178
|
+
function readScalar(reader, type) {
|
|
189
179
|
switch (type) {
|
|
190
180
|
case scalar_js_1.ScalarType.STRING:
|
|
191
181
|
return reader.string();
|
package/dist/cjs/from-json.js
CHANGED
|
@@ -175,7 +175,7 @@ function readMapField(msg, field, json, opts) {
|
|
|
175
175
|
break;
|
|
176
176
|
case "scalar":
|
|
177
177
|
try {
|
|
178
|
-
msg.setMapEntry(field, key, readScalar(field.scalar, jsonMapValue,
|
|
178
|
+
msg.setMapEntry(field, key, readScalar(field.scalar, jsonMapValue, true));
|
|
179
179
|
}
|
|
180
180
|
catch (e) {
|
|
181
181
|
let m = `cannot decode map value for field ${msg.desc.typeName}.${field.name} from JSON: ${(0, reflect_check_js_1.formatVal)(jsonMapValue)}`;
|
|
@@ -213,7 +213,7 @@ function readListField(msg, field, json, opts) {
|
|
|
213
213
|
break;
|
|
214
214
|
case "scalar":
|
|
215
215
|
try {
|
|
216
|
-
msg.addListItem(field, readScalar(field.scalar, jsonItem,
|
|
216
|
+
msg.addListItem(field, readScalar(field.scalar, jsonItem, true));
|
|
217
217
|
}
|
|
218
218
|
catch (e) {
|
|
219
219
|
let m = `cannot decode field ${msg.desc.typeName}.${field.name} from JSON: ${(0, reflect_check_js_1.formatVal)(jsonItem)}`;
|
|
@@ -246,7 +246,7 @@ function readEnumField(msg, field, json, opts) {
|
|
|
246
246
|
}
|
|
247
247
|
function readScalarField(msg, field, json) {
|
|
248
248
|
try {
|
|
249
|
-
const scalarValue = readScalar(field.scalar, json,
|
|
249
|
+
const scalarValue = readScalar(field.scalar, json, false);
|
|
250
250
|
if (scalarValue === tokenNull) {
|
|
251
251
|
msg.clear(field);
|
|
252
252
|
}
|
|
@@ -274,7 +274,7 @@ function readMapKey(type, json) {
|
|
|
274
274
|
break;
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
|
-
return readScalar(type, json,
|
|
277
|
+
return readScalar(type, json, true);
|
|
278
278
|
}
|
|
279
279
|
const tokenIgnoredUnknownEnum = Symbol();
|
|
280
280
|
function readEnum(desc, json, ignoreUnknownFields, nullAsZeroValue) {
|
|
@@ -304,10 +304,10 @@ function readEnum(desc, json, ignoreUnknownFields, nullAsZeroValue) {
|
|
|
304
304
|
throw new Error(`cannot decode enum ${desc.typeName} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
305
305
|
}
|
|
306
306
|
const tokenNull = Symbol();
|
|
307
|
-
function readScalar(type, json,
|
|
307
|
+
function readScalar(type, json, nullAsZeroValue) {
|
|
308
308
|
if (json === null) {
|
|
309
309
|
if (nullAsZeroValue) {
|
|
310
|
-
return (0, scalar_js_1.scalarZeroValue)(type,
|
|
310
|
+
return (0, scalar_js_1.scalarZeroValue)(type, scalar_js_1.LongType.BIGINT);
|
|
311
311
|
}
|
|
312
312
|
return tokenNull;
|
|
313
313
|
}
|
|
@@ -373,16 +373,12 @@ function readScalar(type, json, longType, nullAsZeroValue) {
|
|
|
373
373
|
case scalar_js_1.ScalarType.SINT64:
|
|
374
374
|
if (typeof json != "number" && typeof json != "string")
|
|
375
375
|
break;
|
|
376
|
-
|
|
377
|
-
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
378
|
-
return longType ? long.toString() : long;
|
|
376
|
+
return proto_int64_js_1.protoInt64.parse(json);
|
|
379
377
|
case scalar_js_1.ScalarType.FIXED64:
|
|
380
378
|
case scalar_js_1.ScalarType.UINT64:
|
|
381
379
|
if (typeof json != "number" && typeof json != "string")
|
|
382
380
|
break;
|
|
383
|
-
|
|
384
|
-
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
385
|
-
return longType ? uLong.toString() : uLong;
|
|
381
|
+
return proto_int64_js_1.protoInt64.uParse(json);
|
|
386
382
|
// bool:
|
|
387
383
|
case scalar_js_1.ScalarType.BOOL:
|
|
388
384
|
if (typeof json !== "boolean")
|
|
@@ -450,7 +446,7 @@ function tryWktFromJson(msg, jsonValue, opts) {
|
|
|
450
446
|
msg.clear(valueField);
|
|
451
447
|
}
|
|
452
448
|
else {
|
|
453
|
-
msg.set(valueField, readScalar(valueField.scalar, jsonValue,
|
|
449
|
+
msg.set(valueField, readScalar(valueField.scalar, jsonValue, true));
|
|
454
450
|
}
|
|
455
451
|
return true;
|
|
456
452
|
}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -12,5 +12,5 @@ export { fromBinary, mergeFromBinary } from "./from-binary.js";
|
|
|
12
12
|
export type { BinaryReadOptions } from "./from-binary.js";
|
|
13
13
|
export * from "./to-json.js";
|
|
14
14
|
export * from "./from-json.js";
|
|
15
|
-
export { hasExtension, getExtension, setExtension, clearExtension, } from "./extensions.js";
|
|
15
|
+
export { hasExtension, getExtension, setExtension, clearExtension, hasOption, getOption, } from "./extensions.js";
|
|
16
16
|
export * from "./proto-int64.js";
|
package/dist/cjs/index.js
CHANGED
|
@@ -27,7 +27,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
27
27
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.clearExtension = exports.setExtension = exports.getExtension = exports.hasExtension = exports.mergeFromBinary = exports.fromBinary = exports.toBinary = void 0;
|
|
30
|
+
exports.getOption = exports.hasOption = exports.clearExtension = exports.setExtension = exports.getExtension = exports.hasExtension = exports.mergeFromBinary = exports.fromBinary = exports.toBinary = void 0;
|
|
31
31
|
__exportStar(require("./types.js"), exports);
|
|
32
32
|
__exportStar(require("./is-message.js"), exports);
|
|
33
33
|
__exportStar(require("./create.js"), exports);
|
|
@@ -47,4 +47,6 @@ Object.defineProperty(exports, "hasExtension", { enumerable: true, get: function
|
|
|
47
47
|
Object.defineProperty(exports, "getExtension", { enumerable: true, get: function () { return extensions_js_1.getExtension; } });
|
|
48
48
|
Object.defineProperty(exports, "setExtension", { enumerable: true, get: function () { return extensions_js_1.setExtension; } });
|
|
49
49
|
Object.defineProperty(exports, "clearExtension", { enumerable: true, get: function () { return extensions_js_1.clearExtension; } });
|
|
50
|
+
Object.defineProperty(exports, "hasOption", { enumerable: true, get: function () { return extensions_js_1.hasOption; } });
|
|
51
|
+
Object.defineProperty(exports, "getOption", { enumerable: true, get: function () { return extensions_js_1.getOption; } });
|
|
50
52
|
__exportStar(require("./proto-int64.js"), exports);
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
import type { DescEnumValue, DescField } from "../desc-types.js";
|
|
2
|
-
import type { DescMethod, DescOneof } from "../desc-types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Returns the name of a protobuf element in generated code.
|
|
5
|
-
*
|
|
6
|
-
* Field names - including oneofs - are converted to lowerCamelCase. For methods,
|
|
7
|
-
* the first character is made lowercase. All names are escaped to be safe object
|
|
8
|
-
* property names.
|
|
9
|
-
*
|
|
10
|
-
* This function does not provide names for messages, enumerations, and services.
|
|
11
|
-
*/
|
|
12
|
-
export declare function localName(desc: DescEnumValue | DescOneof | DescField | DescMethod): string;
|
|
13
1
|
/**
|
|
14
2
|
* Converts snake_case to protoCamelCase according to the convention
|
|
15
3
|
* used by protoc to convert a field name to a JSON name.
|
|
@@ -13,45 +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.safeObjectProperty = exports.protoCamelCase =
|
|
17
|
-
/**
|
|
18
|
-
* Returns the name of a protobuf element in generated code.
|
|
19
|
-
*
|
|
20
|
-
* Field names - including oneofs - are converted to lowerCamelCase. For methods,
|
|
21
|
-
* the first character is made lowercase. All names are escaped to be safe object
|
|
22
|
-
* property names.
|
|
23
|
-
*
|
|
24
|
-
* This function does not provide names for messages, enumerations, and services.
|
|
25
|
-
*/
|
|
26
|
-
function localName(desc) {
|
|
27
|
-
const name = desc.name;
|
|
28
|
-
switch (desc.kind) {
|
|
29
|
-
// @ts-expect-error TS7029
|
|
30
|
-
case "field":
|
|
31
|
-
if (desc.oneof !== undefined) {
|
|
32
|
-
// oneof member names are not properties, but values of the `case` property.
|
|
33
|
-
return protoCamelCase(name);
|
|
34
|
-
}
|
|
35
|
-
// eslint-disable-next-line no-fallthrough
|
|
36
|
-
case "oneof":
|
|
37
|
-
return safeObjectProperty(protoCamelCase(name));
|
|
38
|
-
case "enum_value": {
|
|
39
|
-
let name = desc.name;
|
|
40
|
-
const sharedPrefix = desc.parent.sharedPrefix;
|
|
41
|
-
if (sharedPrefix !== undefined) {
|
|
42
|
-
name = name.substring(sharedPrefix.length);
|
|
43
|
-
}
|
|
44
|
-
return safeObjectProperty(name);
|
|
45
|
-
}
|
|
46
|
-
case "rpc": {
|
|
47
|
-
if (name.length == 0) {
|
|
48
|
-
return name;
|
|
49
|
-
}
|
|
50
|
-
return safeObjectProperty(name[0].toLowerCase() + name.substring(1));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
exports.localName = localName;
|
|
16
|
+
exports.safeObjectProperty = exports.protoCamelCase = void 0;
|
|
55
17
|
/**
|
|
56
18
|
* Converts snake_case to protoCamelCase according to the convention
|
|
57
19
|
* used by protoc to convert a field name to a JSON name.
|
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
import type { DescEnum, DescExtension, DescFile, DescMessage, DescService } from "../desc-types.js";
|
|
1
|
+
import type { AnyDesc, DescEnum, DescExtension, DescFile, DescMessage, DescService } from "../desc-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Iterate over all types - enumerations, extensions, services, messages -
|
|
4
|
+
* and enumerations, extensions and messages nested in messages.
|
|
5
|
+
*/
|
|
2
6
|
export declare function nestedTypes(desc: DescFile | DescMessage): Iterable<DescMessage | DescEnum | DescExtension | DescService>;
|
|
7
|
+
/**
|
|
8
|
+
* Returns the ancestors of a given Protobuf element, up to the file.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parentTypes(desc: AnyDesc): Parent[];
|
|
11
|
+
type Parent = DescFile | DescEnum | DescMessage | DescService;
|
|
12
|
+
export {};
|
|
@@ -13,7 +13,11 @@
|
|
|
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.nestedTypes = void 0;
|
|
16
|
+
exports.parentTypes = exports.nestedTypes = void 0;
|
|
17
|
+
/**
|
|
18
|
+
* Iterate over all types - enumerations, extensions, services, messages -
|
|
19
|
+
* and enumerations, extensions and messages nested in messages.
|
|
20
|
+
*/
|
|
17
21
|
function* nestedTypes(desc) {
|
|
18
22
|
switch (desc.kind) {
|
|
19
23
|
case "file":
|
|
@@ -36,3 +40,32 @@ function* nestedTypes(desc) {
|
|
|
36
40
|
}
|
|
37
41
|
}
|
|
38
42
|
exports.nestedTypes = nestedTypes;
|
|
43
|
+
/**
|
|
44
|
+
* Returns the ancestors of a given Protobuf element, up to the file.
|
|
45
|
+
*/
|
|
46
|
+
function parentTypes(desc) {
|
|
47
|
+
const parents = [];
|
|
48
|
+
while (desc.kind !== "file") {
|
|
49
|
+
const p = parent(desc);
|
|
50
|
+
desc = p;
|
|
51
|
+
parents.push(p);
|
|
52
|
+
}
|
|
53
|
+
return parents;
|
|
54
|
+
}
|
|
55
|
+
exports.parentTypes = parentTypes;
|
|
56
|
+
function parent(desc) {
|
|
57
|
+
var _a;
|
|
58
|
+
switch (desc.kind) {
|
|
59
|
+
case "enum_value":
|
|
60
|
+
case "field":
|
|
61
|
+
case "oneof":
|
|
62
|
+
case "rpc":
|
|
63
|
+
return desc.parent;
|
|
64
|
+
case "service":
|
|
65
|
+
return desc.file;
|
|
66
|
+
case "extension":
|
|
67
|
+
case "enum":
|
|
68
|
+
case "message":
|
|
69
|
+
return (_a = desc.parent) !== null && _a !== void 0 ? _a : desc.file;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -3,30 +3,149 @@ import { FieldError } from "./error.js";
|
|
|
3
3
|
import { unsafeLocal } from "./unsafe.js";
|
|
4
4
|
import type { Message, UnknownField } from "../types.js";
|
|
5
5
|
import type { LongType, ScalarValue } from "./scalar.js";
|
|
6
|
+
/**
|
|
7
|
+
* ReflectMessage provides dynamic access and manipulation of a message.
|
|
8
|
+
*/
|
|
6
9
|
export interface ReflectMessage {
|
|
10
|
+
/**
|
|
11
|
+
* The underlying message instance.
|
|
12
|
+
*/
|
|
7
13
|
readonly message: Message;
|
|
14
|
+
/**
|
|
15
|
+
* The descriptor for the message.
|
|
16
|
+
*/
|
|
8
17
|
readonly desc: DescMessage;
|
|
18
|
+
/**
|
|
19
|
+
* The fields of the message. This is a shortcut to message.fields.
|
|
20
|
+
*/
|
|
9
21
|
readonly fields: readonly DescField[];
|
|
22
|
+
/**
|
|
23
|
+
* The fields of the message, sorted by field number ascending.
|
|
24
|
+
*/
|
|
10
25
|
readonly sortedFields: readonly DescField[];
|
|
26
|
+
/**
|
|
27
|
+
* Oneof groups of the message. This is a shortcut to message.oneofs.
|
|
28
|
+
*/
|
|
11
29
|
readonly oneofs: readonly DescOneof[];
|
|
30
|
+
/**
|
|
31
|
+
* Fields and oneof groups for this message. This is a shortcut to message.members.
|
|
32
|
+
*/
|
|
12
33
|
readonly members: readonly (DescField | DescOneof)[];
|
|
34
|
+
/**
|
|
35
|
+
* Find a field by number.
|
|
36
|
+
*/
|
|
13
37
|
findNumber(number: number): DescField | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Returns true if the field is set.
|
|
40
|
+
*
|
|
41
|
+
* - Scalar and enum fields with implicit presence (proto3):
|
|
42
|
+
* Set if not a zero value.
|
|
43
|
+
*
|
|
44
|
+
* - Scalar and enum fields with explicit presence (proto2, oneof):
|
|
45
|
+
* Set if a value was set when creating or parsing the message, or when a
|
|
46
|
+
* value was assigned to the field's property.
|
|
47
|
+
*
|
|
48
|
+
* - Message fields:
|
|
49
|
+
* Set if the property is not undefined.
|
|
50
|
+
*
|
|
51
|
+
* - List and map fields:
|
|
52
|
+
* Set if not empty.
|
|
53
|
+
*/
|
|
14
54
|
isSet(field: DescField): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Resets the field, so that isSet() will return false.
|
|
57
|
+
*/
|
|
15
58
|
clear(field: DescField): void;
|
|
59
|
+
/**
|
|
60
|
+
* Return the selected field of a oneof group.
|
|
61
|
+
*/
|
|
16
62
|
oneofCase(oneof: DescOneof): DescField | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Returns the field value. Values are converted or wrapped to make it easier
|
|
65
|
+
* to manipulate messages.
|
|
66
|
+
*
|
|
67
|
+
* - Scalar fields:
|
|
68
|
+
* Returns the value, but converts 64-bit integer fields with the option
|
|
69
|
+
* `jstype=JS_STRING` to a bigint value.
|
|
70
|
+
* If the field is not set, the default value is returned. If no default
|
|
71
|
+
* value is set, the zero value is returned.
|
|
72
|
+
*
|
|
73
|
+
* - Enum fields:
|
|
74
|
+
* Returns the numeric value. If the field is not set, the default value is
|
|
75
|
+
* returned. If no default value is set, the zero value is returned.
|
|
76
|
+
*
|
|
77
|
+
* - Message fields:
|
|
78
|
+
* Returns a ReflectMessage. If the field is not set, a new message is
|
|
79
|
+
* returned, but not set on the field.
|
|
80
|
+
*
|
|
81
|
+
* - List fields:
|
|
82
|
+
* Returns a ReflectList object.
|
|
83
|
+
*
|
|
84
|
+
* - Map fields:
|
|
85
|
+
* Returns a ReflectMap object.
|
|
86
|
+
*
|
|
87
|
+
* Note that get() never returns `undefined`. To determine whether a field is
|
|
88
|
+
* set, use isSet().
|
|
89
|
+
*/
|
|
17
90
|
get<Field extends DescField>(field: Field): ReflectGetValue<Field>;
|
|
91
|
+
/**
|
|
92
|
+
* Set a field value.
|
|
93
|
+
*
|
|
94
|
+
* Expects values in the same form that get() returns:
|
|
95
|
+
*
|
|
96
|
+
* - Scalar fields:
|
|
97
|
+
* 64-bit integer fields with the option `jstype=JS_STRING` as a bigint value.
|
|
98
|
+
*
|
|
99
|
+
* - Message fields:
|
|
100
|
+
* ReflectMessage.
|
|
101
|
+
*
|
|
102
|
+
* - List fields:
|
|
103
|
+
* ReflectList.
|
|
104
|
+
*
|
|
105
|
+
* - Map fields:
|
|
106
|
+
* ReflectMap.
|
|
107
|
+
*
|
|
108
|
+
* Returns an error if the value is invalid for the field. `undefined` is not
|
|
109
|
+
* a valid value. To reset a field, use clear().
|
|
110
|
+
*/
|
|
18
111
|
set<Field extends DescField>(field: Field, value: ReflectSetValue<Field>): FieldError | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* Add an item to a list field.
|
|
114
|
+
*/
|
|
19
115
|
addListItem<Field extends DescField & {
|
|
20
116
|
fieldKind: "list";
|
|
21
|
-
}>(field: Field, value:
|
|
117
|
+
}>(field: Field, value: ReflectAddListItemValue<Field>): FieldError | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* Set a map entry.
|
|
120
|
+
*/
|
|
22
121
|
setMapEntry<Field extends DescField & {
|
|
23
122
|
fieldKind: "map";
|
|
24
|
-
}>(field: Field, key: MapEntryKey, value:
|
|
123
|
+
}>(field: Field, key: MapEntryKey, value: ReflectSetMapEntryValue<Field>): FieldError | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* Returns the unknown fields of the message.
|
|
126
|
+
*/
|
|
25
127
|
getUnknown(): UnknownField[] | undefined;
|
|
128
|
+
/**
|
|
129
|
+
* Sets the unknown fields of the message, overwriting any previous values.
|
|
130
|
+
*/
|
|
26
131
|
setUnknown(value: UnknownField[]): void;
|
|
27
132
|
[unsafeLocal]: Message;
|
|
28
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* ReflectList provides dynamic access and manipulation of a list field on a
|
|
136
|
+
* message.
|
|
137
|
+
*
|
|
138
|
+
* ReflectList is iterable - you can loop through all items with a for...of loop.
|
|
139
|
+
*
|
|
140
|
+
* Values are converted or wrapped to make it easier to manipulate them:
|
|
141
|
+
* - Scalar 64-bit integer fields with the option `jstype=JS_STRING` are
|
|
142
|
+
* converted to bigint.
|
|
143
|
+
* - Messages are wrapped in a ReflectMessage.
|
|
144
|
+
*/
|
|
29
145
|
export interface ReflectList<V = unknown> extends Iterable<V> {
|
|
146
|
+
/**
|
|
147
|
+
* Returns the list field.
|
|
148
|
+
*/
|
|
30
149
|
field(): DescField & {
|
|
31
150
|
fieldKind: "list";
|
|
32
151
|
};
|
|
@@ -60,7 +179,21 @@ export interface ReflectList<V = unknown> extends Iterable<V> {
|
|
|
60
179
|
values(): IterableIterator<V>;
|
|
61
180
|
[unsafeLocal]: unknown[];
|
|
62
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* ReflectMap provides dynamic access and manipulation of a map field on a
|
|
184
|
+
* message.
|
|
185
|
+
*
|
|
186
|
+
* ReflectMap is iterable - you can loop through all entries with a for...of loop.
|
|
187
|
+
*
|
|
188
|
+
* Keys and values are converted or wrapped to make it easier to manipulate them:
|
|
189
|
+
* - A map field is a record object on a message, where keys are always strings.
|
|
190
|
+
* ReflectMap converts keys to their closest possible type in TypeScript.
|
|
191
|
+
* - Messages are wrapped in a ReflectMessage.
|
|
192
|
+
*/
|
|
63
193
|
export interface ReflectMap<K extends MapEntryKey = MapEntryKey, V = unknown> extends ReadonlyMap<K, V> {
|
|
194
|
+
/**
|
|
195
|
+
* Returns the map field.
|
|
196
|
+
*/
|
|
64
197
|
field(): DescField & {
|
|
65
198
|
fieldKind: "map";
|
|
66
199
|
};
|
|
@@ -80,9 +213,15 @@ export interface ReflectMap<K extends MapEntryKey = MapEntryKey, V = unknown> ex
|
|
|
80
213
|
clear(): void;
|
|
81
214
|
[unsafeLocal]: Record<string, unknown>;
|
|
82
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* A ReflectMap key.
|
|
218
|
+
*/
|
|
83
219
|
export type MapEntryKey = string | number | bigint | boolean;
|
|
84
220
|
type enumVal = number;
|
|
85
|
-
|
|
221
|
+
/**
|
|
222
|
+
* The return type of ReflectMessage.get()
|
|
223
|
+
*/
|
|
224
|
+
export type ReflectGetValue<Field extends DescField = DescField> = (Field extends {
|
|
86
225
|
fieldKind: "map";
|
|
87
226
|
} ? (Field extends {
|
|
88
227
|
mapKind: "message";
|
|
@@ -95,25 +234,31 @@ type ReflectGetValue<Field extends DescField = DescField> = (Field extends {
|
|
|
95
234
|
fieldKind: "list";
|
|
96
235
|
} ? ReflectList : Field extends {
|
|
97
236
|
fieldKind: "enum";
|
|
98
|
-
} ? number
|
|
237
|
+
} ? number : Field extends {
|
|
99
238
|
fieldKind: "message";
|
|
100
239
|
} ? ReflectMessage : Field extends {
|
|
101
240
|
fieldKind: "scalar";
|
|
102
241
|
scalar: infer T;
|
|
103
|
-
} ? ScalarValue<T>
|
|
104
|
-
|
|
242
|
+
} ? ScalarValue<T> : never);
|
|
243
|
+
/**
|
|
244
|
+
* The type of the "value" argument of ReflectMessage.set()
|
|
245
|
+
*/
|
|
246
|
+
export type ReflectSetValue<Field extends DescField = DescField> = (Field extends {
|
|
105
247
|
fieldKind: "map";
|
|
106
248
|
} ? ReflectMap : Field extends {
|
|
107
249
|
fieldKind: "list";
|
|
108
250
|
} ? ReflectList : Field extends {
|
|
109
251
|
fieldKind: "enum";
|
|
110
|
-
} ? number
|
|
252
|
+
} ? number : Field extends {
|
|
111
253
|
fieldKind: "message";
|
|
112
254
|
} ? ReflectMessage : Field extends {
|
|
113
255
|
fieldKind: "scalar";
|
|
114
256
|
scalar: infer T;
|
|
115
|
-
} ? ScalarValue<T>
|
|
116
|
-
|
|
257
|
+
} ? ScalarValue<T> : never);
|
|
258
|
+
/**
|
|
259
|
+
* The type of the "value" argument of ReflectMessage.addListItem()
|
|
260
|
+
*/
|
|
261
|
+
export type ReflectAddListItemValue<Field extends DescField & {
|
|
117
262
|
fieldKind: "list";
|
|
118
263
|
}> = (Field extends {
|
|
119
264
|
listKind: "scalar";
|
|
@@ -123,7 +268,10 @@ type NewListItem<Field extends DescField & {
|
|
|
123
268
|
} ? enumVal : Field extends {
|
|
124
269
|
listKind: "message";
|
|
125
270
|
} ? ReflectMessage : never);
|
|
126
|
-
|
|
271
|
+
/**
|
|
272
|
+
* The type of the "value" argument of ReflectMessage.setMapEntry()
|
|
273
|
+
*/
|
|
274
|
+
export type ReflectSetMapEntryValue<Field extends DescField & {
|
|
127
275
|
fieldKind: "map";
|
|
128
276
|
}> = (Field extends {
|
|
129
277
|
mapKind: "enum";
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { DescField, DescMessage } from "../desc-types.js";
|
|
2
2
|
import type { MessageShape } from "../types.js";
|
|
3
3
|
import type { MapEntryKey, ReflectList, ReflectMap, ReflectMessage } from "./reflect-types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Create a ReflectMessage.
|
|
6
|
+
*/
|
|
4
7
|
export declare function reflect<Desc extends DescMessage>(messageDesc: Desc, message?: MessageShape<Desc>, opt?: {
|
|
5
8
|
/**
|
|
6
9
|
* By default, field values are validated when setting them. For example,
|
|
@@ -15,9 +18,15 @@ export declare function reflect<Desc extends DescMessage>(messageDesc: Desc, mes
|
|
|
15
18
|
*/
|
|
16
19
|
disableFieldValueCheck?: boolean;
|
|
17
20
|
}): ReflectMessage;
|
|
21
|
+
/**
|
|
22
|
+
* Create a ReflectList.
|
|
23
|
+
*/
|
|
18
24
|
export declare function reflectList<V>(field: DescField & {
|
|
19
25
|
fieldKind: "list";
|
|
20
|
-
}, unsafeInput?: unknown[]): ReflectList<V>;
|
|
26
|
+
}, unsafeInput?: unknown[], check?: boolean): ReflectList<V>;
|
|
27
|
+
/**
|
|
28
|
+
* Create a ReflectMap.
|
|
29
|
+
*/
|
|
21
30
|
export declare function reflectMap<K extends MapEntryKey, V>(field: DescField & {
|
|
22
31
|
fieldKind: "map";
|
|
23
|
-
}, unsafeInput?: Record<string, unknown
|
|
32
|
+
}, unsafeInput?: Record<string, unknown>, check?: boolean): ReflectMap<K, V>;
|