@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/esm/proto-int64.js
CHANGED
|
@@ -11,8 +11,11 @@
|
|
|
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 { assert } from "./reflect/assert.js";
|
|
15
14
|
import { int64FromString, int64ToString, uInt64ToString, } from "./wire/varint.js";
|
|
15
|
+
/**
|
|
16
|
+
* Int64Support for the current environment.
|
|
17
|
+
*/
|
|
18
|
+
export const protoInt64 = /*@__PURE__*/ makeInt64Support();
|
|
16
19
|
function makeInt64Support() {
|
|
17
20
|
const dv = new DataView(new ArrayBuffer(8));
|
|
18
21
|
// note that Safari 14 implements BigInt, but not the DataView methods
|
|
@@ -32,14 +35,14 @@ function makeInt64Support() {
|
|
|
32
35
|
parse(value) {
|
|
33
36
|
const bi = typeof value == "bigint" ? value : BigInt(value);
|
|
34
37
|
if (bi > MAX || bi < MIN) {
|
|
35
|
-
throw new Error(`int64
|
|
38
|
+
throw new Error(`invalid int64: ${value}`);
|
|
36
39
|
}
|
|
37
40
|
return bi;
|
|
38
41
|
},
|
|
39
42
|
uParse(value) {
|
|
40
43
|
const bi = typeof value == "bigint" ? value : BigInt(value);
|
|
41
44
|
if (bi > UMAX || bi < UMIN) {
|
|
42
|
-
throw new Error(`uint64
|
|
45
|
+
throw new Error(`invalid uint64: ${value}`);
|
|
43
46
|
}
|
|
44
47
|
return bi;
|
|
45
48
|
},
|
|
@@ -69,8 +72,6 @@ function makeInt64Support() {
|
|
|
69
72
|
},
|
|
70
73
|
};
|
|
71
74
|
}
|
|
72
|
-
const assertInt64String = (value) => assert(/^-?[0-9]+$/.test(value), `int64 invalid: ${value}`);
|
|
73
|
-
const assertUInt64String = (value) => assert(/^[0-9]+$/.test(value), `uint64 invalid: ${value}`);
|
|
74
75
|
return {
|
|
75
76
|
zero: "0",
|
|
76
77
|
supported: false,
|
|
@@ -110,4 +111,13 @@ function makeInt64Support() {
|
|
|
110
111
|
},
|
|
111
112
|
};
|
|
112
113
|
}
|
|
113
|
-
|
|
114
|
+
function assertInt64String(value) {
|
|
115
|
+
if (!/^-?[0-9]+$/.test(value)) {
|
|
116
|
+
throw new Error("invalid int64: " + value);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function assertUInt64String(value) {
|
|
120
|
+
if (!/^[0-9]+$/.test(value)) {
|
|
121
|
+
throw new Error("invalid uint64: " + value);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -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";
|
|
@@ -16,6 +16,5 @@ export * from "./names.js";
|
|
|
16
16
|
export * from "./nested-types.js";
|
|
17
17
|
export * from "./reflect.js";
|
|
18
18
|
export * from "./reflect-types.js";
|
|
19
|
-
export * from "./registry.js";
|
|
20
19
|
export * from "./scalar.js";
|
|
21
20
|
export { isReflectList, isReflectMap, isReflectMessage } from "./guard.js";
|
|
@@ -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;
|
|
@@ -11,43 +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
|
-
/**
|
|
15
|
-
* Returns the name of a protobuf element in generated code.
|
|
16
|
-
*
|
|
17
|
-
* Field names - including oneofs - are converted to lowerCamelCase. For methods,
|
|
18
|
-
* the first character is made lowercase. All names are escaped to be safe object
|
|
19
|
-
* property names.
|
|
20
|
-
*
|
|
21
|
-
* This function does not provide names for messages, enumerations, and services.
|
|
22
|
-
*/
|
|
23
|
-
export function localName(desc) {
|
|
24
|
-
const name = desc.name;
|
|
25
|
-
switch (desc.kind) {
|
|
26
|
-
// @ts-expect-error TS7029
|
|
27
|
-
case "field":
|
|
28
|
-
if (desc.oneof !== undefined) {
|
|
29
|
-
// oneof member names are not properties, but values of the `case` property.
|
|
30
|
-
return protoCamelCase(name);
|
|
31
|
-
}
|
|
32
|
-
// eslint-disable-next-line no-fallthrough
|
|
33
|
-
case "oneof":
|
|
34
|
-
return safeObjectProperty(protoCamelCase(name));
|
|
35
|
-
case "enum_value": {
|
|
36
|
-
let name = desc.name;
|
|
37
|
-
const sharedPrefix = desc.parent.sharedPrefix;
|
|
38
|
-
if (sharedPrefix !== undefined) {
|
|
39
|
-
name = name.substring(sharedPrefix.length);
|
|
40
|
-
}
|
|
41
|
-
return safeObjectProperty(name);
|
|
42
|
-
}
|
|
43
|
-
case "rpc": {
|
|
44
|
-
if (name.length == 0) {
|
|
45
|
-
return name;
|
|
46
|
-
}
|
|
47
|
-
return safeObjectProperty(name[0].toLowerCase() + name.substring(1));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
14
|
/**
|
|
52
15
|
* Converts snake_case to protoCamelCase according to the convention
|
|
53
16
|
* used by protoc to convert a field name to a JSON name.
|
|
@@ -99,7 +62,7 @@ const reservedObjectProperties = new Set([
|
|
|
99
62
|
/**
|
|
100
63
|
* Escapes names that are reserved for ECMAScript built-in object properties.
|
|
101
64
|
*
|
|
102
|
-
* Also see safeIdentifier() from @bufbuild/protoplugin
|
|
65
|
+
* Also see safeIdentifier() from @bufbuild/protoplugin.
|
|
103
66
|
*/
|
|
104
67
|
export function safeObjectProperty(name) {
|
|
105
68
|
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 {};
|
|
@@ -11,6 +11,10 @@
|
|
|
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
|
+
/**
|
|
15
|
+
* Iterate over all types - enumerations, extensions, services, messages -
|
|
16
|
+
* and enumerations, extensions and messages nested in messages.
|
|
17
|
+
*/
|
|
14
18
|
export function* nestedTypes(desc) {
|
|
15
19
|
switch (desc.kind) {
|
|
16
20
|
case "file":
|
|
@@ -32,3 +36,31 @@ export function* nestedTypes(desc) {
|
|
|
32
36
|
break;
|
|
33
37
|
}
|
|
34
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Returns the ancestors of a given Protobuf element, up to the file.
|
|
41
|
+
*/
|
|
42
|
+
export function parentTypes(desc) {
|
|
43
|
+
const parents = [];
|
|
44
|
+
while (desc.kind !== "file") {
|
|
45
|
+
const p = parent(desc);
|
|
46
|
+
desc = p;
|
|
47
|
+
parents.push(p);
|
|
48
|
+
}
|
|
49
|
+
return parents;
|
|
50
|
+
}
|
|
51
|
+
function parent(desc) {
|
|
52
|
+
var _a;
|
|
53
|
+
switch (desc.kind) {
|
|
54
|
+
case "enum_value":
|
|
55
|
+
case "field":
|
|
56
|
+
case "oneof":
|
|
57
|
+
case "rpc":
|
|
58
|
+
return desc.parent;
|
|
59
|
+
case "service":
|
|
60
|
+
return desc.file;
|
|
61
|
+
case "extension":
|
|
62
|
+
case "enum":
|
|
63
|
+
case "message":
|
|
64
|
+
return (_a = desc.parent) !== null && _a !== void 0 ? _a : desc.file;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -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;
|
|
@@ -11,11 +11,16 @@
|
|
|
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 { ScalarType,
|
|
15
|
-
import { checkScalarValue } from "./scalar.js";
|
|
14
|
+
import { ScalarType, } from "../descriptors.js";
|
|
16
15
|
import { isMessage } from "../is-message.js";
|
|
17
16
|
import { FieldError } from "./error.js";
|
|
18
17
|
import { isReflectList, isReflectMap, isReflectMessage } from "./guard.js";
|
|
18
|
+
import { FLOAT32_MAX, FLOAT32_MIN, INT32_MAX, INT32_MIN, UINT32_MAX, } from "../wire/binary-encoding.js";
|
|
19
|
+
import { getTextEncoding } from "../wire/text-encoding.js";
|
|
20
|
+
import { protoInt64 } from "../proto-int64.js";
|
|
21
|
+
/**
|
|
22
|
+
* Check whether the given field value is valid for the reflect API.
|
|
23
|
+
*/
|
|
19
24
|
export function checkField(field, value) {
|
|
20
25
|
const check = field.fieldKind == "list"
|
|
21
26
|
? isReflectList(value, field)
|
|
@@ -39,6 +44,9 @@ export function checkField(field, value) {
|
|
|
39
44
|
}
|
|
40
45
|
return new FieldError(field, reason);
|
|
41
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Check whether the given list item is valid for the reflect API.
|
|
49
|
+
*/
|
|
42
50
|
export function checkListItem(field, index, value) {
|
|
43
51
|
const check = checkSingular(field, value);
|
|
44
52
|
if (check !== true) {
|
|
@@ -46,6 +54,9 @@ export function checkListItem(field, index, value) {
|
|
|
46
54
|
}
|
|
47
55
|
return undefined;
|
|
48
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Check whether the given map key and value are valid for the reflect API.
|
|
59
|
+
*/
|
|
49
60
|
export function checkMapEntry(field, key, value) {
|
|
50
61
|
const checkKey = checkScalarValue(key, field.mapKey);
|
|
51
62
|
if (checkKey !== true) {
|
|
@@ -69,6 +80,84 @@ function checkSingular(field, value) {
|
|
|
69
80
|
}
|
|
70
81
|
return isReflectMessage(value, field.message);
|
|
71
82
|
}
|
|
83
|
+
function checkScalarValue(value, scalar) {
|
|
84
|
+
switch (scalar) {
|
|
85
|
+
case ScalarType.DOUBLE:
|
|
86
|
+
return typeof value == "number";
|
|
87
|
+
case ScalarType.FLOAT:
|
|
88
|
+
if (typeof value != "number") {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
if (Number.isNaN(value) || !Number.isFinite(value)) {
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
if (value > FLOAT32_MAX || value < FLOAT32_MIN) {
|
|
95
|
+
return `${value.toFixed()} out of range`;
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
case ScalarType.INT32:
|
|
99
|
+
case ScalarType.SFIXED32:
|
|
100
|
+
case ScalarType.SINT32:
|
|
101
|
+
// signed
|
|
102
|
+
if (typeof value !== "number" || !Number.isInteger(value)) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
if (value > INT32_MAX || value < INT32_MIN) {
|
|
106
|
+
return `${value.toFixed()} out of range`;
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
case ScalarType.FIXED32:
|
|
110
|
+
case ScalarType.UINT32:
|
|
111
|
+
// unsigned
|
|
112
|
+
if (typeof value !== "number" || !Number.isInteger(value)) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
if (value > UINT32_MAX || value < 0) {
|
|
116
|
+
return `${value.toFixed()} out of range`;
|
|
117
|
+
}
|
|
118
|
+
return true;
|
|
119
|
+
case ScalarType.BOOL:
|
|
120
|
+
return typeof value == "boolean";
|
|
121
|
+
case ScalarType.STRING:
|
|
122
|
+
if (typeof value != "string") {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
return getTextEncoding().checkUtf8(value) || "invalid UTF8";
|
|
126
|
+
case ScalarType.BYTES:
|
|
127
|
+
return value instanceof Uint8Array;
|
|
128
|
+
case ScalarType.INT64:
|
|
129
|
+
case ScalarType.SFIXED64:
|
|
130
|
+
case ScalarType.SINT64:
|
|
131
|
+
// signed
|
|
132
|
+
if (typeof value != "string" &&
|
|
133
|
+
typeof value !== "bigint" &&
|
|
134
|
+
typeof value !== "number") {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
protoInt64.parse(value);
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
return `${value} out of range`;
|
|
142
|
+
}
|
|
143
|
+
return true;
|
|
144
|
+
case ScalarType.FIXED64:
|
|
145
|
+
case ScalarType.UINT64:
|
|
146
|
+
// unsigned
|
|
147
|
+
if (typeof value != "string" &&
|
|
148
|
+
typeof value !== "bigint" &&
|
|
149
|
+
typeof value !== "number") {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
try {
|
|
153
|
+
protoInt64.uParse(value);
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
return `${value} out of range`;
|
|
157
|
+
}
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
72
161
|
function reasonSingular(field, val, details) {
|
|
73
162
|
details =
|
|
74
163
|
typeof details == "string" ? `: ${details}` : `, got ${formatVal(val)}`;
|
|
@@ -141,3 +230,31 @@ function formatReflectMap(field) {
|
|
|
141
230
|
return `ReflectMap (${ScalarType[field.mapKey]}, ${ScalarType[field.scalar]})`;
|
|
142
231
|
}
|
|
143
232
|
}
|
|
233
|
+
function scalarTypeDescription(scalar) {
|
|
234
|
+
switch (scalar) {
|
|
235
|
+
case ScalarType.STRING:
|
|
236
|
+
return "string";
|
|
237
|
+
case ScalarType.BOOL:
|
|
238
|
+
return "boolean";
|
|
239
|
+
case ScalarType.INT64:
|
|
240
|
+
case ScalarType.SINT64:
|
|
241
|
+
case ScalarType.SFIXED64:
|
|
242
|
+
return "bigint (int64)";
|
|
243
|
+
case ScalarType.UINT64:
|
|
244
|
+
case ScalarType.FIXED64:
|
|
245
|
+
return "bigint (uint64)";
|
|
246
|
+
case ScalarType.BYTES:
|
|
247
|
+
return "Uint8Array";
|
|
248
|
+
case ScalarType.DOUBLE:
|
|
249
|
+
return "number (float64)";
|
|
250
|
+
case ScalarType.FLOAT:
|
|
251
|
+
return "number (float32)";
|
|
252
|
+
case ScalarType.FIXED32:
|
|
253
|
+
case ScalarType.UINT32:
|
|
254
|
+
return "number (uint32)";
|
|
255
|
+
case ScalarType.INT32:
|
|
256
|
+
case ScalarType.SFIXED32:
|
|
257
|
+
case ScalarType.SINT32:
|
|
258
|
+
return "number (int32)";
|
|
259
|
+
}
|
|
260
|
+
}
|
|
@@ -1,32 +1,151 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type DescField, type DescMessage, type DescOneof } from "../descriptors.js";
|
|
2
2
|
import { FieldError } from "./error.js";
|
|
3
3
|
import { unsafeLocal } from "./unsafe.js";
|
|
4
4
|
import type { Message, UnknownField } from "../types.js";
|
|
5
|
-
import type {
|
|
5
|
+
import type { ScalarValue } from "./scalar.js";
|
|
6
|
+
/**
|
|
7
|
+
* ReflectMessage provides dynamic access and manipulation of a message.
|
|
8
|
+
*/
|
|
6
9
|
export interface ReflectMessage {
|
|
10
|
+
/**
|
|
11
|
+
* The underlying message instance.
|
|
12
|
+
*/
|
|
7
13
|
readonly message: Message;
|
|
14
|
+
/**
|
|
15
|
+
* The descriptor for the message.
|
|
16
|
+
*/
|
|
8
17
|
readonly desc: DescMessage;
|
|
18
|
+
/**
|
|
19
|
+
* The fields of the message. This is a shortcut to message.fields.
|
|
20
|
+
*/
|
|
9
21
|
readonly fields: readonly DescField[];
|
|
22
|
+
/**
|
|
23
|
+
* The fields of the message, sorted by field number ascending.
|
|
24
|
+
*/
|
|
10
25
|
readonly sortedFields: readonly DescField[];
|
|
26
|
+
/**
|
|
27
|
+
* Oneof groups of the message. This is a shortcut to message.oneofs.
|
|
28
|
+
*/
|
|
11
29
|
readonly oneofs: readonly DescOneof[];
|
|
30
|
+
/**
|
|
31
|
+
* Fields and oneof groups for this message. This is a shortcut to message.members.
|
|
32
|
+
*/
|
|
12
33
|
readonly members: readonly (DescField | DescOneof)[];
|
|
34
|
+
/**
|
|
35
|
+
* Find a field by number.
|
|
36
|
+
*/
|
|
13
37
|
findNumber(number: number): DescField | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Returns true if the field is set.
|
|
40
|
+
*
|
|
41
|
+
* - Scalar and enum fields with implicit presence (proto3):
|
|
42
|
+
* Set if not a zero value.
|
|
43
|
+
*
|
|
44
|
+
* - Scalar and enum fields with explicit presence (proto2, oneof):
|
|
45
|
+
* Set if a value was set when creating or parsing the message, or when a
|
|
46
|
+
* value was assigned to the field's property.
|
|
47
|
+
*
|
|
48
|
+
* - Message fields:
|
|
49
|
+
* Set if the property is not undefined.
|
|
50
|
+
*
|
|
51
|
+
* - List and map fields:
|
|
52
|
+
* Set if not empty.
|
|
53
|
+
*/
|
|
14
54
|
isSet(field: DescField): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Resets the field, so that isSet() will return false.
|
|
57
|
+
*/
|
|
15
58
|
clear(field: DescField): void;
|
|
59
|
+
/**
|
|
60
|
+
* Return the selected field of a oneof group.
|
|
61
|
+
*/
|
|
16
62
|
oneofCase(oneof: DescOneof): DescField | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Returns the field value. Values are converted or wrapped to make it easier
|
|
65
|
+
* to manipulate messages.
|
|
66
|
+
*
|
|
67
|
+
* - Scalar fields:
|
|
68
|
+
* Returns the value, but converts 64-bit integer fields with the option
|
|
69
|
+
* `jstype=JS_STRING` to a bigint value.
|
|
70
|
+
* If the field is not set, the default value is returned. If no default
|
|
71
|
+
* value is set, the zero value is returned.
|
|
72
|
+
*
|
|
73
|
+
* - Enum fields:
|
|
74
|
+
* Returns the numeric value. If the field is not set, the default value is
|
|
75
|
+
* returned. If no default value is set, the zero value is returned.
|
|
76
|
+
*
|
|
77
|
+
* - Message fields:
|
|
78
|
+
* Returns a ReflectMessage. If the field is not set, a new message is
|
|
79
|
+
* returned, but not set on the field.
|
|
80
|
+
*
|
|
81
|
+
* - List fields:
|
|
82
|
+
* Returns a ReflectList object.
|
|
83
|
+
*
|
|
84
|
+
* - Map fields:
|
|
85
|
+
* Returns a ReflectMap object.
|
|
86
|
+
*
|
|
87
|
+
* Note that get() never returns `undefined`. To determine whether a field is
|
|
88
|
+
* set, use isSet().
|
|
89
|
+
*/
|
|
17
90
|
get<Field extends DescField>(field: Field): ReflectGetValue<Field>;
|
|
91
|
+
/**
|
|
92
|
+
* Set a field value.
|
|
93
|
+
*
|
|
94
|
+
* Expects values in the same form that get() returns:
|
|
95
|
+
*
|
|
96
|
+
* - Scalar fields:
|
|
97
|
+
* 64-bit integer fields with the option `jstype=JS_STRING` as a bigint value.
|
|
98
|
+
*
|
|
99
|
+
* - Message fields:
|
|
100
|
+
* ReflectMessage.
|
|
101
|
+
*
|
|
102
|
+
* - List fields:
|
|
103
|
+
* ReflectList.
|
|
104
|
+
*
|
|
105
|
+
* - Map fields:
|
|
106
|
+
* ReflectMap.
|
|
107
|
+
*
|
|
108
|
+
* Returns an error if the value is invalid for the field. `undefined` is not
|
|
109
|
+
* a valid value. To reset a field, use clear().
|
|
110
|
+
*/
|
|
18
111
|
set<Field extends DescField>(field: Field, value: ReflectSetValue<Field>): FieldError | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* Add an item to a list field.
|
|
114
|
+
*/
|
|
19
115
|
addListItem<Field extends DescField & {
|
|
20
116
|
fieldKind: "list";
|
|
21
|
-
}>(field: Field, value:
|
|
117
|
+
}>(field: Field, value: ReflectAddListItemValue<Field>): FieldError | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* Set a map entry.
|
|
120
|
+
*/
|
|
22
121
|
setMapEntry<Field extends DescField & {
|
|
23
122
|
fieldKind: "map";
|
|
24
|
-
}>(field: Field, key: MapEntryKey, value:
|
|
123
|
+
}>(field: Field, key: MapEntryKey, value: ReflectSetMapEntryValue<Field>): FieldError | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* Returns the unknown fields of the message.
|
|
126
|
+
*/
|
|
25
127
|
getUnknown(): UnknownField[] | undefined;
|
|
128
|
+
/**
|
|
129
|
+
* Sets the unknown fields of the message, overwriting any previous values.
|
|
130
|
+
*/
|
|
26
131
|
setUnknown(value: UnknownField[]): void;
|
|
27
132
|
[unsafeLocal]: Message;
|
|
28
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* ReflectList provides dynamic access and manipulation of a list field on a
|
|
136
|
+
* message.
|
|
137
|
+
*
|
|
138
|
+
* ReflectList is iterable - you can loop through all items with a for...of loop.
|
|
139
|
+
*
|
|
140
|
+
* Values are converted or wrapped to make it easier to manipulate them:
|
|
141
|
+
* - Scalar 64-bit integer fields with the option `jstype=JS_STRING` are
|
|
142
|
+
* converted to bigint.
|
|
143
|
+
* - Messages are wrapped in a ReflectMessage.
|
|
144
|
+
*/
|
|
29
145
|
export interface ReflectList<V = unknown> extends Iterable<V> {
|
|
146
|
+
/**
|
|
147
|
+
* Returns the list field.
|
|
148
|
+
*/
|
|
30
149
|
field(): DescField & {
|
|
31
150
|
fieldKind: "list";
|
|
32
151
|
};
|
|
@@ -60,7 +179,21 @@ export interface ReflectList<V = unknown> extends Iterable<V> {
|
|
|
60
179
|
values(): IterableIterator<V>;
|
|
61
180
|
[unsafeLocal]: unknown[];
|
|
62
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* ReflectMap provides dynamic access and manipulation of a map field on a
|
|
184
|
+
* message.
|
|
185
|
+
*
|
|
186
|
+
* ReflectMap is iterable - you can loop through all entries with a for...of loop.
|
|
187
|
+
*
|
|
188
|
+
* Keys and values are converted or wrapped to make it easier to manipulate them:
|
|
189
|
+
* - A map field is a record object on a message, where keys are always strings.
|
|
190
|
+
* ReflectMap converts keys to their closest possible type in TypeScript.
|
|
191
|
+
* - Messages are wrapped in a ReflectMessage.
|
|
192
|
+
*/
|
|
63
193
|
export interface ReflectMap<K extends MapEntryKey = MapEntryKey, V = unknown> extends ReadonlyMap<K, V> {
|
|
194
|
+
/**
|
|
195
|
+
* Returns the map field.
|
|
196
|
+
*/
|
|
64
197
|
field(): DescField & {
|
|
65
198
|
fieldKind: "map";
|
|
66
199
|
};
|
|
@@ -80,9 +213,15 @@ export interface ReflectMap<K extends MapEntryKey = MapEntryKey, V = unknown> ex
|
|
|
80
213
|
clear(): void;
|
|
81
214
|
[unsafeLocal]: Record<string, unknown>;
|
|
82
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* A ReflectMap key.
|
|
218
|
+
*/
|
|
83
219
|
export type MapEntryKey = string | number | bigint | boolean;
|
|
84
220
|
type enumVal = number;
|
|
85
|
-
|
|
221
|
+
/**
|
|
222
|
+
* The return type of ReflectMessage.get()
|
|
223
|
+
*/
|
|
224
|
+
export type ReflectGetValue<Field extends DescField = DescField> = (Field extends {
|
|
86
225
|
fieldKind: "map";
|
|
87
226
|
} ? (Field extends {
|
|
88
227
|
mapKind: "message";
|
|
@@ -91,29 +230,35 @@ type ReflectGetValue<Field extends DescField = DescField> = (Field extends {
|
|
|
91
230
|
} ? ReflectMap<MapEntryKey, enumVal> : Field extends {
|
|
92
231
|
mapKind: "scalar";
|
|
93
232
|
scalar: infer T;
|
|
94
|
-
} ? ReflectMap<MapEntryKey, ScalarValue<T
|
|
233
|
+
} ? ReflectMap<MapEntryKey, ScalarValue<T>> : never) : Field extends {
|
|
95
234
|
fieldKind: "list";
|
|
96
235
|
} ? ReflectList : Field extends {
|
|
97
236
|
fieldKind: "enum";
|
|
98
|
-
} ? number
|
|
237
|
+
} ? number : Field extends {
|
|
99
238
|
fieldKind: "message";
|
|
100
239
|
} ? ReflectMessage : Field extends {
|
|
101
240
|
fieldKind: "scalar";
|
|
102
241
|
scalar: infer T;
|
|
103
|
-
} ? ScalarValue<T>
|
|
104
|
-
|
|
242
|
+
} ? ScalarValue<T> : never);
|
|
243
|
+
/**
|
|
244
|
+
* The type of the "value" argument of ReflectMessage.set()
|
|
245
|
+
*/
|
|
246
|
+
export type ReflectSetValue<Field extends DescField = DescField> = (Field extends {
|
|
105
247
|
fieldKind: "map";
|
|
106
248
|
} ? ReflectMap : Field extends {
|
|
107
249
|
fieldKind: "list";
|
|
108
250
|
} ? ReflectList : Field extends {
|
|
109
251
|
fieldKind: "enum";
|
|
110
|
-
} ? number
|
|
252
|
+
} ? number : Field extends {
|
|
111
253
|
fieldKind: "message";
|
|
112
254
|
} ? ReflectMessage : Field extends {
|
|
113
255
|
fieldKind: "scalar";
|
|
114
256
|
scalar: infer T;
|
|
115
|
-
} ? ScalarValue<T>
|
|
116
|
-
|
|
257
|
+
} ? ScalarValue<T> : never);
|
|
258
|
+
/**
|
|
259
|
+
* The type of the "value" argument of ReflectMessage.addListItem()
|
|
260
|
+
*/
|
|
261
|
+
export type ReflectAddListItemValue<Field extends DescField & {
|
|
117
262
|
fieldKind: "list";
|
|
118
263
|
}> = (Field extends {
|
|
119
264
|
listKind: "scalar";
|
|
@@ -123,7 +268,10 @@ type NewListItem<Field extends DescField & {
|
|
|
123
268
|
} ? enumVal : Field extends {
|
|
124
269
|
listKind: "message";
|
|
125
270
|
} ? ReflectMessage : never);
|
|
126
|
-
|
|
271
|
+
/**
|
|
272
|
+
* The type of the "value" argument of ReflectMessage.setMapEntry()
|
|
273
|
+
*/
|
|
274
|
+
export type ReflectSetMapEntryValue<Field extends DescField & {
|
|
127
275
|
fieldKind: "map";
|
|
128
276
|
}> = (Field extends {
|
|
129
277
|
mapKind: "enum";
|
|
@@ -132,5 +280,5 @@ type NewMapEntryValue<Field extends DescField & {
|
|
|
132
280
|
} ? ReflectMessage : Field extends {
|
|
133
281
|
mapKind: "scalar";
|
|
134
282
|
scalar: infer T;
|
|
135
|
-
} ? ScalarValue<T
|
|
283
|
+
} ? ScalarValue<T> : never);
|
|
136
284
|
export {};
|
|
@@ -11,5 +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 {} from "../descriptors.js";
|
|
14
15
|
import { FieldError } from "./error.js";
|
|
15
16
|
import { unsafeLocal } from "./unsafe.js";
|