@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/README.md
CHANGED
|
@@ -15,7 +15,7 @@ Some additional features that set it apart from the others:
|
|
|
15
15
|
- ECMAScript module support
|
|
16
16
|
- First-class TypeScript support
|
|
17
17
|
- Generation of idiomatic JavaScript and TypeScript code.
|
|
18
|
-
- Generation of [much smaller bundles](https://github.com/bufbuild/protobuf-es/blob/main/packages/
|
|
18
|
+
- Generation of [much smaller bundles](https://github.com/bufbuild/protobuf-es/blob/main/packages/bundle-size)
|
|
19
19
|
- Implementation of all proto3 features, including the [canonical JSON format](https://developers.google.com/protocol-buffers/docs/proto3#json).
|
|
20
20
|
- Implementation of all proto2 features, except for extensions and the text format.
|
|
21
21
|
- Usage of standard JavaScript APIs instead of the [Closure Library](http://googlecode.blogspot.com/2009/11/introducing-closure-tools.html)
|
package/dist/cjs/clone.d.ts
CHANGED
package/dist/cjs/clone.js
CHANGED
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.clone = void 0;
|
|
17
|
+
const descriptors_js_1 = require("./descriptors.js");
|
|
17
18
|
const reflect_js_1 = require("./reflect/reflect.js");
|
|
18
19
|
const guard_js_1 = require("./reflect/guard.js");
|
|
19
|
-
const scalar_js_1 = require("./reflect/scalar.js");
|
|
20
20
|
/**
|
|
21
21
|
* Create a deep copy of a message, including extensions and unknown fields.
|
|
22
22
|
*/
|
|
@@ -69,7 +69,7 @@ function cloneSingular(field, value) {
|
|
|
69
69
|
if (field.message !== undefined && (0, guard_js_1.isReflectMessage)(value)) {
|
|
70
70
|
return cloneReflect(value);
|
|
71
71
|
}
|
|
72
|
-
if (field.scalar ==
|
|
72
|
+
if (field.scalar == descriptors_js_1.ScalarType.BYTES && value instanceof Uint8Array) {
|
|
73
73
|
// @ts-expect-error T cannot extend Uint8Array in practice
|
|
74
74
|
return value.slice();
|
|
75
75
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DescriptorProto_ExtensionRange, FieldDescriptorProto_Label, FieldDescriptorProto_Type, FieldOptions_OptionRetention, FieldOptions_OptionTargetType, FieldOptions_EditionDefault, EnumValueDescriptorProto, FileDescriptorProto } from "../wkt/gen/google/protobuf/descriptor_pb.js";
|
|
2
|
-
import type { DescFile } from "../
|
|
2
|
+
import type { DescFile } from "../descriptors.js";
|
|
3
3
|
/**
|
|
4
4
|
* Hydrate a file descriptor for google/protobuf/descriptor.proto from a plain
|
|
5
5
|
* object.
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.bootFileDescriptorProto = exports.boot = void 0;
|
|
17
17
|
const restore_json_names_js_1 = require("./restore-json-names.js");
|
|
18
|
-
const registry_js_1 = require("../
|
|
19
|
-
const assert_js_1 = require("../reflect/assert.js");
|
|
18
|
+
const registry_js_1 = require("../registry.js");
|
|
20
19
|
/**
|
|
21
20
|
* Hydrate a file descriptor for google/protobuf/descriptor.proto from a plain
|
|
22
21
|
* object.
|
|
@@ -29,9 +28,8 @@ function boot(boot) {
|
|
|
29
28
|
const root = bootFileDescriptorProto(boot);
|
|
30
29
|
root.messageType.forEach(restore_json_names_js_1.restoreJsonNames);
|
|
31
30
|
const reg = (0, registry_js_1.createFileRegistry)(root, () => undefined);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return file;
|
|
31
|
+
// non-null assertion because we just created the registry from the file we look up
|
|
32
|
+
return reg.getFile(root.name);
|
|
35
33
|
}
|
|
36
34
|
exports.boot = boot;
|
|
37
35
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DescEnum, DescExtension,
|
|
1
|
+
import type { DescEnum, DescExtension, DescMessage, DescService } from "../descriptors.js";
|
|
2
2
|
import type { FileDescriptorProto } from "../wkt/gen/google/protobuf/descriptor_pb.js";
|
|
3
3
|
import type { FileDescriptorProtoBoot } from "./boot.js";
|
|
4
4
|
type EmbedUnknown = {
|
|
@@ -16,7 +16,7 @@ type EmbedDescriptorProto = Omit<EmbedUnknown, "bootable"> & {
|
|
|
16
16
|
*
|
|
17
17
|
* @private
|
|
18
18
|
*/
|
|
19
|
-
export declare function embedFileDesc(file:
|
|
19
|
+
export declare function embedFileDesc(file: FileDescriptorProto): EmbedUnknown | EmbedDescriptorProto;
|
|
20
20
|
/**
|
|
21
21
|
* Compute the path to a message, enumeration, extension, or service in a
|
|
22
22
|
* file descriptor.
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.createFileDescriptorProtoBoot = exports.pathInFileDesc = exports.embedFileDesc = void 0;
|
|
17
17
|
const names_js_1 = require("../reflect/names.js");
|
|
18
|
-
const assert_js_1 = require("../reflect/assert.js");
|
|
19
18
|
const fields_js_1 = require("../fields.js");
|
|
20
19
|
const base64_encoding_js_1 = require("../wire/base64-encoding.js");
|
|
21
20
|
const to_binary_js_1 = require("../to-binary.js");
|
|
@@ -31,9 +30,9 @@ function embedFileDesc(file) {
|
|
|
31
30
|
const embed = {
|
|
32
31
|
bootable: false,
|
|
33
32
|
proto() {
|
|
34
|
-
const stripped = (0, clone_js_1.clone)(descriptor_pb_js_1.FileDescriptorProtoDesc, file
|
|
35
|
-
(0, fields_js_1.clearField)(descriptor_pb_js_1.FileDescriptorProtoDesc
|
|
36
|
-
(0, fields_js_1.clearField)(descriptor_pb_js_1.FileDescriptorProtoDesc
|
|
33
|
+
const stripped = (0, clone_js_1.clone)(descriptor_pb_js_1.FileDescriptorProtoDesc, file);
|
|
34
|
+
(0, fields_js_1.clearField)(stripped, descriptor_pb_js_1.FileDescriptorProtoDesc.field.dependency);
|
|
35
|
+
(0, fields_js_1.clearField)(stripped, descriptor_pb_js_1.FileDescriptorProtoDesc.field.sourceCodeInfo);
|
|
37
36
|
stripped.messageType.map(stripJsonNames);
|
|
38
37
|
return stripped;
|
|
39
38
|
},
|
|
@@ -42,7 +41,7 @@ function embedFileDesc(file) {
|
|
|
42
41
|
return (0, base64_encoding_js_1.base64Encode)(bytes, "std_raw");
|
|
43
42
|
},
|
|
44
43
|
};
|
|
45
|
-
return file.
|
|
44
|
+
return file.name == "google/protobuf/descriptor.proto"
|
|
46
45
|
? Object.assign(Object.assign({}, embed), { bootable: true, boot() {
|
|
47
46
|
return createFileDescriptorProtoBoot(this.proto());
|
|
48
47
|
} }) : embed;
|
|
@@ -51,7 +50,7 @@ exports.embedFileDesc = embedFileDesc;
|
|
|
51
50
|
function stripJsonNames(d) {
|
|
52
51
|
for (const f of d.field) {
|
|
53
52
|
if (f.jsonName === (0, names_js_1.protoCamelCase)(f.name)) {
|
|
54
|
-
(0, fields_js_1.clearField)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
53
|
+
(0, fields_js_1.clearField)(f, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.jsonName);
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
56
|
for (const n of d.nestedType) {
|
|
@@ -118,17 +117,17 @@ exports.pathInFileDesc = pathInFileDesc;
|
|
|
118
117
|
*/
|
|
119
118
|
function createFileDescriptorProtoBoot(proto) {
|
|
120
119
|
var _a;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
120
|
+
assert(proto.name == "google/protobuf/descriptor.proto");
|
|
121
|
+
assert(proto.package == "google.protobuf");
|
|
122
|
+
assert(!proto.dependency.length);
|
|
123
|
+
assert(!proto.publicDependency.length);
|
|
124
|
+
assert(!proto.weakDependency.length);
|
|
125
|
+
assert(!proto.service.length);
|
|
126
|
+
assert(!proto.extension.length);
|
|
127
|
+
assert(proto.sourceCodeInfo === undefined);
|
|
128
|
+
assert(proto.syntax == "" || proto.syntax == "proto2");
|
|
129
|
+
assert(!((_a = proto.options) === null || _a === void 0 ? void 0 : _a.features)); // we're dropping file options
|
|
130
|
+
assert(proto.edition === descriptor_pb_js_1.Edition.EDITION_UNKNOWN);
|
|
132
131
|
return {
|
|
133
132
|
name: proto.name,
|
|
134
133
|
package: proto.package,
|
|
@@ -138,10 +137,9 @@ function createFileDescriptorProtoBoot(proto) {
|
|
|
138
137
|
}
|
|
139
138
|
exports.createFileDescriptorProtoBoot = createFileDescriptorProtoBoot;
|
|
140
139
|
function createDescriptorBoot(proto) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
(0, assert_js_1.assert)(!proto.reservedName.length); // we're also dropping reserved_range
|
|
140
|
+
assert(proto.extension.length == 0);
|
|
141
|
+
assert(!proto.oneofDecl.length);
|
|
142
|
+
assert(!proto.options);
|
|
145
143
|
const b = {
|
|
146
144
|
name: proto.name,
|
|
147
145
|
};
|
|
@@ -156,34 +154,34 @@ function createDescriptorBoot(proto) {
|
|
|
156
154
|
}
|
|
157
155
|
if (proto.extensionRange.length) {
|
|
158
156
|
b.extensionRange = proto.extensionRange.map((r) => {
|
|
159
|
-
|
|
157
|
+
assert(!r.options);
|
|
160
158
|
return { start: r.start, end: r.end };
|
|
161
159
|
});
|
|
162
160
|
}
|
|
163
161
|
return b;
|
|
164
162
|
}
|
|
165
163
|
function createFieldDescriptorBoot(proto) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
164
|
+
assert((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.name));
|
|
165
|
+
assert((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.number));
|
|
166
|
+
assert((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.type));
|
|
167
|
+
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.oneofIndex));
|
|
168
|
+
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.jsonName) ||
|
|
171
169
|
proto.jsonName === (0, names_js_1.protoCamelCase)(proto.name));
|
|
172
170
|
const b = {
|
|
173
171
|
name: proto.name,
|
|
174
172
|
number: proto.number,
|
|
175
173
|
type: proto.type,
|
|
176
174
|
};
|
|
177
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
175
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.label)) {
|
|
178
176
|
b.label = proto.label;
|
|
179
177
|
}
|
|
180
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
178
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.typeName)) {
|
|
181
179
|
b.typeName = proto.typeName;
|
|
182
180
|
}
|
|
183
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
181
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.extendee)) {
|
|
184
182
|
b.extendee = proto.extendee;
|
|
185
183
|
}
|
|
186
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
184
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.defaultValue)) {
|
|
187
185
|
b.defaultValue = proto.defaultValue;
|
|
188
186
|
}
|
|
189
187
|
if (proto.options) {
|
|
@@ -193,19 +191,19 @@ function createFieldDescriptorBoot(proto) {
|
|
|
193
191
|
}
|
|
194
192
|
function createFieldOptionsBoot(proto) {
|
|
195
193
|
const b = {};
|
|
196
|
-
|
|
197
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
194
|
+
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.ctype));
|
|
195
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.packed)) {
|
|
198
196
|
b.packed = proto.packed;
|
|
199
197
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
198
|
+
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.jstype));
|
|
199
|
+
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.lazy));
|
|
200
|
+
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.unverifiedLazy));
|
|
201
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.deprecated)) {
|
|
204
202
|
b.deprecated = proto.deprecated;
|
|
205
203
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
204
|
+
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.weak));
|
|
205
|
+
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.debugRedact));
|
|
206
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.retention)) {
|
|
209
207
|
b.retention = proto.retention;
|
|
210
208
|
}
|
|
211
209
|
if (proto.targets.length) {
|
|
@@ -217,18 +215,16 @@ function createFieldOptionsBoot(proto) {
|
|
|
217
215
|
edition: d.edition,
|
|
218
216
|
}));
|
|
219
217
|
}
|
|
220
|
-
|
|
221
|
-
|
|
218
|
+
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.features));
|
|
219
|
+
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.uninterpretedOption));
|
|
222
220
|
return b;
|
|
223
221
|
}
|
|
224
222
|
function createEnumDescriptorBoot(proto) {
|
|
225
|
-
|
|
226
|
-
(0, assert_js_1.assert)(!proto.reservedRange.length);
|
|
227
|
-
(0, assert_js_1.assert)(!proto.options);
|
|
223
|
+
assert(!proto.options);
|
|
228
224
|
return {
|
|
229
225
|
name: proto.name,
|
|
230
226
|
value: proto.value.map((v) => {
|
|
231
|
-
|
|
227
|
+
assert(!v.options);
|
|
232
228
|
return {
|
|
233
229
|
name: v.name,
|
|
234
230
|
number: v.number,
|
|
@@ -236,3 +232,12 @@ function createEnumDescriptorBoot(proto) {
|
|
|
236
232
|
}),
|
|
237
233
|
};
|
|
238
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Assert that condition is truthy or throw error.
|
|
237
|
+
*/
|
|
238
|
+
function assert(condition) {
|
|
239
|
+
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- we want the implicit conversion to boolean
|
|
240
|
+
if (!condition) {
|
|
241
|
+
throw new Error();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.tsEnum = exports.enumDesc = void 0;
|
|
17
|
-
const names_js_1 = require("../reflect/names.js");
|
|
18
17
|
/**
|
|
19
18
|
* Hydrate an enum descriptor.
|
|
20
19
|
*
|
|
@@ -34,9 +33,8 @@ exports.enumDesc = enumDesc;
|
|
|
34
33
|
function tsEnum(desc) {
|
|
35
34
|
const enumObject = {};
|
|
36
35
|
for (const value of desc.values) {
|
|
37
|
-
|
|
38
|
-
enumObject[
|
|
39
|
-
enumObject[value.number] = name;
|
|
36
|
+
enumObject[value.localName] = value.number;
|
|
37
|
+
enumObject[value.number] = value.localName;
|
|
40
38
|
}
|
|
41
39
|
return enumObject;
|
|
42
40
|
}
|
|
@@ -14,10 +14,9 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.fileDesc = void 0;
|
|
17
|
-
const
|
|
17
|
+
const base64_encoding_js_1 = require("../wire/base64-encoding.js");
|
|
18
18
|
const descriptor_pb_js_1 = require("../wkt/gen/google/protobuf/descriptor_pb.js");
|
|
19
|
-
const registry_js_1 = require("../
|
|
20
|
-
const assert_js_1 = require("../reflect/assert.js");
|
|
19
|
+
const registry_js_1 = require("../registry.js");
|
|
21
20
|
const restore_json_names_js_1 = require("./restore-json-names.js");
|
|
22
21
|
const from_binary_js_1 = require("../from-binary.js");
|
|
23
22
|
/**
|
|
@@ -27,12 +26,11 @@ const from_binary_js_1 = require("../from-binary.js");
|
|
|
27
26
|
*/
|
|
28
27
|
function fileDesc(b64, imports) {
|
|
29
28
|
var _a;
|
|
30
|
-
const root = (0, from_binary_js_1.fromBinary)(descriptor_pb_js_1.FileDescriptorProtoDesc, (0,
|
|
29
|
+
const root = (0, from_binary_js_1.fromBinary)(descriptor_pb_js_1.FileDescriptorProtoDesc, (0, base64_encoding_js_1.base64Decode)(b64));
|
|
31
30
|
root.messageType.forEach(restore_json_names_js_1.restoreJsonNames);
|
|
32
31
|
root.dependency = (_a = imports === null || imports === void 0 ? void 0 : imports.map((f) => f.proto.name)) !== null && _a !== void 0 ? _a : [];
|
|
33
32
|
const reg = (0, registry_js_1.createFileRegistry)(root, (protoFileName) => imports === null || imports === void 0 ? void 0 : imports.find((f) => f.proto.name === protoFileName));
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return file;
|
|
33
|
+
// non-null assertion because we just created the registry from the file we look up
|
|
34
|
+
return reg.getFile(root.name);
|
|
37
35
|
}
|
|
38
36
|
exports.fileDesc = fileDesc;
|
|
@@ -35,4 +35,5 @@ __exportStar(require("./file.js"), exports);
|
|
|
35
35
|
__exportStar(require("./message.js"), exports);
|
|
36
36
|
__exportStar(require("./service.js"), exports);
|
|
37
37
|
__exportStar(require("./symbols.js"), exports);
|
|
38
|
+
__exportStar(require("./scalar.js"), exports);
|
|
38
39
|
__exportStar(require("./types.js"), exports);
|
|
@@ -16,6 +16,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.restoreJsonNames = void 0;
|
|
17
17
|
const names_js_1 = require("../reflect/names.js");
|
|
18
18
|
const unsafe_js_1 = require("../reflect/unsafe.js");
|
|
19
|
+
/**
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
19
22
|
function restoreJsonNames(message) {
|
|
20
23
|
for (const f of message.field) {
|
|
21
24
|
if (!(0, unsafe_js_1.unsafeIsSetExplicit)(f, "jsonName")) {
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ScalarType } from "../descriptors.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return the TypeScript type (as a string) for the given scalar type.
|
|
4
|
+
*/
|
|
5
|
+
export declare function scalarTypeScriptType(scalar: ScalarType, longAsString: boolean): "string" | "boolean" | "bigint" | "bigint | string" | "Uint8Array" | "number";
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2021-2024 Buf Technologies, Inc.
|
|
3
|
+
//
|
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
// you may not use this file except in compliance with the License.
|
|
6
|
+
// You may obtain a copy of the License at
|
|
7
|
+
//
|
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//
|
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
// See the License for the specific language governing permissions and
|
|
14
|
+
// limitations under the License.
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.scalarTypeScriptType = void 0;
|
|
17
|
+
const descriptors_js_1 = require("../descriptors.js");
|
|
18
|
+
/**
|
|
19
|
+
* Return the TypeScript type (as a string) for the given scalar type.
|
|
20
|
+
*/
|
|
21
|
+
function scalarTypeScriptType(scalar, longAsString) {
|
|
22
|
+
switch (scalar) {
|
|
23
|
+
case descriptors_js_1.ScalarType.STRING:
|
|
24
|
+
return "string";
|
|
25
|
+
case descriptors_js_1.ScalarType.BOOL:
|
|
26
|
+
return "boolean";
|
|
27
|
+
case descriptors_js_1.ScalarType.UINT64:
|
|
28
|
+
case descriptors_js_1.ScalarType.SFIXED64:
|
|
29
|
+
case descriptors_js_1.ScalarType.FIXED64:
|
|
30
|
+
case descriptors_js_1.ScalarType.SINT64:
|
|
31
|
+
case descriptors_js_1.ScalarType.INT64:
|
|
32
|
+
return longAsString ? "string" : "bigint";
|
|
33
|
+
case descriptors_js_1.ScalarType.BYTES:
|
|
34
|
+
return "Uint8Array";
|
|
35
|
+
default:
|
|
36
|
+
return "number";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.scalarTypeScriptType = scalarTypeScriptType;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { GenDescService,
|
|
2
|
-
import type { DescFile } from "../
|
|
1
|
+
import type { GenDescService, GenDescServiceMethods } from "./types.js";
|
|
2
|
+
import type { DescFile } from "../descriptors.js";
|
|
3
3
|
/**
|
|
4
4
|
* Hydrate a service descriptor.
|
|
5
5
|
*
|
|
6
6
|
* @private
|
|
7
7
|
*/
|
|
8
|
-
export declare function serviceDesc<T extends
|
|
8
|
+
export declare function serviceDesc<T extends GenDescServiceMethods>(file: DescFile, path: number, ...paths: number[]): GenDescService<T>;
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @private
|
|
3
|
+
*/
|
|
1
4
|
export declare const packageName = "@bufbuild/protobuf";
|
|
5
|
+
/**
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
2
8
|
export declare const wktPublicImportPaths: Readonly<Record<string, string>>;
|
|
9
|
+
/**
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
3
12
|
export declare const symbols: {
|
|
4
13
|
readonly isMessage: {
|
|
5
14
|
readonly typeOnly: false;
|
|
@@ -14,7 +14,13 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.symbols = exports.wktPublicImportPaths = exports.packageName = void 0;
|
|
17
|
+
/**
|
|
18
|
+
* @private
|
|
19
|
+
*/
|
|
17
20
|
exports.packageName = "@bufbuild/protobuf";
|
|
21
|
+
/**
|
|
22
|
+
* @private
|
|
23
|
+
*/
|
|
18
24
|
exports.wktPublicImportPaths = {
|
|
19
25
|
"google/protobuf/compiler/plugin.proto": exports.packageName + "/wkt",
|
|
20
26
|
"google/protobuf/any.proto": exports.packageName + "/wkt",
|
|
@@ -29,6 +35,9 @@ exports.wktPublicImportPaths = {
|
|
|
29
35
|
"google/protobuf/type.proto": exports.packageName + "/wkt",
|
|
30
36
|
"google/protobuf/wrappers.proto": exports.packageName + "/wkt",
|
|
31
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
32
41
|
// prettier-ignore
|
|
33
42
|
exports.symbols = {
|
|
34
43
|
isMessage: { typeOnly: false, bootstrapWktFrom: "../../is-message.js", from: exports.packageName },
|
|
@@ -1,19 +1,70 @@
|
|
|
1
1
|
import type { Message } from "../types.js";
|
|
2
|
-
import type { DescEnum, DescExtension, DescFile, DescMessage, DescService } from "../
|
|
2
|
+
import type { DescEnum, DescExtension, DescField, DescFile, DescMessage, DescMethod, DescService } from "../descriptors.js";
|
|
3
|
+
/**
|
|
4
|
+
* Describes a protobuf source file.
|
|
5
|
+
*
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
3
8
|
export type GenDescFile = DescFile;
|
|
4
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Describes a message declaration in a protobuf source file.
|
|
11
|
+
*
|
|
12
|
+
* This type is identical to DescMessage, but carries additional type
|
|
13
|
+
* information.
|
|
14
|
+
*
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
export type GenDescMessage<RuntimeShape extends Message> = Omit<DescMessage, "field"> & {
|
|
18
|
+
field: Record<MessageFieldNames<RuntimeShape>, DescField>;
|
|
19
|
+
} & brand<RuntimeShape>;
|
|
20
|
+
/**
|
|
21
|
+
* Describes an enumeration in a protobuf source file.
|
|
22
|
+
*
|
|
23
|
+
* This type is identical to DescEnum, but carries additional type
|
|
24
|
+
* information.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
5
28
|
export type GenDescEnum<RuntimeShape> = DescEnum & brand<RuntimeShape>;
|
|
29
|
+
/**
|
|
30
|
+
* Describes an extension in a protobuf source file.
|
|
31
|
+
*
|
|
32
|
+
* This type is identical to DescExtension, but carries additional type
|
|
33
|
+
* information.
|
|
34
|
+
*
|
|
35
|
+
* @private
|
|
36
|
+
*/
|
|
6
37
|
export type GenDescExtension<Extendee extends Message = Message, RuntimeShape = unknown> = DescExtension & brand<Extendee, RuntimeShape>;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Describes a service declaration in a protobuf source file.
|
|
40
|
+
*
|
|
41
|
+
* This type is identical to DescService, but carries additional type
|
|
42
|
+
* information.
|
|
43
|
+
*
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
export type GenDescService<RuntimeShape extends GenDescServiceMethods> = Omit<DescService, "method"> & {
|
|
47
|
+
method: {
|
|
48
|
+
[K in keyof RuntimeShape]: RuntimeShape[K] & DescMethod;
|
|
13
49
|
};
|
|
14
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* @private
|
|
53
|
+
*/
|
|
54
|
+
export type GenDescServiceMethods = Record<string, Pick<DescMethod, "input" | "output" | "methodKind">>;
|
|
15
55
|
declare class brand<A, B = unknown> {
|
|
16
56
|
protected a: A | boolean;
|
|
17
57
|
protected b: B | boolean;
|
|
18
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Union of the property names of all fields, including oneof members.
|
|
61
|
+
* For an anonymous message (no generated message shape), it's simply a string.
|
|
62
|
+
*/
|
|
63
|
+
type MessageFieldNames<T extends Message> = Message extends T ? string : Exclude<keyof {
|
|
64
|
+
[P in keyof T as P extends ("$typeName" | "$unknown") ? never : T[P] extends Oneof<infer K> ? K : P]-?: true;
|
|
65
|
+
}, number | symbol>;
|
|
66
|
+
type Oneof<K extends string> = {
|
|
67
|
+
case: K | undefined;
|
|
68
|
+
value?: unknown;
|
|
69
|
+
};
|
|
19
70
|
export {};
|
package/dist/cjs/create.d.ts
CHANGED