stream_core library

Classes

AndOperator<T extends Object>
Logical AND filter requiring all conditions to match.
AnySortComparator<T extends Object>
A type-erased wrapper for sort comparators that can work with any model type.
ApiErrorInterceptor
ApiKeyInterceptor
AttachmentFile
Cross-platform file wrapper for Stream attachments.
AttachmentUploadState
Represents the upload state of an attachment.
Authenticating
The WebSocket connection is established and authentication is in progress.
AuthInterceptor
Authentication interceptor that refreshes the token if an auth error is received
AutoCompleteOperator<T extends Object>
Word prefix matching filter for autocomplete.
AutomaticReconnectionPolicy
An interface that defines a policy for determining whether the WebSocket should attempt an automatic reconnection based on specific conditions.
BackgroundStateReconnectionPolicy
A reconnection policy that checks the application's lifecycle state before allowing reconnection. This prevents reconnection when the app is in the background to save battery and resources.
BackgroundTransformer
The default Transformer for Dio.
BaseOptions
A set of base settings for each Dio(). BaseOptions and Options will be merged into one RequestOptions before sending the requests. See Options.compose.
BoundingBox
A rectangular geographic region for area-based location filtering.
ByteBuffer
A sequence of bytes underlying a typed data object.
ByteData
A fixed-length, random-access sequence of bytes that also provides random and unaligned access to the fixed-width integers and floating point numbers represented by those bytes.
BytesBuilder
Builds a list of bytes, allowing bytes and lists of bytes to be added at the end.
CancelToken
Controls cancellation of Dio's requests.
CdnClient
Content Delivery Network (CDN) client for file operations.
CircularRegion
A circular geographic region for proximity-based location filtering.
ComparableField<T extends Object>
A type-safe wrapper for ordering values.
ComparisonOperator<T extends Object>
Base class for comparison-based filter operations.
CompositeReconnectionPolicy
A composite reconnection policy that combines multiple policies using a logical operator (AND/OR). This allows for complex reconnection logic by combining multiple conditions.
Connected
The WebSocket is fully connected and authenticated.
Connecting
The WebSocket is attempting to establish a connection.
ConnectionIdInterceptor
Interceptor that injects the connection id in the request params
ConnectionRecoveryHandler
A connection recovery handler with intelligent reconnection management.
ConnectUserDetailsRequest
ContainsOperator<T extends Object>
Containment filter for JSON and array subset matching.
CurrentPlatform
Platform detection utility for identifying the current runtime environment.
DefaultRetryStrategy
Default implementation of RetryStrategy that uses exponential backoff with jitter.
Dio
Dio enables you to make HTTP requests easily.
DioMixin
Disconnected
The WebSocket connection is closed and not available for communication.
Disconnecting
The WebSocket connection is in the process of being closed.
DisconnectionSource
Represents the source or cause of a WebSocket disconnection.
Disposable
A convenience class to represent a disposable object.
DynamicTokenProvider
A token provider that dynamically loads fresh JWT tokens using a custom function.
Endian
Endianness of number representation.
EqualOperator<T extends Object>
Equality filter using exact value matching.
ErrorInterceptorHandler
The handler for interceptors to handle error occurred during the request.
EvaluationOperator<T extends Object>
Base class for text-based evaluation filters.
ExistsOperator<T extends Object>
Field existence/absence filter.
Failure
Represents failed result.
Filter<T extends Object>
Type-safe filter for querying data.
FilterField<T>
Type-safe field identifier for filtering and value extraction.
Float32List
A fixed-length list of IEEE 754 single-precision binary floating-point numbers that is viewable as a TypedData.
Float32x4
Four 32-bit floating point values.
Float32x4List
A fixed-length list of Float32x4 numbers that is viewable as a TypedData.
Float64List
A fixed-length list of IEEE 754 double-precision binary floating-point numbers that is viewable as a TypedData.
Float64x2
Float64x2 immutable value type and operations.
Float64x2List
A fixed-length list of Float64x2 numbers that is viewable as a TypedData.
FormData
A class to create readable "multipart/form-data" streams. It can be used to submit forms and file uploads to http server.
FusedTransformer
A Transformer that has a fast path for decoding UTF8-encoded JSON. If the response is utf8-encoded JSON and no custom decoder is specified in the RequestOptions, this transformer is significantly faster than the default SyncTransformer and the BackgroundTransformer. This improvement is achieved by using a fused Utf8Decoder and JsonDecoder to decode the response, which is faster than decoding the utf8-encoded JSON in two separate steps, since Dart uses a special fast decoder for this case. See https://github.com/dart-lang/sdk/blob/5b2ea0c7a227d91c691d2ff8cbbeb5f7f86afdb9/sdk/lib/_internal/vm/lib/convert_patch.dart#L40
GreaterOperator<T extends Object>
Greater-than comparison filter.
GreaterOrEqualOperator<T extends Object>
Greater-than-or-equal comparison filter.
Headers
The headers class for requests and responses.
HeadersInterceptor
Interceptor that sets additional headers for all requests.
HealthCheckInfo
HealthCheckPingEvent
HttpClientAdapter
HttpAdapter is a bridge between Dio and HttpClient.
Initialized
The initial state before any connection attempt has been made.
InOperator<T extends Object>
Membership test filter for list containment.
Int16List
A fixed-length list of 16-bit signed integers that is viewable as a TypedData.
Int32List
A fixed-length list of 32-bit signed integers that is viewable as a TypedData.
Int32x4
Int32x4 and operations.
Int32x4List
A fixed-length list of Int32x4 numbers that is viewable as a TypedData.
Int64List
A fixed-length list of 64-bit signed integers that is viewable as a TypedData.
Int8List
A fixed-length list of 8-bit signed integers.
Interceptor
Interceptor helps to deal with RequestOptions, Response, and DioException during the lifecycle of a request before it reaches users.
Interceptors
A Queue-Model list for Interceptors.
InterceptorsWrapper
A helper class to create interceptors in ease.
InternetAvailabilityReconnectionPolicy
A reconnection policy that checks for internet connectivity before allowing reconnection. This prevents unnecessary reconnection attempts when there's no network available.
LessOperator<T extends Object>
Less-than comparison filter.
LessOrEqualOperator<T extends Object>
Less-than-or-equal comparison filter.
LifecycleStateProvider
A utility class for monitoring application lifecycle state changes.
ListOperator<T extends Object>
Base class for list-based filter operations.
ListParam<T>
Indicates a param being used as queries or form data, and how does it gets formatted.
LocationCoordinate
A geographic coordinate with latitude and longitude.
LoggingInterceptor
Interceptor dedicated to logging
LogicalOperator<T extends Object>
Base class for logical filter composition.
LogInterceptor
LogInterceptor is used to print logs during network requests. It should be the last interceptor added, otherwise modifications by following interceptors will not be logged. This is because the execution of interceptors is in the order of addition.
MultipartFile
An upload content that is a part of MultipartRequest. This doesn't need to correspond to a physical file.
MutableEventEmitter<T extends StreamEvent>
A mutable event emitter with resolver support for event transformation.
MutableSharedEmitter<T>
A mutable emitter that broadcasts events to multiple listeners.
MutableStateEmitter<T>
A mutable emitter that maintains and broadcasts the current state.
NetworkStateProvider
A utility class for monitoring network connectivity changes.
Options
The configuration for a single request. BaseOptions and Options will be merged into one RequestOptions before sending the requests. See Options.compose.
OrOperator<T extends Object>
Logical OR filter requiring any condition to match.
PathExistsOperator<T extends Object>
Nested JSON path existence filter.
QueryOperator<T extends Object>
Full-text search filter.
QueuedInterceptor
Interceptor in queue.
QueuedInterceptorsWrapper
A helper class to create QueuedInterceptor in ease.
RedirectRecord
A record that records the redirection happens during requests, including status code, request method, and the location.
RequestInterceptorHandler
The handler for interceptors to handle before the request has been sent.
RequestOptions
The internal request option class that is the eventual result after BaseOptions and Options are composed.
Response<T>
The Response class contains the payload (could be transformed) that respond from the request, and other information of the response.
ResponseBody
The response wrapper class for adapters.
ResponseInterceptorHandler
The handler for interceptors to handle after respond.
Result<T>
A discriminated union that encapsulates a successful outcome with a value of type T or a failure with an arbitrary Object error.
RetryStrategy
Interface that encapsulates the logic for computing delays for failed actions that need to be retried.
ServerInitiated
A disconnection that was initiated by the server.
SharedEmitter<T>
A read-only emitter that broadcasts events to multiple listeners.
Sort<T extends Object>
A sort specification that defines how to order a collection of objects.
SortComparator<T extends Object, V extends Object>
A comparator that can sort model instances by extracting comparable values.
SortField<T extends Object>
A sortable field definition that maps remote field names to local value extractors.
StateEmitter<T>
A read-only emitter that maintains and broadcasts the current state.
StaticTokenProvider
A token provider that uses a static token for a specific user.
StreamApiError
An API error response from the Stream API.
StreamAttachment
Represents a file attachment with type information and upload state.
StreamAttachmentUploader
Uploads StreamAttachment objects to remote storage.
StreamEvent
Base interface for events that can be emitted through an EventEmitter.
StreamLogger
StreamWebSocketClient
A WebSocket client with connection management and event handling.
StreamWebSocketEngine<Inc, Out>
A WebSocket engine implementation that handles low-level WebSocket operations.
Success<T>
Represents successful result.
SyncTransformer
If you want to custom the transformation of request/response data, you can provide a Transformer by your self, and replace the transformer by setting the Dio.transformer.
SystemEnvironment
A class that represents the environment in which the Stream SDK is running.
SystemEnvironmentManager
A manager class to handle the current SystemEnvironment.
SystemInitiated
A disconnection that was initiated by system-level conditions.
TokenManager
Manages user authentication tokens with caching and thread-safe access.
TokenProvider
A provider for loading user authentication tokens.
Transformer
Transformer allows changes to the request/response data before it is sent/received to/from the server.
TypedData
A typed view of a sequence of bytes.
TypedDataList<E>
A TypedData fixed-length List-view on the bytes of buffer.
Uint16List
A fixed-length list of 16-bit unsigned integers that is viewable as a TypedData.
Uint32List
A fixed-length list of 32-bit unsigned integers that is viewable as a TypedData.
Uint64List
A fixed-length list of 64-bit unsigned integers that is viewable as a TypedData.
Uint8ClampedList
A fixed-length list of 8-bit unsigned integers.
Uint8List
A fixed-length list of 8-bit unsigned integers.
UnHealthyConnection
A disconnection caused by failed connection health checks.
UploadedAttachment
Represents a successfully uploaded attachment.
UploadedFile
Represents an uploaded file result from the CDN.
UploadStateFailed
Upload state indicating the attachment upload failed.
UploadStateInProgress
Upload state indicating the attachment upload is in progress.
UploadStatePreparing
Upload state indicating the attachment is being prepared for upload.
UploadStateSuccess
Upload state indicating the attachment was successfully uploaded.
User
Model for the user's info.
UserInitiated
A disconnection that was explicitly requested by the application.
UserToken
A user authentication token for Stream Core API access.
WebSocketAutomaticReconnectionPolicy
A reconnection policy that checks if automatic reconnection is enabled based on the current state of the WebSocket connection.
WebSocketConnectionState
Represents the current state of a WebSocket connection.
WebSocketEngine<Outgoing>
Interface for WebSocket engine implementations.
WebSocketEngineListener<Incoming>
Interface for receiving WebSocket engine events.
WebSocketHealthListener
Interface for receiving WebSocket health monitoring events.
WebSocketHealthMonitor
A health monitor for WebSocket connections with ping/pong management.
WebSocketMessageCodec<Incoming, Outgoing>
Interface for WebSocket message encoding and decoding.
WebSocketOptions
Configuration options for establishing WebSocket connections.
WsAuthMessageRequest
WsEvent
WsRequest

Enums

AuthType
Represents the types of authentication available for API access.
DioExceptionType
The exception enumeration indicates what type of exception has happened during requests.
FileAccessMode
The file access mode when downloading a file, corresponds to a subset of dart:io::FileMode.
InterceptStep
Step where we're logging
LifecycleState
Enum representing the lifecycle state of the application.
ListFormat
Specifies the array format (a single parameter with multiple parameter or multiple parameters with the same name). and the separator for array items.
NetworkState
Enum representing the state of network connectivity.
NullOrdering
Defines how null values should be ordered in a sort operation.
Operator
Defines logical operators for combining multiple reconnection policies.
PlatformType
Enumeration of supported platform types.
Priority
ResponseType
Indicates which transformation should be applied to the response data.
SortDirection
The direction of a sort operation.
UserType
The user authorization type.

Mixins

OptionsMixin
The mixin class for options that provides common attributes.

Extension Types

AttachmentType
Type-safe attachment type identifier for Stream attachments.
CloseCode
A strongly-typed wrapper around an integer WebSocket close code, as defined by the RFC 6455 WebSocket Protocol.
Distance
A distance value with convenient unit conversions.
FilterOperator
A type-safe operator identifier for filtering operations.
StreamCoreHttpClient

Extensions

AttachmentFileMultipartExtension on AttachmentFile
Extension methods for converting AttachmentFile to MultipartFile.
ComparableExtension on T
Extension for comparing objects that implement the Comparable interface.
CompositeComparator on Iterable<Sort<T>>
Extension that combines multiple Sort instances into a single comparator.
DistanceExtension on num
Extension methods on num for creating Distance values.
IterableExtensions on Iterable<T>
Extensions for basic iterable operations that work with any object type.
ListExtensions on List<T>
Extensions for basic list operations that work with any object type.
MutableSharedEmitterExtension on MutableSharedEmitter<T>
Type conversion methods for MutableSharedEmitter.
MutableStateEmitterExtension on MutableStateEmitter<T>
Convenience methods for MutableStateEmitter.
PatternMatching on Result<T>
RetryStrategyExtensions on RetryStrategy
Extension methods for the RetryStrategy interface.
SharedEmitterExtension on SharedEmitter<T>
Convenience methods for SharedEmitter event handling.
SortedListExtensions on List<T>
Extensions for list operations that provide optional or required sorting.
Standard on T
A set of standard extension methods for any Object type.
StreamApiErrorExtension on StreamApiError
Extension methods for StreamApiError to provide convenient error type checks.
StreamAttachmentTypeHelper on StreamAttachment
Helper extension for StreamAttachment with convenient type checking methods.
StreamAttachmentUploaderBatch on StreamAttachmentUploader
Extension providing batch upload functionality for StreamAttachmentUploader.
StreamDioExceptionExtension on DioException
XStreamClientHeaderExtension on SystemEnvironment
Extension on SystemEnvironment to build a Stream client header string.

Functions

defaultDioExceptionReadableStringBuilder(DioException e) String
The default implementation of building a readable string of DioException.
repeat(int times, void action(int)) → void
Executes the given function action specified number of times.
runSafely<R>(FutureOr<R> block()) Future<Result<R>>
Runs a block of code and returns a Result containing the outcome.
runSafelySync<R>(R block()) Result<R>
Runs a block of code and returns a Result containing the outcome.

Typedefs

ConnectionIdGetter = String? Function()
ConnectionStateEmitter = StateEmitter<WebSocketConnectionState>
A state emitter for WebSocket connection state changes.
DefaultTransformer = SyncTransformer
DioError = DioException
DioError describes the exception info when a request failed.
DioErrorType = DioExceptionType
Deprecated in favor of DioExceptionType and will be removed in future major versions.
DioExceptionReadableStringBuilder = String Function(DioException e)
The readable string builder's signature of DioException.readableStringBuilder.
DioMediaType = MediaType
The type (alias) for specifying the content-type of the MultipartFile.
EventEmitter<T extends StreamEvent> = SharedEmitter<T>
A read-only event emitter constrained to StreamEvent subtypes.
EventResolver<T extends StreamEvent> = T? Function(T event)
A function that inspects an event and optionally transforms it.
FilterFieldValueGetter<T, V> = V? Function(T)
Function that extracts a field value from a model instance.
Finder = T? Function<T extends StreamLogger>([dynamic criteria])
HeaderForEachCallback = void Function(String name, List<String> values)
The signature that iterates header fields.
InterceptorErrorCallback = void Function(DioException error, ErrorInterceptorHandler handler)
The signature of Interceptor.onError.
InterceptorSendCallback = void Function(RequestOptions options, RequestInterceptorHandler handler)
The signature of Interceptor.onRequest.
InterceptorSuccessCallback = void Function(Response response, ResponseInterceptorHandler handler)
The signature of Interceptor.onResponse.
IsLoggableValidator = bool Function(Priority, Tag)
JsonDecodeCallback = FutureOr Function(String)
The callback definition for decoding a JSON string.
JsonEncodeCallback = FutureOr<String> Function(Object)
The callback definition for encoding a JSON object.
LifecycleStateEmitter = StateEmitter<LifecycleState>
A type alias for a state emitter that emits LifecycleState values.
LogPrint = void Function(InterceptStep step, Object object)
Function used to print the log
MessageBuilder = String Function()
MutableConnectionStateEmitter = MutableStateEmitter<WebSocketConnectionState>
A mutable state emitter for WebSocket connection state changes.
NetworkStateEmitter = StateEmitter<NetworkState>
A type alias for a state emitter that emits NetworkState values.
OnBatchUploadProgress = void Function(String attachmentId, double progress)
Callback for tracking batch upload progress.
OnUploadProgress = void Function(double progress)
Callback for tracking upload progress.
PingRequestBuilder = WsRequest Function([HealthCheckInfo? info])
A function that builds ping requests for health checks.
ProgressCallback = void Function(int count, int total)
The type of a progress listening callback when sending or receiving data.
RequestEncoder = FutureOr<List<int>> Function(String request, RequestOptions options)
The type of a request encoding callback.
ResponseDecoder = FutureOr<String?> Function(List<int> responseBytes, RequestOptions options, ResponseBody responseBody)
The type of a response decoding callback.
SortFieldComparator<T> = int Function(T? a, T? b, SortDirection direction, NullOrdering nullOrdering)
A comparator function that compares two instances of type T based on a specified field, sort direction, and null ordering.
SortFieldValueGetter<T, V> = V? Function(T)
Signature for a function that retrieves a sortable field value of type V from an instance of type T.
Tag = String
UserTokenLoader = Future<UserToken> Function(String userId)
A function that loads user tokens.
ValidateStatus = bool Function(int? status)
The type of a response status code validate callback.
WebSocketProvider = WebSocketChannel Function(WebSocketOptions options)
Signature for a function that creates a WebSocketChannel based on WebSocketOptions.

Exceptions / Errors

AttachmentUploadException
Exception thrown when an attachment upload fails.
ClientException
DioException
DioException describes the exception info when a request failed.
HttpClientException
NotNullableError<T>
A TypeError thrown by _checkNotNullable.
StreamDioException
Error class specific to StreamChat and Dio
WebSocketEngineException