Upgrading grpc 2 to 3
Breaking2.9.0 → 3.2.4Breaking2Platform3New10Changed4Fixed8Other1
BreakingUpgrade verdict
2 breaking changes and 3 platform requirement changes.
In plain terms
- Code that referred to the base version of the response stream type must use the plain name instead.
- The package now uses Dart's null safety, so code that uses it must also be null safe.
- You need Dart 2.17 or newer to use this version.
- You need Dart 3.0.0 or newer to use this version.
Must act 5 items need code or config changes
Dart SDK requirement changed in 3.2.1: >=2.8.0 <3.0.0 → ^3.0.0.
Adds clock ^1.1.1.
Moves archive ^2.0.13 → ^3.0.0, async ^2.2.0 → ^2.5.0, crypto ^2.1.4 → ^3.0.0, fixnum ^0.10.11 → ^1.0.0, googleapis_auth ^0.2.7 → ^1.1.0, http ^0.12.0 → >=0.13.0 <2.0.0, http2 ^1.0.0 → ^2.2.0, meta ^1.1.6 → ^1.3.0, protobuf ^1.0.1 → >=2.0.0 <4.0.0. Your build may pick other versions.
What you must change
Breaking2
Removes the
base qualifier on ResponseStream.ResponseStreamMigrates the library and tests to null safety.
Platform3
Requires Dart 2.17 or greater.
Requires Dart 3.0.0 or greater.
Requires Dart 2.12 or greater.
API changes
Generated by DepDelta from published Dart source. Not mixed with prose notes.
- removed:
field GrpcError.codeName: final String - removed:
get GzipCodec.encodingName: String - removed:
get IdentityCodec.encodingName: String - removed:
typedef Duration BackoffStrategy(Duration lastBackoff) - removed:
typedef FutureOr<void> MetadataProvider( Map<String, String> metadata, String uri) - removed:
typedef bool BadCertificateHandler(X509Certificate certificate, String host) - changed:
class ResponseStream<R> extends DelegatingStream<R> with _ResponseMixin<dynamic, R> → class ResponseStream<R> extends StreamView<R> with _ResponseMixin<dynamic, R> - changed:
ctor BadRequest() → ctor BadRequest({ $core.Iterable<BadRequest_FieldViolation>? fieldViolations, }) - changed:
ctor BadRequest_FieldViolation() → ctor BadRequest_FieldViolation({ $core.String? field_1, $core.String? description, }) - changed:
ctor CallOptions({ Map<String, String> metadata, Duration timeout, List<MetadataProvider> providers, Codec compression, }) → ctor CallOptions({ Map<String, String>? metadata, Duration? timeout, List<MetadataProvider>? providers, Codec? compression, }) - changed:
ctor ChannelCredentials.insecure({String authority}) → ctor ChannelCredentials.insecure({String? authority}) - changed:
ctor ChannelCredentials.secure( {List<int> certificates, String password, String authority, BadCertificateHandler onBadCertificate}) → ctor ChannelCredentials.secure( {List<int>? certificates, String? password, String? authority, BadCertificateHandler? onBadCertificate}) - changed:
ctor ChannelOptions({ this.credentials = …, this.idleTimeout = …, this.userAgent = …, this.backoffStrategy = …, this.connectionTimeout = …, this.codecRegistry, }) → ctor ChannelOptions({ this.credentials = …, this.idleTimeout = …, this.userAgent = …, this.backoffStrategy = …, this.connectTimeout, this.connectionTimeout = …, this.codecRegistry, this.keepAlive = …, this.proxy, }) - changed:
ctor Client(this._channel, {CallOptions options, Iterable<ClientInterceptor> interceptors}) → ctor Client(this._channel, {CallOptions? options, Iterable<ClientInterceptor>? interceptors}) - changed:
ctor ClientChannel(this.host, {this.port = …, this.options = …}) → ctor ClientChannel( this.host, { this.port = …, this.options = …, super.channelShutdownHandler, }) - changed:
ctor ConnectionServer( List<Service> services, [ List<Interceptor> interceptors = …, CodecRegistry codecRegistry, ]) → ctor ConnectionServer( List<Service> services, [ List<Interceptor> interceptors = …, CodecRegistry? codecRegistry, GrpcErrorHandler? errorHandler, this._keepAliveOptions = …, ]) - changed:
ctor DebugInfo() → ctor DebugInfo({ $core.Iterable<$core.String>? stackEntries, $core.String? detail, }) - changed:
ctor ErrorInfo() → ctor ErrorInfo({ $core.String? reason, $core.String? domain, $core.Map<$core.String, $core.String>? metadata, }) - changed:
ctor GrpcData(this.data, {this.isCompressed}) → ctor GrpcData(this.data, {required this.isCompressed}) - changed:
ctor GrpcError.custom(this.code, [this.message, this.details, this.rawResponse]) → ctor GrpcError.custom(this.code, [this.message, this.details, this.rawResponse, this.trailers = …]) - changed:
ctor GrpcError.deadlineExceeded([this.message, this.details, this.rawResponse]) → ctor GrpcError.deadlineExceeded( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.failedPrecondition([this.message, this.details, this.rawResponse]) → ctor GrpcError.failedPrecondition( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.internal([this.message, this.details, this.rawResponse]) → ctor GrpcError.internal( [this.message, this.details, this.rawResponse, this.trailers]) - changed:
ctor GrpcError.invalidArgument([this.message, this.details, this.rawResponse]) → ctor GrpcError.invalidArgument( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.permissionDenied([this.message, this.details, this.rawResponse]) → ctor GrpcError.permissionDenied( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.resourceExhausted([this.message, this.details, this.rawResponse]) → ctor GrpcError.resourceExhausted( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.unauthenticated([this.message, this.details, this.rawResponse]) → ctor GrpcError.unauthenticated( [this.message, this.details, this.rawResponse]) - changed:
ctor Help() → ctor Help({ $core.Iterable<Help_Link>? links, }) - changed:
ctor Help_Link() → ctor Help_Link({ $core.String? description, $core.String? url, }) - changed:
ctor JwtServiceAccountAuthenticator(String serviceAccountJson) → ctor JwtServiceAccountAuthenticator(String serviceAccountJsonString) - changed:
ctor LocalizedMessage() → ctor LocalizedMessage({ $core.String? locale, $core.String? message, }) - changed:
ctor PreconditionFailure() → ctor PreconditionFailure({ $core.Iterable<PreconditionFailure_Violation>? violations, }) - changed:
ctor PreconditionFailure_Violation() → ctor PreconditionFailure_Violation({ $core.String? type, $core.String? subject, $core.String? description, }) - changed:
ctor QuotaFailure() → ctor QuotaFailure({ $core.Iterable<QuotaFailure_Violation>? violations, }) - changed:
ctor QuotaFailure_Violation() → ctor QuotaFailure_Violation({ $core.String? subject, $core.String? description, }) - changed:
ctor RequestInfo() → ctor RequestInfo({ $core.String? requestId, $core.String? servingData, }) - changed:
ctor ResourceInfo() → ctor ResourceInfo({ $core.String? resourceType, $core.String? resourceName, $core.String? owner, $core.String? description, }) - changed:
ctor RetryInfo() → ctor RetryInfo({ $1.Duration? retryDelay, }) - changed:
ctor Server( List<Service> services, [ List<Interceptor> interceptors = …, CodecRegistry codecRegistry, ]) → ctor Server( super.services, [ super.interceptors, super.codecRegistry, super.errorHandler, super.keepAlive, ]) - changed:
ctor ServiceAccountAuthenticator(String serviceAccountJson, this._scopes) → ctor ServiceAccountAuthenticator( String serviceAccountJsonString, List<String> scopes) - changed:
field CallOptions.compression: final Codec → field CallOptions.compression: final Codec? - changed:
field CallOptions.timeout: final Duration → field CallOptions.timeout: final Duration? - changed:
field ChannelCredentials.authority: final String → field ChannelCredentials.authority: final String? - changed:
field ChannelCredentials.onBadCertificate: final BadCertificateHandler → field ChannelCredentials.onBadCertificate: final BadCertificateHandler? - changed:
field ChannelOptions.codecRegistry: final CodecRegistry → field ChannelOptions.codecRegistry: final CodecRegistry? - changed:
field ChannelOptions.idleTimeout: final Duration → field ChannelOptions.idleTimeout: final Duration? - changed:
field GrpcError.details: final List<GeneratedMessage> → field GrpcError.details: final List<GeneratedMessage>? - changed:
field GrpcError.message: final String → field GrpcError.message: final String? - changed:
field GrpcError.rawResponse: final Object → field GrpcError.rawResponse: final Object? - changed:
field ServerTlsCredentials.certificate: final List<int> → field ServerTlsCredentials.certificate: final List<int>? - changed:
field ServerTlsCredentials.certificatePassword: final String → field ServerTlsCredentials.certificatePassword: final String? - changed:
field ServerTlsCredentials.privateKey: final List<int> → field ServerTlsCredentials.privateKey: final List<int>? - changed:
field ServerTlsCredentials.privateKeyPassword: final String → field ServerTlsCredentials.privateKeyPassword: final String? - changed:
function defaultBackoffStrategy(Duration lastBackoff): Duration → function defaultBackoffStrategy(Duration? lastBackoff): Duration - changed:
function fromTimeoutString(String timeout): Duration → function fromTimeoutString(String? timeout): Duration? - changed:
function grpcDecompressor({ CodecRegistry codecRegistry, }): StreamTransformer<GrpcMessage, GrpcMessage> → function grpcDecompressor({ CodecRegistry? codecRegistry, }): StreamTransformer<GrpcMessage, GrpcMessage> - changed:
get ChannelCredentials.securityContext: SecurityContext → get ChannelCredentials.securityContext: SecurityContext? - changed:
get JwtServiceAccountAuthenticator.projectId: String → get JwtServiceAccountAuthenticator.projectId: String? - changed:
get Server.port: int → get Server.port: int? - changed:
get ServerCredentials.securityContext: SecurityContext → get ServerCredentials.securityContext: SecurityContext? - changed:
get ServerLocalCredentials.securityContext: SecurityContext → get ServerLocalCredentials.securityContext: SecurityContext? - changed:
get ServiceAccountAuthenticator.projectId: String → get ServiceAccountAuthenticator.projectId: String? - changed:
get ServiceCall.clientMetadata: Map<String, String> → get ServiceCall.clientMetadata: Map<String, String>? - changed:
get ServiceCall.deadline: DateTime → get ServiceCall.deadline: DateTime? - changed:
get ServiceCall.headers: Map<String, String> → get ServiceCall.headers: Map<String, String>? - changed:
get ServiceCall.trailers: Map<String, String> → get ServiceCall.trailers: Map<String, String>? - changed:
method CallOptions.mergedWith(CallOptions other): CallOptions → method CallOptions.mergedWith(CallOptions? other): CallOptions - changed:
method Client.$createCall<Q, R>( ClientMethod<Q, R> method, Stream<Q> requests, {CallOptions options}): ClientCall<Q, R> → method Client.$createCall<Q, R>( ClientMethod<Q, R> method, Stream<Q> requests, {CallOptions? options}): ClientCall<Q, R> - changed:
method Client.$createStreamingCall<Q, R>( ClientMethod<Q, R> method, Stream<Q> requests, {CallOptions options}): ResponseStream<R> → method Client.$createStreamingCall<Q, R>( ClientMethod<Q, R> method, Stream<Q> requests, {CallOptions? options}): ResponseStream<R> - changed:
method Client.$createUnaryCall<Q, R>(ClientMethod<Q, R> method, Q request, {CallOptions options}): ResponseFuture<R> → method Client.$createUnaryCall<Q, R>(ClientMethod<Q, R> method, Q request, {CallOptions? options}): ResponseFuture<R> - changed:
method CodecRegistry.lookup(String codecName): Codec → method CodecRegistry.lookup(String codecName): Codec? - changed:
method ConnectionServer.lookupService(String service): Service → method ConnectionServer.lookupService(String service): Service? - changed:
method ConnectionServer.serveConnection(ServerTransportConnection connection): Future<void> → method ConnectionServer.serveConnection({ required ServerTransportConnection connection, X509Certificate? clientCertificate, InternetAddress? remoteAddress, }): Future<void> - changed:
method ConnectionServer.serveStream_(ServerTransportStream stream): ServerHandler_ → method ConnectionServer.serveStream_({ required ServerTransportStream stream, X509Certificate? clientCertificate, InternetAddress? remoteAddress, Sink<void>? onDataReceived, }): ServerHandler - changed:
method Server.lookupService(String service): Service → method Server.lookupService(String service): Service? - changed:
method Server.serve( {dynamic address, int port, ServerCredentials security, ServerSettings http2ServerSettings, int backlog = …, bool v6Only = …, bool shared = …}): Future<void> → method Server.serve({ dynamic address, int? port, ServerCredentials? security, ServerSettings? http2ServerSettings, int backlog = …, bool v6Only = …, bool shared = …, bool requestClientCertificate = …, bool requireClientCertificate = …, }): Future<void> - changed:
method Server.serveStream_(ServerTransportStream stream): ServerHandler_ → method Server.serveStream_({ required ServerTransportStream stream, X509Certificate? clientCertificate, InternetAddress? remoteAddress, Sink<void>? onDataReceived, }): ServerHandler - changed:
method Service.$lookupMethod(String name): ServiceMethod → method Service.$lookupMethod(String name): ServiceMethod? - changed:
method ServiceCall.sendTrailers({int status, String message}): void → method ServiceCall.sendTrailers({int? status, String? message}): void - changed:
typedef ClientStreamingInvoker<Q, R> = ResponseStream<R> Function( ClientMethod method, Stream<Q> requests, CallOptions options) → typedef ClientStreamingInvoker<Q, R> = ResponseStream<R> Function( ClientMethod<Q, R> method, Stream<Q> requests, CallOptions options) - changed:
typedef ClientUnaryInvoker<Q, R> = ResponseFuture<R> Function( ClientMethod method, Q request, CallOptions options) → typedef ClientUnaryInvoker<Q, R> = ResponseFuture<R> Function( ClientMethod<Q, R> method, Q request, CallOptions options) - changed:
typedef Interceptor = FutureOr<GrpcError> Function( ServiceCall call, ServiceMethod method) → typedef Interceptor = FutureOr<GrpcError?> Function( ServiceCall call, ServiceMethod method) - added:
class ClientKeepAliveOptions - added:
class Code extends $pb.ProtobufEnum - added:
class Proxy - added:
class ServerKeepAliveOptions - added:
ctor ClientKeepAliveOptions({ this.pingInterval, this.timeout = …, this.permitWithoutCalls = …, }) - added:
ctor GrpcHttpDecoder({this.forResponse = …}) - added:
ctor JwtServiceAccountAuthenticator.fromJson( Map<String, dynamic> serviceAccountJson) - added:
ctor Proxy({ required this.host, required this.port, this.username, this.password, }) - added:
ctor Server.create({ required List<Service> services, ServerKeepAliveOptions keepAliveOptions = …, List<Interceptor> interceptors = …, CodecRegistry? codecRegistry, GrpcErrorHandler? errorHandler, }) - added:
ctor ServerKeepAliveOptions({ this.minIntervalBetweenPingsWithoutData = …, this.maxBadPings = …, }) - added:
ctor ServiceAccountAuthenticator.fromJson( Map<String, dynamic> serviceAccountJson, this._scopes) - added:
field ChannelOptions.connectTimeout: final Duration? - added:
field ChannelOptions.keepAlive: final ClientKeepAliveOptions - added:
field ChannelOptions.proxy: final Proxy? - added:
field ClientKeepAliveOptions.permitWithoutCalls: final bool - added:
field ClientKeepAliveOptions.pingInterval: final Duration? - added:
field ClientKeepAliveOptions.timeout: final Duration - added:
field ConnectionServer.handlers: final Map<ServerTransportConnection, List<ServerHandler>> - added:
field GrpcError.code - added:
field GrpcError.trailers: final Map<String, String>? - added:
field GrpcHttpDecoder.forResponse: final bool - added:
field GzipCodec.encodingName: final - added:
field IdentityCodec.encodingName: final - added:
field Proxy.host: final String - added:
field Proxy.password: final String? - added:
field Proxy.port: final int - added:
field Proxy.username: final String? - added:
field ServerKeepAliveOptions.maxBadPings: final int? - added:
field ServerKeepAliveOptions.minIntervalBetweenPingsWithoutData: final Duration - added:
get ClientKeepAliveOptions.shouldSendPings: bool - added:
get GrpcError.codeName: String - added:
get Proxy.isAuthenticated: bool - added:
get ServiceCall.clientCertificate: X509Certificate? - added:
get ServiceCall.remoteAddress: InternetAddress? - added:
static field Code.ABORTED: const Code - added:
static field Code.ALREADY_EXISTS: const Code - added:
static field Code.CANCELLED: const Code - added:
static field Code.DATA_LOSS: const Code - added:
static field Code.DEADLINE_EXCEEDED: const Code - added:
static field Code.FAILED_PRECONDITION: const Code - added:
static field Code.INTERNAL: const Code - added:
static field Code.INVALID_ARGUMENT: const Code - added:
static field Code.NOT_FOUND: const Code - added:
static field Code.OK: const Code - added:
static field Code.OUT_OF_RANGE: const Code - added:
static field Code.PERMISSION_DENIED: const Code - added:
static field Code.RESOURCE_EXHAUSTED: const Code - added:
static field Code.UNAUTHENTICATED: const Code - added:
static field Code.UNAVAILABLE: const Code - added:
static field Code.UNIMPLEMENTED: const Code - added:
static field Code.UNKNOWN: const Code - added:
static field Code.values: const $core.List<Code> - added:
static field StatusCode.int>: const - added:
static method Code.valueOf($core.int value): Code? - added:
static method StatusCode.fromHttpStatus(int status): int - added:
typedef BackoffStrategy = Duration Function(Duration? lastBackoff) - added:
typedef BadCertificateHandler = bool Function( X509Certificate certificate, String host) - added:
typedef MetadataProvider = FutureOr<void> Function( Map<String, String> metadata, String uri)
- removed:
field GrpcError.codeName: final String - removed:
get GzipCodec.encodingName: String - removed:
get IdentityCodec.encodingName: String - removed:
typedef void ErrorHandler(error, StackTrace stackTrace) - changed:
ctor CallOptions({ Map<String, String> metadata, Duration timeout, List<MetadataProvider> providers, Codec compression, }) → ctor CallOptions({ Map<String, String>? metadata, Duration? timeout, List<MetadataProvider>? providers, Codec? compression, }) - changed:
ctor ChannelOptions({ this.credentials = …, this.idleTimeout = …, this.userAgent = …, this.backoffStrategy = …, this.connectionTimeout = …, this.codecRegistry, }) → ctor ChannelOptions({ this.credentials = …, this.idleTimeout = …, this.userAgent = …, this.backoffStrategy = …, this.connectTimeout, this.connectionTimeout = …, this.codecRegistry, this.keepAlive = …, this.proxy, }) - changed:
ctor ClientChannel(this.host, {this.port = …, this.options = …}) → ctor ClientChannel( this.host, { this.port = …, this.options = …, super.channelShutdownHandler, }) - changed:
ctor ClientChannelBase() → ctor ClientChannelBase({void Function()? channelShutdownHandler}) - changed:
ctor GrpcError.custom(this.code, [this.message, this.details, this.rawResponse]) → ctor GrpcError.custom(this.code, [this.message, this.details, this.rawResponse, this.trailers = …]) - changed:
ctor GrpcError.deadlineExceeded([this.message, this.details, this.rawResponse]) → ctor GrpcError.deadlineExceeded( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.failedPrecondition([this.message, this.details, this.rawResponse]) → ctor GrpcError.failedPrecondition( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.internal([this.message, this.details, this.rawResponse]) → ctor GrpcError.internal( [this.message, this.details, this.rawResponse, this.trailers]) - changed:
ctor GrpcError.invalidArgument([this.message, this.details, this.rawResponse]) → ctor GrpcError.invalidArgument( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.permissionDenied([this.message, this.details, this.rawResponse]) → ctor GrpcError.permissionDenied( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.resourceExhausted([this.message, this.details, this.rawResponse]) → ctor GrpcError.resourceExhausted( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.unauthenticated([this.message, this.details, this.rawResponse]) → ctor GrpcError.unauthenticated( [this.message, this.details, this.rawResponse]) - changed:
field CallOptions.compression: final Codec → field CallOptions.compression: final Codec? - changed:
field CallOptions.timeout: final Duration → field CallOptions.timeout: final Duration? - changed:
field ChannelOptions.codecRegistry: final CodecRegistry → field ChannelOptions.codecRegistry: final CodecRegistry? - changed:
field ChannelOptions.idleTimeout: final Duration → field ChannelOptions.idleTimeout: final Duration? - changed:
field GrpcError.details: final List<GeneratedMessage> → field GrpcError.details: final List<GeneratedMessage>? - changed:
field GrpcError.message: final String → field GrpcError.message: final String? - changed:
field GrpcError.rawResponse: final Object → field GrpcError.rawResponse: final Object? - changed:
function frame(List<int> rawPayload, [Codec codec]): List<int> → function frame(List<int> rawPayload, [Codec? codec]): List<int> - changed:
function grpcDecompressor({ CodecRegistry codecRegistry, }): StreamTransformer<GrpcMessage, GrpcMessage> → function grpcDecompressor({ CodecRegistry? codecRegistry, }): StreamTransformer<GrpcMessage, GrpcMessage> - changed:
method CallOptions.mergedWith(CallOptions other): CallOptions → method CallOptions.mergedWith(CallOptions? other): CallOptions - changed:
method ClientConnection.makeRequest(String path, Duration timeout, Map<String, String> metadata, ErrorHandler onRequestFailure, {CallOptions callOptions}): GrpcTransportStream → method ClientConnection.makeRequest(String path, Duration? timeout, Map<String, String> metadata, ErrorHandler onRequestFailure, {required CallOptions callOptions}): GrpcTransportStream - changed:
method CodecRegistry.lookup(String codecName): Codec → method CodecRegistry.lookup(String codecName): Codec? - added:
ctor GrpcHttpDecoder({this.forResponse = …}) - added:
field ChannelOptions.connectTimeout: final Duration? - added:
field ChannelOptions.keepAlive: final ClientKeepAliveOptions - added:
field ChannelOptions.proxy: final Proxy? - added:
field GrpcError.code - added:
field GrpcError.trailers: final Map<String, String>? - added:
field GrpcHttpDecoder.forResponse: final bool - added:
field GzipCodec.encodingName: final - added:
field IdentityCodec.encodingName: final - added:
get ClientChannelBase.onConnectionStateChanged: Stream<ConnectionState> - added:
get GrpcError.codeName: String - added:
method ClientChannelBase.Function(): void - added:
set ClientConnection.onStateChanged(void Function(ConnectionState) cb) - added:
typedef ErrorHandler = void Function(Object, StackTrace)
- added:
class CallOptions - added:
class GrpcError implements Exception - added:
class GrpcOrGrpcWebClientChannel extends GrpcOrGrpcWebClientChannelInternal - added:
class HttpBasedAuthenticator: abstract extends BaseAuthenticator - added:
class JwtServiceAccountAuthenticator extends BaseAuthenticator - added:
class Response: abstract - added:
class ResponseFuture<R> extends DelegatingFuture<R> with _ResponseMixin<dynamic, R> - added:
class ResponseStream<R> extends StreamView<R> with _ResponseMixin<dynamic, R> - added:
class StatusCode - added:
ctor CallOptions({ Map<String, String>? metadata, Duration? timeout, List<MetadataProvider>? providers, Codec? compression, }) - added:
ctor CallOptions.from(Iterable<CallOptions> options) - added:
ctor GrpcError.aborted([this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.alreadyExists([this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.cancelled([this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.custom(this.code, [this.message, this.details, this.rawResponse, this.trailers = …]) - added:
ctor GrpcError.dataLoss([this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.deadlineExceeded( [this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.failedPrecondition( [this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.internal( [this.message, this.details, this.rawResponse, this.trailers]) - added:
ctor GrpcError.invalidArgument( [this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.notFound([this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.ok([this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.outOfRange([this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.permissionDenied( [this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.resourceExhausted( [this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.unauthenticated( [this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.unavailable([this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.unimplemented([this.message, this.details, this.rawResponse]) - added:
ctor GrpcError.unknown([this.message, this.details, this.rawResponse]) - added:
ctor GrpcOrGrpcWebClientChannel.grpc( super.host, { super.port = …, super.options = …, }) - added:
ctor GrpcOrGrpcWebClientChannel.toSeparateEndpoints({ required super.grpcHost, required super.grpcPort, required super.grpcTransportSecure, required super.grpcWebHost, required super.grpcWebPort, required super.grpcWebTransportSecure, }) - added:
ctor GrpcOrGrpcWebClientChannel.toSeparatePorts({ required String host, required super.grpcPort, required super.grpcTransportSecure, required super.grpcWebPort, required super.grpcWebTransportSecure, }) - added:
ctor GrpcOrGrpcWebClientChannel.toSingleEndpoint({ required String host, required int port, required bool transportSecure, }) - added:
ctor JwtServiceAccountAuthenticator(String serviceAccountJsonString) - added:
ctor JwtServiceAccountAuthenticator.fromJson( Map<String, dynamic> serviceAccountJson) - added:
ctor ResponseFuture(this._call) - added:
ctor ResponseStream(this._call) - added:
field CallOptions.compression: final Codec? - added:
field CallOptions.metadata: final Map<String, String> - added:
field CallOptions.metadataProviders: final List<MetadataProvider> - added:
field CallOptions.timeout: final Duration? - added:
field GrpcError.code - added:
field GrpcError.code: final int - added:
field GrpcError.details: final List<GeneratedMessage>? - added:
field GrpcError.message: final String? - added:
field GrpcError.rawResponse: final Object? - added:
field GrpcError.trailers: final Map<String, String>? - added:
get GrpcError.codeName: String - added:
get GrpcError.hashCode: int - added:
get JwtServiceAccountAuthenticator.projectId: String? - added:
get Response.headers: Future<Map<String, String>> - added:
get Response.trailers: Future<Map<String, String>> - added:
get ResponseStream.single: ResponseFuture<R> - added:
method CallOptions.mergedWith(CallOptions? other): CallOptions - added:
method GrpcError.operator ==(other): bool - added:
method GrpcError.toString(): String - added:
method HttpBasedAuthenticator.obtainAccessCredentials(String uri): Future<void> - added:
method HttpBasedAuthenticator.obtainCredentialsWithClient( http.Client client, String uri): Future<auth.AccessCredentials> - added:
method JwtServiceAccountAuthenticator.obtainAccessCredentials(String uri): Future<void> - added:
method Response.cancel(): Future<void> - added:
static field StatusCode.aborted: const - added:
static field StatusCode.alreadyExists: const - added:
static field StatusCode.cancelled: const - added:
static field StatusCode.dataLoss: const - added:
static field StatusCode.deadlineExceeded: const - added:
static field StatusCode.failedPrecondition: const - added:
static field StatusCode.int>: const - added:
static field StatusCode.internal: const - added:
static field StatusCode.invalidArgument: const - added:
static field StatusCode.notFound: const - added:
static field StatusCode.ok: const - added:
static field StatusCode.outOfRange: const - added:
static field StatusCode.permissionDenied: const - added:
static field StatusCode.resourceExhausted: const - added:
static field StatusCode.unauthenticated: const - added:
static field StatusCode.unavailable: const - added:
static field StatusCode.unimplemented: const - added:
static field StatusCode.unknown: const - added:
static method StatusCode.fromHttpStatus(int status): int - added:
typedef MetadataProvider = FutureOr<void> Function( Map<String, String> metadata, String uri) - added:
variable isTimelineLoggingEnabled: bool
- removed:
field GrpcError.codeName: final String - removed:
typedef FutureOr<void> MetadataProvider( Map<String, String> metadata, String uri) - changed:
class ResponseStream<R> extends DelegatingStream<R> with _ResponseMixin<dynamic, R> → class ResponseStream<R> extends StreamView<R> with _ResponseMixin<dynamic, R> - changed:
ctor CallOptions({ Map<String, String> metadata, Duration timeout, List<MetadataProvider> providers, Codec compression, }) → ctor CallOptions({ Map<String, String>? metadata, Duration? timeout, List<MetadataProvider>? providers, Codec? compression, }) - changed:
ctor GrpcError.custom(this.code, [this.message, this.details, this.rawResponse]) → ctor GrpcError.custom(this.code, [this.message, this.details, this.rawResponse, this.trailers = …]) - changed:
ctor GrpcError.deadlineExceeded([this.message, this.details, this.rawResponse]) → ctor GrpcError.deadlineExceeded( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.failedPrecondition([this.message, this.details, this.rawResponse]) → ctor GrpcError.failedPrecondition( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.internal([this.message, this.details, this.rawResponse]) → ctor GrpcError.internal( [this.message, this.details, this.rawResponse, this.trailers]) - changed:
ctor GrpcError.invalidArgument([this.message, this.details, this.rawResponse]) → ctor GrpcError.invalidArgument( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.permissionDenied([this.message, this.details, this.rawResponse]) → ctor GrpcError.permissionDenied( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.resourceExhausted([this.message, this.details, this.rawResponse]) → ctor GrpcError.resourceExhausted( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcError.unauthenticated([this.message, this.details, this.rawResponse]) → ctor GrpcError.unauthenticated( [this.message, this.details, this.rawResponse]) - changed:
ctor GrpcWebClientChannel.xhr(this.uri) → ctor GrpcWebClientChannel.xhr(this.uri, {super.channelShutdownHandler}) - changed:
ctor JwtServiceAccountAuthenticator(String serviceAccountJson) → ctor JwtServiceAccountAuthenticator(String serviceAccountJsonString) - changed:
ctor WebCallOptions( {Map<String, String> metadata, Duration timeout, List<MetadataProvider> providers, bool bypassCorsPreflight, bool withCredentials}) → ctor WebCallOptions( {Map<String, String>? metadata, Duration? timeout, List<MetadataProvider>? providers, bool? bypassCorsPreflight, bool? withCredentials}) - changed:
field CallOptions.compression: final Codec → field CallOptions.compression: final Codec? - changed:
field CallOptions.timeout: final Duration → field CallOptions.timeout: final Duration? - changed:
field GrpcError.details: final List<GeneratedMessage> → field GrpcError.details: final List<GeneratedMessage>? - changed:
field GrpcError.message: final String → field GrpcError.message: final String? - changed:
field GrpcError.rawResponse: final Object → field GrpcError.rawResponse: final Object? - changed:
field WebCallOptions.bypassCorsPreflight: final bool → field WebCallOptions.bypassCorsPreflight: final bool? - changed:
field WebCallOptions.withCredentials: final bool → field WebCallOptions.withCredentials: final bool? - changed:
get JwtServiceAccountAuthenticator.projectId: String → get JwtServiceAccountAuthenticator.projectId: String? - changed:
method CallOptions.mergedWith(CallOptions other): CallOptions → method CallOptions.mergedWith(CallOptions? other): CallOptions - changed:
method WebCallOptions.mergedWith(CallOptions other): CallOptions → method WebCallOptions.mergedWith(CallOptions? other): CallOptions - added:
ctor JwtServiceAccountAuthenticator.fromJson( Map<String, dynamic> serviceAccountJson) - added:
field GrpcError.code - added:
field GrpcError.trailers: final Map<String, String>? - added:
get GrpcError.codeName: String - added:
static field StatusCode.int>: const - added:
static method StatusCode.fromHttpStatus(int status): int - added:
typedef MetadataProvider = FutureOr<void> Function( Map<String, String> metadata, String uri)
- removed:
typedef FutureOr<void> MetadataProvider( Map<String, String> metadata, String uri) - changed:
class ResponseStream<R> extends DelegatingStream<R> with _ResponseMixin<dynamic, R> → class ResponseStream<R> extends StreamView<R> with _ResponseMixin<dynamic, R> - changed:
ctor CallOptions({ Map<String, String> metadata, Duration timeout, List<MetadataProvider> providers, Codec compression, }) → ctor CallOptions({ Map<String, String>? metadata, Duration? timeout, List<MetadataProvider>? providers, Codec? compression, }) - changed:
ctor Client(this._channel, {CallOptions options, Iterable<ClientInterceptor> interceptors}) → ctor Client(this._channel, {CallOptions? options, Iterable<ClientInterceptor>? interceptors}) - changed:
field CallOptions.compression: final Codec → field CallOptions.compression: final Codec? - changed:
field CallOptions.timeout: final Duration → field CallOptions.timeout: final Duration? - changed:
get ServiceCall.clientMetadata: Map<String, String> → get ServiceCall.clientMetadata: Map<String, String>? - changed:
get ServiceCall.deadline: DateTime → get ServiceCall.deadline: DateTime? - changed:
get ServiceCall.headers: Map<String, String> → get ServiceCall.headers: Map<String, String>? - changed:
get ServiceCall.trailers: Map<String, String> → get ServiceCall.trailers: Map<String, String>? - changed:
method CallOptions.mergedWith(CallOptions other): CallOptions → method CallOptions.mergedWith(CallOptions? other): CallOptions - changed:
method Client.$createCall<Q, R>( ClientMethod<Q, R> method, Stream<Q> requests, {CallOptions options}): ClientCall<Q, R> → method Client.$createCall<Q, R>( ClientMethod<Q, R> method, Stream<Q> requests, {CallOptions? options}): ClientCall<Q, R> - changed:
method Client.$createStreamingCall<Q, R>( ClientMethod<Q, R> method, Stream<Q> requests, {CallOptions options}): ResponseStream<R> → method Client.$createStreamingCall<Q, R>( ClientMethod<Q, R> method, Stream<Q> requests, {CallOptions? options}): ResponseStream<R> - changed:
method Client.$createUnaryCall<Q, R>(ClientMethod<Q, R> method, Q request, {CallOptions options}): ResponseFuture<R> → method Client.$createUnaryCall<Q, R>(ClientMethod<Q, R> method, Q request, {CallOptions? options}): ResponseFuture<R> - changed:
method Service.$lookupMethod(String name): ServiceMethod → method Service.$lookupMethod(String name): ServiceMethod? - changed:
method ServiceCall.sendTrailers({int status, String message}): void → method ServiceCall.sendTrailers({int? status, String? message}): void - changed:
typedef ClientStreamingInvoker<Q, R> = ResponseStream<R> Function( ClientMethod method, Stream<Q> requests, CallOptions options) → typedef ClientStreamingInvoker<Q, R> = ResponseStream<R> Function( ClientMethod<Q, R> method, Stream<Q> requests, CallOptions options) - changed:
typedef ClientUnaryInvoker<Q, R> = ResponseFuture<R> Function( ClientMethod method, Q request, CallOptions options) → typedef ClientUnaryInvoker<Q, R> = ResponseFuture<R> Function( ClientMethod<Q, R> method, Q request, CallOptions options) - added:
get ClientChannel.onConnectionStateChanged: Stream<ConnectionState> - added:
get ServiceCall.clientCertificate: X509Certificate? - added:
get ServiceCall.remoteAddress: InternetAddress? - added:
typedef MetadataProvider = FutureOr<void> Function( Map<String, String> metadata, String uri)