@bufbuild/protobuf 2.0.0-alpha.1 → 2.0.0-alpha.3
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/README.md +1 -1
- package/dist/cjs/clone.d.ts +1 -1
- package/dist/cjs/clone.js +2 -2
- package/dist/cjs/codegenv1/boot.d.ts +1 -1
- package/dist/cjs/codegenv1/boot.js +3 -5
- package/dist/cjs/codegenv1/embed.d.ts +2 -2
- package/dist/cjs/codegenv1/embed.js +51 -46
- package/dist/cjs/codegenv1/enum.d.ts +1 -1
- package/dist/cjs/codegenv1/enum.js +2 -4
- package/dist/cjs/codegenv1/extension.d.ts +1 -1
- package/dist/cjs/codegenv1/file.d.ts +1 -1
- package/dist/cjs/codegenv1/file.js +5 -7
- package/dist/cjs/codegenv1/index.d.ts +1 -0
- package/dist/cjs/codegenv1/index.js +1 -0
- package/dist/cjs/codegenv1/message.d.ts +1 -1
- 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/scalar.d.ts +5 -0
- package/dist/cjs/codegenv1/scalar.js +39 -0
- package/dist/cjs/codegenv1/service.d.ts +3 -3
- package/dist/cjs/codegenv1/symbols.d.ts +9 -0
- package/dist/cjs/codegenv1/symbols.js +9 -0
- package/dist/cjs/codegenv1/types.d.ts +59 -8
- package/dist/cjs/create.d.ts +1 -1
- package/dist/cjs/create.js +13 -23
- package/dist/cjs/{desc-types.d.ts → descriptors.d.ts} +66 -17
- package/dist/cjs/descriptors.js +53 -0
- package/dist/cjs/equals.d.ts +1 -1
- package/dist/cjs/extensions.d.ts +21 -1
- package/dist/cjs/extensions.js +42 -10
- package/dist/cjs/fields.d.ts +17 -16
- package/dist/cjs/fields.js +17 -10
- package/dist/cjs/from-binary.d.ts +2 -2
- package/dist/cjs/from-binary.js +31 -41
- package/dist/cjs/from-json.d.ts +4 -4
- package/dist/cjs/from-json.js +200 -185
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.js +5 -2
- package/dist/cjs/is-message.d.ts +1 -1
- package/dist/cjs/proto-int64.d.ts +4 -1
- package/dist/cjs/proto-int64.js +16 -6
- package/dist/cjs/reflect/error.d.ts +1 -1
- package/dist/cjs/reflect/guard.d.ts +1 -1
- package/dist/cjs/reflect/index.d.ts +0 -1
- package/dist/cjs/reflect/index.js +0 -1
- package/dist/cjs/reflect/names.d.ts +1 -13
- package/dist/cjs/reflect/names.js +2 -40
- package/dist/cjs/reflect/nested-types.d.ts +11 -1
- package/dist/cjs/reflect/nested-types.js +34 -1
- package/dist/cjs/reflect/reflect-check.d.ts +10 -1
- package/dist/cjs/reflect/reflect-check.js +126 -9
- package/dist/cjs/reflect/reflect-types.d.ts +162 -14
- package/dist/cjs/reflect/reflect.d.ts +12 -3
- package/dist/cjs/reflect/reflect.js +316 -290
- package/dist/cjs/reflect/scalar.d.ts +3 -55
- package/dist/cjs/reflect/scalar.js +26 -220
- package/dist/cjs/reflect/unsafe.d.ts +1 -1
- package/dist/cjs/reflect/unsafe.js +38 -43
- package/dist/cjs/{reflect/registry.d.ts → registry.d.ts} +2 -2
- package/dist/cjs/{reflect/registry.js → registry.js} +100 -73
- package/dist/cjs/to-binary.d.ts +1 -1
- package/dist/cjs/to-binary.js +28 -30
- package/dist/cjs/to-json.d.ts +7 -6
- package/dist/cjs/to-json.js +63 -70
- package/dist/cjs/types.d.ts +1 -1
- package/dist/cjs/wire/base64-encoding.js +4 -4
- package/dist/cjs/wire/binary-encoding.d.ts +25 -3
- package/dist/cjs/wire/binary-encoding.js +70 -18
- package/dist/cjs/wire/size-delimited.d.ts +1 -1
- package/dist/cjs/wire/text-format.d.ts +1 -2
- package/dist/cjs/wire/text-format.js +21 -19
- package/dist/cjs/wkt/any.d.ts +3 -3
- 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 +192 -0
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +187 -84
- 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/cjs/wkt/wrappers.d.ts +1 -1
- package/dist/esm/clone.d.ts +1 -1
- package/dist/esm/clone.js +1 -1
- package/dist/esm/codegenv1/boot.d.ts +1 -1
- package/dist/esm/codegenv1/boot.js +3 -5
- package/dist/esm/codegenv1/embed.d.ts +2 -2
- package/dist/esm/codegenv1/embed.js +34 -29
- package/dist/esm/codegenv1/enum.d.ts +1 -1
- package/dist/esm/codegenv1/enum.js +2 -4
- package/dist/esm/codegenv1/extension.d.ts +1 -1
- package/dist/esm/codegenv1/file.d.ts +1 -1
- package/dist/esm/codegenv1/file.js +4 -6
- package/dist/esm/codegenv1/index.d.ts +1 -0
- package/dist/esm/codegenv1/index.js +1 -0
- package/dist/esm/codegenv1/message.d.ts +1 -1
- 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/scalar.d.ts +5 -0
- package/dist/esm/codegenv1/scalar.js +35 -0
- package/dist/esm/codegenv1/service.d.ts +3 -3
- package/dist/esm/codegenv1/symbols.d.ts +9 -0
- package/dist/esm/codegenv1/symbols.js +9 -0
- package/dist/esm/codegenv1/types.d.ts +59 -8
- package/dist/esm/create.d.ts +1 -1
- package/dist/esm/create.js +11 -21
- package/dist/esm/{desc-types.d.ts → descriptors.d.ts} +66 -17
- package/dist/esm/descriptors.js +50 -0
- package/dist/esm/equals.d.ts +1 -1
- package/dist/esm/extensions.d.ts +21 -1
- package/dist/esm/extensions.js +39 -9
- package/dist/esm/fields.d.ts +17 -16
- package/dist/esm/fields.js +17 -10
- package/dist/esm/from-binary.d.ts +2 -2
- package/dist/esm/from-binary.js +13 -23
- package/dist/esm/from-json.d.ts +4 -4
- package/dist/esm/from-json.js +193 -178
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +3 -2
- package/dist/esm/is-message.d.ts +1 -1
- package/dist/esm/proto-int64.d.ts +4 -1
- package/dist/esm/proto-int64.js +16 -6
- package/dist/esm/reflect/error.d.ts +1 -1
- package/dist/esm/reflect/guard.d.ts +1 -1
- package/dist/esm/reflect/index.d.ts +0 -1
- package/dist/esm/reflect/index.js +0 -1
- package/dist/esm/reflect/names.d.ts +1 -13
- package/dist/esm/reflect/names.js +1 -38
- package/dist/esm/reflect/nested-types.d.ts +11 -1
- package/dist/esm/reflect/nested-types.js +32 -0
- package/dist/esm/reflect/reflect-check.d.ts +10 -1
- package/dist/esm/reflect/reflect-check.js +119 -2
- package/dist/esm/reflect/reflect-types.d.ts +162 -14
- package/dist/esm/reflect/reflect-types.js +1 -0
- package/dist/esm/reflect/reflect.d.ts +12 -3
- package/dist/esm/reflect/reflect.js +305 -279
- package/dist/esm/reflect/scalar.d.ts +3 -55
- package/dist/esm/reflect/scalar.js +14 -205
- package/dist/esm/reflect/unsafe.d.ts +1 -1
- package/dist/esm/reflect/unsafe.js +38 -43
- package/dist/esm/{reflect/registry.d.ts → registry.d.ts} +2 -2
- package/dist/esm/{reflect/registry.js → registry.js} +90 -63
- package/dist/esm/to-binary.d.ts +1 -1
- package/dist/esm/to-binary.js +2 -4
- package/dist/esm/to-json.d.ts +7 -6
- package/dist/esm/to-json.js +48 -55
- package/dist/esm/types.d.ts +1 -1
- package/dist/esm/wire/base64-encoding.js +4 -4
- package/dist/esm/wire/binary-encoding.d.ts +25 -3
- package/dist/esm/wire/binary-encoding.js +63 -11
- package/dist/esm/wire/size-delimited.d.ts +1 -1
- package/dist/esm/wire/text-format.d.ts +1 -2
- package/dist/esm/wire/text-format.js +5 -3
- package/dist/esm/wkt/any.d.ts +3 -3
- 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 +192 -0
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +187 -84
- 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/dist/esm/wkt/wrappers.d.ts +1 -1
- package/package.json +2 -2
- package/dist/cjs/desc-types.js +0 -15
- package/dist/cjs/reflect/assert.d.ts +0 -16
- package/dist/cjs/reflect/assert.js +0 -59
- package/dist/esm/desc-types.js +0 -14
- package/dist/esm/reflect/assert.d.ts +0 -16
- package/dist/esm/reflect/assert.js +0 -52
package/dist/cjs/is-message.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MessageShape } from "./types.js";
|
|
2
|
-
import type { DescMessage } from "./
|
|
2
|
+
import type { DescMessage } from "./descriptors.js";
|
|
3
3
|
/**
|
|
4
4
|
* Determine whether the given `arg` is a message.
|
|
5
5
|
* If `desc` is set, determine whether `arg` is this specific message.
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Int64Support for the current environment.
|
|
3
|
+
*/
|
|
4
|
+
export declare const protoInt64: Int64Support;
|
|
1
5
|
/**
|
|
2
6
|
* We use the `bigint` primitive to represent 64-bit integral types. If bigint
|
|
3
7
|
* is unavailable, we fall back to a string representation, which means that
|
|
@@ -91,5 +95,4 @@ interface Int64Support {
|
|
|
91
95
|
*/
|
|
92
96
|
uDec(lo: number, hi: number): bigint;
|
|
93
97
|
}
|
|
94
|
-
export declare const protoInt64: Int64Support;
|
|
95
98
|
export {};
|
package/dist/cjs/proto-int64.js
CHANGED
|
@@ -14,8 +14,11 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.protoInt64 = void 0;
|
|
17
|
-
const assert_js_1 = require("./reflect/assert.js");
|
|
18
17
|
const varint_js_1 = require("./wire/varint.js");
|
|
18
|
+
/**
|
|
19
|
+
* Int64Support for the current environment.
|
|
20
|
+
*/
|
|
21
|
+
exports.protoInt64 = makeInt64Support();
|
|
19
22
|
function makeInt64Support() {
|
|
20
23
|
const dv = new DataView(new ArrayBuffer(8));
|
|
21
24
|
// note that Safari 14 implements BigInt, but not the DataView methods
|
|
@@ -35,14 +38,14 @@ function makeInt64Support() {
|
|
|
35
38
|
parse(value) {
|
|
36
39
|
const bi = typeof value == "bigint" ? value : BigInt(value);
|
|
37
40
|
if (bi > MAX || bi < MIN) {
|
|
38
|
-
throw new Error(`int64
|
|
41
|
+
throw new Error(`invalid int64: ${value}`);
|
|
39
42
|
}
|
|
40
43
|
return bi;
|
|
41
44
|
},
|
|
42
45
|
uParse(value) {
|
|
43
46
|
const bi = typeof value == "bigint" ? value : BigInt(value);
|
|
44
47
|
if (bi > UMAX || bi < UMIN) {
|
|
45
|
-
throw new Error(`uint64
|
|
48
|
+
throw new Error(`invalid uint64: ${value}`);
|
|
46
49
|
}
|
|
47
50
|
return bi;
|
|
48
51
|
},
|
|
@@ -72,8 +75,6 @@ function makeInt64Support() {
|
|
|
72
75
|
},
|
|
73
76
|
};
|
|
74
77
|
}
|
|
75
|
-
const assertInt64String = (value) => (0, assert_js_1.assert)(/^-?[0-9]+$/.test(value), `int64 invalid: ${value}`);
|
|
76
|
-
const assertUInt64String = (value) => (0, assert_js_1.assert)(/^[0-9]+$/.test(value), `uint64 invalid: ${value}`);
|
|
77
78
|
return {
|
|
78
79
|
zero: "0",
|
|
79
80
|
supported: false,
|
|
@@ -113,4 +114,13 @@ function makeInt64Support() {
|
|
|
113
114
|
},
|
|
114
115
|
};
|
|
115
116
|
}
|
|
116
|
-
|
|
117
|
+
function assertInt64String(value) {
|
|
118
|
+
if (!/^-?[0-9]+$/.test(value)) {
|
|
119
|
+
throw new Error("invalid int64: " + value);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function assertUInt64String(value) {
|
|
123
|
+
if (!/^[0-9]+$/.test(value)) {
|
|
124
|
+
throw new Error("invalid uint64: " + value);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Message } from "../types.js";
|
|
2
2
|
import type { ScalarValue } from "./scalar.js";
|
|
3
3
|
import type { ReflectList, ReflectMap, ReflectMessage } from "./reflect-types.js";
|
|
4
|
-
import type { DescField, DescMessage } from "../
|
|
4
|
+
import type { DescField, DescMessage } from "../descriptors.js";
|
|
5
5
|
export declare function isObject(arg: unknown): arg is Record<string, unknown>;
|
|
6
6
|
export declare function isOneofADT(arg: unknown): arg is OneofADT;
|
|
7
7
|
export type OneofADT = {
|
|
@@ -3,6 +3,5 @@ export * from "./names.js";
|
|
|
3
3
|
export * from "./nested-types.js";
|
|
4
4
|
export * from "./reflect.js";
|
|
5
5
|
export * from "./reflect-types.js";
|
|
6
|
-
export * from "./registry.js";
|
|
7
6
|
export * from "./scalar.js";
|
|
8
7
|
export { isReflectList, isReflectMap, isReflectMessage } from "./guard.js";
|
|
@@ -33,7 +33,6 @@ __exportStar(require("./names.js"), exports);
|
|
|
33
33
|
__exportStar(require("./nested-types.js"), exports);
|
|
34
34
|
__exportStar(require("./reflect.js"), exports);
|
|
35
35
|
__exportStar(require("./reflect-types.js"), exports);
|
|
36
|
-
__exportStar(require("./registry.js"), exports);
|
|
37
36
|
__exportStar(require("./scalar.js"), exports);
|
|
38
37
|
var guard_js_1 = require("./guard.js");
|
|
39
38
|
Object.defineProperty(exports, "isReflectList", { enumerable: true, get: function () { return guard_js_1.isReflectList; } });
|
|
@@ -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.
|
|
@@ -18,6 +6,6 @@ export declare function protoCamelCase(snakeCase: string): string;
|
|
|
18
6
|
/**
|
|
19
7
|
* Escapes names that are reserved for ECMAScript built-in object properties.
|
|
20
8
|
*
|
|
21
|
-
* Also see safeIdentifier() from @bufbuild/protoplugin
|
|
9
|
+
* Also see safeIdentifier() from @bufbuild/protoplugin.
|
|
22
10
|
*/
|
|
23
11
|
export declare function safeObjectProperty(name: string): string;
|
|
@@ -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.
|
|
@@ -104,7 +66,7 @@ const reservedObjectProperties = new Set([
|
|
|
104
66
|
/**
|
|
105
67
|
* Escapes names that are reserved for ECMAScript built-in object properties.
|
|
106
68
|
*
|
|
107
|
-
* Also see safeIdentifier() from @bufbuild/protoplugin
|
|
69
|
+
* Also see safeIdentifier() from @bufbuild/protoplugin.
|
|
108
70
|
*/
|
|
109
71
|
function safeObjectProperty(name) {
|
|
110
72
|
return reservedObjectProperties.has(name) ? name + "$" : name;
|
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
import type { DescEnum, DescExtension, DescFile, DescMessage, DescService } from "../
|
|
1
|
+
import type { AnyDesc, DescEnum, DescExtension, DescFile, DescMessage, DescService } from "../descriptors.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
|
+
}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type DescField } from "../descriptors.js";
|
|
2
2
|
import { FieldError } from "./error.js";
|
|
3
|
+
/**
|
|
4
|
+
* Check whether the given field value is valid for the reflect API.
|
|
5
|
+
*/
|
|
3
6
|
export declare function checkField(field: DescField, value: unknown): FieldError | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Check whether the given list item is valid for the reflect API.
|
|
9
|
+
*/
|
|
4
10
|
export declare function checkListItem(field: DescField & {
|
|
5
11
|
fieldKind: "list";
|
|
6
12
|
}, index: number, value: unknown): FieldError | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Check whether the given map key and value are valid for the reflect API.
|
|
15
|
+
*/
|
|
7
16
|
export declare function checkMapEntry(field: DescField & {
|
|
8
17
|
fieldKind: "map";
|
|
9
18
|
}, key: unknown, value: unknown): FieldError | undefined;
|
|
@@ -14,11 +14,16 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.formatVal = exports.checkMapEntry = exports.checkListItem = exports.checkField = void 0;
|
|
17
|
-
const
|
|
18
|
-
const scalar_js_2 = require("./scalar.js");
|
|
17
|
+
const descriptors_js_1 = require("../descriptors.js");
|
|
19
18
|
const is_message_js_1 = require("../is-message.js");
|
|
20
19
|
const error_js_1 = require("./error.js");
|
|
21
20
|
const guard_js_1 = require("./guard.js");
|
|
21
|
+
const binary_encoding_js_1 = require("../wire/binary-encoding.js");
|
|
22
|
+
const text_encoding_js_1 = require("../wire/text-encoding.js");
|
|
23
|
+
const proto_int64_js_1 = require("../proto-int64.js");
|
|
24
|
+
/**
|
|
25
|
+
* Check whether the given field value is valid for the reflect API.
|
|
26
|
+
*/
|
|
22
27
|
function checkField(field, value) {
|
|
23
28
|
const check = field.fieldKind == "list"
|
|
24
29
|
? (0, guard_js_1.isReflectList)(value, field)
|
|
@@ -43,6 +48,9 @@ function checkField(field, value) {
|
|
|
43
48
|
return new error_js_1.FieldError(field, reason);
|
|
44
49
|
}
|
|
45
50
|
exports.checkField = checkField;
|
|
51
|
+
/**
|
|
52
|
+
* Check whether the given list item is valid for the reflect API.
|
|
53
|
+
*/
|
|
46
54
|
function checkListItem(field, index, value) {
|
|
47
55
|
const check = checkSingular(field, value);
|
|
48
56
|
if (check !== true) {
|
|
@@ -51,8 +59,11 @@ function checkListItem(field, index, value) {
|
|
|
51
59
|
return undefined;
|
|
52
60
|
}
|
|
53
61
|
exports.checkListItem = checkListItem;
|
|
62
|
+
/**
|
|
63
|
+
* Check whether the given map key and value are valid for the reflect API.
|
|
64
|
+
*/
|
|
54
65
|
function checkMapEntry(field, key, value) {
|
|
55
|
-
const checkKey =
|
|
66
|
+
const checkKey = checkScalarValue(key, field.mapKey);
|
|
56
67
|
if (checkKey !== true) {
|
|
57
68
|
return new error_js_1.FieldError(field, `invalid map key: ${reasonSingular({ scalar: field.mapKey }, key, checkKey)}`);
|
|
58
69
|
}
|
|
@@ -65,7 +76,7 @@ function checkMapEntry(field, key, value) {
|
|
|
65
76
|
exports.checkMapEntry = checkMapEntry;
|
|
66
77
|
function checkSingular(field, value) {
|
|
67
78
|
if (field.scalar !== undefined) {
|
|
68
|
-
return
|
|
79
|
+
return checkScalarValue(value, field.scalar);
|
|
69
80
|
}
|
|
70
81
|
if (field.enum !== undefined) {
|
|
71
82
|
if (field.enum.open) {
|
|
@@ -75,11 +86,89 @@ function checkSingular(field, value) {
|
|
|
75
86
|
}
|
|
76
87
|
return (0, guard_js_1.isReflectMessage)(value, field.message);
|
|
77
88
|
}
|
|
89
|
+
function checkScalarValue(value, scalar) {
|
|
90
|
+
switch (scalar) {
|
|
91
|
+
case descriptors_js_1.ScalarType.DOUBLE:
|
|
92
|
+
return typeof value == "number";
|
|
93
|
+
case descriptors_js_1.ScalarType.FLOAT:
|
|
94
|
+
if (typeof value != "number") {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
if (Number.isNaN(value) || !Number.isFinite(value)) {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
if (value > binary_encoding_js_1.FLOAT32_MAX || value < binary_encoding_js_1.FLOAT32_MIN) {
|
|
101
|
+
return `${value.toFixed()} out of range`;
|
|
102
|
+
}
|
|
103
|
+
return true;
|
|
104
|
+
case descriptors_js_1.ScalarType.INT32:
|
|
105
|
+
case descriptors_js_1.ScalarType.SFIXED32:
|
|
106
|
+
case descriptors_js_1.ScalarType.SINT32:
|
|
107
|
+
// signed
|
|
108
|
+
if (typeof value !== "number" || !Number.isInteger(value)) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
if (value > binary_encoding_js_1.INT32_MAX || value < binary_encoding_js_1.INT32_MIN) {
|
|
112
|
+
return `${value.toFixed()} out of range`;
|
|
113
|
+
}
|
|
114
|
+
return true;
|
|
115
|
+
case descriptors_js_1.ScalarType.FIXED32:
|
|
116
|
+
case descriptors_js_1.ScalarType.UINT32:
|
|
117
|
+
// unsigned
|
|
118
|
+
if (typeof value !== "number" || !Number.isInteger(value)) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
if (value > binary_encoding_js_1.UINT32_MAX || value < 0) {
|
|
122
|
+
return `${value.toFixed()} out of range`;
|
|
123
|
+
}
|
|
124
|
+
return true;
|
|
125
|
+
case descriptors_js_1.ScalarType.BOOL:
|
|
126
|
+
return typeof value == "boolean";
|
|
127
|
+
case descriptors_js_1.ScalarType.STRING:
|
|
128
|
+
if (typeof value != "string") {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
return (0, text_encoding_js_1.getTextEncoding)().checkUtf8(value) || "invalid UTF8";
|
|
132
|
+
case descriptors_js_1.ScalarType.BYTES:
|
|
133
|
+
return value instanceof Uint8Array;
|
|
134
|
+
case descriptors_js_1.ScalarType.INT64:
|
|
135
|
+
case descriptors_js_1.ScalarType.SFIXED64:
|
|
136
|
+
case descriptors_js_1.ScalarType.SINT64:
|
|
137
|
+
// signed
|
|
138
|
+
if (typeof value != "string" &&
|
|
139
|
+
typeof value !== "bigint" &&
|
|
140
|
+
typeof value !== "number") {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
try {
|
|
144
|
+
proto_int64_js_1.protoInt64.parse(value);
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
return `${value} out of range`;
|
|
148
|
+
}
|
|
149
|
+
return true;
|
|
150
|
+
case descriptors_js_1.ScalarType.FIXED64:
|
|
151
|
+
case descriptors_js_1.ScalarType.UINT64:
|
|
152
|
+
// unsigned
|
|
153
|
+
if (typeof value != "string" &&
|
|
154
|
+
typeof value !== "bigint" &&
|
|
155
|
+
typeof value !== "number") {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
try {
|
|
159
|
+
proto_int64_js_1.protoInt64.uParse(value);
|
|
160
|
+
}
|
|
161
|
+
catch (e) {
|
|
162
|
+
return `${value} out of range`;
|
|
163
|
+
}
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
78
167
|
function reasonSingular(field, val, details) {
|
|
79
168
|
details =
|
|
80
169
|
typeof details == "string" ? `: ${details}` : `, got ${formatVal(val)}`;
|
|
81
170
|
if (field.scalar !== undefined) {
|
|
82
|
-
return `expected ${
|
|
171
|
+
return `expected ${scalarTypeDescription(field.scalar)}` + details;
|
|
83
172
|
}
|
|
84
173
|
else if (field.enum !== undefined) {
|
|
85
174
|
return `expected ${field.enum.toString()}` + details;
|
|
@@ -135,16 +224,44 @@ function formatReflectList(field) {
|
|
|
135
224
|
case "enum":
|
|
136
225
|
return `ReflectList (${field.enum.toString()})`;
|
|
137
226
|
case "scalar":
|
|
138
|
-
return `ReflectList (${
|
|
227
|
+
return `ReflectList (${descriptors_js_1.ScalarType[field.scalar]})`;
|
|
139
228
|
}
|
|
140
229
|
}
|
|
141
230
|
function formatReflectMap(field) {
|
|
142
231
|
switch (field.mapKind) {
|
|
143
232
|
case "message":
|
|
144
|
-
return `ReflectMap (${
|
|
233
|
+
return `ReflectMap (${descriptors_js_1.ScalarType[field.mapKey]}, ${field.message.toString()})`;
|
|
145
234
|
case "enum":
|
|
146
|
-
return `ReflectMap (${
|
|
235
|
+
return `ReflectMap (${descriptors_js_1.ScalarType[field.mapKey]}, ${field.enum.toString()})`;
|
|
147
236
|
case "scalar":
|
|
148
|
-
return `ReflectMap (${
|
|
237
|
+
return `ReflectMap (${descriptors_js_1.ScalarType[field.mapKey]}, ${descriptors_js_1.ScalarType[field.scalar]})`;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
function scalarTypeDescription(scalar) {
|
|
241
|
+
switch (scalar) {
|
|
242
|
+
case descriptors_js_1.ScalarType.STRING:
|
|
243
|
+
return "string";
|
|
244
|
+
case descriptors_js_1.ScalarType.BOOL:
|
|
245
|
+
return "boolean";
|
|
246
|
+
case descriptors_js_1.ScalarType.INT64:
|
|
247
|
+
case descriptors_js_1.ScalarType.SINT64:
|
|
248
|
+
case descriptors_js_1.ScalarType.SFIXED64:
|
|
249
|
+
return "bigint (int64)";
|
|
250
|
+
case descriptors_js_1.ScalarType.UINT64:
|
|
251
|
+
case descriptors_js_1.ScalarType.FIXED64:
|
|
252
|
+
return "bigint (uint64)";
|
|
253
|
+
case descriptors_js_1.ScalarType.BYTES:
|
|
254
|
+
return "Uint8Array";
|
|
255
|
+
case descriptors_js_1.ScalarType.DOUBLE:
|
|
256
|
+
return "number (float64)";
|
|
257
|
+
case descriptors_js_1.ScalarType.FLOAT:
|
|
258
|
+
return "number (float32)";
|
|
259
|
+
case descriptors_js_1.ScalarType.FIXED32:
|
|
260
|
+
case descriptors_js_1.ScalarType.UINT32:
|
|
261
|
+
return "number (uint32)";
|
|
262
|
+
case descriptors_js_1.ScalarType.INT32:
|
|
263
|
+
case descriptors_js_1.ScalarType.SFIXED32:
|
|
264
|
+
case descriptors_js_1.ScalarType.SINT32:
|
|
265
|
+
return "number (int32)";
|
|
149
266
|
}
|
|
150
267
|
}
|