diff --git a/android/build.gradle b/android/build.gradle index 84f8497..6ca8f0e 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -2,14 +2,17 @@ group 'za.co.britehouse.flutter_microsoft_authentication' version '1.0-SNAPSHOT' buildscript { - ext.kotlin_version = '1.3.60' + ext.kotlin_version = '1.5.10' repositories { google() jcenter() + maven { + url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1' + } } dependencies { - classpath 'com.android.tools.build:gradle:3.5.2' + classpath 'com.android.tools.build:gradle:4.2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" } @@ -19,6 +22,9 @@ rootProject.allprojects { repositories { google() jcenter() + maven { + url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1' + } } } @@ -27,7 +33,7 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlinx-serialization' android { - compileSdkVersion 28 + compileSdkVersion 30 sourceSets { main.java.srcDirs += 'src/main/kotlin' @@ -42,15 +48,15 @@ android { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.9.1" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" + implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.20.0" if (findProject(':msal') != null) { // For developer team only. localImplementation project(':msal') - externalImplementation 'com.microsoft.identity.client:msal:1.4.0' + externalImplementation 'com.microsoft.identity.client:msal:2.0.+' } else { // Downloads and Builds MSAL from maven central. - implementation 'com.microsoft.identity.client:msal:1.4.0' + implementation 'com.microsoft.identity.client:msal:2.0.+' } } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 019065d..297f2fe 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/android/src/main/kotlin/za/co/britehouse/flutter_microsoft_authentication/FlutterMicrosoftAuthenticationPlugin.kt b/android/src/main/kotlin/za/co/britehouse/flutter_microsoft_authentication/FlutterMicrosoftAuthenticationPlugin.kt index 580de24..d7668ae 100644 --- a/android/src/main/kotlin/za/co/britehouse/flutter_microsoft_authentication/FlutterMicrosoftAuthenticationPlugin.kt +++ b/android/src/main/kotlin/za/co/britehouse/flutter_microsoft_authentication/FlutterMicrosoftAuthenticationPlugin.kt @@ -38,29 +38,10 @@ class FlutterMicrosoftAuthenticationPlugin: MethodCallHandler { override fun onMethodCall(call: MethodCall, result: Result) { - val scopesArg : ArrayList? = call.argument("kScopes") - val scopes: Array? = scopesArg?.toTypedArray() - val authority: String? = call.argument("kAuthority") - val configPath: String? = call.argument("configPath") - - - if (configPath == null) { - Log.d(TAG, "no config") - result.error("NO_CONFIG","Call must include a config file path", null) - return - } - - if(scopes == null){ - Log.d(TAG, "no scope") - result.error("NO_SCOPE","Call must include a scope", null) - return - } - - if(authority == null){ - Log.d(TAG,"error no authority") - result.error("NO_AUTHORITY", "Call must include an authority", null) - return - } + val scopesArg : ArrayList = call.argument("scopes")!! + val scopes: Array = scopesArg?.toTypedArray()!! + val authority: String = call.argument("authority")!! + val configPath: String = call.argument("configPath")!! when(call.method){ "acquireTokenInteractively" -> acquireTokenInteractively(scopes, authority, result) @@ -126,7 +107,7 @@ class FlutterMicrosoftAuthenticationPlugin: MethodCallHandler { } override fun onError(exception: MsalException) { - Log.e(TAG, exception.message) + Log.e(TAG, exception.message!!) } }) } @@ -158,7 +139,7 @@ class FlutterMicrosoftAuthenticationPlugin: MethodCallHandler { } override fun onError(exception: MsalException) { - Log.e(TAG, exception.message) + Log.e(TAG, exception.message!!) result.error("ERROR", exception.errorCode, null) } }) @@ -261,7 +242,7 @@ class FlutterMicrosoftAuthenticationPlugin: MethodCallHandler { } override fun onError(exception: MsalException) { - Log.e(TAG, exception.message) + Log.e(TAG, exception.message!!) result.error("MsalException", exception.message, null) } }) diff --git a/example/.flutter-plugins-dependencies b/example/.flutter-plugins-dependencies index 00db9e0..51b56d2 100644 --- a/example/.flutter-plugins-dependencies +++ b/example/.flutter-plugins-dependencies @@ -1 +1 @@ -{"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"flutter_microsoft_authentication","dependencies":[]}]} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_microsoft_authentication","path":"C:\\\\Users\\\\crist\\\\Desktop\\\\GitHub\\\\flutter-microsoft-authentication\\\\","dependencies":[]}],"android":[{"name":"flutter_microsoft_authentication","path":"C:\\\\Users\\\\crist\\\\Desktop\\\\GitHub\\\\flutter-microsoft-authentication\\\\","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"flutter_microsoft_authentication","dependencies":[]}],"date_created":"2021-05-26 12:55:26.478563","version":"2.2.0"} \ No newline at end of file diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 1aadb81..9d49060 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -26,7 +26,7 @@ apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 28 + compileSdkVersion 30 sourceSets { main.java.srcDirs += 'src/main/kotlin' @@ -40,10 +40,9 @@ android { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "za.co.britehouse.flutter_microsoft_authentication_example" minSdkVersion 19 - targetSdkVersion 28 + targetSdkVersion 30 versionCode flutterVersionCode.toInteger() versionName flutterVersionName - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { @@ -64,8 +63,5 @@ flutter { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - testImplementation 'junit:junit:4.12' - androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" } diff --git a/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 3c4c9e5..0000000 --- a/example/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 74f3109..f1b4ba7 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,45 +1,42 @@ + + - + + + + + + + + + + + - - + - - - - - - - - + diff --git a/example/android/app/src/main/kotlin/za/co/britehouse/flutter_microsoft_authentication_example/MainActivity.kt b/example/android/app/src/main/kotlin/za/co/britehouse/flutter_microsoft_authentication_example/MainActivity.kt deleted file mode 100644 index c1f69c9..0000000 --- a/example/android/app/src/main/kotlin/za/co/britehouse/flutter_microsoft_authentication_example/MainActivity.kt +++ /dev/null @@ -1,14 +0,0 @@ -package za.co.britehouse.flutter_microsoft_authentication_example - -import android.os.Bundle - -import io.flutter.app.FlutterActivity -import io.flutter.plugins.GeneratedPluginRegistrant - -class MainActivity: FlutterActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - GeneratedPluginRegistrant.registerWith(this) - } - -} diff --git a/example/android/app/src/profile/AndroidManifest.xml b/example/android/app/src/profile/AndroidManifest.xml deleted file mode 100644 index 3c4c9e5..0000000 --- a/example/android/app/src/profile/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/example/android/build.gradle b/example/android/build.gradle index 6dd6141..8fc1df9 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,12 +1,12 @@ buildscript { - ext.kotlin_version = '1.3.60' + ext.kotlin_version = '1.5.10' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.3.0' + classpath 'com.android.tools.build:gradle:4.2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/example/android/gradle.properties b/example/android/gradle.properties index 1441b1d..9209e5d 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx1536M - android.enableR8=true +android.useAndroidX=true \ No newline at end of file diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 2819f02..b8793d3 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/example/lib/main.dart b/example/lib/main.dart index 2305bd2..1a6e2e9 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -14,8 +14,7 @@ class MyApp extends StatefulWidget { } class _MyAppState extends State { - - String _graphURI = "https://graph.microsoft.com/v1.0/me/"; + String _graphURI = 'https://graph.microsoft.com/v1.0/me/'; String _authToken = 'Unknown Auth Token'; String _username = 'No Account'; @@ -28,10 +27,10 @@ class _MyAppState extends State { super.initState(); fma = FlutterMicrosoftAuthentication( - kClientID: "", - kAuthority: "https://login.microsoftonline.com/organizations", - kScopes: ["User.Read", "User.ReadBasic.All"], - androidConfigAssetPath: "assets/android_auth_config.json" + clientID: '', + authority: 'https://login.microsoftonline.com/organizations', + scopes: ['User.Read', 'User.ReadBasic.All'], + androidConfigAssetPath: 'assets/android_auth_config.json', ); print('INITIALIZED FMA'); } @@ -40,7 +39,7 @@ class _MyAppState extends State { String authToken; try { authToken = await this.fma.acquireTokenInteractively; - } on PlatformException catch(e) { + } on PlatformException catch (e) { authToken = 'Failed to get token.'; print(e.message); } @@ -53,7 +52,7 @@ class _MyAppState extends State { String authToken; try { authToken = await this.fma.acquireTokenSilently; - } on PlatformException catch(e) { + } on PlatformException catch (e) { authToken = 'Failed to get token silently.'; print(e.message); } @@ -66,7 +65,7 @@ class _MyAppState extends State { String authToken; try { authToken = await this.fma.signOut; - } on PlatformException catch(e) { + } on PlatformException catch (e) { authToken = 'Failed to sign out.'; print(e.message); } @@ -75,7 +74,7 @@ class _MyAppState extends State { }); } - Future _loadAccount() async { + Future _loadAccount() async { String username = await this.fma.loadAccount; setState(() { _username = username; @@ -83,9 +82,10 @@ class _MyAppState extends State { } _fetchMicrosoftProfile() async { - var response = await http.get(this._graphURI, headers: { - "Authorization": "Bearer " + this._authToken - }); + var response = await http.get( + this._graphURI, + headers: {'Authorization': 'Bearer ' + this._authToken}, + ); setState(() { _msProfile = json.decode(response.body).toString(); @@ -96,39 +96,47 @@ class _MyAppState extends State { Widget build(BuildContext context) { return MaterialApp( home: Scaffold( - appBar: AppBar( - title: const Text('Microsoft Authentication'), - ), - body: SingleChildScrollView( - child: Container( - width: double.infinity, - padding: EdgeInsets.all(8), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - RaisedButton( onPressed: _acquireTokenInteractively, - child: Text('Acquire Token'),), - RaisedButton( onPressed: _acquireTokenSilently, - child: Text('Acquire Token Silently')), - RaisedButton( onPressed: _signOut, - child: Text('Sign Out')), - RaisedButton( onPressed: _fetchMicrosoftProfile, - child: Text('Fetch Profile')), - if (Platform.isAndroid == true) - RaisedButton( onPressed: _loadAccount, - child: Text('Load account')), - SizedBox(height: 8,), - if (Platform.isAndroid == true) - Text( "Username: $_username"), - SizedBox(height: 8,), - Text( "Profile: $_msProfile"), - SizedBox(height: 8,), - Text( "Token: $_authToken"), - ], - ), + appBar: AppBar( + title: const Text('Microsoft Authentication'), ), - ) - ), + body: SingleChildScrollView( + child: Container( + width: double.infinity, + padding: EdgeInsets.all(8), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + ElevatedButton( + onPressed: _acquireTokenInteractively, + child: Text('Acquire Token'), + ), + ElevatedButton( + onPressed: _acquireTokenSilently, + child: Text('Acquire Token Silently'), + ), + ElevatedButton( + onPressed: _signOut, + child: Text('Sign Out'), + ), + ElevatedButton( + onPressed: _fetchMicrosoftProfile, + child: Text('Fetch Profile'), + ), + if (Platform.isAndroid) + ElevatedButton( + onPressed: _loadAccount, + child: Text('Load account'), + ), + const SizedBox(height: 8), + if (Platform.isAndroid) Text('Username: $_username'), + const SizedBox(height: 8), + Text('Profile: $_msProfile'), + const SizedBox(height: 8), + Text('Token: $_authToken'), + ], + ), + ), + )), ); } } diff --git a/example/pubspec.lock b/example/pubspec.lock index bb45985..56549a7 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -1,62 +1,48 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: - archive: - dependency: transitive - description: - name: archive - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.11" - args: - dependency: transitive - description: - name: args - url: "https://pub.dartlang.org" - source: hosted - version: "1.5.2" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.0" + version: "2.6.1" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" - charcode: + version: "2.1.0" + characters: dependency: transitive description: - name: charcode + name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" - collection: + version: "1.1.0" + charcode: dependency: transitive description: - name: collection + name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.14.11" - convert: + version: "1.2.0" + clock: dependency: transitive description: - name: convert + name: clock url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" - crypto: + version: "1.1.0" + collection: dependency: transitive description: - name: crypto + name: collection url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "1.15.0" cupertino_icons: dependency: "direct main" description: @@ -64,6 +50,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.2" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" flutter: dependency: "direct main" description: flutter @@ -75,7 +68,7 @@ packages: path: ".." relative: true source: path - version: "0.1.1" + version: "0.2.0" flutter_test: dependency: "direct dev" description: flutter @@ -95,34 +88,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.1.3" - image: - dependency: transitive - description: - name: image - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.4" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.6" + version: "0.12.10" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.1.8" + version: "1.3.0" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.6.4" + version: "1.8.0" pedantic: dependency: transitive description: @@ -130,20 +116,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0+1" - petitparser: - dependency: transitive - description: - name: petitparser - url: "https://pub.dartlang.org" - source: hosted - version: "2.4.0" - quiver: - dependency: transitive - description: - name: quiver - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.5" sky_engine: dependency: transitive description: flutter @@ -155,62 +127,55 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.5.5" + version: "1.8.1" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.3" + version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.1.0" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.11" + version: "0.3.0" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.1.6" + version: "1.3.0" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" - xml: - dependency: transitive - description: - name: xml - url: "https://pub.dartlang.org" - source: hosted - version: "3.5.0" + version: "2.1.0" sdks: - dart: ">=2.4.0 <3.0.0" + dart: ">=2.12.0 <3.0.0" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 02c7d2d..29a56b6 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -3,7 +3,7 @@ description: Demonstrates how to use the flutter_microsoft_authentication plugin publish_to: 'none' environment: - sdk: ">=2.1.0 <3.0.0" + sdk: ">=2.2.2 <3.0.0" dependencies: flutter: diff --git a/lib/flutter_microsoft_authentication.dart b/lib/flutter_microsoft_authentication.dart index a1d4359..4718376 100644 --- a/lib/flutter_microsoft_authentication.dart +++ b/lib/flutter_microsoft_authentication.dart @@ -6,62 +6,67 @@ class FlutterMicrosoftAuthentication { static const MethodChannel _channel = const MethodChannel('flutter_microsoft_authentication'); - List _kScopes; - String _kClientID, _kAuthority; - String _androidConfigAssetPath; + final String clientID; + final String authority; + final List scopes; + final String androidConfigAssetPath; - FlutterMicrosoftAuthentication( - {String kClientID, - String kAuthority, - List kScopes, - String androidConfigAssetPath}) { - _kClientID = kClientID; - _kAuthority = kAuthority; - _kScopes = kScopes; - _androidConfigAssetPath = androidConfigAssetPath; - - if (Platform.isAndroid) - _channel.invokeMethod("init", _createMethodcallArguments()); + FlutterMicrosoftAuthentication({ + required this.clientID, + required this.authority, + required this.scopes, + required this.androidConfigAssetPath, + }) { + if (Platform.isAndroid) { + _channel.invokeMethod('init', _createMethodcallArguments()); + } } Map _createMethodcallArguments() { - var res = { - "kScopes": _kScopes, - "kClientID": _kClientID, - "kAuthority": _kAuthority + final args = { + 'clientID': clientID, + 'scopes': scopes, + 'authority': authority }; - if (Platform.isAndroid && _androidConfigAssetPath != null) { - res.addAll({"configPath": _androidConfigAssetPath}); + if (Platform.isAndroid) { + args.addAll({'configPath': androidConfigAssetPath}); } - print(res); - return res; + return args; } /// Acquire auth token with interactive flow. Future get acquireTokenInteractively async { final String token = await _channel.invokeMethod( - 'acquireTokenInteractively', _createMethodcallArguments()); + 'acquireTokenInteractively', + _createMethodcallArguments(), + ); return token; } /// Acquire auth token silently. Future get acquireTokenSilently async { final String token = await _channel.invokeMethod( - 'acquireTokenSilently', _createMethodcallArguments()); + 'acquireTokenSilently', + _createMethodcallArguments(), + ); return token; } /// Android only. Get username of current active account. Future get loadAccount async { final result = await _channel.invokeMethod( - 'loadAccount', _createMethodcallArguments()); + 'loadAccount', + _createMethodcallArguments(), + ); return result; } /// Sign out of current active account. Future get signOut async { - final String token = - await _channel.invokeMethod('signOut', _createMethodcallArguments()); + final String token = await _channel.invokeMethod( + 'signOut', + _createMethodcallArguments(), + ); return token; } } diff --git a/pubspec.lock b/pubspec.lock index 67a7df1..ad6d1df 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,62 +1,55 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: - archive: - dependency: transitive - description: - name: archive - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.11" - args: - dependency: transitive - description: - name: args - url: "https://pub.dartlang.org" - source: hosted - version: "1.5.2" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.0" + version: "2.6.1" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" charcode: dependency: transitive description: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" - collection: + version: "1.2.0" + clock: dependency: transitive description: - name: collection + name: clock url: "https://pub.dartlang.org" source: hosted - version: "1.14.11" - convert: + version: "1.1.0" + collection: dependency: transitive description: - name: convert + name: collection url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" - crypto: + version: "1.15.0" + fake_async: dependency: transitive description: - name: crypto + name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "1.2.0" flutter: dependency: "direct main" description: flutter @@ -67,55 +60,27 @@ packages: description: flutter source: sdk version: "0.0.0" - image: - dependency: transitive - description: - name: image - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.4" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.6" + version: "0.12.10" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.1.8" + version: "1.3.0" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.6.4" - pedantic: - dependency: transitive - description: - name: pedantic - url: "https://pub.dartlang.org" - source: hosted - version: "1.8.0+1" - petitparser: - dependency: transitive - description: - name: petitparser - url: "https://pub.dartlang.org" - source: hosted - version: "2.4.0" - quiver: - dependency: transitive - description: - name: quiver - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.5" + version: "1.8.0" sky_engine: dependency: transitive description: flutter @@ -127,62 +92,55 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.5.5" + version: "1.8.1" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.3" + version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.1.0" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.11" + version: "0.3.0" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.1.6" + version: "1.3.0" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" - xml: - dependency: transitive - description: - name: xml - url: "https://pub.dartlang.org" - source: hosted - version: "3.5.0" + version: "2.1.0" sdks: - dart: ">=2.4.0 <3.0.0" + dart: ">=2.12.0 <3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 3559334..f83e3aa 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,10 +1,10 @@ name: flutter_microsoft_authentication description: Flutter Wrapper for Microsoft Authentication Library to enable SSO across Android and iOS. -version: 0.1.1 +version: 0.2.0 homepage: https://github.com/BritehouseMobile/flutter-microsoft-authentication environment: - sdk: ">=2.1.0 <3.0.0" + sdk: ">=2.12.0 <3.0.0" dependencies: flutter: @@ -14,46 +14,7 @@ dev_dependencies: flutter_test: sdk: flutter -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec - -# The following section is specific to Flutter. flutter: - # This section identifies this Flutter project as a plugin project. - # The androidPackage and pluginClass identifiers should not ordinarily - # be modified. They are used by the tooling to maintain consistency when - # adding or updating assets for this project. plugin: androidPackage: za.co.britehouse.flutter_microsoft_authentication - pluginClass: FlutterMicrosoftAuthenticationPlugin - - # To add assets to your plugin package, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg - # - # For details regarding assets in packages, see - # https://flutter.dev/assets-and-images/#from-packages - # - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/assets-and-images/#resolution-aware. - - # To add custom fonts to your plugin package, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts in packages, see - # https://flutter.dev/custom-fonts/#from-packages + pluginClass: FlutterMicrosoftAuthenticationPlugin \ No newline at end of file