From d7926c1b20b0f7e3f20e9773dea8c4e76a0bd9ca Mon Sep 17 00:00:00 2001 From: Mathias Mogensencd collaction_website Date: Fri, 17 Mar 2023 21:12:01 +0100 Subject: [PATCH] feat: crowdaction description markdown support --- .../crowdaction_details_screen.dart | 49 +- .../widgets/crowdaction_description.dart | 42 ++ .../expandable_markdown_text.dart | 140 ++++ .../themes/markdown_stylesheet.dart | 19 + pubspec.lock | 691 +++++++----------- pubspec.yaml | 5 +- 6 files changed, 466 insertions(+), 480 deletions(-) create mode 100644 lib/presentation/crowdaction/crowdaction_details/widgets/crowdaction_description.dart create mode 100644 lib/presentation/shared_widgets/expandable_markdown_text.dart create mode 100644 lib/presentation/themes/markdown_stylesheet.dart diff --git a/lib/presentation/crowdaction/crowdaction_details/crowdaction_details_screen.dart b/lib/presentation/crowdaction/crowdaction_details/crowdaction_details_screen.dart index 0cc56950..cea76a9d 100644 --- a/lib/presentation/crowdaction/crowdaction_details/crowdaction_details_screen.dart +++ b/lib/presentation/crowdaction/crowdaction_details/crowdaction_details_screen.dart @@ -1,7 +1,6 @@ import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:shimmer/shimmer.dart'; import '../../../../domain/crowdaction/crowdaction.dart'; import '../../../../infrastructure/core/injection.dart'; @@ -11,11 +10,11 @@ import '../../../application/participation/participation_bloc.dart'; import '../../../application/user/profile_tab/profile_tab_bloc.dart'; import '../../routes/app_routes.gr.dart'; import '../../shared_widgets/commitments/commitment_card_list.dart'; -import '../../shared_widgets/expandable_text.dart'; import '../../shared_widgets/pill_button.dart'; import '../../themes/constants.dart'; import 'widgets/confirm_participation.dart'; import 'widgets/crowdaction_chips.dart'; +import 'widgets/crowdaction_description.dart'; import 'widgets/crowdaction_details_banner.dart'; import 'widgets/crowdaction_title.dart'; import 'widgets/participants.dart'; @@ -37,18 +36,17 @@ class CrowdActionDetailsPage extends StatefulWidget { class CrowdActionDetailsPageState extends State { final List selectedCommitments = []; - CrowdAction? crowdAction; late final ParticipationBloc participationBloc; - late Function(BuildContext) participate; - late final String id; + late Function(BuildContext) participate; + CrowdAction? crowdAction; @override void initState() { super.initState(); participationBloc = getIt(); - participate = _signUpModal; id = widget.crowdActionId ?? widget.crowdAction!.id; + participate = _signUpModal; crowdAction = widget.crowdAction; } @@ -184,7 +182,7 @@ class CrowdActionDetailsPageState extends State { ), const SizedBox(height: 20), CrowdActionDescription( - crowdAction: crowdAction, + description: crowdAction?.description, ), ], ), @@ -354,40 +352,3 @@ class CrowdActionDetailsPageState extends State { context.router.push(const AuthRoute()); } } - -class CrowdActionDescription extends StatelessWidget { - const CrowdActionDescription({ - super.key, - required this.crowdAction, - }); - - final CrowdAction? crowdAction; - - @override - Widget build(BuildContext context) { - if (crowdAction == null) { - return Shimmer.fromColors( - baseColor: kPrimaryColor100, - highlightColor: kPrimaryColor200, - child: Container( - height: 150, - width: double.infinity, - decoration: BoxDecoration( - color: kPrimaryColor100, - borderRadius: BorderRadius.circular(10), - ), - ), - ); - } - - return ExpandableText( - crowdAction!.description, - trimLines: 5, - style: Theme.of(context).textTheme.bodyMedium?.copyWith( - fontSize: 17, - fontWeight: FontWeight.w300, - height: 1.5, - ), - ); - } -} diff --git a/lib/presentation/crowdaction/crowdaction_details/widgets/crowdaction_description.dart b/lib/presentation/crowdaction/crowdaction_details/widgets/crowdaction_description.dart new file mode 100644 index 00000000..5c6e6a76 --- /dev/null +++ b/lib/presentation/crowdaction/crowdaction_details/widgets/crowdaction_description.dart @@ -0,0 +1,42 @@ +import 'package:flutter/material.dart'; +import 'package:shimmer/shimmer.dart'; + +import '../../../shared_widgets/expandable_markdown_text.dart'; +import '../../../themes/constants.dart'; + +class CrowdActionDescription extends StatefulWidget { + final String? description; + + const CrowdActionDescription({ + super.key, + required this.description, + }); + + @override + State createState() => _CrowdActionDescriptionState(); +} + +class _CrowdActionDescriptionState extends State { + @override + Widget build(BuildContext context) { + if (widget.description == null) { + return Shimmer.fromColors( + baseColor: kPrimaryColor100, + highlightColor: kPrimaryColor200, + child: Container( + height: 150, + width: double.infinity, + decoration: BoxDecoration( + color: kPrimaryColor100, + borderRadius: BorderRadius.circular(10), + ), + ), + ); + } + + return ExpandableMarkdown( + data: widget.description!, + themeData: Theme.of(context), + ); + } +} diff --git a/lib/presentation/shared_widgets/expandable_markdown_text.dart b/lib/presentation/shared_widgets/expandable_markdown_text.dart new file mode 100644 index 00000000..4fb18865 --- /dev/null +++ b/lib/presentation/shared_widgets/expandable_markdown_text.dart @@ -0,0 +1,140 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:flutter_markdown/flutter_markdown.dart'; + +import '../themes/constants.dart'; +import '../themes/markdown_stylesheet.dart'; +import '../utils/launch_url.dart'; + +class ExpandableMarkdown extends StatefulWidget { + final String data; + final ThemeData themeData; + + const ExpandableMarkdown({ + super.key, + required this.data, + required this.themeData, + }); + + @override + State createState() => _ExpandableMarkdownState(); +} + +class _ExpandableMarkdownState extends State + with SingleTickerProviderStateMixin { + bool readMore = true; + late String data; + late List lines; + + late AnimationController controller; + late Animation sizeAnimation; + + void onTapExpand() { + if (readMore) { + controller.forward(); + readMore = false; + } else { + controller.reverse(); + readMore = true; + } + } + + @override + void initState() { + super.initState(); + lines = LineSplitter().convert(widget.data); + + controller = AnimationController( + vsync: this, + duration: const Duration(milliseconds: 350), + ); + + sizeAnimation = IntTween( + begin: lines.length > 4 ? 4 : lines.length, + end: lines.length, + ).animate(CurvedAnimation( + parent: controller, + curve: Curves.easeInOut, + )); + + data = lines.take(sizeAnimation.value + 1).join('\n'); + + controller.addListener( + () => setState(() { + data = lines.take(sizeAnimation.value + 1).join('\n'); + }), + ); + } + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _ExpandableMarkdownBody( + data: data, + themeData: widget.themeData, + onTapLink: (_, href, __) => onTapLink(context, href), + ), + if (lines.length > 4) ...[ + GestureDetector( + onTap: onTapExpand, + child: Padding( + padding: const EdgeInsets.only(top: 5), + child: RichText( + text: TextSpan( + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + fontWeight: FontWeight.w300, + color: kAccentColor, + fontSize: 17, + height: 1.5, + ), + children: [ + if (readMore) ...[ + TextSpan(text: '... '), + ], + TextSpan( + text: readMore ? 'Read more' : 'Read less', + ), + ], + ), + ), + ), + ), + ], + ], + ); + } + + Future onTapLink(BuildContext context, String? href) async { + if (href == null || href.isEmpty) { + return; + } + + await launchUrl( + href, + useWebView: true, + context: context, + ); + } +} + +class _ExpandableMarkdownBody extends MarkdownWidget { + final ThemeData themeData; + + _ExpandableMarkdownBody({ + required super.data, + required this.themeData, + super.onTapLink, + }) : super(styleSheet: getStylesheetFromTheme(themeData)); + + @override + Widget build(BuildContext context, List? children) { + return Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: children!, + ); + } +} diff --git a/lib/presentation/themes/markdown_stylesheet.dart b/lib/presentation/themes/markdown_stylesheet.dart new file mode 100644 index 00000000..429732d2 --- /dev/null +++ b/lib/presentation/themes/markdown_stylesheet.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_markdown/flutter_markdown.dart'; + +import 'constants.dart'; + +MarkdownStyleSheet getStylesheetFromTheme(ThemeData theme) => + MarkdownStyleSheet( + p: theme.textTheme.bodyMedium?.copyWith( + fontSize: 17, + fontWeight: FontWeight.w300, + height: 1.5, + ), + a: theme.textTheme.bodyMedium?.copyWith( + fontSize: 17, + fontWeight: FontWeight.w300, + color: kAccentColor, + height: 1.5, + ), + ); diff --git a/pubspec.lock b/pubspec.lock index 1767e4ce..2d28c61d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,472 +5,413 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "47.0.0" _flutterfire_internals: dependency: transitive description: name: _flutterfire_internals - sha256: "64fcb0dbca4386356386c085142fa6e79c00a3326ceaa778a2d25f5d9ba61441" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.0.16" + version: "1.0.18" adaptive_number: dependency: transitive description: name: adaptive_number - sha256: "3a567544e9b5c9c803006f51140ad544aedc79604fd4f3f2c1380003f97c1d77" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.7.0" archive: dependency: transitive description: name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.3.6" args: dependency: transitive description: name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.4.0" async: dependency: transitive description: name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.10.0" + version: "2.9.0" auto_route: dependency: "direct main" description: name: auto_route - sha256: "12047baeca0e01df93165ef33275b32119d72699ab9a49dc64c20e78f586f96d" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "5.0.4" auto_route_generator: dependency: "direct dev" description: name: auto_route_generator - sha256: c66eaa20dbba3211cac656037f88ba836a633dda953d9f4f9f9f5809b57e4278 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "5.0.2" bloc: dependency: "direct main" description: name: bloc - sha256: "658a5ae59edcf1e58aac98b000a71c762ad8f46f1394c34a52050cafb3e11a80" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "8.1.1" bloc_test: dependency: "direct dev" description: name: bloc_test - sha256: ffbb60c17ee3d8e3784cb78071088e353199057233665541e8ac6cd438dca8ad - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "9.1.1" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.0" build: dependency: transitive description: name: build - sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.3.1" build_config: dependency: transitive description: name: build_config - sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.1.1" build_daemon: dependency: transitive description: name: build_daemon - sha256: "757153e5d9cd88253cb13f28c2fb55a537dc31fefd98137549895b5beb7c6169" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.1.1" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.10" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "93f05c041932674be039b0a2323d6cf57e5f2bbf884a3c0382f9e53fc45ebace" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.3.0" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "7.2.7" built_collection: dependency: transitive description: name: built_collection - sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "5.1.1" built_value: dependency: transitive description: name: built_value - sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "8.4.3" + version: "8.4.4" cached_network_image: dependency: "direct main" description: name: cached_network_image - sha256: fd3d0dc1d451f9a252b32d95d3f0c3c487bc41a75eba2e6097cb0b9c71491b15 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.2.3" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface - sha256: bb2b8403b4ccdc60ef5f25c70dead1f3d32d24b9d6117cfc087f496b178594a7 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" cached_network_image_web: dependency: transitive description: name: cached_network_image_web - sha256: b8eb814ebfcb4dea049680f8c1ffb2df399e4d03bf7a352c775e26fa06e02fa0 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" characters: dependency: transitive description: name: characters - sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.2.1" checked_yaml: dependency: transitive description: name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.2" cli_util: dependency: transitive description: name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.3.5" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.1.1" code_builder: dependency: transitive description: name: code_builder - sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.4.0" collection: dependency: transitive description: name: collection - sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.17.0" + version: "1.16.0" convert: dependency: transitive description: name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.1.1" country_codes: dependency: "direct main" description: name: country_codes - sha256: d6d1a9c3c12577b24eb7f6160768b06a9d8fd3f73ad6b24dcc5b7e0ac4910056 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.2.0" country_icons: dependency: "direct main" description: name: country_icons - sha256: "836435012b42c7dcc6d585d1420ce2310d70396569ef70cf5d74c740919f7320" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.2" coverage: dependency: transitive description: name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.6.3" cross_file: dependency: transitive description: name: cross_file - sha256: "0b0036e8cccbfbe0555fd83c1d31a6f30b77a96b598b35a5d36dd41f718695e9" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.3.3+4" crypto: dependency: transitive description: name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.0.2" dart_jsonwebtoken: dependency: transitive description: name: dart_jsonwebtoken - sha256: "2a42e97c0b8b4e9a42b24a71453635f445c7b66c7d7c81e3a429f37ead9fe778" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.7.1" dart_pubspec_licenses: dependency: transitive description: name: dart_pubspec_licenses - sha256: "38680e2d2fc41df3a0d435d0955b91acc382aeefcb89ef4738f8167c8288a29d" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.2" dart_style: dependency: transitive description: name: dart_style - sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.2.4" dartz: dependency: "direct main" description: name: dartz - sha256: e6acf34ad2e31b1eb00948692468c30ab48ac8250e0f0df661e29f12dd252168 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.10.1" device_frame: dependency: transitive description: name: device_frame - sha256: afe76182aec178d171953d9b4a50a43c57c7cf3c77d8b09a48bf30c8fa04dd9d - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" diff_match_patch: dependency: transitive description: name: diff_match_patch - sha256: "2efc9e6e8f449d0abe15be240e2c2a3bcd977c8d126cfd70598aee60af35c0a4" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.4.1" dots_indicator: dependency: "direct main" description: name: dots_indicator - sha256: e59dfc90030ee5a4fd4c53144a8ce97cc7a823c2067b8fb9814960cd1ae63f89 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" ed25519_edwards: dependency: transitive description: name: ed25519_edwards - sha256: "6ce0112d131327ec6d42beede1e5dfd526069b18ad45dcf654f15074ad9276cd" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.3.1" email_validator: dependency: "direct main" description: name: email_validator - sha256: e9a90f27ab2b915a27d7f9c2a7ddda5dd752d6942616ee83529b686fc086221b - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.17" equatable: dependency: "direct main" description: name: equatable - sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.5" expandable_page_view: dependency: "direct main" description: name: expandable_page_view - sha256: "210dc6961cfc29f7ed42867824eb699c9a4b9b198a7c04b8bdc1c05844969dc6" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.17" fake_async: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.3.1" ffi: dependency: transitive description: name: ffi - sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" file: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "6.1.4" firebase_auth: dependency: "direct main" description: name: firebase_auth - sha256: e946a21254784116d32e497e09b851b4d03a3c65880e80d6939a720dfce88aed - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.2.2" firebase_auth_mocks: dependency: "direct dev" description: name: firebase_auth_mocks - sha256: c4398019066d1bd0e91a0ba6067272a3a60c7ff8b211aa9c2139b273abe98914 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.10.3" firebase_auth_platform_interface: dependency: transitive description: name: firebase_auth_platform_interface - sha256: c645fec50b0391aa878288f58fa4fe9762c271380c457aedf5c7c9b718604f68 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "6.11.11" + version: "6.12.0" firebase_auth_web: dependency: transitive description: name: firebase_auth_web - sha256: bf8f3093c141abd0a624e0244864154d9db694682ba0cc1fcfdf60ecb6f7f2e3 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "5.2.2" + version: "5.2.10" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: fe30ac230f12f8836bb97e6e09197340d3c584526825b1746ea362a82e1e43f7 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.7.0" + version: "2.8.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: "5615b30c36f55b2777d0533771deda7e5730e769e5d3cb7fda79e9bed86cfa55" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.5.3" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: "291fbcace608aca6c860652e1358ef89752be8cc3ef227f8bbcd1e62775b833a" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.2.1" + version: "2.2.2" firebase_crashlytics: dependency: "direct main" description: name: firebase_crashlytics - sha256: "816bbb920316c8fe257b460b8856b01e274e867a729961bf7a3be6322cdf13e1" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "3.0.15" + version: "3.0.17" firebase_crashlytics_platform_interface: dependency: transitive description: name: firebase_crashlytics_platform_interface - sha256: "120e47b9bac3654848d1bdc60b8027f3574b53ee0b81b1a2e5e76ddaa58f6645" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "3.3.15" + version: "3.3.17" fixnum: dependency: transitive description: name: fixnum - sha256: "04be3e934c52e082558cc9ee21f42f5c1cd7a1262f4c63cd0357c08d5bba81ec" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.1" flutter: @@ -482,66 +423,65 @@ packages: dependency: "direct main" description: name: flutter_bloc - sha256: "434951eea948dbe87f737b674281465f610b8259c16c097b8163ce138749a775" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "8.1.2" flutter_blurhash: dependency: transitive description: name: flutter_blurhash - sha256: "05001537bd3fac7644fa6558b09ec8c0a3f2eba78c0765f88912882b1331a5c6" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.7.0" flutter_cache_manager: dependency: transitive description: name: flutter_cache_manager - sha256: "32cd900555219333326a2d0653aaaf8671264c29befa65bbd9856d204a4c9fb3" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.3.0" flutter_dotenv: dependency: "direct main" description: name: flutter_dotenv - sha256: d9283d92059a22e9834bc0a31336658ffba77089fb6f3cc36751f1fc7c6661a3 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "5.0.2" flutter_launcher_icons: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: ce0e501cfc258907842238e4ca605e74b7fd1cdf04b3b43e86c43f3e40a1592c - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.11.0" flutter_lints: dependency: "direct dev" description: name: flutter_lints - sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" + flutter_markdown: + dependency: "direct main" + description: + name: flutter_markdown + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.14" flutter_oss_licenses: dependency: "direct dev" description: name: flutter_oss_licenses - sha256: eb15e1146b101dca063a177f6d339dfb85b639a9e2d2b71c18188d5fb2144869 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "4bef634684b2c7f3468c77c766c831229af829a0cd2d4ee6c1b99558bd14e5d2" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" + version: "2.0.9" flutter_test: dependency: "direct dev" description: flutter @@ -556,632 +496,560 @@ packages: dependency: "direct dev" description: name: freezed - sha256: "4179d41127bc7a67dc3f58ceec1d22f1cdf10470653cb86eda2a63f81b4920c7" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.2.0" freezed_annotation: dependency: "direct main" description: name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.2.0" frontend_server_client: dependency: transitive description: name: frontend_server_client - sha256: "4f4a162323c86ffc1245765cfe138872b8f069deb42f7dbb36115fa27f31469b" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.3" get_it: dependency: "direct main" description: name: get_it - sha256: "290fde3a86072e4b37dbb03c07bec6126f0ecc28dad403c12ffe2e5a2d751ab7" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "7.2.0" glob: dependency: transitive description: name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.1" go_router: dependency: transitive description: name: go_router - sha256: "25ae21384b758eb80daff113fe8bfb785c2dd17b69fe4885008fe764b26fd1ca" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.1.1" graphs: dependency: transitive description: name: graphs - sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.2.0" http: dependency: "direct main" description: name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.13.5" http_multi_server: dependency: transitive description: name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.2.1" http_parser: dependency: transitive description: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.0.2" image: dependency: "direct main" description: name: image - sha256: "8e9d133755c3e84c73288363e6343157c383a0c6c56fc51afcc5d4d7180306d6" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.3.0" image_cropper: dependency: "direct main" description: name: image_cropper - sha256: "85324928ee8a8be35a529446435ca53067865b9353c8681983472eeec66d780f" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.0.1" image_cropper_for_web: dependency: transitive description: name: image_cropper_for_web - sha256: "09e93a8ec0435adcaa23622ac090442872f18145d70b9ff605ffedcf97d56255" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.3" image_cropper_platform_interface: dependency: transitive description: name: image_cropper_platform_interface - sha256: "62349e3aab63873ea9b9ab9f69d036ab8a0d74b3004beec4303981386cb9273f" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.0.3" image_picker: dependency: "direct main" description: name: image_picker - sha256: "22207768556b82d55ec70166824350fee32298732d5efa4d6e756f848f51f66a" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.8.6+3" + version: "0.8.7" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: "68d067baf7f6e401b1124ee83dd6967e67847314250fd68012aab34a69beb344" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.8.5+7" + version: "0.8.6+4" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: "66fc6e3877bbde82c33d122f3588777c3784ac5bd7d1cdd79213ef7aecb85b34" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.11" + version: "2.1.12" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: "39aa70b5f1e5e7c94585b9738632d5fdb764a5655e40cd9e7b95fbd2fc50c519" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.8.6+9" + version: "0.8.7+1" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface - sha256: "1991219d9dbc42a99aff77e663af8ca51ced592cd6685c9485e3458302d3d4f8" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.6.3" infinite_scroll_pagination: dependency: "direct main" description: name: infinite_scroll_pagination - sha256: "9517328f4e373f08f57dbb11c5aac5b05554142024d6b60c903f3b73476d52db" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.2.0" injectable: dependency: "direct main" description: name: injectable - sha256: "7dab7d341feb40a0590d9ff6261aea9495522005e2c6763f9161a4face916f7b" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" injectable_generator: dependency: "direct dev" description: name: injectable_generator - sha256: b206de637c1960007b0beebe447a6ee3cf30c9e5f14542083024a9d0c49a7a09 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.4" intl: dependency: "direct main" description: name: intl - sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.18.0" + version: "0.17.0" io: dependency: transitive description: name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.4" ionicons: dependency: "direct main" description: name: ionicons - sha256: "5496bc65a16115ecf05b15b78f494ee4a8869504357668f0a11d689e970523cf" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.2.2" js: dependency: transitive description: name: js - sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.6.5" + version: "0.6.4" json_annotation: dependency: "direct main" description: name: json_annotation - sha256: "3520fa844009431b5d4491a5a778603520cdc399ab3406332dcc50f93547258c" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.7.0" json_serializable: dependency: "direct dev" description: name: json_serializable - sha256: f3c2c18a7889580f71926f30c1937727c8c7d4f3a435f8f5e8b0ddd25253ef5d - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "6.5.4" lint: dependency: "direct dev" description: name: lint - sha256: "3e9343b1cededcfb1e8b40d0dbd3592b7a1c6c0121545663a991433390c2bc97" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" lints: dependency: transitive description: name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" logging: dependency: transitive description: name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.1.1" + markdown: + dependency: transitive + description: + name: markdown + url: "https://pub.dartlang.org" + source: hosted + version: "7.0.1" matcher: dependency: transitive description: name: matcher - sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.12.13" + version: "0.12.12" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.2.0" + version: "0.1.5" meta: dependency: transitive description: name: meta - sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.8.0" mime: dependency: transitive description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.4" mock_exceptions: dependency: transitive description: name: mock_exceptions - sha256: "6e3e623712d2c6106ffe9e14732912522b565ddaa82a8dcee6cd4441b5984056" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.8.2" mocktail: dependency: "direct main" description: name: mocktail - sha256: "80a996cd9a69284b3dc521ce185ffe9150cde69767c2d3a0720147d93c0cef53" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.3.0" nested: dependency: transitive description: name: nested - sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" node_preamble: dependency: transitive description: name: node_preamble - sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.1" + version: "2.0.2" octo_image: dependency: transitive description: name: octo_image - sha256: "107f3ed1330006a3bea63615e81cf637433f5135a52466c7caa0e7152bca9143" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" package_config: dependency: transitive description: name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" package_info_plus: dependency: "direct main" description: name: package_info_plus - sha256: "8df5ab0a481d7dc20c0e63809e90a588e496d276ba53358afc4c4443d0a00697" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.0.3" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" path: dependency: transitive description: name: path - sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.8.2" path_provider: dependency: transitive description: name: path_provider - sha256: "04890b994ee89bfa80bf3080bfec40d5a92c5c7a785ebb02c13084a099d2b6f9" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.13" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "7623b7d4be0f0f7d9a8b5ee6879fc13e4522d4c875ab86801dee4af32b54b83e" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.23" + version: "2.0.24" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: eec003594f19fe2456ea965ae36b3fc967bc5005f508890aafe31fa75e41d972 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.2.0" path_provider_linux: dependency: transitive description: name: path_provider_linux - sha256: "525ad5e07622d19447ad740b1ed5070031f7a5437f44355ae915ff56e986429a" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.9" + version: "2.1.10" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.6" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: "642ddf65fde5404f83267e8459ddb4556316d3ee6d511ed193357e25caa3632d" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.5" pedantic: dependency: transitive description: name: pedantic - sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.11.1" petitparser: dependency: transitive description: name: petitparser - sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "5.1.0" phone_number: dependency: "direct main" description: name: phone_number - sha256: "42cac4ca32146d83cc8a9c8432dc2d901d40334f0e2b02a3ec7d8237b80ebec3" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" platform: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.1.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.4" pointycastle: dependency: transitive description: name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.6.2" pool: dependency: transitive description: name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.5.1" process: dependency: transitive description: name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.2.4" provider: dependency: transitive description: name: provider - sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "6.0.5" pub_semver: dependency: transitive description: name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.3" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.2.1" recase: dependency: transitive description: name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "4.1.0" rive: dependency: "direct main" description: name: rive - sha256: "21b9364d578d3f55f36e18da0235f58adf26edc328505e9bac1824f1bb297f33" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.10.2" + version: "0.10.3" rive_common: dependency: transitive description: name: rive_common - sha256: f98a451a5d6c8c82693b4eab1dd65413800bab69ac7f9f8fad79fd39bb5ba3ab - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.0.2" + version: "0.0.3" rxdart: dependency: "direct main" description: name: rxdart - sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.27.7" share_plus: dependency: "direct main" description: name: share_plus - sha256: "8c6892037b1824e2d7e8f59d54b3105932899008642e6372e5079c6939b4b625" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "6.3.1" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "82ddd4ab9260c295e6e39612d4ff00390b9a7a21f1bb1da771e2f232d80ab8a1" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.2.0" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: ee6257848f822b8481691f20c3e6d2bfee2e9eccb2a3d249907fcfb198c55b41 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.18" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: a51a4f9375097f94df1c6e0a49c0374440d31ab026b59d58a7e7660675879db4 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.16" + version: "2.0.17" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "6b84fdf06b32bb336f972d373cd38b63734f3461ba56ac2ba01b56d052796259" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.5" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: d7fb71e6e20cd3dfffcc823a28da3539b392e53ed5fc5c2b90b55fdaa8a7e8fa - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.5" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: "824bfd02713e37603b2bdade0842e47d56e7db32b1dcdd1cae533fb88e2913fc" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.1" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: "6737b757e49ba93de2a233df229d0b6a87728cea1684da828cbc718b65dcf9d7" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.0.6" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: bd014168e8484837c39ef21065b78f305810ceabc1d4f90be6e3b392ce81b46d - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.5" shelf: dependency: transitive description: name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.4.0" shelf_packages_handler: dependency: transitive description: name: shelf_packages_handler - sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.0.1" shelf_static: dependency: transitive description: name: shelf_static - sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.1.1" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.3" shimmer: dependency: "direct main" description: name: shimmer - sha256: "1f1009b5845a1f88f1c5630212279540486f97409e9fc3f63883e71070d107bf" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" sky_engine: @@ -1193,360 +1061,315 @@ packages: dependency: transitive description: name: sliver_tools - sha256: bfa69411ebb203cc1a115b1e8bc7935b893eb381fdcf8d453b40c0d4e1db3247 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.2.9" source_gen: dependency: transitive description: name: source_gen - sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.2.6" source_helper: dependency: transitive description: name: source_helper - sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.3.3" source_map_stack_trace: dependency: transitive description: name: source_map_stack_trace - sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.1" source_maps: dependency: transitive description: name: source_maps - sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.10.12" source_span: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.9.1" + version: "1.9.0" sqflite: dependency: transitive description: name: sqflite - sha256: "851d5040552cf911f4cabda08d003eca76b27da3ed0002978272e27c8fbf8ecc" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.2.5" + version: "2.2.6" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: bfd6973aaeeb93475bc0d875ac9aefddf7965ef22ce09790eb963992ffc5183f - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.4.2+2" + version: "2.4.3" stack_trace: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.11.0" + version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.0" stream_transform: dependency: transitive description: name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.1.1" synchronized: dependency: transitive description: name: synchronized - sha256: "33b31b6beb98100bf9add464a36a8dd03eb10c7a8cf15aeec535e9b054aaf04b" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.0.1" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.2.1" test: dependency: transitive description: name: test - sha256: a5fcd2d25eeadbb6589e80198a47d6a464ba3e2049da473943b8af9797900c2d - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.22.0" + version: "1.21.4" test_api: dependency: transitive description: name: test_api - sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.4.16" + version: "0.4.12" test_core: dependency: transitive description: name: test_core - sha256: "0ef9755ec6d746951ba0aabe62f874b707690b5ede0fecc818b138fcc9b14888" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.4.20" + version: "0.4.16" timing: dependency: transitive description: name: timing - sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.1" typed_data: dependency: transitive description: name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.3.1" url_launcher: dependency: "direct main" description: name: url_launcher - sha256: "75f2846facd11168d007529d6cd8fcb2b750186bea046af9711f10b907e1587e" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "6.1.10" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "1f4d9ebe86f333c15d318f81dcdc08b01d45da44af74552608455ebdc08d9732" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "6.0.24" + version: "6.0.25" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: c9cd648d2f7ab56968e049d4e9116f96a85517f1dd806b96a86ea1018a3a82e5 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "6.1.1" + version: "6.1.2" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: e29039160ab3730e42f3d811dc2a6d5f2864b90a70fb765ea60144b03307f682 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "3.0.3" + version: "3.0.4" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "2dddb3291a57b074dade66b5e07e64401dd2487caefd4e9e2f467138d8c7eb06" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "3.0.3" + version: "3.0.4" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "6c9ca697a5ae218ce56cece69d46128169a58aa8653c1b01d26fcd4aad8c4370" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.2" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "574cfbe2390666003c3a1d129bdc4574aaa6728f0c00a4829a81c316de69dd9b" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.15" + version: "2.0.16" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "97c9067950a0d09cbd93e2e3f0383d1403989362b97102fbf446473a48079a4b" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "3.0.4" + version: "3.0.5" uuid: dependency: transitive description: name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.0.7" vector_math: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.2" vm_service: dependency: transitive description: name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "9.4.0" watcher: dependency: transitive description: name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.3.0" webkit_inspection_protocol: dependency: transitive description: name: webkit_inspection_protocol - sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" webview_flutter: dependency: "direct main" description: name: webview_flutter - sha256: "9ba213434f13e760ea0f175fbc4d6bb6aeafd7dfc6c7d973f15d3e47a5d6686e" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "4.0.5" + version: "4.0.6" webview_flutter_android: dependency: transitive description: name: webview_flutter_android - sha256: "48c8cfb023168473c0a3a4c21ffea6c23a32cc7156701c39f618b303c6a3c96e" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "3.3.1" + version: "3.4.2" webview_flutter_platform_interface: dependency: transitive description: name: webview_flutter_platform_interface - sha256: df6472164b3f4eaf3280422227f361dc8424b106726b7f21d79a8656ba53f71f - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.1.0" webview_flutter_wkwebview: dependency: transitive description: name: webview_flutter_wkwebview - sha256: "283a38c2a2544768033864c698e0133aa9eee0f2c800f494b538a3d1044f7ecb" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "3.1.1" + version: "3.2.1" widgetbook: dependency: "direct dev" description: name: widgetbook - sha256: c42a3d414d19c008d90f0b6df669c18bb151c5f3012ed073498d96cf133e9caf - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.4.1" widgetbook_annotation: dependency: "direct main" description: name: widgetbook_annotation - sha256: "1f12e090865200191ab6b79b7ed4b108a191bf5de3140f92917c8c75e7e3f916" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" widgetbook_generator: dependency: "direct dev" description: name: widgetbook_generator - sha256: b6d00fef564fa5c0b98e26a72a27d52d03400c36409e56be25c0f09cfee3307b - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "2.4.1" widgetbook_models: dependency: transitive description: name: widgetbook_models - sha256: "40899314ab0cce1a52b189ee12b79138ba59f445229f850fb326f579c8f63045" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "0.0.7" win32: dependency: transitive description: name: win32 - sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.1.3" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" xml: dependency: transitive description: name: xml - sha256: ac0e3f4bf00ba2708c33fbabbbe766300e509f8c82dbd4ab6525039813f7e2fb - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "6.1.0" yaml: dependency: transitive description: name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted version: "3.1.1" sdks: diff --git a/pubspec.yaml b/pubspec.yaml index f9bced27..ede9d741 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -8,7 +8,7 @@ publish_to: "none" version: 1.2.0+1 environment: - sdk: ">=2.18.2 <3.0.0" + sdk: ">=2.18.6 <3.0.0" dependencies: auto_route: ^5.0.2 @@ -28,6 +28,7 @@ dependencies: sdk: flutter flutter_bloc: ^8.1.1 flutter_dotenv: ^5.0.2 + flutter_markdown: ^0.6.14 freezed_annotation: ^2.2.0 get_it: ^7.2.0 http: ^0.13.5 @@ -36,7 +37,7 @@ dependencies: image_picker: ^0.8.6 infinite_scroll_pagination: ^3.2.0 injectable: ^2.1.0 - intl: ^0.18.0 + intl: ^0.17.0 ionicons: ^0.2.1 json_annotation: ^4.7.0 mocktail: ^0.3.0