diff --git a/.sdk-parse-ignore b/.sdk-parse-ignore index fe7ff1295..5bb6d37fe 100644 --- a/.sdk-parse-ignore +++ b/.sdk-parse-ignore @@ -19,5 +19,13 @@ packages/supabase_common/ packages/supabase_typegen/ # The examples are standalone demo apps, not part of the published SDK, so their -# public classes are not capability-matrix symbols. +# public classes are not capability-matrix symbols. Each package also ships its +# own example app, which the extractor treats as a package of its own because it +# has a pubspec.yaml. examples/ +packages/*/example/ + +# version.dart is rewritten wholesale by the release tooling +# (`echo "const version = '$version';" > $d/lib/src/version.dart`), so it cannot +# carry an @internal annotation. +packages/*/lib/src/version.dart diff --git a/packages/gotrue/lib/src/broadcast_stub.dart b/packages/gotrue/lib/src/broadcast_stub.dart index 4df0dcad6..c7e5cecae 100644 --- a/packages/gotrue/lib/src/broadcast_stub.dart +++ b/packages/gotrue/lib/src/broadcast_stub.dart @@ -1,8 +1,10 @@ // coverage:ignore-file import 'package:gotrue/src/types/types.dart'; +import 'package:meta/meta.dart'; /// Stub implementation of [BroadcastChannel] for platforms that don't support /// it. +@internal BroadcastChannel getBroadcastChannel(String broadcastKey) { throw UnimplementedError(); } diff --git a/packages/gotrue/lib/src/broadcast_web.dart b/packages/gotrue/lib/src/broadcast_web.dart index 5bf44b54a..6e07c16f5 100644 --- a/packages/gotrue/lib/src/broadcast_web.dart +++ b/packages/gotrue/lib/src/broadcast_web.dart @@ -4,10 +4,12 @@ import 'dart:js_interop'; import 'package:gotrue/src/types/types.dart'; import 'package:logging/logging.dart'; +import 'package:meta/meta.dart'; import 'package:web/web.dart' as web; final _log = Logger('supabase.auth'); +@internal BroadcastChannel getBroadcastChannel(String broadcastKey) { final broadcast = web.BroadcastChannel(broadcastKey); final controller = StreamController>(); diff --git a/packages/postgrest/lib/src/constants.dart b/packages/postgrest/lib/src/constants.dart index f59bbb521..837324742 100644 --- a/packages/postgrest/lib/src/constants.dart +++ b/packages/postgrest/lib/src/constants.dart @@ -1,6 +1,8 @@ import 'package:postgrest/src/version.dart'; import 'package:supabase_common/supabase_common.dart'; +import 'package:meta/meta.dart'; +@internal final defaultHeaders = { 'X-Client-Info': buildClientInfoHeader('postgrest-dart', version), }; diff --git a/packages/realtime_client/lib/realtime_client.dart b/packages/realtime_client/lib/realtime_client.dart index a290d84f9..47fa2f73a 100644 --- a/packages/realtime_client/lib/realtime_client.dart +++ b/packages/realtime_client/lib/realtime_client.dart @@ -11,5 +11,5 @@ export 'src/constants.dart' export 'src/realtime_channel.dart'; export 'src/realtime_client.dart'; export 'src/realtime_presence.dart'; -export 'src/transformers.dart' hide getEnrichedPayload, getPayloadRecords; +export 'src/transformers.dart' show PostgresColumn, PostgresType; export 'src/types.dart' hide ChannelFilter, RealtimeListenType; diff --git a/packages/realtime_client/lib/src/retry_timer.dart b/packages/realtime_client/lib/src/retry_timer.dart index 996591e52..4c0809fd2 100644 --- a/packages/realtime_client/lib/src/retry_timer.dart +++ b/packages/realtime_client/lib/src/retry_timer.dart @@ -9,6 +9,7 @@ typedef TimerCalculation = int Function(int tries); // Need to limit doubling to avoid overflow, this limit gives 1 million times // the first delay +@internal const maxShift = 20; /// Creates a timer that accepts a `timerCalc` function to perform diff --git a/packages/realtime_client/lib/src/transformers.dart b/packages/realtime_client/lib/src/transformers.dart index 491748409..09a658b2f 100644 --- a/packages/realtime_client/lib/src/transformers.dart +++ b/packages/realtime_client/lib/src/transformers.dart @@ -3,6 +3,7 @@ // https://raw.githubusercontent.com/epgsql/epgsql/devel/LICENSE import 'dart:convert'; +import 'package:meta/meta.dart'; import 'package:collection/collection.dart' show IterableExtension; @@ -68,6 +69,7 @@ class PostgresColumn { /// ) /// => { 'first_name': 'Paul', 'age': 33 } /// ``` +@internal Map convertChangeData( List> columns, Map record, { @@ -113,6 +115,7 @@ Map convertChangeData( /// ) /// => "33" /// ``` +@internal dynamic convertColumn( String columnName, List columns, @@ -142,6 +145,7 @@ dynamic convertColumn( /// @example convertCell('_int4', '{1,2,3,4}') /// => [1,2,3,4] /// ``` +@internal dynamic convertCell(String type, dynamic value) { if (value == null) { return null; @@ -193,10 +197,12 @@ dynamic convertCell(String type, dynamic value) { } } +@internal dynamic noop(dynamic value) { return value; } +@internal bool? toBoolean(dynamic value) { switch (value) { case 't': @@ -211,6 +217,7 @@ bool? toBoolean(dynamic value) { } } +@internal double? toDouble(dynamic value) { if (value is double) { return value; @@ -221,6 +228,7 @@ double? toDouble(dynamic value) { return double.tryParse(value.toString()); } +@internal int? toInt(dynamic value) { if (value is int) { return value; @@ -231,6 +239,7 @@ int? toInt(dynamic value) { return int.tryParse(value.toString()); } +@internal dynamic toJson(dynamic value) { if (value is String) { try { @@ -251,6 +260,7 @@ dynamic toJson(dynamic value) { /// @example toArray([1,2,3,4], 'int4') /// //=> [1,2,3,4] /// ``` +@internal dynamic toArray(dynamic value, String type) { if (value is! String) { return value; @@ -287,6 +297,7 @@ dynamic toArray(dynamic value, String type) { /// @example toTimestampString('2019-09-10 00:00:00') /// => '2019-09-10T00:00:00' /// ``` +@internal String? toTimestampString(String? value) { if (value != null) { return value.replaceAll(' ', 'T'); @@ -294,6 +305,7 @@ String? toTimestampString(String? value) { return null; } +@internal Map getEnrichedPayload(Map payload) { final postgresChanges = payload['data'] ?? payload; final schema = postgresChanges['schema']; @@ -318,6 +330,7 @@ Map getEnrichedPayload(Map payload) { }; } +@internal Map> getPayloadRecords( Map payload, ) { @@ -345,6 +358,7 @@ Map> getPayloadRecords( } /// Converts a WebSocket URL to an HTTP URL. +@internal String httpEndpointURL(String socketUrl) { var url = socketUrl; diff --git a/packages/realtime_client/lib/src/types.dart b/packages/realtime_client/lib/src/types.dart index eebc7528b..1dcdd3d3d 100644 --- a/packages/realtime_client/lib/src/types.dart +++ b/packages/realtime_client/lib/src/types.dart @@ -66,6 +66,7 @@ enum PostgresChangeEvent { }; } +@internal class ChannelFilter { /// For [RealtimeListenType.postgresChanges] it's one of: `INSERT`, `UPDATE`, /// `DELETE` diff --git a/packages/realtime_client/lib/src/websocket/websocket_io.dart b/packages/realtime_client/lib/src/websocket/websocket_io.dart index 90a34b4b8..cd520bd4a 100644 --- a/packages/realtime_client/lib/src/websocket/websocket_io.dart +++ b/packages/realtime_client/lib/src/websocket/websocket_io.dart @@ -1,5 +1,6 @@ import 'package:web_socket_channel/io.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; +import 'package:meta/meta.dart'; /// Interval for the native WebSocket to send protocol-level ping frames. /// @@ -10,6 +11,7 @@ import 'package:web_socket_channel/web_socket_channel.dart'; /// app-level heartbeat cadence of 25 seconds. const _defaultWebSocketPingInterval = Duration(seconds: 25); +@internal WebSocketChannel createWebSocketClient( String url, Map headers, { diff --git a/packages/realtime_client/lib/src/websocket/websocket_stub.dart b/packages/realtime_client/lib/src/websocket/websocket_stub.dart index 43bccb7cc..f7bf1571c 100644 --- a/packages/realtime_client/lib/src/websocket/websocket_stub.dart +++ b/packages/realtime_client/lib/src/websocket/websocket_stub.dart @@ -1,5 +1,7 @@ import 'package:web_socket_channel/web_socket_channel.dart'; +import 'package:meta/meta.dart'; +@internal WebSocketChannel createWebSocketClient( String url, Map headers, diff --git a/packages/realtime_client/lib/src/websocket/websocket_web.dart b/packages/realtime_client/lib/src/websocket/websocket_web.dart index ab78d5586..9fb41c1c7 100644 --- a/packages/realtime_client/lib/src/websocket/websocket_web.dart +++ b/packages/realtime_client/lib/src/websocket/websocket_web.dart @@ -1,6 +1,8 @@ import 'package:web_socket_channel/html.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; +import 'package:meta/meta.dart'; +@internal WebSocketChannel createWebSocketClient( String url, Map headers, diff --git a/packages/supabase_flutter/lib/src/hot_restart_cleanup_stub.dart b/packages/supabase_flutter/lib/src/hot_restart_cleanup_stub.dart index ff87e6814..534cb8f26 100644 --- a/packages/supabase_flutter/lib/src/hot_restart_cleanup_stub.dart +++ b/packages/supabase_flutter/lib/src/hot_restart_cleanup_stub.dart @@ -1,5 +1,8 @@ import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:meta/meta.dart'; +@internal void markClientToDispose(SupabaseClient client) {} +@internal void disposePreviousClient() {} diff --git a/packages/supabase_flutter/lib/src/hot_restart_cleanup_web.dart b/packages/supabase_flutter/lib/src/hot_restart_cleanup_web.dart index 078b33038..60dd2ede5 100644 --- a/packages/supabase_flutter/lib/src/hot_restart_cleanup_web.dart +++ b/packages/supabase_flutter/lib/src/hot_restart_cleanup_web.dart @@ -2,8 +2,10 @@ import 'dart:async'; import 'dart:js_interop'; import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:meta/meta.dart'; @JS() +@internal external JSFunction? supabaseFlutterClientToDispose; /// Store a function to properly dispose the previous [SupabaseClient] in @@ -16,6 +18,7 @@ external JSFunction? supabaseFlutterClientToDispose; /// connections to be still running and causes unexpected behavior like type /// errors and the fact that the events of the old connection may still be /// logged. +@internal void markClientToDispose(SupabaseClient client) { void dispose() { unawaited( @@ -34,6 +37,7 @@ void markClientToDispose(SupabaseClient client) { /// /// This is done by calling the function stored by /// [markClientToDispose] from the js context +@internal void disposePreviousClient() { if (supabaseFlutterClientToDispose != null) { supabaseFlutterClientToDispose!.callAsFunction(); diff --git a/packages/supabase_flutter/lib/src/local_storage_stub.dart b/packages/supabase_flutter/lib/src/local_storage_stub.dart index 76a9a5d76..1a7f6c202 100644 --- a/packages/supabase_flutter/lib/src/local_storage_stub.dart +++ b/packages/supabase_flutter/lib/src/local_storage_stub.dart @@ -1,10 +1,16 @@ // coverage:ignore-file +import 'package:meta/meta.dart'; + +@internal bool hasAccessToken(String _) => throw UnimplementedError(); +@internal // ignore: avoid-unnecessary-nullable-return-type String? accessToken(String _) => throw UnimplementedError(); +@internal void removePersistedSession(String _) => throw UnimplementedError(); +@internal void persistSession(String _, String persistSessionString) => throw UnimplementedError(); diff --git a/packages/supabase_flutter/lib/src/local_storage_web.dart b/packages/supabase_flutter/lib/src/local_storage_web.dart index b24596665..66a808e78 100644 --- a/packages/supabase_flutter/lib/src/local_storage_web.dart +++ b/packages/supabase_flutter/lib/src/local_storage_web.dart @@ -1,15 +1,20 @@ import 'package:web/web.dart'; +import 'package:meta/meta.dart'; final _localStorage = window.localStorage; +@internal bool hasAccessToken(String persistSessionKey) => _localStorage.getItem(persistSessionKey) != null; +@internal String? accessToken(String persistSessionKey) => _localStorage.getItem(persistSessionKey); +@internal void removePersistedSession(String persistSessionKey) => _localStorage.removeItem(persistSessionKey); -void persistSession(String persistSessionKey, persistSessionString) => +@internal +void persistSession(String persistSessionKey, String persistSessionString) => _localStorage.setItem(persistSessionKey, persistSessionString); diff --git a/packages/supabase_flutter/lib/src/passkey/passkey_options_mapper.dart b/packages/supabase_flutter/lib/src/passkey/passkey_options_mapper.dart index 446a961a8..14f1fcdf4 100644 --- a/packages/supabase_flutter/lib/src/passkey/passkey_options_mapper.dart +++ b/packages/supabase_flutter/lib/src/passkey/passkey_options_mapper.dart @@ -1,4 +1,5 @@ import 'package:passkeys_platform_interface/types/types.dart'; +import 'package:meta/meta.dart'; /// Converts the WebAuthn registration options returned by the Supabase passkey /// API into a [RegisterRequestType] understood by the `passkeys` plugin. @@ -9,6 +10,7 @@ import 'package:passkeys_platform_interface/types/types.dart'; /// are stripping base64url padding from the challenge and credential ids (the /// plugin rejects padded values) and ensuring every excluded credential carries /// a `transports` list (the plugin requires it). +@internal RegisterRequestType passkeyRegisterRequestFromOptions( Map options, ) { @@ -35,6 +37,7 @@ RegisterRequestType passkeyRegisterRequestFromOptions( /// format, matching [AuthenticateRequestType.fromJson]. As with registration, /// the challenge and credential ids are stripped of base64url padding and every /// allowed credential is given a `transports` list. +@internal AuthenticateRequestType passkeyAuthenticateRequestFromOptions( Map options, ) { diff --git a/sdk-compliance.yaml b/sdk-compliance.yaml index 918aa29eb..5ddd77a93 100644 --- a/sdk-compliance.yaml +++ b/sdk-compliance.yaml @@ -34,20 +34,59 @@ features: status: implemented symbols: - GoTrueClient.signInWithOtp + supporting_symbols: + - OtpChannel auth.sign_in.sign_in_with_oauth: status: implemented symbols: + - GoTrueClient.getOAuthSignInUrl + - GoTrueClientSignInProvider.signInWithOAuth - OAuthProvider - OAuthProvider.OAuthProvider + supporting_symbols: + - OAuthProvider.== + - OAuthProvider.apple + - OAuthProvider.azure + - OAuthProvider.bitbucket + - OAuthProvider.discord + - OAuthProvider.facebook + - OAuthProvider.figma + - OAuthProvider.github + - OAuthProvider.gitlab + - OAuthProvider.google + - OAuthProvider.hashCode + - OAuthProvider.kakao + - OAuthProvider.keycloak + - OAuthProvider.linkedin + - OAuthProvider.linkedinOidc + - OAuthProvider.name + - OAuthProvider.notion + - OAuthProvider.slack + - OAuthProvider.slackOidc + - OAuthProvider.spotify + - OAuthProvider.toString + - OAuthProvider.twitch + - OAuthProvider.twitter + - OAuthProvider.values + - OAuthProvider.workos + - OAuthProvider.x + - OAuthProvider.zoom + - OAuthResponse + - OAuthResponse.OAuthResponse + - OAuthResponse.provider + - OAuthResponse.url auth.sign_in.sign_in_with_id_token: status: implemented symbols: - GoTrueClient.signInWithIdToken + supporting_symbols: + - GoTrueClientSignInProvider.generateRawNonce auth.sign_in.sign_in_with_sso: status: implemented note: "Split across two methods: getSSOSignInUrl returns Future (the URL) rather than the structured {url} response used by JS, and supabase_flutter's signInWithSSO launches that URL in the browser and returns Future." symbols: - GoTrueClient.getSSOSignInUrl + - GoTrueClientSignInProvider.signInWithSSO auth.sign_in.sign_in_with_web3: status: implemented note: "Callers sign the SIWE/SIWS message with their own wallet library and pass the message and signature; the SDK does not auto-detect browser wallets or build the message, since window.ethereum/window.solana have no Flutter equivalent." @@ -62,6 +101,8 @@ features: status: implemented symbols: - GoTrueClient.verifyOTP + supporting_symbols: + - OtpType auth.sign_in.exchange_code_for_session: status: implemented symbols: @@ -70,6 +111,10 @@ features: status: implemented symbols: - GoTrueClient.resend + supporting_symbols: + - ResendResponse + - ResendResponse.ResendResponse + - ResendResponse.messageId auth.sign_in.reauthenticate: status: implemented symbols: @@ -83,6 +128,7 @@ features: auth.session.get_session: status: implemented symbols: + - GoTrueClient.currentSession - GoTrueClient.getSession auth.session.set_session: status: implemented @@ -95,28 +141,111 @@ features: auth.session.get_user: status: implemented symbols: + - GoTrueClient.currentUser - GoTrueClient.getUser auth.session.update_user: status: implemented symbols: + - GoTrueClient.updateUser - UserAttributes.currentPassword + supporting_symbols: + - UserAttributes + - UserAttributes.== + - UserAttributes.UserAttributes + - UserAttributes.data + - UserAttributes.email + - UserAttributes.hashCode + - UserAttributes.nonce + - UserAttributes.password + - UserAttributes.phone + - UserAttributes.toJson auth.session.get_claims: status: implemented symbols: - GoTrueClient.getClaims + supporting_symbols: + - DecodedJwt + - DecodedJwt.DecodedJwt + - DecodedJwt.header + - DecodedJwt.payload + - DecodedJwt.raw + - DecodedJwt.signature + - GetClaimsOptions + - GetClaimsOptions.GetClaimsOptions + - GetClaimsOptions.allowExpired + - GetClaimsResponse + - GetClaimsResponse.GetClaimsResponse + - GetClaimsResponse.claims + - GetClaimsResponse.header + - GetClaimsResponse.signature + - JWK + - JWK.JWK + - JWK.[] + - JWK.alg + - JWK.fromJson + - JWK.keyOps + - JWK.kid + - JWK.kty + - JWK.publicKey + - JWK.toJson + - JWKSet + - JWKSet.JWKSet + - JWKSet.fromJson + - JWKSet.keys + - JWKSet.toJson + - JwtHeader + - JwtHeader.JwtHeader + - JwtHeader.alg + - JwtHeader.fromJson + - JwtHeader.kid + - JwtHeader.toJson + - JwtHeader.typ + - JwtPayload + - JwtPayload.JwtPayload + - JwtPayload.aud + - JwtPayload.claims + - JwtPayload.exp + - JwtPayload.fromJson + - JwtPayload.iat + - JwtPayload.iss + - JwtPayload.jti + - JwtPayload.nbf + - JwtPayload.sub + - JwtPayload.toJson + - JwtRawParts + - JwtRawParts.JwtRawParts + - JwtRawParts.header + - JwtRawParts.payload + - JwtRawParts.signature + - decodeJwt + - validateExp auth.session.sign_out: status: implemented symbols: - GoTrueClient.signOut + supporting_symbols: + - SignOutScope auth.session.auto_refresh: status: implemented symbols: - GoTrueClient.startAutoRefresh - GoTrueClient.stopAutoRefresh + supporting_symbols: + - AuthClientOptions.autoRefreshToken auth.session.subscribe_auth_events: status: implemented symbols: - GoTrueClient.onAuthStateChange + supporting_symbols: + - AuthChangeEvent + - AuthChangeEvent.AuthChangeEvent + - AuthChangeEvent.jsName + - AuthState + - AuthState.AuthState + - AuthState.event + - AuthState.fromBroadcast + - AuthState.session + - AuthState.toString auth.session.sign_out_reason: status: implemented symbols: @@ -130,6 +259,7 @@ features: symbols: - GoTrueClient.getLinkIdentityUrl - GoTrueClient.linkIdentityWithIdToken + - GoTrueClientSignInProvider.linkIdentity auth.identities.list_identities: status: implemented symbols: @@ -144,14 +274,47 @@ features: status: implemented symbols: - GoTrueMFAApi.enroll + supporting_symbols: + - AuthMFAEnrollResponse + - AuthMFAEnrollResponse.AuthMFAEnrollResponse + - AuthMFAEnrollResponse.fromJson + - AuthMFAEnrollResponse.id + - AuthMFAEnrollResponse.phone + - AuthMFAEnrollResponse.totp + - AuthMFAEnrollResponse.type + - PhoneEnrollment + - PhoneEnrollment.PhoneEnrollment + - PhoneEnrollment.fromJson + - PhoneEnrollment.phone + - TOTPEnrollment + - TOTPEnrollment.TOTPEnrollment + - TOTPEnrollment.fromJson + - TOTPEnrollment.qrCode + - TOTPEnrollment.secret + - TOTPEnrollment.uri auth.mfa.challenge: status: implemented symbols: - GoTrueMFAApi.challenge + supporting_symbols: + - AuthMFAChallengeResponse + - AuthMFAChallengeResponse.AuthMFAChallengeResponse + - AuthMFAChallengeResponse.expiresAt + - AuthMFAChallengeResponse.fromJson + - AuthMFAChallengeResponse.id auth.mfa.verify: status: implemented symbols: - GoTrueMFAApi.verify + supporting_symbols: + - AuthMFAVerifyResponse + - AuthMFAVerifyResponse.AuthMFAVerifyResponse + - AuthMFAVerifyResponse.accessToken + - AuthMFAVerifyResponse.expiresIn + - AuthMFAVerifyResponse.fromJson + - AuthMFAVerifyResponse.refreshToken + - AuthMFAVerifyResponse.tokenType + - AuthMFAVerifyResponse.user auth.mfa.challenge_and_verify: status: implemented symbols: @@ -160,25 +323,69 @@ features: status: implemented symbols: - GoTrueMFAApi.unenroll + supporting_symbols: + - AuthMFAUnenrollResponse + - AuthMFAUnenrollResponse.AuthMFAUnenrollResponse + - AuthMFAUnenrollResponse.fromJson + - AuthMFAUnenrollResponse.id auth.mfa.list_factors: status: implemented symbols: - GoTrueMFAApi.listFactors + supporting_symbols: + - AuthMFAListFactorsResponse + - AuthMFAListFactorsResponse.AuthMFAListFactorsResponse + - AuthMFAListFactorsResponse.all + - AuthMFAListFactorsResponse.phone + - AuthMFAListFactorsResponse.totp + - AuthMFAListFactorsResponse.webauthn auth.mfa.get_authenticator_assurance_level: status: implemented symbols: - AuthenticatorAssuranceLevel - GoTrueMFAApi.getAuthenticatorAssuranceLevel + supporting_symbols: + - AMREntry + - AMREntry.AMREntry + - AMREntry.fromJson + - AMREntry.method + - AMREntry.timestamp + - AMRMethod + - AMRMethod.AMRMethod + - AMRMethod.code + - AuthMFAGetAuthenticatorAssuranceLevelResponse + - AuthMFAGetAuthenticatorAssuranceLevelResponse.AuthMFAGetAuthenticatorAssuranceLevelResponse + - AuthMFAGetAuthenticatorAssuranceLevelResponse.currentAuthenticationMethods + - AuthMFAGetAuthenticatorAssuranceLevelResponse.currentLevel + - AuthMFAGetAuthenticatorAssuranceLevelResponse.nextLevel # auth — passkeys (experimental) auth.passkey.register_passkey: status: implemented symbols: - GoTrueClientPasskey.registerPasskey + - GoTruePasskeyApi.startRegistration + - GoTruePasskeyApi.verifyRegistration + supporting_symbols: + - PasskeyRegistrationOptionsResponse + - PasskeyRegistrationOptionsResponse.PasskeyRegistrationOptionsResponse + - PasskeyRegistrationOptionsResponse.challengeId + - PasskeyRegistrationOptionsResponse.expiresAt + - PasskeyRegistrationOptionsResponse.fromJson + - PasskeyRegistrationOptionsResponse.options auth.passkey.sign_in_with_passkey: status: implemented symbols: - GoTrueClientPasskey.signInWithPasskey + - GoTruePasskeyApi.startAuthentication + - GoTruePasskeyApi.verifyAuthentication + supporting_symbols: + - PasskeyAuthenticationOptionsResponse + - PasskeyAuthenticationOptionsResponse.PasskeyAuthenticationOptionsResponse + - PasskeyAuthenticationOptionsResponse.challengeId + - PasskeyAuthenticationOptionsResponse.expiresAt + - PasskeyAuthenticationOptionsResponse.fromJson + - PasskeyAuthenticationOptionsResponse.options # auth — OAuth server (Supabase acting as an OAuth provider) auth.oauth_server.get_authorization_details: @@ -273,6 +480,19 @@ features: status: implemented symbols: - GoTrueAdminApi.generateLink + supporting_symbols: + - GenerateLinkProperties + - GenerateLinkProperties.actionLink + - GenerateLinkProperties.emailOtp + - GenerateLinkProperties.fromJson + - GenerateLinkProperties.hashedToken + - GenerateLinkProperties.redirectTo + - GenerateLinkProperties.verificationType + - GenerateLinkResponse + - GenerateLinkResponse.fromJson + - GenerateLinkResponse.properties + - GenerateLinkResponse.user + - GenerateLinkType auth.admin.sign_out: status: implemented symbols: @@ -281,10 +501,21 @@ features: status: implemented symbols: - GoTrueAdminMFAApi.listFactors + supporting_symbols: + - AuthMFAAdminListFactorsResponse + - AuthMFAAdminListFactorsResponse.AuthMFAAdminListFactorsResponse + - AuthMFAAdminListFactorsResponse.factors + - AuthMFAAdminListFactorsResponse.fromJson + - GoTrueAdminApi.mfa auth.admin.delete_mfa_factor: status: implemented symbols: - GoTrueAdminMFAApi.deleteFactor + supporting_symbols: + - AuthMFAAdminDeleteFactorResponse + - AuthMFAAdminDeleteFactorResponse.AuthMFAAdminDeleteFactorResponse + - AuthMFAAdminDeleteFactorResponse.fromJson + - AuthMFAAdminDeleteFactorResponse.id auth.admin.create_provider: status: implemented symbols: @@ -399,6 +630,16 @@ features: status: implemented symbols: - GoTrueAdminOAuthApi.createClient + supporting_symbols: + - CreateOAuthClientParams + - CreateOAuthClientParams.CreateOAuthClientParams + - CreateOAuthClientParams.clientName + - CreateOAuthClientParams.clientUri + - CreateOAuthClientParams.grantTypes + - CreateOAuthClientParams.redirectUris + - CreateOAuthClientParams.responseTypes + - CreateOAuthClientParams.scope + - CreateOAuthClientParams.toJson auth.oauth_admin.get_client: status: implemented symbols: @@ -407,6 +648,16 @@ features: status: implemented symbols: - GoTrueAdminOAuthApi.updateClient + supporting_symbols: + - UpdateOAuthClientParams + - UpdateOAuthClientParams.UpdateOAuthClientParams + - UpdateOAuthClientParams.clientName + - UpdateOAuthClientParams.clientUri + - UpdateOAuthClientParams.grantTypes + - UpdateOAuthClientParams.redirectUris + - UpdateOAuthClientParams.responseTypes + - UpdateOAuthClientParams.scope + - UpdateOAuthClientParams.toJson auth.oauth_admin.delete_client: status: implemented symbols: @@ -415,6 +666,8 @@ features: status: implemented symbols: - GoTrueAdminOAuthApi.listClients + supporting_symbols: + - GoTrueAdminApi.oauth auth.oauth_admin.regenerate_client_secret: status: implemented symbols: @@ -425,6 +678,8 @@ features: status: implemented symbols: - GoTrueAdminPasskeyApi.listPasskeys + supporting_symbols: + - GoTrueAdminApi.passkey auth.passkey_admin.delete_passkey: status: implemented symbols: @@ -435,6 +690,7 @@ features: status: implemented symbols: - PostgrestClient.from + - SupabaseClient.from database.query.select: status: implemented symbols: @@ -444,10 +700,24 @@ features: note: "head and count are applied via type-safe chaining (.head()/.count()) rather than inline call options, which is the idiomatic Dart builder pattern; inline options cannot preserve the distinct return types." symbols: - PostgrestClient.rpc + - SupabaseClient.rpc + supporting_symbols: + - PostgrestQueryBuilder.count + - PostgrestRpcBuilder.rpc + - PostgrestTransformBuilder.count + - PostgrestTransformBuilder.head database.query.schema_selection: status: implemented symbols: - PostgrestClient.schema + - SupabaseClient.schema + supporting_symbols: + - PostgrestClientOptions.schema + - SupabaseQuerySchema + - SupabaseQuerySchema.SupabaseQuerySchema + - SupabaseQuerySchema.from + - SupabaseQuerySchema.rpc + - SupabaseQuerySchema.schema # database — mutate database.mutate.insert: @@ -595,6 +865,8 @@ features: status: implemented symbols: - PostgrestFilterBuilder.textSearch + supporting_symbols: + - TextSearchType database.using_filters.regex: status: implemented symbols: @@ -653,6 +925,7 @@ features: status: implemented symbols: - ExplainFormat + - PostgrestTransformBuilder.explain database.using_modifiers.dry_run: status: implemented symbols: @@ -678,11 +951,17 @@ features: - PostgrestClientOptions.retryableStatusCodes - PostgrestBuilder.retry - PostgrestClient.defaultRetryableStatusCodes + supporting_symbols: + - PostgrestFilterBuilder.retry + - PostgrestQueryBuilder.retry + - PostgrestTransformBuilder.retry database.configuration.request_timeout: status: implemented symbols: - PostgrestClient.requestTimeout - PostgrestClientOptions.requestTimeout + supporting_symbols: + - PostgrestBuilder.timeout # storage — file buckets storage.file_buckets.access_bucket: @@ -694,6 +973,14 @@ features: symbols: - StorageFileApi.upload - StorageFileApi.uploadBinary + supporting_symbols: + - File + - FileOptions + - FileOptions.FileOptions + - FileOptions.cacheControl + - FileOptions.contentType + - FileOptions.headers + - FileOptions.upsert storage.file_buckets.upload_with_metadata: status: implemented symbols: @@ -716,6 +1003,15 @@ features: status: implemented symbols: - TransformOptions + supporting_symbols: + - RequestImageFormat + - ResizeMode + - TransformOptions.TransformOptions + - TransformOptions.format + - TransformOptions.height + - TransformOptions.quality + - TransformOptions.resize + - TransformOptions.width storage.file_buckets.download_as_stream: status: implemented note: "Exposed as a dedicated downloadStream method returning a lazy Stream rather than an asStream() builder off download(); the request is sent on listen and a non-success status surfaces as a StorageException on the stream." @@ -728,6 +1024,17 @@ features: - StorageFileApi.list - StorageFileApi.listPaginated supporting_symbols: + - FileObject + - FileObject.FileObject + - FileObject.bucketId + - FileObject.buckets + - FileObject.createdAt + - FileObject.fromJson + - FileObject.id + - FileObject.metadata + - FileObject.name + - FileObject.owner + - FileObject.updatedAt - FileSort - FileSort.FileSort - FileSort.column @@ -812,14 +1119,39 @@ features: - DownloadBehavior - DownloadBehavior.named - DownloadBehavior.withOriginalName + - StorageFileApi.createSignedUrl storage.file_buckets.create_signed_urls: status: implemented symbols: - StorageFileApi.createSignedUrls + supporting_symbols: + - SignedUrl + - SignedUrl.== + - SignedUrl.SignedUrl + - SignedUrl.copyWith + - SignedUrl.hashCode + - SignedUrl.path + - SignedUrl.signedUrl + - SignedUrl.toString + - SignedUrlFailure + - SignedUrlFailure.SignedUrlFailure + - SignedUrlFailure.error + - SignedUrlFailure.toString + - SignedUrlResult + - SignedUrlResult.SignedUrlResult + - SignedUrlResult.path + - SignedUrlSuccess + - SignedUrlSuccess.SignedUrlSuccess + - SignedUrlSuccess.signedUrl + - SignedUrlSuccess.toString storage.file_buckets.create_signed_upload_url: status: implemented symbols: - StorageFileApi.createSignedUploadUrl + supporting_symbols: + - SignedUploadURLResponse + - SignedUploadURLResponse.SignedUploadURLResponse + - SignedUploadURLResponse.token storage.file_buckets.get_public_url: status: implemented symbols: @@ -836,6 +1168,22 @@ features: status: implemented symbols: - StorageFileApi.info + supporting_symbols: + - FileObjectV2 + - FileObjectV2.FileObjectV2 + - FileObjectV2.bucketId + - FileObjectV2.cacheControl + - FileObjectV2.contentType + - FileObjectV2.createdAt + - FileObjectV2.etag + - FileObjectV2.fromJson + - FileObjectV2.id + - FileObjectV2.lastModified + - FileObjectV2.metadata + - FileObjectV2.name + - FileObjectV2.size + - FileObjectV2.updatedAt + - FileObjectV2.version storage.file_buckets.create_file_bucket: status: implemented symbols: @@ -1248,11 +1596,26 @@ features: symbols: - IcebergRestCatalog.tableExists + # storage — errors + storage.errors.error_codes: + status: implemented + symbols: + - StorageException.error + supporting_symbols: + - StorageException + - StorageException.StorageException + - StorageException.fromJson + - StorageException.message + - StorageException.statusCode + - StorageException.toString + # realtime — channel realtime.channel.subscribe: status: implemented symbols: - RealtimeChannel.subscribe + supporting_symbols: + - RealtimeSubscribeStatus realtime.channel.unsubscribe: status: implemented symbols: @@ -1261,6 +1624,8 @@ features: status: implemented symbols: - RealtimeChannel.sendBroadcastMessage + supporting_symbols: + - ChannelResponse realtime.channel.broadcast_http: status: implemented note: "httpSend posts to the legacy /api/broadcast endpoint with a messages array and returns Future, not the newer per-channel endpoint returning {success}." @@ -1272,35 +1637,56 @@ features: status: implemented symbols: - RealtimeClient.channel + - SupabaseClient.channel realtime.client.connect: status: implemented symbols: - RealtimeChannel.subscribe - RealtimeClient.connection - RealtimeClient.onConnectionMessage + supporting_symbols: + - RealtimeClient.onError + - RealtimeClient.onMessage + - RealtimeClient.onOpen realtime.client.disconnect: status: implemented symbols: - Constants.defaultConnectionCloseTimeout - RealtimeClient.connectionCloseTimeout + - RealtimeClient.disconnect - RealtimeClientOptions.connectionCloseTimeout + supporting_symbols: + - Constants.wsCloseNormal + - RealtimeClient.onClose + - RealtimeCloseEvent + - RealtimeCloseEvent.RealtimeCloseEvent + - RealtimeCloseEvent.code + - RealtimeCloseEvent.reason + - RealtimeCloseEvent.toString realtime.client.connection_state: status: implemented symbols: - RealtimeClient.connectionState - SocketState + supporting_symbols: + - RealtimeClient.isConnected realtime.client.get_channels: status: implemented symbols: - RealtimeClient.getChannels + - SupabaseClient.getChannels + supporting_symbols: + - RealtimeClient.channels realtime.client.remove_channel: status: implemented symbols: - RealtimeClient.removeChannel + - SupabaseClient.removeChannel realtime.client.remove_all_channels: status: implemented symbols: - RealtimeClient.removeAllChannels + - SupabaseClient.removeAllChannels realtime.client.listen_heartbeats: status: implemented symbols: @@ -1310,6 +1696,8 @@ features: status: implemented symbols: - RealtimeClient.setAuth + supporting_symbols: + - RealtimeClient.accessToken # realtime — subscriptions realtime.subscriptions.broadcast: @@ -1319,8 +1707,9 @@ features: realtime.subscriptions.postgres_changes: status: implemented symbols: - - ChannelFilter.select - PostgresType + - RealtimeChannel.onPostgresChanges + - RealtimeChannel.onSystemEvents - RealtimeChannelConfig.replicationReady - RealtimeSystemPayload - RealtimeSystemPayload.RealtimeSystemPayload @@ -1330,17 +1719,81 @@ features: - RealtimeSystemPayload.message - RealtimeSystemPayload.status - RealtimeSystemPayload.toString + supporting_symbols: + - PostgresChangeEvent + - PostgresChangePayload + - PostgresChangePayload.== + - PostgresChangePayload.PostgresChangePayload + - PostgresChangePayload.commitTimestamp + - PostgresChangePayload.errors + - PostgresChangePayload.eventType + - PostgresChangePayload.fromPayload + - PostgresChangePayload.hashCode + - PostgresChangePayload.newRecord + - PostgresChangePayload.oldRecord + - PostgresChangePayload.schema + - PostgresChangePayload.table + - PostgresChangePayload.toString + - PostgresColumn + - PostgresColumn.PostgresColumn + - PostgresColumn.flags + - PostgresColumn.name + - PostgresColumn.type + - PostgresColumn.typeModifier realtime.subscriptions.postgres_changes_filter: status: implemented symbols: - PostgresChangeFilter.negate - PostgresChangeFilterType.token + supporting_symbols: + - PostgresChangeFilter + - PostgresChangeFilter.PostgresChangeFilter + - PostgresChangeFilter.column + - PostgresChangeFilter.toString + - PostgresChangeFilter.type + - PostgresChangeFilter.value + - PostgresChangeFilterType realtime.subscriptions.subscribe_presence: status: implemented symbols: - RealtimeChannel.onPresenceSync - RealtimeChannel.onPresenceJoin - RealtimeChannel.onPresenceLeave + supporting_symbols: + - PresenceChooser + - PresenceEvent + - PresenceEvents + - PresenceEvents.PresenceEvents + - PresenceEvents.diff + - PresenceEvents.state + - PresenceOnJoinCallback + - PresenceOnLeaveCallback + - PresenceOpts + - PresenceOpts.PresenceOpts + - PresenceOpts.events + - RealtimePresenceJoinPayload + - RealtimePresenceJoinPayload.RealtimePresenceJoinPayload + - RealtimePresenceJoinPayload.currentPresences + - RealtimePresenceJoinPayload.fromJson + - RealtimePresenceJoinPayload.key + - RealtimePresenceJoinPayload.newPresences + - RealtimePresenceJoinPayload.toString + - RealtimePresenceLeavePayload + - RealtimePresenceLeavePayload.RealtimePresenceLeavePayload + - RealtimePresenceLeavePayload.currentPresences + - RealtimePresenceLeavePayload.fromJson + - RealtimePresenceLeavePayload.key + - RealtimePresenceLeavePayload.leftPresences + - RealtimePresenceLeavePayload.toString + - RealtimePresencePayload + - RealtimePresencePayload.RealtimePresencePayload + - RealtimePresencePayload.event + - RealtimePresencePayload.fromJson + - RealtimePresencePayload.toString + - RealtimePresenceSyncPayload + - RealtimePresenceSyncPayload.RealtimePresenceSyncPayload + - RealtimePresenceSyncPayload.fromJson + - RealtimePresenceSyncPayload.toString realtime.subscriptions.private_channel: status: implemented symbols: @@ -1357,6 +1810,12 @@ features: status: implemented symbols: - RealtimeChannelConfig.replay + supporting_symbols: + - ReplayOption + - ReplayOption.ReplayOption + - ReplayOption.limit + - ReplayOption.since + - ReplayOption.toMap # realtime — presence realtime.presence.track: @@ -1371,6 +1830,34 @@ features: status: implemented symbols: - RealtimeChannel.presenceState + supporting_symbols: + - Presence + - Presence.Presence + - Presence.deepClone + - Presence.fromJson + - Presence.payload + - Presence.presenceRef + - Presence.toString + - RealtimeChannel.presence + - RealtimePresence + - RealtimePresence.RealtimePresence + - RealtimePresence.caller + - RealtimePresence.channel + - RealtimePresence.inPendingSyncState + - RealtimePresence.joinRef + - RealtimePresence.list + - RealtimePresence.onJoin + - RealtimePresence.onLeave + - RealtimePresence.onSync + - RealtimePresence.pendingDiffs + - RealtimePresence.state + - RealtimePresence.syncDiff + - RealtimePresence.syncState + - SinglePresenceState + - SinglePresenceState.SinglePresenceState + - SinglePresenceState.key + - SinglePresenceState.presences + - SinglePresenceState.toString realtime.presence.presence_key: status: implemented symbols: @@ -1381,14 +1868,23 @@ features: status: implemented symbols: - RealtimeClientOptions.transport + supporting_symbols: + - RealtimeClient.transport + - WebSocketTransport realtime.configuration.reconnect_backoff: status: implemented symbols: - RealtimeClient.reconnectAfterMs + supporting_symbols: + - RealtimeClient.reconnectTimer realtime.configuration.heartbeat_interval: status: implemented symbols: - RealtimeClient.heartbeatIntervalMs + supporting_symbols: + - Constants.defaultHeartbeatIntervalMs + - RealtimeClient.heartbeatTimer + - RealtimeClient.pendingHeartbeatRef realtime.configuration.access_token_callback: status: implemented note: "On connect the access token is resolved before the send buffer is flushed; buffered channel join payloads are patched with the token and re-sent so subscriptions authenticate correctly when the token resolves asynchronously (e.g. read from async storage)." @@ -1398,11 +1894,21 @@ features: status: implemented symbols: - RealtimeClient.logger + supporting_symbols: + - RealtimeClient.log + - RealtimeClientOptions.logLevel + - RealtimeLogLevel realtime.configuration.binary_protocol: status: implemented symbols: - RealtimeClient.encode - RealtimeClient.decode + supporting_symbols: + - RealtimeDecode + - RealtimeEncode + - RealtimeProtocolVersion + - RealtimeProtocolVersion.RealtimeProtocolVersion + - RealtimeProtocolVersion.vsn realtime.configuration.deferred_disconnect: status: implemented symbols: @@ -1418,6 +1924,10 @@ features: - FunctionsRelayException.FunctionsRelayException - FunctionsHttpException - FunctionsHttpException.FunctionsHttpException + supporting_symbols: + - FunctionResponse + - FunctionResponse.FunctionResponse + - FunctionResponse.status functions.invocation.set_auth_token: status: implemented symbols: @@ -1464,15 +1974,58 @@ features: symbols: - FlutterAuthClientOptions.detectSessionInUri - FlutterAuthClientOptions.detectSessionInUriPredicate + - GoTrueClient.getSessionFromUrl + supporting_symbols: + - AuthSessionUrlResponse + - AuthSessionUrlResponse.AuthSessionUrlResponse + - AuthSessionUrlResponse.redirectType + - AuthSessionUrlResponse.session client.session_management.custom_storage: status: implemented symbols: - GotrueAsyncStorage - LocalStorage + supporting_symbols: + - AuthClientOptions.pkceAsyncStorage + - EmptyLocalStorage + - EmptyLocalStorage.EmptyLocalStorage + - EmptyLocalStorage.accessToken + - EmptyLocalStorage.hasAccessToken + - EmptyLocalStorage.initialize + - EmptyLocalStorage.persistSession + - EmptyLocalStorage.removePersistedSession + - FlutterAuthClientOptions.localStorage + - GotrueAsyncStorage.GotrueAsyncStorage + - GotrueAsyncStorage.getItem + - GotrueAsyncStorage.removeItem + - GotrueAsyncStorage.setItem + - LocalStorage.LocalStorage + - LocalStorage.accessToken + - LocalStorage.hasAccessToken + - LocalStorage.initialize + - LocalStorage.persistSession + - LocalStorage.removePersistedSession + - SharedPreferencesGotrueAsyncStorage + - SharedPreferencesGotrueAsyncStorage.SharedPreferencesGotrueAsyncStorage + - SharedPreferencesGotrueAsyncStorage.getItem + - SharedPreferencesGotrueAsyncStorage.removeItem + - SharedPreferencesGotrueAsyncStorage.setItem + - SharedPreferencesLocalStorage + - SharedPreferencesLocalStorage.SharedPreferencesLocalStorage + - SharedPreferencesLocalStorage.accessToken + - SharedPreferencesLocalStorage.hasAccessToken + - SharedPreferencesLocalStorage.initialize + - SharedPreferencesLocalStorage.persistSession + - SharedPreferencesLocalStorage.removePersistedSession client.session_management.persist_session: status: implemented symbols: - FlutterAuthClientOptions.persistSession + - GoTrueClient.recoverSession + - GoTrueClient.setInitialSession + supporting_symbols: + - SharedPreferencesLocalStorage.persistSessionKey + - supabasePersistSessionKey client.request_configuration.custom_http_client: status: implemented symbols: @@ -1482,6 +2035,22 @@ features: status: implemented symbols: - SupabaseClient.headers + supporting_symbols: + - Constants.defaultHeaders + - FunctionsClient.headers + - GoTrueClient.headers + - PostgrestBuilder.setHeader + - PostgrestClient.headers + - PostgrestFilterBuilder.setHeader + - PostgrestQueryBuilder.setHeader + - PostgrestTransformBuilder.setHeader + - RawPostgrestBuilder.setHeader + - RealtimeClient.headers + - ResponsePostgrestBuilder.setHeader + - StorageBucketApi.headers + - StorageFileApi.headers + - StorageFileApi.setHeader + - SupabaseStorageClient.setHeader client.observability.trace_propagation: status: implemented note: "Opt-in W3C trace context propagation (traceparent/tracestate/baggage) to Supabase hosts only, with sampling-decision respect. The active context is supplied through a traceContextProvider callback, the idiomatic Dart equivalent of supabase-js's automatic extraction from the OpenTelemetry global API, since Dart has no ubiquitous ambient trace context." @@ -1498,14 +2067,148 @@ features: - TracePropagationOptions.respectSamplingDecision - TracePropagationOptions.traceContextProvider -# Public API the matrix accounts for but that no single capability owns: the -# Iceberg schema and type model, reachable from several features' entry points, -# and the exception hierarchy, reachable from none because it is thrown rather -# than passed. Every catalog operation now has a feature id of its own. +# Public API the matrix accounts for but that no single capability owns: shared +# domain models, the exception hierarchies, the client and sub-API handles that +# gate whole areas, and surface the canonical registry has no id for. supporting_symbols: - AccessDelegation - AccessDelegation.AccessDelegation - AccessDelegation.value + - AdminUserAttributes + - AdminUserAttributes.== + - AdminUserAttributes.AdminUserAttributes + - AdminUserAttributes.appMetadata + - AdminUserAttributes.banDuration + - AdminUserAttributes.emailConfirm + - AdminUserAttributes.hashCode + - AdminUserAttributes.phoneConfirm + - AdminUserAttributes.toJson + - AdminUserAttributes.userMetadata + - ApiVersions + - ApiVersions.v20240101 + - AuthApiException + - AuthApiException.AuthApiException + - AuthApiException.toString + - AuthClientOptions + - AuthClientOptions.AuthClientOptions + - AuthException + - AuthException.== + - AuthException.AuthException + - AuthException.code + - AuthException.hashCode + - AuthException.message + - AuthException.statusCode + - AuthException.toString + - AuthInvalidJwtException + - AuthInvalidJwtException.AuthInvalidJwtException + - AuthInvalidJwtException.toString + - AuthPKCEGrantCodeExchangeError + - AuthPKCEGrantCodeExchangeError.AuthPKCEGrantCodeExchangeError + - AuthResponse + - AuthResponse.AuthResponse + - AuthResponse.fromJson + - AuthResponse.session + - AuthResponse.user + - AuthRetryableFetchException + - AuthRetryableFetchException.AuthRetryableFetchException + - AuthRetryableFetchException.toString + - AuthSessionMissingException + - AuthSessionMissingException.AuthSessionMissingException + - AuthSessionMissingException.toString + - AuthUnknownException + - AuthUnknownException.AuthUnknownException + - AuthUnknownException.originalError + - AuthUnknownException.toString + - AuthWeakPasswordException + - AuthWeakPasswordException.AuthWeakPasswordException + - AuthWeakPasswordException.reasons + - AuthWeakPasswordException.toString + - Binding + - Binding.Binding + - Binding.callback + - Binding.copyWith + - Binding.filter + - Binding.id + - Binding.type + - BindingCallback + - BroadcastChannel + - Bucket + - Bucket.Bucket + - Bucket.allowedMimeTypes + - Bucket.createdAt + - Bucket.fileSizeLimit + - Bucket.fromJson + - Bucket.id + - Bucket.name + - Bucket.owner + - Bucket.public + - Bucket.updatedAt + - BucketOptions + - BucketOptions.BucketOptions + - BucketOptions.allowedMimeTypes + - BucketOptions.fileSizeLimit + - BucketOptions.public + - Constants + - Constants.defaultTimeout + - CountOption + - ErrorCode + - ErrorCode.ErrorCode + - ErrorCode.code + - ErrorCode.fromCode + - Factor + - Factor.== + - Factor.Factor + - Factor.createdAt + - Factor.factorType + - Factor.friendlyName + - Factor.fromJson + - Factor.hashCode + - Factor.id + - Factor.status + - Factor.toJson + - Factor.toString + - Factor.updatedAt + - FactorStatus + - FactorType + - FlutterAuthClientOptions + - FlutterAuthClientOptions.FlutterAuthClientOptions + - FlutterAuthClientOptions.copyWith + - FunctionException + - FunctionException.FunctionException + - FunctionException.details + - FunctionException.reasonPhrase + - FunctionException.status + - FunctionException.toString + - FunctionsClient + - FunctionsClient.FunctionsClient + - FunctionsClient.dispose + - FunctionsClientOptions + - FunctionsClientOptions.FunctionsClientOptions + - GoTrueAdminApi + - GoTrueAdminApi.GoTrueAdminApi + - GoTrueAdminMFAApi + - GoTrueAdminMFAApi.GoTrueAdminMFAApi + - GoTrueAdminOAuthApi + - GoTrueAdminOAuthApi.GoTrueAdminOAuthApi + - GoTrueAdminPasskeyApi + - GoTrueAdminPasskeyApi.GoTrueAdminPasskeyApi + - GoTrueClient + - GoTrueClient.GoTrueClient + - GoTrueClient.admin + - GoTrueClient.dispose + - GoTrueClient.mfa + - GoTrueClient.passkey + - GoTrueClientPasskey + - GoTrueClientSignInProvider + - GoTrueMFAApi + - GoTrueMFAApi.GoTrueMFAApi + - GoTruePasskeyApi + - GoTruePasskeyApi.GoTruePasskeyApi + - GoTruePasskeyApi.delete + - GoTruePasskeyApi.list + - GoTruePasskeyApi.update + - Headers + - HttpMethod.value - IcebergAuthenticationTimeoutException - IcebergAuthenticationTimeoutException.IcebergAuthenticationTimeoutException - IcebergCommitStateUnknownException @@ -1563,6 +2266,28 @@ supporting_symbols: - NullOrder.NullOrder - NullOrder.fromValue - NullOrder.value + - OAuthClient + - OAuthClient.OAuthClient + - OAuthClient.clientId + - OAuthClient.clientName + - OAuthClient.clientSecret + - OAuthClient.clientType + - OAuthClient.clientUri + - OAuthClient.createdAt + - OAuthClient.fromJson + - OAuthClient.grantTypes + - OAuthClient.redirectUris + - OAuthClient.registrationType + - OAuthClient.responseTypes + - OAuthClient.scope + - OAuthClient.tokenEndpointAuthMethod + - OAuthClient.updatedAt + - OAuthClientGrantType + - OAuthClientRegistrationType + - OAuthClientRegistrationType.fromString + - OAuthClientResponseType + - OAuthClientType + - OAuthClientType.fromString - PartitionField - PartitionField.PartitionField - PartitionField.fieldId @@ -1577,10 +2302,117 @@ supporting_symbols: - PartitionSpec.fromJson - PartitionSpec.specId - PartitionSpec.toJson + - Passkey + - Passkey.== + - Passkey.Passkey + - Passkey.createdAt + - Passkey.friendlyName + - Passkey.fromJson + - Passkey.hashCode + - Passkey.id + - Passkey.lastUsedAt + - Passkey.toJson + - PostgrestBuilder + - PostgrestBuilder.PostgrestBuilder + - PostgrestBuilder.appendSearchParams + - PostgrestBuilder.asStream + - PostgrestBuilder.catchError + - PostgrestBuilder.overrideSearchParams + - PostgrestBuilder.then + - PostgrestBuilder.whenComplete + - PostgrestClient + - PostgrestClient.PostgrestClient + - PostgrestClient.dispose + - PostgrestClient.url + - PostgrestClientOptions + - PostgrestClientOptions.PostgrestClientOptions + - PostgrestConverter + - PostgrestException + - PostgrestException.PostgrestException + - PostgrestException.code + - PostgrestException.details + - PostgrestException.fromJson + - PostgrestException.hint + - PostgrestException.message + - PostgrestException.toJson + - PostgrestException.toString + - PostgrestFilterBuilder + - PostgrestFilterBuilder.PostgrestFilterBuilder + - PostgrestFilterBuilder.copyWithUrl + - PostgrestList + - PostgrestListResponse + - PostgrestMap + - PostgrestMapResponse + - PostgrestQueryBuilder + - PostgrestQueryBuilder.PostgrestQueryBuilder + - PostgrestResponse + - PostgrestResponse.PostgrestResponse + - PostgrestResponse.count + - PostgrestResponse.data + - PostgrestResponse.fromJson + - PostgrestResponse.toJson + - PostgrestResponse.toString + - PostgrestRpcBuilder + - PostgrestRpcBuilder.PostgrestRpcBuilder + - PostgrestTransformBuilder + - PostgrestTransformBuilder.PostgrestTransformBuilder + - PostgrestTransformBuilder.copyWithUrl - PrimitiveType - PrimitiveType.PrimitiveType - PrimitiveType.name - PrimitiveType.toJson + - RawPostgrestBuilder + - RawPostgrestBuilder.RawPostgrestBuilder + - RawPostgrestBuilder.withConverter + - RealtimeChannel + - RealtimeChannel.RealtimeChannel + - RealtimeChannel.canPush + - RealtimeChannel.trigger + - RealtimeChannelConfig + - RealtimeChannelConfig.RealtimeChannelConfig + - RealtimeChannelConfig.enabled + - RealtimeChannelConfig.toMap + - RealtimeClient + - RealtimeClient.RealtimeClient + - RealtimeClient.endPoint + - RealtimeClient.endPointURL + - RealtimeClient.makeRef + - RealtimeClient.params + - RealtimeClient.push + - RealtimeClient.ref + - RealtimeClient.sendBuffer + - RealtimeClient.stateChangeCallbacks + - RealtimeClient.timeout + - RealtimeClient.version + - RealtimeClientOptions + - RealtimeClientOptions.RealtimeClientOptions + - RealtimeClientOptions.timeout + - RealtimeConstants + - RealtimeSubscribeException + - RealtimeSubscribeException.RealtimeSubscribeException + - RealtimeSubscribeException.details + - RealtimeSubscribeException.status + - RealtimeSubscribeException.toString + - ResponsePostgrestBuilder + - ResponsePostgrestBuilder.ResponsePostgrestBuilder + - ResponsePostgrestBuilder.withConverter + - Session + - Session.== + - Session.Session + - Session.accessToken + - Session.copyWith + - Session.expiresAt + - Session.expiresIn + - Session.fromJson + - Session.hashCode + - Session.isExpired + - Session.providerRefreshToken + - Session.providerToken + - Session.refreshToken + - Session.toJson + - Session.toString + - Session.tokenType + - Session.user - Snapshot - Snapshot.Snapshot - Snapshot.fromJson @@ -1623,17 +2455,60 @@ supporting_symbols: - SortOrder.fromJson - SortOrder.orderId - SortOrder.toJson + - StorageBucketApi + - StorageBucketApi.StorageBucketApi + - StorageBucketApi.url + - StorageClientOptions + - StorageClientOptions.StorageClientOptions + - StorageClientOptions.retryAttempts + - StorageClientOptions.useNewHostname - StorageCredential - StorageCredential.StorageCredential - StorageCredential.config - StorageCredential.fromJson - StorageCredential.prefix + - StorageFileApi + - StorageFileApi.StorageFileApi + - StorageFileApi.bucketId + - StorageFileApi.url + - StorageRetryController + - StorageRetryController.StorageRetryController + - StorageRetryController.cancel + - StorageRetryController.cancelled - StructType - StructType.StructType - StructType.fields - StructType.fromJson - StructType.toJson + - Supabase + - Supabase.client + - Supabase.dispose + - Supabase.initialize + - Supabase.instance + - Supabase.isInitialized + - SupabaseClient + - SupabaseClient.SupabaseClient + - SupabaseClient.auth + - SupabaseClient.dispose + - SupabaseClient.functions + - SupabaseClient.realtime + - SupabaseClient.rest + - SupabaseClient.storage + - SupabaseQueryBuilder + - SupabaseQueryBuilder.SupabaseQueryBuilder + - SupabaseQueryBuilder.stream + - SupabaseStorageClient + - SupabaseStorageClient.SupabaseStorageClient - SupabaseStorageClient.analyticsCatalog + - SupabaseStreamBuilder + - SupabaseStreamBuilder.SupabaseStreamBuilder + - SupabaseStreamBuilder.asyncExpand + - SupabaseStreamBuilder.asyncMap + - SupabaseStreamBuilder.isBroadcast + - SupabaseStreamBuilder.listen + - SupabaseStreamEvent + - SupabaseStreamFilterBuilder + - SupabaseStreamFilterBuilder.SupabaseStreamFilterBuilder - TableField - TableField.TableField - TableField.doc @@ -1678,3 +2553,57 @@ supporting_symbols: - TableSchema.identifierFieldIds - TableSchema.schemaId - TableSchema.toJson + - User + - User.== + - User.User + - User.actionLink + - User.appMetadata + - User.aud + - User.confirmationSentAt + - User.createdAt + - User.email + - User.emailChangeSentAt + - User.emailConfirmedAt + - User.factors + - User.fromJson + - User.hashCode + - User.id + - User.identities + - User.invitedAt + - User.isAnonymous + - User.lastSignInAt + - User.newEmail + - User.phone + - User.phoneConfirmedAt + - User.recoverySentAt + - User.role + - User.toJson + - User.toString + - User.updatedAt + - User.userMetadata + - UserIdentity + - UserIdentity.== + - UserIdentity.UserIdentity + - UserIdentity.copyWith + - UserIdentity.createdAt + - UserIdentity.fromMap + - UserIdentity.hashCode + - UserIdentity.id + - UserIdentity.identityData + - UserIdentity.identityId + - UserIdentity.lastSignInAt + - UserIdentity.provider + - UserIdentity.toJson + - UserIdentity.toString + - UserIdentity.updatedAt + - UserIdentity.userId + - UserResponse + - UserResponse.fromJson + - UserResponse.user + - YAJsonIsolate + - YAJsonIsolate.YAJsonIsolate + - YAJsonIsolate.debugName + - YAJsonIsolate.decode + - YAJsonIsolate.dispose + - YAJsonIsolate.encode + - YAJsonIsolate.initialize