@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,879 @@
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.maximumEdition = exports.minimumEdition = exports.createFileRegistry = exports.createRegistry = void 0;
17
+ const assert_js_1 = require("./assert.js");
18
+ const text_format_js_1 = require("../wire/text-format.js");
19
+ const scalar_js_1 = require("./scalar.js");
20
+ const nested_types_js_1 = require("./nested-types.js");
21
+ const unsafe_js_1 = require("./unsafe.js");
22
+ const names_js_1 = require("./names.js");
23
+ /**
24
+ * Create a registry from the given inputs.
25
+ *
26
+ * An input can be:
27
+ * - Any message, enum, service, or extension descriptor, which adds just the
28
+ * descriptor for this type.
29
+ * - A file descriptor, which adds all typed defined in this file.
30
+ * - A registry, which adds all types from the registry.
31
+ *
32
+ * For duplicate descriptors (same type name), the one given last wins.
33
+ */
34
+ function createRegistry(...input) {
35
+ const reg = createMutableRegistry();
36
+ for (const i of input) {
37
+ switch (i.kind) {
38
+ case "registry":
39
+ for (const n of i) {
40
+ reg.add(n);
41
+ }
42
+ break;
43
+ case "file":
44
+ for (const n of (0, nested_types_js_1.nestedTypes)(i)) {
45
+ reg.add(n);
46
+ }
47
+ break;
48
+ default:
49
+ reg.add(i);
50
+ break;
51
+ }
52
+ }
53
+ return reg;
54
+ }
55
+ exports.createRegistry = createRegistry;
56
+ function createFileRegistry(...args) {
57
+ const registry = createMutableRegistry();
58
+ if ("$typeName" in args[0] &&
59
+ args[0].$typeName == "google.protobuf.FileDescriptorSet") {
60
+ for (const file of args[0].file) {
61
+ addFile(file, registry);
62
+ }
63
+ return registry;
64
+ }
65
+ if ("$typeName" in args[0]) {
66
+ const input = args[0];
67
+ const resolve = args[1];
68
+ const seen = new Set();
69
+ // eslint-disable-next-line no-inner-declarations
70
+ function recurseDeps(file) {
71
+ const deps = [];
72
+ for (const protoFileName of file.dependency) {
73
+ if (registry.getFile(protoFileName) != undefined) {
74
+ continue;
75
+ }
76
+ if (seen.has(protoFileName)) {
77
+ continue;
78
+ }
79
+ const dep = resolve(protoFileName);
80
+ if (!dep) {
81
+ throw new Error(`Unable to resolve ${protoFileName}, imported by ${file.name}`);
82
+ }
83
+ if ("kind" in dep) {
84
+ addDescFile(dep, registry);
85
+ }
86
+ else {
87
+ seen.add(dep.name);
88
+ deps.push(dep);
89
+ }
90
+ }
91
+ return [...deps, ...deps.flatMap((dep) => recurseDeps(dep))];
92
+ }
93
+ for (const file of [input, ...recurseDeps(input)].reverse()) {
94
+ addFile(file, registry);
95
+ }
96
+ }
97
+ else {
98
+ for (const fileReg of args) {
99
+ for (const file of fileReg.files) {
100
+ registry.add(file);
101
+ for (const type of (0, nested_types_js_1.nestedTypes)(file)) {
102
+ registry.add(type);
103
+ }
104
+ }
105
+ }
106
+ }
107
+ return registry;
108
+ }
109
+ exports.createFileRegistry = createFileRegistry;
110
+ /**
111
+ * Create a mutable file registry.
112
+ * @private
113
+ */
114
+ function createMutableRegistry() {
115
+ const types = new Map();
116
+ const extendees = new Map();
117
+ const files = new Map();
118
+ return {
119
+ kind: "registry",
120
+ [Symbol.iterator]() {
121
+ return types.values();
122
+ },
123
+ get files() {
124
+ return files.values();
125
+ },
126
+ add(desc) {
127
+ switch (desc.kind) {
128
+ case "file":
129
+ files.set(desc.proto.name, desc);
130
+ break;
131
+ // @ts-expect-error TS7029
132
+ case "extension":
133
+ // eslint-disable-next-line no-case-declarations
134
+ let numberToExt = extendees.get(desc.extendee.typeName);
135
+ if (!numberToExt) {
136
+ extendees.set(desc.extendee.typeName, (numberToExt = new Map()));
137
+ }
138
+ numberToExt.set(desc.number, desc);
139
+ // eslint-disable-next-line no-fallthrough
140
+ default:
141
+ types.set(desc.typeName, desc);
142
+ }
143
+ },
144
+ remove(desc) {
145
+ switch (desc.kind) {
146
+ case "file":
147
+ files.delete(desc.proto.name);
148
+ break;
149
+ default:
150
+ types.delete(desc.typeName);
151
+ }
152
+ },
153
+ get(typeName) {
154
+ return types.get(typeName);
155
+ },
156
+ getFile(fileName) {
157
+ return files.get(fileName);
158
+ },
159
+ getMessage(typeName) {
160
+ const t = types.get(typeName);
161
+ return (t === null || t === void 0 ? void 0 : t.kind) == "message" ? t : undefined;
162
+ },
163
+ getEnum(typeName) {
164
+ const t = types.get(typeName);
165
+ return (t === null || t === void 0 ? void 0 : t.kind) == "enum" ? t : undefined;
166
+ },
167
+ getExtension(typeName) {
168
+ const t = types.get(typeName);
169
+ return (t === null || t === void 0 ? void 0 : t.kind) == "extension" ? t : undefined;
170
+ },
171
+ getExtensionFor(extendee, no) {
172
+ var _a;
173
+ return (_a = extendees.get(extendee.typeName)) === null || _a === void 0 ? void 0 : _a.get(no);
174
+ },
175
+ getService(typeName) {
176
+ const t = types.get(typeName);
177
+ return (t === null || t === void 0 ? void 0 : t.kind) == "service" ? t : undefined;
178
+ },
179
+ };
180
+ }
181
+ /**
182
+ * Add the file descriptor and the types it contains to the registry.
183
+ */
184
+ function addDescFile(file, reg) {
185
+ reg.add(file);
186
+ for (const type of (0, nested_types_js_1.nestedTypes)(file)) {
187
+ reg.add(type);
188
+ }
189
+ for (const dep of file.dependencies) {
190
+ addDescFile(dep, reg);
191
+ }
192
+ }
193
+ // bootstrap-inject google.protobuf.Edition.EDITION_PROTO2: const $name: Edition.$localName = $number;
194
+ const EDITION_PROTO2 = 998;
195
+ // bootstrap-inject google.protobuf.Edition.EDITION_PROTO3: const $name: Edition.$localName = $number;
196
+ const EDITION_PROTO3 = 999;
197
+ // bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_STRING: const $name: FieldDescriptorProto_Type.$localName = $number;
198
+ const TYPE_STRING = 9;
199
+ // bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_GROUP: const $name: FieldDescriptorProto_Type.$localName = $number;
200
+ const TYPE_GROUP = 10;
201
+ // bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_MESSAGE: const $name: FieldDescriptorProto_Type.$localName = $number;
202
+ const TYPE_MESSAGE = 11;
203
+ // bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_BYTES: const $name: FieldDescriptorProto_Type.$localName = $number;
204
+ const TYPE_BYTES = 12;
205
+ // bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_ENUM: const $name: FieldDescriptorProto_Type.$localName = $number;
206
+ const TYPE_ENUM = 14;
207
+ // bootstrap-inject google.protobuf.FieldDescriptorProto.Label.LABEL_REPEATED: const $name: FieldDescriptorProto_Label.$localName = $number;
208
+ const LABEL_REPEATED = 3;
209
+ // bootstrap-inject google.protobuf.FieldDescriptorProto.Label.LABEL_REQUIRED: const $name: FieldDescriptorProto_Label.$localName = $number;
210
+ const LABEL_REQUIRED = 2;
211
+ // bootstrap-inject google.protobuf.FieldOptions.JSType.JS_STRING: const $name: FieldOptions_JSType.$localName = $number;
212
+ const JS_STRING = 1;
213
+ // bootstrap-inject google.protobuf.MethodOptions.IdempotencyLevel.IDEMPOTENCY_UNKNOWN: const $name: MethodOptions_IdempotencyLevel.$localName = $number;
214
+ const IDEMPOTENCY_UNKNOWN = 0;
215
+ // bootstrap-inject google.protobuf.FeatureSet.FieldPresence.EXPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;
216
+ const EXPLICIT = 1;
217
+ // bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;
218
+ const IMPLICIT = 2;
219
+ // bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name: FeatureSet_FieldPresence.$localName = $number;
220
+ const LEGACY_REQUIRED = 3;
221
+ // bootstrap-inject google.protobuf.FeatureSet.RepeatedFieldEncoding.PACKED: const $name: FeatureSet_RepeatedFieldEncoding.$localName = $number;
222
+ const PACKED = 1;
223
+ // bootstrap-inject google.protobuf.FeatureSet.MessageEncoding.DELIMITED: const $name: FeatureSet_MessageEncoding.$localName = $number;
224
+ const DELIMITED = 2;
225
+ // bootstrap-inject google.protobuf.FeatureSet.EnumType.OPEN: const $name: FeatureSet_EnumType.$localName = $number;
226
+ const OPEN = 1;
227
+ // prettier-ignore
228
+ // bootstrap-inject defaults: EDITION_PROTO2 to EDITION_2023: export const minimumEdition: SupportedEdition = $minimumEdition, maximumEdition: SupportedEdition = $maximumEdition;
229
+ // generated from protoc v27.0-rc2
230
+ exports.minimumEdition = 998, exports.maximumEdition = 1000;
231
+ const featureDefaults = {
232
+ // EDITION_PROTO2
233
+ 998: {
234
+ fieldPresence: 1, // EXPLICIT,
235
+ enumType: 2, // CLOSED,
236
+ repeatedFieldEncoding: 2, // EXPANDED,
237
+ utf8Validation: 3, // NONE,
238
+ messageEncoding: 1, // LENGTH_PREFIXED,
239
+ jsonFormat: 2, // LEGACY_BEST_EFFORT,
240
+ },
241
+ // EDITION_PROTO3
242
+ 999: {
243
+ fieldPresence: 2, // IMPLICIT,
244
+ enumType: 1, // OPEN,
245
+ repeatedFieldEncoding: 1, // PACKED,
246
+ utf8Validation: 2, // VERIFY,
247
+ messageEncoding: 1, // LENGTH_PREFIXED,
248
+ jsonFormat: 1, // ALLOW,
249
+ },
250
+ // EDITION_2023
251
+ 1000: {
252
+ fieldPresence: 1, // EXPLICIT,
253
+ enumType: 1, // OPEN,
254
+ repeatedFieldEncoding: 1, // PACKED,
255
+ utf8Validation: 2, // VERIFY,
256
+ messageEncoding: 1, // LENGTH_PREFIXED,
257
+ jsonFormat: 1, // ALLOW,
258
+ },
259
+ };
260
+ /**
261
+ * Create a descriptor for a file, add it to the registry.
262
+ */
263
+ function addFile(proto, reg) {
264
+ var _a, _b;
265
+ const file = {
266
+ kind: "file",
267
+ proto,
268
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
269
+ edition: getFileEdition(proto),
270
+ name: proto.name.replace(/\.proto$/, ""),
271
+ dependencies: findFileDependencies(proto, reg),
272
+ enums: [],
273
+ messages: [],
274
+ extensions: [],
275
+ services: [],
276
+ toString() {
277
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- we asserted above
278
+ return `file ${proto.name}`;
279
+ },
280
+ };
281
+ const mapEntriesStore = new Map();
282
+ const mapEntries = {
283
+ get(typeName) {
284
+ return mapEntriesStore.get(typeName);
285
+ },
286
+ add(desc) {
287
+ var _a;
288
+ (0, assert_js_1.assert)(((_a = desc.proto.options) === null || _a === void 0 ? void 0 : _a.mapEntry) === true);
289
+ mapEntriesStore.set(desc.typeName, desc);
290
+ },
291
+ };
292
+ for (const enumProto of proto.enumType) {
293
+ addEnum(enumProto, file, undefined, reg);
294
+ }
295
+ for (const messageProto of proto.messageType) {
296
+ addMessage(messageProto, file, undefined, reg, mapEntries);
297
+ }
298
+ for (const serviceProto of proto.service) {
299
+ addService(serviceProto, file, reg);
300
+ }
301
+ addExtensions(file, reg);
302
+ for (const mapEntry of mapEntriesStore.values()) {
303
+ // to create a map field, we need access to the map entry's fields
304
+ addFields(mapEntry, reg, mapEntries);
305
+ }
306
+ for (const message of file.messages) {
307
+ addFields(message, reg, mapEntries);
308
+ addExtensions(message, reg);
309
+ }
310
+ reg.add(file);
311
+ }
312
+ /**
313
+ * Create descriptors for extensions, and add them to the message / file,
314
+ * and to our cart.
315
+ * Recurses into nested types.
316
+ */
317
+ function addExtensions(desc, reg) {
318
+ switch (desc.kind) {
319
+ case "file":
320
+ for (const proto of desc.proto.extension) {
321
+ const ext = newField(proto, desc, reg);
322
+ desc.extensions.push(ext);
323
+ reg.add(ext);
324
+ }
325
+ break;
326
+ case "message":
327
+ for (const proto of desc.proto.extension) {
328
+ const ext = newField(proto, desc, reg);
329
+ desc.nestedExtensions.push(ext);
330
+ reg.add(ext);
331
+ }
332
+ for (const message of desc.nestedMessages) {
333
+ addExtensions(message, reg);
334
+ }
335
+ break;
336
+ }
337
+ }
338
+ /**
339
+ * Create descriptors for fields and oneof groups, and add them to the message.
340
+ * Recurses into nested types.
341
+ */
342
+ function addFields(message, reg, mapEntries) {
343
+ const allOneofs = message.proto.oneofDecl.map((proto) => newOneof(proto, message));
344
+ const oneofsSeen = new Set();
345
+ for (const proto of message.proto.field) {
346
+ const oneof = findOneof(proto, allOneofs);
347
+ const field = newField(proto, message, reg, oneof, mapEntries);
348
+ message.fields.push(field);
349
+ message.field[field.localName] = field;
350
+ if (oneof === undefined) {
351
+ message.members.push(field);
352
+ }
353
+ else {
354
+ oneof.fields.push(field);
355
+ if (!oneofsSeen.has(oneof)) {
356
+ oneofsSeen.add(oneof);
357
+ message.members.push(oneof);
358
+ }
359
+ }
360
+ }
361
+ for (const oneof of allOneofs.filter((o) => oneofsSeen.has(o))) {
362
+ message.oneofs.push(oneof);
363
+ }
364
+ for (const child of message.nestedMessages) {
365
+ addFields(child, reg, mapEntries);
366
+ }
367
+ }
368
+ /**
369
+ * Create a descriptor for an enumeration, and add it our cart and to the
370
+ * parent type, if any.
371
+ */
372
+ function addEnum(proto, file, parent, reg) {
373
+ var _a, _b, _c;
374
+ const sharedPrefix = findEnumSharedPrefix(proto.name, proto.value);
375
+ const desc = {
376
+ kind: "enum",
377
+ proto,
378
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
379
+ file,
380
+ parent,
381
+ open: true,
382
+ name: proto.name,
383
+ typeName: makeTypeName(proto, parent, file),
384
+ values: [],
385
+ sharedPrefix,
386
+ toString() {
387
+ return `enum ${this.typeName}`;
388
+ },
389
+ };
390
+ desc.open = isEnumOpen(desc);
391
+ reg.add(desc);
392
+ proto.value.forEach((proto) => {
393
+ var _a, _b;
394
+ const name = proto.name;
395
+ desc.values.push({
396
+ kind: "enum_value",
397
+ proto,
398
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
399
+ parent: desc,
400
+ name: proto.name,
401
+ localName: (0, names_js_1.safeObjectProperty)(sharedPrefix == undefined ? name : name.substring(sharedPrefix.length)),
402
+ number: proto.number,
403
+ toString() {
404
+ return `enum value ${desc.typeName}.${this.name}`;
405
+ },
406
+ });
407
+ });
408
+ ((_c = parent === null || parent === void 0 ? void 0 : parent.nestedEnums) !== null && _c !== void 0 ? _c : file.enums).push(desc);
409
+ }
410
+ /**
411
+ * Create a descriptor for a message, including nested types, and add it to our
412
+ * cart. Note that this does not create descriptors fields.
413
+ */
414
+ function addMessage(proto, file, parent, reg, mapEntries) {
415
+ var _a, _b, _c, _d;
416
+ const desc = {
417
+ kind: "message",
418
+ proto,
419
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
420
+ file,
421
+ parent,
422
+ name: proto.name,
423
+ typeName: makeTypeName(proto, parent, file),
424
+ fields: [],
425
+ field: {},
426
+ oneofs: [],
427
+ members: [],
428
+ nestedEnums: [],
429
+ nestedMessages: [],
430
+ nestedExtensions: [],
431
+ toString() {
432
+ return `message ${this.typeName}`;
433
+ },
434
+ };
435
+ if (((_c = proto.options) === null || _c === void 0 ? void 0 : _c.mapEntry) === true) {
436
+ mapEntries.add(desc);
437
+ }
438
+ else {
439
+ ((_d = parent === null || parent === void 0 ? void 0 : parent.nestedMessages) !== null && _d !== void 0 ? _d : file.messages).push(desc);
440
+ reg.add(desc);
441
+ }
442
+ for (const enumProto of proto.enumType) {
443
+ addEnum(enumProto, file, desc, reg);
444
+ }
445
+ for (const messageProto of proto.nestedType) {
446
+ addMessage(messageProto, file, desc, reg, mapEntries);
447
+ }
448
+ }
449
+ /**
450
+ * Create a descriptor for a service, including methods, and add it to our
451
+ * cart.
452
+ */
453
+ function addService(proto, file, reg) {
454
+ var _a, _b;
455
+ const desc = {
456
+ kind: "service",
457
+ proto,
458
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
459
+ file,
460
+ name: proto.name,
461
+ typeName: makeTypeName(proto, undefined, file),
462
+ methods: [],
463
+ toString() {
464
+ return `service ${this.typeName}`;
465
+ },
466
+ };
467
+ file.services.push(desc);
468
+ reg.add(desc);
469
+ for (const methodProto of proto.method) {
470
+ desc.methods.push(newMethod(methodProto, desc, reg));
471
+ }
472
+ }
473
+ /**
474
+ * Create a descriptor for a method.
475
+ */
476
+ function newMethod(proto, parent, reg) {
477
+ var _a, _b, _c, _d;
478
+ let methodKind;
479
+ if (proto.clientStreaming && proto.serverStreaming) {
480
+ methodKind = "bidi_streaming";
481
+ }
482
+ else if (proto.clientStreaming) {
483
+ methodKind = "client_streaming";
484
+ }
485
+ else if (proto.serverStreaming) {
486
+ methodKind = "server_streaming";
487
+ }
488
+ else {
489
+ methodKind = "unary";
490
+ }
491
+ const input = reg.getMessage(trimLeadingDot(proto.inputType));
492
+ const output = reg.getMessage(trimLeadingDot(proto.outputType));
493
+ (0, assert_js_1.assert)(input, `invalid MethodDescriptorProto: input_type ${proto.inputType} not found`);
494
+ (0, assert_js_1.assert)(output, `invalid MethodDescriptorProto: output_type ${proto.inputType} not found`);
495
+ const name = proto.name;
496
+ return {
497
+ kind: "rpc",
498
+ proto,
499
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
500
+ parent,
501
+ name,
502
+ localName: (0, names_js_1.safeObjectProperty)(name.length
503
+ ? (0, names_js_1.safeObjectProperty)(name[0].toLowerCase() + name.substring(1))
504
+ : name),
505
+ methodKind,
506
+ input,
507
+ output,
508
+ idempotency: (_d = (_c = proto.options) === null || _c === void 0 ? void 0 : _c.idempotencyLevel) !== null && _d !== void 0 ? _d : IDEMPOTENCY_UNKNOWN,
509
+ toString() {
510
+ return `rpc ${parent.typeName}.${name}`;
511
+ },
512
+ };
513
+ }
514
+ /**
515
+ * Create a descriptor for a oneof group.
516
+ */
517
+ function newOneof(proto, parent) {
518
+ return {
519
+ kind: "oneof",
520
+ proto,
521
+ deprecated: false,
522
+ parent,
523
+ fields: [],
524
+ name: proto.name,
525
+ localName: (0, names_js_1.safeObjectProperty)((0, names_js_1.protoCamelCase)(proto.name)),
526
+ toString() {
527
+ return `oneof ${parent.typeName}.${this.name}`;
528
+ },
529
+ };
530
+ }
531
+ function newField(proto, parentOrFile, reg, oneof, mapEntries) {
532
+ var _a, _b, _c;
533
+ const isExtension = mapEntries === undefined;
534
+ const field = {
535
+ kind: "field",
536
+ proto,
537
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
538
+ name: proto.name,
539
+ number: proto.number,
540
+ scalar: undefined,
541
+ message: undefined,
542
+ enum: undefined,
543
+ presence: getFieldPresence(proto, oneof, isExtension, parentOrFile),
544
+ listKind: undefined,
545
+ mapKind: undefined,
546
+ mapKey: undefined,
547
+ delimitedEncoding: undefined,
548
+ packed: undefined,
549
+ longType: undefined,
550
+ getDefaultValue: undefined,
551
+ };
552
+ if (isExtension) {
553
+ // extension field
554
+ const file = parentOrFile.kind == "file" ? parentOrFile : parentOrFile.file;
555
+ const parent = parentOrFile.kind == "file" ? undefined : parentOrFile;
556
+ const typeName = makeTypeName(proto, parent, file);
557
+ field.kind = "extension";
558
+ field.file = file;
559
+ field.parent = parent;
560
+ field.oneof = undefined;
561
+ field.typeName = typeName;
562
+ field.jsonName = `[${typeName}]`; // option json_name is not allowed on extension fields
563
+ field.toString = () => `extension ${typeName}`;
564
+ const extendee = reg.getMessage(trimLeadingDot(proto.extendee));
565
+ (0, assert_js_1.assert)(extendee, `invalid FieldDescriptorProto: extendee ${proto.extendee} not found`);
566
+ field.extendee = extendee;
567
+ }
568
+ else {
569
+ // regular field
570
+ const parent = parentOrFile;
571
+ (0, assert_js_1.assert)(parent.kind == "message");
572
+ field.parent = parent;
573
+ field.oneof = oneof;
574
+ field.localName = oneof
575
+ ? (0, names_js_1.protoCamelCase)(proto.name)
576
+ : (0, names_js_1.safeObjectProperty)((0, names_js_1.protoCamelCase)(proto.name));
577
+ field.jsonName = proto.jsonName;
578
+ field.toString = () => `field ${parent.typeName}.${proto.name}`;
579
+ }
580
+ const label = proto.label;
581
+ const type = proto.type;
582
+ const jstype = (_c = proto.options) === null || _c === void 0 ? void 0 : _c.jstype;
583
+ if (label === LABEL_REPEATED) {
584
+ // list or map field
585
+ const mapEntry = type == TYPE_MESSAGE
586
+ ? mapEntries === null || mapEntries === void 0 ? void 0 : mapEntries.get(trimLeadingDot(proto.typeName))
587
+ : undefined;
588
+ if (mapEntry) {
589
+ // map field
590
+ field.fieldKind = "map";
591
+ const keyField = mapEntry.fields.find((f) => f.number === 1);
592
+ (0, assert_js_1.assert)(keyField);
593
+ (0, assert_js_1.assert)(keyField.fieldKind == "scalar");
594
+ (0, assert_js_1.assert)(keyField.scalar != scalar_js_1.ScalarType.BYTES &&
595
+ keyField.scalar != scalar_js_1.ScalarType.FLOAT &&
596
+ keyField.scalar != scalar_js_1.ScalarType.DOUBLE);
597
+ const valueField = mapEntry.fields.find((f) => f.number === 2);
598
+ (0, assert_js_1.assert)(valueField);
599
+ (0, assert_js_1.assert)(valueField.fieldKind != "list" && valueField.fieldKind != "map");
600
+ field.mapKey = keyField.scalar;
601
+ field.mapKind = valueField.fieldKind;
602
+ field.message = valueField.message;
603
+ field.delimitedEncoding = false; // map fields are always LENGTH_PREFIXED
604
+ field.enum = valueField.enum;
605
+ field.scalar = valueField.scalar;
606
+ return field;
607
+ }
608
+ // list field
609
+ field.fieldKind = "list";
610
+ switch (type) {
611
+ case TYPE_MESSAGE:
612
+ case TYPE_GROUP:
613
+ field.listKind = "message";
614
+ field.message = reg.getMessage(trimLeadingDot(proto.typeName));
615
+ (0, assert_js_1.assert)(field.message);
616
+ field.delimitedEncoding = isDelimitedEncoding(proto, parentOrFile);
617
+ break;
618
+ case TYPE_ENUM:
619
+ field.listKind = "enum";
620
+ field.enum = reg.getEnum(trimLeadingDot(proto.typeName));
621
+ (0, assert_js_1.assert)(field.enum);
622
+ break;
623
+ default:
624
+ field.listKind = "scalar";
625
+ field.scalar = type;
626
+ field.longType =
627
+ jstype == JS_STRING ? scalar_js_1.LongType.STRING : scalar_js_1.LongType.BIGINT;
628
+ break;
629
+ }
630
+ field.packed = isPackedField(proto, parentOrFile);
631
+ return field;
632
+ }
633
+ // singular
634
+ switch (type) {
635
+ case TYPE_MESSAGE:
636
+ case TYPE_GROUP:
637
+ field.fieldKind = "message";
638
+ field.message = reg.getMessage(trimLeadingDot(proto.typeName));
639
+ (0, assert_js_1.assert)(field.message, `invalid FieldDescriptorProto: type_name ${proto.typeName} not found`);
640
+ field.delimitedEncoding = isDelimitedEncoding(proto, parentOrFile);
641
+ field.getDefaultValue = () => undefined;
642
+ break;
643
+ case TYPE_ENUM: {
644
+ const enumeration = reg.getEnum(trimLeadingDot(proto.typeName));
645
+ (0, assert_js_1.assert)(enumeration !== undefined, `invalid FieldDescriptorProto: type_name ${proto.typeName} not found`);
646
+ field.fieldKind = "enum";
647
+ field.enum = reg.getEnum(trimLeadingDot(proto.typeName));
648
+ field.getDefaultValue = () => {
649
+ return (0, unsafe_js_1.unsafeIsSetExplicit)(proto, "defaultValue")
650
+ ? (0, text_format_js_1.parseTextFormatEnumValue)(enumeration, proto.defaultValue)
651
+ : undefined;
652
+ };
653
+ break;
654
+ }
655
+ default: {
656
+ field.fieldKind = "scalar";
657
+ field.scalar = type;
658
+ field.longType = jstype == JS_STRING ? scalar_js_1.LongType.STRING : scalar_js_1.LongType.BIGINT;
659
+ field.getDefaultValue = () => {
660
+ return (0, unsafe_js_1.unsafeIsSetExplicit)(proto, "defaultValue")
661
+ ? (0, text_format_js_1.parseTextFormatScalarValue)(type, proto.defaultValue)
662
+ : undefined;
663
+ };
664
+ break;
665
+ }
666
+ }
667
+ return field;
668
+ }
669
+ /**
670
+ * Parse the "syntax" and "edition" fields, returning one of the supported
671
+ * editions.
672
+ */
673
+ function getFileEdition(proto) {
674
+ switch (proto.syntax) {
675
+ case "":
676
+ case "proto2":
677
+ return EDITION_PROTO2;
678
+ case "proto3":
679
+ return EDITION_PROTO3;
680
+ case "editions":
681
+ if (proto.edition in featureDefaults) {
682
+ return proto.edition;
683
+ }
684
+ throw new Error(`${proto.name}: unsupported edition`);
685
+ default:
686
+ throw new Error(`${proto.name}: unsupported syntax "${proto.syntax}"`);
687
+ }
688
+ }
689
+ /**
690
+ * Resolve dependencies of FileDescriptorProto to DescFile.
691
+ */
692
+ function findFileDependencies(proto, reg) {
693
+ return proto.dependency.map((wantName) => {
694
+ const dep = reg.getFile(wantName);
695
+ if (!dep) {
696
+ throw new Error(`Cannot find ${wantName}, imported by ${proto.name}`);
697
+ }
698
+ return dep;
699
+ });
700
+ }
701
+ /**
702
+ * Finds a prefix shared by enum values, for example `my_enum_` for
703
+ * `enum MyEnum {MY_ENUM_A=0; MY_ENUM_B=1;}`.
704
+ */
705
+ function findEnumSharedPrefix(enumName, values) {
706
+ const prefix = camelToSnakeCase(enumName) + "_";
707
+ for (const value of values) {
708
+ if (!value.name.toLowerCase().startsWith(prefix)) {
709
+ return undefined;
710
+ }
711
+ const shortName = value.name.substring(prefix.length);
712
+ if (shortName.length == 0) {
713
+ return undefined;
714
+ }
715
+ if (/^\d/.test(shortName)) {
716
+ // identifiers must not start with numbers
717
+ return undefined;
718
+ }
719
+ }
720
+ return prefix;
721
+ }
722
+ /**
723
+ * Converts lowerCamelCase or UpperCamelCase into lower_snake_case.
724
+ * This is used to find shared prefixes in an enum.
725
+ */
726
+ function camelToSnakeCase(camel) {
727
+ return (camel.substring(0, 1) + camel.substring(1).replace(/[A-Z]/g, (c) => "_" + c)).toLowerCase();
728
+ }
729
+ /**
730
+ * Create a fully qualified name for a protobuf type or extension field.
731
+ *
732
+ * The fully qualified name for messages, enumerations, and services is
733
+ * constructed by concatenating the package name (if present), parent
734
+ * message names (for nested types), and the type name. We omit the leading
735
+ * dot added by protobuf compilers. Examples:
736
+ * - mypackage.MyMessage
737
+ * - mypackage.MyMessage.NestedMessage
738
+ *
739
+ * The fully qualified name for extension fields is constructed by
740
+ * concatenating the package name (if present), parent message names (for
741
+ * extensions declared within a message), and the field name. Examples:
742
+ * - mypackage.extfield
743
+ * - mypackage.MyMessage.extfield
744
+ */
745
+ function makeTypeName(proto, parent, file) {
746
+ let typeName;
747
+ if (parent) {
748
+ typeName = `${parent.typeName}.${proto.name}`;
749
+ }
750
+ else if (file.proto.package.length > 0) {
751
+ typeName = `${file.proto.package}.${proto.name}`;
752
+ }
753
+ else {
754
+ typeName = `${proto.name}`;
755
+ }
756
+ return typeName;
757
+ }
758
+ /**
759
+ * Remove the leading dot from a fully qualified type name.
760
+ */
761
+ function trimLeadingDot(typeName) {
762
+ return typeName.startsWith(".") ? typeName.substring(1) : typeName;
763
+ }
764
+ /**
765
+ * Did the user put the field in a oneof group?
766
+ * Synthetic oneofs for proto3 optionals are ignored.
767
+ */
768
+ function findOneof(proto, allOneofs) {
769
+ if (!(0, unsafe_js_1.unsafeIsSetExplicit)(proto, "oneofIndex")) {
770
+ return undefined;
771
+ }
772
+ if (proto.proto3Optional) {
773
+ return undefined;
774
+ }
775
+ const oneof = allOneofs[proto.oneofIndex];
776
+ (0, assert_js_1.assert)(oneof, `invalid FieldDescriptorProto: oneof #${proto.oneofIndex} for field #${proto.number} not found`);
777
+ return oneof;
778
+ }
779
+ /**
780
+ * Presence of the field.
781
+ * See https://protobuf.dev/programming-guides/field_presence/
782
+ */
783
+ function getFieldPresence(proto, oneof, isExtension, parent) {
784
+ if (proto.label == LABEL_REQUIRED) {
785
+ // proto2 required is LEGACY_REQUIRED
786
+ return LEGACY_REQUIRED;
787
+ }
788
+ if (proto.label == LABEL_REPEATED) {
789
+ // repeated fields (including maps) do not track presence
790
+ return IMPLICIT;
791
+ }
792
+ if (!!oneof || proto.proto3Optional) {
793
+ // oneof is always explicit
794
+ return EXPLICIT;
795
+ }
796
+ if (proto.type == TYPE_MESSAGE) {
797
+ // singular message field cannot be implicit
798
+ return EXPLICIT;
799
+ }
800
+ if (isExtension) {
801
+ // extensions always track presence
802
+ return EXPLICIT;
803
+ }
804
+ return resolveFeature("fieldPresence", { proto, parent });
805
+ }
806
+ /**
807
+ * Pack this repeated field?
808
+ */
809
+ function isPackedField(proto, parent) {
810
+ if (proto.label != LABEL_REPEATED) {
811
+ return false;
812
+ }
813
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
814
+ switch (proto.type) {
815
+ case TYPE_STRING:
816
+ case TYPE_BYTES:
817
+ case TYPE_GROUP:
818
+ case TYPE_MESSAGE:
819
+ // length-delimited types cannot be packed
820
+ return false;
821
+ }
822
+ const o = proto.options;
823
+ if (o && (0, unsafe_js_1.unsafeIsSetExplicit)(o, "packed")) {
824
+ // prefer the field option over edition features
825
+ return o.packed;
826
+ }
827
+ return (PACKED ==
828
+ resolveFeature("repeatedFieldEncoding", {
829
+ proto,
830
+ parent,
831
+ }));
832
+ }
833
+ /**
834
+ * Enumerations can be open or closed.
835
+ * See https://protobuf.dev/programming-guides/enum/
836
+ */
837
+ function isEnumOpen(desc) {
838
+ var _a;
839
+ return (OPEN ==
840
+ resolveFeature("enumType", {
841
+ proto: desc.proto,
842
+ parent: (_a = desc.parent) !== null && _a !== void 0 ? _a : desc.file,
843
+ }));
844
+ }
845
+ /**
846
+ * Encode the message delimited (a.k.a. proto2 group encoding), or
847
+ * length-prefixed?
848
+ */
849
+ function isDelimitedEncoding(proto, parent) {
850
+ if (proto.type == TYPE_GROUP) {
851
+ return true;
852
+ }
853
+ return (DELIMITED ==
854
+ resolveFeature("messageEncoding", {
855
+ proto,
856
+ parent,
857
+ }));
858
+ }
859
+ function resolveFeature(name, ref) {
860
+ var _a, _b;
861
+ const featureSet = (_a = ref.proto.options) === null || _a === void 0 ? void 0 : _a.features;
862
+ if (featureSet) {
863
+ const val = featureSet[name];
864
+ if (val != 0) {
865
+ return val;
866
+ }
867
+ }
868
+ if ("kind" in ref) {
869
+ if (ref.kind == "message") {
870
+ return resolveFeature(name, (_b = ref.parent) !== null && _b !== void 0 ? _b : ref.file);
871
+ }
872
+ const editionDefaults = featureDefaults[ref.edition];
873
+ if (!editionDefaults) {
874
+ throw new Error(`feature default for edition ${ref.edition} not found`);
875
+ }
876
+ return editionDefaults[name];
877
+ }
878
+ return resolveFeature(name, ref.parent);
879
+ }