@finsemble/finsemble-electron-adapter 6.2.1 → 6.3.1-beta-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/dist/app.js +1 -1
  2. package/dist/e2o.js +1 -1
  3. package/dist/e2o_view.js +1 -1
  4. package/dist/exports.js +1 -1
  5. package/dist/grpc/grpc.ts +9 -0
  6. package/exports.js +2 -1
  7. package/node_modules/@grpc/grpc-js/README.md +2 -0
  8. package/node_modules/@grpc/grpc-js/build/src/admin.d.ts +11 -0
  9. package/node_modules/@grpc/grpc-js/build/src/admin.js +31 -0
  10. package/node_modules/@grpc/grpc-js/build/src/admin.js.map +1 -0
  11. package/node_modules/@grpc/grpc-js/build/src/call-credentials-filter.js.map +1 -1
  12. package/node_modules/@grpc/grpc-js/build/src/call-stream.d.ts +14 -5
  13. package/node_modules/@grpc/grpc-js/build/src/call-stream.js +56 -20
  14. package/node_modules/@grpc/grpc-js/build/src/call-stream.js.map +1 -1
  15. package/node_modules/@grpc/grpc-js/build/src/call.js.map +1 -1
  16. package/node_modules/@grpc/grpc-js/build/src/channel-options.js.map +1 -1
  17. package/node_modules/@grpc/grpc-js/build/src/channel.d.ts +16 -7
  18. package/node_modules/@grpc/grpc-js/build/src/channel.js +138 -59
  19. package/node_modules/@grpc/grpc-js/build/src/channel.js.map +1 -1
  20. package/node_modules/@grpc/grpc-js/build/src/channelz.d.ts +122 -0
  21. package/node_modules/@grpc/grpc-js/build/src/channelz.js +568 -0
  22. package/node_modules/@grpc/grpc-js/build/src/channelz.js.map +1 -0
  23. package/node_modules/@grpc/grpc-js/build/src/client-interceptors.js.map +1 -1
  24. package/node_modules/@grpc/grpc-js/build/src/client.js +2 -1
  25. package/node_modules/@grpc/grpc-js/build/src/client.js.map +1 -1
  26. package/node_modules/@grpc/grpc-js/build/src/constants.js.map +1 -1
  27. package/node_modules/@grpc/grpc-js/build/src/deadline-filter.d.ts +3 -0
  28. package/node_modules/@grpc/grpc-js/build/src/deadline-filter.js +19 -5
  29. package/node_modules/@grpc/grpc-js/build/src/deadline-filter.js.map +1 -1
  30. package/node_modules/@grpc/grpc-js/build/src/experimental.d.ts +6 -5
  31. package/node_modules/@grpc/grpc-js/build/src/experimental.js +5 -2
  32. package/node_modules/@grpc/grpc-js/build/src/experimental.js.map +1 -1
  33. package/node_modules/@grpc/grpc-js/build/src/filter-stack.d.ts +4 -0
  34. package/node_modules/@grpc/grpc-js/build/src/filter-stack.js +14 -0
  35. package/node_modules/@grpc/grpc-js/build/src/filter-stack.js.map +1 -1
  36. package/node_modules/@grpc/grpc-js/build/src/filter.d.ts +2 -0
  37. package/node_modules/@grpc/grpc-js/build/src/filter.js +1 -0
  38. package/node_modules/@grpc/grpc-js/build/src/filter.js.map +1 -1
  39. package/node_modules/@grpc/grpc-js/build/src/generated/channelz.d.ts +72 -0
  40. package/node_modules/@grpc/grpc-js/build/src/generated/channelz.js +3 -0
  41. package/node_modules/@grpc/grpc-js/build/src/generated/channelz.js.map +1 -0
  42. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Any.d.ts +10 -0
  43. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Any.js +4 -0
  44. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Any.js.map +1 -0
  45. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BoolValue.d.ts +6 -0
  46. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BoolValue.js +4 -0
  47. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BoolValue.js.map +1 -0
  48. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BytesValue.d.ts +7 -0
  49. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BytesValue.js +4 -0
  50. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BytesValue.js.map +1 -0
  51. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/DoubleValue.d.ts +6 -0
  52. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/DoubleValue.js +4 -0
  53. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/DoubleValue.js.map +1 -0
  54. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Duration.d.ts +10 -0
  55. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Duration.js +4 -0
  56. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Duration.js.map +1 -0
  57. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/FloatValue.d.ts +6 -0
  58. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/FloatValue.js +4 -0
  59. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/FloatValue.js.map +1 -0
  60. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int32Value.d.ts +6 -0
  61. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int32Value.js +4 -0
  62. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int32Value.js.map +1 -0
  63. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int64Value.d.ts +8 -0
  64. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int64Value.js +4 -0
  65. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int64Value.js.map +1 -0
  66. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/StringValue.d.ts +6 -0
  67. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/StringValue.js +4 -0
  68. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/StringValue.js.map +1 -0
  69. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Timestamp.d.ts +10 -0
  70. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Timestamp.js +4 -0
  71. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Timestamp.js.map +1 -0
  72. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt32Value.d.ts +6 -0
  73. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt32Value.js +4 -0
  74. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt32Value.js.map +1 -0
  75. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt64Value.d.ts +8 -0
  76. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt64Value.js +4 -0
  77. package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt64Value.js.map +1 -0
  78. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Address.d.ts +80 -0
  79. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Address.js +4 -0
  80. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Address.js.map +1 -0
  81. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channel.d.ts +64 -0
  82. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channel.js +4 -0
  83. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channel.js.map +1 -0
  84. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelConnectivityState.d.ts +22 -0
  85. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelConnectivityState.js +15 -0
  86. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelConnectivityState.js.map +1 -0
  87. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelData.d.ts +73 -0
  88. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelData.js +4 -0
  89. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelData.js.map +1 -0
  90. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelRef.d.ts +28 -0
  91. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelRef.js +4 -0
  92. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelRef.js.map +1 -0
  93. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTrace.d.ts +42 -0
  94. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTrace.js +4 -0
  95. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTrace.js.map +1 -0
  96. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTraceEvent.d.ts +66 -0
  97. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTraceEvent.js +16 -0
  98. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTraceEvent.js.map +1 -0
  99. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channelz.d.ts +159 -0
  100. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channelz.js +4 -0
  101. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channelz.js.map +1 -0
  102. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelRequest.d.ts +14 -0
  103. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelRequest.js +4 -0
  104. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelRequest.js.map +1 -0
  105. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelResponse.d.ts +15 -0
  106. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelResponse.js +4 -0
  107. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelResponse.js.map +1 -0
  108. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerRequest.d.ts +14 -0
  109. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerRequest.js +4 -0
  110. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerRequest.js.map +1 -0
  111. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerResponse.d.ts +15 -0
  112. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerResponse.js +4 -0
  113. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerResponse.js.map +1 -0
  114. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsRequest.d.ts +36 -0
  115. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsRequest.js +4 -0
  116. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsRequest.js.map +1 -0
  117. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsResponse.d.ts +29 -0
  118. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsResponse.js +4 -0
  119. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsResponse.js.map +1 -0
  120. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersRequest.d.ts +34 -0
  121. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersRequest.js +4 -0
  122. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersRequest.js.map +1 -0
  123. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersResponse.d.ts +29 -0
  124. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersResponse.js +4 -0
  125. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersResponse.js.map +1 -0
  126. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketRequest.d.ts +26 -0
  127. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketRequest.js +4 -0
  128. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketRequest.js.map +1 -0
  129. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketResponse.d.ts +15 -0
  130. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketResponse.js +4 -0
  131. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketResponse.js.map +1 -0
  132. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelRequest.d.ts +14 -0
  133. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelRequest.js +4 -0
  134. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelRequest.js.map +1 -0
  135. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelResponse.d.ts +15 -0
  136. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelResponse.js +4 -0
  137. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelResponse.js.map +1 -0
  138. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsRequest.d.ts +34 -0
  139. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsRequest.js +4 -0
  140. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsRequest.js.map +1 -0
  141. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsResponse.d.ts +29 -0
  142. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsResponse.js +4 -0
  143. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsResponse.js.map +1 -0
  144. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Security.d.ts +80 -0
  145. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Security.js +4 -0
  146. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Security.js.map +1 -0
  147. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Server.d.ts +41 -0
  148. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Server.js +4 -0
  149. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Server.js.map +1 -0
  150. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerData.d.ts +54 -0
  151. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerData.js +4 -0
  152. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerData.js.map +1 -0
  153. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerRef.d.ts +28 -0
  154. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerRef.js +4 -0
  155. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerRef.js.map +1 -0
  156. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Socket.d.ts +66 -0
  157. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Socket.js +4 -0
  158. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Socket.js.map +1 -0
  159. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketData.d.ts +147 -0
  160. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketData.js +4 -0
  161. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketData.js.map +1 -0
  162. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOption.d.ts +43 -0
  163. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOption.js +4 -0
  164. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOption.js.map +1 -0
  165. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionLinger.d.ts +29 -0
  166. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionLinger.js +4 -0
  167. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionLinger.js.map +1 -0
  168. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.d.ts +70 -0
  169. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.js +4 -0
  170. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.js.map +1 -0
  171. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTimeout.d.ts +15 -0
  172. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTimeout.js +4 -0
  173. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTimeout.js.map +1 -0
  174. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketRef.d.ts +28 -0
  175. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketRef.js +4 -0
  176. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketRef.js.map +1 -0
  177. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Subchannel.d.ts +66 -0
  178. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Subchannel.js +4 -0
  179. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Subchannel.js.map +1 -0
  180. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SubchannelRef.d.ts +28 -0
  181. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SubchannelRef.js +4 -0
  182. package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SubchannelRef.js.map +1 -0
  183. package/node_modules/@grpc/grpc-js/build/src/http_proxy.d.ts +1 -1
  184. package/node_modules/@grpc/grpc-js/build/src/http_proxy.js +11 -8
  185. package/node_modules/@grpc/grpc-js/build/src/http_proxy.js.map +1 -1
  186. package/node_modules/@grpc/grpc-js/build/src/index.d.ts +7 -4
  187. package/node_modules/@grpc/grpc-js/build/src/index.js +19 -5
  188. package/node_modules/@grpc/grpc-js/build/src/index.js.map +1 -1
  189. package/node_modules/@grpc/grpc-js/build/src/load-balancer-child-handler.d.ts +1 -1
  190. package/node_modules/@grpc/grpc-js/build/src/load-balancer-child-handler.js +8 -2
  191. package/node_modules/@grpc/grpc-js/build/src/load-balancer-child-handler.js.map +1 -1
  192. package/node_modules/@grpc/grpc-js/build/src/load-balancer-pick-first.d.ts +1 -1
  193. package/node_modules/@grpc/grpc-js/build/src/load-balancer-pick-first.js +56 -49
  194. package/node_modules/@grpc/grpc-js/build/src/load-balancer-pick-first.js.map +1 -1
  195. package/node_modules/@grpc/grpc-js/build/src/load-balancer-round-robin.d.ts +1 -1
  196. package/node_modules/@grpc/grpc-js/build/src/load-balancer-round-robin.js +34 -31
  197. package/node_modules/@grpc/grpc-js/build/src/load-balancer-round-robin.js.map +1 -1
  198. package/node_modules/@grpc/grpc-js/build/src/load-balancer.d.ts +17 -4
  199. package/node_modules/@grpc/grpc-js/build/src/load-balancer.js +36 -13
  200. package/node_modules/@grpc/grpc-js/build/src/load-balancer.js.map +1 -1
  201. package/node_modules/@grpc/grpc-js/build/src/logging.js +35 -4
  202. package/node_modules/@grpc/grpc-js/build/src/logging.js.map +1 -1
  203. package/node_modules/@grpc/grpc-js/build/src/max-message-size-filter.d.ts +3 -3
  204. package/node_modules/@grpc/grpc-js/build/src/max-message-size-filter.js.map +1 -1
  205. package/node_modules/@grpc/grpc-js/build/src/metadata.d.ts +7 -0
  206. package/node_modules/@grpc/grpc-js/build/src/metadata.js +11 -0
  207. package/node_modules/@grpc/grpc-js/build/src/metadata.js.map +1 -1
  208. package/node_modules/@grpc/grpc-js/build/src/picker.d.ts +5 -5
  209. package/node_modules/@grpc/grpc-js/build/src/picker.js +2 -2
  210. package/node_modules/@grpc/grpc-js/build/src/picker.js.map +1 -1
  211. package/node_modules/@grpc/grpc-js/build/src/resolver-dns.js.map +1 -1
  212. package/node_modules/@grpc/grpc-js/build/src/resolver-ip.js +6 -5
  213. package/node_modules/@grpc/grpc-js/build/src/resolver-ip.js.map +1 -1
  214. package/node_modules/@grpc/grpc-js/build/src/resolver.d.ts +3 -2
  215. package/node_modules/@grpc/grpc-js/build/src/resolver.js +1 -10
  216. package/node_modules/@grpc/grpc-js/build/src/resolver.js.map +1 -1
  217. package/node_modules/@grpc/grpc-js/build/src/resolving-load-balancer.d.ts +1 -1
  218. package/node_modules/@grpc/grpc-js/build/src/resolving-load-balancer.js +23 -18
  219. package/node_modules/@grpc/grpc-js/build/src/resolving-load-balancer.js.map +1 -1
  220. package/node_modules/@grpc/grpc-js/build/src/server-call.js +7 -3
  221. package/node_modules/@grpc/grpc-js/build/src/server-call.js.map +1 -1
  222. package/node_modules/@grpc/grpc-js/build/src/server.d.ts +10 -0
  223. package/node_modules/@grpc/grpc-js/build/src/server.js +230 -42
  224. package/node_modules/@grpc/grpc-js/build/src/server.js.map +1 -1
  225. package/node_modules/@grpc/grpc-js/build/src/service-config.d.ts +5 -1
  226. package/node_modules/@grpc/grpc-js/build/src/service-config.js +23 -3
  227. package/node_modules/@grpc/grpc-js/build/src/service-config.js.map +1 -1
  228. package/node_modules/@grpc/grpc-js/build/src/subchannel-address.d.ts +1 -0
  229. package/node_modules/@grpc/grpc-js/build/src/subchannel-address.js +17 -1
  230. package/node_modules/@grpc/grpc-js/build/src/subchannel-address.js.map +1 -1
  231. package/node_modules/@grpc/grpc-js/build/src/subchannel-pool.d.ts +2 -1
  232. package/node_modules/@grpc/grpc-js/build/src/subchannel-pool.js +2 -1
  233. package/node_modules/@grpc/grpc-js/build/src/subchannel-pool.js.map +1 -1
  234. package/node_modules/@grpc/grpc-js/build/src/subchannel.d.ts +30 -19
  235. package/node_modules/@grpc/grpc-js/build/src/subchannel.js +180 -78
  236. package/node_modules/@grpc/grpc-js/build/src/subchannel.js.map +1 -1
  237. package/node_modules/@grpc/grpc-js/node_modules/.bin/proto-loader-gen-types +15 -0
  238. package/node_modules/@grpc/grpc-js/node_modules/.bin/proto-loader-gen-types.cmd +7 -0
  239. package/node_modules/@grpc/grpc-js/package.json +9 -6
  240. package/node_modules/@grpc/grpc-js/proto/channelz.proto +564 -0
  241. package/node_modules/@grpc/grpc-js/src/admin.ts +39 -0
  242. package/node_modules/@grpc/grpc-js/src/call-credentials-filter.ts +3 -1
  243. package/node_modules/@grpc/grpc-js/src/call-stream.ts +75 -23
  244. package/node_modules/@grpc/grpc-js/src/call.ts +8 -4
  245. package/node_modules/@grpc/grpc-js/src/channel-options.ts +1 -0
  246. package/node_modules/@grpc/grpc-js/src/channel.ts +183 -73
  247. package/node_modules/@grpc/grpc-js/src/channelz.ts +727 -0
  248. package/node_modules/@grpc/grpc-js/src/client-interceptors.ts +8 -3
  249. package/node_modules/@grpc/grpc-js/src/client.ts +18 -16
  250. package/node_modules/@grpc/grpc-js/src/connectivity-state.ts +24 -0
  251. package/node_modules/@grpc/grpc-js/src/constants.ts +5 -1
  252. package/node_modules/@grpc/grpc-js/src/deadline-filter.ts +21 -5
  253. package/node_modules/@grpc/grpc-js/src/experimental.ts +36 -12
  254. package/node_modules/@grpc/grpc-js/src/filter-stack.ts +18 -0
  255. package/node_modules/@grpc/grpc-js/src/filter.ts +4 -0
  256. package/node_modules/@grpc/grpc-js/src/generated/channelz.ts +73 -0
  257. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/Any.ts +13 -0
  258. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/BoolValue.ts +10 -0
  259. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/BytesValue.ts +10 -0
  260. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/DoubleValue.ts +10 -0
  261. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/Duration.ts +13 -0
  262. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/FloatValue.ts +10 -0
  263. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/Int32Value.ts +10 -0
  264. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/Int64Value.ts +11 -0
  265. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/StringValue.ts +10 -0
  266. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/Timestamp.ts +13 -0
  267. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/UInt32Value.ts +10 -0
  268. package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/UInt64Value.ts +11 -0
  269. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Address.ts +89 -0
  270. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Channel.ts +68 -0
  271. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ChannelConnectivityState.ts +29 -0
  272. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ChannelData.ts +76 -0
  273. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ChannelRef.ts +31 -0
  274. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ChannelTrace.ts +45 -0
  275. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ChannelTraceEvent.ts +73 -0
  276. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Channelz.ts +178 -0
  277. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetChannelRequest.ts +17 -0
  278. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetChannelResponse.ts +19 -0
  279. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServerRequest.ts +17 -0
  280. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServerResponse.ts +19 -0
  281. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServerSocketsRequest.ts +39 -0
  282. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServerSocketsResponse.ts +33 -0
  283. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServersRequest.ts +37 -0
  284. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServersResponse.ts +33 -0
  285. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetSocketRequest.ts +29 -0
  286. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetSocketResponse.ts +19 -0
  287. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetSubchannelRequest.ts +17 -0
  288. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetSubchannelResponse.ts +19 -0
  289. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetTopChannelsRequest.ts +37 -0
  290. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetTopChannelsResponse.ts +33 -0
  291. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Security.ts +87 -0
  292. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Server.ts +45 -0
  293. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ServerData.ts +57 -0
  294. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ServerRef.ts +31 -0
  295. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Socket.ts +70 -0
  296. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketData.ts +150 -0
  297. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketOption.ts +47 -0
  298. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketOptionLinger.ts +33 -0
  299. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.ts +74 -0
  300. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketOptionTimeout.ts +19 -0
  301. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketRef.ts +31 -0
  302. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Subchannel.ts +70 -0
  303. package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SubchannelRef.ts +31 -0
  304. package/node_modules/@grpc/grpc-js/src/http_proxy.ts +15 -11
  305. package/node_modules/@grpc/grpc-js/src/index.ts +29 -6
  306. package/node_modules/@grpc/grpc-js/src/load-balancer-child-handler.ts +12 -3
  307. package/node_modules/@grpc/grpc-js/src/load-balancer-pick-first.ts +19 -8
  308. package/node_modules/@grpc/grpc-js/src/load-balancer-round-robin.ts +15 -9
  309. package/node_modules/@grpc/grpc-js/src/load-balancer.ts +60 -21
  310. package/node_modules/@grpc/grpc-js/src/logging.ts +43 -7
  311. package/node_modules/@grpc/grpc-js/src/make-client.ts +1 -1
  312. package/node_modules/@grpc/grpc-js/src/max-message-size-filter.ts +18 -7
  313. package/node_modules/@grpc/grpc-js/src/metadata.ts +12 -0
  314. package/node_modules/@grpc/grpc-js/src/picker.ts +8 -8
  315. package/node_modules/@grpc/grpc-js/src/resolver-dns.ts +8 -2
  316. package/node_modules/@grpc/grpc-js/src/resolver-ip.ts +25 -16
  317. package/node_modules/@grpc/grpc-js/src/resolver-uds.ts +1 -1
  318. package/node_modules/@grpc/grpc-js/src/resolver.ts +5 -12
  319. package/node_modules/@grpc/grpc-js/src/resolving-load-balancer.ts +36 -14
  320. package/node_modules/@grpc/grpc-js/src/server-call.ts +11 -5
  321. package/node_modules/@grpc/grpc-js/src/server.ts +250 -44
  322. package/node_modules/@grpc/grpc-js/src/service-config.ts +35 -6
  323. package/node_modules/@grpc/grpc-js/src/subchannel-address.ts +79 -0
  324. package/node_modules/@grpc/grpc-js/src/subchannel-pool.ts +2 -2
  325. package/node_modules/@grpc/grpc-js/src/subchannel.ts +206 -97
  326. package/node_modules/@grpc/proto-loader/build/bin/proto-loader-gen-types.js +34 -0
  327. package/node_modules/@grpc/proto-loader/build/src/index.js +3 -0
  328. package/node_modules/@grpc/proto-loader/package.json +1 -1
  329. package/node_modules/{yargs/node_modules/y18n → y18n}/CHANGELOG.md +0 -0
  330. package/node_modules/{yargs/node_modules/y18n → y18n}/LICENSE +0 -0
  331. package/node_modules/{yargs/node_modules/y18n → y18n}/README.md +0 -0
  332. package/node_modules/{yargs/node_modules/y18n → y18n}/build/index.cjs +0 -0
  333. package/node_modules/{yargs/node_modules/y18n → y18n}/build/lib/cjs.js +0 -0
  334. package/node_modules/{yargs/node_modules/y18n → y18n}/build/lib/index.js +0 -0
  335. package/node_modules/{yargs/node_modules/y18n → y18n}/build/lib/platform-shims/node.js +0 -0
  336. package/node_modules/{yargs/node_modules/y18n → y18n}/index.mjs +0 -0
  337. package/node_modules/{yargs/node_modules/y18n → y18n}/package.json +0 -0
  338. package/package.json +41 -24
  339. package/dist/e2o.js.LICENSE.txt +0 -12
  340. package/dist/e2o_view.js.LICENSE.txt +0 -12
  341. package/dist/grpc/grpc.js +0 -8
  342. package/node_modules/@grpc/grpc-js/build/src/load-balancer-registry.d.ts +0 -7
  343. package/node_modules/@grpc/grpc-js/build/src/load-balancer-registry.js +0 -83
  344. package/node_modules/@grpc/grpc-js/build/src/load-balancer-registry.js.map +0 -1
@@ -0,0 +1,727 @@
1
+ /*
2
+ * Copyright 2021 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 { isIPv4, isIPv6 } from "net";
19
+ import { ConnectivityState } from "./connectivity-state";
20
+ import { Status } from "./constants";
21
+ import { Timestamp } from "./generated/google/protobuf/Timestamp";
22
+ import { Channel as ChannelMessage } from "./generated/grpc/channelz/v1/Channel";
23
+ import { ChannelConnectivityState__Output } from "./generated/grpc/channelz/v1/ChannelConnectivityState";
24
+ import { ChannelRef as ChannelRefMessage } from "./generated/grpc/channelz/v1/ChannelRef";
25
+ import { ChannelTrace } from "./generated/grpc/channelz/v1/ChannelTrace";
26
+ import { GetChannelRequest__Output } from "./generated/grpc/channelz/v1/GetChannelRequest";
27
+ import { GetChannelResponse } from "./generated/grpc/channelz/v1/GetChannelResponse";
28
+ import { sendUnaryData, ServerUnaryCall } from "./server-call";
29
+ import { ServerRef as ServerRefMessage } from "./generated/grpc/channelz/v1/ServerRef";
30
+ import { SocketRef as SocketRefMessage } from "./generated/grpc/channelz/v1/SocketRef";
31
+ import { isTcpSubchannelAddress, SubchannelAddress } from "./subchannel-address";
32
+ import { SubchannelRef as SubchannelRefMessage } from "./generated/grpc/channelz/v1/SubchannelRef";
33
+ import { GetServerRequest__Output } from "./generated/grpc/channelz/v1/GetServerRequest";
34
+ import { GetServerResponse } from "./generated/grpc/channelz/v1/GetServerResponse";
35
+ import { Server as ServerMessage } from "./generated/grpc/channelz/v1/Server";
36
+ import { GetServersRequest__Output } from "./generated/grpc/channelz/v1/GetServersRequest";
37
+ import { GetServersResponse } from "./generated/grpc/channelz/v1/GetServersResponse";
38
+ import { GetTopChannelsRequest__Output } from "./generated/grpc/channelz/v1/GetTopChannelsRequest";
39
+ import { GetTopChannelsResponse } from "./generated/grpc/channelz/v1/GetTopChannelsResponse";
40
+ import { GetSubchannelRequest__Output } from "./generated/grpc/channelz/v1/GetSubchannelRequest";
41
+ import { GetSubchannelResponse } from "./generated/grpc/channelz/v1/GetSubchannelResponse";
42
+ import { Subchannel as SubchannelMessage } from "./generated/grpc/channelz/v1/Subchannel";
43
+ import { GetSocketRequest__Output } from "./generated/grpc/channelz/v1/GetSocketRequest";
44
+ import { GetSocketResponse } from "./generated/grpc/channelz/v1/GetSocketResponse";
45
+ import { Socket as SocketMessage } from "./generated/grpc/channelz/v1/Socket";
46
+ import { Address } from "./generated/grpc/channelz/v1/Address";
47
+ import { Security } from "./generated/grpc/channelz/v1/Security";
48
+ import { GetServerSocketsRequest__Output } from "./generated/grpc/channelz/v1/GetServerSocketsRequest";
49
+ import { GetServerSocketsResponse } from "./generated/grpc/channelz/v1/GetServerSocketsResponse";
50
+ import { ChannelzDefinition, ChannelzHandlers } from "./generated/grpc/channelz/v1/Channelz";
51
+ import { ProtoGrpcType as ChannelzProtoGrpcType } from "./generated/channelz";
52
+ import type { loadSync } from '@grpc/proto-loader';
53
+ import { registerAdminService } from "./admin";
54
+ import { loadPackageDefinition } from "./make-client";
55
+
56
+ export type TraceSeverity = 'CT_UNKNOWN' | 'CT_INFO' | 'CT_WARNING' | 'CT_ERROR';
57
+
58
+ export interface ChannelRef {
59
+ kind: 'channel';
60
+ id: number;
61
+ name: string;
62
+ }
63
+
64
+ export interface SubchannelRef {
65
+ kind: 'subchannel';
66
+ id: number;
67
+ name: string;
68
+ }
69
+
70
+ export interface ServerRef {
71
+ kind: 'server';
72
+ id: number;
73
+ }
74
+
75
+ export interface SocketRef {
76
+ kind: 'socket';
77
+ id: number;
78
+ name: string;
79
+ }
80
+
81
+ function channelRefToMessage(ref: ChannelRef): ChannelRefMessage {
82
+ return {
83
+ channel_id: ref.id,
84
+ name: ref.name
85
+ };
86
+ }
87
+
88
+ function subchannelRefToMessage(ref: SubchannelRef): SubchannelRefMessage {
89
+ return {
90
+ subchannel_id: ref.id,
91
+ name: ref.name
92
+ }
93
+ }
94
+
95
+ function serverRefToMessage(ref: ServerRef): ServerRefMessage {
96
+ return {
97
+ server_id: ref.id
98
+ }
99
+ }
100
+
101
+ function socketRefToMessage(ref: SocketRef): SocketRefMessage {
102
+ return {
103
+ socket_id: ref.id,
104
+ name: ref.name
105
+ }
106
+ }
107
+
108
+ interface TraceEvent {
109
+ description: string;
110
+ severity: TraceSeverity;
111
+ timestamp: Date;
112
+ childChannel?: ChannelRef;
113
+ childSubchannel?: SubchannelRef;
114
+ }
115
+
116
+ export class ChannelzTrace {
117
+ events: TraceEvent[] = [];
118
+ creationTimestamp: Date;
119
+ eventsLogged: number = 0;
120
+
121
+ constructor() {
122
+ this.creationTimestamp = new Date();
123
+ }
124
+
125
+ addTrace(severity: TraceSeverity, description: string, child?: ChannelRef | SubchannelRef) {
126
+ const timestamp = new Date();
127
+ this.events.push({
128
+ description: description,
129
+ severity: severity,
130
+ timestamp: timestamp,
131
+ childChannel: child?.kind === 'channel' ? child : undefined,
132
+ childSubchannel: child?.kind === 'subchannel' ? child : undefined
133
+ });
134
+ this.eventsLogged += 1;
135
+ }
136
+
137
+ getTraceMessage(): ChannelTrace {
138
+ return {
139
+ creation_timestamp: dateToProtoTimestamp(this.creationTimestamp),
140
+ num_events_logged: this.eventsLogged,
141
+ events: this.events.map(event => {
142
+ return {
143
+ description: event.description,
144
+ severity: event.severity,
145
+ timestamp: dateToProtoTimestamp(event.timestamp),
146
+ channel_ref: event.childChannel ? channelRefToMessage(event.childChannel) : null,
147
+ subchannel_ref: event.childSubchannel ? subchannelRefToMessage(event.childSubchannel) : null
148
+ }
149
+ })
150
+ };
151
+ }
152
+ }
153
+
154
+ export class ChannelzChildrenTracker {
155
+ private channelChildren: Map<number, {ref: ChannelRef, count: number}> = new Map<number, {ref: ChannelRef, count: number}>();
156
+ private subchannelChildren: Map<number, {ref: SubchannelRef, count: number}> = new Map<number, {ref: SubchannelRef, count: number}>();
157
+ private socketChildren: Map<number, {ref: SocketRef, count: number}> = new Map<number, {ref: SocketRef, count: number}>();
158
+
159
+ refChild(child: ChannelRef | SubchannelRef | SocketRef) {
160
+ switch (child.kind) {
161
+ case 'channel': {
162
+ let trackedChild = this.channelChildren.get(child.id) ?? {ref: child, count: 0};
163
+ trackedChild.count += 1;
164
+ this.channelChildren.set(child.id, trackedChild);
165
+ break;
166
+ }
167
+ case 'subchannel':{
168
+ let trackedChild = this.subchannelChildren.get(child.id) ?? {ref: child, count: 0};
169
+ trackedChild.count += 1;
170
+ this.subchannelChildren.set(child.id, trackedChild);
171
+ break;
172
+ }
173
+ case 'socket':{
174
+ let trackedChild = this.socketChildren.get(child.id) ?? {ref: child, count: 0};
175
+ trackedChild.count += 1;
176
+ this.socketChildren.set(child.id, trackedChild);
177
+ break;
178
+ }
179
+ }
180
+ }
181
+
182
+ unrefChild(child: ChannelRef | SubchannelRef | SocketRef) {
183
+ switch (child.kind) {
184
+ case 'channel': {
185
+ let trackedChild = this.channelChildren.get(child.id);
186
+ if (trackedChild !== undefined) {
187
+ trackedChild.count -= 1;
188
+ if (trackedChild.count === 0) {
189
+ this.channelChildren.delete(child.id);
190
+ } else {
191
+ this.channelChildren.set(child.id, trackedChild);
192
+ }
193
+ }
194
+ break;
195
+ }
196
+ case 'subchannel': {
197
+ let trackedChild = this.subchannelChildren.get(child.id);
198
+ if (trackedChild !== undefined) {
199
+ trackedChild.count -= 1;
200
+ if (trackedChild.count === 0) {
201
+ this.subchannelChildren.delete(child.id);
202
+ } else {
203
+ this.subchannelChildren.set(child.id, trackedChild);
204
+ }
205
+ }
206
+ break;
207
+ }
208
+ case 'socket': {
209
+ let trackedChild = this.socketChildren.get(child.id);
210
+ if (trackedChild !== undefined) {
211
+ trackedChild.count -= 1;
212
+ if (trackedChild.count === 0) {
213
+ this.socketChildren.delete(child.id);
214
+ } else {
215
+ this.socketChildren.set(child.id, trackedChild);
216
+ }
217
+ }
218
+ break;
219
+ }
220
+ }
221
+ }
222
+
223
+ getChildLists(): ChannelzChildren {
224
+ const channels: ChannelRef[] = [];
225
+ for (const {ref} of this.channelChildren.values()) {
226
+ channels.push(ref);
227
+ }
228
+ const subchannels: SubchannelRef[] = [];
229
+ for (const {ref} of this.subchannelChildren.values()) {
230
+ subchannels.push(ref);
231
+ }
232
+ const sockets: SocketRef[] = [];
233
+ for (const {ref} of this.socketChildren.values()) {
234
+ sockets.push(ref);
235
+ }
236
+ return {channels, subchannels, sockets};
237
+ }
238
+ }
239
+
240
+ export class ChannelzCallTracker {
241
+ callsStarted: number = 0;
242
+ callsSucceeded: number = 0;
243
+ callsFailed: number = 0;
244
+ lastCallStartedTimestamp: Date | null = null;
245
+
246
+ addCallStarted() {
247
+ this.callsStarted += 1;
248
+ this.lastCallStartedTimestamp = new Date();
249
+ }
250
+ addCallSucceeded() {
251
+ this.callsSucceeded += 1;
252
+ }
253
+ addCallFailed() {
254
+ this.callsFailed += 1;
255
+ }
256
+ }
257
+
258
+ export interface ChannelzChildren {
259
+ channels: ChannelRef[];
260
+ subchannels: SubchannelRef[];
261
+ sockets: SocketRef[];
262
+ }
263
+
264
+ export interface ChannelInfo {
265
+ target: string;
266
+ state: ConnectivityState;
267
+ trace: ChannelzTrace;
268
+ callTracker: ChannelzCallTracker;
269
+ children: ChannelzChildren;
270
+ }
271
+
272
+ export interface SubchannelInfo extends ChannelInfo {}
273
+
274
+ export interface ServerInfo {
275
+ trace: ChannelzTrace;
276
+ callTracker: ChannelzCallTracker;
277
+ listenerChildren: ChannelzChildren;
278
+ sessionChildren: ChannelzChildren;
279
+ }
280
+
281
+ export interface TlsInfo {
282
+ cipherSuiteStandardName: string | null;
283
+ cipherSuiteOtherName: string | null;
284
+ localCertificate: Buffer | null;
285
+ remoteCertificate: Buffer | null;
286
+ }
287
+
288
+ export interface SocketInfo {
289
+ localAddress: SubchannelAddress;
290
+ remoteAddress: SubchannelAddress | null;
291
+ security: TlsInfo | null;
292
+ remoteName: string | null;
293
+ streamsStarted: number;
294
+ streamsSucceeded: number;
295
+ streamsFailed: number;
296
+ messagesSent: number;
297
+ messagesReceived: number;
298
+ keepAlivesSent: number;
299
+ lastLocalStreamCreatedTimestamp: Date | null;
300
+ lastRemoteStreamCreatedTimestamp: Date | null;
301
+ lastMessageSentTimestamp: Date | null;
302
+ lastMessageReceivedTimestamp: Date | null;
303
+ localFlowControlWindow: number | null;
304
+ remoteFlowControlWindow: number | null;
305
+ }
306
+
307
+ interface ChannelEntry {
308
+ ref: ChannelRef;
309
+ getInfo(): ChannelInfo;
310
+ }
311
+
312
+ interface SubchannelEntry {
313
+ ref: SubchannelRef;
314
+ getInfo(): SubchannelInfo;
315
+ }
316
+
317
+ interface ServerEntry {
318
+ ref: ServerRef;
319
+ getInfo(): ServerInfo;
320
+ }
321
+
322
+ interface SocketEntry {
323
+ ref: SocketRef;
324
+ getInfo(): SocketInfo;
325
+ }
326
+
327
+ let nextId = 1;
328
+
329
+ function getNextId(): number {
330
+ return nextId++;
331
+ }
332
+
333
+ const channels: (ChannelEntry | undefined)[] = [];
334
+ const subchannels: (SubchannelEntry | undefined)[] = [];
335
+ const servers: (ServerEntry | undefined)[] = [];
336
+ const sockets: (SocketEntry | undefined)[] = [];
337
+
338
+ export function registerChannelzChannel(name: string, getInfo: () => ChannelInfo): ChannelRef {
339
+ const id = getNextId();
340
+ const ref: ChannelRef = {id, name, kind: 'channel'};
341
+ channels[id] = { ref, getInfo };
342
+ return ref;
343
+ }
344
+
345
+ export function registerChannelzSubchannel(name: string, getInfo:() => SubchannelInfo): SubchannelRef {
346
+ const id = getNextId();
347
+ const ref: SubchannelRef = {id, name, kind: 'subchannel'};
348
+ subchannels[id] = { ref, getInfo };
349
+ return ref;
350
+ }
351
+
352
+ export function registerChannelzServer(getInfo: () => ServerInfo): ServerRef {
353
+ const id = getNextId();
354
+ const ref: ServerRef = {id, kind: 'server'};
355
+ servers[id] = { ref, getInfo };
356
+ return ref;
357
+ }
358
+
359
+ export function registerChannelzSocket(name: string, getInfo: () => SocketInfo): SocketRef {
360
+ const id = getNextId();
361
+ const ref: SocketRef = {id, name, kind: 'socket'};
362
+ sockets[id] = { ref, getInfo};
363
+ return ref;
364
+ }
365
+
366
+ export function unregisterChannelzRef(ref: ChannelRef | SubchannelRef | ServerRef | SocketRef) {
367
+ switch (ref.kind) {
368
+ case 'channel':
369
+ delete channels[ref.id];
370
+ return;
371
+ case 'subchannel':
372
+ delete subchannels[ref.id];
373
+ return;
374
+ case 'server':
375
+ delete servers[ref.id];
376
+ return;
377
+ case 'socket':
378
+ delete sockets[ref.id];
379
+ return;
380
+ }
381
+ }
382
+
383
+ export interface ChannelzClientView {
384
+ updateState(connectivityState: ConnectivityState): void;
385
+ addTrace(severity: TraceSeverity, description: string, child?: ChannelRef | SubchannelRef): void;
386
+ addCallStarted(): void;
387
+ addCallSucceeded(): void;
388
+ addCallFailed(): void;
389
+ addChild(child: ChannelRef | SubchannelRef): void;
390
+ removeChild(child: ChannelRef | SubchannelRef): void;
391
+ }
392
+
393
+ export interface ChannelzSubchannelView extends ChannelzClientView {
394
+ getRef(): SubchannelRef;
395
+ }
396
+
397
+ /**
398
+ * Converts an IPv4 or IPv6 address from string representation to binary
399
+ * representation
400
+ * @param ipAddress an IP address in standard IPv4 or IPv6 text format
401
+ * @returns
402
+ */
403
+ function ipAddressStringToBuffer(ipAddress: string): Buffer | null {
404
+ if (isIPv4(ipAddress)) {
405
+ return Buffer.from(Uint8Array.from(ipAddress.split('.').map(segment => Number.parseInt(segment))));
406
+ } else if (isIPv6(ipAddress)) {
407
+ let leftSection: string;
408
+ let rightSection: string | null;
409
+ const doubleColonIndex = ipAddress.indexOf('::');
410
+ if (doubleColonIndex === -1) {
411
+ leftSection = ipAddress;
412
+ rightSection = null;
413
+ } else {
414
+ leftSection = ipAddress.substring(0, doubleColonIndex);
415
+ rightSection = ipAddress.substring(doubleColonIndex + 2);
416
+ }
417
+ const leftBuffer = Uint8Array.from(leftSection.split(':').map(segment => Number.parseInt(segment, 16)));
418
+ const rightBuffer = rightSection ? Uint8Array.from(rightSection.split(':').map(segment => Number.parseInt(segment, 16))) : new Uint8Array();
419
+ const middleBuffer = Buffer.alloc(16 - leftBuffer.length - rightBuffer.length, 0);
420
+ return Buffer.concat([leftBuffer, middleBuffer, rightBuffer]);
421
+ } else {
422
+ return null;
423
+ }
424
+ }
425
+
426
+ function connectivityStateToMessage(state: ConnectivityState): ChannelConnectivityState__Output {
427
+ switch (state) {
428
+ case ConnectivityState.CONNECTING:
429
+ return {
430
+ state: 'CONNECTING'
431
+ };
432
+ case ConnectivityState.IDLE:
433
+ return {
434
+ state: 'IDLE'
435
+ };
436
+ case ConnectivityState.READY:
437
+ return {
438
+ state: 'READY'
439
+ };
440
+ case ConnectivityState.SHUTDOWN:
441
+ return {
442
+ state: 'SHUTDOWN'
443
+ };
444
+ case ConnectivityState.TRANSIENT_FAILURE:
445
+ return {
446
+ state: 'TRANSIENT_FAILURE'
447
+ };
448
+ default:
449
+ return {
450
+ state: 'UNKNOWN'
451
+ };
452
+ }
453
+ }
454
+
455
+ function dateToProtoTimestamp(date?: Date | null): Timestamp | null {
456
+ if (!date) {
457
+ return null;
458
+ }
459
+ const millisSinceEpoch = date.getTime();
460
+ return {
461
+ seconds: (millisSinceEpoch / 1000) | 0,
462
+ nanos: (millisSinceEpoch % 1000) * 1_000_000
463
+ }
464
+ }
465
+
466
+ function getChannelMessage(channelEntry: ChannelEntry): ChannelMessage {
467
+ const resolvedInfo = channelEntry.getInfo();
468
+ return {
469
+ ref: channelRefToMessage(channelEntry.ref),
470
+ data: {
471
+ target: resolvedInfo.target,
472
+ state: connectivityStateToMessage(resolvedInfo.state),
473
+ calls_started: resolvedInfo.callTracker.callsStarted,
474
+ calls_succeeded: resolvedInfo.callTracker.callsSucceeded,
475
+ calls_failed: resolvedInfo.callTracker.callsFailed,
476
+ last_call_started_timestamp: dateToProtoTimestamp(resolvedInfo.callTracker.lastCallStartedTimestamp),
477
+ trace: resolvedInfo.trace.getTraceMessage()
478
+ },
479
+ channel_ref: resolvedInfo.children.channels.map(ref => channelRefToMessage(ref)),
480
+ subchannel_ref: resolvedInfo.children.subchannels.map(ref => subchannelRefToMessage(ref))
481
+ };
482
+ }
483
+
484
+ function GetChannel(call: ServerUnaryCall<GetChannelRequest__Output, GetChannelResponse>, callback: sendUnaryData<GetChannelResponse>): void {
485
+ const channelId = Number.parseInt(call.request.channel_id);
486
+ const channelEntry = channels[channelId];
487
+ if (channelEntry === undefined) {
488
+ callback({
489
+ 'code': Status.NOT_FOUND,
490
+ 'details': 'No channel data found for id ' + channelId
491
+ });
492
+ return;
493
+ }
494
+ callback(null, {channel: getChannelMessage(channelEntry)});
495
+ }
496
+
497
+ function GetTopChannels(call: ServerUnaryCall<GetTopChannelsRequest__Output, GetTopChannelsResponse>, callback: sendUnaryData<GetTopChannelsResponse>): void {
498
+ const maxResults = Number.parseInt(call.request.max_results);
499
+ const resultList: ChannelMessage[] = [];
500
+ let i = Number.parseInt(call.request.start_channel_id);
501
+ for (; i < channels.length; i++) {
502
+ const channelEntry = channels[i];
503
+ if (channelEntry === undefined) {
504
+ continue;
505
+ }
506
+ resultList.push(getChannelMessage(channelEntry));
507
+ if (resultList.length >= maxResults) {
508
+ break;
509
+ }
510
+ }
511
+ callback(null, {
512
+ channel: resultList,
513
+ end: i >= servers.length
514
+ });
515
+ }
516
+
517
+ function getServerMessage(serverEntry: ServerEntry): ServerMessage {
518
+ const resolvedInfo = serverEntry.getInfo();
519
+ return {
520
+ ref: serverRefToMessage(serverEntry.ref),
521
+ data: {
522
+ calls_started: resolvedInfo.callTracker.callsStarted,
523
+ calls_succeeded: resolvedInfo.callTracker.callsSucceeded,
524
+ calls_failed: resolvedInfo.callTracker.callsFailed,
525
+ last_call_started_timestamp: dateToProtoTimestamp(resolvedInfo.callTracker.lastCallStartedTimestamp),
526
+ trace: resolvedInfo.trace.getTraceMessage()
527
+ },
528
+ listen_socket: resolvedInfo.listenerChildren.sockets.map(ref => socketRefToMessage(ref))
529
+ };
530
+ }
531
+
532
+ function GetServer(call: ServerUnaryCall<GetServerRequest__Output, GetServerResponse>, callback: sendUnaryData<GetServerResponse>): void {
533
+ const serverId = Number.parseInt(call.request.server_id);
534
+ const serverEntry = servers[serverId];
535
+ if (serverEntry === undefined) {
536
+ callback({
537
+ 'code': Status.NOT_FOUND,
538
+ 'details': 'No server data found for id ' + serverId
539
+ });
540
+ return;
541
+ }
542
+ callback(null, {server: getServerMessage(serverEntry)});
543
+ }
544
+
545
+ function GetServers(call: ServerUnaryCall<GetServersRequest__Output, GetServersResponse>, callback: sendUnaryData<GetServersResponse>): void {
546
+ const maxResults = Number.parseInt(call.request.max_results);
547
+ const resultList: ServerMessage[] = [];
548
+ let i = Number.parseInt(call.request.start_server_id);
549
+ for (; i < servers.length; i++) {
550
+ const serverEntry = servers[i];
551
+ if (serverEntry === undefined) {
552
+ continue;
553
+ }
554
+ resultList.push(getServerMessage(serverEntry));
555
+ if (resultList.length >= maxResults) {
556
+ break;
557
+ }
558
+ }
559
+ callback(null, {
560
+ server: resultList,
561
+ end: i >= servers.length
562
+ });
563
+ }
564
+
565
+ function GetSubchannel(call: ServerUnaryCall<GetSubchannelRequest__Output, GetSubchannelResponse>, callback: sendUnaryData<GetSubchannelResponse>): void {
566
+ const subchannelId = Number.parseInt(call.request.subchannel_id);
567
+ const subchannelEntry = subchannels[subchannelId];
568
+ if (subchannelEntry === undefined) {
569
+ callback({
570
+ 'code': Status.NOT_FOUND,
571
+ 'details': 'No subchannel data found for id ' + subchannelId
572
+ });
573
+ return;
574
+ }
575
+ const resolvedInfo = subchannelEntry.getInfo();
576
+ const subchannelMessage: SubchannelMessage = {
577
+ ref: subchannelRefToMessage(subchannelEntry.ref),
578
+ data: {
579
+ target: resolvedInfo.target,
580
+ state: connectivityStateToMessage(resolvedInfo.state),
581
+ calls_started: resolvedInfo.callTracker.callsStarted,
582
+ calls_succeeded: resolvedInfo.callTracker.callsSucceeded,
583
+ calls_failed: resolvedInfo.callTracker.callsFailed,
584
+ last_call_started_timestamp: dateToProtoTimestamp(resolvedInfo.callTracker.lastCallStartedTimestamp),
585
+ trace: resolvedInfo.trace.getTraceMessage()
586
+ },
587
+ socket_ref: resolvedInfo.children.sockets.map(ref => socketRefToMessage(ref))
588
+ };
589
+ callback(null, {subchannel: subchannelMessage});
590
+ }
591
+
592
+ function subchannelAddressToAddressMessage(subchannelAddress: SubchannelAddress): Address {
593
+ if (isTcpSubchannelAddress(subchannelAddress)) {
594
+ return {
595
+ address: 'tcpip_address',
596
+ tcpip_address: {
597
+ ip_address: ipAddressStringToBuffer(subchannelAddress.host) ?? undefined,
598
+ port: subchannelAddress.port
599
+ }
600
+ };
601
+ } else {
602
+ return {
603
+ address: 'uds_address',
604
+ uds_address: {
605
+ filename: subchannelAddress.path
606
+ }
607
+ };
608
+ }
609
+ }
610
+
611
+ function GetSocket(call: ServerUnaryCall<GetSocketRequest__Output, GetSocketResponse>, callback: sendUnaryData<GetSocketResponse>): void {
612
+ const socketId = Number.parseInt(call.request.socket_id);
613
+ const socketEntry = sockets[socketId];
614
+ if (socketEntry === undefined) {
615
+ callback({
616
+ 'code': Status.NOT_FOUND,
617
+ 'details': 'No socket data found for id ' + socketId
618
+ });
619
+ return;
620
+ }
621
+ const resolvedInfo = socketEntry.getInfo();
622
+ const securityMessage: Security | null = resolvedInfo.security ? {
623
+ model: 'tls',
624
+ tls: {
625
+ cipher_suite: resolvedInfo.security.cipherSuiteStandardName ? 'standard_name' : 'other_name',
626
+ standard_name: resolvedInfo.security.cipherSuiteStandardName ?? undefined,
627
+ other_name: resolvedInfo.security.cipherSuiteOtherName ?? undefined,
628
+ local_certificate: resolvedInfo.security.localCertificate ?? undefined,
629
+ remote_certificate: resolvedInfo.security.remoteCertificate ?? undefined
630
+ }
631
+ } : null;
632
+ const socketMessage: SocketMessage = {
633
+ ref: socketRefToMessage(socketEntry.ref),
634
+ local: subchannelAddressToAddressMessage(resolvedInfo.localAddress),
635
+ remote: resolvedInfo.remoteAddress ? subchannelAddressToAddressMessage(resolvedInfo.remoteAddress) : null,
636
+ remote_name: resolvedInfo.remoteName ?? undefined,
637
+ security: securityMessage,
638
+ data: {
639
+ keep_alives_sent: resolvedInfo.keepAlivesSent,
640
+ streams_started: resolvedInfo.streamsStarted,
641
+ streams_succeeded: resolvedInfo.streamsSucceeded,
642
+ streams_failed: resolvedInfo.streamsFailed,
643
+ last_local_stream_created_timestamp: dateToProtoTimestamp(resolvedInfo.lastLocalStreamCreatedTimestamp),
644
+ last_remote_stream_created_timestamp: dateToProtoTimestamp(resolvedInfo.lastRemoteStreamCreatedTimestamp),
645
+ messages_received: resolvedInfo.messagesReceived,
646
+ messages_sent: resolvedInfo.messagesSent,
647
+ last_message_received_timestamp: dateToProtoTimestamp(resolvedInfo.lastMessageReceivedTimestamp),
648
+ last_message_sent_timestamp: dateToProtoTimestamp(resolvedInfo.lastMessageSentTimestamp),
649
+ local_flow_control_window: resolvedInfo.localFlowControlWindow ? { value: resolvedInfo.localFlowControlWindow } : null,
650
+ remote_flow_control_window: resolvedInfo.remoteFlowControlWindow ? { value: resolvedInfo.remoteFlowControlWindow } : null,
651
+ }
652
+ };
653
+ callback(null, {socket: socketMessage});
654
+ }
655
+
656
+ function GetServerSockets(call: ServerUnaryCall<GetServerSocketsRequest__Output, GetServerSocketsResponse>, callback: sendUnaryData<GetServerSocketsResponse>): void {
657
+ const serverId = Number.parseInt(call.request.server_id);
658
+ const serverEntry = servers[serverId];
659
+ if (serverEntry === undefined) {
660
+ callback({
661
+ 'code': Status.NOT_FOUND,
662
+ 'details': 'No server data found for id ' + serverId
663
+ });
664
+ return;
665
+ }
666
+ const startId = Number.parseInt(call.request.start_socket_id);
667
+ const maxResults = Number.parseInt(call.request.max_results);
668
+ const resolvedInfo = serverEntry.getInfo();
669
+ // If we wanted to include listener sockets in the result, this line would
670
+ // instead say
671
+ // const allSockets = resolvedInfo.listenerChildren.sockets.concat(resolvedInfo.sessionChildren.sockets).sort((ref1, ref2) => ref1.id - ref2.id);
672
+ const allSockets = resolvedInfo.sessionChildren.sockets.sort((ref1, ref2) => ref1.id - ref2.id);
673
+ const resultList: SocketRefMessage[] = [];
674
+ let i = 0;
675
+ for (; i < allSockets.length; i++) {
676
+ if (allSockets[i].id >= startId) {
677
+ resultList.push(socketRefToMessage(allSockets[i]));
678
+ if (resultList.length >= maxResults) {
679
+ break;
680
+ }
681
+ }
682
+ }
683
+ callback(null, {
684
+ socket_ref: resultList,
685
+ end: i >= allSockets.length
686
+ });
687
+ }
688
+
689
+ export function getChannelzHandlers(): ChannelzHandlers {
690
+ return {
691
+ GetChannel,
692
+ GetTopChannels,
693
+ GetServer,
694
+ GetServers,
695
+ GetSubchannel,
696
+ GetSocket,
697
+ GetServerSockets
698
+ };
699
+ }
700
+
701
+ let loadedChannelzDefinition: ChannelzDefinition | null = null;
702
+
703
+ export function getChannelzServiceDefinition(): ChannelzDefinition {
704
+ if (loadedChannelzDefinition) {
705
+ return loadedChannelzDefinition;
706
+ }
707
+ /* The purpose of this complexity is to avoid loading @grpc/proto-loader at
708
+ * runtime for users who will not use/enable channelz. */
709
+ const loaderLoadSync = require('@grpc/proto-loader').loadSync as typeof loadSync;
710
+ const loadedProto = loaderLoadSync('channelz.proto', {
711
+ keepCase: true,
712
+ longs: String,
713
+ enums: String,
714
+ defaults: true,
715
+ oneofs: true,
716
+ includeDirs: [
717
+ `${__dirname}/../../proto`
718
+ ]
719
+ });
720
+ const channelzGrpcObject = loadPackageDefinition(loadedProto) as unknown as ChannelzProtoGrpcType;
721
+ loadedChannelzDefinition = channelzGrpcObject.grpc.channelz.v1.Channelz.service;
722
+ return loadedChannelzDefinition;
723
+ }
724
+
725
+ export function setup() {
726
+ registerAdminService(getChannelzServiceDefinition, getChannelzHandlers);
727
+ }