@bufbuild/protobuf 2.12.0 → 2.13.0
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 +5 -5
- package/dist/commonjs/codegenv1/boot.d.ts +1 -0
- package/dist/{cjs/codegenv1/types.js → commonjs/codegenv1/boot.js} +3 -7
- package/dist/{cjs → commonjs}/codegenv1/symbols.d.ts +5 -0
- package/dist/{cjs → commonjs}/codegenv1/types.d.ts +9 -5
- package/dist/commonjs/codegenv2/enum.d.ts +29 -0
- package/dist/{cjs → commonjs}/codegenv2/enum.js +18 -0
- package/dist/{cjs → commonjs}/codegenv2/symbols.d.ts +10 -0
- package/dist/{cjs → commonjs}/codegenv2/symbols.js +2 -0
- package/dist/{cjs → commonjs}/codegenv2/types.d.ts +9 -5
- package/dist/{cjs → commonjs}/create.js +3 -3
- package/dist/{cjs → commonjs}/descriptors.d.ts +2 -2
- package/dist/{cjs → commonjs}/equals.d.ts +8 -3
- package/dist/{cjs → commonjs}/equals.js +8 -3
- package/dist/{cjs → commonjs}/extensions.d.ts +2 -1
- package/dist/{cjs → commonjs}/extensions.js +3 -4
- package/dist/{cjs → commonjs}/from-binary.d.ts +16 -2
- package/dist/{cjs → commonjs}/from-binary.js +30 -24
- package/dist/{cjs → commonjs}/from-json.d.ts +19 -2
- package/dist/{cjs → commonjs}/from-json.js +174 -54
- package/dist/{cjs → commonjs}/index.d.ts +1 -0
- package/dist/{cjs → commonjs}/index.js +1 -0
- package/dist/commonjs/json-value.js +15 -0
- package/dist/commonjs/package.json +4 -0
- package/dist/{cjs → commonjs}/proto-int64.js +1 -0
- package/dist/{cjs → commonjs}/reflect/reflect-check.js +3 -1
- package/dist/{cjs → commonjs}/reflect/reflect.js +3 -2
- package/dist/commonjs/reflect/scalar.d.ts +43 -0
- package/dist/{cjs → commonjs}/reflect/scalar.js +33 -6
- package/dist/{cjs → commonjs}/reflect/unsafe.js +1 -1
- package/dist/{cjs → commonjs}/registry.js +20 -20
- package/dist/{cjs → commonjs}/to-binary.js +1 -1
- package/dist/{cjs → commonjs}/to-json.js +2 -2
- package/dist/commonjs/txtpb/from-text.d.ts +35 -0
- package/dist/commonjs/txtpb/from-text.js +684 -0
- package/dist/commonjs/txtpb/index.d.ts +4 -0
- package/dist/commonjs/txtpb/index.js +21 -0
- package/dist/commonjs/txtpb/is-group-like.d.ts +19 -0
- package/dist/commonjs/txtpb/is-group-like.js +47 -0
- package/dist/commonjs/txtpb/reader.d.ts +91 -0
- package/dist/commonjs/txtpb/reader.js +481 -0
- package/dist/commonjs/txtpb/to-text.d.ts +34 -0
- package/dist/commonjs/txtpb/to-text.js +358 -0
- package/dist/commonjs/txtpb/writer.d.ts +76 -0
- package/dist/commonjs/txtpb/writer.js +220 -0
- package/dist/{cjs → commonjs}/types.d.ts +7 -0
- package/dist/{cjs/codegenv2 → commonjs}/types.js +0 -7
- package/dist/commonjs/unknown-enum.d.ts +10 -0
- package/dist/commonjs/unknown-enum.js +26 -0
- package/dist/{cjs → commonjs}/wire/binary-encoding.d.ts +4 -2
- package/dist/{cjs → commonjs}/wire/binary-encoding.js +8 -3
- package/dist/{cjs → commonjs}/wire/size-delimited.d.ts +19 -1
- package/dist/{cjs → commonjs}/wire/size-delimited.js +54 -16
- package/dist/esm/codegenv1/boot.d.ts +1 -0
- package/dist/esm/codegenv1/boot.js +14 -0
- package/dist/esm/codegenv1/symbols.d.ts +5 -0
- package/dist/esm/codegenv1/types.d.ts +9 -5
- package/dist/esm/codegenv1/types.js +0 -7
- package/dist/esm/codegenv2/enum.d.ts +15 -4
- package/dist/esm/codegenv2/enum.js +17 -0
- package/dist/esm/codegenv2/symbols.d.ts +10 -0
- package/dist/esm/codegenv2/symbols.js +2 -0
- package/dist/esm/codegenv2/types.d.ts +9 -5
- package/dist/esm/codegenv2/types.js +0 -7
- package/dist/esm/create.js +3 -3
- package/dist/esm/descriptors.d.ts +2 -2
- package/dist/esm/equals.d.ts +8 -3
- package/dist/esm/equals.js +8 -3
- package/dist/esm/extensions.d.ts +2 -1
- package/dist/esm/extensions.js +4 -5
- package/dist/esm/from-binary.d.ts +16 -2
- package/dist/esm/from-binary.js +29 -24
- package/dist/esm/from-json.d.ts +19 -2
- package/dist/esm/from-json.js +174 -54
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/package.json +4 -0
- package/dist/esm/proto-int64.js +1 -0
- package/dist/esm/reflect/reflect-check.js +3 -1
- package/dist/esm/reflect/reflect.js +3 -2
- package/dist/esm/reflect/scalar.d.ts +27 -5
- package/dist/esm/reflect/scalar.js +33 -6
- package/dist/esm/reflect/unsafe.js +1 -1
- package/dist/esm/registry.js +20 -20
- package/dist/esm/to-binary.js +1 -1
- package/dist/esm/to-json.js +2 -2
- package/dist/esm/txtpb/from-text.d.ts +35 -0
- package/dist/esm/txtpb/from-text.js +680 -0
- package/dist/esm/txtpb/index.d.ts +4 -0
- package/dist/esm/txtpb/index.js +15 -0
- package/dist/esm/txtpb/is-group-like.d.ts +19 -0
- package/dist/esm/txtpb/is-group-like.js +44 -0
- package/dist/esm/txtpb/reader.d.ts +91 -0
- package/dist/esm/txtpb/reader.js +477 -0
- package/dist/esm/txtpb/to-text.d.ts +34 -0
- package/dist/esm/txtpb/to-text.js +355 -0
- package/dist/esm/txtpb/writer.d.ts +76 -0
- package/dist/esm/txtpb/writer.js +214 -0
- package/dist/esm/types.d.ts +7 -0
- package/dist/esm/unknown-enum.d.ts +10 -0
- package/dist/esm/unknown-enum.js +23 -0
- package/dist/esm/wire/binary-encoding.d.ts +4 -2
- package/dist/esm/wire/binary-encoding.js +8 -3
- package/dist/esm/wire/size-delimited.d.ts +19 -1
- package/dist/esm/wire/size-delimited.js +54 -16
- package/package.json +109 -30
- package/dist/cjs/codegenv2/enum.d.ts +0 -18
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/reflect/scalar.d.ts +0 -21
- /package/dist/{cjs → commonjs}/clone.d.ts +0 -0
- /package/dist/{cjs → commonjs}/clone.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/enum.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/enum.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/extension.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/extension.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/file.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/file.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/index.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/index.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/message.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/message.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/service.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/service.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv1/symbols.js +0 -0
- /package/dist/{cjs → commonjs/codegenv1}/types.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/boot.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/boot.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/embed.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/embed.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/extension.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/extension.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/file.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/file.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/index.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/index.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/message.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/message.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/restore-json-names.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/restore-json-names.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/scalar.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/scalar.js +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/service.d.ts +0 -0
- /package/dist/{cjs → commonjs}/codegenv2/service.js +0 -0
- /package/dist/{cjs/json-value.js → commonjs/codegenv2/types.js} +0 -0
- /package/dist/{cjs → commonjs}/create.d.ts +0 -0
- /package/dist/{cjs → commonjs}/descriptors.js +0 -0
- /package/dist/{cjs → commonjs}/fields.d.ts +0 -0
- /package/dist/{cjs → commonjs}/fields.js +0 -0
- /package/dist/{cjs → commonjs}/is-message.d.ts +0 -0
- /package/dist/{cjs → commonjs}/is-message.js +0 -0
- /package/dist/{cjs → commonjs}/json-value.d.ts +0 -0
- /package/dist/{cjs → commonjs}/merge.d.ts +0 -0
- /package/dist/{cjs → commonjs}/merge.js +0 -0
- /package/dist/{cjs → commonjs}/proto-int64.d.ts +0 -0
- /package/dist/{cjs → commonjs}/reflect/error.d.ts +0 -0
- /package/dist/{cjs → commonjs}/reflect/error.js +0 -0
- /package/dist/{cjs → commonjs}/reflect/guard.d.ts +0 -0
- /package/dist/{cjs → commonjs}/reflect/guard.js +0 -0
- /package/dist/{cjs → commonjs}/reflect/index.d.ts +0 -0
- /package/dist/{cjs → commonjs}/reflect/index.js +0 -0
- /package/dist/{cjs → commonjs}/reflect/names.d.ts +0 -0
- /package/dist/{cjs → commonjs}/reflect/names.js +0 -0
- /package/dist/{cjs → commonjs}/reflect/nested-types.d.ts +0 -0
- /package/dist/{cjs → commonjs}/reflect/nested-types.js +0 -0
- /package/dist/{cjs → commonjs}/reflect/path.d.ts +0 -0
- /package/dist/{cjs → commonjs}/reflect/path.js +0 -0
- /package/dist/{cjs → commonjs}/reflect/reflect-check.d.ts +0 -0
- /package/dist/{cjs → commonjs}/reflect/reflect-types.d.ts +0 -0
- /package/dist/{cjs → commonjs}/reflect/reflect-types.js +0 -0
- /package/dist/{cjs → commonjs}/reflect/reflect.d.ts +0 -0
- /package/dist/{cjs → commonjs}/reflect/unsafe.d.ts +0 -0
- /package/dist/{cjs → commonjs}/registry.d.ts +0 -0
- /package/dist/{cjs → commonjs}/to-binary.d.ts +0 -0
- /package/dist/{cjs → commonjs}/to-json.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wire/base64-encoding.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wire/base64-encoding.js +0 -0
- /package/dist/{cjs → commonjs}/wire/index.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wire/index.js +0 -0
- /package/dist/{cjs → commonjs}/wire/text-encoding.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wire/text-encoding.js +0 -0
- /package/dist/{cjs → commonjs}/wire/text-format.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wire/text-format.js +0 -0
- /package/dist/{cjs → commonjs}/wire/varint.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wire/varint.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/any.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/any.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/duration.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/duration.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/any_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/any_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/api_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/api_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/compiler/plugin_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/cpp_features_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/cpp_features_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/descriptor_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/descriptor_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/duration_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/duration_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/empty_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/empty_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/field_mask_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/field_mask_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/go_features_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/go_features_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/java_features_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/java_features_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/source_context_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/source_context_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/struct_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/struct_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/timestamp_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/timestamp_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/type_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/type_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/wrappers_pb.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/gen/google/protobuf/wrappers_pb.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/index.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/index.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/timestamp.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/timestamp.js +0 -0
- /package/dist/{cjs → commonjs}/wkt/wrappers.d.ts +0 -0
- /package/dist/{cjs → commonjs}/wkt/wrappers.js +0 -0
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.js
CHANGED
package/dist/esm/proto-int64.js
CHANGED
|
@@ -25,6 +25,7 @@ function makeInt64Support() {
|
|
|
25
25
|
typeof dv.setBigInt64 === "function" &&
|
|
26
26
|
typeof dv.setBigUint64 === "function" &&
|
|
27
27
|
(!!globalThis.Deno ||
|
|
28
|
+
!!globalThis.Bun ||
|
|
28
29
|
typeof process != "object" ||
|
|
29
30
|
typeof process.env != "object" ||
|
|
30
31
|
process.env.BUF_BIGINT_DISABLE !== "1");
|
|
@@ -74,7 +74,9 @@ function checkSingular(field, value) {
|
|
|
74
74
|
}
|
|
75
75
|
if (field.enum !== undefined) {
|
|
76
76
|
if (field.enum.open) {
|
|
77
|
-
|
|
77
|
+
// Open enums accept unrecognized values, but enum values are always
|
|
78
|
+
// int32 (see https://protobuf.dev/programming-guides/proto3/#enum).
|
|
79
|
+
return checkScalarValue(value, ScalarType.INT32);
|
|
78
80
|
}
|
|
79
81
|
return field.enum.values.some((v) => v.number === value);
|
|
80
82
|
}
|
|
@@ -20,6 +20,8 @@ import { isWrapper, isWrapperDesc } from "../wkt/wrappers.js";
|
|
|
20
20
|
import { scalarZeroValue } from "./scalar.js";
|
|
21
21
|
import { protoInt64 } from "../proto-int64.js";
|
|
22
22
|
import { isObject, isReflectList, isReflectMap, isReflectMessage, } from "./guard.js";
|
|
23
|
+
// google.protobuf.NullValue.NULL_VALUE;
|
|
24
|
+
const NULL_VALUE = 0;
|
|
23
25
|
/**
|
|
24
26
|
* Create a ReflectMessage.
|
|
25
27
|
*/
|
|
@@ -510,8 +512,7 @@ function wktValueToReflect(json) {
|
|
|
510
512
|
break;
|
|
511
513
|
case "object":
|
|
512
514
|
if (json === null) {
|
|
513
|
-
|
|
514
|
-
value.kind = { case: "nullValue", value: nullValue };
|
|
515
|
+
value.kind = { case: "nullValue", value: NULL_VALUE };
|
|
515
516
|
}
|
|
516
517
|
else if (Array.isArray(json)) {
|
|
517
518
|
const listValue = {
|
|
@@ -5,17 +5,39 @@ import { ScalarType } from "../descriptors.js";
|
|
|
5
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;
|
|
6
6
|
/**
|
|
7
7
|
* Returns true if both scalar values are equal.
|
|
8
|
+
*
|
|
9
|
+
* For float and double, values are compared following IEEE semantics: -0
|
|
10
|
+
* equals 0, and NaN does not equal NaN. This is value equality, not identity.
|
|
11
|
+
*
|
|
12
|
+
* It deliberately differs from isScalarZeroValue, which treats -0 as distinct
|
|
13
|
+
* from 0. A value can equal the zero value without being a zero value
|
|
14
|
+
* (scalarEquals(DOUBLE, -0, 0) is true while isScalarZeroValue(DOUBLE, -0) is
|
|
15
|
+
* false) so this function must not be used to derive implicit presence.
|
|
8
16
|
*/
|
|
9
17
|
export declare function scalarEquals(type: ScalarType, a: ScalarValue | undefined, b: ScalarValue | undefined): boolean;
|
|
10
18
|
/**
|
|
11
|
-
* Returns the zero value for the given scalar type
|
|
19
|
+
* Returns the zero value for the given scalar type, the value a field of this
|
|
20
|
+
* type has when unset: 0 for numeric types, "" for strings, false for
|
|
21
|
+
* booleans, and an empty Uint8Array for bytes. For 64-bit integer types, the
|
|
22
|
+
* result is "0" when longAsString is true, otherwise 0n.
|
|
23
|
+
*
|
|
24
|
+
* This is the type's zero value, not a proto2 custom field default. For float
|
|
25
|
+
* and double it is +0; isScalarZeroValue treats only +0, not -0, as this value.
|
|
12
26
|
*/
|
|
13
27
|
export declare function scalarZeroValue<T extends ScalarType, LongAsString extends boolean>(type: T, longAsString: LongAsString): ScalarValue<T, LongAsString>;
|
|
14
28
|
/**
|
|
15
|
-
* Returns true
|
|
16
|
-
*
|
|
29
|
+
* Returns true if the value is the zero value for the given scalar type: `0`
|
|
30
|
+
* for numeric types, `false` for booleans, `""` for strings, and an empty
|
|
31
|
+
* Uint8Array for bytes.
|
|
32
|
+
*
|
|
33
|
+
* This is the implicit-presence default check. A singular field with implicit
|
|
34
|
+
* presence is treated as unset, and omitted from the wire, when its value is
|
|
35
|
+
* the zero value. With explicit presence, or in repeated and map fields,
|
|
36
|
+
* presence is structural and this function does not apply.
|
|
17
37
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
38
|
+
* Note that -0 is NOT a zero value for float and double: under implicit
|
|
39
|
+
* presence, +0 is omitted from the wire but -0 is written, following the
|
|
40
|
+
* proto3 specification. As a result this can disagree with scalarEquals, which
|
|
41
|
+
* compares by value and treats -0 as equal to 0.
|
|
20
42
|
*/
|
|
21
43
|
export declare function isScalarZeroValue(type: ScalarType, value: unknown): boolean;
|
|
@@ -15,6 +15,14 @@ import { protoInt64 } from "../proto-int64.js";
|
|
|
15
15
|
import { ScalarType } from "../descriptors.js";
|
|
16
16
|
/**
|
|
17
17
|
* Returns true if both scalar values are equal.
|
|
18
|
+
*
|
|
19
|
+
* For float and double, values are compared following IEEE semantics: -0
|
|
20
|
+
* equals 0, and NaN does not equal NaN. This is value equality, not identity.
|
|
21
|
+
*
|
|
22
|
+
* It deliberately differs from isScalarZeroValue, which treats -0 as distinct
|
|
23
|
+
* from 0. A value can equal the zero value without being a zero value
|
|
24
|
+
* (scalarEquals(DOUBLE, -0, 0) is true while isScalarZeroValue(DOUBLE, -0) is
|
|
25
|
+
* false) so this function must not be used to derive implicit presence.
|
|
18
26
|
*/
|
|
19
27
|
export function scalarEquals(type, a, b) {
|
|
20
28
|
if (a === b) {
|
|
@@ -51,7 +59,13 @@ export function scalarEquals(type, a, b) {
|
|
|
51
59
|
return false;
|
|
52
60
|
}
|
|
53
61
|
/**
|
|
54
|
-
* Returns the zero value for the given scalar type
|
|
62
|
+
* Returns the zero value for the given scalar type, the value a field of this
|
|
63
|
+
* type has when unset: 0 for numeric types, "" for strings, false for
|
|
64
|
+
* booleans, and an empty Uint8Array for bytes. For 64-bit integer types, the
|
|
65
|
+
* result is "0" when longAsString is true, otherwise 0n.
|
|
66
|
+
*
|
|
67
|
+
* This is the type's zero value, not a proto2 custom field default. For float
|
|
68
|
+
* and double it is +0; isScalarZeroValue treats only +0, not -0, as this value.
|
|
55
69
|
*/
|
|
56
70
|
export function scalarZeroValue(type, longAsString) {
|
|
57
71
|
switch (type) {
|
|
@@ -77,11 +91,19 @@ export function scalarZeroValue(type, longAsString) {
|
|
|
77
91
|
}
|
|
78
92
|
}
|
|
79
93
|
/**
|
|
80
|
-
* Returns true
|
|
81
|
-
*
|
|
94
|
+
* Returns true if the value is the zero value for the given scalar type: `0`
|
|
95
|
+
* for numeric types, `false` for booleans, `""` for strings, and an empty
|
|
96
|
+
* Uint8Array for bytes.
|
|
82
97
|
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
98
|
+
* This is the implicit-presence default check. A singular field with implicit
|
|
99
|
+
* presence is treated as unset, and omitted from the wire, when its value is
|
|
100
|
+
* the zero value. With explicit presence, or in repeated and map fields,
|
|
101
|
+
* presence is structural and this function does not apply.
|
|
102
|
+
*
|
|
103
|
+
* Note that -0 is NOT a zero value for float and double: under implicit
|
|
104
|
+
* presence, +0 is omitted from the wire but -0 is written, following the
|
|
105
|
+
* proto3 specification. As a result this can disagree with scalarEquals, which
|
|
106
|
+
* compares by value and treats -0 as equal to 0.
|
|
85
107
|
*/
|
|
86
108
|
export function isScalarZeroValue(type, value) {
|
|
87
109
|
switch (type) {
|
|
@@ -91,7 +113,12 @@ export function isScalarZeroValue(type, value) {
|
|
|
91
113
|
return value === "";
|
|
92
114
|
case ScalarType.BYTES:
|
|
93
115
|
return value instanceof Uint8Array && !value.byteLength;
|
|
116
|
+
case ScalarType.DOUBLE:
|
|
117
|
+
case ScalarType.FLOAT:
|
|
118
|
+
// Object.is distinguishes -0 from 0.
|
|
119
|
+
return Object.is(value, 0);
|
|
94
120
|
default:
|
|
95
|
-
|
|
121
|
+
// Loose comparison matches 0n, 0 and "0".
|
|
122
|
+
return value == 0;
|
|
96
123
|
}
|
|
97
124
|
}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
import { isScalarZeroValue, scalarZeroValue } from "./scalar.js";
|
|
15
|
-
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name
|
|
15
|
+
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name = $number;
|
|
16
16
|
const IMPLICIT = 2;
|
|
17
17
|
export const unsafeLocal = Symbol.for("reflect unsafe local");
|
|
18
18
|
/**
|
package/dist/esm/registry.js
CHANGED
|
@@ -187,47 +187,47 @@ function initBaseRegistry(inputs) {
|
|
|
187
187
|
}
|
|
188
188
|
return registry;
|
|
189
189
|
}
|
|
190
|
-
// bootstrap-inject google.protobuf.Edition.EDITION_PROTO2: const $name
|
|
190
|
+
// bootstrap-inject google.protobuf.Edition.EDITION_PROTO2: const $name = $number;
|
|
191
191
|
const EDITION_PROTO2 = 998;
|
|
192
|
-
// bootstrap-inject google.protobuf.Edition.EDITION_PROTO3: const $name
|
|
192
|
+
// bootstrap-inject google.protobuf.Edition.EDITION_PROTO3: const $name = $number;
|
|
193
193
|
const EDITION_PROTO3 = 999;
|
|
194
|
-
// bootstrap-inject google.protobuf.Edition.EDITION_UNSTABLE: const $name
|
|
194
|
+
// bootstrap-inject google.protobuf.Edition.EDITION_UNSTABLE: const $name = $number;
|
|
195
195
|
const EDITION_UNSTABLE = 9999;
|
|
196
|
-
// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_STRING: const $name
|
|
196
|
+
// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_STRING: const $name = $number;
|
|
197
197
|
const TYPE_STRING = 9;
|
|
198
|
-
// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_GROUP: const $name
|
|
198
|
+
// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_GROUP: const $name = $number;
|
|
199
199
|
const TYPE_GROUP = 10;
|
|
200
|
-
// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_MESSAGE: const $name
|
|
200
|
+
// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_MESSAGE: const $name = $number;
|
|
201
201
|
const TYPE_MESSAGE = 11;
|
|
202
|
-
// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_BYTES: const $name
|
|
202
|
+
// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_BYTES: const $name = $number;
|
|
203
203
|
const TYPE_BYTES = 12;
|
|
204
|
-
// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_ENUM: const $name
|
|
204
|
+
// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_ENUM: const $name = $number;
|
|
205
205
|
const TYPE_ENUM = 14;
|
|
206
|
-
// bootstrap-inject google.protobuf.FieldDescriptorProto.Label.LABEL_REPEATED: const $name
|
|
206
|
+
// bootstrap-inject google.protobuf.FieldDescriptorProto.Label.LABEL_REPEATED: const $name = $number;
|
|
207
207
|
const LABEL_REPEATED = 3;
|
|
208
|
-
// bootstrap-inject google.protobuf.FieldDescriptorProto.Label.LABEL_REQUIRED: const $name
|
|
208
|
+
// bootstrap-inject google.protobuf.FieldDescriptorProto.Label.LABEL_REQUIRED: const $name = $number;
|
|
209
209
|
const LABEL_REQUIRED = 2;
|
|
210
|
-
// bootstrap-inject google.protobuf.FieldOptions.JSType.JS_STRING: const $name
|
|
210
|
+
// bootstrap-inject google.protobuf.FieldOptions.JSType.JS_STRING: const $name = $number;
|
|
211
211
|
const JS_STRING = 1;
|
|
212
|
-
// bootstrap-inject google.protobuf.MethodOptions.IdempotencyLevel.IDEMPOTENCY_UNKNOWN: const $name
|
|
212
|
+
// bootstrap-inject google.protobuf.MethodOptions.IdempotencyLevel.IDEMPOTENCY_UNKNOWN: const $name = $number;
|
|
213
213
|
const IDEMPOTENCY_UNKNOWN = 0;
|
|
214
|
-
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.EXPLICIT: const $name
|
|
214
|
+
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.EXPLICIT: const $name = $number;
|
|
215
215
|
const EXPLICIT = 1;
|
|
216
|
-
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name
|
|
216
|
+
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name = $number;
|
|
217
217
|
const IMPLICIT = 2;
|
|
218
|
-
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name
|
|
218
|
+
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name = $number;
|
|
219
219
|
const LEGACY_REQUIRED = 3;
|
|
220
|
-
// bootstrap-inject google.protobuf.FeatureSet.RepeatedFieldEncoding.PACKED: const $name
|
|
220
|
+
// bootstrap-inject google.protobuf.FeatureSet.RepeatedFieldEncoding.PACKED: const $name = $number;
|
|
221
221
|
const PACKED = 1;
|
|
222
|
-
// bootstrap-inject google.protobuf.FeatureSet.MessageEncoding.DELIMITED: const $name
|
|
222
|
+
// bootstrap-inject google.protobuf.FeatureSet.MessageEncoding.DELIMITED: const $name = $number;
|
|
223
223
|
const DELIMITED = 2;
|
|
224
|
-
// bootstrap-inject google.protobuf.FeatureSet.EnumType.OPEN: const $name
|
|
224
|
+
// bootstrap-inject google.protobuf.FeatureSet.EnumType.OPEN: const $name = $number;
|
|
225
225
|
const OPEN = 1;
|
|
226
|
-
// bootstrap-inject google.protobuf.FeatureSet.Utf8Validation.VERIFY: const $name
|
|
226
|
+
// bootstrap-inject google.protobuf.FeatureSet.Utf8Validation.VERIFY: const $name = $number;
|
|
227
227
|
const VERIFY = 2;
|
|
228
228
|
// biome-ignore format: want this to read well
|
|
229
229
|
// bootstrap-inject defaults: EDITION_PROTO2 to EDITION_2024: export const minimumEdition: SupportedEdition = $minimumEdition, maximumEdition: SupportedEdition = $maximumEdition;
|
|
230
|
-
// generated from protoc v34.
|
|
230
|
+
// generated from protoc v34.1
|
|
231
231
|
export const minimumEdition = 998, maximumEdition = 1001;
|
|
232
232
|
const featureDefaults = {
|
|
233
233
|
// EDITION_PROTO2
|
package/dist/esm/to-binary.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import { reflect } from "./reflect/reflect.js";
|
|
15
15
|
import { BinaryWriter, WireType } from "./wire/binary-encoding.js";
|
|
16
16
|
import { ScalarType } from "./descriptors.js";
|
|
17
|
-
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name
|
|
17
|
+
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name = $number;
|
|
18
18
|
const LEGACY_REQUIRED = 3;
|
|
19
19
|
// Default options for serializing binary data.
|
|
20
20
|
const writeDefaults = {
|
package/dist/esm/to-json.js
CHANGED
|
@@ -19,9 +19,9 @@ import { hasCustomJsonRepresentation, isWrapperDesc } from "./wkt/wrappers.js";
|
|
|
19
19
|
import { base64Encode } from "./wire/index.js";
|
|
20
20
|
import { createExtensionContainer, getExtension } from "./extensions.js";
|
|
21
21
|
import { checkField, formatVal } from "./reflect/reflect-check.js";
|
|
22
|
-
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name
|
|
22
|
+
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name = $number;
|
|
23
23
|
const LEGACY_REQUIRED = 3;
|
|
24
|
-
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name
|
|
24
|
+
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name = $number;
|
|
25
25
|
const IMPLICIT = 2;
|
|
26
26
|
// Default options for serializing to JSON.
|
|
27
27
|
const jsonWriteDefaults = {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type DescMessage } from "../descriptors.js";
|
|
2
|
+
import type { Registry } from "../registry.js";
|
|
3
|
+
import type { MessageShape } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Options for parsing the protobuf text format.
|
|
6
|
+
*/
|
|
7
|
+
export interface TextReadOptions {
|
|
8
|
+
/**
|
|
9
|
+
* The registry to resolve `google.protobuf.Any` and extensions. Parsing an
|
|
10
|
+
* Any in its expanded form, or an extension field, requires it.
|
|
11
|
+
*/
|
|
12
|
+
registry?: Registry | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* The maximum depth of nested messages to parse. A message nesting deeper
|
|
15
|
+
* than this fails with an error instead of exhausting the call stack.
|
|
16
|
+
* Defaults to 100.
|
|
17
|
+
*/
|
|
18
|
+
recursionLimit: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse a message from the protobuf text format.
|
|
22
|
+
*
|
|
23
|
+
* Requires BigInt: throws immediately if the environment does not support it.
|
|
24
|
+
*/
|
|
25
|
+
export declare function fromText<Desc extends DescMessage>(schema: Desc, text: string, options?: Partial<TextReadOptions>): MessageShape<Desc>;
|
|
26
|
+
/**
|
|
27
|
+
* Parse a message from the protobuf text format, merging into the target.
|
|
28
|
+
*
|
|
29
|
+
* Repeated fields are appended, singular fields are overwritten (last wins),
|
|
30
|
+
* message fields are merged, and map entries are added (overwriting an existing
|
|
31
|
+
* key).
|
|
32
|
+
*
|
|
33
|
+
* Requires BigInt: throws immediately if the environment does not support it.
|
|
34
|
+
*/
|
|
35
|
+
export declare function mergeFromText<Desc extends DescMessage>(schema: Desc, target: MessageShape<Desc>, text: string, options?: Partial<TextReadOptions>): MessageShape<Desc>;
|