@openclaw/feishu 2026.6.8-beta.2 → 2026.6.9-beta.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 (281) hide show
  1. package/dist/api.js +78 -23
  2. package/dist/{channel-DwygSth-.js → channel-C9mW5kaS.js} +2 -2
  3. package/dist/channel-plugin-api.js +1 -1
  4. package/dist/{channel.runtime-CrqKcXaU.js → channel.runtime-BgUhHAja.js} +3 -3
  5. package/dist/{drive-8o3Omlnd.js → drive-9UfpmY27.js} +15 -2
  6. package/dist/{monitor-_1eNsUVp.js → monitor-BayUOr_U.js} +1 -1
  7. package/dist/{monitor.account-BhoLA1Y0.js → monitor.account-DzZWj0ob.js} +92 -48
  8. package/dist/{send-B3kteMF8.js → send-BozRcrbz.js} +32 -24
  9. package/dist/setup-api.js +1 -1
  10. package/node_modules/@protobufjs/aspromise/LICENSE +26 -0
  11. package/node_modules/@protobufjs/aspromise/README.md +13 -0
  12. package/node_modules/{protobufjs/src/util/aspromise.d.ts → @protobufjs/aspromise/index.d.ts} +13 -13
  13. package/node_modules/{protobufjs/src/util/aspromise.js → @protobufjs/aspromise/index.js} +52 -52
  14. package/node_modules/@protobufjs/aspromise/package.json +21 -0
  15. package/node_modules/@protobufjs/aspromise/tests/index.js +130 -0
  16. package/node_modules/@protobufjs/base64/LICENSE +26 -0
  17. package/node_modules/@protobufjs/base64/README.md +19 -0
  18. package/node_modules/{protobufjs/src/util/base64.d.ts → @protobufjs/base64/index.d.ts} +32 -32
  19. package/node_modules/{protobufjs/src/util/base64.js → @protobufjs/base64/index.js} +139 -146
  20. package/node_modules/@protobufjs/base64/package.json +21 -0
  21. package/node_modules/@protobufjs/base64/tests/index.js +46 -0
  22. package/node_modules/@protobufjs/codegen/LICENSE +26 -0
  23. package/node_modules/@protobufjs/codegen/README.md +49 -0
  24. package/node_modules/{protobufjs/src/util/codegen.d.ts → @protobufjs/codegen/index.d.ts} +31 -31
  25. package/node_modules/{protobufjs/src/util/codegen.js → @protobufjs/codegen/index.js} +112 -113
  26. package/node_modules/@protobufjs/codegen/package.json +13 -0
  27. package/node_modules/@protobufjs/codegen/tests/index.js +13 -0
  28. package/node_modules/@protobufjs/eventemitter/CHANGELOG.md +8 -0
  29. package/node_modules/@protobufjs/eventemitter/LICENSE +26 -0
  30. package/node_modules/@protobufjs/eventemitter/README.md +22 -0
  31. package/node_modules/{protobufjs/src/util/eventemitter.d.ts → @protobufjs/eventemitter/index.d.ts} +45 -45
  32. package/node_modules/{protobufjs/src/util/eventemitter.js → @protobufjs/eventemitter/index.js} +86 -86
  33. package/node_modules/@protobufjs/eventemitter/package.json +21 -0
  34. package/node_modules/@protobufjs/eventemitter/tests/index.js +83 -0
  35. package/node_modules/@protobufjs/fetch/CHANGELOG.md +8 -0
  36. package/node_modules/@protobufjs/fetch/LICENSE +26 -0
  37. package/node_modules/@protobufjs/fetch/README.md +13 -0
  38. package/node_modules/{protobufjs/src/util/fetch.d.ts → @protobufjs/fetch/index.d.ts} +56 -56
  39. package/node_modules/{protobufjs/src/util/fetch.js → @protobufjs/fetch/index.js} +112 -112
  40. package/node_modules/@protobufjs/fetch/package.json +27 -0
  41. package/node_modules/@protobufjs/fetch/tests/data/file.txt +1 -0
  42. package/node_modules/@protobufjs/fetch/tests/index.js +158 -0
  43. package/node_modules/@protobufjs/fetch/util/fs.js +11 -0
  44. package/node_modules/@protobufjs/float/LICENSE +26 -0
  45. package/node_modules/@protobufjs/float/README.md +102 -0
  46. package/node_modules/@protobufjs/float/bench/index.js +87 -0
  47. package/node_modules/@protobufjs/float/bench/suite.js +46 -0
  48. package/node_modules/{protobufjs/src/util/float.js → @protobufjs/float/index.js} +335 -335
  49. package/node_modules/@protobufjs/float/package.json +26 -0
  50. package/node_modules/@protobufjs/float/tests/index.js +100 -0
  51. package/node_modules/@protobufjs/inquire/CHANGELOG.md +8 -0
  52. package/node_modules/@protobufjs/inquire/LICENSE +26 -0
  53. package/node_modules/@protobufjs/inquire/README.md +13 -0
  54. package/node_modules/{protobufjs/src/util/inquire.d.ts → @protobufjs/inquire/index.d.ts} +10 -10
  55. package/node_modules/{protobufjs/src/util/inquire.js → @protobufjs/inquire/index.js} +38 -38
  56. package/node_modules/@protobufjs/inquire/package.json +21 -0
  57. package/node_modules/@protobufjs/inquire/tests/data/array.js +1 -0
  58. package/node_modules/@protobufjs/inquire/tests/data/emptyArray.js +1 -0
  59. package/node_modules/@protobufjs/inquire/tests/data/emptyObject.js +1 -0
  60. package/node_modules/@protobufjs/inquire/tests/data/object.js +1 -0
  61. package/node_modules/@protobufjs/inquire/tests/index.js +20 -0
  62. package/node_modules/@protobufjs/path/LICENSE +26 -0
  63. package/node_modules/@protobufjs/path/README.md +19 -0
  64. package/node_modules/{protobufjs/src/util/path.d.ts → @protobufjs/path/index.d.ts} +22 -22
  65. package/node_modules/{protobufjs/src/util/path.js → @protobufjs/path/index.js} +65 -72
  66. package/node_modules/@protobufjs/path/package.json +21 -0
  67. package/node_modules/@protobufjs/path/tests/index.js +60 -0
  68. package/node_modules/@protobufjs/pool/.npmignore +3 -0
  69. package/node_modules/@protobufjs/pool/LICENSE +26 -0
  70. package/node_modules/@protobufjs/pool/README.md +13 -0
  71. package/node_modules/{protobufjs/src/util/pool.d.ts → @protobufjs/pool/index.d.ts} +32 -32
  72. package/node_modules/{protobufjs/src/util/pool.js → @protobufjs/pool/index.js} +48 -48
  73. package/node_modules/@protobufjs/pool/package.json +21 -0
  74. package/node_modules/@protobufjs/pool/tests/index.js +33 -0
  75. package/node_modules/@protobufjs/utf8/LICENSE +26 -0
  76. package/node_modules/@protobufjs/utf8/README.md +20 -0
  77. package/node_modules/{protobufjs/src/util/utf8.d.ts → @protobufjs/utf8/index.d.ts} +24 -24
  78. package/node_modules/{protobufjs/src/util/utf8.js → @protobufjs/utf8/index.js} +104 -130
  79. package/node_modules/@protobufjs/utf8/package.json +21 -0
  80. package/node_modules/@protobufjs/utf8/tests/data/surrogate_pair_bug.txt +207 -0
  81. package/node_modules/@protobufjs/utf8/tests/data/utf8.txt +216 -0
  82. package/node_modules/@protobufjs/utf8/tests/index.js +74 -0
  83. package/node_modules/@types/node/LICENSE +21 -0
  84. package/node_modules/@types/node/README.md +15 -0
  85. package/node_modules/@types/node/assert/strict.d.ts +59 -0
  86. package/node_modules/@types/node/assert.d.ts +950 -0
  87. package/node_modules/@types/node/async_hooks.d.ts +711 -0
  88. package/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  89. package/node_modules/@types/node/buffer.d.ts +1765 -0
  90. package/node_modules/@types/node/child_process.d.ts +1366 -0
  91. package/node_modules/@types/node/cluster.d.ts +432 -0
  92. package/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  93. package/node_modules/@types/node/console.d.ts +93 -0
  94. package/node_modules/@types/node/constants.d.ts +14 -0
  95. package/node_modules/@types/node/crypto.d.ts +4058 -0
  96. package/node_modules/@types/node/dgram.d.ts +537 -0
  97. package/node_modules/@types/node/diagnostics_channel.d.ts +552 -0
  98. package/node_modules/@types/node/dns/promises.d.ts +497 -0
  99. package/node_modules/@types/node/dns.d.ts +876 -0
  100. package/node_modules/@types/node/domain.d.ts +150 -0
  101. package/node_modules/@types/node/events.d.ts +1008 -0
  102. package/node_modules/@types/node/fs/promises.d.ts +1468 -0
  103. package/node_modules/@types/node/fs.d.ts +4780 -0
  104. package/node_modules/@types/node/globals.d.ts +150 -0
  105. package/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  106. package/node_modules/@types/node/http.d.ts +2147 -0
  107. package/node_modules/@types/node/http2.d.ts +2485 -0
  108. package/node_modules/@types/node/https.d.ts +400 -0
  109. package/node_modules/@types/node/index.d.ts +117 -0
  110. package/node_modules/@types/node/inspector/promises.d.ts +35 -0
  111. package/node_modules/@types/node/inspector.d.ts +264 -0
  112. package/node_modules/@types/node/inspector.generated.d.ts +4406 -0
  113. package/node_modules/@types/node/module.d.ts +755 -0
  114. package/node_modules/@types/node/net.d.ts +970 -0
  115. package/node_modules/@types/node/os.d.ts +498 -0
  116. package/node_modules/@types/node/package.json +155 -0
  117. package/node_modules/@types/node/path/posix.d.ts +8 -0
  118. package/node_modules/@types/node/path/win32.d.ts +8 -0
  119. package/node_modules/@types/node/path.d.ts +178 -0
  120. package/node_modules/@types/node/perf_hooks.d.ts +612 -0
  121. package/node_modules/@types/node/process.d.ts +2204 -0
  122. package/node_modules/@types/node/punycode.d.ts +89 -0
  123. package/node_modules/@types/node/querystring.d.ts +139 -0
  124. package/node_modules/@types/node/quic.d.ts +897 -0
  125. package/node_modules/@types/node/readline/promises.d.ts +158 -0
  126. package/node_modules/@types/node/readline.d.ts +507 -0
  127. package/node_modules/@types/node/repl.d.ts +420 -0
  128. package/node_modules/@types/node/sea.d.ts +47 -0
  129. package/node_modules/@types/node/sqlite.d.ts +1068 -0
  130. package/node_modules/@types/node/stream/consumers.d.ts +114 -0
  131. package/node_modules/@types/node/stream/iter.d.ts +301 -0
  132. package/node_modules/@types/node/stream/promises.d.ts +211 -0
  133. package/node_modules/@types/node/stream/web.d.ts +300 -0
  134. package/node_modules/@types/node/stream.d.ts +1774 -0
  135. package/node_modules/@types/node/string_decoder.d.ts +27 -0
  136. package/node_modules/@types/node/test/reporters.d.ts +59 -0
  137. package/node_modules/@types/node/test.d.ts +2279 -0
  138. package/node_modules/@types/node/timers/promises.d.ts +93 -0
  139. package/node_modules/@types/node/timers.d.ts +149 -0
  140. package/node_modules/@types/node/tls.d.ts +1193 -0
  141. package/node_modules/@types/node/trace_events.d.ts +103 -0
  142. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  143. package/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  144. package/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  145. package/node_modules/@types/node/ts5.6/index.d.ts +119 -0
  146. package/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  147. package/node_modules/@types/node/ts5.7/index.d.ts +119 -0
  148. package/node_modules/@types/node/tty.d.ts +225 -0
  149. package/node_modules/@types/node/url.d.ts +556 -0
  150. package/node_modules/@types/node/util/types.d.ts +558 -0
  151. package/node_modules/@types/node/util.d.ts +1677 -0
  152. package/node_modules/@types/node/v8.d.ts +980 -0
  153. package/node_modules/@types/node/vm.d.ts +1136 -0
  154. package/node_modules/@types/node/wasi.d.ts +131 -0
  155. package/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  156. package/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  157. package/node_modules/@types/node/web-globals/console.d.ts +9 -0
  158. package/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  159. package/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  160. package/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  161. package/node_modules/@types/node/web-globals/events.d.ts +106 -0
  162. package/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  163. package/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  164. package/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  165. package/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  166. package/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  167. package/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  168. package/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  169. package/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  170. package/node_modules/@types/node/web-globals/url.d.ts +24 -0
  171. package/node_modules/@types/node/worker_threads.d.ts +671 -0
  172. package/node_modules/@types/node/zlib/iter.d.ts +131 -0
  173. package/node_modules/@types/node/zlib.d.ts +589 -0
  174. package/node_modules/protobufjs/README.md +556 -263
  175. package/node_modules/protobufjs/dist/light/protobuf.js +1569 -1919
  176. package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  177. package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  178. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  179. package/node_modules/protobufjs/dist/minimal/protobuf.js +906 -1132
  180. package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  181. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
  182. package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  183. package/node_modules/protobufjs/dist/protobuf.js +1576 -1993
  184. package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  185. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  186. package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  187. package/node_modules/protobufjs/ext/descriptor/README.md +70 -3
  188. package/node_modules/protobufjs/ext/descriptor/index.d.ts +193 -0
  189. package/node_modules/protobufjs/ext/descriptor/index.js +1185 -1
  190. package/node_modules/protobufjs/ext/descriptor/test.js +54 -0
  191. package/node_modules/protobufjs/index.d.ts +720 -834
  192. package/node_modules/protobufjs/package.json +44 -20
  193. package/node_modules/protobufjs/src/converter.js +36 -60
  194. package/node_modules/protobufjs/src/decoder.js +53 -124
  195. package/node_modules/protobufjs/src/encoder.js +2 -10
  196. package/node_modules/protobufjs/src/enum.js +3 -8
  197. package/node_modules/protobufjs/src/field.js +11 -13
  198. package/node_modules/protobufjs/src/index-light.js +1 -1
  199. package/node_modules/protobufjs/src/mapfield.js +0 -1
  200. package/node_modules/protobufjs/src/message.js +11 -5
  201. package/node_modules/protobufjs/src/method.js +4 -5
  202. package/node_modules/protobufjs/src/namespace.js +3 -10
  203. package/node_modules/protobufjs/src/object.js +20 -20
  204. package/node_modules/protobufjs/src/oneof.js +0 -3
  205. package/node_modules/protobufjs/src/parse.js +16 -78
  206. package/node_modules/protobufjs/src/reader.js +31 -136
  207. package/node_modules/protobufjs/src/reader_buffer.js +3 -24
  208. package/node_modules/protobufjs/src/root.js +3 -7
  209. package/node_modules/protobufjs/src/roots.js +1 -1
  210. package/node_modules/protobufjs/src/service.js +6 -13
  211. package/node_modules/protobufjs/src/tokenize.js +1 -6
  212. package/node_modules/protobufjs/src/type.js +30 -44
  213. package/node_modules/protobufjs/src/typescript.jsdoc +15 -0
  214. package/node_modules/protobufjs/src/util/minimal.js +12 -36
  215. package/node_modules/protobufjs/src/util.js +17 -6
  216. package/node_modules/protobufjs/src/verifier.js +6 -6
  217. package/node_modules/protobufjs/src/wrappers.js +1 -0
  218. package/node_modules/protobufjs/src/writer.js +16 -42
  219. package/node_modules/protobufjs/src/writer_buffer.js +1 -18
  220. package/node_modules/protobufjs/tsconfig.json +5 -3
  221. package/node_modules/undici-types/LICENSE +21 -0
  222. package/node_modules/undici-types/README.md +6 -0
  223. package/node_modules/undici-types/agent.d.ts +32 -0
  224. package/node_modules/undici-types/api.d.ts +43 -0
  225. package/node_modules/undici-types/balanced-pool.d.ts +30 -0
  226. package/node_modules/undici-types/cache-interceptor.d.ts +179 -0
  227. package/node_modules/undici-types/cache.d.ts +36 -0
  228. package/node_modules/undici-types/client-stats.d.ts +15 -0
  229. package/node_modules/undici-types/client.d.ts +123 -0
  230. package/node_modules/undici-types/connector.d.ts +36 -0
  231. package/node_modules/undici-types/content-type.d.ts +21 -0
  232. package/node_modules/undici-types/cookies.d.ts +30 -0
  233. package/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  234. package/node_modules/undici-types/dispatcher.d.ts +279 -0
  235. package/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  236. package/node_modules/undici-types/errors.d.ts +177 -0
  237. package/node_modules/undici-types/eventsource.d.ts +66 -0
  238. package/node_modules/undici-types/fetch.d.ts +211 -0
  239. package/node_modules/undici-types/formdata.d.ts +108 -0
  240. package/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  241. package/node_modules/undici-types/global-origin.d.ts +7 -0
  242. package/node_modules/undici-types/h2c-client.d.ts +73 -0
  243. package/node_modules/undici-types/handlers.d.ts +15 -0
  244. package/node_modules/undici-types/header.d.ts +160 -0
  245. package/node_modules/undici-types/index.d.ts +91 -0
  246. package/node_modules/undici-types/interceptors.d.ts +80 -0
  247. package/node_modules/undici-types/mock-agent.d.ts +68 -0
  248. package/node_modules/undici-types/mock-call-history.d.ts +111 -0
  249. package/node_modules/undici-types/mock-client.d.ts +27 -0
  250. package/node_modules/undici-types/mock-errors.d.ts +12 -0
  251. package/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  252. package/node_modules/undici-types/mock-pool.d.ts +27 -0
  253. package/node_modules/undici-types/package.json +55 -0
  254. package/node_modules/undici-types/patch.d.ts +29 -0
  255. package/node_modules/undici-types/pool-stats.d.ts +19 -0
  256. package/node_modules/undici-types/pool.d.ts +41 -0
  257. package/node_modules/undici-types/proxy-agent.d.ts +29 -0
  258. package/node_modules/undici-types/readable.d.ts +68 -0
  259. package/node_modules/undici-types/retry-agent.d.ts +8 -0
  260. package/node_modules/undici-types/retry-handler.d.ts +125 -0
  261. package/node_modules/undici-types/round-robin-pool.d.ts +41 -0
  262. package/node_modules/undici-types/snapshot-agent.d.ts +109 -0
  263. package/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
  264. package/node_modules/undici-types/util.d.ts +18 -0
  265. package/node_modules/undici-types/utility.d.ts +7 -0
  266. package/node_modules/undici-types/webidl.d.ts +347 -0
  267. package/node_modules/undici-types/websocket.d.ts +188 -0
  268. package/npm-shrinkwrap.json +95 -6
  269. package/package.json +4 -4
  270. package/skills/feishu-wiki/SKILL.md +10 -1
  271. package/node_modules/protobufjs/ext/README.md +0 -81
  272. package/node_modules/protobufjs/ext/descriptor.d.ts +0 -86
  273. package/node_modules/protobufjs/ext/descriptor.generated.d.ts +0 -409
  274. package/node_modules/protobufjs/ext/descriptor.js +0 -1266
  275. package/node_modules/protobufjs/ext/textformat.d.ts +0 -19
  276. package/node_modules/protobufjs/ext/textformat.generated.d.ts +0 -11
  277. package/node_modules/protobufjs/ext/textformat.js +0 -1235
  278. package/node_modules/protobufjs/google/protobuf/compiler/plugin.json +0 -126
  279. package/node_modules/protobufjs/google/protobuf/compiler/plugin.proto +0 -47
  280. package/node_modules/protobufjs/src/typescript.js +0 -25
  281. /package/node_modules/{protobufjs/src/util/float.d.ts → @protobufjs/float/index.d.ts} +0 -0
@@ -1,1266 +0,0 @@
1
- "use strict";
2
- var $protobuf = require("../light");
3
- module.exports = exports = $protobuf.descriptor = $protobuf.Root.fromJSON(require("../google/protobuf/descriptor.json")).lookup(".google.protobuf");
4
-
5
- var Namespace = $protobuf.Namespace,
6
- Root = $protobuf.Root,
7
- Enum = $protobuf.Enum,
8
- Type = $protobuf.Type,
9
- Field = $protobuf.Field,
10
- MapField = $protobuf.MapField,
11
- OneOf = $protobuf.OneOf,
12
- Service = $protobuf.Service,
13
- Method = $protobuf.Method,
14
- patterns = $protobuf.util.patterns;
15
-
16
- var numberRe = patterns.numberRe,
17
- typeRefRe = patterns.typeRefRe;
18
-
19
- // --- Root ---
20
-
21
- /**
22
- * Properties of a FileDescriptorSet message.
23
- * @interface IFileDescriptorSet
24
- * @property {IFileDescriptorProto[]} file Files
25
- */
26
-
27
- /**
28
- * Properties of a FileDescriptorProto message.
29
- * @interface IFileDescriptorProto
30
- * @property {string} [name] File name
31
- * @property {string} [package] Package
32
- * @property {*} [dependency] Not supported
33
- * @property {*} [publicDependency] Not supported
34
- * @property {*} [weakDependency] Not supported
35
- * @property {IDescriptorProto[]} [messageType] Nested message types
36
- * @property {IEnumDescriptorProto[]} [enumType] Nested enums
37
- * @property {IServiceDescriptorProto[]} [service] Nested services
38
- * @property {IFieldDescriptorProto[]} [extension] Nested extension fields
39
- * @property {IFileOptions} [options] Options
40
- * @property {*} [sourceCodeInfo] Not supported
41
- * @property {string} [syntax="proto2"] Syntax
42
- * @property {IEdition} [edition] Edition
43
- */
44
-
45
- /**
46
- * Values of the Edition enum.
47
- * @typedef IEdition
48
- * @type {number}
49
- * @property {number} EDITION_UNKNOWN=0
50
- * @property {number} EDITION_LEGACY=900
51
- * @property {number} EDITION_PROTO2=998
52
- * @property {number} EDITION_PROTO3=999
53
- * @property {number} EDITION_2023=1000
54
- * @property {number} EDITION_2024=1001
55
- * @property {number} EDITION_1_TEST_ONLY=1
56
- * @property {number} EDITION_2_TEST_ONLY=2
57
- * @property {number} EDITION_99997_TEST_ONLY=99997
58
- * @property {number} EDITION_99998_TEST_ONLY=99998
59
- * @property {number} EDITION_99998_TEST_ONLY=99999
60
- * @property {number} EDITION_MAX=2147483647
61
- */
62
-
63
- /**
64
- * Properties of a FileOptions message.
65
- * @interface IFileOptions
66
- * @property {string} [javaPackage]
67
- * @property {string} [javaOuterClassname]
68
- * @property {boolean} [javaMultipleFiles]
69
- * @property {boolean} [javaGenerateEqualsAndHash]
70
- * @property {boolean} [javaStringCheckUtf8]
71
- * @property {IFileOptionsOptimizeMode} [optimizeFor=1]
72
- * @property {string} [goPackage]
73
- * @property {boolean} [ccGenericServices]
74
- * @property {boolean} [javaGenericServices]
75
- * @property {boolean} [pyGenericServices]
76
- * @property {boolean} [deprecated]
77
- * @property {boolean} [ccEnableArenas]
78
- * @property {string} [objcClassPrefix]
79
- * @property {string} [csharpNamespace]
80
- */
81
-
82
- /**
83
- * Values of he FileOptions.OptimizeMode enum.
84
- * @typedef IFileOptionsOptimizeMode
85
- * @type {number}
86
- * @property {number} SPEED=1
87
- * @property {number} CODE_SIZE=2
88
- * @property {number} LITE_RUNTIME=3
89
- */
90
-
91
- /**
92
- * Creates a root from a descriptor set.
93
- * @param {IFileDescriptorSet|Reader|Uint8Array} descriptor Descriptor
94
- * @returns {Root} Root instance
95
- */
96
- Root.fromDescriptor = function fromDescriptor(descriptor) {
97
-
98
- descriptor = decodeDescriptor(descriptor, exports.FileDescriptorSet);
99
-
100
- var root = new Root();
101
-
102
- if (descriptor.file) {
103
- var fileDescriptor,
104
- filePackage;
105
- for (var j = 0, i; j < descriptor.file.length; ++j) {
106
- filePackage = root;
107
- if ((fileDescriptor = descriptor.file[j])["package"] && fileDescriptor["package"].length)
108
- filePackage = root.define(fileDescriptor["package"]);
109
- var edition = editionFromDescriptor(fileDescriptor);
110
- if (fileDescriptor.name && fileDescriptor.name.length)
111
- root.files.push(filePackage.filename = fileDescriptor.name);
112
- if (fileDescriptor.messageType)
113
- for (i = 0; i < fileDescriptor.messageType.length; ++i)
114
- filePackage.add(Type.fromDescriptor(fileDescriptor.messageType[i], edition));
115
- if (fileDescriptor.enumType)
116
- for (i = 0; i < fileDescriptor.enumType.length; ++i)
117
- filePackage.add(Enum.fromDescriptor(fileDescriptor.enumType[i], edition));
118
- if (fileDescriptor.extension)
119
- for (i = 0; i < fileDescriptor.extension.length; ++i)
120
- filePackage.add(Field.fromDescriptor(fileDescriptor.extension[i], edition));
121
- if (fileDescriptor.service)
122
- for (i = 0; i < fileDescriptor.service.length; ++i)
123
- filePackage.add(Service.fromDescriptor(fileDescriptor.service[i], edition));
124
- var opts = fromDescriptorOptions(fileDescriptor.options, exports.FileOptions);
125
- if (opts) {
126
- var ks = Object.keys(opts);
127
- for (i = 0; i < ks.length; ++i)
128
- filePackage.setOption(ks[i], opts[ks[i]]);
129
- }
130
- }
131
- }
132
-
133
- return root.resolveAll();
134
- };
135
-
136
- /**
137
- * Converts a root to a descriptor set.
138
- * @returns {Message<IFileDescriptorSet>} Descriptor
139
- * @param {string} [edition="proto2"] The syntax or edition to use
140
- */
141
- Root.prototype.toDescriptor = function toDescriptor(edition) {
142
- var set = exports.FileDescriptorSet.create();
143
- Root_toDescriptorRecursive(this, set.file, edition);
144
- return set;
145
- };
146
-
147
- // Traverses a namespace and assembles the descriptor set
148
- function Root_toDescriptorRecursive(ns, files, edition) {
149
-
150
- // Create a new file
151
- var file = exports.FileDescriptorProto.create({ name: ns.filename || (ns.fullName.substring(1).replace(/\./g, "_") || "root") + ".proto" });
152
- editionToDescriptor(edition, file);
153
- if (!(ns instanceof Root))
154
- file["package"] = ns.fullName.substring(1);
155
-
156
- // Add nested types
157
- for (var i = 0, nested; i < ns.nestedArray.length; ++i)
158
- if ((nested = ns._nestedArray[i]) instanceof Type)
159
- file.messageType.push(nested.toDescriptor(edition));
160
- else if (nested instanceof Enum)
161
- file.enumType.push(nested.toDescriptor());
162
- else if (nested instanceof Field)
163
- file.extension.push(nested.toDescriptor(edition));
164
- else if (nested instanceof Service)
165
- file.service.push(nested.toDescriptor());
166
- else if (nested instanceof /* plain */ Namespace)
167
- Root_toDescriptorRecursive(nested, files, edition); // requires new file
168
-
169
- // Keep package-level options
170
- file.options = toDescriptorOptions(ns.options, exports.FileOptions);
171
-
172
- // And keep the file only if there is at least one nested object
173
- if (file.messageType.length + file.enumType.length + file.extension.length + file.service.length)
174
- files.push(file);
175
- }
176
-
177
- // --- Type ---
178
-
179
- /**
180
- * Properties of a DescriptorProto message.
181
- * @interface IDescriptorProto
182
- * @property {string} [name] Message type name
183
- * @property {IFieldDescriptorProto[]} [field] Fields
184
- * @property {IFieldDescriptorProto[]} [extension] Extension fields
185
- * @property {IDescriptorProto[]} [nestedType] Nested message types
186
- * @property {IEnumDescriptorProto[]} [enumType] Nested enums
187
- * @property {IDescriptorProtoExtensionRange[]} [extensionRange] Extension ranges
188
- * @property {IOneofDescriptorProto[]} [oneofDecl] Oneofs
189
- * @property {IMessageOptions} [options] Not supported
190
- * @property {IDescriptorProtoReservedRange[]} [reservedRange] Reserved ranges
191
- * @property {string[]} [reservedName] Reserved names
192
- */
193
-
194
- /**
195
- * Properties of a MessageOptions message.
196
- * @interface IMessageOptions
197
- * @property {boolean} [mapEntry=false] Whether this message is a map entry
198
- */
199
-
200
- /**
201
- * Properties of an ExtensionRange message.
202
- * @interface IDescriptorProtoExtensionRange
203
- * @property {number} [start] Start field id
204
- * @property {number} [end] End field id
205
- */
206
-
207
- /**
208
- * Properties of a ReservedRange message.
209
- * @interface IDescriptorProtoReservedRange
210
- * @property {number} [start] Start field id
211
- * @property {number} [end] End field id
212
- */
213
-
214
- var unnamedMessageIndex = 0;
215
-
216
- /**
217
- * Creates a type from a descriptor.
218
- *
219
- * Warning: this is not safe to use with editions protos, since it discards relevant file context.
220
- *
221
- * @param {IDescriptorProto|Reader|Uint8Array} descriptor Descriptor
222
- * @param {string} [edition="proto2"] The syntax or edition to use
223
- * @param {boolean} [nested=false] Whether or not this is a nested object
224
- * @param {number} [depth] Current nesting depth, defaults to `0`
225
- * @returns {Type} Type instance
226
- */
227
- Type.fromDescriptor = function fromDescriptor(descriptor, edition, nested, depth) {
228
- if (depth === undefined)
229
- depth = 0;
230
- if (depth > $protobuf.util.nestingLimit)
231
- throw Error("max depth exceeded");
232
- descriptor = decodeDescriptor(descriptor, exports.DescriptorProto);
233
-
234
- var type = new Type(descriptor.name.length ? descriptor.name : "Type" + unnamedMessageIndex++, fromDescriptorOptions(descriptor.options, exports.MessageOptions)),
235
- i,
236
- mapEntries = {};
237
-
238
- if (!nested)
239
- type._edition = edition;
240
-
241
- if (descriptor.nestedType)
242
- for (i = 0; i < descriptor.nestedType.length; ++i)
243
- if (descriptor.nestedType[i].options && descriptor.nestedType[i].options.mapEntry)
244
- mapEntries[descriptor.nestedType[i].name] = descriptor.nestedType[i];
245
-
246
- /* Oneofs */ if (descriptor.oneofDecl)
247
- for (i = 0; i < descriptor.oneofDecl.length; ++i)
248
- type.add(OneOf.fromDescriptor(descriptor.oneofDecl[i]));
249
- /* Fields */ if (descriptor.field)
250
- for (i = 0; i < descriptor.field.length; ++i) {
251
- var field = FieldBase_fromDescriptor(descriptor.field[i], edition, true, mapEntries);
252
- type.add(field);
253
- if (descriptor.field[i].hasOwnProperty("oneofIndex")) // eslint-disable-line no-prototype-builtins
254
- type.oneofsArray[descriptor.field[i].oneofIndex].add(field);
255
- }
256
- /* Extension fields */ if (descriptor.extension)
257
- for (i = 0; i < descriptor.extension.length; ++i)
258
- type.add(Field.fromDescriptor(descriptor.extension[i], edition, true));
259
- /* Nested types */ if (descriptor.nestedType)
260
- for (i = 0; i < descriptor.nestedType.length; ++i) {
261
- if (descriptor.nestedType[i].options && descriptor.nestedType[i].options.mapEntry)
262
- continue;
263
- type.add(Type.fromDescriptor(descriptor.nestedType[i], edition, true, depth + 1));
264
- }
265
- /* Nested enums */ if (descriptor.enumType)
266
- for (i = 0; i < descriptor.enumType.length; ++i)
267
- type.add(Enum.fromDescriptor(descriptor.enumType[i], edition, true));
268
- /* Extension ranges */ if (descriptor.extensionRange && descriptor.extensionRange.length) {
269
- type.extensions = [];
270
- for (i = 0; i < descriptor.extensionRange.length; ++i)
271
- type.extensions.push([ descriptor.extensionRange[i].start, descriptor.extensionRange[i].end ]);
272
- }
273
- /* Reserved... */ if (descriptor.reservedRange && descriptor.reservedRange.length || descriptor.reservedName && descriptor.reservedName.length) {
274
- type.reserved = [];
275
- /* Ranges */ if (descriptor.reservedRange)
276
- for (i = 0; i < descriptor.reservedRange.length; ++i)
277
- type.reserved.push([ descriptor.reservedRange[i].start, descriptor.reservedRange[i].end ]);
278
- /* Names */ if (descriptor.reservedName)
279
- for (i = 0; i < descriptor.reservedName.length; ++i)
280
- type.reserved.push(descriptor.reservedName[i]);
281
- }
282
-
283
- return type;
284
- };
285
-
286
- /**
287
- * Converts a type to a descriptor.
288
- * @returns {Message<IDescriptorProto>} Descriptor
289
- * @param {string} [edition="proto2"] The syntax or edition to use
290
- */
291
- Type.prototype.toDescriptor = function toDescriptor(edition) {
292
- var descriptor = exports.DescriptorProto.create({ name: this.name }),
293
- i;
294
-
295
- /* Fields */ for (i = 0; i < this.fieldsArray.length; ++i) {
296
- var fieldDescriptor;
297
- descriptor.field.push(fieldDescriptor = this._fieldsArray[i].toDescriptor(edition));
298
- if (this._fieldsArray[i] instanceof MapField) { // map fields are repeated FieldNameEntry
299
- var keyType = toDescriptorType(this._fieldsArray[i].keyType, this._fieldsArray[i].resolvedKeyType, false),
300
- valueType = toDescriptorType(this._fieldsArray[i].type, this._fieldsArray[i].resolvedType, false),
301
- valueTypeName = valueType === /* type */ 11 || valueType === /* enum */ 14
302
- ? this._fieldsArray[i].resolvedType && shortname(this.parent, this._fieldsArray[i].resolvedType) || this._fieldsArray[i].type
303
- : undefined;
304
- descriptor.nestedType.push(exports.DescriptorProto.create({
305
- name: fieldDescriptor.typeName,
306
- field: [
307
- exports.FieldDescriptorProto.create({ name: "key", number: 1, label: 1, type: keyType }), // can't reference a type or enum
308
- exports.FieldDescriptorProto.create({ name: "value", number: 2, label: 1, type: valueType, typeName: valueTypeName })
309
- ],
310
- options: exports.MessageOptions.create({ mapEntry: true })
311
- }));
312
- }
313
- }
314
- /* Oneofs */ for (i = 0; i < this.oneofsArray.length; ++i)
315
- descriptor.oneofDecl.push(this._oneofsArray[i].toDescriptor());
316
- /* Nested... */ for (i = 0; i < this.nestedArray.length; ++i) {
317
- /* Extension fields */ if (this._nestedArray[i] instanceof Field)
318
- descriptor.field.push(this._nestedArray[i].toDescriptor(edition));
319
- /* Types */ else if (this._nestedArray[i] instanceof Type)
320
- descriptor.nestedType.push(this._nestedArray[i].toDescriptor(edition));
321
- /* Enums */ else if (this._nestedArray[i] instanceof Enum)
322
- descriptor.enumType.push(this._nestedArray[i].toDescriptor());
323
- // plain nested namespaces become packages instead in Root#toDescriptor
324
- }
325
- /* Extension ranges */ if (this.extensions)
326
- for (i = 0; i < this.extensions.length; ++i)
327
- descriptor.extensionRange.push(exports.DescriptorProto.ExtensionRange.create({ start: this.extensions[i][0], end: this.extensions[i][1] }));
328
- /* Reserved... */ if (this.reserved)
329
- for (i = 0; i < this.reserved.length; ++i)
330
- /* Names */ if (typeof this.reserved[i] === "string")
331
- descriptor.reservedName.push(this.reserved[i]);
332
- /* Ranges */ else
333
- descriptor.reservedRange.push(exports.DescriptorProto.ReservedRange.create({ start: this.reserved[i][0], end: this.reserved[i][1] }));
334
-
335
- descriptor.options = toDescriptorOptions(this.options, exports.MessageOptions);
336
-
337
- return descriptor;
338
- };
339
-
340
- // --- FieldBase ---
341
-
342
- function FieldBase_fromDescriptor(descriptor, edition, nested, mapEntries) {
343
- var entryName = descriptor.typeName && descriptor.typeName.substring(descriptor.typeName.lastIndexOf(".") + 1),
344
- mapEntry = descriptor.label === 3 && descriptor.type === 11 && entryName
345
- ? mapEntries[entryName]
346
- : null;
347
-
348
- return mapEntry
349
- ? MapField_fromDescriptor(descriptor, mapEntry)
350
- : Field.fromDescriptor(descriptor, edition, nested);
351
- }
352
-
353
- // --- Field ---
354
-
355
- /**
356
- * Properties of a FieldDescriptorProto message.
357
- * @interface IFieldDescriptorProto
358
- * @property {string} [name] Field name
359
- * @property {number} [number] Field id
360
- * @property {IFieldDescriptorProtoLabel} [label] Field rule
361
- * @property {IFieldDescriptorProtoType} [type] Field basic type
362
- * @property {string} [typeName] Field type name
363
- * @property {string} [extendee] Extended type name
364
- * @property {string} [defaultValue] Literal default value
365
- * @property {number} [oneofIndex] Oneof index if part of a oneof
366
- * @property {*} [jsonName] Not supported
367
- * @property {IFieldOptions} [options] Field options
368
- * @property {boolean} [proto3Optional] Whether this is a proto3 optional field
369
- */
370
-
371
- /**
372
- * Values of the FieldDescriptorProto.Label enum.
373
- * @typedef IFieldDescriptorProtoLabel
374
- * @type {number}
375
- * @property {number} LABEL_OPTIONAL=1
376
- * @property {number} LABEL_REQUIRED=2
377
- * @property {number} LABEL_REPEATED=3
378
- */
379
-
380
- /**
381
- * Values of the FieldDescriptorProto.Type enum.
382
- * @typedef IFieldDescriptorProtoType
383
- * @type {number}
384
- * @property {number} TYPE_DOUBLE=1
385
- * @property {number} TYPE_FLOAT=2
386
- * @property {number} TYPE_INT64=3
387
- * @property {number} TYPE_UINT64=4
388
- * @property {number} TYPE_INT32=5
389
- * @property {number} TYPE_FIXED64=6
390
- * @property {number} TYPE_FIXED32=7
391
- * @property {number} TYPE_BOOL=8
392
- * @property {number} TYPE_STRING=9
393
- * @property {number} TYPE_GROUP=10
394
- * @property {number} TYPE_MESSAGE=11
395
- * @property {number} TYPE_BYTES=12
396
- * @property {number} TYPE_UINT32=13
397
- * @property {number} TYPE_ENUM=14
398
- * @property {number} TYPE_SFIXED32=15
399
- * @property {number} TYPE_SFIXED64=16
400
- * @property {number} TYPE_SINT32=17
401
- * @property {number} TYPE_SINT64=18
402
- */
403
-
404
- /**
405
- * Properties of a FieldOptions message.
406
- * @interface IFieldOptions
407
- * @property {boolean} [packed] Whether packed or not (defaults to `false` for proto2 and `true` for proto3)
408
- * @property {IFieldOptionsJSType} [jstype] JavaScript value type (not used by protobuf.js)
409
- */
410
-
411
- /**
412
- * Values of the FieldOptions.JSType enum.
413
- * @typedef IFieldOptionsJSType
414
- * @type {number}
415
- * @property {number} JS_NORMAL=0
416
- * @property {number} JS_STRING=1
417
- * @property {number} JS_NUMBER=2
418
- */
419
-
420
- /**
421
- * Creates a field from a descriptor.
422
- *
423
- * Warning: this is not safe to use with editions protos, since it discards relevant file context.
424
- *
425
- * @param {IFieldDescriptorProto|Reader|Uint8Array} descriptor Descriptor
426
- * @param {string} [edition="proto2"] The syntax or edition to use
427
- * @param {boolean} [nested=false] Whether or not this is a top-level object
428
- * @returns {Field} Field instance
429
- */
430
- Field.fromDescriptor = function fromDescriptor(descriptor, edition, nested) {
431
-
432
- descriptor = decodeDescriptor(descriptor, exports.FieldDescriptorProto);
433
-
434
- if (typeof descriptor.number !== "number")
435
- throw Error("missing field id");
436
-
437
- // Rewire field type
438
- var typeName = descriptor.typeName,
439
- fieldType;
440
- if (typeName != null && typeName !== "") {
441
- if (typeof typeName !== "string" || !typeRefRe.test(typeName))
442
- throw Error("illegal type name: " + typeName);
443
- fieldType = typeName;
444
- } else
445
- fieldType = fromDescriptorType(descriptor.type);
446
-
447
- // Rewire field rule
448
- var fieldRule;
449
- switch (descriptor.label) {
450
- // 0 is reserved for errors
451
- case 1: fieldRule = undefined; break;
452
- case 2: fieldRule = "required"; break;
453
- case 3: fieldRule = "repeated"; break;
454
- default: throw Error("illegal label: " + descriptor.label);
455
- }
456
-
457
- var extendee = descriptor.extendee;
458
- if (extendee != null && extendee !== "") {
459
- if (typeof extendee !== "string" || !typeRefRe.test(extendee))
460
- throw Error("illegal type name: " + extendee);
461
- } else
462
- extendee = undefined;
463
- var field = new Field(
464
- descriptor.name.length ? descriptor.name : "field" + descriptor.number,
465
- descriptor.number,
466
- fieldType,
467
- fieldRule,
468
- extendee
469
- );
470
-
471
- if (!nested)
472
- field._edition = edition;
473
-
474
- field.options = fromDescriptorOptions(descriptor.options, exports.FieldOptions);
475
- if (descriptor.proto3Optional || descriptor.proto3_optional)
476
- (field.options || (field.options = {})).proto3_optional = true;
477
-
478
- if (descriptor.defaultValue && descriptor.defaultValue.length) {
479
- var defaultValue = descriptor.defaultValue;
480
- switch (defaultValue) {
481
- case "true": case "TRUE":
482
- defaultValue = true;
483
- break;
484
- case "false": case "FALSE":
485
- defaultValue = false;
486
- break;
487
- default:
488
- var match = numberRe.exec(defaultValue);
489
- if (match)
490
- defaultValue = parseInt(defaultValue); // eslint-disable-line radix
491
- break;
492
- }
493
- field.setOption("default", defaultValue);
494
- }
495
-
496
- if (packableDescriptorType(descriptor.type)) {
497
- if (edition === "proto3") { // defaults to packed=true (internal preset is packed=true)
498
- if (descriptor.options && !descriptor.options.packed)
499
- field.setOption("packed", false);
500
- } else if ((!edition || edition === "proto2") && descriptor.options && descriptor.options.packed) // defaults to packed=false
501
- field.setOption("packed", true);
502
- }
503
-
504
- return field;
505
- };
506
-
507
- // --- MapField ---
508
-
509
- function MapField_fromDescriptor(descriptor, entryDescriptor) {
510
- function entryField(number) {
511
- if (entryDescriptor.field)
512
- for (var i = 0; i < entryDescriptor.field.length; ++i)
513
- if (entryDescriptor.field[i].number === number)
514
- return entryDescriptor.field[i];
515
- throw Error("invalid map entry descriptor: " + entryDescriptor.name);
516
- }
517
-
518
- var keyDescriptor = entryField(1),
519
- valueDescriptor = entryField(2),
520
- valueType = valueDescriptor.typeName && valueDescriptor.typeName.length
521
- ? valueDescriptor.typeName
522
- : fromDescriptorType(valueDescriptor.type);
523
-
524
- return new MapField(
525
- descriptor.name.length ? descriptor.name : "field" + descriptor.number,
526
- descriptor.number,
527
- fromDescriptorType(keyDescriptor.type),
528
- valueType,
529
- fromDescriptorOptions(descriptor.options, exports.FieldOptions)
530
- );
531
- }
532
-
533
- /**
534
- * Converts a field to a descriptor.
535
- * @returns {Message<IFieldDescriptorProto>} Descriptor
536
- * @param {string} [edition="proto2"] The syntax or edition to use
537
- */
538
- Field.prototype.toDescriptor = function toDescriptor(edition) {
539
- var descriptor = exports.FieldDescriptorProto.create({ name: this.name, number: this.id });
540
-
541
- if (this.map) {
542
-
543
- descriptor.type = 11; // message
544
- descriptor.typeName = $protobuf.util.ucFirst(this.name); // fieldName -> FieldNameEntry (built in Type#toDescriptor)
545
- descriptor.label = 3; // repeated
546
-
547
- } else {
548
-
549
- // Rewire field type
550
- switch (descriptor.type = toDescriptorType(this.type, this.resolve().resolvedType, this.delimited)) {
551
- case 10: // group
552
- case 11: // type
553
- case 14: // enum
554
- descriptor.typeName = this.resolvedType ? shortname(this.parent, this.resolvedType) : this.type;
555
- break;
556
- }
557
-
558
- // Rewire field rule
559
- if (this.rule === "repeated") {
560
- descriptor.label = 3;
561
- } else if (this.required && edition === "proto2") {
562
- descriptor.label = 2;
563
- } else {
564
- descriptor.label = 1;
565
- }
566
- }
567
-
568
- // Handle extension field
569
- descriptor.extendee = this.extensionField ? this.extensionField.parent.fullName : this.extend;
570
-
571
- // Handle part of oneof (only meaningful for message types)
572
- if (this.partOf && this.parent instanceof Type) {
573
- if ((descriptor.oneofIndex = this.parent.oneofsArray.indexOf(this.partOf)) < 0)
574
- throw Error("missing oneof");
575
- }
576
-
577
- if (this.options) {
578
- descriptor.options = toDescriptorOptions(this.options, exports.FieldOptions);
579
- if (this.options["default"] != null)
580
- descriptor.defaultValue = String(this.options["default"]);
581
- if (this.options.proto3_optional)
582
- descriptor.proto3Optional = true;
583
- }
584
-
585
- if (edition === "proto3") { // defaults to packed=true
586
- if (!this.packed)
587
- (descriptor.options || (descriptor.options = exports.FieldOptions.create())).packed = false;
588
- } else if ((!edition || edition === "proto2") && this.packed) // defaults to packed=false
589
- (descriptor.options || (descriptor.options = exports.FieldOptions.create())).packed = true;
590
-
591
- return descriptor;
592
- };
593
-
594
- // --- Enum ---
595
-
596
- /**
597
- * Properties of an EnumDescriptorProto message.
598
- * @interface IEnumDescriptorProto
599
- * @property {string} [name] Enum name
600
- * @property {IEnumValueDescriptorProto[]} [value] Enum values
601
- * @property {IEnumOptions} [options] Enum options
602
- */
603
-
604
- /**
605
- * Properties of an EnumValueDescriptorProto message.
606
- * @interface IEnumValueDescriptorProto
607
- * @property {string} [name] Name
608
- * @property {number} [number] Value
609
- * @property {IEnumValueOptions} [options] Enum value options
610
- */
611
-
612
- /**
613
- * Properties of an EnumValueOptions message.
614
- * @interface IEnumValueOptions
615
- * @property {boolean} [deprecated]
616
- * @property {IFeatureSet} [features]
617
- * @property {boolean} [debugRedact]
618
- * @property {*} [featureSupport]
619
- * @property {Array.<*>} [uninterpretedOption]
620
- */
621
-
622
- /**
623
- * Properties of an EnumOptions message.
624
- * @interface IEnumOptions
625
- * @property {boolean} [allowAlias] Whether aliases are allowed
626
- * @property {boolean} [deprecated]
627
- */
628
-
629
- /**
630
- * Properties of a FeatureSet message.
631
- * @interface IFeatureSet
632
- * @property {number} [fieldPresence]
633
- * @property {number} [enumType]
634
- * @property {number} [repeatedFieldEncoding]
635
- * @property {number} [utf8Validation]
636
- * @property {number} [messageEncoding]
637
- * @property {number} [jsonFormat]
638
- * @property {number} [enforceNamingStyle]
639
- * @property {number} [defaultSymbolVisibility]
640
- */
641
-
642
- var unnamedEnumIndex = 0;
643
-
644
- /**
645
- * Creates an enum from a descriptor.
646
- *
647
- * Warning: this is not safe to use with editions protos, since it discards relevant file context.
648
- *
649
- * @param {IEnumDescriptorProto|Reader|Uint8Array} descriptor Descriptor
650
- * @param {string} [edition="proto2"] The syntax or edition to use
651
- * @param {boolean} [nested=false] Whether or not this is a top-level object
652
- * @returns {Enum} Enum instance
653
- */
654
- Enum.fromDescriptor = function fromDescriptor(descriptor, edition, nested) {
655
-
656
- descriptor = decodeDescriptor(descriptor, exports.EnumDescriptorProto);
657
-
658
- // Construct values object
659
- var values = {},
660
- valuesOptions;
661
- if (descriptor.value)
662
- for (var i = 0; i < descriptor.value.length; ++i) {
663
- var name = descriptor.value[i].name,
664
- valueName = name && name.length ? name : "NAME" + (descriptor.value[i].number || 0),
665
- value = descriptor.value[i].number || 0,
666
- options = fromDescriptorOptions(descriptor.value[i].options, exports.EnumValueOptions);
667
- values[valueName] = value;
668
- if (options)
669
- (valuesOptions || (valuesOptions = {}))[valueName] = options;
670
- }
671
-
672
- var enm = new Enum(
673
- descriptor.name && descriptor.name.length ? descriptor.name : "Enum" + unnamedEnumIndex++,
674
- values,
675
- fromDescriptorOptions(descriptor.options, exports.EnumOptions),
676
- undefined,
677
- undefined,
678
- valuesOptions
679
- );
680
-
681
- if (!nested)
682
- enm._edition = edition;
683
-
684
- return enm;
685
- };
686
-
687
- /**
688
- * Converts an enum to a descriptor.
689
- * @returns {Message<IEnumDescriptorProto>} Descriptor
690
- */
691
- Enum.prototype.toDescriptor = function toDescriptor() {
692
-
693
- // Values
694
- var values = [];
695
- for (var i = 0, ks = Object.keys(this.values); i < ks.length; ++i)
696
- values.push(exports.EnumValueDescriptorProto.create({
697
- name: ks[i],
698
- number: this.values[ks[i]],
699
- options: this.valuesOptions && toDescriptorOptions(this.valuesOptions[ks[i]], exports.EnumValueOptions)
700
- }));
701
-
702
- return exports.EnumDescriptorProto.create({
703
- name: this.name,
704
- value: values,
705
- options: toDescriptorOptions(this.options, exports.EnumOptions)
706
- });
707
- };
708
-
709
- // --- OneOf ---
710
-
711
- /**
712
- * Properties of a OneofDescriptorProto message.
713
- * @interface IOneofDescriptorProto
714
- * @property {string} [name] Oneof name
715
- * @property {IOneofOptions} [options] Oneof options
716
- */
717
-
718
- /**
719
- * Properties of a OneofOptions message.
720
- * @interface IOneofOptions
721
- * @property {IFeatureSet} [features]
722
- * @property {Array.<*>} [uninterpretedOption]
723
- */
724
-
725
- var unnamedOneofIndex = 0;
726
-
727
- /**
728
- * Creates a oneof from a descriptor.
729
- *
730
- * Warning: this is not safe to use with editions protos, since it discards relevant file context.
731
- *
732
- * @param {IOneofDescriptorProto|Reader|Uint8Array} descriptor Descriptor
733
- * @returns {OneOf} OneOf instance
734
- */
735
- OneOf.fromDescriptor = function fromDescriptor(descriptor) {
736
-
737
- descriptor = decodeDescriptor(descriptor, exports.OneofDescriptorProto);
738
-
739
- return new OneOf(
740
- // unnamedOneOfIndex is global, not per type, because we have no ref to a type here
741
- descriptor.name && descriptor.name.length ? descriptor.name : "oneof" + unnamedOneofIndex++,
742
- fromDescriptorOptions(descriptor.options, exports.OneofOptions)
743
- );
744
- };
745
-
746
- /**
747
- * Converts a oneof to a descriptor.
748
- * @returns {Message<IOneofDescriptorProto>} Descriptor
749
- */
750
- OneOf.prototype.toDescriptor = function toDescriptor() {
751
- return exports.OneofDescriptorProto.create({
752
- name: this.name,
753
- options: toDescriptorOptions(this.options, exports.OneofOptions)
754
- });
755
- };
756
-
757
- // --- Service ---
758
-
759
- /**
760
- * Properties of a ServiceDescriptorProto message.
761
- * @interface IServiceDescriptorProto
762
- * @property {string} [name] Service name
763
- * @property {IMethodDescriptorProto[]} [method] Methods
764
- * @property {IServiceOptions} [options] Options
765
- */
766
-
767
- /**
768
- * Properties of a ServiceOptions message.
769
- * @interface IServiceOptions
770
- * @property {boolean} [deprecated]
771
- */
772
-
773
- var unnamedServiceIndex = 0;
774
-
775
- /**
776
- * Creates a service from a descriptor.
777
- *
778
- * Warning: this is not safe to use with editions protos, since it discards relevant file context.
779
- *
780
- * @param {IServiceDescriptorProto|Reader|Uint8Array} descriptor Descriptor
781
- * @param {string} [edition="proto2"] The syntax or edition to use
782
- * @param {boolean} [nested=false] Whether or not this is a top-level object
783
- * @returns {Service} Service instance
784
- */
785
- Service.fromDescriptor = function fromDescriptor(descriptor, edition, nested) {
786
-
787
- descriptor = decodeDescriptor(descriptor, exports.ServiceDescriptorProto);
788
-
789
- var service = new Service(descriptor.name && descriptor.name.length ? descriptor.name : "Service" + unnamedServiceIndex++, fromDescriptorOptions(descriptor.options, exports.ServiceOptions));
790
- if (!nested)
791
- service._edition = edition;
792
- if (descriptor.method)
793
- for (var i = 0; i < descriptor.method.length; ++i)
794
- service.add(Method.fromDescriptor(descriptor.method[i]));
795
-
796
- return service;
797
- };
798
-
799
- /**
800
- * Converts a service to a descriptor.
801
- * @returns {Message<IServiceDescriptorProto>} Descriptor
802
- */
803
- Service.prototype.toDescriptor = function toDescriptor() {
804
-
805
- // Methods
806
- var methods = [];
807
- for (var i = 0; i < this.methodsArray.length; ++i)
808
- methods.push(this._methodsArray[i].toDescriptor());
809
-
810
- return exports.ServiceDescriptorProto.create({
811
- name: this.name,
812
- method: methods,
813
- options: toDescriptorOptions(this.options, exports.ServiceOptions)
814
- });
815
- };
816
-
817
- // --- Method ---
818
-
819
- /**
820
- * Properties of a MethodDescriptorProto message.
821
- * @interface IMethodDescriptorProto
822
- * @property {string} [name] Method name
823
- * @property {string} [inputType] Request type name
824
- * @property {string} [outputType] Response type name
825
- * @property {IMethodOptions} [options] Not supported
826
- * @property {boolean} [clientStreaming=false] Whether requests are streamed
827
- * @property {boolean} [serverStreaming=false] Whether responses are streamed
828
- */
829
-
830
- /**
831
- * Properties of a MethodOptions message.
832
- *
833
- * Warning: this is not safe to use with editions protos, since it discards relevant file context.
834
- *
835
- * @interface IMethodOptions
836
- * @property {boolean} [deprecated]
837
- */
838
-
839
- var unnamedMethodIndex = 0;
840
-
841
- /**
842
- * Creates a method from a descriptor.
843
- * @param {IMethodDescriptorProto|Reader|Uint8Array} descriptor Descriptor
844
- * @returns {Method} Reflected method instance
845
- */
846
- Method.fromDescriptor = function fromDescriptor(descriptor) {
847
-
848
- descriptor = decodeDescriptor(descriptor, exports.MethodDescriptorProto);
849
-
850
- var inputType = descriptor.inputType,
851
- outputType = descriptor.outputType;
852
-
853
- if (inputType != null && inputType !== "") {
854
- if (typeof inputType !== "string" || !typeRefRe.test(inputType))
855
- throw Error("illegal type name: " + inputType);
856
- }
857
- if (outputType != null && outputType !== "") {
858
- if (typeof outputType !== "string" || !typeRefRe.test(outputType))
859
- throw Error("illegal type name: " + outputType);
860
- }
861
-
862
- return new Method(
863
- // unnamedMethodIndex is global, not per service, because we have no ref to a service here
864
- descriptor.name && descriptor.name.length ? descriptor.name : "Method" + unnamedMethodIndex++,
865
- "rpc",
866
- inputType,
867
- outputType,
868
- Boolean(descriptor.clientStreaming),
869
- Boolean(descriptor.serverStreaming),
870
- fromDescriptorOptions(descriptor.options, exports.MethodOptions)
871
- );
872
- };
873
-
874
- /**
875
- * Converts a method to a descriptor.
876
- * @returns {Message<IMethodDescriptorProto>} Descriptor
877
- */
878
- Method.prototype.toDescriptor = function toDescriptor() {
879
- return exports.MethodDescriptorProto.create({
880
- name: this.name,
881
- inputType: this.resolvedRequestType ? this.resolvedRequestType.fullName : this.requestType,
882
- outputType: this.resolvedResponseType ? this.resolvedResponseType.fullName : this.responseType,
883
- clientStreaming: this.requestStream,
884
- serverStreaming: this.responseStream,
885
- options: toDescriptorOptions(this.options, exports.MethodOptions)
886
- });
887
- };
888
-
889
- // --- utility ---
890
-
891
- // Converts a descriptor type to a protobuf.js basic type
892
- function fromDescriptorType(type) {
893
- switch (type) {
894
- // 0 is reserved for errors
895
- case 1: return "double";
896
- case 2: return "float";
897
- case 3: return "int64";
898
- case 4: return "uint64";
899
- case 5: return "int32";
900
- case 6: return "fixed64";
901
- case 7: return "fixed32";
902
- case 8: return "bool";
903
- case 9: return "string";
904
- case 12: return "bytes";
905
- case 13: return "uint32";
906
- case 15: return "sfixed32";
907
- case 16: return "sfixed64";
908
- case 17: return "sint32";
909
- case 18: return "sint64";
910
- }
911
- throw Error("illegal type: " + type);
912
- }
913
-
914
- // Tests if a descriptor type is packable
915
- function packableDescriptorType(type) {
916
- switch (type) {
917
- case 1: // double
918
- case 2: // float
919
- case 3: // int64
920
- case 4: // uint64
921
- case 5: // int32
922
- case 6: // fixed64
923
- case 7: // fixed32
924
- case 8: // bool
925
- case 13: // uint32
926
- case 14: // enum (!)
927
- case 15: // sfixed32
928
- case 16: // sfixed64
929
- case 17: // sint32
930
- case 18: // sint64
931
- return true;
932
- }
933
- return false;
934
- }
935
-
936
- // Converts a protobuf.js basic type to a descriptor type
937
- function toDescriptorType(type, resolvedType, delimited) {
938
- switch (type) {
939
- // 0 is reserved for errors
940
- case "double": return 1;
941
- case "float": return 2;
942
- case "int64": return 3;
943
- case "uint64": return 4;
944
- case "int32": return 5;
945
- case "fixed64": return 6;
946
- case "fixed32": return 7;
947
- case "bool": return 8;
948
- case "string": return 9;
949
- case "bytes": return 12;
950
- case "uint32": return 13;
951
- case "sfixed32": return 15;
952
- case "sfixed64": return 16;
953
- case "sint32": return 17;
954
- case "sint64": return 18;
955
- }
956
- if (resolvedType instanceof Enum)
957
- return 14;
958
- if (resolvedType instanceof Type)
959
- return delimited ? 10 : 11;
960
- throw Error("illegal type: " + type);
961
- }
962
-
963
- function fromDescriptorOptionsRecursive(obj, type) {
964
- var val = {};
965
- for (var i = 0, field, key; i < type.fieldsArray.length; ++i) {
966
- if ((key = (field = type._fieldsArray[i]).name) === "uninterpretedOption") continue;
967
- if (!Object.prototype.hasOwnProperty.call(obj, key)) continue;
968
-
969
- var newKey = underScore(key);
970
- if (field.resolvedType instanceof Type) {
971
- val[newKey] = fromDescriptorOptionsRecursive(obj[key], field.resolvedType);
972
- } else if(field.resolvedType instanceof Enum) {
973
- val[newKey] = field.resolvedType.valuesById[obj[key]];
974
- } else {
975
- val[newKey] = obj[key];
976
- }
977
- }
978
- return val;
979
- }
980
-
981
- // Converts descriptor options to an options object
982
- function fromDescriptorOptions(options, type) {
983
- if (!options)
984
- return undefined;
985
- return fromDescriptorOptionsRecursive(type.toObject(options), type);
986
- }
987
-
988
- function toDescriptorOptionsRecursive(obj, type) {
989
- var val = {};
990
- var keys = Object.keys(obj);
991
- for (var i = 0; i < keys.length; ++i) {
992
- var key = keys[i];
993
- var newKey = $protobuf.util.camelCase(key);
994
- if (!Object.prototype.hasOwnProperty.call(type.fields, newKey)) continue;
995
- var field = type.fields[newKey];
996
- if (field.resolvedType instanceof Type) {
997
- val[newKey] = toDescriptorOptionsRecursive(obj[key], field.resolvedType);
998
- } else {
999
- val[newKey] = obj[key];
1000
- }
1001
- if (field.repeated && !Array.isArray(val[newKey])) {
1002
- val[newKey] = [val[newKey]];
1003
- }
1004
- }
1005
- return val;
1006
- }
1007
-
1008
- // Converts an options object to descriptor options
1009
- function toDescriptorOptions(options, type) {
1010
- if (!options)
1011
- return undefined;
1012
- return type.fromObject(toDescriptorOptionsRecursive(options, type));
1013
- }
1014
-
1015
- // Decodes descriptor input supplied as either a reader or buffer.
1016
- function decodeDescriptor(descriptor, type) {
1017
- if (descriptor instanceof $protobuf.Reader || typeof descriptor.length === "number")
1018
- return type.decode(descriptor);
1019
- return descriptor;
1020
- }
1021
-
1022
- // Calculates the shortest relative path from `from` to `to`.
1023
- function shortname(from, to) {
1024
- var fromPath = from.fullName.split("."),
1025
- toPath = to.fullName.split("."),
1026
- i = 0,
1027
- j = 0,
1028
- k = toPath.length - 1;
1029
- if (!(from instanceof Root) && to instanceof Namespace)
1030
- while (i < fromPath.length && j < k && fromPath[i] === toPath[j]) {
1031
- var other = to.lookup(fromPath[i++], true);
1032
- if (other !== null && other !== to)
1033
- break;
1034
- ++j;
1035
- }
1036
- else
1037
- for (; i < fromPath.length && j < k && fromPath[i] === toPath[j]; ++i, ++j);
1038
- return toPath.slice(j).join(".");
1039
- }
1040
-
1041
- // copied here from cli/targets/proto.js
1042
- function underScore(str) {
1043
- return str.substring(0,1)
1044
- + str.substring(1)
1045
- .replace(/([A-Z])(?=[a-z]|$)/g, function($0, $1) { return "_" + $1.toLowerCase(); });
1046
- }
1047
-
1048
- function editionFromDescriptor(fileDescriptor) {
1049
- if (fileDescriptor.syntax === "editions") {
1050
- switch(fileDescriptor.edition) {
1051
- case exports.Edition.EDITION_2023:
1052
- return "2023";
1053
- case exports.Edition.EDITION_2024:
1054
- return "2024";
1055
- default:
1056
- throw new Error("Unsupported edition " + fileDescriptor.edition);
1057
- }
1058
- }
1059
- if (fileDescriptor.syntax === "proto3") {
1060
- return "proto3";
1061
- }
1062
- return "proto2";
1063
- }
1064
-
1065
- function editionToDescriptor(edition, fileDescriptor) {
1066
- if (!edition) return;
1067
- if (edition === "proto2" || edition === "proto3") {
1068
- fileDescriptor.syntax = edition;
1069
- } else {
1070
- fileDescriptor.syntax = "editions";
1071
- switch(edition) {
1072
- case "2023":
1073
- fileDescriptor.edition = exports.Edition.EDITION_2023;
1074
- break;
1075
- case "2024":
1076
- fileDescriptor.edition = exports.Edition.EDITION_2024;
1077
- break;
1078
- default:
1079
- throw new Error("Unsupported edition " + edition);
1080
- }
1081
- }
1082
- }
1083
-
1084
- // --- exports ---
1085
-
1086
- /**
1087
- * Reflected file descriptor set.
1088
- * @name FileDescriptorSet
1089
- * @type {$protobuf.Type}
1090
- * @const
1091
- */
1092
-
1093
- /**
1094
- * Reflected file descriptor proto.
1095
- * @name FileDescriptorProto
1096
- * @type {$protobuf.Type}
1097
- * @const
1098
- */
1099
-
1100
- /**
1101
- * Reflected descriptor proto.
1102
- * @name DescriptorProto
1103
- * @type {$protobuf.Type & {
1104
- * ExtensionRange: $protobuf.Type,
1105
- * ReservedRange: $protobuf.Type
1106
- * }}
1107
- * @const
1108
- */
1109
-
1110
- /**
1111
- * Reflected field descriptor proto.
1112
- * @name FieldDescriptorProto
1113
- * @type {$protobuf.Type & {
1114
- * Label: $protobuf.Enum,
1115
- * Type: $protobuf.Enum
1116
- * }}
1117
- * @const
1118
- */
1119
-
1120
- /**
1121
- * Reflected oneof descriptor proto.
1122
- * @name OneofDescriptorProto
1123
- * @type {$protobuf.Type}
1124
- * @const
1125
- */
1126
-
1127
- /**
1128
- * Reflected enum descriptor proto.
1129
- * @name EnumDescriptorProto
1130
- * @type {$protobuf.Type}
1131
- * @const
1132
- */
1133
-
1134
- /**
1135
- * Reflected service descriptor proto.
1136
- * @name ServiceDescriptorProto
1137
- * @type {$protobuf.Type}
1138
- * @const
1139
- */
1140
-
1141
- /**
1142
- * Reflected enum value descriptor proto.
1143
- * @name EnumValueDescriptorProto
1144
- * @type {$protobuf.Type}
1145
- * @const
1146
- */
1147
-
1148
- /**
1149
- * Reflected method descriptor proto.
1150
- * @name MethodDescriptorProto
1151
- * @type {$protobuf.Type}
1152
- * @const
1153
- */
1154
-
1155
- /**
1156
- * Reflected file options.
1157
- * @name FileOptions
1158
- * @type {$protobuf.Type & {
1159
- * OptimizeMode: $protobuf.Enum
1160
- * }}
1161
- * @const
1162
- */
1163
-
1164
- /**
1165
- * Reflected message options.
1166
- * @name MessageOptions
1167
- * @type {$protobuf.Type}
1168
- * @const
1169
- */
1170
-
1171
- /**
1172
- * Reflected field options.
1173
- * @name FieldOptions
1174
- * @type {$protobuf.Type & {
1175
- * CType: $protobuf.Enum,
1176
- * JSType: $protobuf.Enum
1177
- * }}
1178
- * @const
1179
- */
1180
-
1181
- /**
1182
- * Reflected oneof options.
1183
- * @name OneofOptions
1184
- * @type {$protobuf.Type}
1185
- * @const
1186
- */
1187
-
1188
- /**
1189
- * Reflected enum options.
1190
- * @name EnumOptions
1191
- * @type {$protobuf.Type}
1192
- * @const
1193
- */
1194
-
1195
- /**
1196
- * Reflected enum value options.
1197
- * @name EnumValueOptions
1198
- * @type {$protobuf.Type}
1199
- * @const
1200
- */
1201
-
1202
- /**
1203
- * Reflected service options.
1204
- * @name ServiceOptions
1205
- * @type {$protobuf.Type}
1206
- * @const
1207
- */
1208
-
1209
- /**
1210
- * Reflected method options.
1211
- * @name MethodOptions
1212
- * @type {$protobuf.Type}
1213
- * @const
1214
- */
1215
-
1216
- /**
1217
- * Reflected feature set.
1218
- * @name FeatureSet
1219
- * @type {$protobuf.Type & {
1220
- * FieldPresence: $protobuf.Enum,
1221
- * EnumType: $protobuf.Enum,
1222
- * RepeatedFieldEncoding: $protobuf.Enum,
1223
- * Utf8Validation: $protobuf.Enum,
1224
- * MessageEncoding: $protobuf.Enum,
1225
- * JsonFormat: $protobuf.Enum,
1226
- * EnforceNamingStyle: $protobuf.Enum,
1227
- * VisibilityFeature: $protobuf.Type
1228
- * }}
1229
- * @const
1230
- */
1231
-
1232
- /**
1233
- * Reflected feature set defaults.
1234
- * @name FeatureSetDefaults
1235
- * @type {$protobuf.Type & {
1236
- * FeatureSetEditionDefault: $protobuf.Type
1237
- * }}
1238
- * @const
1239
- */
1240
-
1241
- /**
1242
- * Reflected uninterpretet option.
1243
- * @name UninterpretedOption
1244
- * @type {$protobuf.Type & {
1245
- * NamePart: $protobuf.Type
1246
- * }}
1247
- * @const
1248
- */
1249
-
1250
- /**
1251
- * Reflected source code info.
1252
- * @name SourceCodeInfo
1253
- * @type {$protobuf.Type & {
1254
- * Location: $protobuf.Type
1255
- * }}
1256
- * @const
1257
- */
1258
-
1259
- /**
1260
- * Reflected generated code info.
1261
- * @name GeneratedCodeInfo
1262
- * @type {$protobuf.Type & {
1263
- * Annotation: $protobuf.Type
1264
- * }}
1265
- * @const
1266
- */