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