@bufbuild/protobuf 1.9.0 → 2.0.0-alpha.2
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 +41 -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 +5 -0
- package/dist/cjs/codegenv1/restore-json-names.js +30 -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 +125 -0
- package/dist/cjs/codegenv1/symbols.js +67 -0
- package/dist/cjs/codegenv1/types.d.ts +72 -0
- package/dist/cjs/codegenv1/types.js +21 -0
- package/dist/cjs/create.d.ts +9 -0
- package/dist/cjs/create.js +231 -0
- package/dist/{esm/descriptor-set.d.ts → cjs/desc-types.d.ts} +162 -243
- package/dist/cjs/equals.d.ts +9 -0
- package/dist/cjs/equals.js +133 -0
- package/dist/cjs/extensions.d.ts +59 -0
- package/dist/cjs/extensions.js +169 -0
- package/dist/cjs/fields.d.ts +23 -0
- package/dist/cjs/fields.js +46 -0
- package/dist/cjs/from-binary.d.ts +34 -0
- package/dist/cjs/from-binary.js +211 -0
- package/dist/cjs/from-json.d.ts +48 -0
- package/dist/cjs/from-json.js +610 -0
- package/dist/cjs/index.d.ts +16 -42
- package/dist/cjs/index.js +23 -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 +11 -0
- package/dist/cjs/reflect/names.js +74 -0
- package/dist/cjs/reflect/nested-types.d.ts +12 -0
- package/dist/cjs/reflect/nested-types.js +71 -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 +284 -0
- package/dist/cjs/{extension.js → reflect/reflect-types.js} +1 -0
- package/dist/cjs/reflect/reflect.d.ts +32 -0
- package/dist/cjs/reflect/reflect.js +434 -0
- package/dist/cjs/reflect/registry.d.ts +82 -0
- package/dist/cjs/reflect/registry.js +879 -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 +166 -0
- package/dist/cjs/to-binary.d.ts +24 -0
- package/dist/cjs/to-binary.js +192 -0
- package/dist/cjs/to-json.d.ts +50 -0
- package/dist/cjs/to-json.js +364 -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 +244 -0
- package/dist/cjs/{binary-encoding.js → wire/binary-encoding.js} +27 -20
- 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/{esm → cjs/wkt/gen}/google/protobuf/any_pb.d.ts +13 -27
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.js +27 -0
- package/dist/cjs/{google → wkt/gen/google}/protobuf/api_pb.d.ts +29 -38
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.js +39 -0
- package/dist/cjs/{google → wkt/gen/google}/protobuf/compiler/plugin_pb.d.ts +67 -75
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +68 -0
- package/dist/cjs/{google → wkt/gen/google}/protobuf/descriptor_pb.d.ts +564 -527
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +794 -0
- package/dist/cjs/{google → wkt/gen/google}/protobuf/duration_pb.d.ts +13 -18
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +27 -0
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.d.ts +24 -0
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +27 -0
- package/dist/{esm → cjs/wkt/gen}/google/protobuf/field_mask_pb.d.ts +13 -18
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.js +27 -0
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.d.ts +26 -0
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +27 -0
- package/dist/{esm → cjs/wkt/gen}/google/protobuf/struct_pb.d.ts +44 -55
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +59 -0
- package/dist/cjs/{google → wkt/gen/google}/protobuf/timestamp_pb.d.ts +13 -21
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +27 -0
- package/dist/{esm → cjs/wkt/gen}/google/protobuf/type_pb.d.ts +77 -80
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.js +242 -0
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +186 -0
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +67 -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 +36 -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 +5 -0
- package/dist/esm/codegenv1/restore-json-names.js +26 -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 +125 -0
- package/dist/esm/codegenv1/symbols.js +64 -0
- package/dist/esm/codegenv1/types.d.ts +72 -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 +228 -0
- package/dist/{cjs/descriptor-set.d.ts → esm/desc-types.d.ts} +162 -243
- package/dist/esm/equals.d.ts +9 -0
- package/dist/esm/equals.js +129 -0
- package/dist/esm/extensions.d.ts +59 -0
- package/dist/esm/extensions.js +159 -0
- package/dist/esm/fields.d.ts +23 -0
- package/dist/esm/fields.js +41 -0
- package/dist/esm/from-binary.d.ts +34 -0
- package/dist/esm/from-binary.js +205 -0
- package/dist/esm/from-json.d.ts +48 -0
- package/dist/esm/from-json.js +603 -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 +11 -0
- package/dist/esm/reflect/names.js +69 -0
- package/dist/esm/reflect/nested-types.d.ts +12 -0
- package/dist/esm/reflect/nested-types.js +66 -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 +284 -0
- package/dist/esm/reflect/reflect-types.js +15 -0
- package/dist/esm/reflect/reflect.d.ts +32 -0
- package/dist/esm/reflect/reflect.js +428 -0
- package/dist/esm/reflect/registry.d.ts +82 -0
- package/dist/esm/reflect/registry.js +874 -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 +155 -0
- package/dist/esm/to-binary.d.ts +24 -0
- package/dist/esm/to-binary.js +187 -0
- package/dist/esm/to-json.d.ts +50 -0
- package/dist/esm/to-json.js +359 -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 +244 -0
- package/dist/esm/{binary-encoding.js → wire/binary-encoding.js} +27 -20
- 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/{cjs → esm/wkt/gen}/google/protobuf/any_pb.d.ts +13 -27
- package/dist/esm/wkt/gen/google/protobuf/any_pb.js +24 -0
- package/dist/esm/{google → wkt/gen/google}/protobuf/api_pb.d.ts +29 -38
- package/dist/esm/wkt/gen/google/protobuf/api_pb.js +36 -0
- package/dist/esm/{google → wkt/gen/google}/protobuf/compiler/plugin_pb.d.ts +67 -75
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +65 -0
- package/dist/esm/{google → wkt/gen/google}/protobuf/descriptor_pb.d.ts +564 -527
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +790 -0
- package/dist/esm/{google → wkt/gen/google}/protobuf/duration_pb.d.ts +13 -18
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.js +24 -0
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +24 -0
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.js +24 -0
- package/dist/{cjs → esm/wkt/gen}/google/protobuf/field_mask_pb.d.ts +13 -18
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +24 -0
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +26 -0
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +24 -0
- package/dist/{cjs → esm/wkt/gen}/google/protobuf/struct_pb.d.ts +44 -55
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.js +56 -0
- package/dist/esm/{google → wkt/gen/google}/protobuf/timestamp_pb.d.ts +13 -21
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +24 -0
- package/dist/{cjs → esm/wkt/gen}/google/protobuf/type_pb.d.ts +77 -80
- package/dist/esm/wkt/gen/google/protobuf/type_pb.js +239 -0
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +186 -0
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +64 -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 +37 -5
- 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.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 -131
- package/dist/cjs/message.js +0 -129
- 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 -237
- 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/proto-double.js +0 -29
- 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.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 -131
- package/dist/esm/message.js +0 -125
- 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 -234
- 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,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>;
|
|
@@ -0,0 +1,610 @@
|
|
|
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.mergeFromJson = exports.fromJson = exports.mergeFromJsonString = exports.fromJsonString = void 0;
|
|
17
|
+
const assert_js_1 = require("./reflect/assert.js");
|
|
18
|
+
const proto_int64_js_1 = require("./proto-int64.js");
|
|
19
|
+
const create_js_1 = require("./create.js");
|
|
20
|
+
const reflect_js_1 = require("./reflect/reflect.js");
|
|
21
|
+
const reflect_check_js_1 = require("./reflect/reflect-check.js");
|
|
22
|
+
const scalar_js_1 = require("./reflect/scalar.js");
|
|
23
|
+
const base64_encoding_js_1 = require("./wire/base64-encoding.js");
|
|
24
|
+
const text_encoding_js_1 = require("./wire/text-encoding.js");
|
|
25
|
+
const index_js_1 = require("./wkt/index.js");
|
|
26
|
+
const wrappers_js_1 = require("./wkt/wrappers.js");
|
|
27
|
+
const extensions_js_1 = require("./extensions.js");
|
|
28
|
+
// Default options for parsing JSON.
|
|
29
|
+
const jsonReadDefaults = {
|
|
30
|
+
ignoreUnknownFields: false,
|
|
31
|
+
};
|
|
32
|
+
function makeReadOptions(options) {
|
|
33
|
+
return options ? Object.assign(Object.assign({}, jsonReadDefaults), options) : jsonReadDefaults;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parse a message from a JSON string.
|
|
37
|
+
*/
|
|
38
|
+
function fromJsonString(messageDesc, json, options) {
|
|
39
|
+
return fromJson(messageDesc, parseJsonString(json, messageDesc.typeName), options);
|
|
40
|
+
}
|
|
41
|
+
exports.fromJsonString = fromJsonString;
|
|
42
|
+
/**
|
|
43
|
+
* Parse a message from a JSON string, merging fields.
|
|
44
|
+
*
|
|
45
|
+
* Repeated fields are appended. Map entries are added, overwriting
|
|
46
|
+
* existing keys.
|
|
47
|
+
*
|
|
48
|
+
* If a message field is already present, it will be merged with the
|
|
49
|
+
* new data.
|
|
50
|
+
*/
|
|
51
|
+
function mergeFromJsonString(messageDesc, target, json, options) {
|
|
52
|
+
return mergeFromJson(messageDesc, target, parseJsonString(json, messageDesc.typeName), options);
|
|
53
|
+
}
|
|
54
|
+
exports.mergeFromJsonString = mergeFromJsonString;
|
|
55
|
+
/**
|
|
56
|
+
* Parse a message from a JSON value.
|
|
57
|
+
*/
|
|
58
|
+
function fromJson(messageDesc, json, options) {
|
|
59
|
+
const msg = (0, reflect_js_1.reflect)(messageDesc);
|
|
60
|
+
readMessage(msg, json, makeReadOptions(options));
|
|
61
|
+
return msg.message;
|
|
62
|
+
}
|
|
63
|
+
exports.fromJson = fromJson;
|
|
64
|
+
/**
|
|
65
|
+
* Parse a message from a JSON value, merging fields.
|
|
66
|
+
*
|
|
67
|
+
* Repeated fields are appended. Map entries are added, overwriting
|
|
68
|
+
* existing keys.
|
|
69
|
+
*
|
|
70
|
+
* If a message field is already present, it will be merged with the
|
|
71
|
+
* new data.
|
|
72
|
+
*/
|
|
73
|
+
function mergeFromJson(messageDesc, target, json, options) {
|
|
74
|
+
readMessage((0, reflect_js_1.reflect)(messageDesc, target), json, makeReadOptions(options));
|
|
75
|
+
return target;
|
|
76
|
+
}
|
|
77
|
+
exports.mergeFromJson = mergeFromJson;
|
|
78
|
+
function readMessage(msg, json, opts) {
|
|
79
|
+
var _a;
|
|
80
|
+
if (tryWktFromJson(msg, json, opts)) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (json == null || Array.isArray(json) || typeof json != "object") {
|
|
84
|
+
throw new Error(`cannot decode message ${msg.desc.typeName} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
85
|
+
}
|
|
86
|
+
const oneofSeen = new Map();
|
|
87
|
+
const jsonNames = new Map();
|
|
88
|
+
for (const field of msg.desc.fields) {
|
|
89
|
+
jsonNames.set(field.name, field).set(field.jsonName, field);
|
|
90
|
+
}
|
|
91
|
+
for (const [jsonKey, jsonValue] of Object.entries(json)) {
|
|
92
|
+
const field = jsonNames.get(jsonKey);
|
|
93
|
+
if (field) {
|
|
94
|
+
if (field.oneof) {
|
|
95
|
+
if (jsonValue === null && field.fieldKind == "scalar") {
|
|
96
|
+
// see conformance test Required.Proto3.JsonInput.OneofFieldNull{First,Second}
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const seen = oneofSeen.get(field.oneof);
|
|
100
|
+
if (seen !== undefined) {
|
|
101
|
+
throw new Error(`cannot decode message ${msg.desc.typeName} from JSON: multiple keys for oneof "${field.oneof.name}" present: "${seen}", "${jsonKey}"`);
|
|
102
|
+
}
|
|
103
|
+
oneofSeen.set(field.oneof, jsonKey);
|
|
104
|
+
}
|
|
105
|
+
readField(msg, field, jsonValue, opts);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
let extension = undefined;
|
|
109
|
+
if (jsonKey.startsWith("[") &&
|
|
110
|
+
jsonKey.endsWith("]") &&
|
|
111
|
+
(extension = (_a = opts.registry) === null || _a === void 0 ? void 0 : _a.getExtension(jsonKey.substring(1, jsonKey.length - 1))) &&
|
|
112
|
+
extension.extendee.typeName === msg.desc.typeName) {
|
|
113
|
+
const [container, field, get] = (0, extensions_js_1.createExtensionContainer)(extension);
|
|
114
|
+
readField(container, field, jsonValue, opts);
|
|
115
|
+
(0, extensions_js_1.setExtension)(msg.message, extension, get());
|
|
116
|
+
}
|
|
117
|
+
if (!extension && !opts.ignoreUnknownFields) {
|
|
118
|
+
throw new Error(`cannot decode message ${msg.desc.typeName} from JSON: key "${jsonKey}" is unknown`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function readField(msg, field, json, opts) {
|
|
124
|
+
switch (field.fieldKind) {
|
|
125
|
+
case "scalar":
|
|
126
|
+
readScalarField(msg, field, json);
|
|
127
|
+
break;
|
|
128
|
+
case "enum":
|
|
129
|
+
readEnumField(msg, field, json, opts);
|
|
130
|
+
break;
|
|
131
|
+
case "message":
|
|
132
|
+
readMessageField(msg, field, json, opts);
|
|
133
|
+
break;
|
|
134
|
+
case "list":
|
|
135
|
+
readListField(msg, field, json, opts);
|
|
136
|
+
break;
|
|
137
|
+
case "map":
|
|
138
|
+
readMapField(msg, field, json, opts);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function readMapField(msg, field, json, opts) {
|
|
143
|
+
if (json === null) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (typeof json != "object" || Array.isArray(json)) {
|
|
147
|
+
throw new Error(`cannot decode field ${msg.desc.typeName}.${field.name} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
148
|
+
}
|
|
149
|
+
for (const [jsonMapKey, jsonMapValue] of Object.entries(json)) {
|
|
150
|
+
if (jsonMapValue === null) {
|
|
151
|
+
throw new Error(`cannot decode field ${msg.desc.typeName}.${field.name} from JSON: map value null`);
|
|
152
|
+
}
|
|
153
|
+
let key;
|
|
154
|
+
try {
|
|
155
|
+
key = readMapKey(field.mapKey, jsonMapKey);
|
|
156
|
+
}
|
|
157
|
+
catch (e) {
|
|
158
|
+
let m = `cannot decode map key for field ${msg.desc.typeName}.${field.name} from JSON: ${(0, reflect_check_js_1.formatVal)(jsonMapKey)}`;
|
|
159
|
+
if (e instanceof Error && e.message.length > 0) {
|
|
160
|
+
m += `: ${e.message}`;
|
|
161
|
+
}
|
|
162
|
+
throw new Error(m);
|
|
163
|
+
}
|
|
164
|
+
switch (field.mapKind) {
|
|
165
|
+
case "message":
|
|
166
|
+
const msgValue = (0, reflect_js_1.reflect)(field.message);
|
|
167
|
+
readMessage(msgValue, jsonMapValue, opts);
|
|
168
|
+
msg.setMapEntry(field, key, msgValue);
|
|
169
|
+
break;
|
|
170
|
+
case "enum":
|
|
171
|
+
const enumValue = readEnum(field.enum, jsonMapValue, opts.ignoreUnknownFields, true);
|
|
172
|
+
if (enumValue !== tokenIgnoredUnknownEnum) {
|
|
173
|
+
msg.setMapEntry(field, key, enumValue);
|
|
174
|
+
}
|
|
175
|
+
break;
|
|
176
|
+
case "scalar":
|
|
177
|
+
try {
|
|
178
|
+
msg.setMapEntry(field, key, readScalar(field.scalar, jsonMapValue, true));
|
|
179
|
+
}
|
|
180
|
+
catch (e) {
|
|
181
|
+
let m = `cannot decode map value for field ${msg.desc.typeName}.${field.name} from JSON: ${(0, reflect_check_js_1.formatVal)(jsonMapValue)}`;
|
|
182
|
+
if (e instanceof Error && e.message.length > 0) {
|
|
183
|
+
m += `: ${e.message}`;
|
|
184
|
+
}
|
|
185
|
+
throw new Error(m);
|
|
186
|
+
}
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function readListField(msg, field, json, opts) {
|
|
192
|
+
if (json === null) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
if (!Array.isArray(json)) {
|
|
196
|
+
throw new Error(`cannot decode field ${msg.desc.typeName}.${field.name} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
197
|
+
}
|
|
198
|
+
for (const jsonItem of json) {
|
|
199
|
+
if (jsonItem === null) {
|
|
200
|
+
throw new Error(`cannot decode field ${msg.desc.typeName}.${field.name} from JSON: ${(0, reflect_check_js_1.formatVal)(jsonItem)}`);
|
|
201
|
+
}
|
|
202
|
+
switch (field.listKind) {
|
|
203
|
+
case "message":
|
|
204
|
+
const msgValue = (0, reflect_js_1.reflect)(field.message);
|
|
205
|
+
readMessage(msgValue, jsonItem, opts);
|
|
206
|
+
msg.addListItem(field, msgValue);
|
|
207
|
+
break;
|
|
208
|
+
case "enum":
|
|
209
|
+
const enumValue = readEnum(field.enum, jsonItem, opts.ignoreUnknownFields, true);
|
|
210
|
+
if (enumValue !== tokenIgnoredUnknownEnum) {
|
|
211
|
+
msg.addListItem(field, enumValue);
|
|
212
|
+
}
|
|
213
|
+
break;
|
|
214
|
+
case "scalar":
|
|
215
|
+
try {
|
|
216
|
+
msg.addListItem(field, readScalar(field.scalar, jsonItem, true));
|
|
217
|
+
}
|
|
218
|
+
catch (e) {
|
|
219
|
+
let m = `cannot decode field ${msg.desc.typeName}.${field.name} from JSON: ${(0, reflect_check_js_1.formatVal)(jsonItem)}`;
|
|
220
|
+
if (e instanceof Error && e.message.length > 0) {
|
|
221
|
+
m += `: ${e.message}`;
|
|
222
|
+
}
|
|
223
|
+
throw new Error(m);
|
|
224
|
+
}
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
function readMessageField(msg, field, json, opts) {
|
|
230
|
+
if (json === null && field.message.typeName != "google.protobuf.Value") {
|
|
231
|
+
msg.clear(field);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
const msgValue = msg.isSet(field) ? msg.get(field) : (0, reflect_js_1.reflect)(field.message);
|
|
235
|
+
readMessage(msgValue, json, opts);
|
|
236
|
+
msg.set(field, msgValue);
|
|
237
|
+
}
|
|
238
|
+
function readEnumField(msg, field, json, opts) {
|
|
239
|
+
const enumValue = readEnum(field.enum, json, opts.ignoreUnknownFields, false);
|
|
240
|
+
if (enumValue === tokenNull) {
|
|
241
|
+
msg.clear(field);
|
|
242
|
+
}
|
|
243
|
+
else if (enumValue !== tokenIgnoredUnknownEnum) {
|
|
244
|
+
msg.set(field, enumValue);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
function readScalarField(msg, field, json) {
|
|
248
|
+
try {
|
|
249
|
+
const scalarValue = readScalar(field.scalar, json, false);
|
|
250
|
+
if (scalarValue === tokenNull) {
|
|
251
|
+
msg.clear(field);
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
msg.set(field, scalarValue);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
catch (e) {
|
|
258
|
+
let m = `cannot decode field ${msg.desc.typeName}.${field.name} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`;
|
|
259
|
+
if (e instanceof Error && e.message.length > 0) {
|
|
260
|
+
m += `: ${e.message}`;
|
|
261
|
+
}
|
|
262
|
+
throw new Error(m);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
function readMapKey(type, json) {
|
|
266
|
+
if (type === scalar_js_1.ScalarType.BOOL) {
|
|
267
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
268
|
+
switch (json) {
|
|
269
|
+
case "true":
|
|
270
|
+
json = true;
|
|
271
|
+
break;
|
|
272
|
+
case "false":
|
|
273
|
+
json = false;
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return readScalar(type, json, true);
|
|
278
|
+
}
|
|
279
|
+
const tokenIgnoredUnknownEnum = Symbol();
|
|
280
|
+
function readEnum(desc, json, ignoreUnknownFields, nullAsZeroValue) {
|
|
281
|
+
if (json === null) {
|
|
282
|
+
if (desc.typeName == "google.protobuf.NullValue") {
|
|
283
|
+
return 0; // google.protobuf.NullValue.NULL_VALUE = 0
|
|
284
|
+
}
|
|
285
|
+
return nullAsZeroValue ? desc.values[0].number : tokenNull;
|
|
286
|
+
}
|
|
287
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
288
|
+
switch (typeof json) {
|
|
289
|
+
case "number":
|
|
290
|
+
if (Number.isInteger(json)) {
|
|
291
|
+
return json;
|
|
292
|
+
}
|
|
293
|
+
break;
|
|
294
|
+
case "string":
|
|
295
|
+
const value = desc.values.find((ev) => ev.name === json);
|
|
296
|
+
if (value !== undefined) {
|
|
297
|
+
return value.number;
|
|
298
|
+
}
|
|
299
|
+
if (ignoreUnknownFields) {
|
|
300
|
+
return tokenIgnoredUnknownEnum;
|
|
301
|
+
}
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
throw new Error(`cannot decode enum ${desc.typeName} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
305
|
+
}
|
|
306
|
+
const tokenNull = Symbol();
|
|
307
|
+
function readScalar(type, json, nullAsZeroValue) {
|
|
308
|
+
if (json === null) {
|
|
309
|
+
if (nullAsZeroValue) {
|
|
310
|
+
return (0, scalar_js_1.scalarZeroValue)(type, scalar_js_1.LongType.BIGINT);
|
|
311
|
+
}
|
|
312
|
+
return tokenNull;
|
|
313
|
+
}
|
|
314
|
+
// every valid case in the switch below returns, and every fall
|
|
315
|
+
// through is regarded as a failure.
|
|
316
|
+
switch (type) {
|
|
317
|
+
// float, double: JSON value will be a number or one of the special string values "NaN", "Infinity", and "-Infinity".
|
|
318
|
+
// Either numbers or strings are accepted. Exponent notation is also accepted.
|
|
319
|
+
case scalar_js_1.ScalarType.DOUBLE:
|
|
320
|
+
case scalar_js_1.ScalarType.FLOAT:
|
|
321
|
+
if (json === "NaN")
|
|
322
|
+
return Number.NaN;
|
|
323
|
+
if (json === "Infinity")
|
|
324
|
+
return Number.POSITIVE_INFINITY;
|
|
325
|
+
if (json === "-Infinity")
|
|
326
|
+
return Number.NEGATIVE_INFINITY;
|
|
327
|
+
if (json === "") {
|
|
328
|
+
// empty string is not a number
|
|
329
|
+
break;
|
|
330
|
+
}
|
|
331
|
+
if (typeof json == "string" && json.trim().length !== json.length) {
|
|
332
|
+
// extra whitespace
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
if (typeof json != "string" && typeof json != "number") {
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
const float = Number(json);
|
|
339
|
+
if (Number.isNaN(float)) {
|
|
340
|
+
// not a number
|
|
341
|
+
break;
|
|
342
|
+
}
|
|
343
|
+
if (!Number.isFinite(float)) {
|
|
344
|
+
// infinity and -infinity are handled by string representation above, so this is an error
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
if (type == scalar_js_1.ScalarType.FLOAT)
|
|
348
|
+
(0, assert_js_1.assertFloat32)(float);
|
|
349
|
+
return float;
|
|
350
|
+
// int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.
|
|
351
|
+
case scalar_js_1.ScalarType.INT32:
|
|
352
|
+
case scalar_js_1.ScalarType.FIXED32:
|
|
353
|
+
case scalar_js_1.ScalarType.SFIXED32:
|
|
354
|
+
case scalar_js_1.ScalarType.SINT32:
|
|
355
|
+
case scalar_js_1.ScalarType.UINT32:
|
|
356
|
+
let int32;
|
|
357
|
+
if (typeof json == "number")
|
|
358
|
+
int32 = json;
|
|
359
|
+
else if (typeof json == "string" && json.length > 0) {
|
|
360
|
+
if (json.trim().length === json.length)
|
|
361
|
+
int32 = Number(json);
|
|
362
|
+
}
|
|
363
|
+
if (int32 === undefined)
|
|
364
|
+
break;
|
|
365
|
+
if (type == scalar_js_1.ScalarType.UINT32 || type == scalar_js_1.ScalarType.FIXED32)
|
|
366
|
+
(0, assert_js_1.assertUInt32)(int32);
|
|
367
|
+
else
|
|
368
|
+
(0, assert_js_1.assertInt32)(int32);
|
|
369
|
+
return int32;
|
|
370
|
+
// int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.
|
|
371
|
+
case scalar_js_1.ScalarType.INT64:
|
|
372
|
+
case scalar_js_1.ScalarType.SFIXED64:
|
|
373
|
+
case scalar_js_1.ScalarType.SINT64:
|
|
374
|
+
if (typeof json != "number" && typeof json != "string")
|
|
375
|
+
break;
|
|
376
|
+
return proto_int64_js_1.protoInt64.parse(json);
|
|
377
|
+
case scalar_js_1.ScalarType.FIXED64:
|
|
378
|
+
case scalar_js_1.ScalarType.UINT64:
|
|
379
|
+
if (typeof json != "number" && typeof json != "string")
|
|
380
|
+
break;
|
|
381
|
+
return proto_int64_js_1.protoInt64.uParse(json);
|
|
382
|
+
// bool:
|
|
383
|
+
case scalar_js_1.ScalarType.BOOL:
|
|
384
|
+
if (typeof json !== "boolean")
|
|
385
|
+
break;
|
|
386
|
+
return json;
|
|
387
|
+
// string:
|
|
388
|
+
case scalar_js_1.ScalarType.STRING:
|
|
389
|
+
if (typeof json !== "string") {
|
|
390
|
+
break;
|
|
391
|
+
}
|
|
392
|
+
// A string must always contain UTF-8 encoded or 7-bit ASCII.
|
|
393
|
+
if (!(0, text_encoding_js_1.getTextEncoding)().checkUtf8(json)) {
|
|
394
|
+
throw new Error("invalid UTF8");
|
|
395
|
+
}
|
|
396
|
+
return json;
|
|
397
|
+
// bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.
|
|
398
|
+
// Either standard or URL-safe base64 encoding with/without paddings are accepted.
|
|
399
|
+
case scalar_js_1.ScalarType.BYTES:
|
|
400
|
+
if (json === "")
|
|
401
|
+
return new Uint8Array(0);
|
|
402
|
+
if (typeof json !== "string")
|
|
403
|
+
break;
|
|
404
|
+
return (0, base64_encoding_js_1.base64Decode)(json);
|
|
405
|
+
}
|
|
406
|
+
throw new Error();
|
|
407
|
+
}
|
|
408
|
+
function parseJsonString(jsonString, typeName) {
|
|
409
|
+
try {
|
|
410
|
+
return JSON.parse(jsonString);
|
|
411
|
+
}
|
|
412
|
+
catch (e) {
|
|
413
|
+
throw new Error(`cannot decode ${typeName} from JSON: ${e instanceof Error ? e.message : String(e)}`);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
function tryWktFromJson(msg, jsonValue, opts) {
|
|
417
|
+
if (!msg.desc.typeName.startsWith("google.protobuf.")) {
|
|
418
|
+
return false;
|
|
419
|
+
}
|
|
420
|
+
switch (msg.desc.typeName) {
|
|
421
|
+
case "google.protobuf.Any":
|
|
422
|
+
anyFromJson(msg.message, jsonValue, opts);
|
|
423
|
+
return true;
|
|
424
|
+
case "google.protobuf.Timestamp":
|
|
425
|
+
timestampFromJson(msg.message, jsonValue);
|
|
426
|
+
return true;
|
|
427
|
+
case "google.protobuf.Duration":
|
|
428
|
+
durationFromJson(msg.message, jsonValue);
|
|
429
|
+
return true;
|
|
430
|
+
case "google.protobuf.FieldMask":
|
|
431
|
+
fieldMaskFromJson(msg.message, jsonValue);
|
|
432
|
+
return true;
|
|
433
|
+
case "google.protobuf.Struct":
|
|
434
|
+
structFromJson(msg.message, jsonValue);
|
|
435
|
+
return true;
|
|
436
|
+
case "google.protobuf.Value":
|
|
437
|
+
valueFromJson(msg.message, jsonValue);
|
|
438
|
+
return true;
|
|
439
|
+
case "google.protobuf.ListValue":
|
|
440
|
+
listValueFromJson(msg.message, jsonValue);
|
|
441
|
+
return true;
|
|
442
|
+
default:
|
|
443
|
+
if ((0, wrappers_js_1.isWrapperDesc)(msg.desc)) {
|
|
444
|
+
const valueField = msg.desc.fields[0];
|
|
445
|
+
if (jsonValue === null) {
|
|
446
|
+
msg.clear(valueField);
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
msg.set(valueField, readScalar(valueField.scalar, jsonValue, true));
|
|
450
|
+
}
|
|
451
|
+
return true;
|
|
452
|
+
}
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
function anyFromJson(any, json, opts) {
|
|
457
|
+
var _a;
|
|
458
|
+
if (json === null || Array.isArray(json) || typeof json != "object") {
|
|
459
|
+
throw new Error(`cannot decode message ${any.$typeName} from JSON: expected object but got ${json === null ? "null" : Array.isArray(json) ? "array" : typeof json}`);
|
|
460
|
+
}
|
|
461
|
+
if (Object.keys(json).length == 0) {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
const typeUrl = json["@type"];
|
|
465
|
+
if (typeof typeUrl != "string" || typeUrl == "") {
|
|
466
|
+
throw new Error(`cannot decode message ${any.$typeName} from JSON: "@type" is empty`);
|
|
467
|
+
}
|
|
468
|
+
const typeName = typeUrlToName(typeUrl), desc = (_a = opts.registry) === null || _a === void 0 ? void 0 : _a.getMessage(typeName);
|
|
469
|
+
if (!desc) {
|
|
470
|
+
throw new Error(`cannot decode message ${any.$typeName} from JSON: ${typeUrl} is not in the type registry`);
|
|
471
|
+
}
|
|
472
|
+
const msg = (0, reflect_js_1.reflect)(desc);
|
|
473
|
+
if (typeName.startsWith("google.protobuf.") &&
|
|
474
|
+
Object.prototype.hasOwnProperty.call(json, "value")) {
|
|
475
|
+
const value = json["value"];
|
|
476
|
+
readMessage(msg, value, opts);
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
const copy = Object.assign({}, json);
|
|
480
|
+
delete copy["@type"];
|
|
481
|
+
readMessage(msg, copy, opts);
|
|
482
|
+
}
|
|
483
|
+
(0, index_js_1.anyPack)(msg.desc, msg.message, any);
|
|
484
|
+
}
|
|
485
|
+
function timestampFromJson(timestamp, json) {
|
|
486
|
+
if (typeof json !== "string") {
|
|
487
|
+
throw new Error(`cannot decode ${timestamp.$typeName} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
488
|
+
}
|
|
489
|
+
const matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);
|
|
490
|
+
if (!matches) {
|
|
491
|
+
throw new Error(`cannot decode ${timestamp.$typeName} from JSON: invalid RFC 3339 string`);
|
|
492
|
+
}
|
|
493
|
+
const ms = Date.parse(
|
|
494
|
+
//prettier-ignore
|
|
495
|
+
matches[1] + "-" + matches[2] + "-" + matches[3] + "T" + matches[4] + ":" + matches[5] + ":" + matches[6] + (matches[8] ? matches[8] : "Z"));
|
|
496
|
+
if (Number.isNaN(ms)) {
|
|
497
|
+
throw new Error(`cannot decode ${timestamp.$typeName} from JSON: invalid RFC 3339 string`);
|
|
498
|
+
}
|
|
499
|
+
if (ms < Date.parse("0001-01-01T00:00:00Z") ||
|
|
500
|
+
ms > Date.parse("9999-12-31T23:59:59Z")) {
|
|
501
|
+
throw new Error(`cannot decode message ${timestamp.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);
|
|
502
|
+
}
|
|
503
|
+
timestamp.seconds = proto_int64_js_1.protoInt64.parse(ms / 1000);
|
|
504
|
+
timestamp.nanos = 0;
|
|
505
|
+
if (matches[7]) {
|
|
506
|
+
timestamp.nanos =
|
|
507
|
+
parseInt("1" + matches[7] + "0".repeat(9 - matches[7].length)) -
|
|
508
|
+
1000000000;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
function durationFromJson(duration, json) {
|
|
512
|
+
if (typeof json !== "string") {
|
|
513
|
+
throw new Error(`cannot decode ${duration.$typeName} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
514
|
+
}
|
|
515
|
+
const match = json.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);
|
|
516
|
+
if (match === null) {
|
|
517
|
+
throw new Error(`cannot decode ${duration.$typeName} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
518
|
+
}
|
|
519
|
+
const longSeconds = Number(match[1]);
|
|
520
|
+
if (longSeconds > 315576000000 || longSeconds < -315576000000) {
|
|
521
|
+
throw new Error(`cannot decode ${duration.$typeName} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
522
|
+
}
|
|
523
|
+
duration.seconds = proto_int64_js_1.protoInt64.parse(longSeconds);
|
|
524
|
+
if (typeof match[2] !== "string") {
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
const nanosStr = match[2] + "0".repeat(9 - match[2].length);
|
|
528
|
+
duration.nanos = parseInt(nanosStr);
|
|
529
|
+
if (longSeconds < 0 || Object.is(longSeconds, -0)) {
|
|
530
|
+
duration.nanos = -duration.nanos;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
function fieldMaskFromJson(fieldMask, json) {
|
|
534
|
+
if (typeof json !== "string") {
|
|
535
|
+
throw new Error(`cannot decode ${fieldMask.$typeName} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
536
|
+
}
|
|
537
|
+
if (json === "") {
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
function camelToSnake(str) {
|
|
541
|
+
if (str.includes("_")) {
|
|
542
|
+
throw new Error(`cannot decode ${fieldMask.$typeName} from JSON: path names must be lowerCamelCase`);
|
|
543
|
+
}
|
|
544
|
+
const sc = str.replace(/[A-Z]/g, (letter) => "_" + letter.toLowerCase());
|
|
545
|
+
return sc[0] === "_" ? sc.substring(1) : sc;
|
|
546
|
+
}
|
|
547
|
+
fieldMask.paths = json.split(",").map(camelToSnake);
|
|
548
|
+
}
|
|
549
|
+
function structFromJson(struct, json) {
|
|
550
|
+
if (typeof json != "object" || json == null || Array.isArray(json)) {
|
|
551
|
+
throw new Error(`cannot decode ${struct.$typeName} from JSON ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
552
|
+
}
|
|
553
|
+
for (const [k, v] of Object.entries(json)) {
|
|
554
|
+
const parsedV = (0, create_js_1.create)(index_js_1.ValueDesc);
|
|
555
|
+
valueFromJson(parsedV, v);
|
|
556
|
+
struct.fields[k] = parsedV;
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
function valueFromJson(value, json) {
|
|
560
|
+
switch (typeof json) {
|
|
561
|
+
case "number":
|
|
562
|
+
value.kind = { case: "numberValue", value: json };
|
|
563
|
+
break;
|
|
564
|
+
case "string":
|
|
565
|
+
value.kind = { case: "stringValue", value: json };
|
|
566
|
+
break;
|
|
567
|
+
case "boolean":
|
|
568
|
+
value.kind = { case: "boolValue", value: json };
|
|
569
|
+
break;
|
|
570
|
+
case "object":
|
|
571
|
+
if (json === null) {
|
|
572
|
+
value.kind = { case: "nullValue", value: index_js_1.NullValue.NULL_VALUE };
|
|
573
|
+
}
|
|
574
|
+
else if (Array.isArray(json)) {
|
|
575
|
+
const listValue = (0, create_js_1.create)(index_js_1.ListValueDesc);
|
|
576
|
+
listValueFromJson(listValue, json);
|
|
577
|
+
value.kind = { case: "listValue", value: listValue };
|
|
578
|
+
}
|
|
579
|
+
else {
|
|
580
|
+
const struct = (0, create_js_1.create)(index_js_1.StructDesc);
|
|
581
|
+
structFromJson(struct, json);
|
|
582
|
+
value.kind = { case: "structValue", value: struct };
|
|
583
|
+
}
|
|
584
|
+
break;
|
|
585
|
+
default:
|
|
586
|
+
throw new Error(`cannot decode ${value.$typeName} from JSON ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
587
|
+
}
|
|
588
|
+
return value;
|
|
589
|
+
}
|
|
590
|
+
function listValueFromJson(listValue, json) {
|
|
591
|
+
if (!Array.isArray(json)) {
|
|
592
|
+
throw new Error(`cannot decode ${listValue.$typeName} from JSON ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
593
|
+
}
|
|
594
|
+
for (const e of json) {
|
|
595
|
+
const value = (0, create_js_1.create)(index_js_1.ValueDesc);
|
|
596
|
+
valueFromJson(value, e);
|
|
597
|
+
listValue.values.push(value);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
function typeUrlToName(url) {
|
|
601
|
+
if (!url.length) {
|
|
602
|
+
throw new Error(`invalid type url: ${url}`);
|
|
603
|
+
}
|
|
604
|
+
const slash = url.lastIndexOf("/");
|
|
605
|
+
const name = slash >= 0 ? url.substring(slash + 1) : url;
|
|
606
|
+
if (!name.length) {
|
|
607
|
+
throw new Error(`invalid type url: ${url}`);
|
|
608
|
+
}
|
|
609
|
+
return name;
|
|
610
|
+
}
|