arcane_framework 1.2.5 copy "arcane_framework: ^1.2.5" to clipboard
arcane_framework: ^1.2.5 copied to clipboard

Agnostic Reusable Component Architecture for New Ecosystems: a modern framework for bootstrapping new applications

1.2.5 #

  • Improved automatic metadata detection in ArcaneLogger

1.2.4 #

  • Update package dependencies

1.2.3 #

  • Added ValueNotifiers to both the ArcaneAuthenticationService and ArcaneFeatureFlags. This enables the possibility of listening for changes to either service.

Example #

// Listen to changes in the authentication status
Arcane.auth.isSignedIn.addListener(() {
  if (Arcane.auth.isSignedIn.value) {
    Arcane.log("User is signed in");
  } else {
    Arcane.log("User is signed out");
  }
});

// Listen to changes in the enabled/disabled features
Arcane.features.notifier.addListener(() {
  Arcane.log("Enabled features have been updated: ${Arcane.features.notifier.value}");
});

1.2.2 #

  • Lowered minimum required collection dependency version to prevent forcing users into the latest Flutter release

1.2.1 #

  • Lowered minimum required SDK version to prevent forcing users into the latest Flutter release

1.2.0 #

  • Removed flutter_secure_storage dependency as it was unused

Breaking Changes #

The following methods have been moved outside of the ArcaneAuthInterface base class:

  • resendVerificationCode
  • register
  • confirmSignup
  • resetPassword

These methods have been moved to mixin classes. To continue using them, please update your ArcaneAuthInterface implementations.

  • To use resendVerificationCode, register and confirmSignup, use the new ArcaneAuthAccountRegistration mixin.
  • To use resetPassword, use the new ArcaneAuthPasswordManagement mixin.

Migration #

In order to migrate your existing interfaces, update them from:

class MyAuthInterface implements ArcaneAuthInterface {}

to:

class MyAuthInterface
    with ArcaneAuthAccountRegistration, ArcaneAuthPasswordManagement
    implements ArcaneAuthInterface {}

If the methods that these mixins provide are not being used, the mixins can safely be omitted. If only one of these mixins is required, the other can be safely omitted.

This change should result in fewer lines of code for interface implementations that do not require these additional features.

1.1.7 #

  • Fixed an issue with the ArcaneAuthenticationService where an exception would be thrown when attempting to access an authentication token while no ArcaneAuthInterface was registered.

1.1.6 #

  • Updated logging feature to indicate the feature which was enabled or disabled within the log message, instead of only in the metadata.

1.1.5 #

  • Update package dependencies. No code changes.

1.1.4 #

  • Update package dependencies. No code changes.

1.1.3 #

  • Arcane Auth no longer throws exceptions when log out fails, instead returning a Result<void, String>. This behavior matches the login method.

1.1.2 #

  • Removed Flutter exception handling from ArcaneLoggingService, as this functionality should be defined by a users' interface.

Migration #

Add the following to your ArcaneLoggingInterface's init method to replicate the previous behavior:

// Handles unhandled Flutter errors by logging them.
FlutterError.onError = (errorDetails) {
  Arcane.log(
    errorDetails.exceptionAsString(),
    level: Level.error,
    module: errorDetails.library,
    stackTrace: errorDetails.stack,
  );
};

// Handles unhandled platform-specific errors by logging them.
PlatformDispatcher.instance.onError = (error, stack) {
  Arcane.log(
    "$error",
    level: Level.error,
    stackTrace: stack,
  );
  return false;
};

1.1.1+2 #

  • Updated example in README

1.1.1+1 #

  • Updated example in README

1.1.1 #

  • [BREAKING] Updated ArcaneAuthInterface to make the resendVerificationCode, confirmSignup, and resetPassword methods more versatile

Migration:

Class Migration path
ArcaneAuthInterface resendVerificationCode(String email) -> resendVerificationCode<T>({T? input})
ArcaneAuthInterface confirmSignup({String email, String password}) -> confirmSignup({String? email, String? password})
ArcaneAuthInterface resetPassword({String email, String? newPassword, String? code}) -> resetPassword({String? email, String? newPassword, String? code})

1.1.0 #

  • [BREAKING] Updated the authentication service and interface to be more versatile

Migration:

Class Migration path
ArcaneAuthInterface loginWtihEmailAndPassword({String email, String password}) -> login<T>({T? input})
ArcaneAuthInterface signup({String email, String password}) -> register<T>({T? input})

1.0.8 #

  • Added the extra parameter to the Arcane.log shortcut method

1.0.7 #

  • Added the extra parameter to the LoggingInterface

1.0.6+1 #

1.0.6 #

  • Removed get_it as a dependency

1.0.5+2 #

  • Updated README and example project documentation

1.0.5+1 #

  • Marked the loginWithEmailAndPassword method in ArcaneAuthenticationService as deprecated and updated example project

1.0.5 #

  • Added the ability to use a generic type for the login method in ArcaneAuthenticationService
  • Added the ability to reset the ArcaneAuthenticationService, which will unregister the current interface and clear the authentication state
  • Removed unused testing tooling (e.g., @visibleForTesting) from the codebase
    • Migration guide: Remove usages of setMocked in your tests

1.0.4 #

  • Resolved an issue with authentication using the ArcaneAuthenticationService when logging in with an email and password

1.0.3+1 #

  • Added example project

1.0.3 #

  • Added the ability to switch back to the normal environment from the debug environment in ArcaneEnvironment
  • (breaking) Made the optional onLoggedOut callback a Future instead of a void function in ArcaneAuthenticationService
  • Added additional error handling to the login method in ArcaneAuthenticationService
  • Added support for following the system's theme in ArcaneTheme
  • Removed the BuildContext parameter from the switchTheme method in ArcaneTheme

1.0.2 #

  • Migrated ArcaneAuthenticationService's isSignedIn to a ValueListenable

1.0.1+1 #

  • Removed ID and secure storage services to improve platform compatibility

1.0.0 #

  • Initial release
0
likes
150
points
106
downloads

Publisher

verified publisherflutterperfect.dev

Weekly Downloads

Agnostic Reusable Component Architecture for New Ecosystems: a modern framework for bootstrapping new applications

Repository (GitHub)
View/report issues
Contributing

Topics

#arcane-framework

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

arcane_helper_utils, collection, flutter, flutter_bloc, result_monad

More

Packages that depend on arcane_framework