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