@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.
Files changed (429) hide show
  1. package/dist/cjs/clone.d.ts +6 -0
  2. package/dist/cjs/clone.js +77 -0
  3. package/dist/cjs/codegenv1/boot.d.ts +63 -0
  4. package/dist/cjs/codegenv1/boot.js +102 -0
  5. package/dist/cjs/codegenv1/embed.d.ts +43 -0
  6. package/dist/cjs/codegenv1/embed.js +238 -0
  7. package/dist/cjs/codegenv1/enum.d.ts +17 -0
  8. package/dist/cjs/codegenv1/enum.js +41 -0
  9. package/dist/cjs/codegenv1/extension.d.ts +9 -0
  10. package/dist/cjs/codegenv1/extension.js +29 -0
  11. package/dist/cjs/codegenv1/file.d.ts +7 -0
  12. package/dist/cjs/codegenv1/file.js +38 -0
  13. package/dist/cjs/codegenv1/index.d.ts +9 -0
  14. package/dist/cjs/codegenv1/index.js +38 -0
  15. package/dist/cjs/codegenv1/message.d.ts +9 -0
  16. package/dist/cjs/codegenv1/message.js +25 -0
  17. package/dist/cjs/codegenv1/restore-json-names.d.ts +5 -0
  18. package/dist/cjs/codegenv1/restore-json-names.js +30 -0
  19. package/dist/cjs/codegenv1/service.d.ts +8 -0
  20. package/dist/cjs/codegenv1/service.js +28 -0
  21. package/dist/cjs/codegenv1/symbols.d.ts +125 -0
  22. package/dist/cjs/codegenv1/symbols.js +67 -0
  23. package/dist/cjs/codegenv1/types.d.ts +72 -0
  24. package/dist/cjs/codegenv1/types.js +21 -0
  25. package/dist/cjs/create.d.ts +9 -0
  26. package/dist/cjs/create.js +231 -0
  27. package/dist/{esm/descriptor-set.d.ts → cjs/desc-types.d.ts} +162 -243
  28. package/dist/cjs/equals.d.ts +9 -0
  29. package/dist/cjs/equals.js +133 -0
  30. package/dist/cjs/extensions.d.ts +59 -0
  31. package/dist/cjs/extensions.js +169 -0
  32. package/dist/cjs/fields.d.ts +23 -0
  33. package/dist/cjs/fields.js +46 -0
  34. package/dist/cjs/from-binary.d.ts +34 -0
  35. package/dist/cjs/from-binary.js +211 -0
  36. package/dist/cjs/from-json.d.ts +48 -0
  37. package/dist/cjs/from-json.js +610 -0
  38. package/dist/cjs/index.d.ts +16 -42
  39. package/dist/cjs/index.js +23 -55
  40. package/dist/cjs/is-message.d.ts +5 -20
  41. package/dist/cjs/is-message.js +11 -29
  42. package/dist/cjs/json-value.d.ts +16 -0
  43. package/dist/cjs/proto-int64.js +2 -2
  44. package/dist/cjs/reflect/error.d.ts +9 -0
  45. package/dist/cjs/reflect/error.js +36 -0
  46. package/dist/cjs/reflect/guard.d.ts +20 -0
  47. package/dist/cjs/reflect/guard.js +78 -0
  48. package/dist/cjs/reflect/index.d.ts +8 -0
  49. package/dist/cjs/reflect/index.js +41 -0
  50. package/dist/cjs/reflect/names.d.ts +11 -0
  51. package/dist/cjs/reflect/names.js +74 -0
  52. package/dist/cjs/reflect/nested-types.d.ts +12 -0
  53. package/dist/cjs/reflect/nested-types.js +71 -0
  54. package/dist/cjs/reflect/reflect-check.d.ts +10 -0
  55. package/dist/cjs/reflect/reflect-check.js +150 -0
  56. package/dist/cjs/reflect/reflect-types.d.ts +284 -0
  57. package/dist/cjs/{extension.js → reflect/reflect-types.js} +1 -0
  58. package/dist/cjs/reflect/reflect.d.ts +32 -0
  59. package/dist/cjs/reflect/reflect.js +434 -0
  60. package/dist/cjs/reflect/registry.d.ts +82 -0
  61. package/dist/cjs/reflect/registry.js +879 -0
  62. package/dist/{esm → cjs/reflect}/scalar.d.ts +21 -1
  63. package/dist/cjs/reflect/scalar.js +298 -0
  64. package/dist/cjs/reflect/unsafe.d.ts +58 -0
  65. package/dist/cjs/reflect/unsafe.js +166 -0
  66. package/dist/cjs/to-binary.d.ts +24 -0
  67. package/dist/cjs/to-binary.js +192 -0
  68. package/dist/cjs/to-json.d.ts +50 -0
  69. package/dist/cjs/to-json.js +364 -0
  70. package/dist/cjs/types.d.ts +68 -0
  71. package/dist/cjs/wire/base64-encoding.d.ts +23 -0
  72. package/dist/cjs/wire/base64-encoding.js +156 -0
  73. package/dist/cjs/wire/binary-encoding.d.ts +244 -0
  74. package/dist/cjs/{binary-encoding.js → wire/binary-encoding.js} +27 -20
  75. package/dist/cjs/wire/index.d.ts +5 -0
  76. package/dist/cjs/wire/index.js +34 -0
  77. package/dist/cjs/wire/size-delimited.d.ts +51 -0
  78. package/dist/cjs/wire/size-delimited.js +154 -0
  79. package/dist/cjs/wire/text-encoding.d.ts +26 -0
  80. package/dist/cjs/wire/text-encoding.js +55 -0
  81. package/dist/cjs/wire/text-format.d.ts +14 -0
  82. package/dist/cjs/{private → wire}/text-format.js +12 -2
  83. package/dist/{esm/google → cjs/wire}/varint.d.ts +2 -2
  84. package/dist/cjs/{google → wire}/varint.js +11 -10
  85. package/dist/cjs/wkt/any.d.ts +38 -0
  86. package/dist/cjs/wkt/any.js +76 -0
  87. package/dist/{esm → cjs/wkt/gen}/google/protobuf/any_pb.d.ts +13 -27
  88. package/dist/cjs/wkt/gen/google/protobuf/any_pb.js +27 -0
  89. package/dist/cjs/{google → wkt/gen/google}/protobuf/api_pb.d.ts +29 -38
  90. package/dist/cjs/wkt/gen/google/protobuf/api_pb.js +39 -0
  91. package/dist/cjs/{google → wkt/gen/google}/protobuf/compiler/plugin_pb.d.ts +67 -75
  92. package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +68 -0
  93. package/dist/cjs/{google → wkt/gen/google}/protobuf/descriptor_pb.d.ts +564 -527
  94. package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +794 -0
  95. package/dist/cjs/{google → wkt/gen/google}/protobuf/duration_pb.d.ts +13 -18
  96. package/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +27 -0
  97. package/dist/cjs/wkt/gen/google/protobuf/empty_pb.d.ts +24 -0
  98. package/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +27 -0
  99. package/dist/{esm → cjs/wkt/gen}/google/protobuf/field_mask_pb.d.ts +13 -18
  100. package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.js +27 -0
  101. package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.d.ts +26 -0
  102. package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +27 -0
  103. package/dist/{esm → cjs/wkt/gen}/google/protobuf/struct_pb.d.ts +44 -55
  104. package/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +59 -0
  105. package/dist/cjs/{google → wkt/gen/google}/protobuf/timestamp_pb.d.ts +13 -21
  106. package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +27 -0
  107. package/dist/{esm → cjs/wkt/gen}/google/protobuf/type_pb.d.ts +77 -80
  108. package/dist/cjs/wkt/gen/google/protobuf/type_pb.js +242 -0
  109. package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +186 -0
  110. package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +67 -0
  111. package/dist/cjs/wkt/index.d.ts +15 -0
  112. package/dist/cjs/wkt/index.js +44 -0
  113. package/dist/cjs/wkt/timestamp.d.ts +21 -0
  114. package/dist/cjs/wkt/timestamp.js +58 -0
  115. package/dist/cjs/wkt/wrappers.d.ts +15 -0
  116. package/dist/cjs/wkt/wrappers.js +43 -0
  117. package/dist/esm/clone.d.ts +6 -0
  118. package/dist/esm/clone.js +73 -0
  119. package/dist/esm/codegenv1/boot.d.ts +63 -0
  120. package/dist/esm/codegenv1/boot.js +97 -0
  121. package/dist/esm/codegenv1/embed.d.ts +43 -0
  122. package/dist/esm/codegenv1/embed.js +232 -0
  123. package/dist/esm/codegenv1/enum.d.ts +17 -0
  124. package/dist/esm/codegenv1/enum.js +36 -0
  125. package/dist/esm/codegenv1/extension.d.ts +9 -0
  126. package/dist/esm/codegenv1/extension.js +25 -0
  127. package/dist/esm/codegenv1/file.d.ts +7 -0
  128. package/dist/esm/codegenv1/file.js +34 -0
  129. package/dist/esm/codegenv1/index.d.ts +9 -0
  130. package/dist/esm/codegenv1/index.js +22 -0
  131. package/dist/esm/codegenv1/message.d.ts +9 -0
  132. package/dist/esm/codegenv1/message.js +21 -0
  133. package/dist/esm/codegenv1/restore-json-names.d.ts +5 -0
  134. package/dist/esm/codegenv1/restore-json-names.js +26 -0
  135. package/dist/esm/codegenv1/service.d.ts +8 -0
  136. package/dist/esm/codegenv1/service.js +24 -0
  137. package/dist/esm/codegenv1/symbols.d.ts +125 -0
  138. package/dist/esm/codegenv1/symbols.js +64 -0
  139. package/dist/esm/codegenv1/types.d.ts +72 -0
  140. package/dist/esm/{field-list.js → codegenv1/types.js} +6 -0
  141. package/dist/esm/create.d.ts +9 -0
  142. package/dist/esm/create.js +228 -0
  143. package/dist/{cjs/descriptor-set.d.ts → esm/desc-types.d.ts} +162 -243
  144. package/dist/esm/equals.d.ts +9 -0
  145. package/dist/esm/equals.js +129 -0
  146. package/dist/esm/extensions.d.ts +59 -0
  147. package/dist/esm/extensions.js +159 -0
  148. package/dist/esm/fields.d.ts +23 -0
  149. package/dist/esm/fields.js +41 -0
  150. package/dist/esm/from-binary.d.ts +34 -0
  151. package/dist/esm/from-binary.js +205 -0
  152. package/dist/esm/from-json.d.ts +48 -0
  153. package/dist/esm/from-json.js +603 -0
  154. package/dist/esm/index.d.ts +16 -42
  155. package/dist/esm/index.js +13 -30
  156. package/dist/esm/is-message.d.ts +5 -20
  157. package/dist/esm/is-message.js +11 -29
  158. package/dist/esm/json-value.d.ts +16 -0
  159. package/dist/esm/proto-int64.js +2 -2
  160. package/dist/esm/reflect/error.d.ts +9 -0
  161. package/dist/esm/reflect/error.js +31 -0
  162. package/dist/esm/reflect/guard.d.ts +20 -0
  163. package/dist/esm/reflect/guard.js +70 -0
  164. package/dist/esm/reflect/index.d.ts +8 -0
  165. package/dist/esm/reflect/index.js +21 -0
  166. package/dist/esm/reflect/names.d.ts +11 -0
  167. package/dist/esm/reflect/names.js +69 -0
  168. package/dist/esm/reflect/nested-types.d.ts +12 -0
  169. package/dist/esm/reflect/nested-types.js +66 -0
  170. package/dist/esm/reflect/reflect-check.d.ts +10 -0
  171. package/dist/esm/reflect/reflect-check.js +143 -0
  172. package/dist/esm/reflect/reflect-types.d.ts +284 -0
  173. package/dist/esm/reflect/reflect-types.js +15 -0
  174. package/dist/esm/reflect/reflect.d.ts +32 -0
  175. package/dist/esm/reflect/reflect.js +428 -0
  176. package/dist/esm/reflect/registry.d.ts +82 -0
  177. package/dist/esm/reflect/registry.js +874 -0
  178. package/dist/{cjs → esm/reflect}/scalar.d.ts +21 -1
  179. package/dist/esm/reflect/scalar.js +289 -0
  180. package/dist/esm/reflect/unsafe.d.ts +58 -0
  181. package/dist/esm/reflect/unsafe.js +155 -0
  182. package/dist/esm/to-binary.d.ts +24 -0
  183. package/dist/esm/to-binary.js +187 -0
  184. package/dist/esm/to-json.d.ts +50 -0
  185. package/dist/esm/to-json.js +359 -0
  186. package/dist/esm/types.d.ts +68 -0
  187. package/dist/esm/wire/base64-encoding.d.ts +23 -0
  188. package/dist/esm/wire/base64-encoding.js +151 -0
  189. package/dist/esm/wire/binary-encoding.d.ts +244 -0
  190. package/dist/esm/{binary-encoding.js → wire/binary-encoding.js} +27 -20
  191. package/dist/esm/wire/index.d.ts +5 -0
  192. package/dist/esm/wire/index.js +18 -0
  193. package/dist/esm/wire/size-delimited.d.ts +51 -0
  194. package/dist/esm/wire/size-delimited.js +148 -0
  195. package/dist/esm/wire/text-encoding.d.ts +26 -0
  196. package/dist/esm/wire/text-encoding.js +50 -0
  197. package/dist/esm/wire/text-format.d.ts +14 -0
  198. package/dist/esm/{private → wire}/text-format.js +12 -2
  199. package/dist/{cjs/google → esm/wire}/varint.d.ts +2 -2
  200. package/dist/esm/{google → wire}/varint.js +11 -10
  201. package/dist/esm/wkt/any.d.ts +38 -0
  202. package/dist/esm/wkt/any.js +69 -0
  203. package/dist/{cjs → esm/wkt/gen}/google/protobuf/any_pb.d.ts +13 -27
  204. package/dist/esm/wkt/gen/google/protobuf/any_pb.js +24 -0
  205. package/dist/esm/{google → wkt/gen/google}/protobuf/api_pb.d.ts +29 -38
  206. package/dist/esm/wkt/gen/google/protobuf/api_pb.js +36 -0
  207. package/dist/esm/{google → wkt/gen/google}/protobuf/compiler/plugin_pb.d.ts +67 -75
  208. package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +65 -0
  209. package/dist/esm/{google → wkt/gen/google}/protobuf/descriptor_pb.d.ts +564 -527
  210. package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +790 -0
  211. package/dist/esm/{google → wkt/gen/google}/protobuf/duration_pb.d.ts +13 -18
  212. package/dist/esm/wkt/gen/google/protobuf/duration_pb.js +24 -0
  213. package/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +24 -0
  214. package/dist/esm/wkt/gen/google/protobuf/empty_pb.js +24 -0
  215. package/dist/{cjs → esm/wkt/gen}/google/protobuf/field_mask_pb.d.ts +13 -18
  216. package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +24 -0
  217. package/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +26 -0
  218. package/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +24 -0
  219. package/dist/{cjs → esm/wkt/gen}/google/protobuf/struct_pb.d.ts +44 -55
  220. package/dist/esm/wkt/gen/google/protobuf/struct_pb.js +56 -0
  221. package/dist/esm/{google → wkt/gen/google}/protobuf/timestamp_pb.d.ts +13 -21
  222. package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +24 -0
  223. package/dist/{cjs → esm/wkt/gen}/google/protobuf/type_pb.d.ts +77 -80
  224. package/dist/esm/wkt/gen/google/protobuf/type_pb.js +239 -0
  225. package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +186 -0
  226. package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +64 -0
  227. package/dist/esm/wkt/index.d.ts +15 -0
  228. package/dist/esm/wkt/index.js +28 -0
  229. package/dist/esm/wkt/timestamp.d.ts +21 -0
  230. package/dist/esm/wkt/timestamp.js +50 -0
  231. package/dist/esm/wkt/wrappers.d.ts +15 -0
  232. package/dist/esm/wkt/wrappers.js +38 -0
  233. package/package.json +37 -5
  234. package/dist/cjs/binary-encoding.d.ts +0 -420
  235. package/dist/cjs/binary-format.d.ts +0 -113
  236. package/dist/cjs/codegen-info.d.ts +0 -33
  237. package/dist/cjs/codegen-info.js +0 -69
  238. package/dist/cjs/create-descriptor-set.d.ts +0 -36
  239. package/dist/cjs/create-descriptor-set.js +0 -910
  240. package/dist/cjs/create-registry-from-desc.d.ts +0 -15
  241. package/dist/cjs/create-registry-from-desc.js +0 -264
  242. package/dist/cjs/create-registry.d.ts +0 -9
  243. package/dist/cjs/create-registry.js +0 -94
  244. package/dist/cjs/enum.d.ts +0 -35
  245. package/dist/cjs/extension-accessor.d.ts +0 -35
  246. package/dist/cjs/extension-accessor.js +0 -114
  247. package/dist/cjs/extension.d.ts +0 -24
  248. package/dist/cjs/field-list.d.ts +0 -27
  249. package/dist/cjs/field-list.js +0 -15
  250. package/dist/cjs/field.d.ts +0 -314
  251. package/dist/cjs/field.js +0 -15
  252. package/dist/cjs/google/protobuf/any_pb.js +0 -273
  253. package/dist/cjs/google/protobuf/api_pb.js +0 -316
  254. package/dist/cjs/google/protobuf/compiler/plugin_pb.js +0 -219
  255. package/dist/cjs/google/protobuf/descriptor_pb.js +0 -2034
  256. package/dist/cjs/google/protobuf/duration_pb.js +0 -169
  257. package/dist/cjs/google/protobuf/empty_pb.d.ts +0 -28
  258. package/dist/cjs/google/protobuf/empty_pb.js +0 -52
  259. package/dist/cjs/google/protobuf/field_mask_pb.js +0 -311
  260. package/dist/cjs/google/protobuf/source_context_pb.d.ts +0 -29
  261. package/dist/cjs/google/protobuf/source_context_pb.js +0 -55
  262. package/dist/cjs/google/protobuf/struct_pb.js +0 -240
  263. package/dist/cjs/google/protobuf/timestamp_pb.js +0 -213
  264. package/dist/cjs/google/protobuf/type_pb.js +0 -562
  265. package/dist/cjs/google/protobuf/wrappers_pb.d.ts +0 -267
  266. package/dist/cjs/google/protobuf/wrappers_pb.js +0 -569
  267. package/dist/cjs/json-format.d.ts +0 -111
  268. package/dist/cjs/json-format.js +0 -15
  269. package/dist/cjs/message-type.d.ts +0 -51
  270. package/dist/cjs/message-type.js +0 -15
  271. package/dist/cjs/message.d.ts +0 -131
  272. package/dist/cjs/message.js +0 -129
  273. package/dist/cjs/private/binary-format.d.ts +0 -7
  274. package/dist/cjs/private/binary-format.js +0 -430
  275. package/dist/cjs/private/enum.d.ts +0 -27
  276. package/dist/cjs/private/enum.js +0 -94
  277. package/dist/cjs/private/extensions.d.ts +0 -34
  278. package/dist/cjs/private/extensions.js +0 -86
  279. package/dist/cjs/private/feature-set.d.ts +0 -19
  280. package/dist/cjs/private/feature-set.js +0 -106
  281. package/dist/cjs/private/field-list.d.ts +0 -18
  282. package/dist/cjs/private/field-list.js +0 -76
  283. package/dist/cjs/private/field-normalize.d.ts +0 -9
  284. package/dist/cjs/private/field-normalize.js +0 -69
  285. package/dist/cjs/private/field-wrapper.d.ts +0 -25
  286. package/dist/cjs/private/field-wrapper.js +0 -57
  287. package/dist/cjs/private/field.d.ts +0 -16
  288. package/dist/cjs/private/field.js +0 -45
  289. package/dist/cjs/private/json-format.d.ts +0 -2
  290. package/dist/cjs/private/json-format.js +0 -626
  291. package/dist/cjs/private/message-type.d.ts +0 -18
  292. package/dist/cjs/private/message-type.js +0 -50
  293. package/dist/cjs/private/names.d.ts +0 -43
  294. package/dist/cjs/private/names.js +0 -278
  295. package/dist/cjs/private/options-map.d.ts +0 -7
  296. package/dist/cjs/private/options-map.js +0 -15
  297. package/dist/cjs/private/proto-runtime.d.ts +0 -53
  298. package/dist/cjs/private/proto-runtime.js +0 -41
  299. package/dist/cjs/private/reflect.d.ts +0 -9
  300. package/dist/cjs/private/reflect.js +0 -79
  301. package/dist/cjs/private/reify-wkt.d.ts +0 -102
  302. package/dist/cjs/private/reify-wkt.js +0 -172
  303. package/dist/cjs/private/scalars.d.ts +0 -18
  304. package/dist/cjs/private/scalars.js +0 -105
  305. package/dist/cjs/private/text-format.d.ts +0 -4
  306. package/dist/cjs/private/util-common.d.ts +0 -2
  307. package/dist/cjs/private/util-common.js +0 -237
  308. package/dist/cjs/private/util.d.ts +0 -38
  309. package/dist/cjs/private/util.js +0 -15
  310. package/dist/cjs/proto-base64.d.ts +0 -18
  311. package/dist/cjs/proto-base64.js +0 -128
  312. package/dist/cjs/proto-delimited.d.ts +0 -54
  313. package/dist/cjs/proto-delimited.js +0 -155
  314. package/dist/cjs/proto-double.d.ts +0 -5
  315. package/dist/cjs/proto-double.js +0 -29
  316. package/dist/cjs/proto2.d.ts +0 -4
  317. package/dist/cjs/proto2.js +0 -53
  318. package/dist/cjs/proto3.d.ts +0 -4
  319. package/dist/cjs/proto3.js +0 -56
  320. package/dist/cjs/scalar.js +0 -81
  321. package/dist/cjs/service-type.d.ts +0 -96
  322. package/dist/cjs/service-type.js +0 -53
  323. package/dist/cjs/to-plain-message.d.ts +0 -12
  324. package/dist/cjs/to-plain-message.js +0 -72
  325. package/dist/cjs/type-registry.d.ts +0 -57
  326. package/dist/cjs/type-registry.js +0 -15
  327. package/dist/esm/binary-encoding.d.ts +0 -420
  328. package/dist/esm/binary-format.d.ts +0 -113
  329. package/dist/esm/codegen-info.d.ts +0 -33
  330. package/dist/esm/codegen-info.js +0 -67
  331. package/dist/esm/create-descriptor-set.d.ts +0 -36
  332. package/dist/esm/create-descriptor-set.js +0 -906
  333. package/dist/esm/create-registry-from-desc.d.ts +0 -15
  334. package/dist/esm/create-registry-from-desc.js +0 -261
  335. package/dist/esm/create-registry.d.ts +0 -9
  336. package/dist/esm/create-registry.js +0 -90
  337. package/dist/esm/descriptor-set.js +0 -14
  338. package/dist/esm/enum.d.ts +0 -35
  339. package/dist/esm/extension-accessor.d.ts +0 -35
  340. package/dist/esm/extension-accessor.js +0 -107
  341. package/dist/esm/extension.d.ts +0 -24
  342. package/dist/esm/field-list.d.ts +0 -27
  343. package/dist/esm/field.d.ts +0 -314
  344. package/dist/esm/field.js +0 -14
  345. package/dist/esm/google/protobuf/any_pb.js +0 -269
  346. package/dist/esm/google/protobuf/api_pb.js +0 -310
  347. package/dist/esm/google/protobuf/compiler/plugin_pb.js +0 -212
  348. package/dist/esm/google/protobuf/descriptor_pb.js +0 -1999
  349. package/dist/esm/google/protobuf/duration_pb.js +0 -165
  350. package/dist/esm/google/protobuf/empty_pb.d.ts +0 -28
  351. package/dist/esm/google/protobuf/empty_pb.js +0 -48
  352. package/dist/esm/google/protobuf/field_mask_pb.js +0 -307
  353. package/dist/esm/google/protobuf/source_context_pb.d.ts +0 -29
  354. package/dist/esm/google/protobuf/source_context_pb.js +0 -51
  355. package/dist/esm/google/protobuf/struct_pb.js +0 -234
  356. package/dist/esm/google/protobuf/timestamp_pb.js +0 -209
  357. package/dist/esm/google/protobuf/type_pb.js +0 -554
  358. package/dist/esm/google/protobuf/wrappers_pb.d.ts +0 -267
  359. package/dist/esm/google/protobuf/wrappers_pb.js +0 -557
  360. package/dist/esm/json-format.d.ts +0 -111
  361. package/dist/esm/json-format.js +0 -14
  362. package/dist/esm/message-type.d.ts +0 -51
  363. package/dist/esm/message-type.js +0 -14
  364. package/dist/esm/message.d.ts +0 -131
  365. package/dist/esm/message.js +0 -125
  366. package/dist/esm/private/binary-format.d.ts +0 -7
  367. package/dist/esm/private/binary-format.js +0 -426
  368. package/dist/esm/private/enum.d.ts +0 -27
  369. package/dist/esm/private/enum.js +0 -87
  370. package/dist/esm/private/extensions.d.ts +0 -34
  371. package/dist/esm/private/extensions.js +0 -81
  372. package/dist/esm/private/feature-set.d.ts +0 -19
  373. package/dist/esm/private/feature-set.js +0 -102
  374. package/dist/esm/private/field-list.d.ts +0 -18
  375. package/dist/esm/private/field-list.js +0 -72
  376. package/dist/esm/private/field-normalize.d.ts +0 -9
  377. package/dist/esm/private/field-normalize.js +0 -65
  378. package/dist/esm/private/field-wrapper.d.ts +0 -25
  379. package/dist/esm/private/field-wrapper.js +0 -53
  380. package/dist/esm/private/field.d.ts +0 -16
  381. package/dist/esm/private/field.js +0 -41
  382. package/dist/esm/private/json-format.d.ts +0 -2
  383. package/dist/esm/private/json-format.js +0 -623
  384. package/dist/esm/private/message-type.d.ts +0 -18
  385. package/dist/esm/private/message-type.js +0 -46
  386. package/dist/esm/private/names.d.ts +0 -43
  387. package/dist/esm/private/names.js +0 -269
  388. package/dist/esm/private/options-map.d.ts +0 -7
  389. package/dist/esm/private/options-map.js +0 -14
  390. package/dist/esm/private/proto-runtime.d.ts +0 -53
  391. package/dist/esm/private/proto-runtime.js +0 -37
  392. package/dist/esm/private/reflect.d.ts +0 -9
  393. package/dist/esm/private/reflect.js +0 -74
  394. package/dist/esm/private/reify-wkt.d.ts +0 -102
  395. package/dist/esm/private/reify-wkt.js +0 -168
  396. package/dist/esm/private/scalars.d.ts +0 -18
  397. package/dist/esm/private/scalars.js +0 -99
  398. package/dist/esm/private/text-format.d.ts +0 -4
  399. package/dist/esm/private/util-common.d.ts +0 -2
  400. package/dist/esm/private/util-common.js +0 -234
  401. package/dist/esm/private/util.d.ts +0 -38
  402. package/dist/esm/private/util.js +0 -14
  403. package/dist/esm/proto-base64.d.ts +0 -18
  404. package/dist/esm/proto-base64.js +0 -125
  405. package/dist/esm/proto-delimited.d.ts +0 -54
  406. package/dist/esm/proto-delimited.js +0 -152
  407. package/dist/esm/proto-double.d.ts +0 -5
  408. package/dist/esm/proto-double.js +0 -26
  409. package/dist/esm/proto2.d.ts +0 -4
  410. package/dist/esm/proto2.js +0 -50
  411. package/dist/esm/proto3.d.ts +0 -4
  412. package/dist/esm/proto3.js +0 -53
  413. package/dist/esm/scalar.js +0 -78
  414. package/dist/esm/service-type.d.ts +0 -96
  415. package/dist/esm/service-type.js +0 -50
  416. package/dist/esm/to-plain-message.d.ts +0 -12
  417. package/dist/esm/to-plain-message.js +0 -70
  418. package/dist/esm/type-registry.d.ts +0 -57
  419. package/dist/esm/type-registry.js +0 -14
  420. /package/dist/cjs/{binary-format.js → desc-types.js} +0 -0
  421. /package/dist/cjs/{descriptor-set.js → json-value.js} +0 -0
  422. /package/dist/cjs/{private → reflect}/assert.d.ts +0 -0
  423. /package/dist/cjs/{private → reflect}/assert.js +0 -0
  424. /package/dist/cjs/{enum.js → types.js} +0 -0
  425. /package/dist/esm/{binary-format.js → desc-types.js} +0 -0
  426. /package/dist/esm/{enum.js → json-value.js} +0 -0
  427. /package/dist/esm/{private → reflect}/assert.d.ts +0 -0
  428. /package/dist/esm/{private → reflect}/assert.js +0 -0
  429. /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
+ }
@@ -0,0 +1,59 @@
1
+ import type { AnyDesc, DescEnum, DescEnumValue, DescExtension, DescField, DescFile, DescMessage, DescMethod, DescOneof, DescService } from "./desc-types.js";
2
+ import type { ReflectMessage } from "./reflect/reflect-types.js";
3
+ import type { Extendee, ExtensionValueShape } from "./types.js";
4
+ import type { EnumOptions, EnumValueOptions, FieldOptions, FileOptions, MessageOptions, MethodOptions, OneofOptions, ServiceOptions } from "./wkt/gen/google/protobuf/descriptor_pb.js";
5
+ /**
6
+ * Retrieve an extension value from a message.
7
+ *
8
+ * The function never returns undefined. Use hasExtension() to check whether an
9
+ * extension is set. If the extension is not set, this function returns the
10
+ * default value (if one was specified in the protobuf source), or the zero value
11
+ * (for example `0` for numeric types, `[]` for repeated extension fields, and
12
+ * an empty message instance for message fields).
13
+ *
14
+ * Extensions are stored as unknown fields on a message. To mutate an extension
15
+ * value, make sure to store the new value with setExtension() after mutating.
16
+ *
17
+ * If the extension does not extend the given message, an error is raised.
18
+ */
19
+ export declare function getExtension<Desc extends DescExtension>(message: Extendee<Desc>, extension: Desc): ExtensionValueShape<Desc>;
20
+ /**
21
+ * Set an extension value on a message. If the message already has a value for
22
+ * this extension, the value is replaced.
23
+ *
24
+ * If the extension does not extend the given message, an error is raised.
25
+ */
26
+ export declare function setExtension<Desc extends DescExtension>(message: Extendee<Desc>, extension: Desc, value: ExtensionValueShape<Desc>): void;
27
+ /**
28
+ * Remove an extension value from a message.
29
+ *
30
+ * If the extension does not extend the given message, an error is raised.
31
+ */
32
+ export declare function clearExtension<Desc extends DescExtension>(message: Extendee<Desc>, extension: Desc): void;
33
+ /**
34
+ * Check whether an extension is set on a message.
35
+ */
36
+ export declare function hasExtension<Desc extends DescExtension>(message: Extendee<Desc>, extension: Desc): boolean;
37
+ /**
38
+ * Check whether an option is set on a descriptor.
39
+ *
40
+ * Options are extensions to the `google.protobuf.*Options` messages defined in
41
+ * google/protobuf/descriptor.proto. This function gets the option message from
42
+ * the descriptor, and calls hasExtension().
43
+ */
44
+ export declare function hasOption<Ext extends DescExtension, Desc extends DescForOptionExtension<Ext>>(element: Desc, option: Ext): boolean;
45
+ /**
46
+ * Retrieve an option value from a descriptor.
47
+ *
48
+ * Options are extensions to the `google.protobuf.*Options` messages defined in
49
+ * google/protobuf/descriptor.proto. This function gets the option message from
50
+ * the descriptor, and calls getExtension(). Same as getExtension(), this
51
+ * function never returns undefined.
52
+ */
53
+ export declare function getOption<Ext extends DescExtension, Desc extends DescForOptionExtension<Ext>>(element: Desc, option: Ext): ExtensionValueShape<Ext>;
54
+ type DescForOptionExtension<Ext extends DescExtension> = Extendee<Ext> extends FileOptions ? DescFile : Extendee<Ext> extends EnumOptions ? DescEnum : Extendee<Ext> extends EnumValueOptions ? DescEnumValue : Extendee<Ext> extends MessageOptions ? DescMessage : Extendee<Ext> extends MessageOptions ? DescEnum : Extendee<Ext> extends FieldOptions ? DescField | DescExtension : Extendee<Ext> extends OneofOptions ? DescOneof : Extendee<Ext> extends ServiceOptions ? DescService : Extendee<Ext> extends EnumOptions ? DescEnum : Extendee<Ext> extends MethodOptions ? DescMethod : AnyDesc;
55
+ /**
56
+ * @private
57
+ */
58
+ export declare function createExtensionContainer<Desc extends DescExtension>(extension: Desc, value?: ExtensionValueShape<Desc>): [ReflectMessage, DescField, () => ExtensionValueShape<Desc>];
59
+ export {};
@@ -0,0 +1,159 @@
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 { reflect } from "./reflect/reflect.js";
18
+ import { scalarZeroValue } from "./reflect/scalar.js";
19
+ import { writeField } from "./to-binary.js";
20
+ import { BinaryReader, BinaryWriter } from "./wire/binary-encoding.js";
21
+ import { isWrapperDesc } from "./wkt/wrappers.js";
22
+ /**
23
+ * Retrieve an extension value from a message.
24
+ *
25
+ * The function never returns undefined. Use hasExtension() to check whether an
26
+ * extension is set. If the extension is not set, this function returns the
27
+ * default value (if one was specified in the protobuf source), or the zero value
28
+ * (for example `0` for numeric types, `[]` for repeated extension fields, and
29
+ * an empty message instance for message fields).
30
+ *
31
+ * Extensions are stored as unknown fields on a message. To mutate an extension
32
+ * value, make sure to store the new value with setExtension() after mutating.
33
+ *
34
+ * If the extension does not extend the given message, an error is raised.
35
+ */
36
+ export function getExtension(message, extension) {
37
+ assertExtendee(extension, message);
38
+ const ufs = filterUnknownFields(message.$unknown, extension);
39
+ const [container, field, get] = createExtensionContainer(extension);
40
+ for (const uf of ufs) {
41
+ readField(container, new BinaryReader(uf.data), field, uf.wireType, {
42
+ readUnknownFields: false,
43
+ });
44
+ }
45
+ return get();
46
+ }
47
+ /**
48
+ * Set an extension value on a message. If the message already has a value for
49
+ * this extension, the value is replaced.
50
+ *
51
+ * If the extension does not extend the given message, an error is raised.
52
+ */
53
+ export function setExtension(message, extension, value) {
54
+ var _a;
55
+ assertExtendee(extension, message);
56
+ const ufs = ((_a = message.$unknown) !== null && _a !== void 0 ? _a : []).filter((uf) => uf.no !== extension.number);
57
+ const [container, field] = createExtensionContainer(extension, value);
58
+ const writer = new BinaryWriter();
59
+ writeField(writer, { writeUnknownFields: false }, container, field);
60
+ const reader = new BinaryReader(writer.finish());
61
+ while (reader.pos < reader.len) {
62
+ const [no, wireType] = reader.tag();
63
+ const data = reader.skip(wireType, no);
64
+ ufs.push({ no, wireType, data });
65
+ }
66
+ message.$unknown = ufs;
67
+ }
68
+ /**
69
+ * Remove an extension value from a message.
70
+ *
71
+ * If the extension does not extend the given message, an error is raised.
72
+ */
73
+ export function clearExtension(message, extension) {
74
+ assertExtendee(extension, message);
75
+ if (message.$unknown === undefined) {
76
+ return;
77
+ }
78
+ message.$unknown = message.$unknown.filter((uf) => uf.no !== extension.number);
79
+ }
80
+ /**
81
+ * Check whether an extension is set on a message.
82
+ */
83
+ export function hasExtension(message, extension) {
84
+ var _a;
85
+ return (extension.extendee.typeName === message.$typeName &&
86
+ !!((_a = message.$unknown) === null || _a === void 0 ? void 0 : _a.find((uf) => uf.no === extension.number)));
87
+ }
88
+ /**
89
+ * Check whether an option is set on a descriptor.
90
+ *
91
+ * Options are extensions to the `google.protobuf.*Options` messages defined in
92
+ * google/protobuf/descriptor.proto. This function gets the option message from
93
+ * the descriptor, and calls hasExtension().
94
+ */
95
+ export function hasOption(element, option) {
96
+ const message = element.proto.options;
97
+ if (!message) {
98
+ return false;
99
+ }
100
+ return hasExtension(message, option);
101
+ }
102
+ /**
103
+ * Retrieve an option value from a descriptor.
104
+ *
105
+ * Options are extensions to the `google.protobuf.*Options` messages defined in
106
+ * google/protobuf/descriptor.proto. This function gets the option message from
107
+ * the descriptor, and calls getExtension(). Same as getExtension(), this
108
+ * function never returns undefined.
109
+ */
110
+ export function getOption(element, option) {
111
+ const message = element.proto.options;
112
+ if (!message) {
113
+ const [, , get] = createExtensionContainer(option);
114
+ return get();
115
+ }
116
+ return getExtension(message, option);
117
+ }
118
+ function filterUnknownFields(unknownFields, extension) {
119
+ if (unknownFields === undefined)
120
+ return [];
121
+ if (extension.fieldKind === "enum" || extension.fieldKind === "scalar") {
122
+ // singular scalar fields do not merge, we pick the last
123
+ for (let i = unknownFields.length - 1; i >= 0; --i) {
124
+ if (unknownFields[i].no == extension.number) {
125
+ return [unknownFields[i]];
126
+ }
127
+ }
128
+ return [];
129
+ }
130
+ return unknownFields.filter((uf) => uf.no === extension.number);
131
+ }
132
+ /**
133
+ * @private
134
+ */
135
+ export function createExtensionContainer(extension, value) {
136
+ const localName = extension.typeName;
137
+ const field = Object.assign(Object.assign({}, extension), { kind: "field", parent: extension.extendee, localName });
138
+ const desc = Object.assign(Object.assign({}, extension.extendee), { fields: [field], members: [field], oneofs: [] });
139
+ const container = create(desc, value !== undefined ? { [localName]: value } : undefined);
140
+ return [
141
+ reflect(desc, container),
142
+ field,
143
+ () => {
144
+ const value = container[localName];
145
+ if (value === undefined) {
146
+ // Only message fields are undefined, rest will have a zero value.
147
+ const desc = extension.message;
148
+ if (isWrapperDesc(desc)) {
149
+ return scalarZeroValue(desc.fields[0].scalar, desc.fields[0].longType);
150
+ }
151
+ return create(desc);
152
+ }
153
+ return value;
154
+ },
155
+ ];
156
+ }
157
+ function assertExtendee(extension, message) {
158
+ assert(extension.extendee.typeName == message.$typeName, `extension ${extension.typeName} can only be applied to message ${extension.extendee.typeName}`);
159
+ }
@@ -0,0 +1,23 @@
1
+ import type { MessageShape } from "./types.js";
2
+ import type { DescField, DescMessage } from "./desc-types.js";
3
+ /**
4
+ * Returns true if the field is set.
5
+ *
6
+ * - Scalar and enum fields with implicit presence (proto3):
7
+ * Set if not a zero value.
8
+ *
9
+ * - Scalar and enum fields with explicit presence (proto2, oneof):
10
+ * Set if a value was set when creating or parsing the message, or when a
11
+ * value was assigned to the field's property.
12
+ *
13
+ * - Message fields:
14
+ * Set if the property is not undefined.
15
+ *
16
+ * - List and map fields:
17
+ * Set if not empty.
18
+ */
19
+ export declare function isFieldSet<Desc extends DescMessage>(message: MessageShape<Desc>, field: DescField): boolean;
20
+ /**
21
+ * Resets the field, so that isFieldSet() will return false.
22
+ */
23
+ export declare function clearField<Desc extends DescMessage>(message: MessageShape<Desc>, field: DescField): void;
@@ -0,0 +1,41 @@
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 { unsafeClear, unsafeIsSet } from "./reflect/unsafe.js";
15
+ /**
16
+ * Returns true if the field is set.
17
+ *
18
+ * - Scalar and enum fields with implicit presence (proto3):
19
+ * Set if not a zero value.
20
+ *
21
+ * - Scalar and enum fields with explicit presence (proto2, oneof):
22
+ * Set if a value was set when creating or parsing the message, or when a
23
+ * value was assigned to the field's property.
24
+ *
25
+ * - Message fields:
26
+ * Set if the property is not undefined.
27
+ *
28
+ * - List and map fields:
29
+ * Set if not empty.
30
+ */
31
+ export function isFieldSet(message, field) {
32
+ return (field.parent.typeName == message.$typeName && unsafeIsSet(message, field));
33
+ }
34
+ /**
35
+ * Resets the field, so that isFieldSet() will return false.
36
+ */
37
+ export function clearField(message, field) {
38
+ if (field.parent.typeName == message.$typeName) {
39
+ unsafeClear(message, field);
40
+ }
41
+ }
@@ -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,205 @@
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 (delimited && wireType == WireType.EndGroup) {
61
+ break;
62
+ }
63
+ const field = message.findNumber(fieldNo);
64
+ if (!field) {
65
+ const data = reader.skip(wireType, fieldNo);
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));
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
+ readMapEntry(message, field, reader, options);
101
+ break;
102
+ }
103
+ }
104
+ // Read a map field, expecting key field = 1, value field = 2
105
+ function readMapEntry(message, field, reader, options) {
106
+ let key, val;
107
+ const end = reader.pos + reader.uint32();
108
+ while (reader.pos < end) {
109
+ const [fieldNo] = reader.tag();
110
+ switch (fieldNo) {
111
+ case 1:
112
+ key = readScalar(reader, field.mapKey);
113
+ break;
114
+ case 2:
115
+ switch (field.mapKind) {
116
+ case "scalar":
117
+ val = readScalar(reader, field.scalar);
118
+ break;
119
+ case "enum":
120
+ val = reader.int32();
121
+ break;
122
+ case "message":
123
+ val = readMessageField(reader, options, field);
124
+ break;
125
+ }
126
+ break;
127
+ }
128
+ }
129
+ if (key === undefined) {
130
+ key = scalarZeroValue(field.mapKey, LongType.BIGINT);
131
+ }
132
+ if (val === undefined) {
133
+ switch (field.mapKind) {
134
+ case "scalar":
135
+ val = scalarZeroValue(field.scalar, LongType.BIGINT);
136
+ break;
137
+ case "enum":
138
+ val = field.enum.values[0].number;
139
+ break;
140
+ case "message":
141
+ val = reflect(field.message);
142
+ break;
143
+ }
144
+ }
145
+ message.setMapEntry(field, key, val);
146
+ }
147
+ function readListField(message, reader, options, field, wireType) {
148
+ var _a;
149
+ if (field.listKind === "message") {
150
+ message.addListItem(field, readMessageField(reader, options, field));
151
+ return;
152
+ }
153
+ const scalarType = (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32;
154
+ const packed = wireType == WireType.LengthDelimited &&
155
+ scalarType != ScalarType.STRING &&
156
+ scalarType != ScalarType.BYTES;
157
+ if (!packed) {
158
+ message.addListItem(field, readScalar(reader, scalarType));
159
+ return;
160
+ }
161
+ const e = reader.uint32() + reader.pos;
162
+ while (reader.pos < e) {
163
+ message.addListItem(field, readScalar(reader, scalarType));
164
+ }
165
+ }
166
+ function readMessageField(reader, options, field, mergeMessage) {
167
+ const delimited = field.delimitedEncoding;
168
+ const message = mergeMessage !== null && mergeMessage !== void 0 ? mergeMessage : reflect(field.message);
169
+ readMessage(message, reader, options, delimited, delimited ? field.number : reader.uint32());
170
+ return message;
171
+ }
172
+ function readScalar(reader, type) {
173
+ switch (type) {
174
+ case ScalarType.STRING:
175
+ return reader.string();
176
+ case ScalarType.BOOL:
177
+ return reader.bool();
178
+ case ScalarType.DOUBLE:
179
+ return reader.double();
180
+ case ScalarType.FLOAT:
181
+ return reader.float();
182
+ case ScalarType.INT32:
183
+ return reader.int32();
184
+ case ScalarType.INT64:
185
+ return reader.int64();
186
+ case ScalarType.UINT64:
187
+ return reader.uint64();
188
+ case ScalarType.FIXED64:
189
+ return reader.fixed64();
190
+ case ScalarType.BYTES:
191
+ return reader.bytes();
192
+ case ScalarType.FIXED32:
193
+ return reader.fixed32();
194
+ case ScalarType.SFIXED32:
195
+ return reader.sfixed32();
196
+ case ScalarType.SFIXED64:
197
+ return reader.sfixed64();
198
+ case ScalarType.SINT64:
199
+ return reader.sint64();
200
+ case ScalarType.UINT32:
201
+ return reader.uint32();
202
+ case ScalarType.SINT32:
203
+ return reader.sint32();
204
+ }
205
+ }