From cec162176ef621e95bbc3afeabae6303f6ec427a Mon Sep 17 00:00:00 2001 From: bestonemitRam Date: Wed, 12 Feb 2025 00:37:02 +0530 Subject: [PATCH] fixed issue update profile --- .DS_Store | Bin 10244 -> 10244 bytes .dart_tool/dartpad/web_plugin_registrant.dart | 32 + .dart_tool/package_config.json | 1001 +++++++++++++++++ .dart_tool/package_config_subset | 661 +++++++++++ .dart_tool/version | 1 + .flutter-plugins | 52 + .flutter-plugins-dependencies | 1 + .../provider/bottom_navbar_provider.dart | 37 +- lib/src/logic/provider/profile_provider.dart | 55 +- lib/src/logic/repo/product_repo.dart | 5 +- .../bottomnavigation/bottom_bar_widget.dart | 6 +- .../ui/edit_profile/edit_profile_screen.dart | 25 +- lib/src/ui/home/home_screen.dart | 7 +- lib/src/ui/myOrder/OrderDetailsScreen.dart | 17 +- lib/src/ui/myOrder/my_order.dart | 18 +- lib/src/ui/profilepage/profile_screen.dart | 230 ++-- lib/utils/constants/shared_pref_utils.dart | 35 +- pubspec.lock | 24 +- 18 files changed, 2011 insertions(+), 196 deletions(-) create mode 100644 .dart_tool/dartpad/web_plugin_registrant.dart create mode 100644 .dart_tool/package_config.json create mode 100644 .dart_tool/package_config_subset create mode 100644 .dart_tool/version create mode 100644 .flutter-plugins create mode 100644 .flutter-plugins-dependencies diff --git a/.DS_Store b/.DS_Store index c3c5df8536c2690e9c021e6cd45aeabee39fc93f..c43e46f6a705365744c78318fa2cdf3cba225be6 100644 GIT binary patch delta 73 zcmZn(XbIS$EzG!mvW{?}ns{}!siBU7k#Vh#Lbag*h;43UP+QB%A*!rz9TcCPlbe^{ bIr*rtJY(19r@~4+n^_h9uxw@)Wo8Bd8%Y&w delta 101 zcmZn(XbIS$EzG!cvW{?}hh%lNsfmS-f}x2)t&T#qp^1g1j)JARS#2#Rhp4i?bx?eE lPHtX)Hv(); - bool isLoading = true; - - Future getProfile(BuildContext context) async { - print("kjdkjghdfjglhjdfhgldflghjkldfjgh"); - isLoading = true; - notifyListeners(); - var data = {}; - try { - var result = await _homeRepo.getProfile(data); - - return result.fold( - (error) { - isLoading = false; - notifyListeners(); - }, - (response) async { - print("kjdshgkjhdfkjg ${response.firstName}"); - - await SharedPrefUtils.saveUser(user: response); - allitem = response!; - isLoading = false; - notifyListeners(); - }, - ); - } catch (e) { - isLoading = false; - notifyListeners(); - } - } - + Future refreshToken(BuildContext context) async { var data = {"refresh_token": "${await SharedPrefUtils.getRefreshToken()}"}; - var result = await _homeRepo.refreshToken(data, context); return result.fold( (error) { - return true; }, (response) { - return true; }, ); diff --git a/lib/src/logic/provider/profile_provider.dart b/lib/src/logic/provider/profile_provider.dart index 5de433a..13c7d92 100644 --- a/lib/src/logic/provider/profile_provider.dart +++ b/lib/src/logic/provider/profile_provider.dart @@ -6,8 +6,11 @@ import 'package:grocery_app/src/core/utils/snack_bar.dart'; import 'package:grocery_app/src/data/user_profile.dart'; import 'package:grocery_app/src/logic/repo/auth_repo.dart'; import 'package:grocery_app/src/logic/repo/product_repo.dart'; +import 'package:grocery_app/utils/constants/shared_pref_utils.dart'; import 'package:grocery_app/utils/extensions/extensions.dart'; +import '../../../utils/constants/string_constant.dart'; + class ProfileProvider extends ChangeNotifier { bool _isImageLoading = false; bool get isImageLoading => _isImageLoading; @@ -42,7 +45,7 @@ class ProfileProvider extends ChangeNotifier { showTopSnackBar(context, message, color); } - Future createStore( + Future updateProfile( BuildContext context, String firstName, String lastName) async { context.showLoader(show: true); @@ -68,7 +71,8 @@ class ProfileProvider extends ChangeNotifier { return false; }, (response) { - Navigator.pop(context); + getProfile(context); + ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text("Profile updated"), @@ -78,8 +82,7 @@ class ProfileProvider extends ChangeNotifier { return true; }, ); - } catch (e) - { + } catch (e) { context.showLoader(show: false); ScaffoldMessenger.of(context).showSnackBar( @@ -91,4 +94,48 @@ class ProfileProvider extends ChangeNotifier { return false; } } + + final _homeRepo = getIt(); + UserProfile allitem = UserProfile(); + + bool isLoading = true; + String _profile = ''; + String get profile => _profile; + String _name = ''; + String get name => _name; + String _email = ''; + String get email => _email; + + Future getProfile(BuildContext context) async { + isLoading = true; + notifyListeners(); + var data = {}; + try { + var result = await _homeRepo.getProfile(data); + + return result.fold( + (error) { + isLoading = false; + notifyListeners(); + }, + (response) async { + await SharedPrefUtils.saveUser(user: response); + allitem = response!; + + _profile = response.img; + _name = response.firstName + " " + response.lastName; + _email = response.email; + + APPSTRING.userName = response.firstName; + APPSTRING.userLastName = response.lastName; + APPSTRING.userProfile = response.img; + isLoading = false; + notifyListeners(); + }, + ); + } catch (e) { + isLoading = false; + notifyListeners(); + } + } } diff --git a/lib/src/logic/repo/product_repo.dart b/lib/src/logic/repo/product_repo.dart index 2b1ca33..b8d17aa 100644 --- a/lib/src/logic/repo/product_repo.dart +++ b/lib/src/logic/repo/product_repo.dart @@ -221,10 +221,11 @@ class ProductRepo { try { var response = await _productService.updateProfile(data); - print("kdjfgkljfdkjlghflkgjh ${response}"); + final String model = response.toString(); return right(model); - } on DioException catch (e) { + } on DioException catch (e) + { var error = CustomDioExceptions.handleError(e); return left(error); } diff --git a/lib/src/ui/bottomnavigation/bottom_bar_widget.dart b/lib/src/ui/bottomnavigation/bottom_bar_widget.dart index e2fd820..f3cd74f 100644 --- a/lib/src/ui/bottomnavigation/bottom_bar_widget.dart +++ b/lib/src/ui/bottomnavigation/bottom_bar_widget.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:geolocator/geolocator.dart'; import 'package:grocery_app/src/logic/provider/bottom_navbar_provider.dart'; import 'package:grocery_app/src/logic/provider/home_provider.dart'; +import 'package:grocery_app/src/logic/provider/profile_provider.dart'; import 'package:grocery_app/src/ui/cart/cartview_screen.dart'; import 'package:grocery_app/src/ui/favourite/favourite_screen.dart'; import 'package:grocery_app/src/ui/header.dart'; @@ -19,8 +20,7 @@ class BottomBarWidget extends StatefulWidget { _BottomBarState createState() => _BottomBarState(); } -class _BottomBarState extends State -{ +class _BottomBarState extends State { int _currentIndex = 0; PageController bottomWidgetPageController = PageController( initialPage: 0, @@ -40,7 +40,7 @@ class _BottomBarState extends State @override void initState() { - Provider.of(context, listen: false).getProfile(context); + Provider.of(context, listen: false).getProfile(context); _currentIndex = 0; bottomWidgetPageController = PageController( initialPage: 0, diff --git a/lib/src/ui/edit_profile/edit_profile_screen.dart b/lib/src/ui/edit_profile/edit_profile_screen.dart index 96b90c5..c6c6ec1 100644 --- a/lib/src/ui/edit_profile/edit_profile_screen.dart +++ b/lib/src/ui/edit_profile/edit_profile_screen.dart @@ -43,6 +43,8 @@ class _EditProfileScreenState extends State { firstController.text = APPSTRING.userName; lastController.text = APPSTRING.userLastName; profile = APPSTRING.userProfile; + + print("jshdgjkdhfg ${profile}"); } /// Pick image from gallery or camera @@ -70,6 +72,7 @@ class _EditProfileScreenState extends State { @override Widget build(BuildContext context) { + print("jkdfhgkjdfg ${_image} ${profile}"); return Scaffold( appBar: AppBar( centerTitle: true, @@ -111,9 +114,17 @@ class _EditProfileScreenState extends State { Expanded( child: InkWell( onTap: imageProvider.isImageLoading - ? () { - imageProvider.createStore(context, - firstController.text, lastController.text); + ? () async { + var status = await imageProvider.updateProfile( + context, + firstController.text, + lastController.text); + + if (status) { + print('dksfjghdkfgh'); + + Navigator.pop(context); + } } : null, child: Container( @@ -153,16 +164,14 @@ class _EditProfileScreenState extends State { Stack( alignment: Alignment.center, children: [ - // CircleAvatar( radius: 40, - backgroundColor: Colors.white, + backgroundColor: Colors.grey, backgroundImage: _image != null - ? FileImage(_image!) as ImageProvider + ? FileImage(_image!) : (profile != null && profile!.isNotEmpty ? NetworkImage(profile!) - : const AssetImage("assets/default_profile.png") - as ImageProvider), + : const AssetImage("assets/default_profile.png")), ), Positioned( bottom: 0, diff --git a/lib/src/ui/home/home_screen.dart b/lib/src/ui/home/home_screen.dart index 1dd46a4..1306f8b 100644 --- a/lib/src/ui/home/home_screen.dart +++ b/lib/src/ui/home/home_screen.dart @@ -41,7 +41,10 @@ class _HomeScreenState extends State { } getUserDetails() async { - APPSTRING.userName = (await SharedPrefUtils.getUserName())!; + APPSTRING.userName = (await SharedPrefUtils.getFirstName())!; + + print("kdjfkgjhdkfgj ${await SharedPrefUtils.getFirstName()}"); + APPSTRING.emailName = (await SharedPrefUtils.getUserEmail())!; APPSTRING.userProfile = (await SharedPrefUtils.getUserProfile())!; APPSTRING.userLastName = (await SharedPrefUtils.getLastName())!; @@ -507,7 +510,7 @@ class _HomeScreenState extends State { ), ) : provider.banner.isEmpty - ? Center(child: Text('No products available')) + ? SizedBox.shrink() : CarouselSlider( options: CarouselOptions( height: 180, diff --git a/lib/src/ui/myOrder/OrderDetailsScreen.dart b/lib/src/ui/myOrder/OrderDetailsScreen.dart index 778456a..ba0e74b 100644 --- a/lib/src/ui/myOrder/OrderDetailsScreen.dart +++ b/lib/src/ui/myOrder/OrderDetailsScreen.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:grocery_app/src/common_widget/network_image.dart'; import 'package:grocery_app/src/data/myOrder.dart'; +import 'package:intl/intl.dart'; class OrderDetailsScreen extends StatefulWidget { final Datum order; @@ -13,6 +14,20 @@ class OrderDetailsScreen extends StatefulWidget { class _OrderDetailsScreenState extends State { int currentStep = 1; + String convertUtcToIst(String utcTime) { + // Parse the UTC time string + DateTime utcDateTime = DateTime.parse(utcTime).toUtc(); + + // Convert to IST (UTC +5:30) + DateTime istDateTime = + utcDateTime.add(const Duration(hours: 5, minutes: 30)); + + // Format the IST datetime with AM/PM + String formattedDateTime = + DateFormat("dd-MM-yyyy hh:mm a").format(istDateTime); + + return formattedDateTime; // Example: 11-02-2025 10:44 AM + } @override Widget build(BuildContext context) { @@ -54,7 +69,7 @@ class _OrderDetailsScreenState extends State { Text(widget.order.deliveryAddress!.addressLine ?? " ", style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), SizedBox(height: 5), - Text(widget.order.createdAt.toString()), + Text(convertUtcToIst(widget.order.createdAt.toString())), SizedBox(height: 5), Text( "Status: ${_getStatusText(widget.order.orderStatus)}", diff --git a/lib/src/ui/myOrder/my_order.dart b/lib/src/ui/myOrder/my_order.dart index 06684a5..f41333c 100644 --- a/lib/src/ui/myOrder/my_order.dart +++ b/lib/src/ui/myOrder/my_order.dart @@ -7,6 +7,7 @@ import 'package:grocery_app/src/logic/provider/order_provider.dart'; import 'package:grocery_app/utils/constants/assets_constant.dart'; import 'package:grocery_app/utils/constants/color_constant.dart'; import 'package:grocery_app/utils/extensions/extensions.dart'; +import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -22,6 +23,21 @@ class _MyOrderScreenState extends State { super.initState(); } + String convertUtcToIst(String utcTime) { + // Parse the UTC time string + DateTime utcDateTime = DateTime.parse(utcTime).toUtc(); + + // Convert to IST (UTC +5:30) + DateTime istDateTime = + utcDateTime.add(const Duration(hours: 5, minutes: 30)); + + // Format the IST datetime with AM/PM + String formattedDateTime = + DateFormat("dd-MM-yyyy hh:mm a").format(istDateTime); + + return formattedDateTime; // Example: 11-02-2025 10:44 AM + } + @override Widget build(BuildContext context) { return Scaffold( @@ -134,7 +150,7 @@ class _MyOrderScreenState extends State { ], ), SizedBox(height: 10), - Text(order.createdAt.toString(), + Text(convertUtcToIst(order.updatedAt.toString()), style: TextStyle(color: Colors.grey)), SizedBox(height: 5), Row( diff --git a/lib/src/ui/profilepage/profile_screen.dart b/lib/src/ui/profilepage/profile_screen.dart index f8db54f..39008a5 100644 --- a/lib/src/ui/profilepage/profile_screen.dart +++ b/lib/src/ui/profilepage/profile_screen.dart @@ -2,7 +2,9 @@ import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:grocery_app/src/common_widget/network_image.dart'; import 'package:grocery_app/src/core/routes/routes.dart'; +import 'package:grocery_app/src/logic/provider/bottom_navbar_provider.dart'; import 'package:grocery_app/src/logic/provider/home_provider.dart'; +import 'package:grocery_app/src/logic/provider/profile_provider.dart'; import 'package:grocery_app/src/ui/card_checkout/card_checkout_screen.dart'; import 'package:grocery_app/src/ui/edit_profile/edit_profile_screen.dart'; @@ -29,120 +31,134 @@ class ProfileScreen extends StatefulWidget { class _ProfileScreenState extends State { var top = 0.0; + @override + void initState() + { + Provider.of(context, listen: false).getProfile(context); + getUserDetails(); + super.initState(); + } + + getUserDetails() async { + APPSTRING.userName = (await SharedPrefUtils.getFirstName())!; + APPSTRING.emailName = (await SharedPrefUtils.getUserEmail())!; + APPSTRING.userProfile = (await SharedPrefUtils.getUserProfile())!; + APPSTRING.userLastName = (await SharedPrefUtils.getLastName())!; + } + @override Widget build(BuildContext context) { + print("jdfgkjhgjh ${APPSTRING.userProfile}"); return Scaffold( body: NestedScrollView( headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { return [ - SliverAppBar( - expandedHeight: 180.0, - floating: false, - pinned: true, - backgroundColor: Colors.white, - leading: const SizedBox(), - flexibleSpace: LayoutBuilder( - builder: (BuildContext context, BoxConstraints constraints) { - top = constraints.biggest.height; + Consumer(builder: (context, provider, child) + { + return SliverAppBar( + expandedHeight: 180.0, + floating: false, + pinned: true, + backgroundColor: Colors.white, + leading: const SizedBox(), + flexibleSpace: LayoutBuilder(builder: + (BuildContext context, BoxConstraints constraints) { + top = constraints.biggest.height; - return FlexibleSpaceBar( - centerTitle: true, - title: Column( - mainAxisAlignment: MainAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - top > 100 - ? Text( - "My Profile", - style: - context.customExtraBold(Colors.white, 14), - ) - : const SizedBox(), - - const SizedBox( - height: 30, - ), - //Spacer(), - Row( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const SizedBox( - width: 15, - ), - Stack( - children: [ - AppNetworkImage( - height: top < 150 ? 30 : 50, - width: top < 150 ? 30 : 50, - imageUrl: "${APPSTRING.userProfile ?? ""}" ?? - "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTdQLwDqDwd2JfzifvfBTFT8I7iKFFevcedYg&s", - radius: 90, - backGroundColor: Colors.white, - boxFit: BoxFit.fill, - ), - // top > 100 - // ? Positioned( - // bottom: 0, - // right: 0, - // child: Container( - // height: 18, - // width: 18, - // decoration: BoxDecoration( - // color: APPCOLOR.lightGreen, - // border: Border.all( - // color: Colors.white), - // borderRadius: - // BorderRadius.circular(5)), - // child: Center( - // child: Icon( - // MdiIcons.pencil, - // size: 10, - // color: Colors.white, - // ), - // ), - // )) - // : const SizedBox(), - ], - ), - const SizedBox( - width: 15, - ), - Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Text( - APPSTRING.userName ?? "", - style: context.customExtraBold( - top < 100 ? Colors.black : Colors.white, - 14), - ), - Text( - APPSTRING.emailName, - style: context.customRegular( - top < 100 ? Colors.black : Colors.white, - 10), + return FlexibleSpaceBar( + centerTitle: true, + title: Column( + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + top > 100 + ? Text( + "My Profile", + style: + context.customExtraBold(Colors.white, 14), ) - ], - ), - const SizedBox( - width: 15, - ), - ], - ), - ], - ), - background: Container( - height: 200, - decoration: BoxDecoration( - color: APPCOLOR.lightGreen, - borderRadius: const BorderRadius.only( - bottomLeft: Radius.circular(30), - bottomRight: Radius.circular(30))), - )); - }), - ), + : const SizedBox(), + + const SizedBox( + height: 30, + ), + //Spacer(), + Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox( + width: 15, + ), + Stack( + children: [ + AppNetworkImage( + height: top < 150 ? 30 : 50, + width: top < 150 ? 30 : 50, + imageUrl: provider.profile ?? "", + radius: 90, + backGroundColor: Colors.white, + boxFit: BoxFit.fill, + ), + ], + ), + const SizedBox( + width: 15, + ), + if (provider.name.isNotEmpty) ...{ + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + provider.name ?? " ", + style: context.customExtraBold( + top < 100 + ? Colors.black + : Colors.white, + 14), + ), + Text( + provider.email, + style: context.customRegular( + top < 100 + ? Colors.black + : Colors.white, + 10), + ) + ], + ), + } else ...{ + InkWell( + onTap: () { + context.push(MyRoutes.SIGNUP); + }, + child: Text( + "Login ", + style: context.customExtraBold( + top < 100 ? Colors.blue : Colors.blue, + 14), + ), + ) + }, + const SizedBox( + width: 15, + ), + ], + ), + ], + ), + background: Container( + height: 200, + decoration: BoxDecoration( + color: APPCOLOR.lightGreen, + borderRadius: const BorderRadius.only( + bottomLeft: Radius.circular(30), + bottomRight: Radius.circular(30))), + )); + }), + ); + }) ]; }, body: Column( @@ -158,7 +174,7 @@ class _ProfileScreenState extends State { onTap: () { Navigator.of(context).push(MaterialPageRoute( builder: (context) { - return const EditProfileScreen(); + return EditProfileScreen(); }, )); }, diff --git a/lib/utils/constants/shared_pref_utils.dart b/lib/utils/constants/shared_pref_utils.dart index 18caf6d..5dab2f8 100644 --- a/lib/utils/constants/shared_pref_utils.dart +++ b/lib/utils/constants/shared_pref_utils.dart @@ -36,27 +36,31 @@ class SharedPrefUtils { static const String STORE_ID = "STORE_ID"; static const String REFRESH_TOKEN = "REFRESH_TOKEN"; - static const String KEY_NAME = "user_name"; - static const String KEY_LAST_NAME = "user_name"; - static const String KEY_EMAIL = "user_email"; - static const String KEY_PROFILE = "user_profile"; + static const String KEY_FIRSTNAME = "KEY_FIRSTNAME"; + static const String KEY_LAST_NAME = "KEY_LAST_NAME"; + static const String KEY_EMAIL = "KEY_EMAIL"; + static const String KEY_PROFILE = "KEY_PROFILE"; static Future saveUser({ required UserProfile user, }) async { - print("jdhsfhjdjfhg ${user.img}"); SharedPreferences prefs = await SharedPreferences.getInstance(); - await prefs.setString(KEY_NAME, user.firstName ?? ""); - await prefs.setString(KEY_LAST_NAME, user.lastName ?? ""); + + print("lkdjglkdfhgkhl ${user.firstName}"); + await prefs.setString(KEY_FIRSTNAME, user.firstName ?? ""); + await prefs.setString(KEY_LAST_NAME, user.lastName ?? ""); await prefs.setString(KEY_EMAIL, user.email ?? " "); await prefs.setString(KEY_PROFILE, user.img ?? " "); } - static Future getUserName() async { + static Future getFirstName() async { SharedPreferences prefs = await SharedPreferences.getInstance(); - return prefs.getString(KEY_NAME); + + print("kjdshfgjkhdf ${prefs.getString(KEY_FIRSTNAME)}"); + return prefs.getString(KEY_FIRSTNAME); } - static Future getLastName() async { + + static Future getLastName() async { SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.getString(KEY_LAST_NAME); } @@ -260,17 +264,6 @@ class SharedPrefUtils { /// /// - static Future getFirstName() async { - final sp = await SharedPreferences.getInstance(); - - final firstName = sp.getString(FIRST_NAME); - print("lkjhdsgkhfdkjg ${sp.getString(FIRST_NAME)}"); - - return firstName!; - } - - - static Future getEmail() async { final sp = await SharedPreferences.getInstance(); return sp.getString(EMAIL) ?? ""; diff --git a/pubspec.lock b/pubspec.lock index a814223..1b42233 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -716,18 +716,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -772,10 +772,10 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" material_design_icons_flutter: dependency: "direct main" description: @@ -788,10 +788,10 @@ packages: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" mime: dependency: transitive description: @@ -1145,10 +1145,10 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.2" typed_data: dependency: transitive description: @@ -1265,10 +1265,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "14.2.5" web: dependency: transitive description: