supa_architecture library

Classes

AbstractIdFilter<T>
This class defines filter operations for ID (primary key, foreign key) fields that is in int type
AbstractNumberFilter<T>
This class defines filter operations for all Dart"s number types (including int, double or generic num)
AdminType
This class is used to represent the admin type. This can be used as a EnumModel.
AdminTypeFilter
This class is used to represent the admin type filter. This is just a wrapper for the EnumModelFilter.
ApiClient
A comprehensive API client for handling HTTP requests, file uploads, and downloads.
AppImage
A widget that displays an image from a file or URL path with automatic authentication and fallback placeholder support.
AppUser
A class representing an application user.
AppUserFilter
A class representing a filter for application users.
AppUserGroup
AppUserGroupFilter
AppUserInfo
AppUserSite
AppUserSubSystemMapping
AppUserSwitchEmailEvent
Toggles the user's email notification preference.
AppUserSwitchNotificationEvent
Toggles the user's push notification preference.
Attachment
An abstract class representing an attachment model.
AuthenticationBloc
Manages user authentication flows and state transitions.
AuthenticationErrorEvent
Reports an authentication error.
AuthenticationErrorState
State representing an authentication error.
AuthenticationEvent
Base class for all authentication-related events.
AuthenticationInitializeEvent
Initializes the authentication flow and resets to the login screen.
AuthenticationInitialState
Initial state before any authentication has been attempted.
AuthenticationLogoutState
State indicating the user has logged out.
AuthenticationProcessingEvent
Indicates that an authentication action is currently being processed.
AuthenticationProcessingState
State indicating an authentication operation is in progress.
AuthenticationState
Base class for all authentication states.
BaseRepository<T extends JsonModel, TFilter extends DataFilter>
An abstract class that extends ApiClient to provide base CRUD operations for repositories.
CaptureException
Manually captures and reports an exception.
CarbonButton
A stateless widget that represents a button with an optional loading indicator, icon, and expandable feature.
ChangePasswordForm
A reactive form for changing a user's password.
CommentReaction
ConfirmationDialog
A customizable confirmation dialog widget with icon, title, content, and action buttons.
CurrentTenant
DataFilter
Base class for creating data filters.
DateFilter
This class defines filter operations for DateTime type
DateTimeFormatsVN
Constants for formatting dates and times in the Vietnamese locale.
DateType
DidMountedCheckInitialMessage
Event to check for notifications that launched the app.
DidReceivedDataOnlyNotificationEvent
Event triggered when a data-only FCM message is received in the foreground.
DidReceivedNotificationEvent
Event triggered when a push notification is received in the foreground.
DidResetNotificationEvent
Event to reset notification state to initial.
DidUserOpenedDataOnlyNotificationEvent
Event triggered when user opens a data-only FCM message.
DidUserOpenedNotificationEvent
Event triggered when user taps on a notification.
DioImageProvider
A custom ImageProvider implementation that uses Dio to fetch images from network URLs with automatic fallback to a local asset image when network requests fail.
Discussion
DiscussionFilter
DoubleFilter
A filter class for double fields.
EmptyComponent
A widget that displays an empty state with an image, title, and optional subtitle.
EntityDetailNavigator<T>
An abstract navigator for handling navigation to entity detail pages.
EnumModel
A class representing an enumerated model.
EnumModelFilter
EnumStatusBadge
A badge widget that displays status information from an EnumModel.
ErrorCaptured
State indicating an error has been successfully captured and reported.
ErrorHandlingBloc
Bloc that handles error capturing and reporting to Firebase Crashlytics and Sentry.
ErrorHandlingEvent
Base class for all error handling events.
ErrorHandlingFailed
State indicating error capture or reporting failed.
ErrorHandlingInitial
Initial state before error handling has been initialized.
ErrorHandlingInitialized
State indicating error handling systems have been configured.
ErrorHandlingState
Base class for all error handling states.
FieldLabel
A stateless widget that displays a field label.
File
A class representing a file model.
FileFilter
A class representing a filter for files.
FileHandler
A platform-agnostic service for downloading and opening files.
FileService
A service class for handling file-related operations.
FilterField
Base class for filter classes.
ForbiddenComponent
A widget that displays a forbidden access message with navigation fallback.
ForgotPasswordDto
A class representing a forgot password data transfer object.
ForgotPasswordForm
A reactive form for requesting a password reset.
Gender
GenderFilter
GlobalUser
GlobalUserFilter
GoBackButton
A button widget that provides navigation back functionality with fallback routing.
GuidFilter
A filter class for GUID (Globally Unique Identifier) fields.
HttpStatusCode
A class containing constants for HTTP status codes.
IconPlaceholder
A widget that renders an empty space with specified dimensions.
IdFilter
This class defines filter operations for ID (primary key, foreign key) fields that is in int type
Image
A class representing an image model.
ImageFilter
InfiniteListState<T extends JsonModel, TF extends DataFilter, TW extends StatefulWidget>
An abstract state class that provides infinite scroll list functionality.
InitializeErrorHandling
Initializes error handling and crash reporting systems.
IntFilter
A filter class for integer fields.
JsonBoolean
A specialized JSON field for handling boolean (true/false) values.
JsonDate
A specialized JSON field for handling date and time values.
JsonDouble
A specialized JSON field for handling double-precision floating-point numbers.
JsonField<T>
An abstract base class for all JSON field types.
JsonInteger
A specialized JSON field for handling integer (whole number) values.
JsonList<T extends JsonModel>
A specialized JSON field for handling lists of JsonModel objects.
JsonModel
An abstract base class for all JSON-serializable models in the application.
JsonNumber
A specialized JSON field for handling generic numeric values.
JsonObject<T extends JsonModel>
A specialized JSON field for handling nested JsonModel objects.
JsonString
A specialized JSON field for handling string (text) values.
Language
LanguageFilter
LastestComment
LoadingIndicator
A centered circular progress indicator widget with customizable size and color.
LoginForm
A reactive form for user authentication/login.
LoginWithAppleEvent
Triggers Apple ID sign-in flow.
LoginWithGoogleEvent
Triggers Google OAuth sign-in flow.
LoginWithMicrosoftEvent
Triggers Microsoft OAuth (Azure AD) sign-in flow.
LoginWithMultipleTenantsEvent
Transitions to tenant selection when user has multiple tenant access.
LoginWithPasswordEvent
Triggers email and password authentication.
LoginWithSavedLoginEvent
Triggers biometric authentication using saved credentials.
LoginWithSelectedTenantEvent
Completes authentication by selecting a specific tenant.
NotificationData
Base notification data that is shared between different notification states
NotificationHandler
A utility class for handling and processing notifications.
NumberFilter
A filter class for numeric fields.
PageForbidden
A full page widget that displays a forbidden access screen.
Period
PeriodFilter
PortalAuthenticationRepository
Repository for managing portal authentication operations.
PortalProfileRepository
A repository class for managing user profiles.
PortalTenantRepository
A repository class for managing tenants.
PushNotificationBloc
Manages Firebase Cloud Messaging push notifications.
PushNotificationDataOnlyOpened
Push notification opened state for data-only messages.
PushNotificationDataOnlyReceived
Push notification received state for data-only messages.
PushNotificationError
Push notification error state
PushNotificationEvent
Base class for all push notification events.
PushNotificationInitial
Push notification initial state
PushNotificationOpened
Push notification opened state
PushNotificationPayload
Contains the data payload from a Firebase Cloud Messaging notification.
PushNotificationReceived
Push notification received state
PushNotificationState
Push notification state
RequestHistory
RequestHistoryFilter
RequisitionEntity
ResetPasswordForm
A reactive form for resetting a user's password.
SearchableAppBarTitle
A widget that provides a searchable app bar title with animated transitions.
SectionTitle
A widget that displays a section title with optional padding.
SocialSignInButton
A customizable sign-in button with an icon and a title.
StringFilter
This class defines filter operations for String type
SubApp
SubSystemFilter
SupaExtendedColorScheme
An extended color scheme that provides semantic color tokens for UI components.
SupaExtendedColorTokenGroup
A group of related color tokens used for consistent styling of UI components.
Tenant
A class representing a tenant.
TenantBloc
A BLoC (Business Logic Component) class for managing tenant state.
TenantEvent
Abstract class representing tenant-related events.
TenantFilter
A class representing a filter for tenants.
TenantInitial
Represents the initial state of the tenant management.
TenantInitialEvent
Event to initialize the tenant state.
TenantLoaded
Represents the state when tenants have been loaded.
TenantLoadedEvent
Event to indicate that tenants have been loaded.
TenantLoading
Represents the state when tenant data is being loaded.
TenantLoadingEvent
Event to trigger tenant loading state.
TenantState
An abstract class representing the states of tenant management.
TextStatusBadge
A customizable badge widget for displaying status text with automatic text color adjustment based on background luminance.
Timezone
TimezoneFilter
UpdateAppUserProfileEvent
Updates the current user's profile information.
UserAuthenticatedState
State representing a successfully authenticated user.
UserAuthenticatedWithMultipleTenantsState
State when user is authenticated but has access to multiple tenants.
UserAuthenticatedWithSelectedTenantState
Fully authenticated state with both user and tenant information.
UserLogoutEvent
Triggers user logout and clears the current session.
UserNotification
A class representing a user notification.
UserNotificationFilter
A class representing a filter for user notifications.
UsingSavedAuthenticationEvent
Restores a previously saved authentication session.
UtilsNotificationRepository
A repository class for managing user notifications.

Enums

AuthenticationAction
Represents the different authentication actions that can be performed.

Mixins

DateFilterMixin
JsonSerializable
A mixin that defines the contract for JSON serialization and deserialization.
PasswordFieldMixin
A mixin that provides functionality for managing password field visibility in text input widgets.

Extensions

AppendPagingController on PagingController<int, T>
DateTimeComparison on DateTime
DateTimeOffsetExtensions on DateTime
Extension methods for DateTime to handle timezone offset formatting.
DistinctList on List<T>
DoubleCount on double
DoubleTime on double
DoubleToRadixString on double
HexColor on Color
HttpResponse on Response
Extension methods for parsing HTTP responses from the Dio package.
IntCount on int
MoneyFormatter on double
NumberCount on num
NumberFormatter on num
NumericIdRouterState on GoRouterState
RemoteMessageExtension on RemoteMessage
Extension methods for convenient access to RemoteMessage data.
StringExtension on String
SupaDioException on DioException
Extension on DioException that provides convenient HTTP status code checks.
SupaEnvironment on DotEnv
Extension on DotEnv to provide convenient access to environment variables.
SupaRoute on String
Extension on String to provide convenient methods for generating URLs.
TimeOfDayExtension on TimeOfDay

Properties

cookieManager CookieManager
no setter
persistentStorage PersistentStorage
no setter
secureStorage SecureStorage
no setter

Functions

getLocalTimezone() Future<String>
Gets a default timezone identifier (UTC) for platforms without timezone support.
registerModels() → void
registerRepositories() → void

Typedefs

InstanceConstructor<T extends JsonModel> = T Function()
A type definition for a function that constructs an instance of JsonModel.

Exceptions / Errors

SupaBadRequestException
A class representing a bad request exception in Supa.
SupaException
A sealed class representing a custom exception in Supa.
SupaForbiddenException
A class representing a forbidden exception in Supa.
SupaNotFoundException
A class representing a not found exception in Supa.
SupaUnauthorizedException
A class representing an unauthorized exception in Supa.
SupaUnknownException
A class representing an unknown exception in Supa.