@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,403 @@
1
+ /*
2
+ * Copyright 2019 gRPC authors.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ *
16
+ */
17
+
18
+ import {
19
+ ChannelControlHelper,
20
+ LoadBalancer,
21
+ LoadBalancingConfig,
22
+ getFirstUsableConfig,
23
+ } from './load-balancer';
24
+ import {
25
+ MethodConfig,
26
+ ServiceConfig,
27
+ validateServiceConfig,
28
+ } from './service-config';
29
+ import { ConnectivityState } from './connectivity-state';
30
+ import { ConfigSelector, createResolver, Resolver } from './resolver';
31
+ import { ServiceError } from './call';
32
+ import { Picker, UnavailablePicker, QueuePicker } from './picker';
33
+ import { BackoffOptions, BackoffTimeout } from './backoff-timeout';
34
+ import { Status } from './constants';
35
+ import { StatusObject } from './call-interface';
36
+ import { Metadata } from './metadata';
37
+ import * as logging from './logging';
38
+ import { LogVerbosity } from './constants';
39
+ import { SubchannelAddress } from './subchannel-address';
40
+ import { GrpcUri, uriToString } from './uri-parser';
41
+ import { ChildLoadBalancerHandler } from './load-balancer-child-handler';
42
+ import { ChannelOptions } from './channel-options';
43
+
44
+ const TRACER_NAME = 'resolving_load_balancer';
45
+
46
+ function trace(text: string): void {
47
+ logging.trace(LogVerbosity.DEBUG, TRACER_NAME, text);
48
+ }
49
+
50
+ type NameMatchLevel = 'EMPTY' | 'SERVICE' | 'SERVICE_AND_METHOD';
51
+
52
+ /**
53
+ * Name match levels in order from most to least specific. This is the order in
54
+ * which searches will be performed.
55
+ */
56
+ const NAME_MATCH_LEVEL_ORDER: NameMatchLevel[] = [
57
+ 'SERVICE_AND_METHOD',
58
+ 'SERVICE',
59
+ 'EMPTY',
60
+ ];
61
+
62
+ function hasMatchingName(
63
+ service: string,
64
+ method: string,
65
+ methodConfig: MethodConfig,
66
+ matchLevel: NameMatchLevel
67
+ ): boolean {
68
+ for (const name of methodConfig.name) {
69
+ switch (matchLevel) {
70
+ case 'EMPTY':
71
+ if (!name.service && !name.method) {
72
+ return true;
73
+ }
74
+ break;
75
+ case 'SERVICE':
76
+ if (name.service === service && !name.method) {
77
+ return true;
78
+ }
79
+ break;
80
+ case 'SERVICE_AND_METHOD':
81
+ if (name.service === service && name.method === method) {
82
+ return true;
83
+ }
84
+ }
85
+ }
86
+ return false;
87
+ }
88
+
89
+ function findMatchingConfig(
90
+ service: string,
91
+ method: string,
92
+ methodConfigs: MethodConfig[],
93
+ matchLevel: NameMatchLevel
94
+ ): MethodConfig | null {
95
+ for (const config of methodConfigs) {
96
+ if (hasMatchingName(service, method, config, matchLevel)) {
97
+ return config;
98
+ }
99
+ }
100
+ return null;
101
+ }
102
+
103
+ function getDefaultConfigSelector(
104
+ serviceConfig: ServiceConfig | null
105
+ ): ConfigSelector {
106
+ return function defaultConfigSelector(
107
+ methodName: string,
108
+ metadata: Metadata
109
+ ) {
110
+ const splitName = methodName.split('/').filter(x => x.length > 0);
111
+ const service = splitName[0] ?? '';
112
+ const method = splitName[1] ?? '';
113
+ if (serviceConfig && serviceConfig.methodConfig) {
114
+ /* Check for the following in order, and return the first method
115
+ * config that matches:
116
+ * 1. A name that exactly matches the service and method
117
+ * 2. A name with no method set that matches the service
118
+ * 3. An empty name
119
+ */
120
+ for (const matchLevel of NAME_MATCH_LEVEL_ORDER) {
121
+ const matchingConfig = findMatchingConfig(
122
+ service,
123
+ method,
124
+ serviceConfig.methodConfig,
125
+ matchLevel
126
+ );
127
+ if (matchingConfig) {
128
+ return {
129
+ methodConfig: matchingConfig,
130
+ pickInformation: {},
131
+ status: Status.OK,
132
+ dynamicFilterFactories: [],
133
+ };
134
+ }
135
+ }
136
+ }
137
+ return {
138
+ methodConfig: { name: [] },
139
+ pickInformation: {},
140
+ status: Status.OK,
141
+ dynamicFilterFactories: [],
142
+ };
143
+ };
144
+ }
145
+
146
+ export interface ResolutionCallback {
147
+ (serviceConfig: ServiceConfig, configSelector: ConfigSelector): void;
148
+ }
149
+
150
+ export interface ResolutionFailureCallback {
151
+ (status: StatusObject): void;
152
+ }
153
+
154
+ export class ResolvingLoadBalancer implements LoadBalancer {
155
+ /**
156
+ * The resolver class constructed for the target address.
157
+ */
158
+ private readonly innerResolver: Resolver;
159
+
160
+ private readonly childLoadBalancer: ChildLoadBalancerHandler;
161
+ private latestChildState: ConnectivityState = ConnectivityState.IDLE;
162
+ private latestChildPicker: Picker = new QueuePicker(this);
163
+ /**
164
+ * This resolving load balancer's current connectivity state.
165
+ */
166
+ private currentState: ConnectivityState = ConnectivityState.IDLE;
167
+ private readonly defaultServiceConfig: ServiceConfig;
168
+ /**
169
+ * The service config object from the last successful resolution, if
170
+ * available. A value of null indicates that we have not yet received a valid
171
+ * service config from the resolver.
172
+ */
173
+ private previousServiceConfig: ServiceConfig | null = null;
174
+
175
+ /**
176
+ * The backoff timer for handling name resolution failures.
177
+ */
178
+ private readonly backoffTimeout: BackoffTimeout;
179
+
180
+ /**
181
+ * Indicates whether we should attempt to resolve again after the backoff
182
+ * timer runs out.
183
+ */
184
+ private continueResolving = false;
185
+
186
+ /**
187
+ * Wrapper class that behaves like a `LoadBalancer` and also handles name
188
+ * resolution internally.
189
+ * @param target The address of the backend to connect to.
190
+ * @param channelControlHelper `ChannelControlHelper` instance provided by
191
+ * this load balancer's owner.
192
+ * @param defaultServiceConfig The default service configuration to be used
193
+ * if none is provided by the name resolver. A `null` value indicates
194
+ * that the default behavior should be the default unconfigured behavior.
195
+ * In practice, that means using the "pick first" load balancer
196
+ * implmentation
197
+ */
198
+ constructor(
199
+ private readonly target: GrpcUri,
200
+ private readonly channelControlHelper: ChannelControlHelper,
201
+ channelOptions: ChannelOptions,
202
+ private readonly onSuccessfulResolution: ResolutionCallback,
203
+ private readonly onFailedResolution: ResolutionFailureCallback
204
+ ) {
205
+ if (channelOptions['grpc.service_config']) {
206
+ this.defaultServiceConfig = validateServiceConfig(
207
+ JSON.parse(channelOptions['grpc.service_config']!)
208
+ );
209
+ } else {
210
+ this.defaultServiceConfig = {
211
+ loadBalancingConfig: [],
212
+ methodConfig: [],
213
+ };
214
+ }
215
+ this.updateState(ConnectivityState.IDLE, new QueuePicker(this));
216
+ this.childLoadBalancer = new ChildLoadBalancerHandler({
217
+ createSubchannel:
218
+ channelControlHelper.createSubchannel.bind(channelControlHelper),
219
+ requestReresolution: () => {
220
+ /* If the backoffTimeout is running, we're still backing off from
221
+ * making resolve requests, so we shouldn't make another one here.
222
+ * In that case, the backoff timer callback will call
223
+ * updateResolution */
224
+ if (this.backoffTimeout.isRunning()) {
225
+ trace('requestReresolution delayed by backoff timer until ' + this.backoffTimeout.getEndTime().toISOString());
226
+ this.continueResolving = true;
227
+ } else {
228
+ this.updateResolution();
229
+ }
230
+ },
231
+ updateState: (newState: ConnectivityState, picker: Picker) => {
232
+ this.latestChildState = newState;
233
+ this.latestChildPicker = picker;
234
+ this.updateState(newState, picker);
235
+ },
236
+ addChannelzChild:
237
+ channelControlHelper.addChannelzChild.bind(channelControlHelper),
238
+ removeChannelzChild:
239
+ channelControlHelper.removeChannelzChild.bind(channelControlHelper),
240
+ });
241
+ this.innerResolver = createResolver(
242
+ target,
243
+ {
244
+ onSuccessfulResolution: (
245
+ addressList: SubchannelAddress[],
246
+ serviceConfig: ServiceConfig | null,
247
+ serviceConfigError: ServiceError | null,
248
+ configSelector: ConfigSelector | null,
249
+ attributes: { [key: string]: unknown }
250
+ ) => {
251
+ this.backoffTimeout.stop();
252
+ this.backoffTimeout.reset();
253
+ let workingServiceConfig: ServiceConfig | null = null;
254
+ /* This first group of conditionals implements the algorithm described
255
+ * in https://github.com/grpc/proposal/blob/master/A21-service-config-error-handling.md
256
+ * in the section called "Behavior on receiving a new gRPC Config".
257
+ */
258
+ if (serviceConfig === null) {
259
+ // Step 4 and 5
260
+ if (serviceConfigError === null) {
261
+ // Step 5
262
+ this.previousServiceConfig = null;
263
+ workingServiceConfig = this.defaultServiceConfig;
264
+ } else {
265
+ // Step 4
266
+ if (this.previousServiceConfig === null) {
267
+ // Step 4.ii
268
+ this.handleResolutionFailure(serviceConfigError);
269
+ } else {
270
+ // Step 4.i
271
+ workingServiceConfig = this.previousServiceConfig;
272
+ }
273
+ }
274
+ } else {
275
+ // Step 3
276
+ workingServiceConfig = serviceConfig;
277
+ this.previousServiceConfig = serviceConfig;
278
+ }
279
+ const workingConfigList =
280
+ workingServiceConfig?.loadBalancingConfig ?? [];
281
+ const loadBalancingConfig = getFirstUsableConfig(
282
+ workingConfigList,
283
+ true
284
+ );
285
+ if (loadBalancingConfig === null) {
286
+ // There were load balancing configs but none are supported. This counts as a resolution failure
287
+ this.handleResolutionFailure({
288
+ code: Status.UNAVAILABLE,
289
+ details:
290
+ 'All load balancer options in service config are not compatible',
291
+ metadata: new Metadata(),
292
+ });
293
+ return;
294
+ }
295
+ this.childLoadBalancer.updateAddressList(
296
+ addressList,
297
+ loadBalancingConfig,
298
+ attributes
299
+ );
300
+ const finalServiceConfig =
301
+ workingServiceConfig ?? this.defaultServiceConfig;
302
+ this.onSuccessfulResolution(
303
+ finalServiceConfig,
304
+ configSelector ?? getDefaultConfigSelector(finalServiceConfig)
305
+ );
306
+ },
307
+ onError: (error: StatusObject) => {
308
+ this.handleResolutionFailure(error);
309
+ },
310
+ },
311
+ channelOptions
312
+ );
313
+ const backoffOptions: BackoffOptions = {
314
+ initialDelay: channelOptions['grpc.initial_reconnect_backoff_ms'],
315
+ maxDelay: channelOptions['grpc.max_reconnect_backoff_ms'],
316
+ };
317
+ this.backoffTimeout = new BackoffTimeout(() => {
318
+ if (this.continueResolving) {
319
+ this.updateResolution();
320
+ this.continueResolving = false;
321
+ } else {
322
+ this.updateState(this.latestChildState, this.latestChildPicker);
323
+ }
324
+ }, backoffOptions);
325
+ this.backoffTimeout.unref();
326
+ }
327
+
328
+ private updateResolution() {
329
+ this.innerResolver.updateResolution();
330
+ if (this.currentState === ConnectivityState.IDLE) {
331
+ this.updateState(ConnectivityState.CONNECTING, new QueuePicker(this));
332
+ }
333
+ this.backoffTimeout.runOnce();
334
+ }
335
+
336
+ private updateState(connectivityState: ConnectivityState, picker: Picker) {
337
+ trace(
338
+ uriToString(this.target) +
339
+ ' ' +
340
+ ConnectivityState[this.currentState] +
341
+ ' -> ' +
342
+ ConnectivityState[connectivityState]
343
+ );
344
+ // Ensure that this.exitIdle() is called by the picker
345
+ if (connectivityState === ConnectivityState.IDLE) {
346
+ picker = new QueuePicker(this);
347
+ }
348
+ this.currentState = connectivityState;
349
+ this.channelControlHelper.updateState(connectivityState, picker);
350
+ }
351
+
352
+ private handleResolutionFailure(error: StatusObject) {
353
+ if (this.latestChildState === ConnectivityState.IDLE) {
354
+ this.updateState(
355
+ ConnectivityState.TRANSIENT_FAILURE,
356
+ new UnavailablePicker(error)
357
+ );
358
+ this.onFailedResolution(error);
359
+ }
360
+ }
361
+
362
+ exitIdle() {
363
+ if (
364
+ this.currentState === ConnectivityState.IDLE ||
365
+ this.currentState === ConnectivityState.TRANSIENT_FAILURE
366
+ ) {
367
+ if (this.backoffTimeout.isRunning()) {
368
+ this.continueResolving = true;
369
+ } else {
370
+ this.updateResolution();
371
+ }
372
+ }
373
+ this.childLoadBalancer.exitIdle();
374
+ }
375
+
376
+ updateAddressList(
377
+ addressList: SubchannelAddress[],
378
+ lbConfig: LoadBalancingConfig | null
379
+ ): never {
380
+ throw new Error('updateAddressList not supported on ResolvingLoadBalancer');
381
+ }
382
+
383
+ resetBackoff() {
384
+ this.backoffTimeout.reset();
385
+ this.childLoadBalancer.resetBackoff();
386
+ }
387
+
388
+ destroy() {
389
+ this.childLoadBalancer.destroy();
390
+ this.innerResolver.destroy();
391
+ this.backoffTimeout.reset();
392
+ this.backoffTimeout.stop();
393
+ this.latestChildState = ConnectivityState.IDLE;
394
+ this.latestChildPicker = new QueuePicker(this);
395
+ this.currentState = ConnectivityState.IDLE;
396
+ this.previousServiceConfig = null;
397
+ this.continueResolving = false;
398
+ }
399
+
400
+ getTypeName() {
401
+ return 'resolving_load_balancer';
402
+ }
403
+ }