@bufbuild/protobuf 1.9.0 → 2.0.0-alpha.1

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