@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.
- package/dist/app.js +1 -1
- package/dist/e2o.js +1 -1
- package/dist/e2o_view.js +1 -1
- package/dist/exports.js +1 -1
- package/dist/grpc/grpc.ts +9 -0
- package/exports.js +2 -1
- package/node_modules/@grpc/grpc-js/README.md +2 -0
- package/node_modules/@grpc/grpc-js/build/src/admin.d.ts +11 -0
- package/node_modules/@grpc/grpc-js/build/src/admin.js +31 -0
- package/node_modules/@grpc/grpc-js/build/src/admin.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/call-credentials-filter.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/call-stream.d.ts +14 -5
- package/node_modules/@grpc/grpc-js/build/src/call-stream.js +56 -20
- package/node_modules/@grpc/grpc-js/build/src/call-stream.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/call.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/channel-options.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/channel.d.ts +16 -7
- package/node_modules/@grpc/grpc-js/build/src/channel.js +138 -59
- package/node_modules/@grpc/grpc-js/build/src/channel.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/channelz.d.ts +122 -0
- package/node_modules/@grpc/grpc-js/build/src/channelz.js +568 -0
- package/node_modules/@grpc/grpc-js/build/src/channelz.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/client-interceptors.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/client.js +2 -1
- package/node_modules/@grpc/grpc-js/build/src/client.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/constants.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/deadline-filter.d.ts +3 -0
- package/node_modules/@grpc/grpc-js/build/src/deadline-filter.js +19 -5
- package/node_modules/@grpc/grpc-js/build/src/deadline-filter.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/experimental.d.ts +6 -5
- package/node_modules/@grpc/grpc-js/build/src/experimental.js +5 -2
- package/node_modules/@grpc/grpc-js/build/src/experimental.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/filter-stack.d.ts +4 -0
- package/node_modules/@grpc/grpc-js/build/src/filter-stack.js +14 -0
- package/node_modules/@grpc/grpc-js/build/src/filter-stack.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/filter.d.ts +2 -0
- package/node_modules/@grpc/grpc-js/build/src/filter.js +1 -0
- package/node_modules/@grpc/grpc-js/build/src/filter.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/generated/channelz.d.ts +72 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/channelz.js +3 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/channelz.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Any.d.ts +10 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Any.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Any.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BoolValue.d.ts +6 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BoolValue.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BoolValue.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BytesValue.d.ts +7 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BytesValue.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/BytesValue.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/DoubleValue.d.ts +6 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/DoubleValue.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/DoubleValue.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Duration.d.ts +10 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Duration.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Duration.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/FloatValue.d.ts +6 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/FloatValue.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/FloatValue.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int32Value.d.ts +6 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int32Value.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int32Value.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int64Value.d.ts +8 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int64Value.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Int64Value.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/StringValue.d.ts +6 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/StringValue.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/StringValue.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Timestamp.d.ts +10 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Timestamp.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/Timestamp.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt32Value.d.ts +6 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt32Value.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt32Value.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt64Value.d.ts +8 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt64Value.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/UInt64Value.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Address.d.ts +80 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Address.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Address.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channel.d.ts +64 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channel.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channel.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelConnectivityState.d.ts +22 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelConnectivityState.js +15 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelConnectivityState.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelData.d.ts +73 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelData.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelData.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelRef.d.ts +28 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelRef.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelRef.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTrace.d.ts +42 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTrace.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTrace.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTraceEvent.d.ts +66 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTraceEvent.js +16 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ChannelTraceEvent.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channelz.d.ts +159 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channelz.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Channelz.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelRequest.d.ts +14 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelRequest.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelRequest.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelResponse.d.ts +15 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelResponse.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetChannelResponse.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerRequest.d.ts +14 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerRequest.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerRequest.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerResponse.d.ts +15 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerResponse.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerResponse.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsRequest.d.ts +36 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsRequest.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsRequest.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsResponse.d.ts +29 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsResponse.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServerSocketsResponse.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersRequest.d.ts +34 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersRequest.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersRequest.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersResponse.d.ts +29 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersResponse.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetServersResponse.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketRequest.d.ts +26 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketRequest.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketRequest.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketResponse.d.ts +15 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketResponse.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSocketResponse.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelRequest.d.ts +14 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelRequest.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelRequest.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelResponse.d.ts +15 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelResponse.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetSubchannelResponse.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsRequest.d.ts +34 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsRequest.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsRequest.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsResponse.d.ts +29 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsResponse.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/GetTopChannelsResponse.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Security.d.ts +80 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Security.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Security.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Server.d.ts +41 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Server.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Server.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerData.d.ts +54 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerData.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerData.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerRef.d.ts +28 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerRef.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/ServerRef.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Socket.d.ts +66 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Socket.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Socket.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketData.d.ts +147 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketData.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketData.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOption.d.ts +43 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOption.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOption.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionLinger.d.ts +29 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionLinger.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionLinger.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.d.ts +70 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTimeout.d.ts +15 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTimeout.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketOptionTimeout.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketRef.d.ts +28 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketRef.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SocketRef.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Subchannel.d.ts +66 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Subchannel.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/Subchannel.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SubchannelRef.d.ts +28 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SubchannelRef.js +4 -0
- package/node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/SubchannelRef.js.map +1 -0
- package/node_modules/@grpc/grpc-js/build/src/http_proxy.d.ts +1 -1
- package/node_modules/@grpc/grpc-js/build/src/http_proxy.js +11 -8
- package/node_modules/@grpc/grpc-js/build/src/http_proxy.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/index.d.ts +7 -4
- package/node_modules/@grpc/grpc-js/build/src/index.js +19 -5
- package/node_modules/@grpc/grpc-js/build/src/index.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-child-handler.d.ts +1 -1
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-child-handler.js +8 -2
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-child-handler.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-pick-first.d.ts +1 -1
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-pick-first.js +56 -49
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-pick-first.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-round-robin.d.ts +1 -1
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-round-robin.js +34 -31
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-round-robin.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/load-balancer.d.ts +17 -4
- package/node_modules/@grpc/grpc-js/build/src/load-balancer.js +36 -13
- package/node_modules/@grpc/grpc-js/build/src/load-balancer.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/logging.js +35 -4
- package/node_modules/@grpc/grpc-js/build/src/logging.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/max-message-size-filter.d.ts +3 -3
- package/node_modules/@grpc/grpc-js/build/src/max-message-size-filter.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/metadata.d.ts +7 -0
- package/node_modules/@grpc/grpc-js/build/src/metadata.js +11 -0
- package/node_modules/@grpc/grpc-js/build/src/metadata.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/picker.d.ts +5 -5
- package/node_modules/@grpc/grpc-js/build/src/picker.js +2 -2
- package/node_modules/@grpc/grpc-js/build/src/picker.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/resolver-dns.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/resolver-ip.js +6 -5
- package/node_modules/@grpc/grpc-js/build/src/resolver-ip.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/resolver.d.ts +3 -2
- package/node_modules/@grpc/grpc-js/build/src/resolver.js +1 -10
- package/node_modules/@grpc/grpc-js/build/src/resolver.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/resolving-load-balancer.d.ts +1 -1
- package/node_modules/@grpc/grpc-js/build/src/resolving-load-balancer.js +23 -18
- package/node_modules/@grpc/grpc-js/build/src/resolving-load-balancer.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/server-call.js +7 -3
- package/node_modules/@grpc/grpc-js/build/src/server-call.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/server.d.ts +10 -0
- package/node_modules/@grpc/grpc-js/build/src/server.js +230 -42
- package/node_modules/@grpc/grpc-js/build/src/server.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/service-config.d.ts +5 -1
- package/node_modules/@grpc/grpc-js/build/src/service-config.js +23 -3
- package/node_modules/@grpc/grpc-js/build/src/service-config.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/subchannel-address.d.ts +1 -0
- package/node_modules/@grpc/grpc-js/build/src/subchannel-address.js +17 -1
- package/node_modules/@grpc/grpc-js/build/src/subchannel-address.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/subchannel-pool.d.ts +2 -1
- package/node_modules/@grpc/grpc-js/build/src/subchannel-pool.js +2 -1
- package/node_modules/@grpc/grpc-js/build/src/subchannel-pool.js.map +1 -1
- package/node_modules/@grpc/grpc-js/build/src/subchannel.d.ts +30 -19
- package/node_modules/@grpc/grpc-js/build/src/subchannel.js +180 -78
- package/node_modules/@grpc/grpc-js/build/src/subchannel.js.map +1 -1
- package/node_modules/@grpc/grpc-js/node_modules/.bin/proto-loader-gen-types +15 -0
- package/node_modules/@grpc/grpc-js/node_modules/.bin/proto-loader-gen-types.cmd +7 -0
- package/node_modules/@grpc/grpc-js/package.json +9 -6
- package/node_modules/@grpc/grpc-js/proto/channelz.proto +564 -0
- package/node_modules/@grpc/grpc-js/src/admin.ts +39 -0
- package/node_modules/@grpc/grpc-js/src/call-credentials-filter.ts +3 -1
- package/node_modules/@grpc/grpc-js/src/call-stream.ts +75 -23
- package/node_modules/@grpc/grpc-js/src/call.ts +8 -4
- package/node_modules/@grpc/grpc-js/src/channel-options.ts +1 -0
- package/node_modules/@grpc/grpc-js/src/channel.ts +183 -73
- package/node_modules/@grpc/grpc-js/src/channelz.ts +727 -0
- package/node_modules/@grpc/grpc-js/src/client-interceptors.ts +8 -3
- package/node_modules/@grpc/grpc-js/src/client.ts +18 -16
- package/node_modules/@grpc/grpc-js/src/connectivity-state.ts +24 -0
- package/node_modules/@grpc/grpc-js/src/constants.ts +5 -1
- package/node_modules/@grpc/grpc-js/src/deadline-filter.ts +21 -5
- package/node_modules/@grpc/grpc-js/src/experimental.ts +36 -12
- package/node_modules/@grpc/grpc-js/src/filter-stack.ts +18 -0
- package/node_modules/@grpc/grpc-js/src/filter.ts +4 -0
- package/node_modules/@grpc/grpc-js/src/generated/channelz.ts +73 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/Any.ts +13 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/BoolValue.ts +10 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/BytesValue.ts +10 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/DoubleValue.ts +10 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/Duration.ts +13 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/FloatValue.ts +10 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/Int32Value.ts +10 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/Int64Value.ts +11 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/StringValue.ts +10 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/Timestamp.ts +13 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/UInt32Value.ts +10 -0
- package/node_modules/@grpc/grpc-js/src/generated/google/protobuf/UInt64Value.ts +11 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Address.ts +89 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Channel.ts +68 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ChannelConnectivityState.ts +29 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ChannelData.ts +76 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ChannelRef.ts +31 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ChannelTrace.ts +45 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ChannelTraceEvent.ts +73 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Channelz.ts +178 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetChannelRequest.ts +17 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetChannelResponse.ts +19 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServerRequest.ts +17 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServerResponse.ts +19 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServerSocketsRequest.ts +39 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServerSocketsResponse.ts +33 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServersRequest.ts +37 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetServersResponse.ts +33 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetSocketRequest.ts +29 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetSocketResponse.ts +19 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetSubchannelRequest.ts +17 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetSubchannelResponse.ts +19 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetTopChannelsRequest.ts +37 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/GetTopChannelsResponse.ts +33 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Security.ts +87 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Server.ts +45 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ServerData.ts +57 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/ServerRef.ts +31 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Socket.ts +70 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketData.ts +150 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketOption.ts +47 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketOptionLinger.ts +33 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketOptionTcpInfo.ts +74 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketOptionTimeout.ts +19 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SocketRef.ts +31 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/Subchannel.ts +70 -0
- package/node_modules/@grpc/grpc-js/src/generated/grpc/channelz/v1/SubchannelRef.ts +31 -0
- package/node_modules/@grpc/grpc-js/src/http_proxy.ts +15 -11
- package/node_modules/@grpc/grpc-js/src/index.ts +29 -6
- package/node_modules/@grpc/grpc-js/src/load-balancer-child-handler.ts +12 -3
- package/node_modules/@grpc/grpc-js/src/load-balancer-pick-first.ts +19 -8
- package/node_modules/@grpc/grpc-js/src/load-balancer-round-robin.ts +15 -9
- package/node_modules/@grpc/grpc-js/src/load-balancer.ts +60 -21
- package/node_modules/@grpc/grpc-js/src/logging.ts +43 -7
- package/node_modules/@grpc/grpc-js/src/make-client.ts +1 -1
- package/node_modules/@grpc/grpc-js/src/max-message-size-filter.ts +18 -7
- package/node_modules/@grpc/grpc-js/src/metadata.ts +12 -0
- package/node_modules/@grpc/grpc-js/src/picker.ts +8 -8
- package/node_modules/@grpc/grpc-js/src/resolver-dns.ts +8 -2
- package/node_modules/@grpc/grpc-js/src/resolver-ip.ts +25 -16
- package/node_modules/@grpc/grpc-js/src/resolver-uds.ts +1 -1
- package/node_modules/@grpc/grpc-js/src/resolver.ts +5 -12
- package/node_modules/@grpc/grpc-js/src/resolving-load-balancer.ts +36 -14
- package/node_modules/@grpc/grpc-js/src/server-call.ts +11 -5
- package/node_modules/@grpc/grpc-js/src/server.ts +250 -44
- package/node_modules/@grpc/grpc-js/src/service-config.ts +35 -6
- package/node_modules/@grpc/grpc-js/src/subchannel-address.ts +79 -0
- package/node_modules/@grpc/grpc-js/src/subchannel-pool.ts +2 -2
- package/node_modules/@grpc/grpc-js/src/subchannel.ts +206 -97
- package/node_modules/@grpc/proto-loader/build/bin/proto-loader-gen-types.js +34 -0
- package/node_modules/@grpc/proto-loader/build/src/index.js +3 -0
- package/node_modules/@grpc/proto-loader/package.json +1 -1
- package/node_modules/{yargs/node_modules/y18n → y18n}/CHANGELOG.md +0 -0
- package/node_modules/{yargs/node_modules/y18n → y18n}/LICENSE +0 -0
- package/node_modules/{yargs/node_modules/y18n → y18n}/README.md +0 -0
- package/node_modules/{yargs/node_modules/y18n → y18n}/build/index.cjs +0 -0
- package/node_modules/{yargs/node_modules/y18n → y18n}/build/lib/cjs.js +0 -0
- package/node_modules/{yargs/node_modules/y18n → y18n}/build/lib/index.js +0 -0
- package/node_modules/{yargs/node_modules/y18n → y18n}/build/lib/platform-shims/node.js +0 -0
- package/node_modules/{yargs/node_modules/y18n → y18n}/index.mjs +0 -0
- package/node_modules/{yargs/node_modules/y18n → y18n}/package.json +0 -0
- package/package.json +41 -24
- package/dist/e2o.js.LICENSE.txt +0 -12
- package/dist/e2o_view.js.LICENSE.txt +0 -12
- package/dist/grpc/grpc.js +0 -8
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-registry.d.ts +0 -7
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-registry.js +0 -83
- package/node_modules/@grpc/grpc-js/build/src/load-balancer-registry.js.map +0 -1
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { ChannelOptions, channelOptionsEqual } from './channel-options';
|
|
19
|
+
import { Subchannel } from './subchannel';
|
|
19
20
|
import {
|
|
20
|
-
Subchannel,
|
|
21
21
|
SubchannelAddress,
|
|
22
22
|
subchannelAddressEqual,
|
|
23
|
-
} from './subchannel';
|
|
23
|
+
} from './subchannel-address';
|
|
24
24
|
import { ChannelCredentials } from './channel-credentials';
|
|
25
25
|
import { GrpcUri, uriToString } from './uri-parser';
|
|
26
26
|
|
|
@@ -18,32 +18,30 @@
|
|
|
18
18
|
import * as http2 from 'http2';
|
|
19
19
|
import { ChannelCredentials } from './channel-credentials';
|
|
20
20
|
import { Metadata } from './metadata';
|
|
21
|
-
import { Http2CallStream } from './call-stream';
|
|
21
|
+
import { Call, Http2CallStream, WriteObject } from './call-stream';
|
|
22
22
|
import { ChannelOptions } from './channel-options';
|
|
23
|
-
import { PeerCertificate, checkServerIdentity } from 'tls';
|
|
24
|
-
import { ConnectivityState } from './
|
|
23
|
+
import { PeerCertificate, checkServerIdentity, TLSSocket, CipherNameAndProtocol } from 'tls';
|
|
24
|
+
import { ConnectivityState } from './connectivity-state';
|
|
25
25
|
import { BackoffTimeout, BackoffOptions } from './backoff-timeout';
|
|
26
26
|
import { getDefaultAuthority } from './resolver';
|
|
27
27
|
import * as logging from './logging';
|
|
28
|
-
import { LogVerbosity } from './constants';
|
|
28
|
+
import { LogVerbosity, Status } from './constants';
|
|
29
29
|
import { getProxiedConnection, ProxyConnectionResult } from './http_proxy';
|
|
30
30
|
import * as net from 'net';
|
|
31
31
|
import { GrpcUri, parseUri, splitHostPort, uriToString } from './uri-parser';
|
|
32
32
|
import { ConnectionOptions } from 'tls';
|
|
33
|
-
import { FilterFactory, Filter } from './filter';
|
|
33
|
+
import { FilterFactory, Filter, BaseFilter } from './filter';
|
|
34
|
+
import {
|
|
35
|
+
stringToSubchannelAddress,
|
|
36
|
+
SubchannelAddress,
|
|
37
|
+
subchannelAddressToString,
|
|
38
|
+
} from './subchannel-address';
|
|
39
|
+
import { SubchannelRef, ChannelzTrace, ChannelzChildrenTracker, SubchannelInfo, registerChannelzSubchannel, ChannelzCallTracker, SocketInfo, SocketRef, unregisterChannelzRef, registerChannelzSocket, TlsInfo } from './channelz';
|
|
34
40
|
|
|
35
41
|
const clientVersion = require('../../package.json').version;
|
|
36
42
|
|
|
37
43
|
const TRACER_NAME = 'subchannel';
|
|
38
44
|
|
|
39
|
-
function trace(text: string): void {
|
|
40
|
-
logging.trace(LogVerbosity.DEBUG, TRACER_NAME, text);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function refTrace(text: string): void {
|
|
44
|
-
logging.trace(LogVerbosity.DEBUG, 'subchannel_refcount', text);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
45
|
const MIN_CONNECT_TIMEOUT_MS = 20000;
|
|
48
46
|
const INITIAL_BACKOFF_MS = 1000;
|
|
49
47
|
const BACKOFF_MULTIPLIER = 1.6;
|
|
@@ -62,6 +60,11 @@ export type ConnectivityStateListener = (
|
|
|
62
60
|
newState: ConnectivityState
|
|
63
61
|
) => void;
|
|
64
62
|
|
|
63
|
+
export interface SubchannelCallStatsTracker {
|
|
64
|
+
addMessageSent(): void;
|
|
65
|
+
addMessageReceived(): void;
|
|
66
|
+
}
|
|
67
|
+
|
|
65
68
|
const {
|
|
66
69
|
HTTP2_HEADER_AUTHORITY,
|
|
67
70
|
HTTP2_HEADER_CONTENT_TYPE,
|
|
@@ -82,52 +85,6 @@ function uniformRandom(min: number, max: number) {
|
|
|
82
85
|
|
|
83
86
|
const tooManyPingsData: Buffer = Buffer.from('too_many_pings', 'ascii');
|
|
84
87
|
|
|
85
|
-
export interface TcpSubchannelAddress {
|
|
86
|
-
port: number;
|
|
87
|
-
host: string;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface IpcSubchannelAddress {
|
|
91
|
-
path: string;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* This represents a single backend address to connect to. This interface is a
|
|
96
|
-
* subset of net.SocketConnectOpts, i.e. the options described at
|
|
97
|
-
* https://nodejs.org/api/net.html#net_socket_connect_options_connectlistener.
|
|
98
|
-
* Those are in turn a subset of the options that can be passed to http2.connect.
|
|
99
|
-
*/
|
|
100
|
-
export type SubchannelAddress = TcpSubchannelAddress | IpcSubchannelAddress;
|
|
101
|
-
|
|
102
|
-
export function isTcpSubchannelAddress(
|
|
103
|
-
address: SubchannelAddress
|
|
104
|
-
): address is TcpSubchannelAddress {
|
|
105
|
-
return 'port' in address;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export function subchannelAddressEqual(
|
|
109
|
-
address1: SubchannelAddress,
|
|
110
|
-
address2: SubchannelAddress
|
|
111
|
-
): boolean {
|
|
112
|
-
if (isTcpSubchannelAddress(address1)) {
|
|
113
|
-
return (
|
|
114
|
-
isTcpSubchannelAddress(address2) &&
|
|
115
|
-
address1.host === address2.host &&
|
|
116
|
-
address1.port === address2.port
|
|
117
|
-
);
|
|
118
|
-
} else {
|
|
119
|
-
return !isTcpSubchannelAddress(address2) && address1.path === address2.path;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export function subchannelAddressToString(address: SubchannelAddress): string {
|
|
124
|
-
if (isTcpSubchannelAddress(address)) {
|
|
125
|
-
return address.host + ':' + address.port;
|
|
126
|
-
} else {
|
|
127
|
-
return address.path;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
88
|
export class Subchannel {
|
|
132
89
|
/**
|
|
133
90
|
* The subchannel's current connectivity state. Invariant: `session` === `null`
|
|
@@ -183,7 +140,7 @@ export class Subchannel {
|
|
|
183
140
|
/**
|
|
184
141
|
* Indicates whether keepalive pings should be sent without any active calls
|
|
185
142
|
*/
|
|
186
|
-
private keepaliveWithoutCalls
|
|
143
|
+
private keepaliveWithoutCalls = false;
|
|
187
144
|
|
|
188
145
|
/**
|
|
189
146
|
* Tracks calls with references to this subchannel
|
|
@@ -199,6 +156,26 @@ export class Subchannel {
|
|
|
199
156
|
*/
|
|
200
157
|
private subchannelAddressString: string;
|
|
201
158
|
|
|
159
|
+
// Channelz info
|
|
160
|
+
private channelzRef: SubchannelRef;
|
|
161
|
+
private channelzTrace: ChannelzTrace;
|
|
162
|
+
private callTracker = new ChannelzCallTracker();
|
|
163
|
+
private childrenTracker = new ChannelzChildrenTracker();
|
|
164
|
+
|
|
165
|
+
// Channelz socket info
|
|
166
|
+
private channelzSocketRef: SocketRef | null = null;
|
|
167
|
+
/**
|
|
168
|
+
* Name of the remote server, if it is not the same as the subchannel
|
|
169
|
+
* address, i.e. if connecting through an HTTP CONNECT proxy.
|
|
170
|
+
*/
|
|
171
|
+
private remoteName: string | null = null;
|
|
172
|
+
private streamTracker = new ChannelzCallTracker();
|
|
173
|
+
private keepalivesSent = 0;
|
|
174
|
+
private messagesSent = 0;
|
|
175
|
+
private messagesReceived = 0;
|
|
176
|
+
private lastMessageSentTimestamp: Date | null = null;
|
|
177
|
+
private lastMessageReceivedTimestamp: Date | null = null;
|
|
178
|
+
|
|
202
179
|
/**
|
|
203
180
|
* A class representing a connection to a single backend.
|
|
204
181
|
* @param channelTarget The target string for the channel as a whole
|
|
@@ -231,7 +208,8 @@ export class Subchannel {
|
|
|
231
208
|
this.keepaliveTimeoutMs = options['grpc.keepalive_timeout_ms']!;
|
|
232
209
|
}
|
|
233
210
|
if ('grpc.keepalive_permit_without_calls' in options) {
|
|
234
|
-
this.keepaliveWithoutCalls =
|
|
211
|
+
this.keepaliveWithoutCalls =
|
|
212
|
+
options['grpc.keepalive_permit_without_calls'] === 1;
|
|
235
213
|
} else {
|
|
236
214
|
this.keepaliveWithoutCalls = false;
|
|
237
215
|
}
|
|
@@ -247,6 +225,87 @@ export class Subchannel {
|
|
|
247
225
|
this.handleBackoffTimer();
|
|
248
226
|
}, backoffOptions);
|
|
249
227
|
this.subchannelAddressString = subchannelAddressToString(subchannelAddress);
|
|
228
|
+
|
|
229
|
+
this.channelzRef = registerChannelzSubchannel(this.subchannelAddressString, () => this.getChannelzInfo());
|
|
230
|
+
this.channelzTrace = new ChannelzTrace();
|
|
231
|
+
this.channelzTrace.addTrace('CT_INFO', 'Subchannel created');
|
|
232
|
+
this.trace('Subchannel constructed with options ' + JSON.stringify(options, undefined, 2));
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
private getChannelzInfo(): SubchannelInfo {
|
|
236
|
+
return {
|
|
237
|
+
state: this.connectivityState,
|
|
238
|
+
trace: this.channelzTrace,
|
|
239
|
+
callTracker: this.callTracker,
|
|
240
|
+
children: this.childrenTracker.getChildLists(),
|
|
241
|
+
target: this.subchannelAddressString
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
private getChannelzSocketInfo(): SocketInfo | null {
|
|
246
|
+
if (this.session === null) {
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
const sessionSocket = this.session.socket;
|
|
250
|
+
const remoteAddress = sessionSocket.remoteAddress ? stringToSubchannelAddress(sessionSocket.remoteAddress, sessionSocket.remotePort) : null;
|
|
251
|
+
const localAddress = stringToSubchannelAddress(sessionSocket.localAddress, sessionSocket.localPort);
|
|
252
|
+
let tlsInfo: TlsInfo | null;
|
|
253
|
+
if (this.session.encrypted) {
|
|
254
|
+
const tlsSocket: TLSSocket = sessionSocket as TLSSocket;
|
|
255
|
+
const cipherInfo: CipherNameAndProtocol & {standardName?: string} = tlsSocket.getCipher();
|
|
256
|
+
const certificate = tlsSocket.getCertificate();
|
|
257
|
+
const peerCertificate = tlsSocket.getPeerCertificate();
|
|
258
|
+
tlsInfo = {
|
|
259
|
+
cipherSuiteStandardName: cipherInfo.standardName ?? null,
|
|
260
|
+
cipherSuiteOtherName: cipherInfo.standardName ? null : cipherInfo.name,
|
|
261
|
+
localCertificate: (certificate && 'raw' in certificate) ? certificate.raw : null,
|
|
262
|
+
remoteCertificate: (peerCertificate && 'raw' in peerCertificate) ? peerCertificate.raw : null
|
|
263
|
+
};
|
|
264
|
+
} else {
|
|
265
|
+
tlsInfo = null;
|
|
266
|
+
}
|
|
267
|
+
const socketInfo: SocketInfo = {
|
|
268
|
+
remoteAddress: remoteAddress,
|
|
269
|
+
localAddress: localAddress,
|
|
270
|
+
security: tlsInfo,
|
|
271
|
+
remoteName: this.remoteName,
|
|
272
|
+
streamsStarted: this.streamTracker.callsStarted,
|
|
273
|
+
streamsSucceeded: this.streamTracker.callsSucceeded,
|
|
274
|
+
streamsFailed: this.streamTracker.callsFailed,
|
|
275
|
+
messagesSent: this.messagesSent,
|
|
276
|
+
messagesReceived: this.messagesReceived,
|
|
277
|
+
keepAlivesSent: this.keepalivesSent,
|
|
278
|
+
lastLocalStreamCreatedTimestamp: this.streamTracker.lastCallStartedTimestamp,
|
|
279
|
+
lastRemoteStreamCreatedTimestamp: null,
|
|
280
|
+
lastMessageSentTimestamp: this.lastMessageSentTimestamp,
|
|
281
|
+
lastMessageReceivedTimestamp: this.lastMessageReceivedTimestamp,
|
|
282
|
+
localFlowControlWindow: this.session.state.localWindowSize ?? null,
|
|
283
|
+
remoteFlowControlWindow: this.session.state.remoteWindowSize ?? null
|
|
284
|
+
};
|
|
285
|
+
return socketInfo;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
private resetChannelzSocketInfo() {
|
|
289
|
+
if (this.channelzSocketRef) {
|
|
290
|
+
unregisterChannelzRef(this.channelzSocketRef);
|
|
291
|
+
this.childrenTracker.unrefChild(this.channelzSocketRef);
|
|
292
|
+
this.channelzSocketRef = null;
|
|
293
|
+
}
|
|
294
|
+
this.remoteName = null;
|
|
295
|
+
this.streamTracker = new ChannelzCallTracker();
|
|
296
|
+
this.keepalivesSent = 0;
|
|
297
|
+
this.messagesSent = 0;
|
|
298
|
+
this.messagesReceived = 0;
|
|
299
|
+
this.lastMessageSentTimestamp = null;
|
|
300
|
+
this.lastMessageReceivedTimestamp = null;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
private trace(text: string): void {
|
|
304
|
+
logging.trace(LogVerbosity.DEBUG, TRACER_NAME, '(' + this.channelzRef.id + ') ' + this.subchannelAddressString + ' ' + text);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
private refTrace(text: string): void {
|
|
308
|
+
logging.trace(LogVerbosity.DEBUG, 'subchannel_refcount', '(' + this.channelzRef.id + ') ' + this.subchannelAddressString + ' ' + text);
|
|
250
309
|
}
|
|
251
310
|
|
|
252
311
|
private handleBackoffTimer() {
|
|
@@ -276,7 +335,13 @@ export class Subchannel {
|
|
|
276
335
|
}
|
|
277
336
|
|
|
278
337
|
private sendPing() {
|
|
279
|
-
|
|
338
|
+
this.keepalivesSent += 1;
|
|
339
|
+
logging.trace(
|
|
340
|
+
LogVerbosity.DEBUG,
|
|
341
|
+
'keepalive',
|
|
342
|
+
'(' + this.channelzRef.id + ') ' + this.subchannelAddressString + ' ' +
|
|
343
|
+
'Sending ping'
|
|
344
|
+
);
|
|
280
345
|
this.keepaliveTimeoutId = setTimeout(() => {
|
|
281
346
|
this.transitionToState([ConnectivityState.READY], ConnectivityState.IDLE);
|
|
282
347
|
}, this.keepaliveTimeoutMs);
|
|
@@ -292,7 +357,7 @@ export class Subchannel {
|
|
|
292
357
|
this.keepaliveIntervalId = setInterval(() => {
|
|
293
358
|
this.sendPing();
|
|
294
359
|
}, this.keepaliveTimeMs);
|
|
295
|
-
this.keepaliveIntervalId.unref?.()
|
|
360
|
+
this.keepaliveIntervalId.unref?.();
|
|
296
361
|
/* Don't send a ping immediately because whatever caused us to start
|
|
297
362
|
* sending pings should also involve some network activity. */
|
|
298
363
|
}
|
|
@@ -304,9 +369,11 @@ export class Subchannel {
|
|
|
304
369
|
|
|
305
370
|
private createSession(proxyConnectionResult: ProxyConnectionResult) {
|
|
306
371
|
if (proxyConnectionResult.realTarget) {
|
|
307
|
-
|
|
372
|
+
this.remoteName = uriToString(proxyConnectionResult.realTarget);
|
|
373
|
+
this.trace('creating HTTP/2 session through proxy to ' + proxyConnectionResult.realTarget);
|
|
308
374
|
} else {
|
|
309
|
-
|
|
375
|
+
this.remoteName = null;
|
|
376
|
+
this.trace('creating HTTP/2 session');
|
|
310
377
|
}
|
|
311
378
|
const targetAuthority = getDefaultAuthority(
|
|
312
379
|
proxyConnectionResult.realTarget ?? this.channelTarget
|
|
@@ -315,7 +382,9 @@ export class Subchannel {
|
|
|
315
382
|
this.credentials._getConnectionOptions() || {};
|
|
316
383
|
connectionOptions.maxSendHeaderBlockLength = Number.MAX_SAFE_INTEGER;
|
|
317
384
|
if ('grpc-node.max_session_memory' in this.options) {
|
|
318
|
-
connectionOptions.maxSessionMemory = this.options[
|
|
385
|
+
connectionOptions.maxSessionMemory = this.options[
|
|
386
|
+
'grpc-node.max_session_memory'
|
|
387
|
+
];
|
|
319
388
|
}
|
|
320
389
|
let addressScheme = 'http://';
|
|
321
390
|
if ('secureContext' in connectionOptions) {
|
|
@@ -393,6 +462,8 @@ export class Subchannel {
|
|
|
393
462
|
connectionOptions
|
|
394
463
|
);
|
|
395
464
|
this.session = session;
|
|
465
|
+
this.channelzSocketRef = registerChannelzSocket(this.subchannelAddressString, () => this.getChannelzSocketInfo()!);
|
|
466
|
+
this.childrenTracker.refChild(this.channelzSocketRef);
|
|
396
467
|
session.unref();
|
|
397
468
|
/* For all of these events, check if the session at the time of the event
|
|
398
469
|
* is the same one currently attached to this subchannel, to ensure that
|
|
@@ -408,7 +479,7 @@ export class Subchannel {
|
|
|
408
479
|
});
|
|
409
480
|
session.once('close', () => {
|
|
410
481
|
if (this.session === session) {
|
|
411
|
-
trace(
|
|
482
|
+
this.trace('connection closed');
|
|
412
483
|
this.transitionToState(
|
|
413
484
|
[ConnectivityState.CONNECTING],
|
|
414
485
|
ConnectivityState.TRANSIENT_FAILURE
|
|
@@ -438,12 +509,15 @@ export class Subchannel {
|
|
|
438
509
|
);
|
|
439
510
|
logging.log(
|
|
440
511
|
LogVerbosity.ERROR,
|
|
441
|
-
`Connection to ${uriToString(this.channelTarget)} at ${
|
|
512
|
+
`Connection to ${uriToString(this.channelTarget)} at ${
|
|
513
|
+
this.subchannelAddressString
|
|
514
|
+
} rejected by server because of excess pings. Increasing ping interval to ${
|
|
515
|
+
this.keepaliveTimeMs
|
|
516
|
+
} ms`
|
|
442
517
|
);
|
|
443
518
|
}
|
|
444
|
-
trace(
|
|
445
|
-
|
|
446
|
-
' connection closed by GOAWAY with code ' +
|
|
519
|
+
this.trace(
|
|
520
|
+
'connection closed by GOAWAY with code ' +
|
|
447
521
|
errorCode
|
|
448
522
|
);
|
|
449
523
|
this.transitionToState(
|
|
@@ -456,12 +530,12 @@ export class Subchannel {
|
|
|
456
530
|
session.once('error', (error) => {
|
|
457
531
|
/* Do nothing here. Any error should also trigger a close event, which is
|
|
458
532
|
* where we want to handle that. */
|
|
459
|
-
trace(
|
|
460
|
-
|
|
461
|
-
' connection closed with error ' +
|
|
533
|
+
this.trace(
|
|
534
|
+
'connection closed with error ' +
|
|
462
535
|
(error as Error).message
|
|
463
536
|
);
|
|
464
537
|
});
|
|
538
|
+
registerChannelzSocket(this.subchannelAddressString, () => this.getChannelzSocketInfo()!);
|
|
465
539
|
}
|
|
466
540
|
|
|
467
541
|
private startConnectingInternal() {
|
|
@@ -536,13 +610,12 @@ export class Subchannel {
|
|
|
536
610
|
if (oldStates.indexOf(this.connectivityState) === -1) {
|
|
537
611
|
return false;
|
|
538
612
|
}
|
|
539
|
-
trace(
|
|
540
|
-
this.
|
|
541
|
-
' ' +
|
|
542
|
-
ConnectivityState[this.connectivityState] +
|
|
613
|
+
this.trace(
|
|
614
|
+
ConnectivityState[this.connectivityState] +
|
|
543
615
|
' -> ' +
|
|
544
616
|
ConnectivityState[newState]
|
|
545
617
|
);
|
|
618
|
+
this.channelzTrace.addTrace('CT_INFO', ConnectivityState[this.connectivityState] + ' -> ' + ConnectivityState[newState]);
|
|
546
619
|
const previousState = this.connectivityState;
|
|
547
620
|
this.connectivityState = newState;
|
|
548
621
|
switch (newState) {
|
|
@@ -567,6 +640,7 @@ export class Subchannel {
|
|
|
567
640
|
this.session.close();
|
|
568
641
|
}
|
|
569
642
|
this.session = null;
|
|
643
|
+
this.resetChannelzSocketInfo();
|
|
570
644
|
this.stopKeepalivePings();
|
|
571
645
|
/* If the backoff timer has already ended by the time we get to the
|
|
572
646
|
* TRANSIENT_FAILURE state, we want to immediately transition out of
|
|
@@ -582,6 +656,7 @@ export class Subchannel {
|
|
|
582
656
|
this.session.close();
|
|
583
657
|
}
|
|
584
658
|
this.session = null;
|
|
659
|
+
this.resetChannelzSocketInfo();
|
|
585
660
|
this.stopKeepalivePings();
|
|
586
661
|
break;
|
|
587
662
|
default:
|
|
@@ -603,20 +678,18 @@ export class Subchannel {
|
|
|
603
678
|
/* If no calls, channels, or subchannel pools have any more references to
|
|
604
679
|
* this subchannel, we can be sure it will never be used again. */
|
|
605
680
|
if (this.callRefcount === 0 && this.refcount === 0) {
|
|
681
|
+
this.channelzTrace.addTrace('CT_INFO', 'Shutting down');
|
|
606
682
|
this.transitionToState(
|
|
607
|
-
[
|
|
608
|
-
ConnectivityState.CONNECTING,
|
|
609
|
-
ConnectivityState.READY,
|
|
610
|
-
],
|
|
683
|
+
[ConnectivityState.CONNECTING, ConnectivityState.READY],
|
|
611
684
|
ConnectivityState.TRANSIENT_FAILURE
|
|
612
685
|
);
|
|
686
|
+
unregisterChannelzRef(this.channelzRef);
|
|
613
687
|
}
|
|
614
688
|
}
|
|
615
689
|
|
|
616
690
|
callRef() {
|
|
617
|
-
refTrace(
|
|
618
|
-
|
|
619
|
-
' callRefcount ' +
|
|
691
|
+
this.refTrace(
|
|
692
|
+
'callRefcount ' +
|
|
620
693
|
this.callRefcount +
|
|
621
694
|
' -> ' +
|
|
622
695
|
(this.callRefcount + 1)
|
|
@@ -634,9 +707,8 @@ export class Subchannel {
|
|
|
634
707
|
}
|
|
635
708
|
|
|
636
709
|
callUnref() {
|
|
637
|
-
refTrace(
|
|
638
|
-
|
|
639
|
-
' callRefcount ' +
|
|
710
|
+
this.refTrace(
|
|
711
|
+
'callRefcount ' +
|
|
640
712
|
this.callRefcount +
|
|
641
713
|
' -> ' +
|
|
642
714
|
(this.callRefcount - 1)
|
|
@@ -655,9 +727,8 @@ export class Subchannel {
|
|
|
655
727
|
}
|
|
656
728
|
|
|
657
729
|
ref() {
|
|
658
|
-
refTrace(
|
|
659
|
-
|
|
660
|
-
' refcount ' +
|
|
730
|
+
this.refTrace(
|
|
731
|
+
'refcount ' +
|
|
661
732
|
this.refcount +
|
|
662
733
|
' -> ' +
|
|
663
734
|
(this.refcount + 1)
|
|
@@ -666,9 +737,8 @@ export class Subchannel {
|
|
|
666
737
|
}
|
|
667
738
|
|
|
668
739
|
unref() {
|
|
669
|
-
refTrace(
|
|
670
|
-
|
|
671
|
-
' refcount ' +
|
|
740
|
+
this.refTrace(
|
|
741
|
+
'refcount ' +
|
|
672
742
|
this.refcount +
|
|
673
743
|
' -> ' +
|
|
674
744
|
(this.refcount - 1)
|
|
@@ -695,7 +765,7 @@ export class Subchannel {
|
|
|
695
765
|
startCallStream(
|
|
696
766
|
metadata: Metadata,
|
|
697
767
|
callStream: Http2CallStream,
|
|
698
|
-
|
|
768
|
+
extraFilters: Filter[]
|
|
699
769
|
) {
|
|
700
770
|
const headers = metadata.toHttp2Headers();
|
|
701
771
|
headers[HTTP2_HEADER_AUTHORITY] = callStream.getHost();
|
|
@@ -726,8 +796,43 @@ export class Subchannel {
|
|
|
726
796
|
for (const header of Object.keys(headers)) {
|
|
727
797
|
headersString += '\t\t' + header + ': ' + headers[header] + '\n';
|
|
728
798
|
}
|
|
729
|
-
logging.trace(
|
|
730
|
-
|
|
799
|
+
logging.trace(
|
|
800
|
+
LogVerbosity.DEBUG,
|
|
801
|
+
'call_stream',
|
|
802
|
+
'Starting stream on subchannel ' +
|
|
803
|
+
'(' + this.channelzRef.id + ') ' +
|
|
804
|
+
this.subchannelAddressString +
|
|
805
|
+
' with headers\n' +
|
|
806
|
+
headersString
|
|
807
|
+
);
|
|
808
|
+
this.callTracker.addCallStarted();
|
|
809
|
+
callStream.addStatusWatcher(status => {
|
|
810
|
+
if (status.code === Status.OK) {
|
|
811
|
+
this.callTracker.addCallSucceeded();
|
|
812
|
+
} else {
|
|
813
|
+
this.callTracker.addCallFailed();
|
|
814
|
+
}
|
|
815
|
+
});
|
|
816
|
+
const streamSession = this.session;
|
|
817
|
+
this.streamTracker.addCallStarted();
|
|
818
|
+
callStream.addStreamEndWatcher(success => {
|
|
819
|
+
if (streamSession === this.session) {
|
|
820
|
+
if (success) {
|
|
821
|
+
this.streamTracker.addCallSucceeded();
|
|
822
|
+
} else {
|
|
823
|
+
this.streamTracker.addCallFailed();
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
});
|
|
827
|
+
callStream.attachHttp2Stream(http2Stream, this, extraFilters, {
|
|
828
|
+
addMessageSent: () => {
|
|
829
|
+
this.messagesSent += 1;
|
|
830
|
+
this.lastMessageSentTimestamp = new Date();
|
|
831
|
+
},
|
|
832
|
+
addMessageReceived: () => {
|
|
833
|
+
this.messagesReceived += 1;
|
|
834
|
+
}
|
|
835
|
+
});
|
|
731
836
|
}
|
|
732
837
|
|
|
733
838
|
/**
|
|
@@ -806,4 +911,8 @@ export class Subchannel {
|
|
|
806
911
|
getAddress(): string {
|
|
807
912
|
return this.subchannelAddressString;
|
|
808
913
|
}
|
|
914
|
+
|
|
915
|
+
getChannelzRef(): SubchannelRef {
|
|
916
|
+
return this.channelzRef;
|
|
917
|
+
}
|
|
809
918
|
}
|
|
@@ -444,6 +444,37 @@ function generateEnumInterface(formatter, enumType, options, nameOverride) {
|
|
|
444
444
|
formatter.unindent();
|
|
445
445
|
formatter.writeLine('}');
|
|
446
446
|
}
|
|
447
|
+
/**
|
|
448
|
+
* This is a list of methods that are exist in the generic Client class in the
|
|
449
|
+
* gRPC libraries. TypeScript has a problem with methods in subclasses with the
|
|
450
|
+
* same names as methods in the superclass, but with mismatched APIs. So, we
|
|
451
|
+
* avoid generating methods with these names in the service client interfaces.
|
|
452
|
+
* We always generate two service client methods per service method: one camel
|
|
453
|
+
* cased, and one with the original casing. So we will still generate one
|
|
454
|
+
* service client method for any conflicting name.
|
|
455
|
+
*
|
|
456
|
+
* Technically, at runtime conflicting name in the service client method
|
|
457
|
+
* actually shadows the original method, but TypeScript does not have a good
|
|
458
|
+
* way to represent that. So this change is not 100% accurate, but it gets the
|
|
459
|
+
* generated code to compile.
|
|
460
|
+
*
|
|
461
|
+
* This is just a list of the methods in the Client class definitions in
|
|
462
|
+
* grpc@1.24.11 and @grpc/grpc-js@1.4.0.
|
|
463
|
+
*/
|
|
464
|
+
const CLIENT_RESERVED_METHOD_NAMES = new Set([
|
|
465
|
+
'close',
|
|
466
|
+
'getChannel',
|
|
467
|
+
'waitForReady',
|
|
468
|
+
'makeUnaryRequest',
|
|
469
|
+
'makeClientStreamRequest',
|
|
470
|
+
'makeServerStreamRequest',
|
|
471
|
+
'makeBidiStreamRequest',
|
|
472
|
+
'resolveCallInterceptors',
|
|
473
|
+
/* These methods are private, but TypeScript is not happy with overriding even
|
|
474
|
+
* private methods with mismatched APIs. */
|
|
475
|
+
'checkOptionalUnaryResponseArguments',
|
|
476
|
+
'checkMetadataAndOptions'
|
|
477
|
+
]);
|
|
447
478
|
function generateServiceClientInterface(formatter, serviceType, options) {
|
|
448
479
|
if (options.includeComments) {
|
|
449
480
|
formatComment(formatter, serviceType.comment);
|
|
@@ -453,6 +484,9 @@ function generateServiceClientInterface(formatter, serviceType, options) {
|
|
|
453
484
|
for (const methodName of Object.keys(serviceType.methods).sort()) {
|
|
454
485
|
const method = serviceType.methods[methodName];
|
|
455
486
|
for (const name of [methodName, camelCase(methodName)]) {
|
|
487
|
+
if (CLIENT_RESERVED_METHOD_NAMES.has(name)) {
|
|
488
|
+
continue;
|
|
489
|
+
}
|
|
456
490
|
if (options.includeComments) {
|
|
457
491
|
formatComment(formatter, method.comment);
|
|
458
492
|
}
|
|
@@ -72,6 +72,9 @@ function createDeserializer(cls, options) {
|
|
|
72
72
|
}
|
|
73
73
|
function createSerializer(cls) {
|
|
74
74
|
return function serialize(arg) {
|
|
75
|
+
if (Array.isArray(arg)) {
|
|
76
|
+
throw new Error(`Failed to serialize message: expected object with ${cls.name} structure, got array instead`);
|
|
77
|
+
}
|
|
75
78
|
const message = cls.fromObject(arg);
|
|
76
79
|
return cls.encode(message).finish();
|
|
77
80
|
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|