@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,137 @@
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.SubchannelPool = void 0;
20
+ exports.getSubchannelPool = getSubchannelPool;
21
+ const channel_options_1 = require("./channel-options");
22
+ const subchannel_1 = require("./subchannel");
23
+ const subchannel_address_1 = require("./subchannel-address");
24
+ const uri_parser_1 = require("./uri-parser");
25
+ const transport_1 = require("./transport");
26
+ // 10 seconds in milliseconds. This value is arbitrary.
27
+ /**
28
+ * The amount of time in between checks for dropping subchannels that have no
29
+ * other references
30
+ */
31
+ const REF_CHECK_INTERVAL = 10000;
32
+ class SubchannelPool {
33
+ /**
34
+ * A pool of subchannels use for making connections. Subchannels with the
35
+ * exact same parameters will be reused.
36
+ */
37
+ constructor() {
38
+ this.pool = Object.create(null);
39
+ /**
40
+ * A timer of a task performing a periodic subchannel cleanup.
41
+ */
42
+ this.cleanupTimer = null;
43
+ }
44
+ /**
45
+ * Unrefs all unused subchannels and cancels the cleanup task if all
46
+ * subchannels have been unrefed.
47
+ */
48
+ unrefUnusedSubchannels() {
49
+ let allSubchannelsUnrefed = true;
50
+ /* These objects are created with Object.create(null), so they do not
51
+ * have a prototype, which means that for (... in ...) loops over them
52
+ * do not need to be filtered */
53
+ // eslint-disable-disable-next-line:forin
54
+ for (const channelTarget in this.pool) {
55
+ const subchannelObjArray = this.pool[channelTarget];
56
+ const refedSubchannels = subchannelObjArray.filter(value => !value.subchannel.unrefIfOneRef());
57
+ if (refedSubchannels.length > 0) {
58
+ allSubchannelsUnrefed = false;
59
+ }
60
+ /* For each subchannel in the pool, try to unref it if it has
61
+ * exactly one ref (which is the ref from the pool itself). If that
62
+ * does happen, remove the subchannel from the pool */
63
+ this.pool[channelTarget] = refedSubchannels;
64
+ }
65
+ /* Currently we do not delete keys with empty values. If that results
66
+ * in significant memory usage we should change it. */
67
+ // Cancel the cleanup task if all subchannels have been unrefed.
68
+ if (allSubchannelsUnrefed && this.cleanupTimer !== null) {
69
+ clearInterval(this.cleanupTimer);
70
+ this.cleanupTimer = null;
71
+ }
72
+ }
73
+ /**
74
+ * Ensures that the cleanup task is spawned.
75
+ */
76
+ ensureCleanupTask() {
77
+ var _a, _b;
78
+ if (this.cleanupTimer === null) {
79
+ this.cleanupTimer = setInterval(() => {
80
+ this.unrefUnusedSubchannels();
81
+ }, REF_CHECK_INTERVAL);
82
+ // Unref because this timer should not keep the event loop running.
83
+ // Call unref only if it exists to address electron/electron#21162
84
+ (_b = (_a = this.cleanupTimer).unref) === null || _b === void 0 ? void 0 : _b.call(_a);
85
+ }
86
+ }
87
+ /**
88
+ * Get a subchannel if one already exists with exactly matching parameters.
89
+ * Otherwise, create and save a subchannel with those parameters.
90
+ * @param channelTarget
91
+ * @param subchannelTarget
92
+ * @param channelArguments
93
+ * @param channelCredentials
94
+ */
95
+ getOrCreateSubchannel(channelTargetUri, subchannelTarget, channelArguments, channelCredentials) {
96
+ this.ensureCleanupTask();
97
+ const channelTarget = (0, uri_parser_1.uriToString)(channelTargetUri);
98
+ if (channelTarget in this.pool) {
99
+ const subchannelObjArray = this.pool[channelTarget];
100
+ for (const subchannelObj of subchannelObjArray) {
101
+ if ((0, subchannel_address_1.subchannelAddressEqual)(subchannelTarget, subchannelObj.subchannelAddress) &&
102
+ (0, channel_options_1.channelOptionsEqual)(channelArguments, subchannelObj.channelArguments) &&
103
+ channelCredentials._equals(subchannelObj.channelCredentials)) {
104
+ return subchannelObj.subchannel;
105
+ }
106
+ }
107
+ }
108
+ // If we get here, no matching subchannel was found
109
+ const subchannel = new subchannel_1.Subchannel(channelTargetUri, subchannelTarget, channelArguments, channelCredentials, new transport_1.Http2SubchannelConnector(channelTargetUri));
110
+ if (!(channelTarget in this.pool)) {
111
+ this.pool[channelTarget] = [];
112
+ }
113
+ this.pool[channelTarget].push({
114
+ subchannelAddress: subchannelTarget,
115
+ channelArguments,
116
+ channelCredentials,
117
+ subchannel,
118
+ });
119
+ subchannel.ref();
120
+ return subchannel;
121
+ }
122
+ }
123
+ exports.SubchannelPool = SubchannelPool;
124
+ const globalSubchannelPool = new SubchannelPool();
125
+ /**
126
+ * Get either the global subchannel pool, or a new subchannel pool.
127
+ * @param global
128
+ */
129
+ function getSubchannelPool(global) {
130
+ if (global) {
131
+ return globalSubchannelPool;
132
+ }
133
+ else {
134
+ return new SubchannelPool();
135
+ }
136
+ }
137
+ //# sourceMappingURL=subchannel-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subchannel-pool.js","sourceRoot":"","sources":["../../src/subchannel-pool.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AA0JH,8CAMC;AA9JD,uDAAwE;AACxE,6CAA0C;AAC1C,6DAG8B;AAE9B,6CAAoD;AACpD,2CAAuD;AAEvD,uDAAuD;AACvD;;;GAGG;AACH,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAElC,MAAa,cAAc;IAezB;;;OAGG;IACH;QAlBQ,SAAI,GAOR,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAExB;;WAEG;QACK,iBAAY,GAA0B,IAAI,CAAC;IAMpC,CAAC;IAEhB;;;OAGG;IACH,sBAAsB;QACpB,IAAI,qBAAqB,GAAG,IAAI,CAAC;QAEjC;;wCAEgC;QAChC,yCAAyC;QACzC,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEpD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAChD,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,CAC3C,CAAC;YAEF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,qBAAqB,GAAG,KAAK,CAAC;YAChC,CAAC;YAED;;kEAEsD;YACtD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC;QAC9C,CAAC;QACD;8DACsD;QAEtD,gEAAgE;QAChE,IAAI,qBAAqB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YACxD,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB;;QACf,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;gBACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAEvB,mEAAmE;YACnE,kEAAkE;YAClE,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,KAAK,kDAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,qBAAqB,CACnB,gBAAyB,EACzB,gBAAmC,EACnC,gBAAgC,EAChC,kBAAsC;QAEtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,IAAA,wBAAW,EAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,MAAM,aAAa,IAAI,kBAAkB,EAAE,CAAC;gBAC/C,IACE,IAAA,2CAAsB,EACpB,gBAAgB,EAChB,aAAa,CAAC,iBAAiB,CAChC;oBACD,IAAA,qCAAmB,EACjB,gBAAgB,EAChB,aAAa,CAAC,gBAAgB,CAC/B;oBACD,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAC5D,CAAC;oBACD,OAAO,aAAa,CAAC,UAAU,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QACD,mDAAmD;QACnD,MAAM,UAAU,GAAG,IAAI,uBAAU,CAC/B,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,IAAI,oCAAwB,CAAC,gBAAgB,CAAC,CAC/C,CAAC;QACF,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;YAC5B,iBAAiB,EAAE,gBAAgB;YACnC,gBAAgB;YAChB,kBAAkB;YAClB,UAAU;SACX,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA/HD,wCA+HC;AAED,MAAM,oBAAoB,GAAG,IAAI,cAAc,EAAE,CAAC;AAElD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,MAAe;IAC/C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,oBAAoB,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,cAAc,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -0,0 +1,119 @@
1
+ import { ChannelCredentials } from './channel-credentials';
2
+ import { Metadata } from './metadata';
3
+ import { ChannelOptions } from './channel-options';
4
+ import { ConnectivityState } from './connectivity-state';
5
+ import { GrpcUri } from './uri-parser';
6
+ import { SubchannelAddress } from './subchannel-address';
7
+ import { SubchannelRef } from './channelz';
8
+ import { ConnectivityStateListener, SubchannelInterface } from './subchannel-interface';
9
+ import { SubchannelCallInterceptingListener } from './subchannel-call';
10
+ import { SubchannelCall } from './subchannel-call';
11
+ import { SubchannelConnector } from './transport';
12
+ export declare class Subchannel {
13
+ private channelTarget;
14
+ private subchannelAddress;
15
+ private options;
16
+ private credentials;
17
+ private connector;
18
+ /**
19
+ * The subchannel's current connectivity state. Invariant: `session` === `null`
20
+ * if and only if `connectivityState` is IDLE or TRANSIENT_FAILURE.
21
+ */
22
+ private connectivityState;
23
+ /**
24
+ * The underlying http2 session used to make requests.
25
+ */
26
+ private transport;
27
+ /**
28
+ * Indicates that the subchannel should transition from TRANSIENT_FAILURE to
29
+ * CONNECTING instead of IDLE when the backoff timeout ends.
30
+ */
31
+ private continueConnecting;
32
+ /**
33
+ * A list of listener functions that will be called whenever the connectivity
34
+ * state changes. Will be modified by `addConnectivityStateListener` and
35
+ * `removeConnectivityStateListener`
36
+ */
37
+ private stateListeners;
38
+ private backoffTimeout;
39
+ private keepaliveTime;
40
+ /**
41
+ * Tracks channels and subchannel pools with references to this subchannel
42
+ */
43
+ private refcount;
44
+ /**
45
+ * A string representation of the subchannel address, for logging/tracing
46
+ */
47
+ private subchannelAddressString;
48
+ private readonly channelzEnabled;
49
+ private channelzRef;
50
+ private channelzTrace;
51
+ private callTracker;
52
+ private childrenTracker;
53
+ private streamTracker;
54
+ /**
55
+ * A class representing a connection to a single backend.
56
+ * @param channelTarget The target string for the channel as a whole
57
+ * @param subchannelAddress The address for the backend that this subchannel
58
+ * will connect to
59
+ * @param options The channel options, plus any specific subchannel options
60
+ * for this subchannel
61
+ * @param credentials The channel credentials used to establish this
62
+ * connection
63
+ */
64
+ constructor(channelTarget: GrpcUri, subchannelAddress: SubchannelAddress, options: ChannelOptions, credentials: ChannelCredentials, connector: SubchannelConnector);
65
+ private getChannelzInfo;
66
+ private trace;
67
+ private refTrace;
68
+ private handleBackoffTimer;
69
+ /**
70
+ * Start a backoff timer with the current nextBackoff timeout
71
+ */
72
+ private startBackoff;
73
+ private stopBackoff;
74
+ private startConnectingInternal;
75
+ /**
76
+ * Initiate a state transition from any element of oldStates to the new
77
+ * state. If the current connectivityState is not in oldStates, do nothing.
78
+ * @param oldStates The set of states to transition from
79
+ * @param newState The state to transition to
80
+ * @returns True if the state changed, false otherwise
81
+ */
82
+ private transitionToState;
83
+ ref(): void;
84
+ unref(): void;
85
+ unrefIfOneRef(): boolean;
86
+ createCall(metadata: Metadata, host: string, method: string, listener: SubchannelCallInterceptingListener): SubchannelCall;
87
+ /**
88
+ * If the subchannel is currently IDLE, start connecting and switch to the
89
+ * CONNECTING state. If the subchannel is current in TRANSIENT_FAILURE,
90
+ * the next time it would transition to IDLE, start connecting again instead.
91
+ * Otherwise, do nothing.
92
+ */
93
+ startConnecting(): void;
94
+ /**
95
+ * Get the subchannel's current connectivity state.
96
+ */
97
+ getConnectivityState(): ConnectivityState;
98
+ /**
99
+ * Add a listener function to be called whenever the subchannel's
100
+ * connectivity state changes.
101
+ * @param listener
102
+ */
103
+ addConnectivityStateListener(listener: ConnectivityStateListener): void;
104
+ /**
105
+ * Remove a listener previously added with `addConnectivityStateListener`
106
+ * @param listener A reference to a function previously passed to
107
+ * `addConnectivityStateListener`
108
+ */
109
+ removeConnectivityStateListener(listener: ConnectivityStateListener): void;
110
+ /**
111
+ * Reset the backoff timeout, and immediately start connecting if in backoff.
112
+ */
113
+ resetBackoff(): void;
114
+ getAddress(): string;
115
+ getChannelzRef(): SubchannelRef;
116
+ getRealSubchannel(): this;
117
+ realSubchannelEquals(other: SubchannelInterface): boolean;
118
+ throttleKeepalive(newKeepaliveTime: number): void;
119
+ }
@@ -0,0 +1,353 @@
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.Subchannel = void 0;
20
+ const connectivity_state_1 = require("./connectivity-state");
21
+ const backoff_timeout_1 = require("./backoff-timeout");
22
+ const logging = require("./logging");
23
+ const constants_1 = require("./constants");
24
+ const uri_parser_1 = require("./uri-parser");
25
+ const subchannel_address_1 = require("./subchannel-address");
26
+ const channelz_1 = require("./channelz");
27
+ const TRACER_NAME = 'subchannel';
28
+ /* setInterval and setTimeout only accept signed 32 bit integers. JS doesn't
29
+ * have a constant for the max signed 32 bit integer, so this is a simple way
30
+ * to calculate it */
31
+ const KEEPALIVE_MAX_TIME_MS = ~(1 << 31);
32
+ class Subchannel {
33
+ /**
34
+ * A class representing a connection to a single backend.
35
+ * @param channelTarget The target string for the channel as a whole
36
+ * @param subchannelAddress The address for the backend that this subchannel
37
+ * will connect to
38
+ * @param options The channel options, plus any specific subchannel options
39
+ * for this subchannel
40
+ * @param credentials The channel credentials used to establish this
41
+ * connection
42
+ */
43
+ constructor(channelTarget, subchannelAddress, options, credentials, connector) {
44
+ var _a;
45
+ this.channelTarget = channelTarget;
46
+ this.subchannelAddress = subchannelAddress;
47
+ this.options = options;
48
+ this.credentials = credentials;
49
+ this.connector = connector;
50
+ /**
51
+ * The subchannel's current connectivity state. Invariant: `session` === `null`
52
+ * if and only if `connectivityState` is IDLE or TRANSIENT_FAILURE.
53
+ */
54
+ this.connectivityState = connectivity_state_1.ConnectivityState.IDLE;
55
+ /**
56
+ * The underlying http2 session used to make requests.
57
+ */
58
+ this.transport = null;
59
+ /**
60
+ * Indicates that the subchannel should transition from TRANSIENT_FAILURE to
61
+ * CONNECTING instead of IDLE when the backoff timeout ends.
62
+ */
63
+ this.continueConnecting = false;
64
+ /**
65
+ * A list of listener functions that will be called whenever the connectivity
66
+ * state changes. Will be modified by `addConnectivityStateListener` and
67
+ * `removeConnectivityStateListener`
68
+ */
69
+ this.stateListeners = new Set();
70
+ /**
71
+ * Tracks channels and subchannel pools with references to this subchannel
72
+ */
73
+ this.refcount = 0;
74
+ // Channelz info
75
+ this.channelzEnabled = true;
76
+ this.callTracker = new channelz_1.ChannelzCallTracker();
77
+ this.childrenTracker = new channelz_1.ChannelzChildrenTracker();
78
+ // Channelz socket info
79
+ this.streamTracker = new channelz_1.ChannelzCallTracker();
80
+ const backoffOptions = {
81
+ initialDelay: options['grpc.initial_reconnect_backoff_ms'],
82
+ maxDelay: options['grpc.max_reconnect_backoff_ms'],
83
+ };
84
+ this.backoffTimeout = new backoff_timeout_1.BackoffTimeout(() => {
85
+ this.handleBackoffTimer();
86
+ }, backoffOptions);
87
+ this.backoffTimeout.unref();
88
+ this.subchannelAddressString = (0, subchannel_address_1.subchannelAddressToString)(subchannelAddress);
89
+ this.keepaliveTime = (_a = options['grpc.keepalive_time_ms']) !== null && _a !== void 0 ? _a : -1;
90
+ if (options['grpc.enable_channelz'] === 0) {
91
+ this.channelzEnabled = false;
92
+ }
93
+ this.channelzTrace = new channelz_1.ChannelzTrace();
94
+ this.channelzRef = (0, channelz_1.registerChannelzSubchannel)(this.subchannelAddressString, () => this.getChannelzInfo(), this.channelzEnabled);
95
+ if (this.channelzEnabled) {
96
+ this.channelzTrace.addTrace('CT_INFO', 'Subchannel created');
97
+ }
98
+ this.trace('Subchannel constructed with options ' +
99
+ JSON.stringify(options, undefined, 2));
100
+ }
101
+ getChannelzInfo() {
102
+ return {
103
+ state: this.connectivityState,
104
+ trace: this.channelzTrace,
105
+ callTracker: this.callTracker,
106
+ children: this.childrenTracker.getChildLists(),
107
+ target: this.subchannelAddressString,
108
+ };
109
+ }
110
+ trace(text) {
111
+ logging.trace(constants_1.LogVerbosity.DEBUG, TRACER_NAME, '(' +
112
+ this.channelzRef.id +
113
+ ') ' +
114
+ this.subchannelAddressString +
115
+ ' ' +
116
+ text);
117
+ }
118
+ refTrace(text) {
119
+ logging.trace(constants_1.LogVerbosity.DEBUG, 'subchannel_refcount', '(' +
120
+ this.channelzRef.id +
121
+ ') ' +
122
+ this.subchannelAddressString +
123
+ ' ' +
124
+ text);
125
+ }
126
+ handleBackoffTimer() {
127
+ if (this.continueConnecting) {
128
+ this.transitionToState([connectivity_state_1.ConnectivityState.TRANSIENT_FAILURE], connectivity_state_1.ConnectivityState.CONNECTING);
129
+ }
130
+ else {
131
+ this.transitionToState([connectivity_state_1.ConnectivityState.TRANSIENT_FAILURE], connectivity_state_1.ConnectivityState.IDLE);
132
+ }
133
+ }
134
+ /**
135
+ * Start a backoff timer with the current nextBackoff timeout
136
+ */
137
+ startBackoff() {
138
+ this.backoffTimeout.runOnce();
139
+ }
140
+ stopBackoff() {
141
+ this.backoffTimeout.stop();
142
+ this.backoffTimeout.reset();
143
+ }
144
+ startConnectingInternal() {
145
+ let options = this.options;
146
+ if (options['grpc.keepalive_time_ms']) {
147
+ const adjustedKeepaliveTime = Math.min(this.keepaliveTime, KEEPALIVE_MAX_TIME_MS);
148
+ options = Object.assign(Object.assign({}, options), { 'grpc.keepalive_time_ms': adjustedKeepaliveTime });
149
+ }
150
+ this.connector
151
+ .connect(this.subchannelAddress, this.credentials, options)
152
+ .then(transport => {
153
+ if (this.transitionToState([connectivity_state_1.ConnectivityState.CONNECTING], connectivity_state_1.ConnectivityState.READY)) {
154
+ this.transport = transport;
155
+ if (this.channelzEnabled) {
156
+ this.childrenTracker.refChild(transport.getChannelzRef());
157
+ }
158
+ transport.addDisconnectListener(tooManyPings => {
159
+ this.transitionToState([connectivity_state_1.ConnectivityState.READY], connectivity_state_1.ConnectivityState.IDLE);
160
+ if (tooManyPings && this.keepaliveTime > 0) {
161
+ this.keepaliveTime *= 2;
162
+ logging.log(constants_1.LogVerbosity.ERROR, `Connection to ${(0, uri_parser_1.uriToString)(this.channelTarget)} at ${this.subchannelAddressString} rejected by server because of excess pings. Increasing ping interval to ${this.keepaliveTime} ms`);
163
+ }
164
+ });
165
+ }
166
+ else {
167
+ /* If we can't transition from CONNECTING to READY here, we will
168
+ * not be using this transport, so release its resources. */
169
+ transport.shutdown();
170
+ }
171
+ }, error => {
172
+ this.transitionToState([connectivity_state_1.ConnectivityState.CONNECTING], connectivity_state_1.ConnectivityState.TRANSIENT_FAILURE, `${error}`);
173
+ });
174
+ }
175
+ /**
176
+ * Initiate a state transition from any element of oldStates to the new
177
+ * state. If the current connectivityState is not in oldStates, do nothing.
178
+ * @param oldStates The set of states to transition from
179
+ * @param newState The state to transition to
180
+ * @returns True if the state changed, false otherwise
181
+ */
182
+ transitionToState(oldStates, newState, errorMessage) {
183
+ var _a, _b;
184
+ if (oldStates.indexOf(this.connectivityState) === -1) {
185
+ return false;
186
+ }
187
+ this.trace(connectivity_state_1.ConnectivityState[this.connectivityState] +
188
+ ' -> ' +
189
+ connectivity_state_1.ConnectivityState[newState]);
190
+ if (this.channelzEnabled) {
191
+ this.channelzTrace.addTrace('CT_INFO', 'Connectivity state change to ' + connectivity_state_1.ConnectivityState[newState]);
192
+ }
193
+ const previousState = this.connectivityState;
194
+ this.connectivityState = newState;
195
+ switch (newState) {
196
+ case connectivity_state_1.ConnectivityState.READY:
197
+ this.stopBackoff();
198
+ break;
199
+ case connectivity_state_1.ConnectivityState.CONNECTING:
200
+ this.startBackoff();
201
+ this.startConnectingInternal();
202
+ this.continueConnecting = false;
203
+ break;
204
+ case connectivity_state_1.ConnectivityState.TRANSIENT_FAILURE:
205
+ if (this.channelzEnabled && this.transport) {
206
+ this.childrenTracker.unrefChild(this.transport.getChannelzRef());
207
+ }
208
+ (_a = this.transport) === null || _a === void 0 ? void 0 : _a.shutdown();
209
+ this.transport = null;
210
+ /* If the backoff timer has already ended by the time we get to the
211
+ * TRANSIENT_FAILURE state, we want to immediately transition out of
212
+ * TRANSIENT_FAILURE as though the backoff timer is ending right now */
213
+ if (!this.backoffTimeout.isRunning()) {
214
+ process.nextTick(() => {
215
+ this.handleBackoffTimer();
216
+ });
217
+ }
218
+ break;
219
+ case connectivity_state_1.ConnectivityState.IDLE:
220
+ if (this.channelzEnabled && this.transport) {
221
+ this.childrenTracker.unrefChild(this.transport.getChannelzRef());
222
+ }
223
+ (_b = this.transport) === null || _b === void 0 ? void 0 : _b.shutdown();
224
+ this.transport = null;
225
+ break;
226
+ default:
227
+ throw new Error(`Invalid state: unknown ConnectivityState ${newState}`);
228
+ }
229
+ for (const listener of this.stateListeners) {
230
+ listener(this, previousState, newState, this.keepaliveTime, errorMessage);
231
+ }
232
+ return true;
233
+ }
234
+ ref() {
235
+ this.refTrace('refcount ' + this.refcount + ' -> ' + (this.refcount + 1));
236
+ this.refcount += 1;
237
+ }
238
+ unref() {
239
+ this.refTrace('refcount ' + this.refcount + ' -> ' + (this.refcount - 1));
240
+ this.refcount -= 1;
241
+ if (this.refcount === 0) {
242
+ if (this.channelzEnabled) {
243
+ this.channelzTrace.addTrace('CT_INFO', 'Shutting down');
244
+ }
245
+ if (this.channelzEnabled) {
246
+ (0, channelz_1.unregisterChannelzRef)(this.channelzRef);
247
+ }
248
+ process.nextTick(() => {
249
+ this.transitionToState([connectivity_state_1.ConnectivityState.CONNECTING, connectivity_state_1.ConnectivityState.READY], connectivity_state_1.ConnectivityState.IDLE);
250
+ });
251
+ }
252
+ }
253
+ unrefIfOneRef() {
254
+ if (this.refcount === 1) {
255
+ this.unref();
256
+ return true;
257
+ }
258
+ return false;
259
+ }
260
+ createCall(metadata, host, method, listener) {
261
+ if (!this.transport) {
262
+ throw new Error('Cannot create call, subchannel not READY');
263
+ }
264
+ let statsTracker;
265
+ if (this.channelzEnabled) {
266
+ this.callTracker.addCallStarted();
267
+ this.streamTracker.addCallStarted();
268
+ statsTracker = {
269
+ onCallEnd: status => {
270
+ if (status.code === constants_1.Status.OK) {
271
+ this.callTracker.addCallSucceeded();
272
+ }
273
+ else {
274
+ this.callTracker.addCallFailed();
275
+ }
276
+ },
277
+ };
278
+ }
279
+ else {
280
+ statsTracker = {};
281
+ }
282
+ return this.transport.createCall(metadata, host, method, listener, statsTracker);
283
+ }
284
+ /**
285
+ * If the subchannel is currently IDLE, start connecting and switch to the
286
+ * CONNECTING state. If the subchannel is current in TRANSIENT_FAILURE,
287
+ * the next time it would transition to IDLE, start connecting again instead.
288
+ * Otherwise, do nothing.
289
+ */
290
+ startConnecting() {
291
+ process.nextTick(() => {
292
+ /* First, try to transition from IDLE to connecting. If that doesn't happen
293
+ * because the state is not currently IDLE, check if it is
294
+ * TRANSIENT_FAILURE, and if so indicate that it should go back to
295
+ * connecting after the backoff timer ends. Otherwise do nothing */
296
+ if (!this.transitionToState([connectivity_state_1.ConnectivityState.IDLE], connectivity_state_1.ConnectivityState.CONNECTING)) {
297
+ if (this.connectivityState === connectivity_state_1.ConnectivityState.TRANSIENT_FAILURE) {
298
+ this.continueConnecting = true;
299
+ }
300
+ }
301
+ });
302
+ }
303
+ /**
304
+ * Get the subchannel's current connectivity state.
305
+ */
306
+ getConnectivityState() {
307
+ return this.connectivityState;
308
+ }
309
+ /**
310
+ * Add a listener function to be called whenever the subchannel's
311
+ * connectivity state changes.
312
+ * @param listener
313
+ */
314
+ addConnectivityStateListener(listener) {
315
+ this.stateListeners.add(listener);
316
+ }
317
+ /**
318
+ * Remove a listener previously added with `addConnectivityStateListener`
319
+ * @param listener A reference to a function previously passed to
320
+ * `addConnectivityStateListener`
321
+ */
322
+ removeConnectivityStateListener(listener) {
323
+ this.stateListeners.delete(listener);
324
+ }
325
+ /**
326
+ * Reset the backoff timeout, and immediately start connecting if in backoff.
327
+ */
328
+ resetBackoff() {
329
+ process.nextTick(() => {
330
+ this.backoffTimeout.reset();
331
+ this.transitionToState([connectivity_state_1.ConnectivityState.TRANSIENT_FAILURE], connectivity_state_1.ConnectivityState.CONNECTING);
332
+ });
333
+ }
334
+ getAddress() {
335
+ return this.subchannelAddressString;
336
+ }
337
+ getChannelzRef() {
338
+ return this.channelzRef;
339
+ }
340
+ getRealSubchannel() {
341
+ return this;
342
+ }
343
+ realSubchannelEquals(other) {
344
+ return other.getRealSubchannel() === this;
345
+ }
346
+ throttleKeepalive(newKeepaliveTime) {
347
+ if (newKeepaliveTime > this.keepaliveTime) {
348
+ this.keepaliveTime = newKeepaliveTime;
349
+ }
350
+ }
351
+ }
352
+ exports.Subchannel = Subchannel;
353
+ //# sourceMappingURL=subchannel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subchannel.js","sourceRoot":"","sources":["../../src/subchannel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const CIPHER_SUITES: string | undefined;
2
+ export declare function getDefaultRootsData(): Buffer | null;
@@ -0,0 +1,34 @@
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.CIPHER_SUITES = void 0;
20
+ exports.getDefaultRootsData = getDefaultRootsData;
21
+ const fs = require("fs");
22
+ exports.CIPHER_SUITES = process.env.GRPC_SSL_CIPHER_SUITES;
23
+ const DEFAULT_ROOTS_FILE_PATH = process.env.GRPC_DEFAULT_SSL_ROOTS_FILE_PATH;
24
+ let defaultRootsData = null;
25
+ function getDefaultRootsData() {
26
+ if (DEFAULT_ROOTS_FILE_PATH) {
27
+ if (defaultRootsData === null) {
28
+ defaultRootsData = fs.readFileSync(DEFAULT_ROOTS_FILE_PATH);
29
+ }
30
+ return defaultRootsData;
31
+ }
32
+ return null;
33
+ }
34
+ //# sourceMappingURL=tls-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tls-helpers.js","sourceRoot":"","sources":["../../src/tls-helpers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAWH,kDAQC;AAjBD,yBAAyB;AAEZ,QAAA,aAAa,GACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAErC,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;AAE7E,IAAI,gBAAgB,GAAkB,IAAI,CAAC;AAE3C,SAAgB,mBAAmB;IACjC,IAAI,uBAAuB,EAAE,CAAC;QAC5B,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC9B,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}