import "package:arcane_framework/arcane_framework.dart"; class DebugAuthInterface implements ArcaneAuthInterface { DebugAuthInterface._internal(); static final ArcaneAuthInterface _instance = DebugAuthInterface._internal(); static ArcaneAuthInterface get I => _instance; @override Future get isSignedIn => Future.value(_isSignedIn); bool _isSignedIn = false; @override Future get accessToken => isSignedIn.then( (loggedIn) => loggedIn ? "access_token" : null, ); @override Future get refreshToken => isSignedIn.then( (loggedIn) => loggedIn ? "refresh_token" : null, ); @override Future> logout() async { Arcane.log("Logging out"); _isSignedIn = false; return Result.ok(null); } @override Future> loginWithEmailAndPassword({ required String email, required String password, }) async => throw UnimplementedError(); @override Future> login({ T? input, Future Function()? onLoggedIn, }) async { final bool alreadyLoggedIn = await isSignedIn; if (alreadyLoggedIn) return Result.ok(null); Arcane.log("Logging in with input: $input"); _isSignedIn = true; return Result.ok(null); } @override Future> resendVerificationCode(String email) async { Arcane.log("Re-sending verification code to $email"); return Result.ok("Code sent"); } @override Future> signup({ required String password, required String email, }) async { Arcane.log("Creating account for $email with password $password"); return Result.ok(SignUpStep.confirmSignUp); } @override Future> confirmSignup({ required String username, required String confirmationCode, }) async { Arcane.log( "Confirming registration for $username with code $confirmationCode", ); return Result.ok(true); } @override Future> resetPassword({ required String email, String? newPassword, String? code, }) async { Arcane.log("Resetting password for $email"); return Result.ok(true); } @override Future init() async { Arcane.log("Debug auth interface initialized."); return; } }