create static method
Factory constructor to create a properly initialized client
Implementation
static Future<FrappeOAuthClient> create({required OAuthConfig config}) async {
// Validate configuration
_validateConfig(config);
final networkService = NetworkService(config: config);
final webAuthService = WebAuthService(config: config);
final urlBuilder = UrlBuilder(config: config);
final client = FrappeOAuthClient._(
config: config,
networkService: networkService,
webAuthService: webAuthService,
urlBuilder: urlBuilder,
);
// Load existing tokens if available
await client._loadStoredTokens();
return client;
}