@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
@@ -50,4 +50,24 @@ export declare enum LongType {
50
50
  /**
51
51
  * ScalarValue maps from a scalar field type to a TypeScript value type.
52
52
  */
53
- export type ScalarValue<T = ScalarType, L extends LongType = LongType.STRING | LongType.BIGINT> = T extends ScalarType.STRING ? string : T extends ScalarType.INT32 ? number : T extends ScalarType.UINT32 ? number : T extends ScalarType.UINT32 ? number : T extends ScalarType.SINT32 ? number : T extends ScalarType.FIXED32 ? number : T extends ScalarType.SFIXED32 ? number : T extends ScalarType.FLOAT ? number : T extends ScalarType.DOUBLE ? number : T extends ScalarType.INT64 ? (L extends LongType.STRING ? string : bigint) : T extends ScalarType.SINT64 ? (L extends LongType.STRING ? string : bigint) : T extends ScalarType.SFIXED64 ? (L extends LongType.STRING ? string : bigint) : T extends ScalarType.UINT64 ? (L extends LongType.STRING ? string : bigint) : T extends ScalarType.FIXED64 ? (L extends LongType.STRING ? string : bigint) : T extends ScalarType.BOOL ? boolean : T extends ScalarType.BYTES ? Uint8Array : never;
53
+ export type ScalarValue<T = ScalarType, L extends LongType = LongType.STRING | LongType.BIGINT> = T extends ScalarType.STRING ? string : T extends ScalarType.INT32 ? number : T extends ScalarType.UINT32 ? number : T extends ScalarType.UINT32 ? number : T extends ScalarType.SINT32 ? number : T extends ScalarType.FIXED32 ? number : T extends ScalarType.SFIXED32 ? number : T extends ScalarType.FLOAT ? number : T extends ScalarType.DOUBLE ? number : T extends ScalarType.INT64 ? L extends LongType.STRING ? string : bigint : T extends ScalarType.SINT64 ? L extends LongType.STRING ? string : bigint : T extends ScalarType.SFIXED64 ? L extends LongType.STRING ? string : bigint : T extends ScalarType.UINT64 ? L extends LongType.STRING ? string : bigint : T extends ScalarType.FIXED64 ? L extends LongType.STRING ? string : bigint : T extends ScalarType.BOOL ? boolean : T extends ScalarType.BYTES ? Uint8Array : never;
54
+ /**
55
+ * Returns true if both scalar values are equal.
56
+ */
57
+ export declare function scalarEquals(type: ScalarType, a: string | boolean | number | bigint | Uint8Array | undefined, b: string | boolean | number | bigint | Uint8Array | undefined): boolean;
58
+ /**
59
+ * Returns the zero value for the given scalar type.
60
+ */
61
+ export declare function scalarZeroValue<T extends ScalarType, L extends LongType>(type: T, longType: L): ScalarValue<T, L>;
62
+ /**
63
+ * Returns true for a zero-value. For example, an integer has the zero-value `0`,
64
+ * a boolean is `false`, a string is `""`, and bytes is an empty Uint8Array.
65
+ *
66
+ * In proto3, zero-values are not written to the wire, unless the field is
67
+ * optional or repeated.
68
+ */
69
+ export declare function isScalarZeroValue(type: ScalarType, value: unknown): boolean;
70
+ export type InvalidScalarValueErr = false | "invalid UTF8" | `${string} out of range`;
71
+ export declare function checkScalarValue(value: unknown, scalar: ScalarType): true | InvalidScalarValueErr;
72
+ export declare function scalarTypeDescription(scalar: ScalarType): string;
73
+ export declare function scalarTypeScriptType(scalar: ScalarType, long: LongType): "string" | "boolean" | "bigint" | "bigint | string" | "Uint8Array" | "number";
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+ // Copyright 2021-2024 Buf Technologies, Inc.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.scalarTypeScriptType = exports.scalarTypeDescription = exports.checkScalarValue = exports.isScalarZeroValue = exports.scalarZeroValue = exports.scalarEquals = exports.LongType = exports.ScalarType = void 0;
17
+ const proto_int64_js_1 = require("../proto-int64.js");
18
+ const text_encoding_js_1 = require("../wire/text-encoding.js");
19
+ /**
20
+ * Scalar value types. This is a subset of field types declared by protobuf
21
+ * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE
22
+ * are omitted, but the numerical values are identical.
23
+ */
24
+ var ScalarType;
25
+ (function (ScalarType) {
26
+ // 0 is reserved for errors.
27
+ // Order is weird for historical reasons.
28
+ ScalarType[ScalarType["DOUBLE"] = 1] = "DOUBLE";
29
+ ScalarType[ScalarType["FLOAT"] = 2] = "FLOAT";
30
+ // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
31
+ // negative values are likely.
32
+ ScalarType[ScalarType["INT64"] = 3] = "INT64";
33
+ ScalarType[ScalarType["UINT64"] = 4] = "UINT64";
34
+ // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
35
+ // negative values are likely.
36
+ ScalarType[ScalarType["INT32"] = 5] = "INT32";
37
+ ScalarType[ScalarType["FIXED64"] = 6] = "FIXED64";
38
+ ScalarType[ScalarType["FIXED32"] = 7] = "FIXED32";
39
+ ScalarType[ScalarType["BOOL"] = 8] = "BOOL";
40
+ ScalarType[ScalarType["STRING"] = 9] = "STRING";
41
+ // Tag-delimited aggregate.
42
+ // Group type is deprecated and not supported in proto3. However, Proto3
43
+ // implementations should still be able to parse the group wire format and
44
+ // treat group fields as unknown fields.
45
+ // TYPE_GROUP = 10,
46
+ // TYPE_MESSAGE = 11, // Length-delimited aggregate.
47
+ // New in version 2.
48
+ ScalarType[ScalarType["BYTES"] = 12] = "BYTES";
49
+ ScalarType[ScalarType["UINT32"] = 13] = "UINT32";
50
+ // TYPE_ENUM = 14,
51
+ ScalarType[ScalarType["SFIXED32"] = 15] = "SFIXED32";
52
+ ScalarType[ScalarType["SFIXED64"] = 16] = "SFIXED64";
53
+ ScalarType[ScalarType["SINT32"] = 17] = "SINT32";
54
+ ScalarType[ScalarType["SINT64"] = 18] = "SINT64";
55
+ })(ScalarType || (exports.ScalarType = ScalarType = {}));
56
+ /**
57
+ * JavaScript representation of fields with 64 bit integral types (int64, uint64,
58
+ * sint64, fixed64, sfixed64).
59
+ *
60
+ * This is a subset of google.protobuf.FieldOptions.JSType, which defines JS_NORMAL,
61
+ * JS_STRING, and JS_NUMBER. Protobuf-ES uses BigInt by default, but will use
62
+ * String if `[jstype = JS_STRING]` is specified.
63
+ *
64
+ * ```protobuf
65
+ * uint64 field_a = 1; // BigInt
66
+ * uint64 field_b = 2 [jstype = JS_NORMAL]; // BigInt
67
+ * uint64 field_b = 2 [jstype = JS_NUMBER]; // BigInt
68
+ * uint64 field_b = 2 [jstype = JS_STRING]; // String
69
+ * ```
70
+ */
71
+ var LongType;
72
+ (function (LongType) {
73
+ /**
74
+ * Use JavaScript BigInt.
75
+ */
76
+ LongType[LongType["BIGINT"] = 0] = "BIGINT";
77
+ /**
78
+ * Use JavaScript String.
79
+ *
80
+ * Field option `[jstype = JS_STRING]`.
81
+ */
82
+ LongType[LongType["STRING"] = 1] = "STRING";
83
+ })(LongType || (exports.LongType = LongType = {}));
84
+ /**
85
+ * Returns true if both scalar values are equal.
86
+ */
87
+ function scalarEquals(type, a, b) {
88
+ if (a === b) {
89
+ // This correctly matches equal values except BYTES and (possibly) 64-bit integers.
90
+ return true;
91
+ }
92
+ // Special case BYTES - we need to compare each byte individually
93
+ if (type == ScalarType.BYTES) {
94
+ if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {
95
+ return false;
96
+ }
97
+ if (a.length !== b.length) {
98
+ return false;
99
+ }
100
+ for (let i = 0; i < a.length; i++) {
101
+ if (a[i] !== b[i]) {
102
+ return false;
103
+ }
104
+ }
105
+ return true;
106
+ }
107
+ // Special case 64-bit integers - we support number, string and bigint representation.
108
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
109
+ switch (type) {
110
+ case ScalarType.UINT64:
111
+ case ScalarType.FIXED64:
112
+ case ScalarType.INT64:
113
+ case ScalarType.SFIXED64:
114
+ case ScalarType.SINT64:
115
+ // Loose comparison will match between 0n, 0 and "0".
116
+ return a == b;
117
+ }
118
+ // Anything that hasn't been caught by strict comparison or special cased
119
+ // BYTES and 64-bit integers is not equal.
120
+ return false;
121
+ }
122
+ exports.scalarEquals = scalarEquals;
123
+ /**
124
+ * Returns the zero value for the given scalar type.
125
+ */
126
+ function scalarZeroValue(type, longType) {
127
+ switch (type) {
128
+ case ScalarType.BOOL:
129
+ return false;
130
+ case ScalarType.UINT64:
131
+ case ScalarType.FIXED64:
132
+ case ScalarType.INT64:
133
+ case ScalarType.SFIXED64:
134
+ case ScalarType.SINT64:
135
+ return (longType == 0 ? proto_int64_js_1.protoInt64.zero : "0");
136
+ case ScalarType.DOUBLE:
137
+ case ScalarType.FLOAT:
138
+ return 0.0;
139
+ case ScalarType.BYTES:
140
+ return new Uint8Array(0);
141
+ case ScalarType.STRING:
142
+ return "";
143
+ default:
144
+ // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.
145
+ // We do not use individual cases to save a few bytes code size.
146
+ return 0;
147
+ }
148
+ }
149
+ exports.scalarZeroValue = scalarZeroValue;
150
+ /**
151
+ * Returns true for a zero-value. For example, an integer has the zero-value `0`,
152
+ * a boolean is `false`, a string is `""`, and bytes is an empty Uint8Array.
153
+ *
154
+ * In proto3, zero-values are not written to the wire, unless the field is
155
+ * optional or repeated.
156
+ */
157
+ function isScalarZeroValue(type, value) {
158
+ switch (type) {
159
+ case ScalarType.BOOL:
160
+ return value === false;
161
+ case ScalarType.STRING:
162
+ return value === "";
163
+ case ScalarType.BYTES:
164
+ return value instanceof Uint8Array && !value.byteLength;
165
+ default:
166
+ return value == 0; // Loose comparison matches 0n, 0 and "0"
167
+ }
168
+ }
169
+ exports.isScalarZeroValue = isScalarZeroValue;
170
+ const FLOAT32_MAX = 3.4028234663852886e38, FLOAT32_MIN = -3.4028234663852886e38, UINT32_MAX = 0xffffffff, INT32_MAX = 0x7fffffff, INT32_MIN = -0x80000000;
171
+ // TODO this checks UTF-8 validity
172
+ function checkScalarValue(value, scalar) {
173
+ switch (scalar) {
174
+ case ScalarType.DOUBLE:
175
+ return typeof value == "number";
176
+ case ScalarType.FLOAT:
177
+ if (typeof value != "number") {
178
+ return false;
179
+ }
180
+ if (Number.isNaN(value) || !Number.isFinite(value)) {
181
+ return true;
182
+ }
183
+ if (value > FLOAT32_MAX || value < FLOAT32_MIN) {
184
+ return `${value.toFixed()} out of range`;
185
+ }
186
+ return true;
187
+ case ScalarType.INT32:
188
+ case ScalarType.SFIXED32:
189
+ case ScalarType.SINT32:
190
+ // signed
191
+ if (typeof value !== "number" || !Number.isInteger(value)) {
192
+ return false;
193
+ }
194
+ if (value > INT32_MAX || value < INT32_MIN) {
195
+ return `${value.toFixed()} out of range`;
196
+ }
197
+ return true;
198
+ case ScalarType.FIXED32:
199
+ case ScalarType.UINT32:
200
+ // unsigned
201
+ if (typeof value !== "number" || !Number.isInteger(value)) {
202
+ return false;
203
+ }
204
+ if (value > UINT32_MAX || value < 0) {
205
+ return `${value.toFixed()} out of range`;
206
+ }
207
+ return true;
208
+ case ScalarType.BOOL:
209
+ return typeof value == "boolean";
210
+ case ScalarType.STRING:
211
+ if (typeof value != "string") {
212
+ return false;
213
+ }
214
+ return (0, text_encoding_js_1.getTextEncoding)().checkUtf8(value) || "invalid UTF8";
215
+ case ScalarType.BYTES:
216
+ return value instanceof Uint8Array;
217
+ case ScalarType.INT64:
218
+ case ScalarType.SFIXED64:
219
+ case ScalarType.SINT64:
220
+ // signed
221
+ if (typeof value != "string" &&
222
+ typeof value !== "bigint" &&
223
+ typeof value !== "number") {
224
+ return false;
225
+ }
226
+ try {
227
+ proto_int64_js_1.protoInt64.parse(value);
228
+ }
229
+ catch (e) {
230
+ return `${value} out of range`;
231
+ }
232
+ return true;
233
+ case ScalarType.FIXED64:
234
+ case ScalarType.UINT64:
235
+ // unsigned
236
+ if (typeof value != "string" &&
237
+ typeof value !== "bigint" &&
238
+ typeof value !== "number") {
239
+ return false;
240
+ }
241
+ try {
242
+ proto_int64_js_1.protoInt64.uParse(value);
243
+ }
244
+ catch (e) {
245
+ return `${value} out of range`;
246
+ }
247
+ return true;
248
+ }
249
+ }
250
+ exports.checkScalarValue = checkScalarValue;
251
+ function scalarTypeDescription(scalar) {
252
+ switch (scalar) {
253
+ case ScalarType.STRING:
254
+ return "string";
255
+ case ScalarType.BOOL:
256
+ return "boolean";
257
+ case ScalarType.INT64:
258
+ case ScalarType.SINT64:
259
+ case ScalarType.SFIXED64:
260
+ return "bigint (int64)";
261
+ case ScalarType.UINT64:
262
+ case ScalarType.FIXED64:
263
+ return "bigint (uint64)";
264
+ case ScalarType.BYTES:
265
+ return "Uint8Array";
266
+ case ScalarType.DOUBLE:
267
+ return "number (float64)";
268
+ case ScalarType.FLOAT:
269
+ return "number (float32)";
270
+ case ScalarType.FIXED32:
271
+ case ScalarType.UINT32:
272
+ return "number (uint32)";
273
+ case ScalarType.INT32:
274
+ case ScalarType.SFIXED32:
275
+ case ScalarType.SINT32:
276
+ return "number (int32)";
277
+ }
278
+ }
279
+ exports.scalarTypeDescription = scalarTypeDescription;
280
+ function scalarTypeScriptType(scalar, long) {
281
+ switch (scalar) {
282
+ case ScalarType.STRING:
283
+ return "string";
284
+ case ScalarType.BOOL:
285
+ return "boolean";
286
+ case ScalarType.UINT64:
287
+ case ScalarType.SFIXED64:
288
+ case ScalarType.FIXED64:
289
+ case ScalarType.SINT64:
290
+ case ScalarType.INT64:
291
+ return long == LongType.STRING ? "string" : "bigint";
292
+ case ScalarType.BYTES:
293
+ return "Uint8Array";
294
+ default:
295
+ return "number";
296
+ }
297
+ }
298
+ exports.scalarTypeScriptType = scalarTypeScriptType;
@@ -0,0 +1,58 @@
1
+ import type { DescField, DescOneof } from "../desc-types.js";
2
+ export declare const unsafeLocal: unique symbol;
3
+ /**
4
+ * Return the selected field of a oneof group.
5
+ *
6
+ * @private
7
+ */
8
+ export declare function unsafeOneofCase(target: Record<string, any>, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access
9
+ oneof: DescOneof): DescField | undefined;
10
+ /**
11
+ * Returns true if the field is set.
12
+ *
13
+ * @private
14
+ */
15
+ export declare function unsafeIsSet(target: Record<string, any>, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access
16
+ field: DescField): boolean;
17
+ /**
18
+ * Returns true if the field is set, but only for singular fields with explicit
19
+ * presence (proto2).
20
+ *
21
+ * @private
22
+ */
23
+ export declare function unsafeIsSetExplicit(target: object, localName: string): boolean;
24
+ /**
25
+ * Return a field value, respecting oneof groups.
26
+ *
27
+ * @private
28
+ */
29
+ export declare function unsafeGet(target: Record<string, unknown>, field: DescField): unknown;
30
+ /**
31
+ * Set a field value, respecting oneof groups.
32
+ *
33
+ * @private
34
+ */
35
+ export declare function unsafeSet(target: Record<string, unknown>, field: DescField, value: unknown): void;
36
+ /**
37
+ * Resets the field, so that unsafeIsSet() will return false.
38
+ *
39
+ * @private
40
+ */
41
+ export declare function unsafeClear(target: Record<string, any>, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access
42
+ field: DescField): void;
43
+ /**
44
+ * Add an item to a list field.
45
+ *
46
+ * @private
47
+ */
48
+ export declare function unsafeAddListItem(target: Record<string, unknown>, field: DescField & {
49
+ fieldKind: "list";
50
+ }, value: unknown): void;
51
+ /**
52
+ * Set a map entry.
53
+ *
54
+ * @private
55
+ */
56
+ export declare function unsafeSetMapEntry(target: Record<string, unknown>, field: DescField & {
57
+ fieldKind: "map";
58
+ }, key: string | number, value: unknown): void;
@@ -0,0 +1,166 @@
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.unsafeSetMapEntry = exports.unsafeAddListItem = exports.unsafeClear = exports.unsafeSet = exports.unsafeGet = exports.unsafeIsSetExplicit = exports.unsafeIsSet = exports.unsafeOneofCase = exports.unsafeLocal = void 0;
17
+ const scalar_js_1 = require("./scalar.js");
18
+ // bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;
19
+ const IMPLICIT = 2;
20
+ exports.unsafeLocal = Symbol.for("reflect unsafe local");
21
+ /**
22
+ * Return the selected field of a oneof group.
23
+ *
24
+ * @private
25
+ */
26
+ function unsafeOneofCase(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access
27
+ oneof) {
28
+ const c = target[oneof.localName].case;
29
+ if (c === undefined) {
30
+ return c;
31
+ }
32
+ return oneof.fields.find((f) => f.localName === c);
33
+ }
34
+ exports.unsafeOneofCase = unsafeOneofCase;
35
+ /**
36
+ * Returns true if the field is set.
37
+ *
38
+ * @private
39
+ */
40
+ function unsafeIsSet(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access
41
+ field) {
42
+ const name = field.localName;
43
+ if (field.oneof) {
44
+ return target[field.oneof.localName].case === name; // eslint-disable-line @typescript-eslint/no-unsafe-member-access
45
+ }
46
+ if (field.presence != IMPLICIT) {
47
+ // Fields with explicit presence have properties on the prototype chain
48
+ // for default / zero values (except for proto3).
49
+ return (target[name] !== undefined &&
50
+ Object.prototype.hasOwnProperty.call(target, name));
51
+ }
52
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
53
+ switch (field.fieldKind) {
54
+ case "list":
55
+ return target[name].length > 0;
56
+ case "map":
57
+ return Object.keys(target[name]).length > 0; // eslint-disable-line @typescript-eslint/no-unsafe-argument
58
+ case "scalar":
59
+ return !(0, scalar_js_1.isScalarZeroValue)(field.scalar, target[name]);
60
+ case "enum":
61
+ return target[name] !== field.enum.values[0].number;
62
+ }
63
+ throw new Error("message field with implicit presence");
64
+ }
65
+ exports.unsafeIsSet = unsafeIsSet;
66
+ /**
67
+ * Returns true if the field is set, but only for singular fields with explicit
68
+ * presence (proto2).
69
+ *
70
+ * @private
71
+ */
72
+ function unsafeIsSetExplicit(target, localName) {
73
+ return (Object.prototype.hasOwnProperty.call(target, localName) &&
74
+ target[localName] !== undefined);
75
+ }
76
+ exports.unsafeIsSetExplicit = unsafeIsSetExplicit;
77
+ /**
78
+ * Return a field value, respecting oneof groups.
79
+ *
80
+ * @private
81
+ */
82
+ function unsafeGet(target, field) {
83
+ if (field.oneof) {
84
+ const oneof = target[field.oneof.localName];
85
+ if (oneof.case === field.localName) {
86
+ return oneof.value;
87
+ }
88
+ return undefined;
89
+ }
90
+ return target[field.localName];
91
+ }
92
+ exports.unsafeGet = unsafeGet;
93
+ /**
94
+ * Set a field value, respecting oneof groups.
95
+ *
96
+ * @private
97
+ */
98
+ function unsafeSet(target, field, value) {
99
+ if (field.oneof) {
100
+ target[field.oneof.localName] = {
101
+ case: field.localName,
102
+ value: value,
103
+ };
104
+ }
105
+ else {
106
+ target[field.localName] = value;
107
+ }
108
+ }
109
+ exports.unsafeSet = unsafeSet;
110
+ /**
111
+ * Resets the field, so that unsafeIsSet() will return false.
112
+ *
113
+ * @private
114
+ */
115
+ function unsafeClear(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access
116
+ field) {
117
+ const name = field.localName;
118
+ if (field.oneof) {
119
+ const oneofLocalName = field.oneof.localName;
120
+ if (target[oneofLocalName].case === name) {
121
+ target[oneofLocalName] = { case: undefined };
122
+ }
123
+ }
124
+ else if (field.presence != IMPLICIT) {
125
+ // Fields with explicit presence have properties on the prototype chain
126
+ // for default / zero values (except for proto3). By deleting their own
127
+ // property, the field is reset.
128
+ delete target[name];
129
+ }
130
+ else {
131
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
132
+ switch (field.fieldKind) {
133
+ case "map":
134
+ target[name] = {};
135
+ break;
136
+ case "list":
137
+ target[name] = [];
138
+ break;
139
+ case "enum":
140
+ target[name] = field.enum.values[0].number;
141
+ break;
142
+ case "scalar":
143
+ target[name] = (0, scalar_js_1.scalarZeroValue)(field.scalar, field.longType);
144
+ break;
145
+ }
146
+ }
147
+ }
148
+ exports.unsafeClear = unsafeClear;
149
+ /**
150
+ * Add an item to a list field.
151
+ *
152
+ * @private
153
+ */
154
+ function unsafeAddListItem(target, field, value) {
155
+ target[field.localName].push(value);
156
+ }
157
+ exports.unsafeAddListItem = unsafeAddListItem;
158
+ /**
159
+ * Set a map entry.
160
+ *
161
+ * @private
162
+ */
163
+ function unsafeSetMapEntry(target, field, key, value) {
164
+ target[field.localName][key] = value;
165
+ }
166
+ exports.unsafeSetMapEntry = unsafeSetMapEntry;
@@ -0,0 +1,24 @@
1
+ import type { MessageShape } from "./types.js";
2
+ import { BinaryWriter } from "./wire/binary-encoding.js";
3
+ import type { DescField, DescMessage } from "./desc-types.js";
4
+ import type { ReflectMessage } from "./reflect/index.js";
5
+ /**
6
+ * Options for serializing to binary data.
7
+ *
8
+ * V1 also had the option `readerFactory` for using a custom implementation to
9
+ * encode to binary.
10
+ */
11
+ export interface BinaryWriteOptions {
12
+ /**
13
+ * Include unknown fields in the serialized output? The default behavior
14
+ * is to retain unknown fields and include them in the serialized output.
15
+ *
16
+ * For more details see https://developers.google.com/protocol-buffers/docs/proto3#unknowns
17
+ */
18
+ writeUnknownFields: boolean;
19
+ }
20
+ export declare function toBinary<Desc extends DescMessage>(messageDesc: Desc, message: MessageShape<Desc>, options?: Partial<BinaryWriteOptions>): Uint8Array;
21
+ /**
22
+ * @private
23
+ */
24
+ export declare function writeField(writer: BinaryWriter, opts: BinaryWriteOptions, msg: ReflectMessage, field: DescField): void;