@reptilestyle/grpc-js 1.9.14-compression.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +79 -0
  3. package/build/src/admin.d.ts +11 -0
  4. package/build/src/admin.js +30 -0
  5. package/build/src/admin.js.map +1 -0
  6. package/build/src/backoff-timeout.d.ts +90 -0
  7. package/build/src/backoff-timeout.js +174 -0
  8. package/build/src/backoff-timeout.js.map +1 -0
  9. package/build/src/call-credentials.d.ts +56 -0
  10. package/build/src/call-credentials.js +153 -0
  11. package/build/src/call-credentials.js.map +1 -0
  12. package/build/src/call-interface.d.ts +85 -0
  13. package/build/src/call-interface.js +84 -0
  14. package/build/src/call-interface.js.map +1 -0
  15. package/build/src/call-number.d.ts +1 -0
  16. package/build/src/call-number.js +24 -0
  17. package/build/src/call-number.js.map +1 -0
  18. package/build/src/call.d.ts +80 -0
  19. package/build/src/call.js +136 -0
  20. package/build/src/call.js.map +1 -0
  21. package/build/src/channel-credentials.d.ts +81 -0
  22. package/build/src/channel-credentials.js +177 -0
  23. package/build/src/channel-credentials.js.map +1 -0
  24. package/build/src/channel-options.d.ts +72 -0
  25. package/build/src/channel-options.js +69 -0
  26. package/build/src/channel-options.js.map +1 -0
  27. package/build/src/channel.d.ts +76 -0
  28. package/build/src/channel.js +68 -0
  29. package/build/src/channel.js.map +1 -0
  30. package/build/src/channelz.d.ts +108 -0
  31. package/build/src/channelz.js +637 -0
  32. package/build/src/channelz.js.map +1 -0
  33. package/build/src/client-interceptors.d.ts +120 -0
  34. package/build/src/client-interceptors.js +428 -0
  35. package/build/src/client-interceptors.js.map +1 -0
  36. package/build/src/client.d.ts +74 -0
  37. package/build/src/client.js +431 -0
  38. package/build/src/client.js.map +1 -0
  39. package/build/src/compression-algorithms.d.ts +5 -0
  40. package/build/src/compression-algorithms.js +26 -0
  41. package/build/src/compression-algorithms.js.map +1 -0
  42. package/build/src/compression-filter.d.ts +26 -0
  43. package/build/src/compression-filter.js +257 -0
  44. package/build/src/compression-filter.js.map +1 -0
  45. package/build/src/connectivity-state.d.ts +7 -0
  46. package/build/src/connectivity-state.js +28 -0
  47. package/build/src/connectivity-state.js.map +1 -0
  48. package/build/src/constants.d.ts +38 -0
  49. package/build/src/constants.js +64 -0
  50. package/build/src/constants.js.map +1 -0
  51. package/build/src/control-plane-status.d.ts +5 -0
  52. package/build/src/control-plane-status.js +42 -0
  53. package/build/src/control-plane-status.js.map +1 -0
  54. package/build/src/deadline.d.ts +14 -0
  55. package/build/src/deadline.js +97 -0
  56. package/build/src/deadline.js.map +1 -0
  57. package/build/src/duration.d.ts +7 -0
  58. package/build/src/duration.js +34 -0
  59. package/build/src/duration.js.map +1 -0
  60. package/build/src/error.d.ts +2 -0
  61. package/build/src/error.js +40 -0
  62. package/build/src/error.js.map +1 -0
  63. package/build/src/events.d.ts +9 -0
  64. package/build/src/events.js +19 -0
  65. package/build/src/events.js.map +1 -0
  66. package/build/src/experimental.d.ts +16 -0
  67. package/build/src/experimental.js +39 -0
  68. package/build/src/experimental.js.map +1 -0
  69. package/build/src/filter-stack.d.ts +21 -0
  70. package/build/src/filter-stack.js +82 -0
  71. package/build/src/filter-stack.js.map +1 -0
  72. package/build/src/filter.d.ts +25 -0
  73. package/build/src/filter.js +38 -0
  74. package/build/src/filter.js.map +1 -0
  75. package/build/src/generated/channelz.d.ts +72 -0
  76. package/build/src/generated/channelz.js +3 -0
  77. package/build/src/generated/channelz.js.map +1 -0
  78. package/build/src/generated/google/protobuf/Any.d.ts +9 -0
  79. package/build/src/generated/google/protobuf/Any.js +4 -0
  80. package/build/src/generated/google/protobuf/Any.js.map +1 -0
  81. package/build/src/generated/google/protobuf/BoolValue.d.ts +6 -0
  82. package/build/src/generated/google/protobuf/BoolValue.js +4 -0
  83. package/build/src/generated/google/protobuf/BoolValue.js.map +1 -0
  84. package/build/src/generated/google/protobuf/BytesValue.d.ts +6 -0
  85. package/build/src/generated/google/protobuf/BytesValue.js +4 -0
  86. package/build/src/generated/google/protobuf/BytesValue.js.map +1 -0
  87. package/build/src/generated/google/protobuf/DoubleValue.d.ts +6 -0
  88. package/build/src/generated/google/protobuf/DoubleValue.js +4 -0
  89. package/build/src/generated/google/protobuf/DoubleValue.js.map +1 -0
  90. package/build/src/generated/google/protobuf/Duration.d.ts +9 -0
  91. package/build/src/generated/google/protobuf/Duration.js +4 -0
  92. package/build/src/generated/google/protobuf/Duration.js.map +1 -0
  93. package/build/src/generated/google/protobuf/FloatValue.d.ts +6 -0
  94. package/build/src/generated/google/protobuf/FloatValue.js +4 -0
  95. package/build/src/generated/google/protobuf/FloatValue.js.map +1 -0
  96. package/build/src/generated/google/protobuf/Int32Value.d.ts +6 -0
  97. package/build/src/generated/google/protobuf/Int32Value.js +4 -0
  98. package/build/src/generated/google/protobuf/Int32Value.js.map +1 -0
  99. package/build/src/generated/google/protobuf/Int64Value.d.ts +7 -0
  100. package/build/src/generated/google/protobuf/Int64Value.js +4 -0
  101. package/build/src/generated/google/protobuf/Int64Value.js.map +1 -0
  102. package/build/src/generated/google/protobuf/StringValue.d.ts +6 -0
  103. package/build/src/generated/google/protobuf/StringValue.js +4 -0
  104. package/build/src/generated/google/protobuf/StringValue.js.map +1 -0
  105. package/build/src/generated/google/protobuf/Timestamp.d.ts +9 -0
  106. package/build/src/generated/google/protobuf/Timestamp.js +4 -0
  107. package/build/src/generated/google/protobuf/Timestamp.js.map +1 -0
  108. package/build/src/generated/google/protobuf/UInt32Value.d.ts +6 -0
  109. package/build/src/generated/google/protobuf/UInt32Value.js +4 -0
  110. package/build/src/generated/google/protobuf/UInt32Value.js.map +1 -0
  111. package/build/src/generated/google/protobuf/UInt64Value.d.ts +7 -0
  112. package/build/src/generated/google/protobuf/UInt64Value.js +4 -0
  113. package/build/src/generated/google/protobuf/UInt64Value.js.map +1 -0
  114. package/build/src/generated/grpc/channelz/v1/Address.d.ts +79 -0
  115. package/build/src/generated/grpc/channelz/v1/Address.js +4 -0
  116. package/build/src/generated/grpc/channelz/v1/Address.js.map +1 -0
  117. package/build/src/generated/grpc/channelz/v1/Channel.d.ts +64 -0
  118. package/build/src/generated/grpc/channelz/v1/Channel.js +4 -0
  119. package/build/src/generated/grpc/channelz/v1/Channel.js.map +1 -0
  120. package/build/src/generated/grpc/channelz/v1/ChannelConnectivityState.d.ts +24 -0
  121. package/build/src/generated/grpc/channelz/v1/ChannelConnectivityState.js +14 -0
  122. package/build/src/generated/grpc/channelz/v1/ChannelConnectivityState.js.map +1 -0
  123. package/build/src/generated/grpc/channelz/v1/ChannelData.d.ts +72 -0
  124. package/build/src/generated/grpc/channelz/v1/ChannelData.js +4 -0
  125. package/build/src/generated/grpc/channelz/v1/ChannelData.js.map +1 -0
  126. package/build/src/generated/grpc/channelz/v1/ChannelRef.d.ts +27 -0
  127. package/build/src/generated/grpc/channelz/v1/ChannelRef.js +4 -0
  128. package/build/src/generated/grpc/channelz/v1/ChannelRef.js.map +1 -0
  129. package/build/src/generated/grpc/channelz/v1/ChannelTrace.d.ts +41 -0
  130. package/build/src/generated/grpc/channelz/v1/ChannelTrace.js +4 -0
  131. package/build/src/generated/grpc/channelz/v1/ChannelTrace.js.map +1 -0
  132. package/build/src/generated/grpc/channelz/v1/ChannelTraceEvent.d.ts +74 -0
  133. package/build/src/generated/grpc/channelz/v1/ChannelTraceEvent.js +15 -0
  134. package/build/src/generated/grpc/channelz/v1/ChannelTraceEvent.js.map +1 -0
  135. package/build/src/generated/grpc/channelz/v1/Channelz.d.ts +159 -0
  136. package/build/src/generated/grpc/channelz/v1/Channelz.js +4 -0
  137. package/build/src/generated/grpc/channelz/v1/Channelz.js.map +1 -0
  138. package/build/src/generated/grpc/channelz/v1/GetChannelRequest.d.ts +13 -0
  139. package/build/src/generated/grpc/channelz/v1/GetChannelRequest.js +4 -0
  140. package/build/src/generated/grpc/channelz/v1/GetChannelRequest.js.map +1 -0
  141. package/build/src/generated/grpc/channelz/v1/GetChannelResponse.d.ts +15 -0
  142. package/build/src/generated/grpc/channelz/v1/GetChannelResponse.js +4 -0
  143. package/build/src/generated/grpc/channelz/v1/GetChannelResponse.js.map +1 -0
  144. package/build/src/generated/grpc/channelz/v1/GetServerRequest.d.ts +13 -0
  145. package/build/src/generated/grpc/channelz/v1/GetServerRequest.js +4 -0
  146. package/build/src/generated/grpc/channelz/v1/GetServerRequest.js.map +1 -0
  147. package/build/src/generated/grpc/channelz/v1/GetServerResponse.d.ts +15 -0
  148. package/build/src/generated/grpc/channelz/v1/GetServerResponse.js +4 -0
  149. package/build/src/generated/grpc/channelz/v1/GetServerResponse.js.map +1 -0
  150. package/build/src/generated/grpc/channelz/v1/GetServerSocketsRequest.d.ts +35 -0
  151. package/build/src/generated/grpc/channelz/v1/GetServerSocketsRequest.js +4 -0
  152. package/build/src/generated/grpc/channelz/v1/GetServerSocketsRequest.js.map +1 -0
  153. package/build/src/generated/grpc/channelz/v1/GetServerSocketsResponse.d.ts +29 -0
  154. package/build/src/generated/grpc/channelz/v1/GetServerSocketsResponse.js +4 -0
  155. package/build/src/generated/grpc/channelz/v1/GetServerSocketsResponse.js.map +1 -0
  156. package/build/src/generated/grpc/channelz/v1/GetServersRequest.d.ts +33 -0
  157. package/build/src/generated/grpc/channelz/v1/GetServersRequest.js +4 -0
  158. package/build/src/generated/grpc/channelz/v1/GetServersRequest.js.map +1 -0
  159. package/build/src/generated/grpc/channelz/v1/GetServersResponse.d.ts +29 -0
  160. package/build/src/generated/grpc/channelz/v1/GetServersResponse.js +4 -0
  161. package/build/src/generated/grpc/channelz/v1/GetServersResponse.js.map +1 -0
  162. package/build/src/generated/grpc/channelz/v1/GetSocketRequest.d.ts +25 -0
  163. package/build/src/generated/grpc/channelz/v1/GetSocketRequest.js +4 -0
  164. package/build/src/generated/grpc/channelz/v1/GetSocketRequest.js.map +1 -0
  165. package/build/src/generated/grpc/channelz/v1/GetSocketResponse.d.ts +15 -0
  166. package/build/src/generated/grpc/channelz/v1/GetSocketResponse.js +4 -0
  167. package/build/src/generated/grpc/channelz/v1/GetSocketResponse.js.map +1 -0
  168. package/build/src/generated/grpc/channelz/v1/GetSubchannelRequest.d.ts +13 -0
  169. package/build/src/generated/grpc/channelz/v1/GetSubchannelRequest.js +4 -0
  170. package/build/src/generated/grpc/channelz/v1/GetSubchannelRequest.js.map +1 -0
  171. package/build/src/generated/grpc/channelz/v1/GetSubchannelResponse.d.ts +15 -0
  172. package/build/src/generated/grpc/channelz/v1/GetSubchannelResponse.js +4 -0
  173. package/build/src/generated/grpc/channelz/v1/GetSubchannelResponse.js.map +1 -0
  174. package/build/src/generated/grpc/channelz/v1/GetTopChannelsRequest.d.ts +33 -0
  175. package/build/src/generated/grpc/channelz/v1/GetTopChannelsRequest.js +4 -0
  176. package/build/src/generated/grpc/channelz/v1/GetTopChannelsRequest.js.map +1 -0
  177. package/build/src/generated/grpc/channelz/v1/GetTopChannelsResponse.d.ts +29 -0
  178. package/build/src/generated/grpc/channelz/v1/GetTopChannelsResponse.js +4 -0
  179. package/build/src/generated/grpc/channelz/v1/GetTopChannelsResponse.js.map +1 -0
  180. package/build/src/generated/grpc/channelz/v1/Security.d.ts +79 -0
  181. package/build/src/generated/grpc/channelz/v1/Security.js +4 -0
  182. package/build/src/generated/grpc/channelz/v1/Security.js.map +1 -0
  183. package/build/src/generated/grpc/channelz/v1/Server.d.ts +41 -0
  184. package/build/src/generated/grpc/channelz/v1/Server.js +4 -0
  185. package/build/src/generated/grpc/channelz/v1/Server.js.map +1 -0
  186. package/build/src/generated/grpc/channelz/v1/ServerData.d.ts +53 -0
  187. package/build/src/generated/grpc/channelz/v1/ServerData.js +4 -0
  188. package/build/src/generated/grpc/channelz/v1/ServerData.js.map +1 -0
  189. package/build/src/generated/grpc/channelz/v1/ServerRef.d.ts +27 -0
  190. package/build/src/generated/grpc/channelz/v1/ServerRef.js +4 -0
  191. package/build/src/generated/grpc/channelz/v1/ServerRef.js.map +1 -0
  192. package/build/src/generated/grpc/channelz/v1/Socket.d.ts +66 -0
  193. package/build/src/generated/grpc/channelz/v1/Socket.js +4 -0
  194. package/build/src/generated/grpc/channelz/v1/Socket.js.map +1 -0
  195. package/build/src/generated/grpc/channelz/v1/SocketData.d.ts +146 -0
  196. package/build/src/generated/grpc/channelz/v1/SocketData.js +4 -0
  197. package/build/src/generated/grpc/channelz/v1/SocketData.js.map +1 -0
  198. package/build/src/generated/grpc/channelz/v1/SocketOption.d.ts +43 -0
  199. package/build/src/generated/grpc/channelz/v1/SocketOption.js +4 -0
  200. package/build/src/generated/grpc/channelz/v1/SocketOption.js.map +1 -0
  201. package/build/src/generated/grpc/channelz/v1/SocketOptionLinger.d.ts +29 -0
  202. package/build/src/generated/grpc/channelz/v1/SocketOptionLinger.js +4 -0
  203. package/build/src/generated/grpc/channelz/v1/SocketOptionLinger.js.map +1 -0
  204. package/build/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.d.ts +70 -0
  205. package/build/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.js +4 -0
  206. package/build/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.js.map +1 -0
  207. package/build/src/generated/grpc/channelz/v1/SocketOptionTimeout.d.ts +15 -0
  208. package/build/src/generated/grpc/channelz/v1/SocketOptionTimeout.js +4 -0
  209. package/build/src/generated/grpc/channelz/v1/SocketOptionTimeout.js.map +1 -0
  210. package/build/src/generated/grpc/channelz/v1/SocketRef.d.ts +27 -0
  211. package/build/src/generated/grpc/channelz/v1/SocketRef.js +4 -0
  212. package/build/src/generated/grpc/channelz/v1/SocketRef.js.map +1 -0
  213. package/build/src/generated/grpc/channelz/v1/Subchannel.d.ts +66 -0
  214. package/build/src/generated/grpc/channelz/v1/Subchannel.js +4 -0
  215. package/build/src/generated/grpc/channelz/v1/Subchannel.js.map +1 -0
  216. package/build/src/generated/grpc/channelz/v1/SubchannelRef.d.ts +27 -0
  217. package/build/src/generated/grpc/channelz/v1/SubchannelRef.js +4 -0
  218. package/build/src/generated/grpc/channelz/v1/SubchannelRef.js.map +1 -0
  219. package/build/src/http_proxy.d.ts +15 -0
  220. package/build/src/http_proxy.js +259 -0
  221. package/build/src/http_proxy.js.map +1 -0
  222. package/build/src/index.d.ts +76 -0
  223. package/build/src/index.js +140 -0
  224. package/build/src/index.js.map +1 -0
  225. package/build/src/internal-channel.d.ts +118 -0
  226. package/build/src/internal-channel.js +535 -0
  227. package/build/src/internal-channel.js.map +1 -0
  228. package/build/src/load-balancer-child-handler.d.ts +24 -0
  229. package/build/src/load-balancer-child-handler.js +151 -0
  230. package/build/src/load-balancer-child-handler.js.map +1 -0
  231. package/build/src/load-balancer-outlier-detection.d.ts +61 -0
  232. package/build/src/load-balancer-outlier-detection.js +608 -0
  233. package/build/src/load-balancer-outlier-detection.js.map +1 -0
  234. package/build/src/load-balancer-pick-first.d.ts +97 -0
  235. package/build/src/load-balancer-pick-first.js +393 -0
  236. package/build/src/load-balancer-pick-first.js.map +1 -0
  237. package/build/src/load-balancer-round-robin.d.ts +21 -0
  238. package/build/src/load-balancer-round-robin.js +174 -0
  239. package/build/src/load-balancer-round-robin.js.map +1 -0
  240. package/build/src/load-balancer.d.ts +97 -0
  241. package/build/src/load-balancer.js +102 -0
  242. package/build/src/load-balancer.js.map +1 -0
  243. package/build/src/load-balancing-call.d.ts +44 -0
  244. package/build/src/load-balancing-call.js +269 -0
  245. package/build/src/load-balancing-call.js.map +1 -0
  246. package/build/src/logging.d.ts +7 -0
  247. package/build/src/logging.js +114 -0
  248. package/build/src/logging.js.map +1 -0
  249. package/build/src/make-client.d.ts +71 -0
  250. package/build/src/make-client.js +143 -0
  251. package/build/src/make-client.js.map +1 -0
  252. package/build/src/max-message-size-filter.d.ts +15 -0
  253. package/build/src/max-message-size-filter.js +86 -0
  254. package/build/src/max-message-size-filter.js.map +1 -0
  255. package/build/src/metadata.d.ts +84 -0
  256. package/build/src/metadata.js +249 -0
  257. package/build/src/metadata.js.map +1 -0
  258. package/build/src/object-stream.d.ts +27 -0
  259. package/build/src/object-stream.js +19 -0
  260. package/build/src/object-stream.js.map +1 -0
  261. package/build/src/picker.d.ts +91 -0
  262. package/build/src/picker.js +78 -0
  263. package/build/src/picker.js.map +1 -0
  264. package/build/src/resolver-dns.d.ts +13 -0
  265. package/build/src/resolver-dns.js +328 -0
  266. package/build/src/resolver-dns.js.map +1 -0
  267. package/build/src/resolver-ip.d.ts +1 -0
  268. package/build/src/resolver-ip.js +104 -0
  269. package/build/src/resolver-ip.js.map +1 -0
  270. package/build/src/resolver-uds.d.ts +1 -0
  271. package/build/src/resolver-uds.js +50 -0
  272. package/build/src/resolver-uds.js.map +1 -0
  273. package/build/src/resolver.d.ts +105 -0
  274. package/build/src/resolver.js +87 -0
  275. package/build/src/resolver.js.map +1 -0
  276. package/build/src/resolving-call.d.ts +44 -0
  277. package/build/src/resolving-call.js +273 -0
  278. package/build/src/resolving-call.js.map +1 -0
  279. package/build/src/resolving-load-balancer.d.ts +67 -0
  280. package/build/src/resolving-load-balancer.js +304 -0
  281. package/build/src/resolving-load-balancer.js.map +1 -0
  282. package/build/src/retrying-call.d.ts +94 -0
  283. package/build/src/retrying-call.js +639 -0
  284. package/build/src/retrying-call.js.map +1 -0
  285. package/build/src/server-call.d.ts +159 -0
  286. package/build/src/server-call.js +700 -0
  287. package/build/src/server-call.js.map +1 -0
  288. package/build/src/server-credentials.d.ts +11 -0
  289. package/build/src/server-credentials.js +81 -0
  290. package/build/src/server-credentials.js.map +1 -0
  291. package/build/src/server.d.ts +56 -0
  292. package/build/src/server.js +892 -0
  293. package/build/src/server.js.map +1 -0
  294. package/build/src/service-config.d.ts +56 -0
  295. package/build/src/service-config.js +416 -0
  296. package/build/src/service-config.js.map +1 -0
  297. package/build/src/status-builder.d.ts +28 -0
  298. package/build/src/status-builder.js +68 -0
  299. package/build/src/status-builder.js.map +1 -0
  300. package/build/src/stream-decoder.d.ts +10 -0
  301. package/build/src/stream-decoder.js +96 -0
  302. package/build/src/stream-decoder.js.map +1 -0
  303. package/build/src/subchannel-address.d.ts +18 -0
  304. package/build/src/subchannel-address.js +65 -0
  305. package/build/src/subchannel-address.js.map +1 -0
  306. package/build/src/subchannel-call.d.ts +61 -0
  307. package/build/src/subchannel-call.js +461 -0
  308. package/build/src/subchannel-call.js.map +1 -0
  309. package/build/src/subchannel-interface.d.ts +49 -0
  310. package/build/src/subchannel-interface.js +59 -0
  311. package/build/src/subchannel-interface.js.map +1 -0
  312. package/build/src/subchannel-pool.d.ts +40 -0
  313. package/build/src/subchannel-pool.js +137 -0
  314. package/build/src/subchannel-pool.js.map +1 -0
  315. package/build/src/subchannel.d.ts +119 -0
  316. package/build/src/subchannel.js +353 -0
  317. package/build/src/subchannel.js.map +1 -0
  318. package/build/src/tls-helpers.d.ts +2 -0
  319. package/build/src/tls-helpers.js +34 -0
  320. package/build/src/tls-helpers.js.map +1 -0
  321. package/build/src/transport.d.ts +130 -0
  322. package/build/src/transport.js +640 -0
  323. package/build/src/transport.js.map +1 -0
  324. package/build/src/uri-parser.d.ts +12 -0
  325. package/build/src/uri-parser.js +110 -0
  326. package/build/src/uri-parser.js.map +1 -0
  327. package/package.json +85 -0
  328. package/proto/channelz.proto +564 -0
  329. package/src/admin.ts +45 -0
  330. package/src/backoff-timeout.ts +196 -0
  331. package/src/call-credentials.ts +226 -0
  332. package/src/call-interface.ts +173 -0
  333. package/src/call-number.ts +22 -0
  334. package/src/call.ts +200 -0
  335. package/src/channel-credentials.ts +267 -0
  336. package/src/channel-options.ts +119 -0
  337. package/src/channel.ts +174 -0
  338. package/src/channelz.ts +886 -0
  339. package/src/client-interceptors.ts +577 -0
  340. package/src/client.ts +715 -0
  341. package/src/compression-algorithms.ts +22 -0
  342. package/src/compression-filter.ts +315 -0
  343. package/src/connectivity-state.ts +24 -0
  344. package/src/constants.ts +66 -0
  345. package/src/control-plane-status.ts +43 -0
  346. package/src/deadline.ts +95 -0
  347. package/src/duration.ts +36 -0
  348. package/src/error.ts +37 -0
  349. package/src/events.ts +26 -0
  350. package/src/experimental.ts +48 -0
  351. package/src/filter-stack.ts +100 -0
  352. package/src/filter.ts +63 -0
  353. package/src/generated/channelz.ts +73 -0
  354. package/src/generated/google/protobuf/Any.ts +13 -0
  355. package/src/generated/google/protobuf/BoolValue.ts +10 -0
  356. package/src/generated/google/protobuf/BytesValue.ts +10 -0
  357. package/src/generated/google/protobuf/DoubleValue.ts +10 -0
  358. package/src/generated/google/protobuf/Duration.ts +13 -0
  359. package/src/generated/google/protobuf/FloatValue.ts +10 -0
  360. package/src/generated/google/protobuf/Int32Value.ts +10 -0
  361. package/src/generated/google/protobuf/Int64Value.ts +11 -0
  362. package/src/generated/google/protobuf/StringValue.ts +10 -0
  363. package/src/generated/google/protobuf/Timestamp.ts +13 -0
  364. package/src/generated/google/protobuf/UInt32Value.ts +10 -0
  365. package/src/generated/google/protobuf/UInt64Value.ts +11 -0
  366. package/src/generated/grpc/channelz/v1/Address.ts +89 -0
  367. package/src/generated/grpc/channelz/v1/Channel.ts +68 -0
  368. package/src/generated/grpc/channelz/v1/ChannelConnectivityState.ts +45 -0
  369. package/src/generated/grpc/channelz/v1/ChannelData.ts +76 -0
  370. package/src/generated/grpc/channelz/v1/ChannelRef.ts +31 -0
  371. package/src/generated/grpc/channelz/v1/ChannelTrace.ts +45 -0
  372. package/src/generated/grpc/channelz/v1/ChannelTraceEvent.ts +91 -0
  373. package/src/generated/grpc/channelz/v1/Channelz.ts +178 -0
  374. package/src/generated/grpc/channelz/v1/GetChannelRequest.ts +17 -0
  375. package/src/generated/grpc/channelz/v1/GetChannelResponse.ts +19 -0
  376. package/src/generated/grpc/channelz/v1/GetServerRequest.ts +17 -0
  377. package/src/generated/grpc/channelz/v1/GetServerResponse.ts +19 -0
  378. package/src/generated/grpc/channelz/v1/GetServerSocketsRequest.ts +39 -0
  379. package/src/generated/grpc/channelz/v1/GetServerSocketsResponse.ts +33 -0
  380. package/src/generated/grpc/channelz/v1/GetServersRequest.ts +37 -0
  381. package/src/generated/grpc/channelz/v1/GetServersResponse.ts +33 -0
  382. package/src/generated/grpc/channelz/v1/GetSocketRequest.ts +29 -0
  383. package/src/generated/grpc/channelz/v1/GetSocketResponse.ts +19 -0
  384. package/src/generated/grpc/channelz/v1/GetSubchannelRequest.ts +17 -0
  385. package/src/generated/grpc/channelz/v1/GetSubchannelResponse.ts +19 -0
  386. package/src/generated/grpc/channelz/v1/GetTopChannelsRequest.ts +37 -0
  387. package/src/generated/grpc/channelz/v1/GetTopChannelsResponse.ts +33 -0
  388. package/src/generated/grpc/channelz/v1/Security.ts +87 -0
  389. package/src/generated/grpc/channelz/v1/Server.ts +45 -0
  390. package/src/generated/grpc/channelz/v1/ServerData.ts +57 -0
  391. package/src/generated/grpc/channelz/v1/ServerRef.ts +31 -0
  392. package/src/generated/grpc/channelz/v1/Socket.ts +70 -0
  393. package/src/generated/grpc/channelz/v1/SocketData.ts +150 -0
  394. package/src/generated/grpc/channelz/v1/SocketOption.ts +47 -0
  395. package/src/generated/grpc/channelz/v1/SocketOptionLinger.ts +33 -0
  396. package/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.ts +74 -0
  397. package/src/generated/grpc/channelz/v1/SocketOptionTimeout.ts +19 -0
  398. package/src/generated/grpc/channelz/v1/SocketRef.ts +31 -0
  399. package/src/generated/grpc/channelz/v1/Subchannel.ts +70 -0
  400. package/src/generated/grpc/channelz/v1/SubchannelRef.ts +31 -0
  401. package/src/http_proxy.ts +311 -0
  402. package/src/index.ts +284 -0
  403. package/src/internal-channel.ts +832 -0
  404. package/src/load-balancer-child-handler.ts +169 -0
  405. package/src/load-balancer-outlier-detection.ts +882 -0
  406. package/src/load-balancer-pick-first.ts +487 -0
  407. package/src/load-balancer-round-robin.ts +249 -0
  408. package/src/load-balancer.ts +230 -0
  409. package/src/load-balancing-call.ts +351 -0
  410. package/src/logging.ts +123 -0
  411. package/src/make-client.ts +238 -0
  412. package/src/max-message-size-filter.ts +88 -0
  413. package/src/metadata.ts +298 -0
  414. package/src/object-stream.ts +66 -0
  415. package/src/picker.ts +146 -0
  416. package/src/resolver-dns.ts +412 -0
  417. package/src/resolver-ip.ts +120 -0
  418. package/src/resolver-uds.ts +63 -0
  419. package/src/resolver.ts +180 -0
  420. package/src/resolving-call.ts +331 -0
  421. package/src/resolving-load-balancer.ts +403 -0
  422. package/src/retrying-call.ts +821 -0
  423. package/src/server-call.ts +1033 -0
  424. package/src/server-credentials.ts +108 -0
  425. package/src/server.ts +1300 -0
  426. package/src/service-config.ts +542 -0
  427. package/src/status-builder.ts +80 -0
  428. package/src/stream-decoder.ts +105 -0
  429. package/src/subchannel-address.ts +88 -0
  430. package/src/subchannel-call.ts +539 -0
  431. package/src/subchannel-interface.ts +97 -0
  432. package/src/subchannel-pool.ts +176 -0
  433. package/src/subchannel.ts +482 -0
  434. package/src/tls-helpers.ts +35 -0
  435. package/src/transport.ts +824 -0
  436. package/src/uri-parser.ts +114 -0
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2019 gRPC authors.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ *
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.RoundRobinLoadBalancer = void 0;
20
+ exports.setup = setup;
21
+ const load_balancer_1 = require("./load-balancer");
22
+ const connectivity_state_1 = require("./connectivity-state");
23
+ const picker_1 = require("./picker");
24
+ const subchannel_address_1 = require("./subchannel-address");
25
+ const logging = require("./logging");
26
+ const constants_1 = require("./constants");
27
+ const TRACER_NAME = 'round_robin';
28
+ function trace(text) {
29
+ logging.trace(constants_1.LogVerbosity.DEBUG, TRACER_NAME, text);
30
+ }
31
+ const TYPE_NAME = 'round_robin';
32
+ class RoundRobinLoadBalancingConfig {
33
+ getLoadBalancerName() {
34
+ return TYPE_NAME;
35
+ }
36
+ constructor() { }
37
+ toJsonObject() {
38
+ return {
39
+ [TYPE_NAME]: {},
40
+ };
41
+ }
42
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
+ static createFromJson(obj) {
44
+ return new RoundRobinLoadBalancingConfig();
45
+ }
46
+ }
47
+ class RoundRobinPicker {
48
+ constructor(subchannelList, nextIndex = 0) {
49
+ this.subchannelList = subchannelList;
50
+ this.nextIndex = nextIndex;
51
+ }
52
+ pick(pickArgs) {
53
+ const pickedSubchannel = this.subchannelList[this.nextIndex];
54
+ this.nextIndex = (this.nextIndex + 1) % this.subchannelList.length;
55
+ return {
56
+ pickResultType: picker_1.PickResultType.COMPLETE,
57
+ subchannel: pickedSubchannel,
58
+ status: null,
59
+ onCallStarted: null,
60
+ onCallEnded: null,
61
+ };
62
+ }
63
+ /**
64
+ * Check what the next subchannel returned would be. Used by the load
65
+ * balancer implementation to preserve this part of the picker state if
66
+ * possible when a subchannel connects or disconnects.
67
+ */
68
+ peekNextSubchannel() {
69
+ return this.subchannelList[this.nextIndex];
70
+ }
71
+ }
72
+ class RoundRobinLoadBalancer {
73
+ constructor(channelControlHelper) {
74
+ this.channelControlHelper = channelControlHelper;
75
+ this.subchannels = [];
76
+ this.currentState = connectivity_state_1.ConnectivityState.IDLE;
77
+ this.currentReadyPicker = null;
78
+ this.lastError = null;
79
+ this.subchannelStateListener = (subchannel, previousState, newState, keepaliveTime, errorMessage) => {
80
+ this.calculateAndUpdateState();
81
+ if (newState === connectivity_state_1.ConnectivityState.TRANSIENT_FAILURE ||
82
+ newState === connectivity_state_1.ConnectivityState.IDLE) {
83
+ if (errorMessage) {
84
+ this.lastError = errorMessage;
85
+ }
86
+ this.channelControlHelper.requestReresolution();
87
+ subchannel.startConnecting();
88
+ }
89
+ };
90
+ }
91
+ countSubchannelsWithState(state) {
92
+ return this.subchannels.filter(subchannel => subchannel.getConnectivityState() === state).length;
93
+ }
94
+ calculateAndUpdateState() {
95
+ if (this.countSubchannelsWithState(connectivity_state_1.ConnectivityState.READY) > 0) {
96
+ const readySubchannels = this.subchannels.filter(subchannel => subchannel.getConnectivityState() === connectivity_state_1.ConnectivityState.READY);
97
+ let index = 0;
98
+ if (this.currentReadyPicker !== null) {
99
+ index = readySubchannels.indexOf(this.currentReadyPicker.peekNextSubchannel());
100
+ if (index < 0) {
101
+ index = 0;
102
+ }
103
+ }
104
+ this.updateState(connectivity_state_1.ConnectivityState.READY, new RoundRobinPicker(readySubchannels, index));
105
+ }
106
+ else if (this.countSubchannelsWithState(connectivity_state_1.ConnectivityState.CONNECTING) > 0) {
107
+ this.updateState(connectivity_state_1.ConnectivityState.CONNECTING, new picker_1.QueuePicker(this));
108
+ }
109
+ else if (this.countSubchannelsWithState(connectivity_state_1.ConnectivityState.TRANSIENT_FAILURE) > 0) {
110
+ this.updateState(connectivity_state_1.ConnectivityState.TRANSIENT_FAILURE, new picker_1.UnavailablePicker({ details: `No connection established. Last error: ${this.lastError}` }));
111
+ }
112
+ else {
113
+ this.updateState(connectivity_state_1.ConnectivityState.IDLE, new picker_1.QueuePicker(this));
114
+ }
115
+ }
116
+ updateState(newState, picker) {
117
+ trace(connectivity_state_1.ConnectivityState[this.currentState] +
118
+ ' -> ' +
119
+ connectivity_state_1.ConnectivityState[newState]);
120
+ if (newState === connectivity_state_1.ConnectivityState.READY) {
121
+ this.currentReadyPicker = picker;
122
+ }
123
+ else {
124
+ this.currentReadyPicker = null;
125
+ }
126
+ this.currentState = newState;
127
+ this.channelControlHelper.updateState(newState, picker);
128
+ }
129
+ resetSubchannelList() {
130
+ for (const subchannel of this.subchannels) {
131
+ subchannel.removeConnectivityStateListener(this.subchannelStateListener);
132
+ subchannel.unref();
133
+ this.channelControlHelper.removeChannelzChild(subchannel.getChannelzRef());
134
+ }
135
+ this.subchannels = [];
136
+ }
137
+ updateAddressList(addressList, lbConfig) {
138
+ this.resetSubchannelList();
139
+ trace('Connect to address list ' +
140
+ addressList.map(address => (0, subchannel_address_1.subchannelAddressToString)(address)));
141
+ this.subchannels = addressList.map(address => this.channelControlHelper.createSubchannel(address, {}));
142
+ for (const subchannel of this.subchannels) {
143
+ subchannel.ref();
144
+ subchannel.addConnectivityStateListener(this.subchannelStateListener);
145
+ this.channelControlHelper.addChannelzChild(subchannel.getChannelzRef());
146
+ const subchannelState = subchannel.getConnectivityState();
147
+ if (subchannelState === connectivity_state_1.ConnectivityState.IDLE ||
148
+ subchannelState === connectivity_state_1.ConnectivityState.TRANSIENT_FAILURE) {
149
+ subchannel.startConnecting();
150
+ }
151
+ }
152
+ this.calculateAndUpdateState();
153
+ }
154
+ exitIdle() {
155
+ for (const subchannel of this.subchannels) {
156
+ subchannel.startConnecting();
157
+ }
158
+ }
159
+ resetBackoff() {
160
+ /* The pick first load balancer does not have a connection backoff, so this
161
+ * does nothing */
162
+ }
163
+ destroy() {
164
+ this.resetSubchannelList();
165
+ }
166
+ getTypeName() {
167
+ return TYPE_NAME;
168
+ }
169
+ }
170
+ exports.RoundRobinLoadBalancer = RoundRobinLoadBalancer;
171
+ function setup() {
172
+ (0, load_balancer_1.registerLoadBalancerType)(TYPE_NAME, RoundRobinLoadBalancer, RoundRobinLoadBalancingConfig);
173
+ }
174
+ //# sourceMappingURL=load-balancer-round-robin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-balancer-round-robin.js","sourceRoot":"","sources":["../../src/load-balancer-round-robin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAmOH,sBAMC;AAvOD,mDAKyB;AACzB,6DAAyD;AACzD,qCAOkB;AAClB,6DAG8B;AAC9B,qCAAqC;AACrC,2CAA2C;AAM3C,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,CAAC,KAAK,CAAC,wBAAY,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC,MAAM,6BAA6B;IACjC,mBAAmB;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,gBAAe,CAAC;IAEhB,YAAY;QACV,OAAO;YACL,CAAC,SAAS,CAAC,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,MAAM,CAAC,cAAc,CAAC,GAAQ;QAC5B,OAAO,IAAI,6BAA6B,EAAE,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,gBAAgB;IACpB,YACmB,cAAqC,EAC9C,YAAY,CAAC;QADJ,mBAAc,GAAd,cAAc,CAAuB;QAC9C,cAAS,GAAT,SAAS,CAAI;IACpB,CAAC;IAEJ,IAAI,CAAC,QAAkB;QACrB,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QACnE,OAAO;YACL,cAAc,EAAE,uBAAc,CAAC,QAAQ;YACvC,UAAU,EAAE,gBAAgB;YAC5B,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAa,sBAAsB;IAWjC,YAA6B,oBAA0C;QAA1C,yBAAoB,GAApB,oBAAoB,CAAsB;QAV/D,gBAAW,GAA0B,EAAE,CAAC;QAExC,iBAAY,GAAsB,sCAAiB,CAAC,IAAI,CAAC;QAIzD,uBAAkB,GAA4B,IAAI,CAAC;QAEnD,cAAS,GAAkB,IAAI,CAAC;QAGtC,IAAI,CAAC,uBAAuB,GAAG,CAC7B,UAA+B,EAC/B,aAAgC,EAChC,QAA2B,EAC3B,aAAqB,EACrB,YAAqB,EACrB,EAAE;YACF,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IACE,QAAQ,KAAK,sCAAiB,CAAC,iBAAiB;gBAChD,QAAQ,KAAK,sCAAiB,CAAC,IAAI,EACnC,CAAC;gBACD,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;gBAChC,CAAC;gBACD,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,CAAC;gBAChD,UAAU,CAAC,eAAe,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,KAAwB;QACxD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC5B,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,EAAE,KAAK,KAAK,CAC1D,CAAC,MAAM,CAAC;IACX,CAAC;IAEO,uBAAuB;QAC7B,IAAI,IAAI,CAAC,yBAAyB,CAAC,sCAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAC9C,UAAU,CAAC,EAAE,CACX,UAAU,CAAC,oBAAoB,EAAE,KAAK,sCAAiB,CAAC,KAAK,CAChE,CAAC;YACF,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBACrC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAC9B,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAC7C,CAAC;gBACF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,KAAK,GAAG,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,IAAI,CAAC,WAAW,CACd,sCAAiB,CAAC,KAAK,EACvB,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAC9C,CAAC;QACJ,CAAC;aAAM,IACL,IAAI,CAAC,yBAAyB,CAAC,sCAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EAChE,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,sCAAiB,CAAC,UAAU,EAAE,IAAI,oBAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,IACL,IAAI,CAAC,yBAAyB,CAAC,sCAAiB,CAAC,iBAAiB,CAAC,GAAG,CAAC,EACvE,CAAC;YACD,IAAI,CAAC,WAAW,CACd,sCAAiB,CAAC,iBAAiB,EACnC,IAAI,0BAAiB,CAAC,EAAC,OAAO,EAAE,0CAA0C,IAAI,CAAC,SAAS,EAAE,EAAC,CAAC,CAC7F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,sCAAiB,CAAC,IAAI,EAAE,IAAI,oBAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,QAA2B,EAAE,MAAc;QAC7D,KAAK,CACH,sCAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;YAClC,MAAM;YACN,sCAAiB,CAAC,QAAQ,CAAC,CAC9B,CAAC;QACF,IAAI,QAAQ,KAAK,sCAAiB,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,kBAAkB,GAAG,MAA0B,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAEO,mBAAmB;QACzB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,UAAU,CAAC,+BAA+B,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACzE,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAC3C,UAAU,CAAC,cAAc,EAAE,CAC5B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,iBAAiB,CACf,WAAgC,EAChC,QAA6B;QAE7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,KAAK,CACH,0BAA0B;YACxB,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAA,8CAAyB,EAAC,OAAO,CAAC,CAAC,CACjE,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAC3C,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CACxD,CAAC;QACF,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,UAAU,CAAC,GAAG,EAAE,CAAC;YACjB,UAAU,CAAC,4BAA4B,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtE,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;YACxE,MAAM,eAAe,GAAG,UAAU,CAAC,oBAAoB,EAAE,CAAC;YAC1D,IACE,eAAe,KAAK,sCAAiB,CAAC,IAAI;gBAC1C,eAAe,KAAK,sCAAiB,CAAC,iBAAiB,EACvD,CAAC;gBACD,UAAU,CAAC,eAAe,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,UAAU,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,YAAY;QACV;0BACkB;IACpB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IACD,WAAW;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA9ID,wDA8IC;AAED,SAAgB,KAAK;IACnB,IAAA,wCAAwB,EACtB,SAAS,EACT,sBAAsB,EACtB,6BAA6B,CAC9B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { ChannelOptions } from './channel-options';
2
+ import { SubchannelAddress } from './subchannel-address';
3
+ import { ConnectivityState } from './connectivity-state';
4
+ import { Picker } from './picker';
5
+ import { ChannelRef, SubchannelRef } from './channelz';
6
+ import { SubchannelInterface } from './subchannel-interface';
7
+ /**
8
+ * A collection of functions associated with a channel that a load balancer
9
+ * can call as necessary.
10
+ */
11
+ export interface ChannelControlHelper {
12
+ /**
13
+ * Returns a subchannel connected to the specified address.
14
+ * @param subchannelAddress The address to connect to
15
+ * @param subchannelArgs Extra channel arguments specified by the load balancer
16
+ */
17
+ createSubchannel(subchannelAddress: SubchannelAddress, subchannelArgs: ChannelOptions): SubchannelInterface;
18
+ /**
19
+ * Passes a new subchannel picker up to the channel. This is called if either
20
+ * the connectivity state changes or if a different picker is needed for any
21
+ * other reason.
22
+ * @param connectivityState New connectivity state
23
+ * @param picker New picker
24
+ */
25
+ updateState(connectivityState: ConnectivityState, picker: Picker): void;
26
+ /**
27
+ * Request new data from the resolver.
28
+ */
29
+ requestReresolution(): void;
30
+ addChannelzChild(child: ChannelRef | SubchannelRef): void;
31
+ removeChannelzChild(child: ChannelRef | SubchannelRef): void;
32
+ }
33
+ /**
34
+ * Create a child ChannelControlHelper that overrides some methods of the
35
+ * parent while letting others pass through to the parent unmodified. This
36
+ * allows other code to create these children without needing to know about
37
+ * all of the methods to be passed through.
38
+ * @param parent
39
+ * @param overrides
40
+ */
41
+ export declare function createChildChannelControlHelper(parent: ChannelControlHelper, overrides: Partial<ChannelControlHelper>): ChannelControlHelper;
42
+ /**
43
+ * Tracks one or more connected subchannels and determines which subchannel
44
+ * each request should use.
45
+ */
46
+ export interface LoadBalancer {
47
+ /**
48
+ * Gives the load balancer a new list of addresses to start connecting to.
49
+ * The load balancer will start establishing connections with the new list,
50
+ * but will continue using any existing connections until the new connections
51
+ * are established
52
+ * @param addressList The new list of addresses to connect to
53
+ * @param lbConfig The load balancing config object from the service config,
54
+ * if one was provided
55
+ */
56
+ updateAddressList(addressList: SubchannelAddress[], lbConfig: LoadBalancingConfig, attributes: {
57
+ [key: string]: unknown;
58
+ }): void;
59
+ /**
60
+ * If the load balancer is currently in the IDLE state, start connecting.
61
+ */
62
+ exitIdle(): void;
63
+ /**
64
+ * If the load balancer is currently in the CONNECTING or TRANSIENT_FAILURE
65
+ * state, reset the current connection backoff timeout to its base value and
66
+ * transition to CONNECTING if in TRANSIENT_FAILURE.
67
+ */
68
+ resetBackoff(): void;
69
+ /**
70
+ * The load balancer unrefs all of its subchannels and stops calling methods
71
+ * of its channel control helper.
72
+ */
73
+ destroy(): void;
74
+ /**
75
+ * Get the type name for this load balancer type. Must be constant across an
76
+ * entire load balancer implementation class and must match the name that the
77
+ * balancer implementation class was registered with.
78
+ */
79
+ getTypeName(): string;
80
+ }
81
+ export interface LoadBalancerConstructor {
82
+ new (channelControlHelper: ChannelControlHelper): LoadBalancer;
83
+ }
84
+ export interface LoadBalancingConfig {
85
+ getLoadBalancerName(): string;
86
+ toJsonObject(): object;
87
+ }
88
+ export interface LoadBalancingConfigConstructor {
89
+ new (...args: any): LoadBalancingConfig;
90
+ createFromJson(obj: any): LoadBalancingConfig;
91
+ }
92
+ export declare function registerLoadBalancerType(typeName: string, loadBalancerType: LoadBalancerConstructor, loadBalancingConfigType: LoadBalancingConfigConstructor): void;
93
+ export declare function registerDefaultLoadBalancerType(typeName: string): void;
94
+ export declare function createLoadBalancer(config: LoadBalancingConfig, channelControlHelper: ChannelControlHelper): LoadBalancer | null;
95
+ export declare function isLoadBalancerNameRegistered(typeName: string): boolean;
96
+ export declare function getFirstUsableConfig(configs: LoadBalancingConfig[], fallbackTodefault?: true): LoadBalancingConfig;
97
+ export declare function validateLoadBalancingConfig(obj: any): LoadBalancingConfig;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2019 gRPC authors.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ *
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.createChildChannelControlHelper = createChildChannelControlHelper;
20
+ exports.registerLoadBalancerType = registerLoadBalancerType;
21
+ exports.registerDefaultLoadBalancerType = registerDefaultLoadBalancerType;
22
+ exports.createLoadBalancer = createLoadBalancer;
23
+ exports.isLoadBalancerNameRegistered = isLoadBalancerNameRegistered;
24
+ exports.getFirstUsableConfig = getFirstUsableConfig;
25
+ exports.validateLoadBalancingConfig = validateLoadBalancingConfig;
26
+ /**
27
+ * Create a child ChannelControlHelper that overrides some methods of the
28
+ * parent while letting others pass through to the parent unmodified. This
29
+ * allows other code to create these children without needing to know about
30
+ * all of the methods to be passed through.
31
+ * @param parent
32
+ * @param overrides
33
+ */
34
+ function createChildChannelControlHelper(parent, overrides) {
35
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
36
+ return {
37
+ createSubchannel: (_b = (_a = overrides.createSubchannel) === null || _a === void 0 ? void 0 : _a.bind(overrides)) !== null && _b !== void 0 ? _b : parent.createSubchannel.bind(parent),
38
+ updateState: (_d = (_c = overrides.updateState) === null || _c === void 0 ? void 0 : _c.bind(overrides)) !== null && _d !== void 0 ? _d : parent.updateState.bind(parent),
39
+ requestReresolution: (_f = (_e = overrides.requestReresolution) === null || _e === void 0 ? void 0 : _e.bind(overrides)) !== null && _f !== void 0 ? _f : parent.requestReresolution.bind(parent),
40
+ addChannelzChild: (_h = (_g = overrides.addChannelzChild) === null || _g === void 0 ? void 0 : _g.bind(overrides)) !== null && _h !== void 0 ? _h : parent.addChannelzChild.bind(parent),
41
+ removeChannelzChild: (_k = (_j = overrides.removeChannelzChild) === null || _j === void 0 ? void 0 : _j.bind(overrides)) !== null && _k !== void 0 ? _k : parent.removeChannelzChild.bind(parent),
42
+ };
43
+ }
44
+ const registeredLoadBalancerTypes = {};
45
+ let defaultLoadBalancerType = null;
46
+ function registerLoadBalancerType(typeName, loadBalancerType, loadBalancingConfigType) {
47
+ registeredLoadBalancerTypes[typeName] = {
48
+ LoadBalancer: loadBalancerType,
49
+ LoadBalancingConfig: loadBalancingConfigType,
50
+ };
51
+ }
52
+ function registerDefaultLoadBalancerType(typeName) {
53
+ defaultLoadBalancerType = typeName;
54
+ }
55
+ function createLoadBalancer(config, channelControlHelper) {
56
+ const typeName = config.getLoadBalancerName();
57
+ if (typeName in registeredLoadBalancerTypes) {
58
+ return new registeredLoadBalancerTypes[typeName].LoadBalancer(channelControlHelper);
59
+ }
60
+ else {
61
+ return null;
62
+ }
63
+ }
64
+ function isLoadBalancerNameRegistered(typeName) {
65
+ return typeName in registeredLoadBalancerTypes;
66
+ }
67
+ function getFirstUsableConfig(configs, fallbackTodefault = false) {
68
+ for (const config of configs) {
69
+ if (config.getLoadBalancerName() in registeredLoadBalancerTypes) {
70
+ return config;
71
+ }
72
+ }
73
+ if (fallbackTodefault) {
74
+ if (defaultLoadBalancerType) {
75
+ return new registeredLoadBalancerTypes[defaultLoadBalancerType].LoadBalancingConfig();
76
+ }
77
+ else {
78
+ return null;
79
+ }
80
+ }
81
+ else {
82
+ return null;
83
+ }
84
+ }
85
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
+ function validateLoadBalancingConfig(obj) {
87
+ if (!(obj !== null && typeof obj === 'object')) {
88
+ throw new Error('Load balancing config must be an object');
89
+ }
90
+ const keys = Object.keys(obj);
91
+ if (keys.length !== 1) {
92
+ throw new Error('Provided load balancing config has multiple conflicting entries');
93
+ }
94
+ const typeName = keys[0];
95
+ if (typeName in registeredLoadBalancerTypes) {
96
+ return registeredLoadBalancerTypes[typeName].LoadBalancingConfig.createFromJson(obj[typeName]);
97
+ }
98
+ else {
99
+ throw new Error(`Unrecognized load balancing config name ${typeName}`);
100
+ }
101
+ }
102
+ //# sourceMappingURL=load-balancer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-balancer.js","sourceRoot":"","sources":["../../src/load-balancer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AA+CH,0EAoBC;AAqED,4DASC;AAED,0EAEC;AAED,gDAYC;AAED,oEAEC;AAMD,oDAoBC;AAGD,kEAkBC;AA/KD;;;;;;;GAOG;AACH,SAAgB,+BAA+B,CAC7C,MAA4B,EAC5B,SAAwC;;IAExC,OAAO;QACL,gBAAgB,EACd,MAAA,MAAA,SAAS,CAAC,gBAAgB,0CAAE,IAAI,CAAC,SAAS,CAAC,mCAC3C,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,WAAW,EACT,MAAA,MAAA,SAAS,CAAC,WAAW,0CAAE,IAAI,CAAC,SAAS,CAAC,mCAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3E,mBAAmB,EACjB,MAAA,MAAA,SAAS,CAAC,mBAAmB,0CAAE,IAAI,CAAC,SAAS,CAAC,mCAC9C,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;QACzC,gBAAgB,EACd,MAAA,MAAA,SAAS,CAAC,gBAAgB,0CAAE,IAAI,CAAC,SAAS,CAAC,mCAC3C,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,mBAAmB,EACjB,MAAA,MAAA,SAAS,CAAC,mBAAmB,0CAAE,IAAI,CAAC,SAAS,CAAC,mCAC9C,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;KAC1C,CAAC;AACJ,CAAC;AA4DD,MAAM,2BAA2B,GAK7B,EAAE,CAAC;AAEP,IAAI,uBAAuB,GAAkB,IAAI,CAAC;AAElD,SAAgB,wBAAwB,CACtC,QAAgB,EAChB,gBAAyC,EACzC,uBAAuD;IAEvD,2BAA2B,CAAC,QAAQ,CAAC,GAAG;QACtC,YAAY,EAAE,gBAAgB;QAC9B,mBAAmB,EAAE,uBAAuB;KAC7C,CAAC;AACJ,CAAC;AAED,SAAgB,+BAA+B,CAAC,QAAgB;IAC9D,uBAAuB,GAAG,QAAQ,CAAC;AACrC,CAAC;AAED,SAAgB,kBAAkB,CAChC,MAA2B,EAC3B,oBAA0C;IAE1C,MAAM,QAAQ,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC9C,IAAI,QAAQ,IAAI,2BAA2B,EAAE,CAAC;QAC5C,OAAO,IAAI,2BAA2B,CAAC,QAAQ,CAAC,CAAC,YAAY,CAC3D,oBAAoB,CACrB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,4BAA4B,CAAC,QAAgB;IAC3D,OAAO,QAAQ,IAAI,2BAA2B,CAAC;AACjD,CAAC;AAMD,SAAgB,oBAAoB,CAClC,OAA8B,EAC9B,iBAAiB,GAAG,KAAK;IAEzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,mBAAmB,EAAE,IAAI,2BAA2B,EAAE,CAAC;YAChE,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,uBAAuB,EAAE,CAAC;YAC5B,OAAO,IAAI,2BAA2B,CACpC,uBAAuB,CACvB,CAAC,mBAAmB,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,SAAgB,2BAA2B,CAAC,GAAQ;IAClD,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,QAAQ,IAAI,2BAA2B,EAAE,CAAC;QAC5C,OAAO,2BAA2B,CAChC,QAAQ,CACT,CAAC,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { CallCredentials } from './call-credentials';
2
+ import { Call, InterceptingListener, MessageContext, StatusObject } from './call-interface';
3
+ import { Status } from './constants';
4
+ import { Deadline } from './deadline';
5
+ import { InternalChannel } from './internal-channel';
6
+ import { Metadata } from './metadata';
7
+ import { CallConfig } from './resolver';
8
+ export type RpcProgress = 'NOT_STARTED' | 'DROP' | 'REFUSED' | 'PROCESSED';
9
+ export interface StatusObjectWithProgress extends StatusObject {
10
+ progress: RpcProgress;
11
+ }
12
+ export interface LoadBalancingCallInterceptingListener extends InterceptingListener {
13
+ onReceiveStatus(status: StatusObjectWithProgress): void;
14
+ }
15
+ export declare class LoadBalancingCall implements Call {
16
+ private readonly channel;
17
+ private readonly callConfig;
18
+ private readonly methodName;
19
+ private readonly host;
20
+ private readonly credentials;
21
+ private readonly deadline;
22
+ private readonly callNumber;
23
+ private child;
24
+ private readPending;
25
+ private pendingMessage;
26
+ private pendingHalfClose;
27
+ private ended;
28
+ private serviceUrl;
29
+ private metadata;
30
+ private listener;
31
+ private onCallEnded;
32
+ constructor(channel: InternalChannel, callConfig: CallConfig, methodName: string, host: string, credentials: CallCredentials, deadline: Deadline, callNumber: number);
33
+ private trace;
34
+ private outputStatus;
35
+ doPick(): void;
36
+ cancelWithStatus(status: Status, details: string): void;
37
+ getPeer(): string;
38
+ start(metadata: Metadata, listener: LoadBalancingCallInterceptingListener): void;
39
+ sendMessageWithContext(context: MessageContext, message: Buffer): void;
40
+ startRead(): void;
41
+ halfClose(): void;
42
+ setCredentials(credentials: CallCredentials): void;
43
+ getCallNumber(): number;
44
+ }