@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
|
@@ -33,22 +33,23 @@ import { FilterStackFactory } from './filter-stack';
|
|
|
33
33
|
import { CallCredentialsFilterFactory } from './call-credentials-filter';
|
|
34
34
|
import { DeadlineFilterFactory } from './deadline-filter';
|
|
35
35
|
import { CompressionFilterFactory } from './compression-filter';
|
|
36
|
-
import {
|
|
36
|
+
import {
|
|
37
|
+
CallConfig,
|
|
38
|
+
ConfigSelector,
|
|
39
|
+
getDefaultAuthority,
|
|
40
|
+
mapUriDefaultScheme,
|
|
41
|
+
} from './resolver';
|
|
37
42
|
import { trace, log } from './logging';
|
|
38
|
-
import { SubchannelAddress } from './subchannel';
|
|
43
|
+
import { SubchannelAddress } from './subchannel-address';
|
|
39
44
|
import { MaxMessageSizeFilterFactory } from './max-message-size-filter';
|
|
40
45
|
import { mapProxyName } from './http_proxy';
|
|
41
46
|
import { GrpcUri, parseUri, uriToString } from './uri-parser';
|
|
42
47
|
import { ServerSurfaceCall } from './server-call';
|
|
43
48
|
import { SurfaceCall } from './call';
|
|
49
|
+
import { Filter } from './filter';
|
|
44
50
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
CONNECTING,
|
|
48
|
-
READY,
|
|
49
|
-
TRANSIENT_FAILURE,
|
|
50
|
-
SHUTDOWN,
|
|
51
|
-
}
|
|
51
|
+
import { ConnectivityState } from './connectivity-state';
|
|
52
|
+
import { ChannelInfo, ChannelRef, ChannelzCallTracker, ChannelzChildrenTracker, ChannelzTrace, registerChannelzChannel, SubchannelRef, unregisterChannelzRef } from './channelz';
|
|
52
53
|
|
|
53
54
|
/**
|
|
54
55
|
* See https://nodejs.org/api/timers.html#timers_setinterval_callback_delay_args
|
|
@@ -104,6 +105,12 @@ export interface Channel {
|
|
|
104
105
|
deadline: Date | number,
|
|
105
106
|
callback: (error?: Error) => void
|
|
106
107
|
): void;
|
|
108
|
+
/**
|
|
109
|
+
* Get the channelz reference object for this channel. A request to the
|
|
110
|
+
* channelz service for the id in this object will provide information
|
|
111
|
+
* about this channel.
|
|
112
|
+
*/
|
|
113
|
+
getChannelzRef(): ChannelRef;
|
|
107
114
|
/**
|
|
108
115
|
* Create a call object. Call is an opaque type that is used by the Client
|
|
109
116
|
* class. This function is called by the gRPC library when starting a
|
|
@@ -148,6 +155,7 @@ export class ChannelImplementation implements Channel {
|
|
|
148
155
|
callStream: Http2CallStream;
|
|
149
156
|
callMetadata: Metadata;
|
|
150
157
|
callConfig: CallConfig;
|
|
158
|
+
dynamicFilters: Filter[];
|
|
151
159
|
}> = [];
|
|
152
160
|
private connectivityStateWatchers: ConnectivityStateWatcher[] = [];
|
|
153
161
|
private defaultAuthority: string;
|
|
@@ -162,6 +170,14 @@ export class ChannelImplementation implements Channel {
|
|
|
162
170
|
*/
|
|
163
171
|
private callRefTimer: NodeJS.Timer;
|
|
164
172
|
private configSelector: ConfigSelector | null = null;
|
|
173
|
+
|
|
174
|
+
// Channelz info
|
|
175
|
+
private originalTarget: string;
|
|
176
|
+
private channelzRef: ChannelRef;
|
|
177
|
+
private channelzTrace: ChannelzTrace;
|
|
178
|
+
private callTracker = new ChannelzCallTracker();
|
|
179
|
+
private childrenTracker = new ChannelzChildrenTracker();
|
|
180
|
+
|
|
165
181
|
constructor(
|
|
166
182
|
target: string,
|
|
167
183
|
private readonly credentials: ChannelCredentials,
|
|
@@ -176,20 +192,11 @@ export class ChannelImplementation implements Channel {
|
|
|
176
192
|
);
|
|
177
193
|
}
|
|
178
194
|
if (options) {
|
|
179
|
-
if (
|
|
180
|
-
|
|
181
|
-
!Object.values(options).every(
|
|
182
|
-
(value) =>
|
|
183
|
-
typeof value === 'string' ||
|
|
184
|
-
typeof value === 'number' ||
|
|
185
|
-
typeof value === 'undefined'
|
|
186
|
-
)
|
|
187
|
-
) {
|
|
188
|
-
throw new TypeError(
|
|
189
|
-
'Channel options must be an object with string or number values'
|
|
190
|
-
);
|
|
195
|
+
if (typeof options !== 'object') {
|
|
196
|
+
throw new TypeError('Channel options must be an object');
|
|
191
197
|
}
|
|
192
198
|
}
|
|
199
|
+
this.originalTarget = target;
|
|
193
200
|
const originalTargetUri = parseUri(target);
|
|
194
201
|
if (originalTargetUri === null) {
|
|
195
202
|
throw new Error(`Could not parse target name "${target}"`);
|
|
@@ -206,6 +213,10 @@ export class ChannelImplementation implements Channel {
|
|
|
206
213
|
this.callRefTimer = setInterval(() => {}, MAX_TIMEOUT_TIME);
|
|
207
214
|
this.callRefTimer.unref?.();
|
|
208
215
|
|
|
216
|
+
this.channelzRef = registerChannelzChannel(target, () => this.getChannelzInfo());
|
|
217
|
+
this.channelzTrace = new ChannelzTrace();
|
|
218
|
+
this.channelzTrace.addTrace('CT_INFO', 'Channel created');
|
|
219
|
+
|
|
209
220
|
if (this.options['grpc.default_authority']) {
|
|
210
221
|
this.defaultAuthority = this.options['grpc.default_authority'] as string;
|
|
211
222
|
} else {
|
|
@@ -225,20 +236,22 @@ export class ChannelImplementation implements Channel {
|
|
|
225
236
|
subchannelAddress: SubchannelAddress,
|
|
226
237
|
subchannelArgs: ChannelOptions
|
|
227
238
|
) => {
|
|
228
|
-
|
|
239
|
+
const subchannel = this.subchannelPool.getOrCreateSubchannel(
|
|
229
240
|
this.target,
|
|
230
241
|
subchannelAddress,
|
|
231
242
|
Object.assign({}, this.options, subchannelArgs),
|
|
232
243
|
this.credentials
|
|
233
244
|
);
|
|
245
|
+
this.channelzTrace.addTrace('CT_INFO', 'Created subchannel or used existing subchannel', subchannel.getChannelzRef());
|
|
246
|
+
return subchannel;
|
|
234
247
|
},
|
|
235
248
|
updateState: (connectivityState: ConnectivityState, picker: Picker) => {
|
|
236
249
|
this.currentPicker = picker;
|
|
237
250
|
const queueCopy = this.pickQueue.slice();
|
|
238
251
|
this.pickQueue = [];
|
|
239
252
|
this.callRefTimerUnref();
|
|
240
|
-
for (const { callStream, callMetadata, callConfig } of queueCopy) {
|
|
241
|
-
this.tryPick(callStream, callMetadata, callConfig);
|
|
253
|
+
for (const { callStream, callMetadata, callConfig, dynamicFilters } of queueCopy) {
|
|
254
|
+
this.tryPick(callStream, callMetadata, callConfig, dynamicFilters);
|
|
242
255
|
}
|
|
243
256
|
this.updateState(connectivityState);
|
|
244
257
|
},
|
|
@@ -248,36 +261,44 @@ export class ChannelImplementation implements Channel {
|
|
|
248
261
|
'Resolving load balancer should never call requestReresolution'
|
|
249
262
|
);
|
|
250
263
|
},
|
|
264
|
+
addChannelzChild: (child: ChannelRef | SubchannelRef) => {
|
|
265
|
+
this.childrenTracker.refChild(child);
|
|
266
|
+
},
|
|
267
|
+
removeChannelzChild: (child: ChannelRef | SubchannelRef) => {
|
|
268
|
+
this.childrenTracker.unrefChild(child);
|
|
269
|
+
}
|
|
251
270
|
};
|
|
252
271
|
this.resolvingLoadBalancer = new ResolvingLoadBalancer(
|
|
253
272
|
this.target,
|
|
254
273
|
channelControlHelper,
|
|
255
274
|
options,
|
|
256
275
|
(configSelector) => {
|
|
276
|
+
this.channelzTrace.addTrace('CT_INFO', 'Address resolution succeeded');
|
|
257
277
|
this.configSelector = configSelector;
|
|
258
278
|
/* We process the queue asynchronously to ensure that the corresponding
|
|
259
279
|
* load balancer update has completed. */
|
|
260
280
|
process.nextTick(() => {
|
|
261
281
|
const localQueue = this.configSelectionQueue;
|
|
262
282
|
this.configSelectionQueue = [];
|
|
263
|
-
this.callRefTimerUnref()
|
|
264
|
-
for (const {callStream, callMetadata} of localQueue) {
|
|
283
|
+
this.callRefTimerUnref();
|
|
284
|
+
for (const { callStream, callMetadata } of localQueue) {
|
|
265
285
|
this.tryGetConfig(callStream, callMetadata);
|
|
266
286
|
}
|
|
267
287
|
this.configSelectionQueue = [];
|
|
268
288
|
});
|
|
269
289
|
},
|
|
270
290
|
(status) => {
|
|
291
|
+
this.channelzTrace.addTrace('CT_WARNING', 'Address resolution failed with code ' + status.code + ' and details "' + status.details + '"');
|
|
271
292
|
if (this.configSelectionQueue.length > 0) {
|
|
272
|
-
trace(
|
|
293
|
+
this.trace('Name resolution failed with calls queued for config selection');
|
|
273
294
|
}
|
|
274
295
|
const localQueue = this.configSelectionQueue;
|
|
275
296
|
this.configSelectionQueue = [];
|
|
276
297
|
this.callRefTimerUnref();
|
|
277
|
-
for (const {callStream, callMetadata} of localQueue) {
|
|
298
|
+
for (const { callStream, callMetadata } of localQueue) {
|
|
278
299
|
if (callMetadata.getOptions().waitForReady) {
|
|
279
300
|
this.callRefTimerRef();
|
|
280
|
-
this.configSelectionQueue.push({callStream, callMetadata});
|
|
301
|
+
this.configSelectionQueue.push({ callStream, callMetadata });
|
|
281
302
|
} else {
|
|
282
303
|
callStream.cancelWithStatus(status.code, status.details);
|
|
283
304
|
}
|
|
@@ -290,26 +311,56 @@ export class ChannelImplementation implements Channel {
|
|
|
290
311
|
new MaxMessageSizeFilterFactory(this.options),
|
|
291
312
|
new CompressionFilterFactory(this),
|
|
292
313
|
]);
|
|
314
|
+
this.trace('Channel constructed with options ' + JSON.stringify(options, undefined, 2));
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
private getChannelzInfo(): ChannelInfo {
|
|
318
|
+
return {
|
|
319
|
+
target: this.originalTarget,
|
|
320
|
+
state: this.connectivityState,
|
|
321
|
+
trace: this.channelzTrace,
|
|
322
|
+
callTracker: this.callTracker,
|
|
323
|
+
children: this.childrenTracker.getChildLists()
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
private trace(text: string, verbosityOverride?: LogVerbosity) {
|
|
328
|
+
trace(verbosityOverride ?? LogVerbosity.DEBUG, 'channel', '(' + this.channelzRef.id + ') ' + uriToString(this.target) + ' ' + text);
|
|
293
329
|
}
|
|
294
330
|
|
|
295
331
|
private callRefTimerRef() {
|
|
296
332
|
// If the hasRef function does not exist, always run the code
|
|
297
333
|
if (!this.callRefTimer.hasRef?.()) {
|
|
298
|
-
trace(
|
|
334
|
+
this.trace(
|
|
335
|
+
'callRefTimer.ref | configSelectionQueue.length=' +
|
|
336
|
+
this.configSelectionQueue.length +
|
|
337
|
+
' pickQueue.length=' +
|
|
338
|
+
this.pickQueue.length
|
|
339
|
+
);
|
|
299
340
|
this.callRefTimer.ref?.();
|
|
300
341
|
}
|
|
301
342
|
}
|
|
302
343
|
|
|
303
344
|
private callRefTimerUnref() {
|
|
304
345
|
// If the hasRef function does not exist, always run the code
|
|
305
|
-
if (
|
|
306
|
-
trace(
|
|
346
|
+
if (!this.callRefTimer.hasRef || this.callRefTimer.hasRef()) {
|
|
347
|
+
this.trace(
|
|
348
|
+
'callRefTimer.unref | configSelectionQueue.length=' +
|
|
349
|
+
this.configSelectionQueue.length +
|
|
350
|
+
' pickQueue.length=' +
|
|
351
|
+
this.pickQueue.length
|
|
352
|
+
);
|
|
307
353
|
this.callRefTimer.unref?.();
|
|
308
354
|
}
|
|
309
355
|
}
|
|
310
356
|
|
|
311
|
-
private pushPick(
|
|
312
|
-
|
|
357
|
+
private pushPick(
|
|
358
|
+
callStream: Http2CallStream,
|
|
359
|
+
callMetadata: Metadata,
|
|
360
|
+
callConfig: CallConfig,
|
|
361
|
+
dynamicFilters: Filter[]
|
|
362
|
+
) {
|
|
363
|
+
this.pickQueue.push({ callStream, callMetadata, callConfig, dynamicFilters });
|
|
313
364
|
this.callRefTimerRef();
|
|
314
365
|
}
|
|
315
366
|
|
|
@@ -320,11 +371,17 @@ export class ChannelImplementation implements Channel {
|
|
|
320
371
|
* @param callStream
|
|
321
372
|
* @param callMetadata
|
|
322
373
|
*/
|
|
323
|
-
private tryPick(
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
374
|
+
private tryPick(
|
|
375
|
+
callStream: Http2CallStream,
|
|
376
|
+
callMetadata: Metadata,
|
|
377
|
+
callConfig: CallConfig,
|
|
378
|
+
dynamicFilters: Filter[]
|
|
379
|
+
) {
|
|
380
|
+
const pickResult = this.currentPicker.pick({
|
|
381
|
+
metadata: callMetadata,
|
|
382
|
+
extraPickInfo: callConfig.pickInformation,
|
|
383
|
+
});
|
|
384
|
+
this.trace(
|
|
328
385
|
'Pick result: ' +
|
|
329
386
|
PickResultType[pickResult.pickResultType] +
|
|
330
387
|
' subchannel: ' +
|
|
@@ -357,7 +414,7 @@ export class ChannelImplementation implements Channel {
|
|
|
357
414
|
' has state ' +
|
|
358
415
|
ConnectivityState[pickResult.subchannel!.getConnectivityState()]
|
|
359
416
|
);
|
|
360
|
-
this.pushPick(callStream, callMetadata, callConfig);
|
|
417
|
+
this.pushPick(callStream, callMetadata, callConfig, dynamicFilters);
|
|
361
418
|
break;
|
|
362
419
|
}
|
|
363
420
|
/* We need to clone the callMetadata here because the transparent
|
|
@@ -370,10 +427,11 @@ export class ChannelImplementation implements Channel {
|
|
|
370
427
|
const subchannelState: ConnectivityState = pickResult.subchannel!.getConnectivityState();
|
|
371
428
|
if (subchannelState === ConnectivityState.READY) {
|
|
372
429
|
try {
|
|
430
|
+
const pickExtraFilters = pickResult.extraFilterFactories.map(factory => factory.createFilter(callStream));
|
|
373
431
|
pickResult.subchannel!.startCallStream(
|
|
374
432
|
finalMetadata,
|
|
375
433
|
callStream,
|
|
376
|
-
|
|
434
|
+
[...dynamicFilters, ...pickExtraFilters]
|
|
377
435
|
);
|
|
378
436
|
/* If we reach this point, the call stream has started
|
|
379
437
|
* successfully */
|
|
@@ -397,51 +455,50 @@ export class ChannelImplementation implements Channel {
|
|
|
397
455
|
* the stream because the correct behavior may be
|
|
398
456
|
* re-queueing instead, based on the logic in the rest of
|
|
399
457
|
* tryPick */
|
|
400
|
-
trace(
|
|
401
|
-
LogVerbosity.INFO,
|
|
402
|
-
'channel',
|
|
458
|
+
this.trace(
|
|
403
459
|
'Failed to start call on picked subchannel ' +
|
|
404
460
|
pickResult.subchannel!.getAddress() +
|
|
405
461
|
' with error ' +
|
|
406
462
|
(error as Error).message +
|
|
407
|
-
'. Retrying pick'
|
|
463
|
+
'. Retrying pick',
|
|
464
|
+
LogVerbosity.INFO
|
|
408
465
|
);
|
|
409
|
-
this.tryPick(callStream, callMetadata, callConfig);
|
|
466
|
+
this.tryPick(callStream, callMetadata, callConfig, dynamicFilters);
|
|
410
467
|
} else {
|
|
411
|
-
trace(
|
|
412
|
-
LogVerbosity.INFO,
|
|
413
|
-
'channel',
|
|
468
|
+
this.trace(
|
|
414
469
|
'Failed to start call on picked subchanel ' +
|
|
415
470
|
pickResult.subchannel!.getAddress() +
|
|
416
471
|
' with error ' +
|
|
417
472
|
(error as Error).message +
|
|
418
|
-
'. Ending call'
|
|
473
|
+
'. Ending call',
|
|
474
|
+
LogVerbosity.INFO
|
|
419
475
|
);
|
|
420
476
|
callStream.cancelWithStatus(
|
|
421
477
|
Status.INTERNAL,
|
|
422
|
-
`Failed to start HTTP/2 stream with error: ${
|
|
478
|
+
`Failed to start HTTP/2 stream with error: ${
|
|
479
|
+
(error as Error).message
|
|
480
|
+
}`
|
|
423
481
|
);
|
|
424
482
|
}
|
|
425
483
|
}
|
|
426
484
|
} else {
|
|
427
485
|
/* The logic for doing this here is the same as in the catch
|
|
428
486
|
* block above */
|
|
429
|
-
trace(
|
|
430
|
-
LogVerbosity.INFO,
|
|
431
|
-
'channel',
|
|
487
|
+
this.trace(
|
|
432
488
|
'Picked subchannel ' +
|
|
433
489
|
pickResult.subchannel!.getAddress() +
|
|
434
490
|
' has state ' +
|
|
435
491
|
ConnectivityState[subchannelState] +
|
|
436
|
-
' after metadata filters. Retrying pick'
|
|
492
|
+
' after metadata filters. Retrying pick',
|
|
493
|
+
LogVerbosity.INFO
|
|
437
494
|
);
|
|
438
|
-
this.tryPick(callStream, callMetadata, callConfig);
|
|
495
|
+
this.tryPick(callStream, callMetadata, callConfig, dynamicFilters);
|
|
439
496
|
}
|
|
440
497
|
},
|
|
441
498
|
(error: Error & { code: number }) => {
|
|
442
499
|
// We assume the error code isn't 0 (Status.OK)
|
|
443
500
|
callStream.cancelWithStatus(
|
|
444
|
-
|
|
501
|
+
typeof error.code === 'number' ? error.code : Status.UNKNOWN,
|
|
445
502
|
`Getting metadata from plugin failed with error: ${error.message}`
|
|
446
503
|
);
|
|
447
504
|
}
|
|
@@ -449,11 +506,11 @@ export class ChannelImplementation implements Channel {
|
|
|
449
506
|
}
|
|
450
507
|
break;
|
|
451
508
|
case PickResultType.QUEUE:
|
|
452
|
-
this.pushPick(callStream, callMetadata, callConfig);
|
|
509
|
+
this.pushPick(callStream, callMetadata, callConfig, dynamicFilters);
|
|
453
510
|
break;
|
|
454
511
|
case PickResultType.TRANSIENT_FAILURE:
|
|
455
512
|
if (callMetadata.getOptions().waitForReady) {
|
|
456
|
-
this.pushPick(callStream, callMetadata, callConfig);
|
|
513
|
+
this.pushPick(callStream, callMetadata, callConfig, dynamicFilters);
|
|
457
514
|
} else {
|
|
458
515
|
callStream.cancelWithStatus(
|
|
459
516
|
pickResult.status!.code,
|
|
@@ -489,17 +546,19 @@ export class ChannelImplementation implements Channel {
|
|
|
489
546
|
trace(
|
|
490
547
|
LogVerbosity.DEBUG,
|
|
491
548
|
'connectivity_state',
|
|
492
|
-
|
|
549
|
+
'(' + this.channelzRef.id + ') ' +
|
|
550
|
+
uriToString(this.target) +
|
|
493
551
|
' ' +
|
|
494
552
|
ConnectivityState[this.connectivityState] +
|
|
495
553
|
' -> ' +
|
|
496
554
|
ConnectivityState[newState]
|
|
497
555
|
);
|
|
556
|
+
this.channelzTrace.addTrace('CT_INFO', ConnectivityState[this.connectivityState] + ' -> ' + ConnectivityState[newState]);
|
|
498
557
|
this.connectivityState = newState;
|
|
499
558
|
const watchersCopy = this.connectivityStateWatchers.slice();
|
|
500
559
|
for (const watcherObject of watchersCopy) {
|
|
501
560
|
if (newState !== watcherObject.currentState) {
|
|
502
|
-
if(watcherObject.timer) {
|
|
561
|
+
if (watcherObject.timer) {
|
|
503
562
|
clearTimeout(watcherObject.timer);
|
|
504
563
|
}
|
|
505
564
|
this.removeConnectivityStateWatcher(watcherObject);
|
|
@@ -509,23 +568,64 @@ export class ChannelImplementation implements Channel {
|
|
|
509
568
|
}
|
|
510
569
|
|
|
511
570
|
private tryGetConfig(stream: Http2CallStream, metadata: Metadata) {
|
|
571
|
+
if (stream.getStatus() !== null) {
|
|
572
|
+
/* If the stream has a status, it has already finished and we don't need
|
|
573
|
+
* to take any more actions on it. */
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
512
576
|
if (this.configSelector === null) {
|
|
513
577
|
/* This branch will only be taken at the beginning of the channel's life,
|
|
514
578
|
* before the resolver ever returns a result. So, the
|
|
515
579
|
* ResolvingLoadBalancer may be idle and if so it needs to be kicked
|
|
516
580
|
* because it now has a pending request. */
|
|
517
581
|
this.resolvingLoadBalancer.exitIdle();
|
|
518
|
-
this.configSelectionQueue.push({
|
|
582
|
+
this.configSelectionQueue.push({
|
|
519
583
|
callStream: stream,
|
|
520
|
-
callMetadata: metadata
|
|
584
|
+
callMetadata: metadata,
|
|
521
585
|
});
|
|
522
586
|
this.callRefTimerRef();
|
|
523
587
|
} else {
|
|
524
588
|
const callConfig = this.configSelector(stream.getMethod(), metadata);
|
|
525
589
|
if (callConfig.status === Status.OK) {
|
|
526
|
-
|
|
590
|
+
if (callConfig.methodConfig.timeout) {
|
|
591
|
+
const deadline = new Date();
|
|
592
|
+
deadline.setSeconds(
|
|
593
|
+
deadline.getSeconds() + callConfig.methodConfig.timeout.seconds
|
|
594
|
+
);
|
|
595
|
+
deadline.setMilliseconds(
|
|
596
|
+
deadline.getMilliseconds() +
|
|
597
|
+
callConfig.methodConfig.timeout.nanos / 1_000_000
|
|
598
|
+
);
|
|
599
|
+
stream.setConfigDeadline(deadline);
|
|
600
|
+
// Refreshing the filters makes the deadline filter pick up the new deadline
|
|
601
|
+
stream.filterStack.refresh();
|
|
602
|
+
}
|
|
603
|
+
if (callConfig.dynamicFilterFactories.length > 0) {
|
|
604
|
+
/* These dynamicFilters are the mechanism for implementing gRFC A39:
|
|
605
|
+
* https://github.com/grpc/proposal/blob/master/A39-xds-http-filters.md
|
|
606
|
+
* We run them here instead of with the rest of the filters because
|
|
607
|
+
* that spec says "the xDS HTTP filters will run in between name
|
|
608
|
+
* resolution and load balancing".
|
|
609
|
+
*
|
|
610
|
+
* We use the filter stack here to simplify the multi-filter async
|
|
611
|
+
* waterfall logic, but we pass along the underlying list of filters
|
|
612
|
+
* to avoid having nested filter stacks when combining it with the
|
|
613
|
+
* original filter stack. We do not pass along the original filter
|
|
614
|
+
* factory list because these filters may need to persist data
|
|
615
|
+
* between sending headers and other operations. */
|
|
616
|
+
const dynamicFilterStackFactory = new FilterStackFactory(callConfig.dynamicFilterFactories);
|
|
617
|
+
const dynamicFilterStack = dynamicFilterStackFactory.createFilter(stream);
|
|
618
|
+
dynamicFilterStack.sendMetadata(Promise.resolve(metadata)).then(filteredMetadata => {
|
|
619
|
+
this.tryPick(stream, filteredMetadata, callConfig, dynamicFilterStack.getFilters());
|
|
620
|
+
});
|
|
621
|
+
} else {
|
|
622
|
+
this.tryPick(stream, metadata, callConfig, []);
|
|
623
|
+
}
|
|
527
624
|
} else {
|
|
528
|
-
stream.cancelWithStatus(
|
|
625
|
+
stream.cancelWithStatus(
|
|
626
|
+
callConfig.status,
|
|
627
|
+
'Failed to route call to method ' + stream.getMethod()
|
|
628
|
+
);
|
|
529
629
|
}
|
|
530
630
|
}
|
|
531
631
|
}
|
|
@@ -538,6 +638,7 @@ export class ChannelImplementation implements Channel {
|
|
|
538
638
|
this.resolvingLoadBalancer.destroy();
|
|
539
639
|
this.updateState(ConnectivityState.SHUTDOWN);
|
|
540
640
|
clearInterval(this.callRefTimer);
|
|
641
|
+
unregisterChannelzRef(this.channelzRef);
|
|
541
642
|
|
|
542
643
|
this.subchannelPool.unrefUnusedSubchannels();
|
|
543
644
|
}
|
|
@@ -563,7 +664,7 @@ export class ChannelImplementation implements Channel {
|
|
|
563
664
|
throw new Error('Channel has been shut down');
|
|
564
665
|
}
|
|
565
666
|
let timer = null;
|
|
566
|
-
if(deadline !== Infinity) {
|
|
667
|
+
if (deadline !== Infinity) {
|
|
567
668
|
const deadlineDate: Date =
|
|
568
669
|
deadline instanceof Date ? deadline : new Date(deadline);
|
|
569
670
|
const now = new Date();
|
|
@@ -579,16 +680,20 @@ export class ChannelImplementation implements Channel {
|
|
|
579
680
|
callback(
|
|
580
681
|
new Error('Deadline passed without connectivity state change')
|
|
581
682
|
);
|
|
582
|
-
}, deadlineDate.getTime() - now.getTime())
|
|
683
|
+
}, deadlineDate.getTime() - now.getTime());
|
|
583
684
|
}
|
|
584
685
|
const watcherObject = {
|
|
585
686
|
currentState,
|
|
586
687
|
callback,
|
|
587
|
-
timer
|
|
688
|
+
timer,
|
|
588
689
|
};
|
|
589
690
|
this.connectivityStateWatchers.push(watcherObject);
|
|
590
691
|
}
|
|
591
692
|
|
|
693
|
+
getChannelzRef() {
|
|
694
|
+
return this.channelzRef;
|
|
695
|
+
}
|
|
696
|
+
|
|
592
697
|
createCall(
|
|
593
698
|
method: string,
|
|
594
699
|
deadline: Deadline,
|
|
@@ -608,11 +713,8 @@ export class ChannelImplementation implements Channel {
|
|
|
608
713
|
throw new Error('Channel has been shut down');
|
|
609
714
|
}
|
|
610
715
|
const callNumber = getNewCallNumber();
|
|
611
|
-
trace(
|
|
612
|
-
|
|
613
|
-
'channel',
|
|
614
|
-
uriToString(this.target) +
|
|
615
|
-
' createCall [' +
|
|
716
|
+
this.trace(
|
|
717
|
+
'createCall [' +
|
|
616
718
|
callNumber +
|
|
617
719
|
'] method="' +
|
|
618
720
|
method +
|
|
@@ -633,6 +735,14 @@ export class ChannelImplementation implements Channel {
|
|
|
633
735
|
this.credentials._getCallCredentials(),
|
|
634
736
|
callNumber
|
|
635
737
|
);
|
|
738
|
+
this.callTracker.addCallStarted();
|
|
739
|
+
stream.addStatusWatcher(status => {
|
|
740
|
+
if (status.code === Status.OK) {
|
|
741
|
+
this.callTracker.addCallSucceeded();
|
|
742
|
+
} else {
|
|
743
|
+
this.callTracker.addCallFailed();
|
|
744
|
+
}
|
|
745
|
+
});
|
|
636
746
|
return stream;
|
|
637
747
|
}
|
|
638
748
|
}
|