node-red-contrib-tak-registration 0.11.6 → 0.12.0

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 (369) hide show
  1. package/node_modules/@types/node/README.md +2 -2
  2. package/node_modules/@types/node/assert.d.ts +88 -44
  3. package/node_modules/@types/node/async_hooks.d.ts +17 -15
  4. package/node_modules/@types/node/buffer.d.ts +29 -29
  5. package/node_modules/@types/node/child_process.d.ts +38 -34
  6. package/node_modules/@types/node/cluster.d.ts +165 -19
  7. package/node_modules/@types/node/console.d.ts +64 -27
  8. package/node_modules/@types/node/crypto.d.ts +101 -65
  9. package/node_modules/@types/node/dgram.d.ts +14 -14
  10. package/node_modules/@types/node/diagnostics_channel.d.ts +12 -3
  11. package/node_modules/@types/node/dns/promises.d.ts +79 -28
  12. package/node_modules/@types/node/dns.d.ts +124 -69
  13. package/node_modules/@types/node/dom-events.d.ts +2 -0
  14. package/node_modules/@types/node/domain.d.ts +4 -4
  15. package/node_modules/@types/node/events.d.ts +115 -63
  16. package/node_modules/@types/node/fs/promises.d.ts +18 -12
  17. package/node_modules/@types/node/fs.d.ts +45 -39
  18. package/node_modules/@types/node/globals.d.ts +1 -0
  19. package/node_modules/@types/node/http.d.ts +69 -48
  20. package/node_modules/@types/node/http2.d.ts +83 -47
  21. package/node_modules/@types/node/https.d.ts +3 -3
  22. package/node_modules/@types/node/index.d.ts +1 -0
  23. package/node_modules/@types/node/inspector.d.ts +5 -6
  24. package/node_modules/@types/node/net.d.ts +58 -13
  25. package/node_modules/@types/node/os.d.ts +29 -12
  26. package/node_modules/@types/node/package.json +3 -15
  27. package/node_modules/@types/node/path.d.ts +1 -1
  28. package/node_modules/@types/node/perf_hooks.d.ts +308 -48
  29. package/node_modules/@types/node/process.d.ts +241 -48
  30. package/node_modules/@types/node/punycode.d.ts +4 -4
  31. package/node_modules/@types/node/querystring.d.ts +18 -6
  32. package/node_modules/@types/node/readline/promises.d.ts +9 -9
  33. package/node_modules/@types/node/readline.d.ts +21 -20
  34. package/node_modules/@types/node/repl.d.ts +10 -10
  35. package/node_modules/@types/node/sea.d.ts +153 -0
  36. package/node_modules/@types/node/stream/web.d.ts +3 -2
  37. package/node_modules/@types/node/stream.d.ts +62 -56
  38. package/node_modules/@types/node/string_decoder.d.ts +3 -3
  39. package/node_modules/@types/node/test.d.ts +350 -97
  40. package/node_modules/@types/node/timers/promises.d.ts +10 -6
  41. package/node_modules/@types/node/timers.d.ts +5 -5
  42. package/node_modules/@types/node/tls.d.ts +39 -32
  43. package/node_modules/@types/node/trace_events.d.ts +40 -25
  44. package/node_modules/@types/node/tty.d.ts +8 -8
  45. package/node_modules/@types/node/url.d.ts +15 -7
  46. package/node_modules/@types/node/util.d.ts +131 -22
  47. package/node_modules/@types/node/v8.d.ts +50 -6
  48. package/node_modules/@types/node/vm.d.ts +43 -22
  49. package/node_modules/@types/node/wasi.d.ts +12 -10
  50. package/node_modules/@types/node/worker_threads.d.ts +19 -16
  51. package/node_modules/@types/node/zlib.d.ts +16 -3
  52. package/node_modules/adm-zip/README.md +2 -1
  53. package/node_modules/adm-zip/adm-zip.js +46 -45
  54. package/node_modules/adm-zip/headers/entryHeader.js +14 -12
  55. package/node_modules/adm-zip/headers/mainHeader.js +1 -1
  56. package/node_modules/adm-zip/methods/inflater.js +6 -3
  57. package/node_modules/adm-zip/methods/zipcrypto.js +6 -2
  58. package/node_modules/adm-zip/package.json +2 -2
  59. package/node_modules/adm-zip/util/errors.js +1 -0
  60. package/node_modules/adm-zip/zipEntry.js +64 -43
  61. package/node_modules/adm-zip/zipFile.js +35 -35
  62. package/node_modules/axios/CHANGELOG.md +868 -759
  63. package/node_modules/axios/README.md +65 -17
  64. package/node_modules/axios/dist/axios.js +1330 -583
  65. package/node_modules/axios/dist/axios.js.map +1 -1
  66. package/node_modules/axios/dist/axios.min.js +1 -1
  67. package/node_modules/axios/dist/axios.min.js.map +1 -1
  68. package/node_modules/axios/dist/browser/axios.cjs +696 -316
  69. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  70. package/node_modules/axios/dist/esm/axios.js +696 -316
  71. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  72. package/node_modules/axios/dist/esm/axios.min.js +1 -1
  73. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  74. package/node_modules/axios/dist/node/axios.cjs +607 -257
  75. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  76. package/node_modules/axios/index.d.cts +5 -2
  77. package/node_modules/axios/index.d.ts +5 -2
  78. package/node_modules/axios/lib/adapters/adapters.js +3 -1
  79. package/node_modules/axios/lib/adapters/fetch.js +227 -0
  80. package/node_modules/axios/lib/adapters/http.js +1 -1
  81. package/node_modules/axios/lib/adapters/xhr.js +31 -101
  82. package/node_modules/axios/lib/core/Axios.js +17 -11
  83. package/node_modules/axios/lib/core/AxiosHeaders.js +4 -0
  84. package/node_modules/axios/lib/core/mergeConfig.js +1 -1
  85. package/node_modules/axios/lib/defaults/index.js +7 -5
  86. package/node_modules/axios/lib/env/data.js +1 -1
  87. package/node_modules/axios/lib/helpers/AxiosTransformStream.js +9 -8
  88. package/node_modules/axios/lib/helpers/composeSignals.js +46 -0
  89. package/node_modules/axios/lib/helpers/progressEventReducer.js +32 -0
  90. package/node_modules/axios/lib/helpers/resolveConfig.js +57 -0
  91. package/node_modules/axios/lib/helpers/throttle.js +5 -3
  92. package/node_modules/axios/lib/helpers/trackStream.js +55 -0
  93. package/node_modules/axios/lib/platform/common/utils.js +4 -1
  94. package/node_modules/axios/lib/utils.js +7 -2
  95. package/node_modules/axios/package.json +27 -26
  96. package/node_modules/fast-xml-parser/CHANGELOG.md +14 -0
  97. package/node_modules/fast-xml-parser/README.md +7 -14
  98. package/node_modules/fast-xml-parser/package.json +1 -1
  99. package/node_modules/fast-xml-parser/src/fxp.d.ts +4 -4
  100. package/node_modules/fast-xml-parser/src/v5/CharsSymbol.js +16 -0
  101. package/node_modules/fast-xml-parser/src/v5/EntitiesParser.js +107 -0
  102. package/node_modules/fast-xml-parser/src/v5/OptionsBuilder.js +64 -0
  103. package/node_modules/fast-xml-parser/src/v5/OutputBuilders/BaseOutputBuilder.js +71 -0
  104. package/node_modules/fast-xml-parser/src/v5/OutputBuilders/JsArrBuilder.js +103 -0
  105. package/node_modules/fast-xml-parser/src/v5/OutputBuilders/JsMinArrBuilder.js +102 -0
  106. package/node_modules/fast-xml-parser/src/v5/OutputBuilders/JsObjBuilder.js +156 -0
  107. package/node_modules/fast-xml-parser/src/v5/OutputBuilders/ParserOptionsBuilder.js +96 -0
  108. package/node_modules/fast-xml-parser/src/v5/Report.js +0 -0
  109. package/node_modules/fast-xml-parser/src/v5/TagPath.js +81 -0
  110. package/node_modules/fast-xml-parser/src/v5/TagPathMatcher.js +15 -0
  111. package/node_modules/fast-xml-parser/src/v5/XMLParser.js +85 -0
  112. package/node_modules/fast-xml-parser/src/v5/Xml2JsParser.js +237 -0
  113. package/node_modules/fast-xml-parser/src/v5/XmlPartReader.js +212 -0
  114. package/node_modules/fast-xml-parser/src/v5/XmlSpecialTagsReader.js +118 -0
  115. package/node_modules/fast-xml-parser/src/v5/inputSource/BufferSource.js +118 -0
  116. package/node_modules/fast-xml-parser/src/v5/inputSource/StringSource.js +123 -0
  117. package/node_modules/fast-xml-parser/src/v5/valueParsers/EntitiesParser.js +107 -0
  118. package/node_modules/fast-xml-parser/src/v5/valueParsers/booleanParser.js +23 -0
  119. package/node_modules/fast-xml-parser/src/v5/valueParsers/booleanParserExt.js +20 -0
  120. package/node_modules/fast-xml-parser/src/v5/valueParsers/currency.js +31 -0
  121. package/node_modules/fast-xml-parser/src/v5/valueParsers/join.js +14 -0
  122. package/node_modules/fast-xml-parser/src/v5/valueParsers/number.js +16 -0
  123. package/node_modules/fast-xml-parser/src/v5/valueParsers/trim.js +8 -0
  124. package/node_modules/fast-xml-parser/src/validator.js +2 -0
  125. package/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +13 -4
  126. package/node_modules/follow-redirects/index.js +1 -1
  127. package/node_modules/follow-redirects/package.json +1 -1
  128. package/node_modules/hasown/CHANGELOG.md +12 -0
  129. package/node_modules/hasown/index.d.ts +2 -2
  130. package/node_modules/hasown/package.json +5 -2
  131. package/node_modules/hasown/tsconfig.json +3 -46
  132. package/node_modules/object-is/.eslintrc +1 -1
  133. package/node_modules/object-is/.nycrc +0 -4
  134. package/node_modules/object-is/CHANGELOG.md +25 -0
  135. package/node_modules/object-is/README.md +20 -20
  136. package/node_modules/object-is/package.json +23 -14
  137. package/node_modules/protobufjs/LICENSE +39 -39
  138. package/node_modules/protobufjs/README.md +727 -740
  139. package/node_modules/protobufjs/dist/light/protobuf.js +6264 -6264
  140. package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  141. package/node_modules/protobufjs/dist/light/protobuf.min.js +2 -2
  142. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  143. package/node_modules/protobufjs/dist/minimal/protobuf.js +1928 -1928
  144. package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  145. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
  146. package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  147. package/node_modules/protobufjs/dist/protobuf.js +7978 -7961
  148. package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  149. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  150. package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  151. package/node_modules/protobufjs/ext/debug/README.md +4 -4
  152. package/node_modules/protobufjs/ext/debug/index.js +71 -71
  153. package/node_modules/protobufjs/ext/descriptor/README.md +72 -72
  154. package/node_modules/protobufjs/ext/descriptor/index.d.ts +191 -191
  155. package/node_modules/protobufjs/ext/descriptor/index.js +1052 -1052
  156. package/node_modules/protobufjs/ext/descriptor/test.js +54 -54
  157. package/node_modules/protobufjs/google/LICENSE +27 -27
  158. package/node_modules/protobufjs/google/README.md +1 -1
  159. package/node_modules/protobufjs/google/api/annotations.json +82 -82
  160. package/node_modules/protobufjs/google/api/annotations.proto +10 -10
  161. package/node_modules/protobufjs/google/api/http.json +85 -85
  162. package/node_modules/protobufjs/google/api/http.proto +30 -30
  163. package/node_modules/protobufjs/google/protobuf/api.json +117 -117
  164. package/node_modules/protobufjs/google/protobuf/api.proto +33 -33
  165. package/node_modules/protobufjs/google/protobuf/descriptor.json +738 -738
  166. package/node_modules/protobufjs/google/protobuf/descriptor.proto +286 -286
  167. package/node_modules/protobufjs/google/protobuf/source_context.json +19 -19
  168. package/node_modules/protobufjs/google/protobuf/source_context.proto +7 -7
  169. package/node_modules/protobufjs/google/protobuf/type.json +201 -201
  170. package/node_modules/protobufjs/google/protobuf/type.proto +89 -89
  171. package/node_modules/protobufjs/index.d.ts +2741 -2741
  172. package/node_modules/protobufjs/index.js +4 -4
  173. package/node_modules/protobufjs/light.d.ts +2 -2
  174. package/node_modules/protobufjs/light.js +3 -3
  175. package/node_modules/protobufjs/minimal.d.ts +2 -2
  176. package/node_modules/protobufjs/minimal.js +4 -4
  177. package/node_modules/protobufjs/package.json +111 -111
  178. package/node_modules/protobufjs/scripts/postinstall.js +32 -32
  179. package/node_modules/protobufjs/src/common.js +399 -399
  180. package/node_modules/protobufjs/src/converter.js +301 -301
  181. package/node_modules/protobufjs/src/decoder.js +129 -129
  182. package/node_modules/protobufjs/src/encoder.js +100 -100
  183. package/node_modules/protobufjs/src/enum.js +198 -198
  184. package/node_modules/protobufjs/src/field.js +377 -377
  185. package/node_modules/protobufjs/src/index-light.js +104 -104
  186. package/node_modules/protobufjs/src/index-minimal.js +36 -36
  187. package/node_modules/protobufjs/src/index.js +12 -12
  188. package/node_modules/protobufjs/src/mapfield.js +126 -126
  189. package/node_modules/protobufjs/src/message.js +138 -138
  190. package/node_modules/protobufjs/src/method.js +160 -160
  191. package/node_modules/protobufjs/src/namespace.js +433 -433
  192. package/node_modules/protobufjs/src/object.js +243 -243
  193. package/node_modules/protobufjs/src/oneof.js +203 -203
  194. package/node_modules/protobufjs/src/parse.js +889 -872
  195. package/node_modules/protobufjs/src/reader.js +416 -416
  196. package/node_modules/protobufjs/src/reader_buffer.js +51 -51
  197. package/node_modules/protobufjs/src/root.js +368 -368
  198. package/node_modules/protobufjs/src/roots.js +18 -18
  199. package/node_modules/protobufjs/src/rpc/service.js +142 -142
  200. package/node_modules/protobufjs/src/rpc.js +36 -36
  201. package/node_modules/protobufjs/src/service.js +167 -167
  202. package/node_modules/protobufjs/src/tokenize.js +416 -416
  203. package/node_modules/protobufjs/src/type.js +589 -589
  204. package/node_modules/protobufjs/src/types.js +196 -196
  205. package/node_modules/protobufjs/src/typescript.jsdoc +15 -15
  206. package/node_modules/protobufjs/src/util/longbits.js +200 -200
  207. package/node_modules/protobufjs/src/util/minimal.js +438 -438
  208. package/node_modules/protobufjs/src/util.js +212 -212
  209. package/node_modules/protobufjs/src/verifier.js +176 -176
  210. package/node_modules/protobufjs/src/wrappers.js +102 -102
  211. package/node_modules/protobufjs/src/writer.js +465 -465
  212. package/node_modules/protobufjs/src/writer_buffer.js +85 -85
  213. package/node_modules/protobufjs/tsconfig.json +7 -7
  214. package/node_modules/set-function-length/CHANGELOG.md +11 -0
  215. package/node_modules/set-function-length/env.d.ts +9 -6
  216. package/node_modules/set-function-length/env.js +1 -0
  217. package/node_modules/set-function-length/index.d.ts +6 -6
  218. package/node_modules/set-function-length/index.js +1 -3
  219. package/node_modules/set-function-length/package.json +11 -13
  220. package/node_modules/set-function-length/tsconfig.json +7 -57
  221. package/node_modules/uuid/CHANGELOG.md +18 -0
  222. package/node_modules/uuid/README.md +134 -16
  223. package/node_modules/uuid/dist/commonjs-browser/index.js +40 -15
  224. package/node_modules/uuid/dist/commonjs-browser/max.js +7 -0
  225. package/node_modules/uuid/dist/commonjs-browser/md5.js +30 -53
  226. package/node_modules/uuid/dist/commonjs-browser/native.js +3 -4
  227. package/node_modules/uuid/dist/commonjs-browser/nil.js +1 -2
  228. package/node_modules/uuid/dist/commonjs-browser/parse.js +14 -15
  229. package/node_modules/uuid/dist/commonjs-browser/regex.js +1 -2
  230. package/node_modules/uuid/dist/commonjs-browser/rng.js +2 -4
  231. package/node_modules/uuid/dist/commonjs-browser/sha1.js +27 -49
  232. package/node_modules/uuid/dist/commonjs-browser/stringify.js +10 -16
  233. package/node_modules/uuid/dist/commonjs-browser/v1.js +73 -49
  234. package/node_modules/uuid/dist/commonjs-browser/v1ToV6.js +26 -0
  235. package/node_modules/uuid/dist/commonjs-browser/v3.js +3 -8
  236. package/node_modules/uuid/dist/commonjs-browser/v35.js +15 -32
  237. package/node_modules/uuid/dist/commonjs-browser/v4.js +7 -18
  238. package/node_modules/uuid/dist/commonjs-browser/v5.js +3 -8
  239. package/node_modules/uuid/dist/commonjs-browser/v6.js +42 -0
  240. package/node_modules/uuid/dist/commonjs-browser/v6ToV1.js +26 -0
  241. package/node_modules/uuid/dist/commonjs-browser/v7.js +152 -0
  242. package/node_modules/uuid/dist/commonjs-browser/validate.js +2 -7
  243. package/node_modules/uuid/dist/commonjs-browser/version.js +2 -8
  244. package/node_modules/uuid/dist/esm-browser/index.js +9 -4
  245. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  246. package/node_modules/uuid/dist/esm-browser/md5.js +29 -50
  247. package/node_modules/uuid/dist/esm-browser/native.js +1 -1
  248. package/node_modules/uuid/dist/esm-browser/parse.js +12 -10
  249. package/node_modules/uuid/dist/esm-browser/regex.js +1 -1
  250. package/node_modules/uuid/dist/esm-browser/rng.js +3 -4
  251. package/node_modules/uuid/dist/esm-browser/sha1.js +26 -46
  252. package/node_modules/uuid/dist/esm-browser/stringify.js +9 -11
  253. package/node_modules/uuid/dist/esm-browser/v1.js +74 -44
  254. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +20 -0
  255. package/node_modules/uuid/dist/esm-browser/v3.js +1 -1
  256. package/node_modules/uuid/dist/esm-browser/v35.js +14 -25
  257. package/node_modules/uuid/dist/esm-browser/v4.js +5 -9
  258. package/node_modules/uuid/dist/esm-browser/v5.js +1 -1
  259. package/node_modules/uuid/dist/esm-browser/v6.js +36 -0
  260. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +20 -0
  261. package/node_modules/uuid/dist/esm-browser/v7.js +146 -0
  262. package/node_modules/uuid/dist/esm-browser/validate.js +0 -2
  263. package/node_modules/uuid/dist/esm-browser/version.js +0 -3
  264. package/node_modules/uuid/dist/esm-node/index.js +9 -4
  265. package/node_modules/uuid/dist/esm-node/max.js +1 -0
  266. package/node_modules/uuid/dist/esm-node/md5.js +1 -4
  267. package/node_modules/uuid/dist/esm-node/native.js +1 -1
  268. package/node_modules/uuid/dist/esm-node/parse.js +11 -9
  269. package/node_modules/uuid/dist/esm-node/regex.js +1 -1
  270. package/node_modules/uuid/dist/esm-node/rng.js +1 -3
  271. package/node_modules/uuid/dist/esm-node/sha1.js +1 -4
  272. package/node_modules/uuid/dist/esm-node/stringify.js +7 -9
  273. package/node_modules/uuid/dist/esm-node/v1.js +66 -36
  274. package/node_modules/uuid/dist/esm-node/v1ToV6.js +20 -0
  275. package/node_modules/uuid/dist/esm-node/v35.js +8 -19
  276. package/node_modules/uuid/dist/esm-node/v4.js +4 -8
  277. package/node_modules/uuid/dist/esm-node/v6.js +32 -0
  278. package/node_modules/uuid/dist/esm-node/v6ToV1.js +20 -0
  279. package/node_modules/uuid/dist/esm-node/v7.js +146 -0
  280. package/node_modules/uuid/dist/esm-node/validate.js +0 -2
  281. package/node_modules/uuid/dist/esm-node/version.js +0 -3
  282. package/node_modules/uuid/dist/index.js +40 -15
  283. package/node_modules/uuid/dist/max.js +7 -0
  284. package/node_modules/uuid/dist/md5-browser.js +8 -31
  285. package/node_modules/uuid/dist/md5.js +4 -10
  286. package/node_modules/uuid/dist/native-browser.js +2 -3
  287. package/node_modules/uuid/dist/native.js +5 -9
  288. package/node_modules/uuid/dist/nil.js +1 -2
  289. package/node_modules/uuid/dist/parse.js +13 -14
  290. package/node_modules/uuid/dist/regex.js +1 -2
  291. package/node_modules/uuid/dist/rng-browser.js +1 -3
  292. package/node_modules/uuid/dist/rng.js +3 -10
  293. package/node_modules/uuid/dist/sha1-browser.js +1 -23
  294. package/node_modules/uuid/dist/sha1.js +4 -10
  295. package/node_modules/uuid/dist/stringify.js +8 -14
  296. package/node_modules/uuid/dist/uuid-bin.js +12 -22
  297. package/node_modules/uuid/dist/v1.js +66 -42
  298. package/node_modules/uuid/dist/v1ToV6.js +26 -0
  299. package/node_modules/uuid/dist/v3.js +2 -7
  300. package/node_modules/uuid/dist/v35.js +11 -28
  301. package/node_modules/uuid/dist/v4.js +6 -17
  302. package/node_modules/uuid/dist/v5.js +2 -7
  303. package/node_modules/uuid/dist/v6.js +38 -0
  304. package/node_modules/uuid/dist/v6ToV1.js +26 -0
  305. package/node_modules/uuid/dist/v7.js +152 -0
  306. package/node_modules/uuid/dist/validate.js +2 -7
  307. package/node_modules/uuid/dist/version.js +2 -8
  308. package/node_modules/uuid/package.json +41 -34
  309. package/node_modules/uuid/wrapper.mjs +5 -0
  310. package/package.json +6 -6
  311. package/tak-ingest.js +1 -1
  312. package/tak-registration.js +8 -1
  313. package/node_modules/@types/node/ts4.8/assert/strict.d.ts +0 -8
  314. package/node_modules/@types/node/ts4.8/assert.d.ts +0 -996
  315. package/node_modules/@types/node/ts4.8/async_hooks.d.ts +0 -539
  316. package/node_modules/@types/node/ts4.8/buffer.d.ts +0 -2363
  317. package/node_modules/@types/node/ts4.8/child_process.d.ts +0 -1540
  318. package/node_modules/@types/node/ts4.8/cluster.d.ts +0 -432
  319. package/node_modules/@types/node/ts4.8/console.d.ts +0 -415
  320. package/node_modules/@types/node/ts4.8/constants.d.ts +0 -19
  321. package/node_modules/@types/node/ts4.8/crypto.d.ts +0 -4487
  322. package/node_modules/@types/node/ts4.8/dgram.d.ts +0 -596
  323. package/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +0 -545
  324. package/node_modules/@types/node/ts4.8/dns/promises.d.ts +0 -425
  325. package/node_modules/@types/node/ts4.8/dns.d.ts +0 -809
  326. package/node_modules/@types/node/ts4.8/dom-events.d.ts +0 -122
  327. package/node_modules/@types/node/ts4.8/domain.d.ts +0 -170
  328. package/node_modules/@types/node/ts4.8/events.d.ts +0 -879
  329. package/node_modules/@types/node/ts4.8/fs/promises.d.ts +0 -1239
  330. package/node_modules/@types/node/ts4.8/fs.d.ts +0 -4311
  331. package/node_modules/@types/node/ts4.8/globals.d.ts +0 -411
  332. package/node_modules/@types/node/ts4.8/globals.global.d.ts +0 -1
  333. package/node_modules/@types/node/ts4.8/http.d.ts +0 -1887
  334. package/node_modules/@types/node/ts4.8/http2.d.ts +0 -2382
  335. package/node_modules/@types/node/ts4.8/https.d.ts +0 -550
  336. package/node_modules/@types/node/ts4.8/index.d.ts +0 -88
  337. package/node_modules/@types/node/ts4.8/inspector.d.ts +0 -2747
  338. package/node_modules/@types/node/ts4.8/module.d.ts +0 -315
  339. package/node_modules/@types/node/ts4.8/net.d.ts +0 -954
  340. package/node_modules/@types/node/ts4.8/os.d.ts +0 -478
  341. package/node_modules/@types/node/ts4.8/path.d.ts +0 -191
  342. package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +0 -645
  343. package/node_modules/@types/node/ts4.8/process.d.ts +0 -1561
  344. package/node_modules/@types/node/ts4.8/punycode.d.ts +0 -117
  345. package/node_modules/@types/node/ts4.8/querystring.d.ts +0 -141
  346. package/node_modules/@types/node/ts4.8/readline/promises.d.ts +0 -150
  347. package/node_modules/@types/node/ts4.8/readline.d.ts +0 -539
  348. package/node_modules/@types/node/ts4.8/repl.d.ts +0 -430
  349. package/node_modules/@types/node/ts4.8/stream/consumers.d.ts +0 -12
  350. package/node_modules/@types/node/ts4.8/stream/promises.d.ts +0 -83
  351. package/node_modules/@types/node/ts4.8/stream/web.d.ts +0 -366
  352. package/node_modules/@types/node/ts4.8/stream.d.ts +0 -1701
  353. package/node_modules/@types/node/ts4.8/string_decoder.d.ts +0 -67
  354. package/node_modules/@types/node/ts4.8/test.d.ts +0 -1465
  355. package/node_modules/@types/node/ts4.8/timers/promises.d.ts +0 -93
  356. package/node_modules/@types/node/ts4.8/timers.d.ts +0 -240
  357. package/node_modules/@types/node/ts4.8/tls.d.ts +0 -1210
  358. package/node_modules/@types/node/ts4.8/trace_events.d.ts +0 -182
  359. package/node_modules/@types/node/ts4.8/tty.d.ts +0 -208
  360. package/node_modules/@types/node/ts4.8/url.d.ts +0 -944
  361. package/node_modules/@types/node/ts4.8/util.d.ts +0 -2183
  362. package/node_modules/@types/node/ts4.8/v8.d.ts +0 -764
  363. package/node_modules/@types/node/ts4.8/vm.d.ts +0 -903
  364. package/node_modules/@types/node/ts4.8/wasi.d.ts +0 -179
  365. package/node_modules/@types/node/ts4.8/worker_threads.d.ts +0 -691
  366. package/node_modules/@types/node/ts4.8/zlib.d.ts +0 -517
  367. package/node_modules/object-is/.eslintignore +0 -1
  368. package/node_modules/set-function-length/env.d.ts.map +0 -1
  369. package/node_modules/set-function-length/index.d.ts.map +0 -1
@@ -1,1052 +1,1052 @@
1
- "use strict";
2
- var $protobuf = require("../..");
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
-
15
- // --- Root ---
16
-
17
- /**
18
- * Properties of a FileDescriptorSet message.
19
- * @interface IFileDescriptorSet
20
- * @property {IFileDescriptorProto[]} file Files
21
- */
22
-
23
- /**
24
- * Properties of a FileDescriptorProto message.
25
- * @interface IFileDescriptorProto
26
- * @property {string} [name] File name
27
- * @property {string} [package] Package
28
- * @property {*} [dependency] Not supported
29
- * @property {*} [publicDependency] Not supported
30
- * @property {*} [weakDependency] Not supported
31
- * @property {IDescriptorProto[]} [messageType] Nested message types
32
- * @property {IEnumDescriptorProto[]} [enumType] Nested enums
33
- * @property {IServiceDescriptorProto[]} [service] Nested services
34
- * @property {IFieldDescriptorProto[]} [extension] Nested extension fields
35
- * @property {IFileOptions} [options] Options
36
- * @property {*} [sourceCodeInfo] Not supported
37
- * @property {string} [syntax="proto2"] Syntax
38
- */
39
-
40
- /**
41
- * Properties of a FileOptions message.
42
- * @interface IFileOptions
43
- * @property {string} [javaPackage]
44
- * @property {string} [javaOuterClassname]
45
- * @property {boolean} [javaMultipleFiles]
46
- * @property {boolean} [javaGenerateEqualsAndHash]
47
- * @property {boolean} [javaStringCheckUtf8]
48
- * @property {IFileOptionsOptimizeMode} [optimizeFor=1]
49
- * @property {string} [goPackage]
50
- * @property {boolean} [ccGenericServices]
51
- * @property {boolean} [javaGenericServices]
52
- * @property {boolean} [pyGenericServices]
53
- * @property {boolean} [deprecated]
54
- * @property {boolean} [ccEnableArenas]
55
- * @property {string} [objcClassPrefix]
56
- * @property {string} [csharpNamespace]
57
- */
58
-
59
- /**
60
- * Values of he FileOptions.OptimizeMode enum.
61
- * @typedef IFileOptionsOptimizeMode
62
- * @type {number}
63
- * @property {number} SPEED=1
64
- * @property {number} CODE_SIZE=2
65
- * @property {number} LITE_RUNTIME=3
66
- */
67
-
68
- /**
69
- * Creates a root from a descriptor set.
70
- * @param {IFileDescriptorSet|Reader|Uint8Array} descriptor Descriptor
71
- * @returns {Root} Root instance
72
- */
73
- Root.fromDescriptor = function fromDescriptor(descriptor) {
74
-
75
- // Decode the descriptor message if specified as a buffer:
76
- if (typeof descriptor.length === "number")
77
- descriptor = exports.FileDescriptorSet.decode(descriptor);
78
-
79
- var root = new Root();
80
-
81
- if (descriptor.file) {
82
- var fileDescriptor,
83
- filePackage;
84
- for (var j = 0, i; j < descriptor.file.length; ++j) {
85
- filePackage = root;
86
- if ((fileDescriptor = descriptor.file[j])["package"] && fileDescriptor["package"].length)
87
- filePackage = root.define(fileDescriptor["package"]);
88
- if (fileDescriptor.name && fileDescriptor.name.length)
89
- root.files.push(filePackage.filename = fileDescriptor.name);
90
- if (fileDescriptor.messageType)
91
- for (i = 0; i < fileDescriptor.messageType.length; ++i)
92
- filePackage.add(Type.fromDescriptor(fileDescriptor.messageType[i], fileDescriptor.syntax));
93
- if (fileDescriptor.enumType)
94
- for (i = 0; i < fileDescriptor.enumType.length; ++i)
95
- filePackage.add(Enum.fromDescriptor(fileDescriptor.enumType[i]));
96
- if (fileDescriptor.extension)
97
- for (i = 0; i < fileDescriptor.extension.length; ++i)
98
- filePackage.add(Field.fromDescriptor(fileDescriptor.extension[i]));
99
- if (fileDescriptor.service)
100
- for (i = 0; i < fileDescriptor.service.length; ++i)
101
- filePackage.add(Service.fromDescriptor(fileDescriptor.service[i]));
102
- var opts = fromDescriptorOptions(fileDescriptor.options, exports.FileOptions);
103
- if (opts) {
104
- var ks = Object.keys(opts);
105
- for (i = 0; i < ks.length; ++i)
106
- filePackage.setOption(ks[i], opts[ks[i]]);
107
- }
108
- }
109
- }
110
-
111
- return root;
112
- };
113
-
114
- /**
115
- * Converts a root to a descriptor set.
116
- * @returns {Message<IFileDescriptorSet>} Descriptor
117
- * @param {string} [syntax="proto2"] Syntax
118
- */
119
- Root.prototype.toDescriptor = function toDescriptor(syntax) {
120
- var set = exports.FileDescriptorSet.create();
121
- Root_toDescriptorRecursive(this, set.file, syntax);
122
- return set;
123
- };
124
-
125
- // Traverses a namespace and assembles the descriptor set
126
- function Root_toDescriptorRecursive(ns, files, syntax) {
127
-
128
- // Create a new file
129
- var file = exports.FileDescriptorProto.create({ name: ns.filename || (ns.fullName.substring(1).replace(/\./g, "_") || "root") + ".proto" });
130
- if (syntax)
131
- file.syntax = syntax;
132
- if (!(ns instanceof Root))
133
- file["package"] = ns.fullName.substring(1);
134
-
135
- // Add nested types
136
- for (var i = 0, nested; i < ns.nestedArray.length; ++i)
137
- if ((nested = ns._nestedArray[i]) instanceof Type)
138
- file.messageType.push(nested.toDescriptor(syntax));
139
- else if (nested instanceof Enum)
140
- file.enumType.push(nested.toDescriptor());
141
- else if (nested instanceof Field)
142
- file.extension.push(nested.toDescriptor(syntax));
143
- else if (nested instanceof Service)
144
- file.service.push(nested.toDescriptor());
145
- else if (nested instanceof /* plain */ Namespace)
146
- Root_toDescriptorRecursive(nested, files, syntax); // requires new file
147
-
148
- // Keep package-level options
149
- file.options = toDescriptorOptions(ns.options, exports.FileOptions);
150
-
151
- // And keep the file only if there is at least one nested object
152
- if (file.messageType.length + file.enumType.length + file.extension.length + file.service.length)
153
- files.push(file);
154
- }
155
-
156
- // --- Type ---
157
-
158
- /**
159
- * Properties of a DescriptorProto message.
160
- * @interface IDescriptorProto
161
- * @property {string} [name] Message type name
162
- * @property {IFieldDescriptorProto[]} [field] Fields
163
- * @property {IFieldDescriptorProto[]} [extension] Extension fields
164
- * @property {IDescriptorProto[]} [nestedType] Nested message types
165
- * @property {IEnumDescriptorProto[]} [enumType] Nested enums
166
- * @property {IDescriptorProtoExtensionRange[]} [extensionRange] Extension ranges
167
- * @property {IOneofDescriptorProto[]} [oneofDecl] Oneofs
168
- * @property {IMessageOptions} [options] Not supported
169
- * @property {IDescriptorProtoReservedRange[]} [reservedRange] Reserved ranges
170
- * @property {string[]} [reservedName] Reserved names
171
- */
172
-
173
- /**
174
- * Properties of a MessageOptions message.
175
- * @interface IMessageOptions
176
- * @property {boolean} [mapEntry=false] Whether this message is a map entry
177
- */
178
-
179
- /**
180
- * Properties of an ExtensionRange message.
181
- * @interface IDescriptorProtoExtensionRange
182
- * @property {number} [start] Start field id
183
- * @property {number} [end] End field id
184
- */
185
-
186
- /**
187
- * Properties of a ReservedRange message.
188
- * @interface IDescriptorProtoReservedRange
189
- * @property {number} [start] Start field id
190
- * @property {number} [end] End field id
191
- */
192
-
193
- var unnamedMessageIndex = 0;
194
-
195
- /**
196
- * Creates a type from a descriptor.
197
- * @param {IDescriptorProto|Reader|Uint8Array} descriptor Descriptor
198
- * @param {string} [syntax="proto2"] Syntax
199
- * @returns {Type} Type instance
200
- */
201
- Type.fromDescriptor = function fromDescriptor(descriptor, syntax) {
202
-
203
- // Decode the descriptor message if specified as a buffer:
204
- if (typeof descriptor.length === "number")
205
- descriptor = exports.DescriptorProto.decode(descriptor);
206
-
207
- // Create the message type
208
- var type = new Type(descriptor.name.length ? descriptor.name : "Type" + unnamedMessageIndex++, fromDescriptorOptions(descriptor.options, exports.MessageOptions)),
209
- i;
210
-
211
- /* Oneofs */ if (descriptor.oneofDecl)
212
- for (i = 0; i < descriptor.oneofDecl.length; ++i)
213
- type.add(OneOf.fromDescriptor(descriptor.oneofDecl[i]));
214
- /* Fields */ if (descriptor.field)
215
- for (i = 0; i < descriptor.field.length; ++i) {
216
- var field = Field.fromDescriptor(descriptor.field[i], syntax);
217
- type.add(field);
218
- if (descriptor.field[i].hasOwnProperty("oneofIndex")) // eslint-disable-line no-prototype-builtins
219
- type.oneofsArray[descriptor.field[i].oneofIndex].add(field);
220
- }
221
- /* Extension fields */ if (descriptor.extension)
222
- for (i = 0; i < descriptor.extension.length; ++i)
223
- type.add(Field.fromDescriptor(descriptor.extension[i], syntax));
224
- /* Nested types */ if (descriptor.nestedType)
225
- for (i = 0; i < descriptor.nestedType.length; ++i) {
226
- type.add(Type.fromDescriptor(descriptor.nestedType[i], syntax));
227
- if (descriptor.nestedType[i].options && descriptor.nestedType[i].options.mapEntry)
228
- type.setOption("map_entry", true);
229
- }
230
- /* Nested enums */ if (descriptor.enumType)
231
- for (i = 0; i < descriptor.enumType.length; ++i)
232
- type.add(Enum.fromDescriptor(descriptor.enumType[i]));
233
- /* Extension ranges */ if (descriptor.extensionRange && descriptor.extensionRange.length) {
234
- type.extensions = [];
235
- for (i = 0; i < descriptor.extensionRange.length; ++i)
236
- type.extensions.push([ descriptor.extensionRange[i].start, descriptor.extensionRange[i].end ]);
237
- }
238
- /* Reserved... */ if (descriptor.reservedRange && descriptor.reservedRange.length || descriptor.reservedName && descriptor.reservedName.length) {
239
- type.reserved = [];
240
- /* Ranges */ if (descriptor.reservedRange)
241
- for (i = 0; i < descriptor.reservedRange.length; ++i)
242
- type.reserved.push([ descriptor.reservedRange[i].start, descriptor.reservedRange[i].end ]);
243
- /* Names */ if (descriptor.reservedName)
244
- for (i = 0; i < descriptor.reservedName.length; ++i)
245
- type.reserved.push(descriptor.reservedName[i]);
246
- }
247
-
248
- return type;
249
- };
250
-
251
- /**
252
- * Converts a type to a descriptor.
253
- * @returns {Message<IDescriptorProto>} Descriptor
254
- * @param {string} [syntax="proto2"] Syntax
255
- */
256
- Type.prototype.toDescriptor = function toDescriptor(syntax) {
257
- var descriptor = exports.DescriptorProto.create({ name: this.name }),
258
- i;
259
-
260
- /* Fields */ for (i = 0; i < this.fieldsArray.length; ++i) {
261
- var fieldDescriptor;
262
- descriptor.field.push(fieldDescriptor = this._fieldsArray[i].toDescriptor(syntax));
263
- if (this._fieldsArray[i] instanceof MapField) { // map fields are repeated FieldNameEntry
264
- var keyType = toDescriptorType(this._fieldsArray[i].keyType, this._fieldsArray[i].resolvedKeyType),
265
- valueType = toDescriptorType(this._fieldsArray[i].type, this._fieldsArray[i].resolvedType),
266
- valueTypeName = valueType === /* type */ 11 || valueType === /* enum */ 14
267
- ? this._fieldsArray[i].resolvedType && shortname(this.parent, this._fieldsArray[i].resolvedType) || this._fieldsArray[i].type
268
- : undefined;
269
- descriptor.nestedType.push(exports.DescriptorProto.create({
270
- name: fieldDescriptor.typeName,
271
- field: [
272
- exports.FieldDescriptorProto.create({ name: "key", number: 1, label: 1, type: keyType }), // can't reference a type or enum
273
- exports.FieldDescriptorProto.create({ name: "value", number: 2, label: 1, type: valueType, typeName: valueTypeName })
274
- ],
275
- options: exports.MessageOptions.create({ mapEntry: true })
276
- }));
277
- }
278
- }
279
- /* Oneofs */ for (i = 0; i < this.oneofsArray.length; ++i)
280
- descriptor.oneofDecl.push(this._oneofsArray[i].toDescriptor());
281
- /* Nested... */ for (i = 0; i < this.nestedArray.length; ++i) {
282
- /* Extension fields */ if (this._nestedArray[i] instanceof Field)
283
- descriptor.field.push(this._nestedArray[i].toDescriptor(syntax));
284
- /* Types */ else if (this._nestedArray[i] instanceof Type)
285
- descriptor.nestedType.push(this._nestedArray[i].toDescriptor(syntax));
286
- /* Enums */ else if (this._nestedArray[i] instanceof Enum)
287
- descriptor.enumType.push(this._nestedArray[i].toDescriptor());
288
- // plain nested namespaces become packages instead in Root#toDescriptor
289
- }
290
- /* Extension ranges */ if (this.extensions)
291
- for (i = 0; i < this.extensions.length; ++i)
292
- descriptor.extensionRange.push(exports.DescriptorProto.ExtensionRange.create({ start: this.extensions[i][0], end: this.extensions[i][1] }));
293
- /* Reserved... */ if (this.reserved)
294
- for (i = 0; i < this.reserved.length; ++i)
295
- /* Names */ if (typeof this.reserved[i] === "string")
296
- descriptor.reservedName.push(this.reserved[i]);
297
- /* Ranges */ else
298
- descriptor.reservedRange.push(exports.DescriptorProto.ReservedRange.create({ start: this.reserved[i][0], end: this.reserved[i][1] }));
299
-
300
- descriptor.options = toDescriptorOptions(this.options, exports.MessageOptions);
301
-
302
- return descriptor;
303
- };
304
-
305
- // --- Field ---
306
-
307
- /**
308
- * Properties of a FieldDescriptorProto message.
309
- * @interface IFieldDescriptorProto
310
- * @property {string} [name] Field name
311
- * @property {number} [number] Field id
312
- * @property {IFieldDescriptorProtoLabel} [label] Field rule
313
- * @property {IFieldDescriptorProtoType} [type] Field basic type
314
- * @property {string} [typeName] Field type name
315
- * @property {string} [extendee] Extended type name
316
- * @property {string} [defaultValue] Literal default value
317
- * @property {number} [oneofIndex] Oneof index if part of a oneof
318
- * @property {*} [jsonName] Not supported
319
- * @property {IFieldOptions} [options] Field options
320
- */
321
-
322
- /**
323
- * Values of the FieldDescriptorProto.Label enum.
324
- * @typedef IFieldDescriptorProtoLabel
325
- * @type {number}
326
- * @property {number} LABEL_OPTIONAL=1
327
- * @property {number} LABEL_REQUIRED=2
328
- * @property {number} LABEL_REPEATED=3
329
- */
330
-
331
- /**
332
- * Values of the FieldDescriptorProto.Type enum.
333
- * @typedef IFieldDescriptorProtoType
334
- * @type {number}
335
- * @property {number} TYPE_DOUBLE=1
336
- * @property {number} TYPE_FLOAT=2
337
- * @property {number} TYPE_INT64=3
338
- * @property {number} TYPE_UINT64=4
339
- * @property {number} TYPE_INT32=5
340
- * @property {number} TYPE_FIXED64=6
341
- * @property {number} TYPE_FIXED32=7
342
- * @property {number} TYPE_BOOL=8
343
- * @property {number} TYPE_STRING=9
344
- * @property {number} TYPE_GROUP=10
345
- * @property {number} TYPE_MESSAGE=11
346
- * @property {number} TYPE_BYTES=12
347
- * @property {number} TYPE_UINT32=13
348
- * @property {number} TYPE_ENUM=14
349
- * @property {number} TYPE_SFIXED32=15
350
- * @property {number} TYPE_SFIXED64=16
351
- * @property {number} TYPE_SINT32=17
352
- * @property {number} TYPE_SINT64=18
353
- */
354
-
355
- /**
356
- * Properties of a FieldOptions message.
357
- * @interface IFieldOptions
358
- * @property {boolean} [packed] Whether packed or not (defaults to `false` for proto2 and `true` for proto3)
359
- * @property {IFieldOptionsJSType} [jstype] JavaScript value type (not used by protobuf.js)
360
- */
361
-
362
- /**
363
- * Values of the FieldOptions.JSType enum.
364
- * @typedef IFieldOptionsJSType
365
- * @type {number}
366
- * @property {number} JS_NORMAL=0
367
- * @property {number} JS_STRING=1
368
- * @property {number} JS_NUMBER=2
369
- */
370
-
371
- // copied here from parse.js
372
- var numberRe = /^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/;
373
-
374
- /**
375
- * Creates a field from a descriptor.
376
- * @param {IFieldDescriptorProto|Reader|Uint8Array} descriptor Descriptor
377
- * @param {string} [syntax="proto2"] Syntax
378
- * @returns {Field} Field instance
379
- */
380
- Field.fromDescriptor = function fromDescriptor(descriptor, syntax) {
381
-
382
- // Decode the descriptor message if specified as a buffer:
383
- if (typeof descriptor.length === "number")
384
- descriptor = exports.DescriptorProto.decode(descriptor);
385
-
386
- if (typeof descriptor.number !== "number")
387
- throw Error("missing field id");
388
-
389
- // Rewire field type
390
- var fieldType;
391
- if (descriptor.typeName && descriptor.typeName.length)
392
- fieldType = descriptor.typeName;
393
- else
394
- fieldType = fromDescriptorType(descriptor.type);
395
-
396
- // Rewire field rule
397
- var fieldRule;
398
- switch (descriptor.label) {
399
- // 0 is reserved for errors
400
- case 1: fieldRule = undefined; break;
401
- case 2: fieldRule = "required"; break;
402
- case 3: fieldRule = "repeated"; break;
403
- default: throw Error("illegal label: " + descriptor.label);
404
- }
405
-
406
- var extendee = descriptor.extendee;
407
- if (descriptor.extendee !== undefined) {
408
- extendee = extendee.length ? extendee : undefined;
409
- }
410
- var field = new Field(
411
- descriptor.name.length ? descriptor.name : "field" + descriptor.number,
412
- descriptor.number,
413
- fieldType,
414
- fieldRule,
415
- extendee
416
- );
417
-
418
- field.options = fromDescriptorOptions(descriptor.options, exports.FieldOptions);
419
-
420
- if (descriptor.defaultValue && descriptor.defaultValue.length) {
421
- var defaultValue = descriptor.defaultValue;
422
- switch (defaultValue) {
423
- case "true": case "TRUE":
424
- defaultValue = true;
425
- break;
426
- case "false": case "FALSE":
427
- defaultValue = false;
428
- break;
429
- default:
430
- var match = numberRe.exec(defaultValue);
431
- if (match)
432
- defaultValue = parseInt(defaultValue); // eslint-disable-line radix
433
- break;
434
- }
435
- field.setOption("default", defaultValue);
436
- }
437
-
438
- if (packableDescriptorType(descriptor.type)) {
439
- if (syntax === "proto3") { // defaults to packed=true (internal preset is packed=true)
440
- if (descriptor.options && !descriptor.options.packed)
441
- field.setOption("packed", false);
442
- } else if (!(descriptor.options && descriptor.options.packed)) // defaults to packed=false
443
- field.setOption("packed", false);
444
- }
445
-
446
- return field;
447
- };
448
-
449
- /**
450
- * Converts a field to a descriptor.
451
- * @returns {Message<IFieldDescriptorProto>} Descriptor
452
- * @param {string} [syntax="proto2"] Syntax
453
- */
454
- Field.prototype.toDescriptor = function toDescriptor(syntax) {
455
- var descriptor = exports.FieldDescriptorProto.create({ name: this.name, number: this.id });
456
-
457
- if (this.map) {
458
-
459
- descriptor.type = 11; // message
460
- descriptor.typeName = $protobuf.util.ucFirst(this.name); // fieldName -> FieldNameEntry (built in Type#toDescriptor)
461
- descriptor.label = 3; // repeated
462
-
463
- } else {
464
-
465
- // Rewire field type
466
- switch (descriptor.type = toDescriptorType(this.type, this.resolve().resolvedType)) {
467
- case 10: // group
468
- case 11: // type
469
- case 14: // enum
470
- descriptor.typeName = this.resolvedType ? shortname(this.parent, this.resolvedType) : this.type;
471
- break;
472
- }
473
-
474
- // Rewire field rule
475
- switch (this.rule) {
476
- case "repeated": descriptor.label = 3; break;
477
- case "required": descriptor.label = 2; break;
478
- default: descriptor.label = 1; break;
479
- }
480
-
481
- }
482
-
483
- // Handle extension field
484
- descriptor.extendee = this.extensionField ? this.extensionField.parent.fullName : this.extend;
485
-
486
- // Handle part of oneof
487
- if (this.partOf)
488
- if ((descriptor.oneofIndex = this.parent.oneofsArray.indexOf(this.partOf)) < 0)
489
- throw Error("missing oneof");
490
-
491
- if (this.options) {
492
- descriptor.options = toDescriptorOptions(this.options, exports.FieldOptions);
493
- if (this.options["default"] != null)
494
- descriptor.defaultValue = String(this.options["default"]);
495
- }
496
-
497
- if (syntax === "proto3") { // defaults to packed=true
498
- if (!this.packed)
499
- (descriptor.options || (descriptor.options = exports.FieldOptions.create())).packed = false;
500
- } else if (this.packed) // defaults to packed=false
501
- (descriptor.options || (descriptor.options = exports.FieldOptions.create())).packed = true;
502
-
503
- return descriptor;
504
- };
505
-
506
- // --- Enum ---
507
-
508
- /**
509
- * Properties of an EnumDescriptorProto message.
510
- * @interface IEnumDescriptorProto
511
- * @property {string} [name] Enum name
512
- * @property {IEnumValueDescriptorProto[]} [value] Enum values
513
- * @property {IEnumOptions} [options] Enum options
514
- */
515
-
516
- /**
517
- * Properties of an EnumValueDescriptorProto message.
518
- * @interface IEnumValueDescriptorProto
519
- * @property {string} [name] Name
520
- * @property {number} [number] Value
521
- * @property {*} [options] Not supported
522
- */
523
-
524
- /**
525
- * Properties of an EnumOptions message.
526
- * @interface IEnumOptions
527
- * @property {boolean} [allowAlias] Whether aliases are allowed
528
- * @property {boolean} [deprecated]
529
- */
530
-
531
- var unnamedEnumIndex = 0;
532
-
533
- /**
534
- * Creates an enum from a descriptor.
535
- * @param {IEnumDescriptorProto|Reader|Uint8Array} descriptor Descriptor
536
- * @returns {Enum} Enum instance
537
- */
538
- Enum.fromDescriptor = function fromDescriptor(descriptor) {
539
-
540
- // Decode the descriptor message if specified as a buffer:
541
- if (typeof descriptor.length === "number")
542
- descriptor = exports.EnumDescriptorProto.decode(descriptor);
543
-
544
- // Construct values object
545
- var values = {};
546
- if (descriptor.value)
547
- for (var i = 0; i < descriptor.value.length; ++i) {
548
- var name = descriptor.value[i].name,
549
- value = descriptor.value[i].number || 0;
550
- values[name && name.length ? name : "NAME" + value] = value;
551
- }
552
-
553
- return new Enum(
554
- descriptor.name && descriptor.name.length ? descriptor.name : "Enum" + unnamedEnumIndex++,
555
- values,
556
- fromDescriptorOptions(descriptor.options, exports.EnumOptions)
557
- );
558
- };
559
-
560
- /**
561
- * Converts an enum to a descriptor.
562
- * @returns {Message<IEnumDescriptorProto>} Descriptor
563
- */
564
- Enum.prototype.toDescriptor = function toDescriptor() {
565
-
566
- // Values
567
- var values = [];
568
- for (var i = 0, ks = Object.keys(this.values); i < ks.length; ++i)
569
- values.push(exports.EnumValueDescriptorProto.create({ name: ks[i], number: this.values[ks[i]] }));
570
-
571
- return exports.EnumDescriptorProto.create({
572
- name: this.name,
573
- value: values,
574
- options: toDescriptorOptions(this.options, exports.EnumOptions)
575
- });
576
- };
577
-
578
- // --- OneOf ---
579
-
580
- /**
581
- * Properties of a OneofDescriptorProto message.
582
- * @interface IOneofDescriptorProto
583
- * @property {string} [name] Oneof name
584
- * @property {*} [options] Not supported
585
- */
586
-
587
- var unnamedOneofIndex = 0;
588
-
589
- /**
590
- * Creates a oneof from a descriptor.
591
- * @param {IOneofDescriptorProto|Reader|Uint8Array} descriptor Descriptor
592
- * @returns {OneOf} OneOf instance
593
- */
594
- OneOf.fromDescriptor = function fromDescriptor(descriptor) {
595
-
596
- // Decode the descriptor message if specified as a buffer:
597
- if (typeof descriptor.length === "number")
598
- descriptor = exports.OneofDescriptorProto.decode(descriptor);
599
-
600
- return new OneOf(
601
- // unnamedOneOfIndex is global, not per type, because we have no ref to a type here
602
- descriptor.name && descriptor.name.length ? descriptor.name : "oneof" + unnamedOneofIndex++
603
- // fromDescriptorOptions(descriptor.options, exports.OneofOptions) - only uninterpreted_option
604
- );
605
- };
606
-
607
- /**
608
- * Converts a oneof to a descriptor.
609
- * @returns {Message<IOneofDescriptorProto>} Descriptor
610
- */
611
- OneOf.prototype.toDescriptor = function toDescriptor() {
612
- return exports.OneofDescriptorProto.create({
613
- name: this.name
614
- // options: toDescriptorOptions(this.options, exports.OneofOptions) - only uninterpreted_option
615
- });
616
- };
617
-
618
- // --- Service ---
619
-
620
- /**
621
- * Properties of a ServiceDescriptorProto message.
622
- * @interface IServiceDescriptorProto
623
- * @property {string} [name] Service name
624
- * @property {IMethodDescriptorProto[]} [method] Methods
625
- * @property {IServiceOptions} [options] Options
626
- */
627
-
628
- /**
629
- * Properties of a ServiceOptions message.
630
- * @interface IServiceOptions
631
- * @property {boolean} [deprecated]
632
- */
633
-
634
- var unnamedServiceIndex = 0;
635
-
636
- /**
637
- * Creates a service from a descriptor.
638
- * @param {IServiceDescriptorProto|Reader|Uint8Array} descriptor Descriptor
639
- * @returns {Service} Service instance
640
- */
641
- Service.fromDescriptor = function fromDescriptor(descriptor) {
642
-
643
- // Decode the descriptor message if specified as a buffer:
644
- if (typeof descriptor.length === "number")
645
- descriptor = exports.ServiceDescriptorProto.decode(descriptor);
646
-
647
- var service = new Service(descriptor.name && descriptor.name.length ? descriptor.name : "Service" + unnamedServiceIndex++, fromDescriptorOptions(descriptor.options, exports.ServiceOptions));
648
- if (descriptor.method)
649
- for (var i = 0; i < descriptor.method.length; ++i)
650
- service.add(Method.fromDescriptor(descriptor.method[i]));
651
-
652
- return service;
653
- };
654
-
655
- /**
656
- * Converts a service to a descriptor.
657
- * @returns {Message<IServiceDescriptorProto>} Descriptor
658
- */
659
- Service.prototype.toDescriptor = function toDescriptor() {
660
-
661
- // Methods
662
- var methods = [];
663
- for (var i = 0; i < this.methodsArray.length; ++i)
664
- methods.push(this._methodsArray[i].toDescriptor());
665
-
666
- return exports.ServiceDescriptorProto.create({
667
- name: this.name,
668
- method: methods,
669
- options: toDescriptorOptions(this.options, exports.ServiceOptions)
670
- });
671
- };
672
-
673
- // --- Method ---
674
-
675
- /**
676
- * Properties of a MethodDescriptorProto message.
677
- * @interface IMethodDescriptorProto
678
- * @property {string} [name] Method name
679
- * @property {string} [inputType] Request type name
680
- * @property {string} [outputType] Response type name
681
- * @property {IMethodOptions} [options] Not supported
682
- * @property {boolean} [clientStreaming=false] Whether requests are streamed
683
- * @property {boolean} [serverStreaming=false] Whether responses are streamed
684
- */
685
-
686
- /**
687
- * Properties of a MethodOptions message.
688
- * @interface IMethodOptions
689
- * @property {boolean} [deprecated]
690
- */
691
-
692
- var unnamedMethodIndex = 0;
693
-
694
- /**
695
- * Creates a method from a descriptor.
696
- * @param {IMethodDescriptorProto|Reader|Uint8Array} descriptor Descriptor
697
- * @returns {Method} Reflected method instance
698
- */
699
- Method.fromDescriptor = function fromDescriptor(descriptor) {
700
-
701
- // Decode the descriptor message if specified as a buffer:
702
- if (typeof descriptor.length === "number")
703
- descriptor = exports.MethodDescriptorProto.decode(descriptor);
704
-
705
- return new Method(
706
- // unnamedMethodIndex is global, not per service, because we have no ref to a service here
707
- descriptor.name && descriptor.name.length ? descriptor.name : "Method" + unnamedMethodIndex++,
708
- "rpc",
709
- descriptor.inputType,
710
- descriptor.outputType,
711
- Boolean(descriptor.clientStreaming),
712
- Boolean(descriptor.serverStreaming),
713
- fromDescriptorOptions(descriptor.options, exports.MethodOptions)
714
- );
715
- };
716
-
717
- /**
718
- * Converts a method to a descriptor.
719
- * @returns {Message<IMethodDescriptorProto>} Descriptor
720
- */
721
- Method.prototype.toDescriptor = function toDescriptor() {
722
- return exports.MethodDescriptorProto.create({
723
- name: this.name,
724
- inputType: this.resolvedRequestType ? this.resolvedRequestType.fullName : this.requestType,
725
- outputType: this.resolvedResponseType ? this.resolvedResponseType.fullName : this.responseType,
726
- clientStreaming: this.requestStream,
727
- serverStreaming: this.responseStream,
728
- options: toDescriptorOptions(this.options, exports.MethodOptions)
729
- });
730
- };
731
-
732
- // --- utility ---
733
-
734
- // Converts a descriptor type to a protobuf.js basic type
735
- function fromDescriptorType(type) {
736
- switch (type) {
737
- // 0 is reserved for errors
738
- case 1: return "double";
739
- case 2: return "float";
740
- case 3: return "int64";
741
- case 4: return "uint64";
742
- case 5: return "int32";
743
- case 6: return "fixed64";
744
- case 7: return "fixed32";
745
- case 8: return "bool";
746
- case 9: return "string";
747
- case 12: return "bytes";
748
- case 13: return "uint32";
749
- case 15: return "sfixed32";
750
- case 16: return "sfixed64";
751
- case 17: return "sint32";
752
- case 18: return "sint64";
753
- }
754
- throw Error("illegal type: " + type);
755
- }
756
-
757
- // Tests if a descriptor type is packable
758
- function packableDescriptorType(type) {
759
- switch (type) {
760
- case 1: // double
761
- case 2: // float
762
- case 3: // int64
763
- case 4: // uint64
764
- case 5: // int32
765
- case 6: // fixed64
766
- case 7: // fixed32
767
- case 8: // bool
768
- case 13: // uint32
769
- case 14: // enum (!)
770
- case 15: // sfixed32
771
- case 16: // sfixed64
772
- case 17: // sint32
773
- case 18: // sint64
774
- return true;
775
- }
776
- return false;
777
- }
778
-
779
- // Converts a protobuf.js basic type to a descriptor type
780
- function toDescriptorType(type, resolvedType) {
781
- switch (type) {
782
- // 0 is reserved for errors
783
- case "double": return 1;
784
- case "float": return 2;
785
- case "int64": return 3;
786
- case "uint64": return 4;
787
- case "int32": return 5;
788
- case "fixed64": return 6;
789
- case "fixed32": return 7;
790
- case "bool": return 8;
791
- case "string": return 9;
792
- case "bytes": return 12;
793
- case "uint32": return 13;
794
- case "sfixed32": return 15;
795
- case "sfixed64": return 16;
796
- case "sint32": return 17;
797
- case "sint64": return 18;
798
- }
799
- if (resolvedType instanceof Enum)
800
- return 14;
801
- if (resolvedType instanceof Type)
802
- return resolvedType.group ? 10 : 11;
803
- throw Error("illegal type: " + type);
804
- }
805
-
806
- // Converts descriptor options to an options object
807
- function fromDescriptorOptions(options, type) {
808
- if (!options)
809
- return undefined;
810
- var out = [];
811
- for (var i = 0, field, key, val; i < type.fieldsArray.length; ++i)
812
- if ((key = (field = type._fieldsArray[i]).name) !== "uninterpretedOption")
813
- if (options.hasOwnProperty(key)) { // eslint-disable-line no-prototype-builtins
814
- val = options[key];
815
- if (field.resolvedType instanceof Enum && typeof val === "number" && field.resolvedType.valuesById[val] !== undefined)
816
- val = field.resolvedType.valuesById[val];
817
- out.push(underScore(key), val);
818
- }
819
- return out.length ? $protobuf.util.toObject(out) : undefined;
820
- }
821
-
822
- // Converts an options object to descriptor options
823
- function toDescriptorOptions(options, type) {
824
- if (!options)
825
- return undefined;
826
- var out = [];
827
- for (var i = 0, ks = Object.keys(options), key, val; i < ks.length; ++i) {
828
- val = options[key = ks[i]];
829
- if (key === "default")
830
- continue;
831
- var field = type.fields[key];
832
- if (!field && !(field = type.fields[key = $protobuf.util.camelCase(key)]))
833
- continue;
834
- out.push(key, val);
835
- }
836
- return out.length ? type.fromObject($protobuf.util.toObject(out)) : undefined;
837
- }
838
-
839
- // Calculates the shortest relative path from `from` to `to`.
840
- function shortname(from, to) {
841
- var fromPath = from.fullName.split("."),
842
- toPath = to.fullName.split("."),
843
- i = 0,
844
- j = 0,
845
- k = toPath.length - 1;
846
- if (!(from instanceof Root) && to instanceof Namespace)
847
- while (i < fromPath.length && j < k && fromPath[i] === toPath[j]) {
848
- var other = to.lookup(fromPath[i++], true);
849
- if (other !== null && other !== to)
850
- break;
851
- ++j;
852
- }
853
- else
854
- for (; i < fromPath.length && j < k && fromPath[i] === toPath[j]; ++i, ++j);
855
- return toPath.slice(j).join(".");
856
- }
857
-
858
- // copied here from cli/targets/proto.js
859
- function underScore(str) {
860
- return str.substring(0,1)
861
- + str.substring(1)
862
- .replace(/([A-Z])(?=[a-z]|$)/g, function($0, $1) { return "_" + $1.toLowerCase(); });
863
- }
864
-
865
- // --- exports ---
866
-
867
- /**
868
- * Reflected file descriptor set.
869
- * @name FileDescriptorSet
870
- * @type {Type}
871
- * @const
872
- * @tstype $protobuf.Type
873
- */
874
-
875
- /**
876
- * Reflected file descriptor proto.
877
- * @name FileDescriptorProto
878
- * @type {Type}
879
- * @const
880
- * @tstype $protobuf.Type
881
- */
882
-
883
- /**
884
- * Reflected descriptor proto.
885
- * @name DescriptorProto
886
- * @type {Type}
887
- * @property {Type} ExtensionRange
888
- * @property {Type} ReservedRange
889
- * @const
890
- * @tstype $protobuf.Type & {
891
- * ExtensionRange: $protobuf.Type,
892
- * ReservedRange: $protobuf.Type
893
- * }
894
- */
895
-
896
- /**
897
- * Reflected field descriptor proto.
898
- * @name FieldDescriptorProto
899
- * @type {Type}
900
- * @property {Enum} Label
901
- * @property {Enum} Type
902
- * @const
903
- * @tstype $protobuf.Type & {
904
- * Label: $protobuf.Enum,
905
- * Type: $protobuf.Enum
906
- * }
907
- */
908
-
909
- /**
910
- * Reflected oneof descriptor proto.
911
- * @name OneofDescriptorProto
912
- * @type {Type}
913
- * @const
914
- * @tstype $protobuf.Type
915
- */
916
-
917
- /**
918
- * Reflected enum descriptor proto.
919
- * @name EnumDescriptorProto
920
- * @type {Type}
921
- * @const
922
- * @tstype $protobuf.Type
923
- */
924
-
925
- /**
926
- * Reflected service descriptor proto.
927
- * @name ServiceDescriptorProto
928
- * @type {Type}
929
- * @const
930
- * @tstype $protobuf.Type
931
- */
932
-
933
- /**
934
- * Reflected enum value descriptor proto.
935
- * @name EnumValueDescriptorProto
936
- * @type {Type}
937
- * @const
938
- * @tstype $protobuf.Type
939
- */
940
-
941
- /**
942
- * Reflected method descriptor proto.
943
- * @name MethodDescriptorProto
944
- * @type {Type}
945
- * @const
946
- * @tstype $protobuf.Type
947
- */
948
-
949
- /**
950
- * Reflected file options.
951
- * @name FileOptions
952
- * @type {Type}
953
- * @property {Enum} OptimizeMode
954
- * @const
955
- * @tstype $protobuf.Type & {
956
- * OptimizeMode: $protobuf.Enum
957
- * }
958
- */
959
-
960
- /**
961
- * Reflected message options.
962
- * @name MessageOptions
963
- * @type {Type}
964
- * @const
965
- * @tstype $protobuf.Type
966
- */
967
-
968
- /**
969
- * Reflected field options.
970
- * @name FieldOptions
971
- * @type {Type}
972
- * @property {Enum} CType
973
- * @property {Enum} JSType
974
- * @const
975
- * @tstype $protobuf.Type & {
976
- * CType: $protobuf.Enum,
977
- * JSType: $protobuf.Enum
978
- * }
979
- */
980
-
981
- /**
982
- * Reflected oneof options.
983
- * @name OneofOptions
984
- * @type {Type}
985
- * @const
986
- * @tstype $protobuf.Type
987
- */
988
-
989
- /**
990
- * Reflected enum options.
991
- * @name EnumOptions
992
- * @type {Type}
993
- * @const
994
- * @tstype $protobuf.Type
995
- */
996
-
997
- /**
998
- * Reflected enum value options.
999
- * @name EnumValueOptions
1000
- * @type {Type}
1001
- * @const
1002
- * @tstype $protobuf.Type
1003
- */
1004
-
1005
- /**
1006
- * Reflected service options.
1007
- * @name ServiceOptions
1008
- * @type {Type}
1009
- * @const
1010
- * @tstype $protobuf.Type
1011
- */
1012
-
1013
- /**
1014
- * Reflected method options.
1015
- * @name MethodOptions
1016
- * @type {Type}
1017
- * @const
1018
- * @tstype $protobuf.Type
1019
- */
1020
-
1021
- /**
1022
- * Reflected uninterpretet option.
1023
- * @name UninterpretedOption
1024
- * @type {Type}
1025
- * @property {Type} NamePart
1026
- * @const
1027
- * @tstype $protobuf.Type & {
1028
- * NamePart: $protobuf.Type
1029
- * }
1030
- */
1031
-
1032
- /**
1033
- * Reflected source code info.
1034
- * @name SourceCodeInfo
1035
- * @type {Type}
1036
- * @property {Type} Location
1037
- * @const
1038
- * @tstype $protobuf.Type & {
1039
- * Location: $protobuf.Type
1040
- * }
1041
- */
1042
-
1043
- /**
1044
- * Reflected generated code info.
1045
- * @name GeneratedCodeInfo
1046
- * @type {Type}
1047
- * @property {Type} Annotation
1048
- * @const
1049
- * @tstype $protobuf.Type & {
1050
- * Annotation: $protobuf.Type
1051
- * }
1052
- */
1
+ "use strict";
2
+ var $protobuf = require("../..");
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
+
15
+ // --- Root ---
16
+
17
+ /**
18
+ * Properties of a FileDescriptorSet message.
19
+ * @interface IFileDescriptorSet
20
+ * @property {IFileDescriptorProto[]} file Files
21
+ */
22
+
23
+ /**
24
+ * Properties of a FileDescriptorProto message.
25
+ * @interface IFileDescriptorProto
26
+ * @property {string} [name] File name
27
+ * @property {string} [package] Package
28
+ * @property {*} [dependency] Not supported
29
+ * @property {*} [publicDependency] Not supported
30
+ * @property {*} [weakDependency] Not supported
31
+ * @property {IDescriptorProto[]} [messageType] Nested message types
32
+ * @property {IEnumDescriptorProto[]} [enumType] Nested enums
33
+ * @property {IServiceDescriptorProto[]} [service] Nested services
34
+ * @property {IFieldDescriptorProto[]} [extension] Nested extension fields
35
+ * @property {IFileOptions} [options] Options
36
+ * @property {*} [sourceCodeInfo] Not supported
37
+ * @property {string} [syntax="proto2"] Syntax
38
+ */
39
+
40
+ /**
41
+ * Properties of a FileOptions message.
42
+ * @interface IFileOptions
43
+ * @property {string} [javaPackage]
44
+ * @property {string} [javaOuterClassname]
45
+ * @property {boolean} [javaMultipleFiles]
46
+ * @property {boolean} [javaGenerateEqualsAndHash]
47
+ * @property {boolean} [javaStringCheckUtf8]
48
+ * @property {IFileOptionsOptimizeMode} [optimizeFor=1]
49
+ * @property {string} [goPackage]
50
+ * @property {boolean} [ccGenericServices]
51
+ * @property {boolean} [javaGenericServices]
52
+ * @property {boolean} [pyGenericServices]
53
+ * @property {boolean} [deprecated]
54
+ * @property {boolean} [ccEnableArenas]
55
+ * @property {string} [objcClassPrefix]
56
+ * @property {string} [csharpNamespace]
57
+ */
58
+
59
+ /**
60
+ * Values of he FileOptions.OptimizeMode enum.
61
+ * @typedef IFileOptionsOptimizeMode
62
+ * @type {number}
63
+ * @property {number} SPEED=1
64
+ * @property {number} CODE_SIZE=2
65
+ * @property {number} LITE_RUNTIME=3
66
+ */
67
+
68
+ /**
69
+ * Creates a root from a descriptor set.
70
+ * @param {IFileDescriptorSet|Reader|Uint8Array} descriptor Descriptor
71
+ * @returns {Root} Root instance
72
+ */
73
+ Root.fromDescriptor = function fromDescriptor(descriptor) {
74
+
75
+ // Decode the descriptor message if specified as a buffer:
76
+ if (typeof descriptor.length === "number")
77
+ descriptor = exports.FileDescriptorSet.decode(descriptor);
78
+
79
+ var root = new Root();
80
+
81
+ if (descriptor.file) {
82
+ var fileDescriptor,
83
+ filePackage;
84
+ for (var j = 0, i; j < descriptor.file.length; ++j) {
85
+ filePackage = root;
86
+ if ((fileDescriptor = descriptor.file[j])["package"] && fileDescriptor["package"].length)
87
+ filePackage = root.define(fileDescriptor["package"]);
88
+ if (fileDescriptor.name && fileDescriptor.name.length)
89
+ root.files.push(filePackage.filename = fileDescriptor.name);
90
+ if (fileDescriptor.messageType)
91
+ for (i = 0; i < fileDescriptor.messageType.length; ++i)
92
+ filePackage.add(Type.fromDescriptor(fileDescriptor.messageType[i], fileDescriptor.syntax));
93
+ if (fileDescriptor.enumType)
94
+ for (i = 0; i < fileDescriptor.enumType.length; ++i)
95
+ filePackage.add(Enum.fromDescriptor(fileDescriptor.enumType[i]));
96
+ if (fileDescriptor.extension)
97
+ for (i = 0; i < fileDescriptor.extension.length; ++i)
98
+ filePackage.add(Field.fromDescriptor(fileDescriptor.extension[i]));
99
+ if (fileDescriptor.service)
100
+ for (i = 0; i < fileDescriptor.service.length; ++i)
101
+ filePackage.add(Service.fromDescriptor(fileDescriptor.service[i]));
102
+ var opts = fromDescriptorOptions(fileDescriptor.options, exports.FileOptions);
103
+ if (opts) {
104
+ var ks = Object.keys(opts);
105
+ for (i = 0; i < ks.length; ++i)
106
+ filePackage.setOption(ks[i], opts[ks[i]]);
107
+ }
108
+ }
109
+ }
110
+
111
+ return root;
112
+ };
113
+
114
+ /**
115
+ * Converts a root to a descriptor set.
116
+ * @returns {Message<IFileDescriptorSet>} Descriptor
117
+ * @param {string} [syntax="proto2"] Syntax
118
+ */
119
+ Root.prototype.toDescriptor = function toDescriptor(syntax) {
120
+ var set = exports.FileDescriptorSet.create();
121
+ Root_toDescriptorRecursive(this, set.file, syntax);
122
+ return set;
123
+ };
124
+
125
+ // Traverses a namespace and assembles the descriptor set
126
+ function Root_toDescriptorRecursive(ns, files, syntax) {
127
+
128
+ // Create a new file
129
+ var file = exports.FileDescriptorProto.create({ name: ns.filename || (ns.fullName.substring(1).replace(/\./g, "_") || "root") + ".proto" });
130
+ if (syntax)
131
+ file.syntax = syntax;
132
+ if (!(ns instanceof Root))
133
+ file["package"] = ns.fullName.substring(1);
134
+
135
+ // Add nested types
136
+ for (var i = 0, nested; i < ns.nestedArray.length; ++i)
137
+ if ((nested = ns._nestedArray[i]) instanceof Type)
138
+ file.messageType.push(nested.toDescriptor(syntax));
139
+ else if (nested instanceof Enum)
140
+ file.enumType.push(nested.toDescriptor());
141
+ else if (nested instanceof Field)
142
+ file.extension.push(nested.toDescriptor(syntax));
143
+ else if (nested instanceof Service)
144
+ file.service.push(nested.toDescriptor());
145
+ else if (nested instanceof /* plain */ Namespace)
146
+ Root_toDescriptorRecursive(nested, files, syntax); // requires new file
147
+
148
+ // Keep package-level options
149
+ file.options = toDescriptorOptions(ns.options, exports.FileOptions);
150
+
151
+ // And keep the file only if there is at least one nested object
152
+ if (file.messageType.length + file.enumType.length + file.extension.length + file.service.length)
153
+ files.push(file);
154
+ }
155
+
156
+ // --- Type ---
157
+
158
+ /**
159
+ * Properties of a DescriptorProto message.
160
+ * @interface IDescriptorProto
161
+ * @property {string} [name] Message type name
162
+ * @property {IFieldDescriptorProto[]} [field] Fields
163
+ * @property {IFieldDescriptorProto[]} [extension] Extension fields
164
+ * @property {IDescriptorProto[]} [nestedType] Nested message types
165
+ * @property {IEnumDescriptorProto[]} [enumType] Nested enums
166
+ * @property {IDescriptorProtoExtensionRange[]} [extensionRange] Extension ranges
167
+ * @property {IOneofDescriptorProto[]} [oneofDecl] Oneofs
168
+ * @property {IMessageOptions} [options] Not supported
169
+ * @property {IDescriptorProtoReservedRange[]} [reservedRange] Reserved ranges
170
+ * @property {string[]} [reservedName] Reserved names
171
+ */
172
+
173
+ /**
174
+ * Properties of a MessageOptions message.
175
+ * @interface IMessageOptions
176
+ * @property {boolean} [mapEntry=false] Whether this message is a map entry
177
+ */
178
+
179
+ /**
180
+ * Properties of an ExtensionRange message.
181
+ * @interface IDescriptorProtoExtensionRange
182
+ * @property {number} [start] Start field id
183
+ * @property {number} [end] End field id
184
+ */
185
+
186
+ /**
187
+ * Properties of a ReservedRange message.
188
+ * @interface IDescriptorProtoReservedRange
189
+ * @property {number} [start] Start field id
190
+ * @property {number} [end] End field id
191
+ */
192
+
193
+ var unnamedMessageIndex = 0;
194
+
195
+ /**
196
+ * Creates a type from a descriptor.
197
+ * @param {IDescriptorProto|Reader|Uint8Array} descriptor Descriptor
198
+ * @param {string} [syntax="proto2"] Syntax
199
+ * @returns {Type} Type instance
200
+ */
201
+ Type.fromDescriptor = function fromDescriptor(descriptor, syntax) {
202
+
203
+ // Decode the descriptor message if specified as a buffer:
204
+ if (typeof descriptor.length === "number")
205
+ descriptor = exports.DescriptorProto.decode(descriptor);
206
+
207
+ // Create the message type
208
+ var type = new Type(descriptor.name.length ? descriptor.name : "Type" + unnamedMessageIndex++, fromDescriptorOptions(descriptor.options, exports.MessageOptions)),
209
+ i;
210
+
211
+ /* Oneofs */ if (descriptor.oneofDecl)
212
+ for (i = 0; i < descriptor.oneofDecl.length; ++i)
213
+ type.add(OneOf.fromDescriptor(descriptor.oneofDecl[i]));
214
+ /* Fields */ if (descriptor.field)
215
+ for (i = 0; i < descriptor.field.length; ++i) {
216
+ var field = Field.fromDescriptor(descriptor.field[i], syntax);
217
+ type.add(field);
218
+ if (descriptor.field[i].hasOwnProperty("oneofIndex")) // eslint-disable-line no-prototype-builtins
219
+ type.oneofsArray[descriptor.field[i].oneofIndex].add(field);
220
+ }
221
+ /* Extension fields */ if (descriptor.extension)
222
+ for (i = 0; i < descriptor.extension.length; ++i)
223
+ type.add(Field.fromDescriptor(descriptor.extension[i], syntax));
224
+ /* Nested types */ if (descriptor.nestedType)
225
+ for (i = 0; i < descriptor.nestedType.length; ++i) {
226
+ type.add(Type.fromDescriptor(descriptor.nestedType[i], syntax));
227
+ if (descriptor.nestedType[i].options && descriptor.nestedType[i].options.mapEntry)
228
+ type.setOption("map_entry", true);
229
+ }
230
+ /* Nested enums */ if (descriptor.enumType)
231
+ for (i = 0; i < descriptor.enumType.length; ++i)
232
+ type.add(Enum.fromDescriptor(descriptor.enumType[i]));
233
+ /* Extension ranges */ if (descriptor.extensionRange && descriptor.extensionRange.length) {
234
+ type.extensions = [];
235
+ for (i = 0; i < descriptor.extensionRange.length; ++i)
236
+ type.extensions.push([ descriptor.extensionRange[i].start, descriptor.extensionRange[i].end ]);
237
+ }
238
+ /* Reserved... */ if (descriptor.reservedRange && descriptor.reservedRange.length || descriptor.reservedName && descriptor.reservedName.length) {
239
+ type.reserved = [];
240
+ /* Ranges */ if (descriptor.reservedRange)
241
+ for (i = 0; i < descriptor.reservedRange.length; ++i)
242
+ type.reserved.push([ descriptor.reservedRange[i].start, descriptor.reservedRange[i].end ]);
243
+ /* Names */ if (descriptor.reservedName)
244
+ for (i = 0; i < descriptor.reservedName.length; ++i)
245
+ type.reserved.push(descriptor.reservedName[i]);
246
+ }
247
+
248
+ return type;
249
+ };
250
+
251
+ /**
252
+ * Converts a type to a descriptor.
253
+ * @returns {Message<IDescriptorProto>} Descriptor
254
+ * @param {string} [syntax="proto2"] Syntax
255
+ */
256
+ Type.prototype.toDescriptor = function toDescriptor(syntax) {
257
+ var descriptor = exports.DescriptorProto.create({ name: this.name }),
258
+ i;
259
+
260
+ /* Fields */ for (i = 0; i < this.fieldsArray.length; ++i) {
261
+ var fieldDescriptor;
262
+ descriptor.field.push(fieldDescriptor = this._fieldsArray[i].toDescriptor(syntax));
263
+ if (this._fieldsArray[i] instanceof MapField) { // map fields are repeated FieldNameEntry
264
+ var keyType = toDescriptorType(this._fieldsArray[i].keyType, this._fieldsArray[i].resolvedKeyType),
265
+ valueType = toDescriptorType(this._fieldsArray[i].type, this._fieldsArray[i].resolvedType),
266
+ valueTypeName = valueType === /* type */ 11 || valueType === /* enum */ 14
267
+ ? this._fieldsArray[i].resolvedType && shortname(this.parent, this._fieldsArray[i].resolvedType) || this._fieldsArray[i].type
268
+ : undefined;
269
+ descriptor.nestedType.push(exports.DescriptorProto.create({
270
+ name: fieldDescriptor.typeName,
271
+ field: [
272
+ exports.FieldDescriptorProto.create({ name: "key", number: 1, label: 1, type: keyType }), // can't reference a type or enum
273
+ exports.FieldDescriptorProto.create({ name: "value", number: 2, label: 1, type: valueType, typeName: valueTypeName })
274
+ ],
275
+ options: exports.MessageOptions.create({ mapEntry: true })
276
+ }));
277
+ }
278
+ }
279
+ /* Oneofs */ for (i = 0; i < this.oneofsArray.length; ++i)
280
+ descriptor.oneofDecl.push(this._oneofsArray[i].toDescriptor());
281
+ /* Nested... */ for (i = 0; i < this.nestedArray.length; ++i) {
282
+ /* Extension fields */ if (this._nestedArray[i] instanceof Field)
283
+ descriptor.field.push(this._nestedArray[i].toDescriptor(syntax));
284
+ /* Types */ else if (this._nestedArray[i] instanceof Type)
285
+ descriptor.nestedType.push(this._nestedArray[i].toDescriptor(syntax));
286
+ /* Enums */ else if (this._nestedArray[i] instanceof Enum)
287
+ descriptor.enumType.push(this._nestedArray[i].toDescriptor());
288
+ // plain nested namespaces become packages instead in Root#toDescriptor
289
+ }
290
+ /* Extension ranges */ if (this.extensions)
291
+ for (i = 0; i < this.extensions.length; ++i)
292
+ descriptor.extensionRange.push(exports.DescriptorProto.ExtensionRange.create({ start: this.extensions[i][0], end: this.extensions[i][1] }));
293
+ /* Reserved... */ if (this.reserved)
294
+ for (i = 0; i < this.reserved.length; ++i)
295
+ /* Names */ if (typeof this.reserved[i] === "string")
296
+ descriptor.reservedName.push(this.reserved[i]);
297
+ /* Ranges */ else
298
+ descriptor.reservedRange.push(exports.DescriptorProto.ReservedRange.create({ start: this.reserved[i][0], end: this.reserved[i][1] }));
299
+
300
+ descriptor.options = toDescriptorOptions(this.options, exports.MessageOptions);
301
+
302
+ return descriptor;
303
+ };
304
+
305
+ // --- Field ---
306
+
307
+ /**
308
+ * Properties of a FieldDescriptorProto message.
309
+ * @interface IFieldDescriptorProto
310
+ * @property {string} [name] Field name
311
+ * @property {number} [number] Field id
312
+ * @property {IFieldDescriptorProtoLabel} [label] Field rule
313
+ * @property {IFieldDescriptorProtoType} [type] Field basic type
314
+ * @property {string} [typeName] Field type name
315
+ * @property {string} [extendee] Extended type name
316
+ * @property {string} [defaultValue] Literal default value
317
+ * @property {number} [oneofIndex] Oneof index if part of a oneof
318
+ * @property {*} [jsonName] Not supported
319
+ * @property {IFieldOptions} [options] Field options
320
+ */
321
+
322
+ /**
323
+ * Values of the FieldDescriptorProto.Label enum.
324
+ * @typedef IFieldDescriptorProtoLabel
325
+ * @type {number}
326
+ * @property {number} LABEL_OPTIONAL=1
327
+ * @property {number} LABEL_REQUIRED=2
328
+ * @property {number} LABEL_REPEATED=3
329
+ */
330
+
331
+ /**
332
+ * Values of the FieldDescriptorProto.Type enum.
333
+ * @typedef IFieldDescriptorProtoType
334
+ * @type {number}
335
+ * @property {number} TYPE_DOUBLE=1
336
+ * @property {number} TYPE_FLOAT=2
337
+ * @property {number} TYPE_INT64=3
338
+ * @property {number} TYPE_UINT64=4
339
+ * @property {number} TYPE_INT32=5
340
+ * @property {number} TYPE_FIXED64=6
341
+ * @property {number} TYPE_FIXED32=7
342
+ * @property {number} TYPE_BOOL=8
343
+ * @property {number} TYPE_STRING=9
344
+ * @property {number} TYPE_GROUP=10
345
+ * @property {number} TYPE_MESSAGE=11
346
+ * @property {number} TYPE_BYTES=12
347
+ * @property {number} TYPE_UINT32=13
348
+ * @property {number} TYPE_ENUM=14
349
+ * @property {number} TYPE_SFIXED32=15
350
+ * @property {number} TYPE_SFIXED64=16
351
+ * @property {number} TYPE_SINT32=17
352
+ * @property {number} TYPE_SINT64=18
353
+ */
354
+
355
+ /**
356
+ * Properties of a FieldOptions message.
357
+ * @interface IFieldOptions
358
+ * @property {boolean} [packed] Whether packed or not (defaults to `false` for proto2 and `true` for proto3)
359
+ * @property {IFieldOptionsJSType} [jstype] JavaScript value type (not used by protobuf.js)
360
+ */
361
+
362
+ /**
363
+ * Values of the FieldOptions.JSType enum.
364
+ * @typedef IFieldOptionsJSType
365
+ * @type {number}
366
+ * @property {number} JS_NORMAL=0
367
+ * @property {number} JS_STRING=1
368
+ * @property {number} JS_NUMBER=2
369
+ */
370
+
371
+ // copied here from parse.js
372
+ var numberRe = /^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/;
373
+
374
+ /**
375
+ * Creates a field from a descriptor.
376
+ * @param {IFieldDescriptorProto|Reader|Uint8Array} descriptor Descriptor
377
+ * @param {string} [syntax="proto2"] Syntax
378
+ * @returns {Field} Field instance
379
+ */
380
+ Field.fromDescriptor = function fromDescriptor(descriptor, syntax) {
381
+
382
+ // Decode the descriptor message if specified as a buffer:
383
+ if (typeof descriptor.length === "number")
384
+ descriptor = exports.DescriptorProto.decode(descriptor);
385
+
386
+ if (typeof descriptor.number !== "number")
387
+ throw Error("missing field id");
388
+
389
+ // Rewire field type
390
+ var fieldType;
391
+ if (descriptor.typeName && descriptor.typeName.length)
392
+ fieldType = descriptor.typeName;
393
+ else
394
+ fieldType = fromDescriptorType(descriptor.type);
395
+
396
+ // Rewire field rule
397
+ var fieldRule;
398
+ switch (descriptor.label) {
399
+ // 0 is reserved for errors
400
+ case 1: fieldRule = undefined; break;
401
+ case 2: fieldRule = "required"; break;
402
+ case 3: fieldRule = "repeated"; break;
403
+ default: throw Error("illegal label: " + descriptor.label);
404
+ }
405
+
406
+ var extendee = descriptor.extendee;
407
+ if (descriptor.extendee !== undefined) {
408
+ extendee = extendee.length ? extendee : undefined;
409
+ }
410
+ var field = new Field(
411
+ descriptor.name.length ? descriptor.name : "field" + descriptor.number,
412
+ descriptor.number,
413
+ fieldType,
414
+ fieldRule,
415
+ extendee
416
+ );
417
+
418
+ field.options = fromDescriptorOptions(descriptor.options, exports.FieldOptions);
419
+
420
+ if (descriptor.defaultValue && descriptor.defaultValue.length) {
421
+ var defaultValue = descriptor.defaultValue;
422
+ switch (defaultValue) {
423
+ case "true": case "TRUE":
424
+ defaultValue = true;
425
+ break;
426
+ case "false": case "FALSE":
427
+ defaultValue = false;
428
+ break;
429
+ default:
430
+ var match = numberRe.exec(defaultValue);
431
+ if (match)
432
+ defaultValue = parseInt(defaultValue); // eslint-disable-line radix
433
+ break;
434
+ }
435
+ field.setOption("default", defaultValue);
436
+ }
437
+
438
+ if (packableDescriptorType(descriptor.type)) {
439
+ if (syntax === "proto3") { // defaults to packed=true (internal preset is packed=true)
440
+ if (descriptor.options && !descriptor.options.packed)
441
+ field.setOption("packed", false);
442
+ } else if (!(descriptor.options && descriptor.options.packed)) // defaults to packed=false
443
+ field.setOption("packed", false);
444
+ }
445
+
446
+ return field;
447
+ };
448
+
449
+ /**
450
+ * Converts a field to a descriptor.
451
+ * @returns {Message<IFieldDescriptorProto>} Descriptor
452
+ * @param {string} [syntax="proto2"] Syntax
453
+ */
454
+ Field.prototype.toDescriptor = function toDescriptor(syntax) {
455
+ var descriptor = exports.FieldDescriptorProto.create({ name: this.name, number: this.id });
456
+
457
+ if (this.map) {
458
+
459
+ descriptor.type = 11; // message
460
+ descriptor.typeName = $protobuf.util.ucFirst(this.name); // fieldName -> FieldNameEntry (built in Type#toDescriptor)
461
+ descriptor.label = 3; // repeated
462
+
463
+ } else {
464
+
465
+ // Rewire field type
466
+ switch (descriptor.type = toDescriptorType(this.type, this.resolve().resolvedType)) {
467
+ case 10: // group
468
+ case 11: // type
469
+ case 14: // enum
470
+ descriptor.typeName = this.resolvedType ? shortname(this.parent, this.resolvedType) : this.type;
471
+ break;
472
+ }
473
+
474
+ // Rewire field rule
475
+ switch (this.rule) {
476
+ case "repeated": descriptor.label = 3; break;
477
+ case "required": descriptor.label = 2; break;
478
+ default: descriptor.label = 1; break;
479
+ }
480
+
481
+ }
482
+
483
+ // Handle extension field
484
+ descriptor.extendee = this.extensionField ? this.extensionField.parent.fullName : this.extend;
485
+
486
+ // Handle part of oneof
487
+ if (this.partOf)
488
+ if ((descriptor.oneofIndex = this.parent.oneofsArray.indexOf(this.partOf)) < 0)
489
+ throw Error("missing oneof");
490
+
491
+ if (this.options) {
492
+ descriptor.options = toDescriptorOptions(this.options, exports.FieldOptions);
493
+ if (this.options["default"] != null)
494
+ descriptor.defaultValue = String(this.options["default"]);
495
+ }
496
+
497
+ if (syntax === "proto3") { // defaults to packed=true
498
+ if (!this.packed)
499
+ (descriptor.options || (descriptor.options = exports.FieldOptions.create())).packed = false;
500
+ } else if (this.packed) // defaults to packed=false
501
+ (descriptor.options || (descriptor.options = exports.FieldOptions.create())).packed = true;
502
+
503
+ return descriptor;
504
+ };
505
+
506
+ // --- Enum ---
507
+
508
+ /**
509
+ * Properties of an EnumDescriptorProto message.
510
+ * @interface IEnumDescriptorProto
511
+ * @property {string} [name] Enum name
512
+ * @property {IEnumValueDescriptorProto[]} [value] Enum values
513
+ * @property {IEnumOptions} [options] Enum options
514
+ */
515
+
516
+ /**
517
+ * Properties of an EnumValueDescriptorProto message.
518
+ * @interface IEnumValueDescriptorProto
519
+ * @property {string} [name] Name
520
+ * @property {number} [number] Value
521
+ * @property {*} [options] Not supported
522
+ */
523
+
524
+ /**
525
+ * Properties of an EnumOptions message.
526
+ * @interface IEnumOptions
527
+ * @property {boolean} [allowAlias] Whether aliases are allowed
528
+ * @property {boolean} [deprecated]
529
+ */
530
+
531
+ var unnamedEnumIndex = 0;
532
+
533
+ /**
534
+ * Creates an enum from a descriptor.
535
+ * @param {IEnumDescriptorProto|Reader|Uint8Array} descriptor Descriptor
536
+ * @returns {Enum} Enum instance
537
+ */
538
+ Enum.fromDescriptor = function fromDescriptor(descriptor) {
539
+
540
+ // Decode the descriptor message if specified as a buffer:
541
+ if (typeof descriptor.length === "number")
542
+ descriptor = exports.EnumDescriptorProto.decode(descriptor);
543
+
544
+ // Construct values object
545
+ var values = {};
546
+ if (descriptor.value)
547
+ for (var i = 0; i < descriptor.value.length; ++i) {
548
+ var name = descriptor.value[i].name,
549
+ value = descriptor.value[i].number || 0;
550
+ values[name && name.length ? name : "NAME" + value] = value;
551
+ }
552
+
553
+ return new Enum(
554
+ descriptor.name && descriptor.name.length ? descriptor.name : "Enum" + unnamedEnumIndex++,
555
+ values,
556
+ fromDescriptorOptions(descriptor.options, exports.EnumOptions)
557
+ );
558
+ };
559
+
560
+ /**
561
+ * Converts an enum to a descriptor.
562
+ * @returns {Message<IEnumDescriptorProto>} Descriptor
563
+ */
564
+ Enum.prototype.toDescriptor = function toDescriptor() {
565
+
566
+ // Values
567
+ var values = [];
568
+ for (var i = 0, ks = Object.keys(this.values); i < ks.length; ++i)
569
+ values.push(exports.EnumValueDescriptorProto.create({ name: ks[i], number: this.values[ks[i]] }));
570
+
571
+ return exports.EnumDescriptorProto.create({
572
+ name: this.name,
573
+ value: values,
574
+ options: toDescriptorOptions(this.options, exports.EnumOptions)
575
+ });
576
+ };
577
+
578
+ // --- OneOf ---
579
+
580
+ /**
581
+ * Properties of a OneofDescriptorProto message.
582
+ * @interface IOneofDescriptorProto
583
+ * @property {string} [name] Oneof name
584
+ * @property {*} [options] Not supported
585
+ */
586
+
587
+ var unnamedOneofIndex = 0;
588
+
589
+ /**
590
+ * Creates a oneof from a descriptor.
591
+ * @param {IOneofDescriptorProto|Reader|Uint8Array} descriptor Descriptor
592
+ * @returns {OneOf} OneOf instance
593
+ */
594
+ OneOf.fromDescriptor = function fromDescriptor(descriptor) {
595
+
596
+ // Decode the descriptor message if specified as a buffer:
597
+ if (typeof descriptor.length === "number")
598
+ descriptor = exports.OneofDescriptorProto.decode(descriptor);
599
+
600
+ return new OneOf(
601
+ // unnamedOneOfIndex is global, not per type, because we have no ref to a type here
602
+ descriptor.name && descriptor.name.length ? descriptor.name : "oneof" + unnamedOneofIndex++
603
+ // fromDescriptorOptions(descriptor.options, exports.OneofOptions) - only uninterpreted_option
604
+ );
605
+ };
606
+
607
+ /**
608
+ * Converts a oneof to a descriptor.
609
+ * @returns {Message<IOneofDescriptorProto>} Descriptor
610
+ */
611
+ OneOf.prototype.toDescriptor = function toDescriptor() {
612
+ return exports.OneofDescriptorProto.create({
613
+ name: this.name
614
+ // options: toDescriptorOptions(this.options, exports.OneofOptions) - only uninterpreted_option
615
+ });
616
+ };
617
+
618
+ // --- Service ---
619
+
620
+ /**
621
+ * Properties of a ServiceDescriptorProto message.
622
+ * @interface IServiceDescriptorProto
623
+ * @property {string} [name] Service name
624
+ * @property {IMethodDescriptorProto[]} [method] Methods
625
+ * @property {IServiceOptions} [options] Options
626
+ */
627
+
628
+ /**
629
+ * Properties of a ServiceOptions message.
630
+ * @interface IServiceOptions
631
+ * @property {boolean} [deprecated]
632
+ */
633
+
634
+ var unnamedServiceIndex = 0;
635
+
636
+ /**
637
+ * Creates a service from a descriptor.
638
+ * @param {IServiceDescriptorProto|Reader|Uint8Array} descriptor Descriptor
639
+ * @returns {Service} Service instance
640
+ */
641
+ Service.fromDescriptor = function fromDescriptor(descriptor) {
642
+
643
+ // Decode the descriptor message if specified as a buffer:
644
+ if (typeof descriptor.length === "number")
645
+ descriptor = exports.ServiceDescriptorProto.decode(descriptor);
646
+
647
+ var service = new Service(descriptor.name && descriptor.name.length ? descriptor.name : "Service" + unnamedServiceIndex++, fromDescriptorOptions(descriptor.options, exports.ServiceOptions));
648
+ if (descriptor.method)
649
+ for (var i = 0; i < descriptor.method.length; ++i)
650
+ service.add(Method.fromDescriptor(descriptor.method[i]));
651
+
652
+ return service;
653
+ };
654
+
655
+ /**
656
+ * Converts a service to a descriptor.
657
+ * @returns {Message<IServiceDescriptorProto>} Descriptor
658
+ */
659
+ Service.prototype.toDescriptor = function toDescriptor() {
660
+
661
+ // Methods
662
+ var methods = [];
663
+ for (var i = 0; i < this.methodsArray.length; ++i)
664
+ methods.push(this._methodsArray[i].toDescriptor());
665
+
666
+ return exports.ServiceDescriptorProto.create({
667
+ name: this.name,
668
+ method: methods,
669
+ options: toDescriptorOptions(this.options, exports.ServiceOptions)
670
+ });
671
+ };
672
+
673
+ // --- Method ---
674
+
675
+ /**
676
+ * Properties of a MethodDescriptorProto message.
677
+ * @interface IMethodDescriptorProto
678
+ * @property {string} [name] Method name
679
+ * @property {string} [inputType] Request type name
680
+ * @property {string} [outputType] Response type name
681
+ * @property {IMethodOptions} [options] Not supported
682
+ * @property {boolean} [clientStreaming=false] Whether requests are streamed
683
+ * @property {boolean} [serverStreaming=false] Whether responses are streamed
684
+ */
685
+
686
+ /**
687
+ * Properties of a MethodOptions message.
688
+ * @interface IMethodOptions
689
+ * @property {boolean} [deprecated]
690
+ */
691
+
692
+ var unnamedMethodIndex = 0;
693
+
694
+ /**
695
+ * Creates a method from a descriptor.
696
+ * @param {IMethodDescriptorProto|Reader|Uint8Array} descriptor Descriptor
697
+ * @returns {Method} Reflected method instance
698
+ */
699
+ Method.fromDescriptor = function fromDescriptor(descriptor) {
700
+
701
+ // Decode the descriptor message if specified as a buffer:
702
+ if (typeof descriptor.length === "number")
703
+ descriptor = exports.MethodDescriptorProto.decode(descriptor);
704
+
705
+ return new Method(
706
+ // unnamedMethodIndex is global, not per service, because we have no ref to a service here
707
+ descriptor.name && descriptor.name.length ? descriptor.name : "Method" + unnamedMethodIndex++,
708
+ "rpc",
709
+ descriptor.inputType,
710
+ descriptor.outputType,
711
+ Boolean(descriptor.clientStreaming),
712
+ Boolean(descriptor.serverStreaming),
713
+ fromDescriptorOptions(descriptor.options, exports.MethodOptions)
714
+ );
715
+ };
716
+
717
+ /**
718
+ * Converts a method to a descriptor.
719
+ * @returns {Message<IMethodDescriptorProto>} Descriptor
720
+ */
721
+ Method.prototype.toDescriptor = function toDescriptor() {
722
+ return exports.MethodDescriptorProto.create({
723
+ name: this.name,
724
+ inputType: this.resolvedRequestType ? this.resolvedRequestType.fullName : this.requestType,
725
+ outputType: this.resolvedResponseType ? this.resolvedResponseType.fullName : this.responseType,
726
+ clientStreaming: this.requestStream,
727
+ serverStreaming: this.responseStream,
728
+ options: toDescriptorOptions(this.options, exports.MethodOptions)
729
+ });
730
+ };
731
+
732
+ // --- utility ---
733
+
734
+ // Converts a descriptor type to a protobuf.js basic type
735
+ function fromDescriptorType(type) {
736
+ switch (type) {
737
+ // 0 is reserved for errors
738
+ case 1: return "double";
739
+ case 2: return "float";
740
+ case 3: return "int64";
741
+ case 4: return "uint64";
742
+ case 5: return "int32";
743
+ case 6: return "fixed64";
744
+ case 7: return "fixed32";
745
+ case 8: return "bool";
746
+ case 9: return "string";
747
+ case 12: return "bytes";
748
+ case 13: return "uint32";
749
+ case 15: return "sfixed32";
750
+ case 16: return "sfixed64";
751
+ case 17: return "sint32";
752
+ case 18: return "sint64";
753
+ }
754
+ throw Error("illegal type: " + type);
755
+ }
756
+
757
+ // Tests if a descriptor type is packable
758
+ function packableDescriptorType(type) {
759
+ switch (type) {
760
+ case 1: // double
761
+ case 2: // float
762
+ case 3: // int64
763
+ case 4: // uint64
764
+ case 5: // int32
765
+ case 6: // fixed64
766
+ case 7: // fixed32
767
+ case 8: // bool
768
+ case 13: // uint32
769
+ case 14: // enum (!)
770
+ case 15: // sfixed32
771
+ case 16: // sfixed64
772
+ case 17: // sint32
773
+ case 18: // sint64
774
+ return true;
775
+ }
776
+ return false;
777
+ }
778
+
779
+ // Converts a protobuf.js basic type to a descriptor type
780
+ function toDescriptorType(type, resolvedType) {
781
+ switch (type) {
782
+ // 0 is reserved for errors
783
+ case "double": return 1;
784
+ case "float": return 2;
785
+ case "int64": return 3;
786
+ case "uint64": return 4;
787
+ case "int32": return 5;
788
+ case "fixed64": return 6;
789
+ case "fixed32": return 7;
790
+ case "bool": return 8;
791
+ case "string": return 9;
792
+ case "bytes": return 12;
793
+ case "uint32": return 13;
794
+ case "sfixed32": return 15;
795
+ case "sfixed64": return 16;
796
+ case "sint32": return 17;
797
+ case "sint64": return 18;
798
+ }
799
+ if (resolvedType instanceof Enum)
800
+ return 14;
801
+ if (resolvedType instanceof Type)
802
+ return resolvedType.group ? 10 : 11;
803
+ throw Error("illegal type: " + type);
804
+ }
805
+
806
+ // Converts descriptor options to an options object
807
+ function fromDescriptorOptions(options, type) {
808
+ if (!options)
809
+ return undefined;
810
+ var out = [];
811
+ for (var i = 0, field, key, val; i < type.fieldsArray.length; ++i)
812
+ if ((key = (field = type._fieldsArray[i]).name) !== "uninterpretedOption")
813
+ if (options.hasOwnProperty(key)) { // eslint-disable-line no-prototype-builtins
814
+ val = options[key];
815
+ if (field.resolvedType instanceof Enum && typeof val === "number" && field.resolvedType.valuesById[val] !== undefined)
816
+ val = field.resolvedType.valuesById[val];
817
+ out.push(underScore(key), val);
818
+ }
819
+ return out.length ? $protobuf.util.toObject(out) : undefined;
820
+ }
821
+
822
+ // Converts an options object to descriptor options
823
+ function toDescriptorOptions(options, type) {
824
+ if (!options)
825
+ return undefined;
826
+ var out = [];
827
+ for (var i = 0, ks = Object.keys(options), key, val; i < ks.length; ++i) {
828
+ val = options[key = ks[i]];
829
+ if (key === "default")
830
+ continue;
831
+ var field = type.fields[key];
832
+ if (!field && !(field = type.fields[key = $protobuf.util.camelCase(key)]))
833
+ continue;
834
+ out.push(key, val);
835
+ }
836
+ return out.length ? type.fromObject($protobuf.util.toObject(out)) : undefined;
837
+ }
838
+
839
+ // Calculates the shortest relative path from `from` to `to`.
840
+ function shortname(from, to) {
841
+ var fromPath = from.fullName.split("."),
842
+ toPath = to.fullName.split("."),
843
+ i = 0,
844
+ j = 0,
845
+ k = toPath.length - 1;
846
+ if (!(from instanceof Root) && to instanceof Namespace)
847
+ while (i < fromPath.length && j < k && fromPath[i] === toPath[j]) {
848
+ var other = to.lookup(fromPath[i++], true);
849
+ if (other !== null && other !== to)
850
+ break;
851
+ ++j;
852
+ }
853
+ else
854
+ for (; i < fromPath.length && j < k && fromPath[i] === toPath[j]; ++i, ++j);
855
+ return toPath.slice(j).join(".");
856
+ }
857
+
858
+ // copied here from cli/targets/proto.js
859
+ function underScore(str) {
860
+ return str.substring(0,1)
861
+ + str.substring(1)
862
+ .replace(/([A-Z])(?=[a-z]|$)/g, function($0, $1) { return "_" + $1.toLowerCase(); });
863
+ }
864
+
865
+ // --- exports ---
866
+
867
+ /**
868
+ * Reflected file descriptor set.
869
+ * @name FileDescriptorSet
870
+ * @type {Type}
871
+ * @const
872
+ * @tstype $protobuf.Type
873
+ */
874
+
875
+ /**
876
+ * Reflected file descriptor proto.
877
+ * @name FileDescriptorProto
878
+ * @type {Type}
879
+ * @const
880
+ * @tstype $protobuf.Type
881
+ */
882
+
883
+ /**
884
+ * Reflected descriptor proto.
885
+ * @name DescriptorProto
886
+ * @type {Type}
887
+ * @property {Type} ExtensionRange
888
+ * @property {Type} ReservedRange
889
+ * @const
890
+ * @tstype $protobuf.Type & {
891
+ * ExtensionRange: $protobuf.Type,
892
+ * ReservedRange: $protobuf.Type
893
+ * }
894
+ */
895
+
896
+ /**
897
+ * Reflected field descriptor proto.
898
+ * @name FieldDescriptorProto
899
+ * @type {Type}
900
+ * @property {Enum} Label
901
+ * @property {Enum} Type
902
+ * @const
903
+ * @tstype $protobuf.Type & {
904
+ * Label: $protobuf.Enum,
905
+ * Type: $protobuf.Enum
906
+ * }
907
+ */
908
+
909
+ /**
910
+ * Reflected oneof descriptor proto.
911
+ * @name OneofDescriptorProto
912
+ * @type {Type}
913
+ * @const
914
+ * @tstype $protobuf.Type
915
+ */
916
+
917
+ /**
918
+ * Reflected enum descriptor proto.
919
+ * @name EnumDescriptorProto
920
+ * @type {Type}
921
+ * @const
922
+ * @tstype $protobuf.Type
923
+ */
924
+
925
+ /**
926
+ * Reflected service descriptor proto.
927
+ * @name ServiceDescriptorProto
928
+ * @type {Type}
929
+ * @const
930
+ * @tstype $protobuf.Type
931
+ */
932
+
933
+ /**
934
+ * Reflected enum value descriptor proto.
935
+ * @name EnumValueDescriptorProto
936
+ * @type {Type}
937
+ * @const
938
+ * @tstype $protobuf.Type
939
+ */
940
+
941
+ /**
942
+ * Reflected method descriptor proto.
943
+ * @name MethodDescriptorProto
944
+ * @type {Type}
945
+ * @const
946
+ * @tstype $protobuf.Type
947
+ */
948
+
949
+ /**
950
+ * Reflected file options.
951
+ * @name FileOptions
952
+ * @type {Type}
953
+ * @property {Enum} OptimizeMode
954
+ * @const
955
+ * @tstype $protobuf.Type & {
956
+ * OptimizeMode: $protobuf.Enum
957
+ * }
958
+ */
959
+
960
+ /**
961
+ * Reflected message options.
962
+ * @name MessageOptions
963
+ * @type {Type}
964
+ * @const
965
+ * @tstype $protobuf.Type
966
+ */
967
+
968
+ /**
969
+ * Reflected field options.
970
+ * @name FieldOptions
971
+ * @type {Type}
972
+ * @property {Enum} CType
973
+ * @property {Enum} JSType
974
+ * @const
975
+ * @tstype $protobuf.Type & {
976
+ * CType: $protobuf.Enum,
977
+ * JSType: $protobuf.Enum
978
+ * }
979
+ */
980
+
981
+ /**
982
+ * Reflected oneof options.
983
+ * @name OneofOptions
984
+ * @type {Type}
985
+ * @const
986
+ * @tstype $protobuf.Type
987
+ */
988
+
989
+ /**
990
+ * Reflected enum options.
991
+ * @name EnumOptions
992
+ * @type {Type}
993
+ * @const
994
+ * @tstype $protobuf.Type
995
+ */
996
+
997
+ /**
998
+ * Reflected enum value options.
999
+ * @name EnumValueOptions
1000
+ * @type {Type}
1001
+ * @const
1002
+ * @tstype $protobuf.Type
1003
+ */
1004
+
1005
+ /**
1006
+ * Reflected service options.
1007
+ * @name ServiceOptions
1008
+ * @type {Type}
1009
+ * @const
1010
+ * @tstype $protobuf.Type
1011
+ */
1012
+
1013
+ /**
1014
+ * Reflected method options.
1015
+ * @name MethodOptions
1016
+ * @type {Type}
1017
+ * @const
1018
+ * @tstype $protobuf.Type
1019
+ */
1020
+
1021
+ /**
1022
+ * Reflected uninterpretet option.
1023
+ * @name UninterpretedOption
1024
+ * @type {Type}
1025
+ * @property {Type} NamePart
1026
+ * @const
1027
+ * @tstype $protobuf.Type & {
1028
+ * NamePart: $protobuf.Type
1029
+ * }
1030
+ */
1031
+
1032
+ /**
1033
+ * Reflected source code info.
1034
+ * @name SourceCodeInfo
1035
+ * @type {Type}
1036
+ * @property {Type} Location
1037
+ * @const
1038
+ * @tstype $protobuf.Type & {
1039
+ * Location: $protobuf.Type
1040
+ * }
1041
+ */
1042
+
1043
+ /**
1044
+ * Reflected generated code info.
1045
+ * @name GeneratedCodeInfo
1046
+ * @type {Type}
1047
+ * @property {Type} Annotation
1048
+ * @const
1049
+ * @tstype $protobuf.Type & {
1050
+ * Annotation: $protobuf.Type
1051
+ * }
1052
+ */