@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
|
@@ -1,56 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
* Scalar value types. This is a subset of field types declared by protobuf
|
|
3
|
-
* enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE
|
|
4
|
-
* are omitted, but the numerical values are identical.
|
|
5
|
-
*/
|
|
6
|
-
export declare enum ScalarType {
|
|
7
|
-
DOUBLE = 1,
|
|
8
|
-
FLOAT = 2,
|
|
9
|
-
INT64 = 3,
|
|
10
|
-
UINT64 = 4,
|
|
11
|
-
INT32 = 5,
|
|
12
|
-
FIXED64 = 6,
|
|
13
|
-
FIXED32 = 7,
|
|
14
|
-
BOOL = 8,
|
|
15
|
-
STRING = 9,
|
|
16
|
-
BYTES = 12,
|
|
17
|
-
UINT32 = 13,
|
|
18
|
-
SFIXED32 = 15,
|
|
19
|
-
SFIXED64 = 16,
|
|
20
|
-
SINT32 = 17,// Uses ZigZag encoding.
|
|
21
|
-
SINT64 = 18
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* JavaScript representation of fields with 64 bit integral types (int64, uint64,
|
|
25
|
-
* sint64, fixed64, sfixed64).
|
|
26
|
-
*
|
|
27
|
-
* This is a subset of google.protobuf.FieldOptions.JSType, which defines JS_NORMAL,
|
|
28
|
-
* JS_STRING, and JS_NUMBER. Protobuf-ES uses BigInt by default, but will use
|
|
29
|
-
* String if `[jstype = JS_STRING]` is specified.
|
|
30
|
-
*
|
|
31
|
-
* ```protobuf
|
|
32
|
-
* uint64 field_a = 1; // BigInt
|
|
33
|
-
* uint64 field_b = 2 [jstype = JS_NORMAL]; // BigInt
|
|
34
|
-
* uint64 field_b = 2 [jstype = JS_NUMBER]; // BigInt
|
|
35
|
-
* uint64 field_b = 2 [jstype = JS_STRING]; // String
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
export declare enum LongType {
|
|
39
|
-
/**
|
|
40
|
-
* Use JavaScript BigInt.
|
|
41
|
-
*/
|
|
42
|
-
BIGINT = 0,
|
|
43
|
-
/**
|
|
44
|
-
* Use JavaScript String.
|
|
45
|
-
*
|
|
46
|
-
* Field option `[jstype = JS_STRING]`.
|
|
47
|
-
*/
|
|
48
|
-
STRING = 1
|
|
49
|
-
}
|
|
1
|
+
import { ScalarType } from "../descriptors.js";
|
|
50
2
|
/**
|
|
51
3
|
* ScalarValue maps from a scalar field type to a TypeScript value type.
|
|
52
4
|
*/
|
|
53
|
-
export type ScalarValue<T = ScalarType,
|
|
5
|
+
export type ScalarValue<T = ScalarType, LongAsString extends boolean = false> = T extends ScalarType.STRING ? string : T extends ScalarType.INT32 ? number : T extends ScalarType.UINT32 ? number : T extends ScalarType.SINT32 ? number : T extends ScalarType.FIXED32 ? number : T extends ScalarType.SFIXED32 ? number : T extends ScalarType.FLOAT ? number : T extends ScalarType.DOUBLE ? number : T extends ScalarType.INT64 ? LongAsString extends true ? string : bigint : T extends ScalarType.SINT64 ? LongAsString extends true ? string : bigint : T extends ScalarType.SFIXED64 ? LongAsString extends true ? string : bigint : T extends ScalarType.UINT64 ? LongAsString extends true ? string : bigint : T extends ScalarType.FIXED64 ? LongAsString extends true ? string : bigint : T extends ScalarType.BOOL ? boolean : T extends ScalarType.BYTES ? Uint8Array : never;
|
|
54
6
|
/**
|
|
55
7
|
* Returns true if both scalar values are equal.
|
|
56
8
|
*/
|
|
@@ -58,7 +10,7 @@ export declare function scalarEquals(type: ScalarType, a: string | boolean | num
|
|
|
58
10
|
/**
|
|
59
11
|
* Returns the zero value for the given scalar type.
|
|
60
12
|
*/
|
|
61
|
-
export declare function scalarZeroValue<T extends ScalarType,
|
|
13
|
+
export declare function scalarZeroValue<T extends ScalarType, LongAsString extends boolean>(type: T, longAsString: LongAsString): ScalarValue<T, LongAsString>;
|
|
62
14
|
/**
|
|
63
15
|
* Returns true for a zero-value. For example, an integer has the zero-value `0`,
|
|
64
16
|
* a boolean is `false`, a string is `""`, and bytes is an empty Uint8Array.
|
|
@@ -67,7 +19,3 @@ export declare function scalarZeroValue<T extends ScalarType, L extends LongType
|
|
|
67
19
|
* optional or repeated.
|
|
68
20
|
*/
|
|
69
21
|
export declare function isScalarZeroValue(type: ScalarType, value: unknown): boolean;
|
|
70
|
-
export type InvalidScalarValueErr = false | "invalid UTF8" | `${string} out of range`;
|
|
71
|
-
export declare function checkScalarValue(value: unknown, scalar: ScalarType): true | InvalidScalarValueErr;
|
|
72
|
-
export declare function scalarTypeDescription(scalar: ScalarType): string;
|
|
73
|
-
export declare function scalarTypeScriptType(scalar: ScalarType, long: LongType): "string" | "boolean" | "bigint" | "bigint | string" | "Uint8Array" | "number";
|
|
@@ -12,72 +12,7 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
import { protoInt64 } from "../proto-int64.js";
|
|
15
|
-
import {
|
|
16
|
-
/**
|
|
17
|
-
* Scalar value types. This is a subset of field types declared by protobuf
|
|
18
|
-
* enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE
|
|
19
|
-
* are omitted, but the numerical values are identical.
|
|
20
|
-
*/
|
|
21
|
-
export var ScalarType;
|
|
22
|
-
(function (ScalarType) {
|
|
23
|
-
// 0 is reserved for errors.
|
|
24
|
-
// Order is weird for historical reasons.
|
|
25
|
-
ScalarType[ScalarType["DOUBLE"] = 1] = "DOUBLE";
|
|
26
|
-
ScalarType[ScalarType["FLOAT"] = 2] = "FLOAT";
|
|
27
|
-
// Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
|
|
28
|
-
// negative values are likely.
|
|
29
|
-
ScalarType[ScalarType["INT64"] = 3] = "INT64";
|
|
30
|
-
ScalarType[ScalarType["UINT64"] = 4] = "UINT64";
|
|
31
|
-
// Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
|
|
32
|
-
// negative values are likely.
|
|
33
|
-
ScalarType[ScalarType["INT32"] = 5] = "INT32";
|
|
34
|
-
ScalarType[ScalarType["FIXED64"] = 6] = "FIXED64";
|
|
35
|
-
ScalarType[ScalarType["FIXED32"] = 7] = "FIXED32";
|
|
36
|
-
ScalarType[ScalarType["BOOL"] = 8] = "BOOL";
|
|
37
|
-
ScalarType[ScalarType["STRING"] = 9] = "STRING";
|
|
38
|
-
// Tag-delimited aggregate.
|
|
39
|
-
// Group type is deprecated and not supported in proto3. However, Proto3
|
|
40
|
-
// implementations should still be able to parse the group wire format and
|
|
41
|
-
// treat group fields as unknown fields.
|
|
42
|
-
// TYPE_GROUP = 10,
|
|
43
|
-
// TYPE_MESSAGE = 11, // Length-delimited aggregate.
|
|
44
|
-
// New in version 2.
|
|
45
|
-
ScalarType[ScalarType["BYTES"] = 12] = "BYTES";
|
|
46
|
-
ScalarType[ScalarType["UINT32"] = 13] = "UINT32";
|
|
47
|
-
// TYPE_ENUM = 14,
|
|
48
|
-
ScalarType[ScalarType["SFIXED32"] = 15] = "SFIXED32";
|
|
49
|
-
ScalarType[ScalarType["SFIXED64"] = 16] = "SFIXED64";
|
|
50
|
-
ScalarType[ScalarType["SINT32"] = 17] = "SINT32";
|
|
51
|
-
ScalarType[ScalarType["SINT64"] = 18] = "SINT64";
|
|
52
|
-
})(ScalarType || (ScalarType = {}));
|
|
53
|
-
/**
|
|
54
|
-
* JavaScript representation of fields with 64 bit integral types (int64, uint64,
|
|
55
|
-
* sint64, fixed64, sfixed64).
|
|
56
|
-
*
|
|
57
|
-
* This is a subset of google.protobuf.FieldOptions.JSType, which defines JS_NORMAL,
|
|
58
|
-
* JS_STRING, and JS_NUMBER. Protobuf-ES uses BigInt by default, but will use
|
|
59
|
-
* String if `[jstype = JS_STRING]` is specified.
|
|
60
|
-
*
|
|
61
|
-
* ```protobuf
|
|
62
|
-
* uint64 field_a = 1; // BigInt
|
|
63
|
-
* uint64 field_b = 2 [jstype = JS_NORMAL]; // BigInt
|
|
64
|
-
* uint64 field_b = 2 [jstype = JS_NUMBER]; // BigInt
|
|
65
|
-
* uint64 field_b = 2 [jstype = JS_STRING]; // String
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
export var LongType;
|
|
69
|
-
(function (LongType) {
|
|
70
|
-
/**
|
|
71
|
-
* Use JavaScript BigInt.
|
|
72
|
-
*/
|
|
73
|
-
LongType[LongType["BIGINT"] = 0] = "BIGINT";
|
|
74
|
-
/**
|
|
75
|
-
* Use JavaScript String.
|
|
76
|
-
*
|
|
77
|
-
* Field option `[jstype = JS_STRING]`.
|
|
78
|
-
*/
|
|
79
|
-
LongType[LongType["STRING"] = 1] = "STRING";
|
|
80
|
-
})(LongType || (LongType = {}));
|
|
15
|
+
import { ScalarType } from "../descriptors.js";
|
|
81
16
|
/**
|
|
82
17
|
* Returns true if both scalar values are equal.
|
|
83
18
|
*/
|
|
@@ -119,27 +54,27 @@ export function scalarEquals(type, a, b) {
|
|
|
119
54
|
/**
|
|
120
55
|
* Returns the zero value for the given scalar type.
|
|
121
56
|
*/
|
|
122
|
-
export function scalarZeroValue(type,
|
|
57
|
+
export function scalarZeroValue(type, longAsString) {
|
|
123
58
|
switch (type) {
|
|
59
|
+
case ScalarType.STRING:
|
|
60
|
+
return "";
|
|
124
61
|
case ScalarType.BOOL:
|
|
125
62
|
return false;
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
case ScalarType.SINT64:
|
|
131
|
-
return (longType == 0 ? protoInt64.zero : "0");
|
|
63
|
+
default:
|
|
64
|
+
// Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.
|
|
65
|
+
// We do not use individual cases to save a few bytes code size.
|
|
66
|
+
return 0;
|
|
132
67
|
case ScalarType.DOUBLE:
|
|
133
68
|
case ScalarType.FLOAT:
|
|
134
69
|
return 0.0;
|
|
70
|
+
case ScalarType.INT64:
|
|
71
|
+
case ScalarType.UINT64:
|
|
72
|
+
case ScalarType.SFIXED64:
|
|
73
|
+
case ScalarType.FIXED64:
|
|
74
|
+
case ScalarType.SINT64:
|
|
75
|
+
return (longAsString ? "0" : protoInt64.zero);
|
|
135
76
|
case ScalarType.BYTES:
|
|
136
77
|
return new Uint8Array(0);
|
|
137
|
-
case ScalarType.STRING:
|
|
138
|
-
return "";
|
|
139
|
-
default:
|
|
140
|
-
// Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.
|
|
141
|
-
// We do not use individual cases to save a few bytes code size.
|
|
142
|
-
return 0;
|
|
143
78
|
}
|
|
144
79
|
}
|
|
145
80
|
/**
|
|
@@ -161,129 +96,3 @@ export function isScalarZeroValue(type, value) {
|
|
|
161
96
|
return value == 0; // Loose comparison matches 0n, 0 and "0"
|
|
162
97
|
}
|
|
163
98
|
}
|
|
164
|
-
const FLOAT32_MAX = 3.4028234663852886e38, FLOAT32_MIN = -3.4028234663852886e38, UINT32_MAX = 0xffffffff, INT32_MAX = 0x7fffffff, INT32_MIN = -0x80000000;
|
|
165
|
-
// TODO this checks UTF-8 validity
|
|
166
|
-
export function checkScalarValue(value, scalar) {
|
|
167
|
-
switch (scalar) {
|
|
168
|
-
case ScalarType.DOUBLE:
|
|
169
|
-
return typeof value == "number";
|
|
170
|
-
case ScalarType.FLOAT:
|
|
171
|
-
if (typeof value != "number") {
|
|
172
|
-
return false;
|
|
173
|
-
}
|
|
174
|
-
if (Number.isNaN(value) || !Number.isFinite(value)) {
|
|
175
|
-
return true;
|
|
176
|
-
}
|
|
177
|
-
if (value > FLOAT32_MAX || value < FLOAT32_MIN) {
|
|
178
|
-
return `${value.toFixed()} out of range`;
|
|
179
|
-
}
|
|
180
|
-
return true;
|
|
181
|
-
case ScalarType.INT32:
|
|
182
|
-
case ScalarType.SFIXED32:
|
|
183
|
-
case ScalarType.SINT32:
|
|
184
|
-
// signed
|
|
185
|
-
if (typeof value !== "number" || !Number.isInteger(value)) {
|
|
186
|
-
return false;
|
|
187
|
-
}
|
|
188
|
-
if (value > INT32_MAX || value < INT32_MIN) {
|
|
189
|
-
return `${value.toFixed()} out of range`;
|
|
190
|
-
}
|
|
191
|
-
return true;
|
|
192
|
-
case ScalarType.FIXED32:
|
|
193
|
-
case ScalarType.UINT32:
|
|
194
|
-
// unsigned
|
|
195
|
-
if (typeof value !== "number" || !Number.isInteger(value)) {
|
|
196
|
-
return false;
|
|
197
|
-
}
|
|
198
|
-
if (value > UINT32_MAX || value < 0) {
|
|
199
|
-
return `${value.toFixed()} out of range`;
|
|
200
|
-
}
|
|
201
|
-
return true;
|
|
202
|
-
case ScalarType.BOOL:
|
|
203
|
-
return typeof value == "boolean";
|
|
204
|
-
case ScalarType.STRING:
|
|
205
|
-
if (typeof value != "string") {
|
|
206
|
-
return false;
|
|
207
|
-
}
|
|
208
|
-
return getTextEncoding().checkUtf8(value) || "invalid UTF8";
|
|
209
|
-
case ScalarType.BYTES:
|
|
210
|
-
return value instanceof Uint8Array;
|
|
211
|
-
case ScalarType.INT64:
|
|
212
|
-
case ScalarType.SFIXED64:
|
|
213
|
-
case ScalarType.SINT64:
|
|
214
|
-
// signed
|
|
215
|
-
if (typeof value != "string" &&
|
|
216
|
-
typeof value !== "bigint" &&
|
|
217
|
-
typeof value !== "number") {
|
|
218
|
-
return false;
|
|
219
|
-
}
|
|
220
|
-
try {
|
|
221
|
-
protoInt64.parse(value);
|
|
222
|
-
}
|
|
223
|
-
catch (e) {
|
|
224
|
-
return `${value} out of range`;
|
|
225
|
-
}
|
|
226
|
-
return true;
|
|
227
|
-
case ScalarType.FIXED64:
|
|
228
|
-
case ScalarType.UINT64:
|
|
229
|
-
// unsigned
|
|
230
|
-
if (typeof value != "string" &&
|
|
231
|
-
typeof value !== "bigint" &&
|
|
232
|
-
typeof value !== "number") {
|
|
233
|
-
return false;
|
|
234
|
-
}
|
|
235
|
-
try {
|
|
236
|
-
protoInt64.uParse(value);
|
|
237
|
-
}
|
|
238
|
-
catch (e) {
|
|
239
|
-
return `${value} out of range`;
|
|
240
|
-
}
|
|
241
|
-
return true;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
export function scalarTypeDescription(scalar) {
|
|
245
|
-
switch (scalar) {
|
|
246
|
-
case ScalarType.STRING:
|
|
247
|
-
return "string";
|
|
248
|
-
case ScalarType.BOOL:
|
|
249
|
-
return "boolean";
|
|
250
|
-
case ScalarType.INT64:
|
|
251
|
-
case ScalarType.SINT64:
|
|
252
|
-
case ScalarType.SFIXED64:
|
|
253
|
-
return "bigint (int64)";
|
|
254
|
-
case ScalarType.UINT64:
|
|
255
|
-
case ScalarType.FIXED64:
|
|
256
|
-
return "bigint (uint64)";
|
|
257
|
-
case ScalarType.BYTES:
|
|
258
|
-
return "Uint8Array";
|
|
259
|
-
case ScalarType.DOUBLE:
|
|
260
|
-
return "number (float64)";
|
|
261
|
-
case ScalarType.FLOAT:
|
|
262
|
-
return "number (float32)";
|
|
263
|
-
case ScalarType.FIXED32:
|
|
264
|
-
case ScalarType.UINT32:
|
|
265
|
-
return "number (uint32)";
|
|
266
|
-
case ScalarType.INT32:
|
|
267
|
-
case ScalarType.SFIXED32:
|
|
268
|
-
case ScalarType.SINT32:
|
|
269
|
-
return "number (int32)";
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
export function scalarTypeScriptType(scalar, long) {
|
|
273
|
-
switch (scalar) {
|
|
274
|
-
case ScalarType.STRING:
|
|
275
|
-
return "string";
|
|
276
|
-
case ScalarType.BOOL:
|
|
277
|
-
return "boolean";
|
|
278
|
-
case ScalarType.UINT64:
|
|
279
|
-
case ScalarType.SFIXED64:
|
|
280
|
-
case ScalarType.FIXED64:
|
|
281
|
-
case ScalarType.SINT64:
|
|
282
|
-
case ScalarType.INT64:
|
|
283
|
-
return long == LongType.STRING ? "string" : "bigint";
|
|
284
|
-
case ScalarType.BYTES:
|
|
285
|
-
return "Uint8Array";
|
|
286
|
-
default:
|
|
287
|
-
return "number";
|
|
288
|
-
}
|
|
289
|
-
}
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
-
import { localName } from "./names.js";
|
|
15
14
|
import { isScalarZeroValue, scalarZeroValue } from "./scalar.js";
|
|
16
15
|
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;
|
|
17
16
|
const IMPLICIT = 2;
|
|
@@ -23,11 +22,11 @@ export const unsafeLocal = Symbol.for("reflect unsafe local");
|
|
|
23
22
|
*/
|
|
24
23
|
export function unsafeOneofCase(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access
|
|
25
24
|
oneof) {
|
|
26
|
-
const c = target[localName
|
|
25
|
+
const c = target[oneof.localName].case;
|
|
27
26
|
if (c === undefined) {
|
|
28
27
|
return c;
|
|
29
28
|
}
|
|
30
|
-
return oneof.fields.find((f) => localName
|
|
29
|
+
return oneof.fields.find((f) => f.localName === c);
|
|
31
30
|
}
|
|
32
31
|
/**
|
|
33
32
|
* Returns true if the field is set.
|
|
@@ -36,28 +35,28 @@ oneof) {
|
|
|
36
35
|
*/
|
|
37
36
|
export function unsafeIsSet(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access
|
|
38
37
|
field) {
|
|
39
|
-
const name = localName
|
|
38
|
+
const name = field.localName;
|
|
40
39
|
if (field.oneof) {
|
|
41
|
-
return target[
|
|
40
|
+
return target[field.oneof.localName].case === name; // eslint-disable-line @typescript-eslint/no-unsafe-member-access
|
|
42
41
|
}
|
|
42
|
+
if (field.presence != IMPLICIT) {
|
|
43
|
+
// Fields with explicit presence have properties on the prototype chain
|
|
44
|
+
// for default / zero values (except for proto3).
|
|
45
|
+
return (target[name] !== undefined &&
|
|
46
|
+
Object.prototype.hasOwnProperty.call(target, name));
|
|
47
|
+
}
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
43
49
|
switch (field.fieldKind) {
|
|
44
|
-
case "message":
|
|
45
|
-
return target[name] !== undefined;
|
|
46
50
|
case "list":
|
|
47
51
|
return target[name].length > 0;
|
|
48
52
|
case "map":
|
|
49
53
|
return Object.keys(target[name]).length > 0; // eslint-disable-line @typescript-eslint/no-unsafe-argument
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
return !isScalarZeroValue(field.scalar, target[name]);
|
|
56
|
-
}
|
|
57
|
-
// EXPLICIT and LEGACY_REQUIRED
|
|
58
|
-
return (target[name] !== undefined &&
|
|
59
|
-
Object.prototype.hasOwnProperty.call(target, name));
|
|
54
|
+
case "scalar":
|
|
55
|
+
return !isScalarZeroValue(field.scalar, target[name]);
|
|
56
|
+
case "enum":
|
|
57
|
+
return target[name] !== field.enum.values[0].number;
|
|
60
58
|
}
|
|
59
|
+
throw new Error("message field with implicit presence");
|
|
61
60
|
}
|
|
62
61
|
/**
|
|
63
62
|
* Returns true if the field is set, but only for singular fields with explicit
|
|
@@ -75,15 +74,14 @@ export function unsafeIsSetExplicit(target, localName) {
|
|
|
75
74
|
* @private
|
|
76
75
|
*/
|
|
77
76
|
export function unsafeGet(target, field) {
|
|
78
|
-
const name = localName(field);
|
|
79
77
|
if (field.oneof) {
|
|
80
|
-
const oneof = target[
|
|
81
|
-
if (oneof.case ===
|
|
78
|
+
const oneof = target[field.oneof.localName];
|
|
79
|
+
if (oneof.case === field.localName) {
|
|
82
80
|
return oneof.value;
|
|
83
81
|
}
|
|
84
82
|
return undefined;
|
|
85
83
|
}
|
|
86
|
-
return target[
|
|
84
|
+
return target[field.localName];
|
|
87
85
|
}
|
|
88
86
|
/**
|
|
89
87
|
* Set a field value, respecting oneof groups.
|
|
@@ -91,15 +89,14 @@ export function unsafeGet(target, field) {
|
|
|
91
89
|
* @private
|
|
92
90
|
*/
|
|
93
91
|
export function unsafeSet(target, field, value) {
|
|
94
|
-
const name = localName(field);
|
|
95
92
|
if (field.oneof) {
|
|
96
|
-
target[
|
|
97
|
-
case:
|
|
93
|
+
target[field.oneof.localName] = {
|
|
94
|
+
case: field.localName,
|
|
98
95
|
value: value,
|
|
99
96
|
};
|
|
100
97
|
}
|
|
101
98
|
else {
|
|
102
|
-
target[
|
|
99
|
+
target[field.localName] = value;
|
|
103
100
|
}
|
|
104
101
|
}
|
|
105
102
|
/**
|
|
@@ -109,14 +106,21 @@ export function unsafeSet(target, field, value) {
|
|
|
109
106
|
*/
|
|
110
107
|
export function unsafeClear(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access
|
|
111
108
|
field) {
|
|
112
|
-
const name = localName
|
|
109
|
+
const name = field.localName;
|
|
113
110
|
if (field.oneof) {
|
|
114
|
-
const oneofLocalName =
|
|
111
|
+
const oneofLocalName = field.oneof.localName;
|
|
115
112
|
if (target[oneofLocalName].case === name) {
|
|
116
113
|
target[oneofLocalName] = { case: undefined };
|
|
117
114
|
}
|
|
118
115
|
}
|
|
116
|
+
else if (field.presence != IMPLICIT) {
|
|
117
|
+
// Fields with explicit presence have properties on the prototype chain
|
|
118
|
+
// for default / zero values (except for proto3). By deleting their own
|
|
119
|
+
// property, the field is reset.
|
|
120
|
+
delete target[name];
|
|
121
|
+
}
|
|
119
122
|
else {
|
|
123
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
120
124
|
switch (field.fieldKind) {
|
|
121
125
|
case "map":
|
|
122
126
|
target[name] = {};
|
|
@@ -124,19 +128,12 @@ field) {
|
|
|
124
128
|
case "list":
|
|
125
129
|
target[name] = [];
|
|
126
130
|
break;
|
|
127
|
-
case "
|
|
128
|
-
|
|
131
|
+
case "enum":
|
|
132
|
+
target[name] = field.enum.values[0].number;
|
|
133
|
+
break;
|
|
134
|
+
case "scalar":
|
|
135
|
+
target[name] = scalarZeroValue(field.scalar, field.longAsString);
|
|
129
136
|
break;
|
|
130
|
-
default:
|
|
131
|
-
if (field.presence == IMPLICIT) {
|
|
132
|
-
target[name] =
|
|
133
|
-
field.fieldKind == "enum"
|
|
134
|
-
? field.enum.values[0].number
|
|
135
|
-
: scalarZeroValue(field.scalar, field.longType);
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
delete target[name];
|
|
139
|
-
}
|
|
140
137
|
}
|
|
141
138
|
}
|
|
142
139
|
}
|
|
@@ -146,8 +143,7 @@ field) {
|
|
|
146
143
|
* @private
|
|
147
144
|
*/
|
|
148
145
|
export function unsafeAddListItem(target, field, value) {
|
|
149
|
-
|
|
150
|
-
target[name].push(value);
|
|
146
|
+
target[field.localName].push(value);
|
|
151
147
|
}
|
|
152
148
|
/**
|
|
153
149
|
* Set a map entry.
|
|
@@ -155,6 +151,5 @@ export function unsafeAddListItem(target, field, value) {
|
|
|
155
151
|
* @private
|
|
156
152
|
*/
|
|
157
153
|
export function unsafeSetMapEntry(target, field, key, value) {
|
|
158
|
-
|
|
159
|
-
target[name][key] = value;
|
|
154
|
+
target[field.localName][key] = value;
|
|
160
155
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { FileDescriptorProto, FileDescriptorSet } from "
|
|
2
|
-
import type
|
|
1
|
+
import type { FileDescriptorProto, FileDescriptorSet } from "./wkt/gen/google/protobuf/descriptor_pb.js";
|
|
2
|
+
import { type DescEnum, type DescExtension, type DescFile, type DescMessage, type DescService, type SupportedEdition } from "./descriptors.js";
|
|
3
3
|
/**
|
|
4
4
|
* A set of descriptors for messages, enumerations, extensions,
|
|
5
5
|
* and services.
|