import "dart:js_interop"; @JS("emeMsal.initialize") external JSPromise _initialize( JSString tenantId, JSString clientId, JSString scope, JSString redirectUri, ); @JS("emeMsal.signIn") external JSPromise _signIn(); @JS("emeMsal.getAccessToken") external JSPromise _getAccessToken(); @JS("emeMsal.hasAccount") external JSBoolean _hasAccount(); @JS("emeMsal.signOut") external JSPromise _signOut(); class MsalBridge { MsalBridge._(); static Future initialize({ required String tenantId, required String clientId, required String scope, required String redirectUri, }) async { await _initialize( tenantId.toJS, clientId.toJS, scope.toJS, redirectUri.toJS, ).toDart; } static Future signIn() async { await _signIn().toDart; } static Future getAccessToken() async { final token = await _getAccessToken().toDart; return token.toDart; } static bool hasAccount() { return _hasAccount().toDart; } static Future signOut() async { await _signOut().toDart; } }