@bufbuild/protobuf 1.8.0 → 2.0.0-alpha.1
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/dist/cjs/clone.d.ts +6 -0
- package/dist/cjs/clone.js +77 -0
- package/dist/cjs/codegenv1/boot.d.ts +63 -0
- package/dist/cjs/codegenv1/boot.js +102 -0
- package/dist/cjs/codegenv1/embed.d.ts +43 -0
- package/dist/cjs/codegenv1/embed.js +238 -0
- package/dist/cjs/codegenv1/enum.d.ts +17 -0
- package/dist/cjs/codegenv1/enum.js +43 -0
- package/dist/cjs/codegenv1/extension.d.ts +9 -0
- package/dist/cjs/codegenv1/extension.js +29 -0
- package/dist/cjs/codegenv1/file.d.ts +7 -0
- package/dist/cjs/codegenv1/file.js +38 -0
- package/dist/cjs/codegenv1/index.d.ts +9 -0
- package/dist/cjs/codegenv1/index.js +38 -0
- package/dist/cjs/codegenv1/message.d.ts +9 -0
- package/dist/cjs/codegenv1/message.js +25 -0
- package/dist/cjs/codegenv1/restore-json-names.d.ts +2 -0
- package/dist/cjs/codegenv1/restore-json-names.js +27 -0
- package/dist/cjs/codegenv1/service.d.ts +8 -0
- package/dist/cjs/codegenv1/service.js +28 -0
- package/dist/cjs/codegenv1/symbols.d.ts +116 -0
- package/dist/cjs/codegenv1/symbols.js +58 -0
- package/dist/cjs/codegenv1/types.d.ts +19 -0
- package/dist/cjs/codegenv1/types.js +21 -0
- package/dist/cjs/create.d.ts +9 -0
- package/dist/cjs/create.js +242 -0
- package/dist/{esm/descriptor-set.d.ts → cjs/desc-types.d.ts} +144 -242
- package/dist/cjs/equals.d.ts +9 -0
- package/dist/cjs/equals.js +133 -0
- package/dist/cjs/{extension-accessor.d.ts → extensions.d.ts} +11 -7
- package/dist/cjs/extensions.js +138 -0
- package/dist/cjs/fields.d.ts +22 -0
- package/dist/cjs/fields.js +39 -0
- package/dist/cjs/from-binary.d.ts +34 -0
- package/dist/cjs/from-binary.js +221 -0
- package/dist/cjs/from-json.d.ts +48 -0
- package/dist/cjs/from-json.js +614 -0
- package/dist/cjs/index.d.ts +16 -42
- package/dist/cjs/index.js +21 -55
- package/dist/cjs/is-message.d.ts +5 -20
- package/dist/cjs/is-message.js +11 -29
- package/dist/cjs/json-value.d.ts +16 -0
- package/dist/cjs/proto-int64.js +2 -2
- package/dist/cjs/reflect/error.d.ts +9 -0
- package/dist/cjs/reflect/error.js +36 -0
- package/dist/cjs/reflect/guard.d.ts +20 -0
- package/dist/cjs/reflect/guard.js +78 -0
- package/dist/cjs/reflect/index.d.ts +8 -0
- package/dist/cjs/reflect/index.js +41 -0
- package/dist/cjs/reflect/names.d.ts +23 -0
- package/dist/cjs/reflect/names.js +112 -0
- package/dist/cjs/reflect/nested-types.d.ts +2 -0
- package/dist/cjs/reflect/nested-types.js +38 -0
- package/dist/cjs/reflect/reflect-check.d.ts +10 -0
- package/dist/cjs/reflect/reflect-check.js +150 -0
- package/dist/cjs/reflect/reflect-types.d.ts +136 -0
- package/dist/cjs/{extension.js → reflect/reflect-types.js} +1 -0
- package/dist/cjs/reflect/reflect.d.ts +23 -0
- package/dist/cjs/reflect/reflect.js +409 -0
- package/dist/cjs/reflect/registry.d.ts +82 -0
- package/dist/cjs/reflect/registry.js +870 -0
- package/dist/{esm → cjs/reflect}/scalar.d.ts +21 -1
- package/dist/cjs/reflect/scalar.js +298 -0
- package/dist/cjs/reflect/unsafe.d.ts +58 -0
- package/dist/cjs/reflect/unsafe.js +171 -0
- package/dist/cjs/to-binary.d.ts +24 -0
- package/dist/cjs/to-binary.js +194 -0
- package/dist/cjs/to-json.d.ts +50 -0
- package/dist/cjs/to-json.js +384 -0
- package/dist/cjs/types.d.ts +68 -0
- package/dist/cjs/wire/base64-encoding.d.ts +23 -0
- package/dist/cjs/wire/base64-encoding.js +156 -0
- package/dist/cjs/wire/binary-encoding.d.ts +242 -0
- package/dist/cjs/{binary-encoding.js → wire/binary-encoding.js} +11 -10
- package/dist/cjs/wire/index.d.ts +5 -0
- package/dist/cjs/wire/index.js +34 -0
- package/dist/cjs/wire/size-delimited.d.ts +51 -0
- package/dist/cjs/wire/size-delimited.js +154 -0
- package/dist/cjs/wire/text-encoding.d.ts +26 -0
- package/dist/cjs/wire/text-encoding.js +55 -0
- package/dist/cjs/wire/text-format.d.ts +14 -0
- package/dist/cjs/{private → wire}/text-format.js +12 -2
- package/dist/{esm/google → cjs/wire}/varint.d.ts +2 -2
- package/dist/cjs/{google → wire}/varint.js +11 -10
- package/dist/cjs/wkt/any.d.ts +38 -0
- package/dist/cjs/wkt/any.js +76 -0
- package/dist/cjs/{google → wkt/gen/google}/protobuf/any_pb.d.ts +6 -27
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.js +22 -0
- package/dist/cjs/{google → wkt/gen/google}/protobuf/api_pb.d.ts +14 -38
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.js +30 -0
- package/dist/cjs/{google → wkt/gen/google}/protobuf/compiler/plugin_pb.d.ts +47 -77
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +55 -0
- package/dist/cjs/{google → wkt/gen/google}/protobuf/descriptor_pb.d.ts +384 -533
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +691 -0
- package/dist/{esm → cjs/wkt/gen}/google/protobuf/duration_pb.d.ts +6 -18
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +22 -0
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.d.ts +17 -0
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +22 -0
- package/dist/{esm → cjs/wkt/gen}/google/protobuf/field_mask_pb.d.ts +6 -18
- package/dist/cjs/{proto-double.js → wkt/gen/google/protobuf/field_mask_pb.js} +7 -14
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.d.ts +19 -0
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +22 -0
- package/dist/{esm → cjs/wkt/gen}/google/protobuf/struct_pb.d.ts +28 -57
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +48 -0
- package/dist/{esm → cjs/wkt/gen}/google/protobuf/timestamp_pb.d.ts +6 -21
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +22 -0
- package/dist/{esm → cjs/wkt/gen}/google/protobuf/type_pb.d.ts +47 -82
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.js +223 -0
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +147 -0
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +46 -0
- package/dist/cjs/wkt/index.d.ts +15 -0
- package/dist/cjs/wkt/index.js +44 -0
- package/dist/cjs/wkt/timestamp.d.ts +21 -0
- package/dist/cjs/wkt/timestamp.js +58 -0
- package/dist/cjs/wkt/wrappers.d.ts +15 -0
- package/dist/cjs/wkt/wrappers.js +43 -0
- package/dist/esm/clone.d.ts +6 -0
- package/dist/esm/clone.js +73 -0
- package/dist/esm/codegenv1/boot.d.ts +63 -0
- package/dist/esm/codegenv1/boot.js +97 -0
- package/dist/esm/codegenv1/embed.d.ts +43 -0
- package/dist/esm/codegenv1/embed.js +232 -0
- package/dist/esm/codegenv1/enum.d.ts +17 -0
- package/dist/esm/codegenv1/enum.js +38 -0
- package/dist/esm/codegenv1/extension.d.ts +9 -0
- package/dist/esm/codegenv1/extension.js +25 -0
- package/dist/esm/codegenv1/file.d.ts +7 -0
- package/dist/esm/codegenv1/file.js +34 -0
- package/dist/esm/codegenv1/index.d.ts +9 -0
- package/dist/esm/codegenv1/index.js +22 -0
- package/dist/esm/codegenv1/message.d.ts +9 -0
- package/dist/esm/codegenv1/message.js +21 -0
- package/dist/esm/codegenv1/restore-json-names.d.ts +2 -0
- package/dist/esm/codegenv1/restore-json-names.js +23 -0
- package/dist/esm/codegenv1/service.d.ts +8 -0
- package/dist/esm/codegenv1/service.js +24 -0
- package/dist/esm/codegenv1/symbols.d.ts +116 -0
- package/dist/esm/codegenv1/symbols.js +55 -0
- package/dist/esm/codegenv1/types.d.ts +19 -0
- package/dist/esm/{field-list.js → codegenv1/types.js} +6 -0
- package/dist/esm/create.d.ts +9 -0
- package/dist/esm/create.js +239 -0
- package/dist/{cjs/descriptor-set.d.ts → esm/desc-types.d.ts} +144 -242
- package/dist/esm/equals.d.ts +9 -0
- package/dist/esm/equals.js +129 -0
- package/dist/esm/{extension-accessor.d.ts → extensions.d.ts} +11 -7
- package/dist/esm/extensions.js +130 -0
- package/dist/esm/fields.d.ts +22 -0
- package/dist/esm/fields.js +34 -0
- package/dist/esm/from-binary.d.ts +34 -0
- package/dist/esm/from-binary.js +215 -0
- package/dist/esm/from-json.d.ts +48 -0
- package/dist/esm/from-json.js +607 -0
- package/dist/esm/index.d.ts +16 -42
- package/dist/esm/index.js +13 -30
- package/dist/esm/is-message.d.ts +5 -20
- package/dist/esm/is-message.js +11 -29
- package/dist/esm/json-value.d.ts +16 -0
- package/dist/esm/proto-int64.js +2 -2
- package/dist/esm/reflect/error.d.ts +9 -0
- package/dist/esm/reflect/error.js +31 -0
- package/dist/esm/reflect/guard.d.ts +20 -0
- package/dist/esm/reflect/guard.js +70 -0
- package/dist/esm/reflect/index.d.ts +8 -0
- package/dist/esm/reflect/index.js +21 -0
- package/dist/esm/reflect/names.d.ts +23 -0
- package/dist/esm/reflect/names.js +106 -0
- package/dist/esm/reflect/nested-types.d.ts +2 -0
- package/dist/esm/reflect/nested-types.js +34 -0
- package/dist/esm/reflect/reflect-check.d.ts +10 -0
- package/dist/esm/reflect/reflect-check.js +143 -0
- package/dist/esm/reflect/reflect-types.d.ts +136 -0
- package/dist/esm/reflect/reflect-types.js +15 -0
- package/dist/esm/reflect/reflect.d.ts +23 -0
- package/dist/esm/reflect/reflect.js +403 -0
- package/dist/esm/reflect/registry.d.ts +82 -0
- package/dist/esm/reflect/registry.js +865 -0
- package/dist/{cjs → esm/reflect}/scalar.d.ts +21 -1
- package/dist/esm/reflect/scalar.js +289 -0
- package/dist/esm/reflect/unsafe.d.ts +58 -0
- package/dist/esm/reflect/unsafe.js +160 -0
- package/dist/esm/to-binary.d.ts +24 -0
- package/dist/esm/to-binary.js +189 -0
- package/dist/esm/to-json.d.ts +50 -0
- package/dist/esm/to-json.js +379 -0
- package/dist/esm/types.d.ts +68 -0
- package/dist/esm/wire/base64-encoding.d.ts +23 -0
- package/dist/esm/wire/base64-encoding.js +151 -0
- package/dist/esm/wire/binary-encoding.d.ts +242 -0
- package/dist/esm/{binary-encoding.js → wire/binary-encoding.js} +11 -10
- package/dist/esm/wire/index.d.ts +5 -0
- package/dist/esm/wire/index.js +18 -0
- package/dist/esm/wire/size-delimited.d.ts +51 -0
- package/dist/esm/wire/size-delimited.js +148 -0
- package/dist/esm/wire/text-encoding.d.ts +26 -0
- package/dist/esm/wire/text-encoding.js +50 -0
- package/dist/esm/wire/text-format.d.ts +14 -0
- package/dist/esm/{private → wire}/text-format.js +12 -2
- package/dist/{cjs/google → esm/wire}/varint.d.ts +2 -2
- package/dist/esm/{google → wire}/varint.js +11 -10
- package/dist/esm/wkt/any.d.ts +38 -0
- package/dist/esm/wkt/any.js +69 -0
- package/dist/esm/{google → wkt/gen/google}/protobuf/any_pb.d.ts +6 -27
- package/dist/esm/wkt/gen/google/protobuf/any_pb.js +19 -0
- package/dist/esm/{google → wkt/gen/google}/protobuf/api_pb.d.ts +14 -38
- package/dist/esm/wkt/gen/google/protobuf/api_pb.js +27 -0
- package/dist/esm/{google → wkt/gen/google}/protobuf/compiler/plugin_pb.d.ts +47 -77
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +52 -0
- package/dist/esm/{google → wkt/gen/google}/protobuf/descriptor_pb.d.ts +384 -533
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +687 -0
- package/dist/{cjs → esm/wkt/gen}/google/protobuf/duration_pb.d.ts +6 -18
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.js +19 -0
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +17 -0
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.js +19 -0
- package/dist/{cjs → esm/wkt/gen}/google/protobuf/field_mask_pb.d.ts +6 -18
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +19 -0
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +19 -0
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +19 -0
- package/dist/{cjs → esm/wkt/gen}/google/protobuf/struct_pb.d.ts +28 -57
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.js +45 -0
- package/dist/{cjs → esm/wkt/gen}/google/protobuf/timestamp_pb.d.ts +6 -21
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +19 -0
- package/dist/{cjs → esm/wkt/gen}/google/protobuf/type_pb.d.ts +47 -82
- package/dist/esm/wkt/gen/google/protobuf/type_pb.js +220 -0
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +147 -0
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +43 -0
- package/dist/esm/wkt/index.d.ts +15 -0
- package/dist/esm/wkt/index.js +28 -0
- package/dist/esm/wkt/timestamp.d.ts +21 -0
- package/dist/esm/wkt/timestamp.js +50 -0
- package/dist/esm/wkt/wrappers.d.ts +15 -0
- package/dist/esm/wkt/wrappers.js +38 -0
- package/package.json +39 -7
- package/dist/cjs/binary-encoding.d.ts +0 -420
- package/dist/cjs/binary-format.d.ts +0 -113
- package/dist/cjs/codegen-info.d.ts +0 -33
- package/dist/cjs/codegen-info.js +0 -69
- package/dist/cjs/create-descriptor-set.d.ts +0 -36
- package/dist/cjs/create-descriptor-set.js +0 -910
- package/dist/cjs/create-registry-from-desc.d.ts +0 -15
- package/dist/cjs/create-registry-from-desc.js +0 -264
- package/dist/cjs/create-registry.d.ts +0 -9
- package/dist/cjs/create-registry.js +0 -94
- package/dist/cjs/enum.d.ts +0 -35
- package/dist/cjs/extension-accessor.js +0 -114
- package/dist/cjs/extension.d.ts +0 -24
- package/dist/cjs/field-list.d.ts +0 -27
- package/dist/cjs/field-list.js +0 -15
- package/dist/cjs/field.d.ts +0 -314
- package/dist/cjs/field.js +0 -15
- package/dist/cjs/google/protobuf/any_pb.js +0 -273
- package/dist/cjs/google/protobuf/api_pb.js +0 -316
- package/dist/cjs/google/protobuf/compiler/plugin_pb.js +0 -219
- package/dist/cjs/google/protobuf/descriptor_pb.js +0 -2034
- package/dist/cjs/google/protobuf/duration_pb.js +0 -169
- package/dist/cjs/google/protobuf/empty_pb.d.ts +0 -28
- package/dist/cjs/google/protobuf/empty_pb.js +0 -52
- package/dist/cjs/google/protobuf/field_mask_pb.js +0 -311
- package/dist/cjs/google/protobuf/source_context_pb.d.ts +0 -29
- package/dist/cjs/google/protobuf/source_context_pb.js +0 -55
- package/dist/cjs/google/protobuf/struct_pb.js +0 -240
- package/dist/cjs/google/protobuf/timestamp_pb.js +0 -213
- package/dist/cjs/google/protobuf/type_pb.js +0 -562
- package/dist/cjs/google/protobuf/wrappers_pb.d.ts +0 -267
- package/dist/cjs/google/protobuf/wrappers_pb.js +0 -569
- package/dist/cjs/json-format.d.ts +0 -111
- package/dist/cjs/json-format.js +0 -15
- package/dist/cjs/message-type.d.ts +0 -51
- package/dist/cjs/message-type.js +0 -15
- package/dist/cjs/message.d.ts +0 -130
- package/dist/cjs/message.js +0 -128
- package/dist/cjs/private/binary-format.d.ts +0 -7
- package/dist/cjs/private/binary-format.js +0 -430
- package/dist/cjs/private/enum.d.ts +0 -27
- package/dist/cjs/private/enum.js +0 -94
- package/dist/cjs/private/extensions.d.ts +0 -34
- package/dist/cjs/private/extensions.js +0 -86
- package/dist/cjs/private/feature-set.d.ts +0 -19
- package/dist/cjs/private/feature-set.js +0 -106
- package/dist/cjs/private/field-list.d.ts +0 -18
- package/dist/cjs/private/field-list.js +0 -76
- package/dist/cjs/private/field-normalize.d.ts +0 -9
- package/dist/cjs/private/field-normalize.js +0 -69
- package/dist/cjs/private/field-wrapper.d.ts +0 -25
- package/dist/cjs/private/field-wrapper.js +0 -57
- package/dist/cjs/private/field.d.ts +0 -16
- package/dist/cjs/private/field.js +0 -45
- package/dist/cjs/private/json-format.d.ts +0 -2
- package/dist/cjs/private/json-format.js +0 -626
- package/dist/cjs/private/message-type.d.ts +0 -18
- package/dist/cjs/private/message-type.js +0 -50
- package/dist/cjs/private/names.d.ts +0 -43
- package/dist/cjs/private/names.js +0 -278
- package/dist/cjs/private/options-map.d.ts +0 -7
- package/dist/cjs/private/options-map.js +0 -15
- package/dist/cjs/private/proto-runtime.d.ts +0 -53
- package/dist/cjs/private/proto-runtime.js +0 -41
- package/dist/cjs/private/reflect.d.ts +0 -9
- package/dist/cjs/private/reflect.js +0 -79
- package/dist/cjs/private/reify-wkt.d.ts +0 -102
- package/dist/cjs/private/reify-wkt.js +0 -172
- package/dist/cjs/private/scalars.d.ts +0 -18
- package/dist/cjs/private/scalars.js +0 -105
- package/dist/cjs/private/text-format.d.ts +0 -4
- package/dist/cjs/private/util-common.d.ts +0 -2
- package/dist/cjs/private/util-common.js +0 -234
- package/dist/cjs/private/util.d.ts +0 -38
- package/dist/cjs/private/util.js +0 -15
- package/dist/cjs/proto-base64.d.ts +0 -18
- package/dist/cjs/proto-base64.js +0 -128
- package/dist/cjs/proto-delimited.d.ts +0 -54
- package/dist/cjs/proto-delimited.js +0 -155
- package/dist/cjs/proto-double.d.ts +0 -5
- package/dist/cjs/proto2.d.ts +0 -4
- package/dist/cjs/proto2.js +0 -53
- package/dist/cjs/proto3.d.ts +0 -4
- package/dist/cjs/proto3.js +0 -56
- package/dist/cjs/scalar.js +0 -81
- package/dist/cjs/service-type.d.ts +0 -96
- package/dist/cjs/service-type.js +0 -53
- package/dist/cjs/to-plain-message.d.ts +0 -12
- package/dist/cjs/to-plain-message.js +0 -72
- package/dist/cjs/type-registry.d.ts +0 -57
- package/dist/cjs/type-registry.js +0 -15
- package/dist/esm/binary-encoding.d.ts +0 -420
- package/dist/esm/binary-format.d.ts +0 -113
- package/dist/esm/codegen-info.d.ts +0 -33
- package/dist/esm/codegen-info.js +0 -67
- package/dist/esm/create-descriptor-set.d.ts +0 -36
- package/dist/esm/create-descriptor-set.js +0 -906
- package/dist/esm/create-registry-from-desc.d.ts +0 -15
- package/dist/esm/create-registry-from-desc.js +0 -261
- package/dist/esm/create-registry.d.ts +0 -9
- package/dist/esm/create-registry.js +0 -90
- package/dist/esm/descriptor-set.js +0 -14
- package/dist/esm/enum.d.ts +0 -35
- package/dist/esm/extension-accessor.js +0 -107
- package/dist/esm/extension.d.ts +0 -24
- package/dist/esm/field-list.d.ts +0 -27
- package/dist/esm/field.d.ts +0 -314
- package/dist/esm/field.js +0 -14
- package/dist/esm/google/protobuf/any_pb.js +0 -269
- package/dist/esm/google/protobuf/api_pb.js +0 -310
- package/dist/esm/google/protobuf/compiler/plugin_pb.js +0 -212
- package/dist/esm/google/protobuf/descriptor_pb.js +0 -1999
- package/dist/esm/google/protobuf/duration_pb.js +0 -165
- package/dist/esm/google/protobuf/empty_pb.d.ts +0 -28
- package/dist/esm/google/protobuf/empty_pb.js +0 -48
- package/dist/esm/google/protobuf/field_mask_pb.js +0 -307
- package/dist/esm/google/protobuf/source_context_pb.d.ts +0 -29
- package/dist/esm/google/protobuf/source_context_pb.js +0 -51
- package/dist/esm/google/protobuf/struct_pb.js +0 -234
- package/dist/esm/google/protobuf/timestamp_pb.js +0 -209
- package/dist/esm/google/protobuf/type_pb.js +0 -554
- package/dist/esm/google/protobuf/wrappers_pb.d.ts +0 -267
- package/dist/esm/google/protobuf/wrappers_pb.js +0 -557
- package/dist/esm/json-format.d.ts +0 -111
- package/dist/esm/json-format.js +0 -14
- package/dist/esm/message-type.d.ts +0 -51
- package/dist/esm/message-type.js +0 -14
- package/dist/esm/message.d.ts +0 -130
- package/dist/esm/message.js +0 -124
- package/dist/esm/private/binary-format.d.ts +0 -7
- package/dist/esm/private/binary-format.js +0 -426
- package/dist/esm/private/enum.d.ts +0 -27
- package/dist/esm/private/enum.js +0 -87
- package/dist/esm/private/extensions.d.ts +0 -34
- package/dist/esm/private/extensions.js +0 -81
- package/dist/esm/private/feature-set.d.ts +0 -19
- package/dist/esm/private/feature-set.js +0 -102
- package/dist/esm/private/field-list.d.ts +0 -18
- package/dist/esm/private/field-list.js +0 -72
- package/dist/esm/private/field-normalize.d.ts +0 -9
- package/dist/esm/private/field-normalize.js +0 -65
- package/dist/esm/private/field-wrapper.d.ts +0 -25
- package/dist/esm/private/field-wrapper.js +0 -53
- package/dist/esm/private/field.d.ts +0 -16
- package/dist/esm/private/field.js +0 -41
- package/dist/esm/private/json-format.d.ts +0 -2
- package/dist/esm/private/json-format.js +0 -623
- package/dist/esm/private/message-type.d.ts +0 -18
- package/dist/esm/private/message-type.js +0 -46
- package/dist/esm/private/names.d.ts +0 -43
- package/dist/esm/private/names.js +0 -269
- package/dist/esm/private/options-map.d.ts +0 -7
- package/dist/esm/private/options-map.js +0 -14
- package/dist/esm/private/proto-runtime.d.ts +0 -53
- package/dist/esm/private/proto-runtime.js +0 -37
- package/dist/esm/private/reflect.d.ts +0 -9
- package/dist/esm/private/reflect.js +0 -74
- package/dist/esm/private/reify-wkt.d.ts +0 -102
- package/dist/esm/private/reify-wkt.js +0 -168
- package/dist/esm/private/scalars.d.ts +0 -18
- package/dist/esm/private/scalars.js +0 -99
- package/dist/esm/private/text-format.d.ts +0 -4
- package/dist/esm/private/util-common.d.ts +0 -2
- package/dist/esm/private/util-common.js +0 -231
- package/dist/esm/private/util.d.ts +0 -38
- package/dist/esm/private/util.js +0 -14
- package/dist/esm/proto-base64.d.ts +0 -18
- package/dist/esm/proto-base64.js +0 -125
- package/dist/esm/proto-delimited.d.ts +0 -54
- package/dist/esm/proto-delimited.js +0 -152
- package/dist/esm/proto-double.d.ts +0 -5
- package/dist/esm/proto-double.js +0 -26
- package/dist/esm/proto2.d.ts +0 -4
- package/dist/esm/proto2.js +0 -50
- package/dist/esm/proto3.d.ts +0 -4
- package/dist/esm/proto3.js +0 -53
- package/dist/esm/scalar.js +0 -78
- package/dist/esm/service-type.d.ts +0 -96
- package/dist/esm/service-type.js +0 -50
- package/dist/esm/to-plain-message.d.ts +0 -12
- package/dist/esm/to-plain-message.js +0 -70
- package/dist/esm/type-registry.d.ts +0 -57
- package/dist/esm/type-registry.js +0 -14
- /package/dist/cjs/{binary-format.js → desc-types.js} +0 -0
- /package/dist/cjs/{descriptor-set.js → json-value.js} +0 -0
- /package/dist/cjs/{private → reflect}/assert.d.ts +0 -0
- /package/dist/cjs/{private → reflect}/assert.js +0 -0
- /package/dist/cjs/{enum.js → types.js} +0 -0
- /package/dist/esm/{binary-format.js → desc-types.js} +0 -0
- /package/dist/esm/{enum.js → json-value.js} +0 -0
- /package/dist/esm/{private → reflect}/assert.d.ts +0 -0
- /package/dist/esm/{private → reflect}/assert.js +0 -0
- /package/dist/esm/{extension.js → types.js} +0 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// Copyright 2021-2024 Buf Technologies, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { scalarEquals } from "./reflect/scalar.js";
|
|
15
|
+
import { reflect } from "./reflect/reflect.js";
|
|
16
|
+
/**
|
|
17
|
+
* Compare two messages of the same type.
|
|
18
|
+
*
|
|
19
|
+
* Note that this function disregards extensions and unknown fields, and that
|
|
20
|
+
* NaN is not equal NaN, following the IEEE standard.
|
|
21
|
+
*/
|
|
22
|
+
export function equals(messageDesc, a, b) {
|
|
23
|
+
if (a.$typeName != messageDesc.typeName ||
|
|
24
|
+
b.$typeName != messageDesc.typeName) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
if (a === b) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
return reflectEquals(reflect(messageDesc, a), reflect(messageDesc, b));
|
|
31
|
+
}
|
|
32
|
+
function reflectEquals(a, b) {
|
|
33
|
+
for (const f of a.fields) {
|
|
34
|
+
if (!fieldEquals(f, a, b)) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
function fieldEquals(f, a, b) {
|
|
41
|
+
if (!a.isSet(f) && !b.isSet(f)) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
if (!a.isSet(f) || !b.isSet(f)) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
switch (f.fieldKind) {
|
|
48
|
+
case "scalar":
|
|
49
|
+
return scalarEquals(f.scalar, a.get(f), b.get(f));
|
|
50
|
+
case "enum":
|
|
51
|
+
return a.get(f) === b.get(f);
|
|
52
|
+
case "message":
|
|
53
|
+
return reflectEquals(a.get(f), b.get(f));
|
|
54
|
+
case "map": {
|
|
55
|
+
const ma = a.get(f);
|
|
56
|
+
const mb = b.get(f);
|
|
57
|
+
const keysA = [];
|
|
58
|
+
for (const k of ma.keys()) {
|
|
59
|
+
if (!mb.has(k)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
keysA.push(k);
|
|
63
|
+
}
|
|
64
|
+
for (const k of mb.keys()) {
|
|
65
|
+
if (!ma.has(k)) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
for (const key of keysA) {
|
|
70
|
+
const va = ma.get(key);
|
|
71
|
+
const vb = mb.get(key);
|
|
72
|
+
if (va === vb) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
switch (f.mapKind) {
|
|
76
|
+
case "enum":
|
|
77
|
+
return false;
|
|
78
|
+
case "message":
|
|
79
|
+
// TODO fix type error
|
|
80
|
+
// @ts-expect-error TODO
|
|
81
|
+
if (!reflectEquals(va, vb)) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
break;
|
|
85
|
+
case "scalar":
|
|
86
|
+
// TODO fix type error
|
|
87
|
+
// @ts-expect-error TODO
|
|
88
|
+
if (!scalarEquals(f.scalar, va, vb)) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
case "list": {
|
|
97
|
+
const la = a.get(f);
|
|
98
|
+
const lb = b.get(f);
|
|
99
|
+
if (la.size != lb.size) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
for (let i = 0; i < la.size; i++) {
|
|
103
|
+
if (la.get(i) === lb.get(i)) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
switch (f.listKind) {
|
|
107
|
+
case "enum":
|
|
108
|
+
return false;
|
|
109
|
+
case "message":
|
|
110
|
+
// TODO fix type error
|
|
111
|
+
// @ts-expect-error TODO
|
|
112
|
+
if (!reflectEquals(la.get(i), lb.get(i))) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
break;
|
|
116
|
+
case "scalar":
|
|
117
|
+
// TODO fix type error
|
|
118
|
+
// @ts-expect-error TODO
|
|
119
|
+
if (!scalarEquals(f.scalar, la.get(i), lb.get(i))) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
1
|
+
import type { DescExtension, DescField } from "./desc-types.js";
|
|
2
|
+
import type { ReflectMessage } from "./reflect/reflect-types.js";
|
|
3
|
+
import type { Extendee, ExtensionValueShape } from "./types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Retrieve an extension value from a message.
|
|
6
6
|
*
|
|
@@ -15,21 +15,25 @@ import type { Extension } from "./extension.js";
|
|
|
15
15
|
*
|
|
16
16
|
* If the extension does not extend the given message, an error is raised.
|
|
17
17
|
*/
|
|
18
|
-
export declare function getExtension<
|
|
18
|
+
export declare function getExtension<Desc extends DescExtension>(message: Extendee<Desc>, extension: Desc): ExtensionValueShape<Desc>;
|
|
19
19
|
/**
|
|
20
20
|
* Set an extension value on a message. If the message already has a value for
|
|
21
21
|
* this extension, the value is replaced.
|
|
22
22
|
*
|
|
23
23
|
* If the extension does not extend the given message, an error is raised.
|
|
24
24
|
*/
|
|
25
|
-
export declare function setExtension<
|
|
25
|
+
export declare function setExtension<Desc extends DescExtension>(message: Extendee<Desc>, extension: Desc, value: ExtensionValueShape<Desc>): void;
|
|
26
26
|
/**
|
|
27
27
|
* Remove an extension value from a message.
|
|
28
28
|
*
|
|
29
29
|
* If the extension does not extend the given message, an error is raised.
|
|
30
30
|
*/
|
|
31
|
-
export declare function clearExtension<
|
|
31
|
+
export declare function clearExtension<Desc extends DescExtension>(message: Extendee<Desc>, extension: Desc): void;
|
|
32
32
|
/**
|
|
33
33
|
* Check whether an extension is set on a message.
|
|
34
34
|
*/
|
|
35
|
-
export declare function hasExtension<
|
|
35
|
+
export declare function hasExtension<Desc extends DescExtension>(message: Extendee<Desc>, extension: Desc): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
export declare function createExtensionContainer<Desc extends DescExtension>(extension: Desc, value?: ExtensionValueShape<Desc>): [ReflectMessage, DescField, () => ExtensionValueShape<Desc>];
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// Copyright 2021-2024 Buf Technologies, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { assert } from "./reflect/assert.js";
|
|
15
|
+
import { create } from "./create.js";
|
|
16
|
+
import { readField } from "./from-binary.js";
|
|
17
|
+
import { localName } from "./reflect/names.js";
|
|
18
|
+
import { reflect } from "./reflect/reflect.js";
|
|
19
|
+
import { scalarZeroValue } from "./reflect/scalar.js";
|
|
20
|
+
import { writeField } from "./to-binary.js";
|
|
21
|
+
import { BinaryReader, BinaryWriter } from "./wire/binary-encoding.js";
|
|
22
|
+
import { isWrapperDesc } from "./wkt/wrappers.js";
|
|
23
|
+
/**
|
|
24
|
+
* Retrieve an extension value from a message.
|
|
25
|
+
*
|
|
26
|
+
* The function never returns undefined. Use hasExtension() to check whether an
|
|
27
|
+
* extension is set. If the extension is not set, this function returns the
|
|
28
|
+
* default value (if one was specified in the protobuf source), or the zero value
|
|
29
|
+
* (for example `0` for numeric types, `[]` for repeated extension fields, and
|
|
30
|
+
* an empty message instance for message fields).
|
|
31
|
+
*
|
|
32
|
+
* Extensions are stored as unknown fields on a message. To mutate an extension
|
|
33
|
+
* value, make sure to store the new value with setExtension() after mutating.
|
|
34
|
+
*
|
|
35
|
+
* If the extension does not extend the given message, an error is raised.
|
|
36
|
+
*/
|
|
37
|
+
export function getExtension(message, extension) {
|
|
38
|
+
assertExtendee(extension, message);
|
|
39
|
+
const ufs = filterUnknownFields(message.$unknown, extension);
|
|
40
|
+
const [container, field, get] = createExtensionContainer(extension);
|
|
41
|
+
for (const uf of ufs) {
|
|
42
|
+
readField(container, new BinaryReader(uf.data), field, uf.wireType, {
|
|
43
|
+
readUnknownFields: false,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return get();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Set an extension value on a message. If the message already has a value for
|
|
50
|
+
* this extension, the value is replaced.
|
|
51
|
+
*
|
|
52
|
+
* If the extension does not extend the given message, an error is raised.
|
|
53
|
+
*/
|
|
54
|
+
export function setExtension(message, extension, value) {
|
|
55
|
+
var _a;
|
|
56
|
+
assertExtendee(extension, message);
|
|
57
|
+
const ufs = ((_a = message.$unknown) !== null && _a !== void 0 ? _a : []).filter((uf) => uf.no !== extension.number);
|
|
58
|
+
const [container, field] = createExtensionContainer(extension, value);
|
|
59
|
+
const writer = new BinaryWriter();
|
|
60
|
+
writeField(writer, { writeUnknownFields: false }, container, field);
|
|
61
|
+
const reader = new BinaryReader(writer.finish());
|
|
62
|
+
while (reader.pos < reader.len) {
|
|
63
|
+
const [no, wireType] = reader.tag();
|
|
64
|
+
const data = reader.skip(wireType);
|
|
65
|
+
ufs.push({ no, wireType, data });
|
|
66
|
+
}
|
|
67
|
+
message.$unknown = ufs;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Remove an extension value from a message.
|
|
71
|
+
*
|
|
72
|
+
* If the extension does not extend the given message, an error is raised.
|
|
73
|
+
*/
|
|
74
|
+
export function clearExtension(message, extension) {
|
|
75
|
+
assertExtendee(extension, message);
|
|
76
|
+
if (message.$unknown === undefined) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
message.$unknown = message.$unknown.filter((uf) => uf.no !== extension.number);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Check whether an extension is set on a message.
|
|
83
|
+
*/
|
|
84
|
+
export function hasExtension(message, extension) {
|
|
85
|
+
var _a;
|
|
86
|
+
return (extension.extendee.typeName === message.$typeName &&
|
|
87
|
+
!!((_a = message.$unknown) === null || _a === void 0 ? void 0 : _a.find((uf) => uf.no === extension.number)));
|
|
88
|
+
}
|
|
89
|
+
function filterUnknownFields(unknownFields, extension) {
|
|
90
|
+
if (unknownFields === undefined)
|
|
91
|
+
return [];
|
|
92
|
+
if (extension.fieldKind === "enum" || extension.fieldKind === "scalar") {
|
|
93
|
+
// singular scalar fields do not merge, we pick the last
|
|
94
|
+
for (let i = unknownFields.length - 1; i >= 0; --i) {
|
|
95
|
+
if (unknownFields[i].no == extension.number) {
|
|
96
|
+
return [unknownFields[i]];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
return unknownFields.filter((uf) => uf.no === extension.number);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* @private
|
|
105
|
+
*/
|
|
106
|
+
export function createExtensionContainer(extension, value) {
|
|
107
|
+
const field = Object.assign(Object.assign({}, extension), { kind: "field", parent: extension.extendee });
|
|
108
|
+
const desc = Object.assign(Object.assign({}, extension.extendee), { fields: [field], members: [field], oneofs: [] });
|
|
109
|
+
const fieldName = localName(field);
|
|
110
|
+
const container = create(desc, value !== undefined ? { [fieldName]: value } : undefined);
|
|
111
|
+
return [
|
|
112
|
+
reflect(desc, container),
|
|
113
|
+
field,
|
|
114
|
+
() => {
|
|
115
|
+
const value = container[fieldName];
|
|
116
|
+
if (value === undefined) {
|
|
117
|
+
// Only message fields are undefined, rest will have a zero value.
|
|
118
|
+
const desc = extension.message;
|
|
119
|
+
if (isWrapperDesc(desc)) {
|
|
120
|
+
return scalarZeroValue(desc.fields[0].scalar, desc.fields[0].longType);
|
|
121
|
+
}
|
|
122
|
+
return create(desc);
|
|
123
|
+
}
|
|
124
|
+
return value;
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
}
|
|
128
|
+
function assertExtendee(extension, message) {
|
|
129
|
+
assert(extension.extendee.typeName == message.$typeName, `extension ${extension.typeName} can only be applied to message ${extension.extendee.typeName}`);
|
|
130
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Message, MessageShape } from "./types.js";
|
|
2
|
+
import type { DescMessage } from "./desc-types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Returns true if the field is set.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isFieldSet<Desc extends DescMessage>(messageDesc: Desc, message: MessageShape<Desc>, fieldName: MessageFieldNames<MessageShape<Desc>>): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Resets the field, so that isFieldSet() will return false.
|
|
9
|
+
*/
|
|
10
|
+
export declare function clearField<Desc extends DescMessage>(messageDesc: Desc, message: MessageShape<Desc>, fieldName: MessageFieldNames<MessageShape<Desc>>): void;
|
|
11
|
+
/**
|
|
12
|
+
* Union of the property names of all fields, including oneof members.
|
|
13
|
+
* For an anonymous message (no generated message shape), it's simply a string.
|
|
14
|
+
*/
|
|
15
|
+
type MessageFieldNames<T extends Message> = Message extends T ? string : Exclude<keyof {
|
|
16
|
+
[P in keyof T as P extends ("$typeName" | "$unknown") ? never : T[P] extends Oneof<infer K> ? K : P]-?: true;
|
|
17
|
+
}, number | symbol>;
|
|
18
|
+
type Oneof<K extends string> = {
|
|
19
|
+
case: K | undefined;
|
|
20
|
+
value?: unknown;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Copyright 2021-2024 Buf Technologies, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { localName } from "./reflect/names.js";
|
|
15
|
+
import { unsafeClear, unsafeIsSet } from "./reflect/unsafe.js";
|
|
16
|
+
/**
|
|
17
|
+
* Returns true if the field is set.
|
|
18
|
+
*/
|
|
19
|
+
export function isFieldSet(messageDesc, message, fieldName) {
|
|
20
|
+
const field = messageDesc.fields.find((f) => localName(f) === fieldName);
|
|
21
|
+
if (field) {
|
|
22
|
+
return unsafeIsSet(message, field);
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resets the field, so that isFieldSet() will return false.
|
|
28
|
+
*/
|
|
29
|
+
export function clearField(messageDesc, message, fieldName) {
|
|
30
|
+
const field = messageDesc.fields.find((f) => localName(f) === fieldName);
|
|
31
|
+
if (field) {
|
|
32
|
+
unsafeClear(message, field);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { DescField, DescMessage } from "./desc-types.js";
|
|
2
|
+
import type { MessageShape } from "./types.js";
|
|
3
|
+
import type { ReflectMessage } from "./reflect/index.js";
|
|
4
|
+
import { BinaryReader, WireType } from "./wire/binary-encoding.js";
|
|
5
|
+
/**
|
|
6
|
+
* Options for parsing binary data.
|
|
7
|
+
*/
|
|
8
|
+
export interface BinaryReadOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Retain unknown fields during parsing? The default behavior is to retain
|
|
11
|
+
* unknown fields and include them in the serialized output.
|
|
12
|
+
*
|
|
13
|
+
* For more details see https://developers.google.com/protocol-buffers/docs/proto3#unknowns
|
|
14
|
+
*/
|
|
15
|
+
readUnknownFields: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parse serialized binary data.
|
|
19
|
+
*/
|
|
20
|
+
export declare function fromBinary<Desc extends DescMessage>(messageDesc: Desc, bytes: Uint8Array, options?: Partial<BinaryReadOptions>): MessageShape<Desc>;
|
|
21
|
+
/**
|
|
22
|
+
* Parse from binary data, merging fields.
|
|
23
|
+
*
|
|
24
|
+
* Repeated fields are appended. Map entries are added, overwriting
|
|
25
|
+
* existing keys.
|
|
26
|
+
*
|
|
27
|
+
* If a message field is already present, it will be merged with the
|
|
28
|
+
* new data.
|
|
29
|
+
*/
|
|
30
|
+
export declare function mergeFromBinary<Desc extends DescMessage>(messageDesc: Desc, target: MessageShape<Desc>, bytes: Uint8Array, options?: Partial<BinaryReadOptions>): MessageShape<Desc>;
|
|
31
|
+
/**
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
34
|
+
export declare function readField(message: ReflectMessage, reader: BinaryReader, field: DescField, wireType: WireType, options: BinaryReadOptions): void;
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
// Copyright 2021-2024 Buf Technologies, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { LongType, ScalarType, scalarZeroValue } from "./reflect/scalar.js";
|
|
15
|
+
import { reflect } from "./reflect/reflect.js";
|
|
16
|
+
import { BinaryReader, WireType } from "./wire/binary-encoding.js";
|
|
17
|
+
// Default options for parsing binary data.
|
|
18
|
+
const readDefaults = {
|
|
19
|
+
readUnknownFields: true,
|
|
20
|
+
};
|
|
21
|
+
function makeReadOptions(options) {
|
|
22
|
+
return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Parse serialized binary data.
|
|
26
|
+
*/
|
|
27
|
+
export function fromBinary(messageDesc, bytes, options) {
|
|
28
|
+
const msg = reflect(messageDesc);
|
|
29
|
+
readMessage(msg, new BinaryReader(bytes), makeReadOptions(options), false, bytes.byteLength);
|
|
30
|
+
return msg.message;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parse from binary data, merging fields.
|
|
34
|
+
*
|
|
35
|
+
* Repeated fields are appended. Map entries are added, overwriting
|
|
36
|
+
* existing keys.
|
|
37
|
+
*
|
|
38
|
+
* If a message field is already present, it will be merged with the
|
|
39
|
+
* new data.
|
|
40
|
+
*/
|
|
41
|
+
export function mergeFromBinary(messageDesc, target, bytes, options) {
|
|
42
|
+
readMessage(reflect(messageDesc, target), new BinaryReader(bytes), makeReadOptions(options), false, bytes.byteLength);
|
|
43
|
+
return target;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* If `delimited` is false, read the length given in `lengthOrDelimitedFieldNo`.
|
|
47
|
+
*
|
|
48
|
+
* If `delimited` is true, read until an EndGroup tag. `lengthOrDelimitedFieldNo`
|
|
49
|
+
* is the expected field number.
|
|
50
|
+
*
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
function readMessage(message, reader, options, delimited, lengthOrDelimitedFieldNo) {
|
|
54
|
+
var _a;
|
|
55
|
+
const end = delimited ? reader.len : reader.pos + lengthOrDelimitedFieldNo;
|
|
56
|
+
let fieldNo, wireType;
|
|
57
|
+
const unknownFields = (_a = message.getUnknown()) !== null && _a !== void 0 ? _a : [];
|
|
58
|
+
while (reader.pos < end) {
|
|
59
|
+
[fieldNo, wireType] = reader.tag();
|
|
60
|
+
if (wireType == WireType.EndGroup) {
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
const field = message.findNumber(fieldNo);
|
|
64
|
+
if (!field) {
|
|
65
|
+
const data = reader.skip(wireType);
|
|
66
|
+
if (options.readUnknownFields) {
|
|
67
|
+
unknownFields.push({ no: fieldNo, wireType, data });
|
|
68
|
+
}
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
readField(message, reader, field, wireType, options);
|
|
72
|
+
}
|
|
73
|
+
if (delimited) {
|
|
74
|
+
if (wireType != WireType.EndGroup || fieldNo !== lengthOrDelimitedFieldNo) {
|
|
75
|
+
throw new Error(`invalid end group tag`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (unknownFields.length > 0) {
|
|
79
|
+
message.setUnknown(unknownFields);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* @private
|
|
84
|
+
*/
|
|
85
|
+
export function readField(message, reader, field, wireType, options) {
|
|
86
|
+
switch (field.fieldKind) {
|
|
87
|
+
case "scalar":
|
|
88
|
+
message.set(field, readScalar(reader, field.scalar, field.longType));
|
|
89
|
+
break;
|
|
90
|
+
case "enum":
|
|
91
|
+
message.set(field, readScalar(reader, ScalarType.INT32));
|
|
92
|
+
break;
|
|
93
|
+
case "message":
|
|
94
|
+
message.set(field, readMessageField(reader, options, field, message.get(field)));
|
|
95
|
+
break;
|
|
96
|
+
case "list":
|
|
97
|
+
readListField(message, reader, options, field, wireType);
|
|
98
|
+
break;
|
|
99
|
+
case "map":
|
|
100
|
+
// eslint-disable-next-line no-case-declarations
|
|
101
|
+
const [key, val] = readMapEntry(field, reader, options);
|
|
102
|
+
message.setMapEntry(field, key, val);
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Read a map field, expecting key field = 1, value field = 2
|
|
107
|
+
function readMapEntry(field, reader, options) {
|
|
108
|
+
let key, val;
|
|
109
|
+
const end = reader.pos + reader.uint32();
|
|
110
|
+
while (reader.pos < end) {
|
|
111
|
+
const [fieldNo] = reader.tag();
|
|
112
|
+
switch (fieldNo) {
|
|
113
|
+
case 1:
|
|
114
|
+
key = readScalar(reader, field.mapKey);
|
|
115
|
+
break;
|
|
116
|
+
case 2:
|
|
117
|
+
switch (field.mapKind) {
|
|
118
|
+
case "scalar":
|
|
119
|
+
val = readScalar(reader, field.scalar);
|
|
120
|
+
break;
|
|
121
|
+
case "enum":
|
|
122
|
+
val = reader.int32();
|
|
123
|
+
break;
|
|
124
|
+
case "message":
|
|
125
|
+
val = readMessageField(reader, options, field);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (key === undefined) {
|
|
132
|
+
key = scalarZeroValue(field.mapKey, LongType.BIGINT);
|
|
133
|
+
}
|
|
134
|
+
if (val === undefined) {
|
|
135
|
+
switch (field.mapKind) {
|
|
136
|
+
case "scalar":
|
|
137
|
+
val = scalarZeroValue(field.scalar, LongType.BIGINT);
|
|
138
|
+
break;
|
|
139
|
+
case "enum":
|
|
140
|
+
val = field.enum.values[0].number;
|
|
141
|
+
break;
|
|
142
|
+
case "message":
|
|
143
|
+
val = reflect(field.message);
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return [key, val];
|
|
148
|
+
}
|
|
149
|
+
function readListField(message, reader, options, field, wireType) {
|
|
150
|
+
var _a;
|
|
151
|
+
if (field.listKind === "message") {
|
|
152
|
+
message.addListItem(field, readMessageField(reader, options, field));
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const scalarType = (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32;
|
|
156
|
+
const longType = field.listKind == "scalar" ? field.longType : undefined;
|
|
157
|
+
const packed = wireType == WireType.LengthDelimited &&
|
|
158
|
+
scalarType != ScalarType.STRING &&
|
|
159
|
+
scalarType != ScalarType.BYTES;
|
|
160
|
+
if (!packed) {
|
|
161
|
+
message.addListItem(field, readScalar(reader, scalarType, longType));
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const e = reader.uint32() + reader.pos;
|
|
165
|
+
while (reader.pos < e) {
|
|
166
|
+
message.addListItem(field, readScalar(reader, scalarType, longType));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
function readMessageField(reader, options, field, mergeMessage) {
|
|
170
|
+
const delimited = field.delimitedEncoding;
|
|
171
|
+
const message = mergeMessage !== null && mergeMessage !== void 0 ? mergeMessage : reflect(field.message);
|
|
172
|
+
readMessage(message, reader, options, delimited, delimited ? field.number : reader.uint32());
|
|
173
|
+
return message;
|
|
174
|
+
}
|
|
175
|
+
function readScalar(reader, type, longType) {
|
|
176
|
+
let v = readScalarValue(reader, type);
|
|
177
|
+
if (longType === LongType.STRING) {
|
|
178
|
+
v = typeof v == "bigint" ? v.toString() : v;
|
|
179
|
+
}
|
|
180
|
+
return v;
|
|
181
|
+
}
|
|
182
|
+
function readScalarValue(reader, type) {
|
|
183
|
+
switch (type) {
|
|
184
|
+
case ScalarType.STRING:
|
|
185
|
+
return reader.string();
|
|
186
|
+
case ScalarType.BOOL:
|
|
187
|
+
return reader.bool();
|
|
188
|
+
case ScalarType.DOUBLE:
|
|
189
|
+
return reader.double();
|
|
190
|
+
case ScalarType.FLOAT:
|
|
191
|
+
return reader.float();
|
|
192
|
+
case ScalarType.INT32:
|
|
193
|
+
return reader.int32();
|
|
194
|
+
case ScalarType.INT64:
|
|
195
|
+
return reader.int64();
|
|
196
|
+
case ScalarType.UINT64:
|
|
197
|
+
return reader.uint64();
|
|
198
|
+
case ScalarType.FIXED64:
|
|
199
|
+
return reader.fixed64();
|
|
200
|
+
case ScalarType.BYTES:
|
|
201
|
+
return reader.bytes();
|
|
202
|
+
case ScalarType.FIXED32:
|
|
203
|
+
return reader.fixed32();
|
|
204
|
+
case ScalarType.SFIXED32:
|
|
205
|
+
return reader.sfixed32();
|
|
206
|
+
case ScalarType.SFIXED64:
|
|
207
|
+
return reader.sfixed64();
|
|
208
|
+
case ScalarType.SINT64:
|
|
209
|
+
return reader.sint64();
|
|
210
|
+
case ScalarType.UINT32:
|
|
211
|
+
return reader.uint32();
|
|
212
|
+
case ScalarType.SINT32:
|
|
213
|
+
return reader.sint32();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { DescMessage } from "./desc-types.js";
|
|
2
|
+
import type { JsonValue } from "./json-value.js";
|
|
3
|
+
import type { Registry } from "./reflect/registry.js";
|
|
4
|
+
import type { MessageShape } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Options for parsing JSON data.
|
|
7
|
+
*/
|
|
8
|
+
export interface JsonReadOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Ignore unknown fields: Proto3 JSON parser should reject unknown fields
|
|
11
|
+
* by default. This option ignores unknown fields in parsing, as well as
|
|
12
|
+
* unrecognized enum string representations.
|
|
13
|
+
*/
|
|
14
|
+
ignoreUnknownFields: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* This option is required to read `google.protobuf.Any` and extensions
|
|
17
|
+
* from JSON format.
|
|
18
|
+
*/
|
|
19
|
+
registry?: Registry;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parse a message from a JSON string.
|
|
23
|
+
*/
|
|
24
|
+
export declare function fromJsonString<Desc extends DescMessage>(messageDesc: Desc, json: string, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
|
|
25
|
+
/**
|
|
26
|
+
* Parse a message from a JSON string, merging fields.
|
|
27
|
+
*
|
|
28
|
+
* Repeated fields are appended. Map entries are added, overwriting
|
|
29
|
+
* existing keys.
|
|
30
|
+
*
|
|
31
|
+
* If a message field is already present, it will be merged with the
|
|
32
|
+
* new data.
|
|
33
|
+
*/
|
|
34
|
+
export declare function mergeFromJsonString<Desc extends DescMessage>(messageDesc: Desc, target: MessageShape<Desc>, json: string, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
|
|
35
|
+
/**
|
|
36
|
+
* Parse a message from a JSON value.
|
|
37
|
+
*/
|
|
38
|
+
export declare function fromJson<Desc extends DescMessage>(messageDesc: Desc, json: JsonValue, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
|
|
39
|
+
/**
|
|
40
|
+
* Parse a message from a JSON value, merging fields.
|
|
41
|
+
*
|
|
42
|
+
* Repeated fields are appended. Map entries are added, overwriting
|
|
43
|
+
* existing keys.
|
|
44
|
+
*
|
|
45
|
+
* If a message field is already present, it will be merged with the
|
|
46
|
+
* new data.
|
|
47
|
+
*/
|
|
48
|
+
export declare function mergeFromJson<Desc extends DescMessage>(messageDesc: Desc, target: MessageShape<Desc>, json: JsonValue, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
|