Bump deps (#253)
* Migrate first chunk * Upgrade rest of the deps * Remove unawaited * Enabled new lints * Remove old TODO * Update podlock
This commit is contained in:
parent
992a62b33c
commit
e2f9c43675
|
@ -32,13 +32,16 @@ linter:
|
|||
- directives_ordering
|
||||
- empty_catches
|
||||
- empty_constructor_bodies
|
||||
- eol_at_end_of_file
|
||||
- exhaustive_cases
|
||||
- file_names
|
||||
- hash_and_equals
|
||||
- implementation_imports
|
||||
- invariant_booleans
|
||||
- library_names
|
||||
- library_prefixes
|
||||
- non_constant_identifier_names
|
||||
- noop_primitive_operations
|
||||
- null_check_on_nullable_type_parameter
|
||||
- omit_local_variable_types
|
||||
- one_member_abstracts
|
||||
|
@ -101,6 +104,7 @@ linter:
|
|||
- unrelated_type_equality_checks
|
||||
- use_full_hex_values_for_flutter_colors
|
||||
- use_is_even_rather_than_modulo
|
||||
- use_test_throws_matchers
|
||||
- use_raw_strings
|
||||
- use_rethrow_when_possible
|
||||
- use_setters_to_change_properties
|
||||
|
|
|
@ -5,11 +5,11 @@ PODS:
|
|||
- FMDB/standard (2.7.5)
|
||||
- image_picker (0.0.1):
|
||||
- Flutter
|
||||
- package_info (0.0.1):
|
||||
- package_info_plus (0.4.5):
|
||||
- Flutter
|
||||
- path_provider (0.0.1):
|
||||
- Flutter
|
||||
- share (0.0.1):
|
||||
- share_plus (0.0.1):
|
||||
- Flutter
|
||||
- shared_preferences (0.0.1):
|
||||
- Flutter
|
||||
|
@ -22,9 +22,9 @@ PODS:
|
|||
DEPENDENCIES:
|
||||
- Flutter (from `Flutter`)
|
||||
- image_picker (from `.symlinks/plugins/image_picker/ios`)
|
||||
- package_info (from `.symlinks/plugins/package_info/ios`)
|
||||
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||
- path_provider (from `.symlinks/plugins/path_provider/ios`)
|
||||
- share (from `.symlinks/plugins/share/ios`)
|
||||
- share_plus (from `.symlinks/plugins/share_plus/ios`)
|
||||
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
|
||||
- sqflite (from `.symlinks/plugins/sqflite/ios`)
|
||||
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
|
||||
|
@ -38,12 +38,12 @@ EXTERNAL SOURCES:
|
|||
:path: Flutter
|
||||
image_picker:
|
||||
:path: ".symlinks/plugins/image_picker/ios"
|
||||
package_info:
|
||||
:path: ".symlinks/plugins/package_info/ios"
|
||||
package_info_plus:
|
||||
:path: ".symlinks/plugins/package_info_plus/ios"
|
||||
path_provider:
|
||||
:path: ".symlinks/plugins/path_provider/ios"
|
||||
share:
|
||||
:path: ".symlinks/plugins/share/ios"
|
||||
share_plus:
|
||||
:path: ".symlinks/plugins/share_plus/ios"
|
||||
shared_preferences:
|
||||
:path: ".symlinks/plugins/shared_preferences/ios"
|
||||
sqflite:
|
||||
|
@ -52,16 +52,16 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/url_launcher/ios"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c
|
||||
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
||||
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
|
||||
image_picker: 50e7c7ff960e5f58faa4d1f4af84a771c671bc4a
|
||||
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
|
||||
image_picker: e06f7a68f000bd36f552c1847e33cda96ed31f1f
|
||||
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
|
||||
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
|
||||
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
|
||||
share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68
|
||||
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
|
||||
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
|
||||
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
|
||||
|
||||
PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c
|
||||
|
||||
COCOAPODS: 1.10.1
|
||||
COCOAPODS: 1.11.0
|
||||
|
|
|
@ -3,8 +3,6 @@ import 'dart:async';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
|
||||
import 'ref.dart';
|
||||
|
||||
class Debounce {
|
||||
final bool loading;
|
||||
final VoidCallback callback;
|
||||
|
@ -27,14 +25,14 @@ Debounce useDebounce(
|
|||
final timerHandle = useRef<Timer?>(null);
|
||||
|
||||
cancel() {
|
||||
timerHandle.current?.cancel();
|
||||
timerHandle.value?.cancel();
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
useEffect(() => () => timerHandle.current?.cancel(), []);
|
||||
useEffect(() => () => timerHandle.value?.cancel(), []);
|
||||
|
||||
start() {
|
||||
timerHandle.current = Timer(delayDuration, () async {
|
||||
timerHandle.value = Timer(delayDuration, () async {
|
||||
loading.value = true;
|
||||
await callback();
|
||||
cancel();
|
||||
|
|
|
@ -3,8 +3,6 @@ import 'dart:async';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
|
||||
import 'ref.dart';
|
||||
|
||||
class DelayedLoading {
|
||||
final bool pending;
|
||||
final bool loading;
|
||||
|
@ -32,11 +30,11 @@ DelayedLoading useDelayedLoading(
|
|||
loading: loading.value,
|
||||
pending: pending.value,
|
||||
start: () {
|
||||
timerHandle.current = Timer(delayDuration, () => loading.value = true);
|
||||
timerHandle.value = Timer(delayDuration, () => loading.value = true);
|
||||
pending.value = true;
|
||||
},
|
||||
cancel: () {
|
||||
timerHandle.current?.cancel();
|
||||
timerHandle.value?.cancel();
|
||||
pending.value = false;
|
||||
loading.value = false;
|
||||
},
|
||||
|
|
|
@ -3,7 +3,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
|||
|
||||
/// creates an [AsyncSnapshot] from the Future returned from the valueBuilder.
|
||||
/// [keys] can be used to rebuild the Future
|
||||
AsyncSnapshot<T?> useMemoFuture<T>(
|
||||
AsyncSnapshot<T> useMemoFuture<T>(
|
||||
Future<T> Function() valueBuilder, [
|
||||
List<Object?> keys = const <Object>[],
|
||||
]) =>
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
|
||||
class Ref<T> {
|
||||
T current;
|
||||
Ref(this.current);
|
||||
}
|
||||
|
||||
/// see React's useRef
|
||||
Ref<T> useRef<T>(T initialValue) => useMemoized(() => Ref(initialValue));
|
|
@ -18,8 +18,10 @@ class Refreshable<T> {
|
|||
///
|
||||
/// `keys` will re-run the initial fetching thus yielding a
|
||||
/// loading state in the AsyncSnapshot
|
||||
Refreshable<T?> useRefreshable<T>(AsyncValueGetter<T> fetcher,
|
||||
[List<Object> keys = const <Object>[]]) {
|
||||
Refreshable<T> useRefreshable<T extends Object>(
|
||||
AsyncValueGetter<T> fetcher, [
|
||||
List<Object> keys = const <Object>[],
|
||||
]) {
|
||||
final newData = useState<T?>(null);
|
||||
final snapshot = useMemoFuture(() async {
|
||||
newData.value = null;
|
||||
|
@ -28,7 +30,7 @@ Refreshable<T?> useRefreshable<T>(AsyncValueGetter<T> fetcher,
|
|||
|
||||
final outSnapshot = () {
|
||||
if (newData.value != null) {
|
||||
return AsyncSnapshot.withData(ConnectionState.done, newData.value);
|
||||
return AsyncSnapshot.withData(ConnectionState.done, newData.value!);
|
||||
}
|
||||
return snapshot;
|
||||
}();
|
||||
|
|
|
@ -114,7 +114,7 @@ class CreatePostPage extends HookWidget {
|
|||
|
||||
uploadPicture(Jwt token) async {
|
||||
try {
|
||||
final pic = await imagePicker.getImage(source: ImageSource.gallery);
|
||||
final pic = await imagePicker.pickImage(source: ImageSource.gallery);
|
||||
// pic is null when the picker was cancelled
|
||||
if (pic != null) {
|
||||
imageUploadLoading.value = true;
|
||||
|
|
|
@ -38,7 +38,7 @@ class InstancePage extends HookWidget {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Theme.of(context);
|
||||
final siteSnap = useFuture(siteFuture, initialData: null);
|
||||
final siteSnap = useFuture(siteFuture);
|
||||
final colorOnCard = textColorBasedOnBackground(theme.cardColor);
|
||||
final accStore = useAccountsStore();
|
||||
final scrollController = useScrollController();
|
||||
|
@ -233,7 +233,7 @@ class _AboutTab extends HookWidget {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Theme.of(context);
|
||||
final commSnap = useFuture(communitiesFuture, initialData: null);
|
||||
final commSnap = useFuture(communitiesFuture);
|
||||
final accStore = useAccountsStore();
|
||||
|
||||
void goToCommunities() {
|
||||
|
|
|
@ -8,7 +8,6 @@ import 'package:url_launcher/url_launcher.dart' as ul;
|
|||
|
||||
import '../hooks/delayed_loading.dart';
|
||||
import '../hooks/image_picker.dart';
|
||||
import '../hooks/ref.dart';
|
||||
import '../hooks/stores.dart';
|
||||
import '../l10n/l10n.dart';
|
||||
import '../util/more_icon.dart';
|
||||
|
@ -151,8 +150,8 @@ class _ManageAccount extends HookWidget {
|
|||
showReadPosts: showReadPosts.value,
|
||||
sendNotificationsToEmail: sendNotificationsToEmail.value,
|
||||
auth: token.raw,
|
||||
avatar: avatar.current,
|
||||
banner: banner.current,
|
||||
avatar: avatar.value,
|
||||
banner: banner.value,
|
||||
matrixUserId: matrixUserController.text.isEmpty
|
||||
? null
|
||||
: matrixUserController.text,
|
||||
|
@ -163,8 +162,8 @@ class _ManageAccount extends HookWidget {
|
|||
email: emailController.text.isEmpty ? null : emailController.text,
|
||||
));
|
||||
|
||||
informAcceptedAvatarRef.current?.call();
|
||||
informAcceptedBannerRef.current?.call();
|
||||
informAcceptedAvatarRef.value?.call();
|
||||
informAcceptedBannerRef.value?.call();
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
|
||||
content: Text('User settings saved'),
|
||||
|
@ -243,16 +242,16 @@ class _ManageAccount extends HookWidget {
|
|||
_ImagePicker(
|
||||
user: user,
|
||||
name: L10n.of(context)!.avatar,
|
||||
initialUrl: avatar.current,
|
||||
onChange: (value) => avatar.current = value,
|
||||
initialUrl: avatar.value,
|
||||
onChange: (value) => avatar.value = value,
|
||||
informAcceptedRef: informAcceptedAvatarRef,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
_ImagePicker(
|
||||
user: user,
|
||||
name: L10n.of(context)!.banner,
|
||||
initialUrl: banner.current,
|
||||
onChange: (value) => banner.current = value,
|
||||
initialUrl: banner.value,
|
||||
onChange: (value) => banner.value = value,
|
||||
informAcceptedRef: informAcceptedBannerRef,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
|
@ -396,7 +395,7 @@ class _ImagePicker extends HookWidget {
|
|||
/// _ImagePicker will set the ref to a callback that can inform _ImagePicker
|
||||
/// that the current picture is accepted
|
||||
/// and should no longer allow for deletion of it
|
||||
final Ref<VoidCallback?> informAcceptedRef;
|
||||
final ObjectRef<VoidCallback?> informAcceptedRef;
|
||||
|
||||
const _ImagePicker({
|
||||
Key? key,
|
||||
|
@ -413,7 +412,7 @@ class _ImagePicker extends HookWidget {
|
|||
// basically saves the very first initialUrl
|
||||
final initialUrl = useRef(this.initialUrl);
|
||||
final theme = Theme.of(context);
|
||||
final url = useState(initialUrl.current);
|
||||
final url = useState(initialUrl.value);
|
||||
final pictrsDeleteToken = useState<PictrsUploadFile?>(null);
|
||||
|
||||
final imagePicker = useImagePicker();
|
||||
|
@ -422,7 +421,7 @@ class _ImagePicker extends HookWidget {
|
|||
|
||||
uploadImage() async {
|
||||
try {
|
||||
final pic = await imagePicker.getImage(source: ImageSource.gallery);
|
||||
final pic = await imagePicker.pickImage(source: ImageSource.gallery);
|
||||
// pic is null when the picker was cancelled
|
||||
if (pic != null) {
|
||||
delayedLoading.start();
|
||||
|
@ -456,15 +455,15 @@ class _ImagePicker extends HookWidget {
|
|||
|
||||
if (updateState) {
|
||||
pictrsDeleteToken.value = null;
|
||||
url.value = initialUrl.current;
|
||||
url.value = initialUrl.value;
|
||||
onChange?.call(url.value);
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(() {
|
||||
informAcceptedRef.current = () {
|
||||
informAcceptedRef.value = () {
|
||||
pictrsDeleteToken.value = null;
|
||||
initialUrl.current = url.value;
|
||||
initialUrl.value = url.value;
|
||||
};
|
||||
|
||||
return () {
|
||||
|
|
|
@ -314,7 +314,6 @@ class AccountsConfigPage extends HookWidget {
|
|||
);
|
||||
}
|
||||
|
||||
// TODO: speeddial v3 has really stupid defaults here https://github.com/darioielardi/flutter_speed_dial/issues/149
|
||||
return Scaffold(
|
||||
key: _scaffoldKey,
|
||||
appBar: AppBar(
|
||||
|
@ -324,12 +323,10 @@ class AccountsConfigPage extends HookWidget {
|
|||
animatedIcon: AnimatedIcons.menu_close, // TODO: change to + => x
|
||||
curve: Curves.bounceIn,
|
||||
tooltip: 'Add account or instance',
|
||||
overlayColor: theme.canvasColor,
|
||||
children: [
|
||||
SpeedDialChild(
|
||||
child: const Icon(Icons.person_add),
|
||||
label: 'Add account',
|
||||
labelBackgroundColor: theme.canvasColor,
|
||||
onTap: () => showCupertinoModalPopup(
|
||||
context: context,
|
||||
builder: (_) =>
|
||||
|
@ -337,7 +334,6 @@ class AccountsConfigPage extends HookWidget {
|
|||
),
|
||||
SpeedDialChild(
|
||||
child: const Icon(Icons.dns),
|
||||
labelBackgroundColor: theme.canvasColor,
|
||||
label: 'Add instance',
|
||||
onTap: () => showCupertinoModalPopup(
|
||||
context: context, builder: (_) => const AddInstancePage()),
|
||||
|
|
|
@ -25,7 +25,7 @@ class UserPage extends HookWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final userDetailsSnap = useFuture(_userDetails, initialData: null);
|
||||
final userDetailsSnap = useFuture(_userDetails);
|
||||
|
||||
final body = () {
|
||||
if (userDetailsSnap.hasData) {
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:share/share.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
|
||||
/// A `package:share` wrapper that fallbacks to copying contents to the clipboard
|
||||
/// on platforms that do not support native sharing
|
||||
|
@ -10,16 +12,28 @@ Future<void> share(
|
|||
Rect? sharePositionOrigin,
|
||||
required BuildContext context,
|
||||
}) async {
|
||||
if (Platform.isLinux || Platform.isWindows) {
|
||||
await _fallbackShare(text, context: context);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
return await Share.share(
|
||||
await Share.share(
|
||||
text,
|
||||
subject: subject,
|
||||
sharePositionOrigin: sharePositionOrigin,
|
||||
);
|
||||
} on MissingPluginException {
|
||||
await Clipboard.setData(ClipboardData(text: text));
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(content: Text('Copied data to clipboard!')),
|
||||
);
|
||||
await _fallbackShare(text, context: context);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _fallbackShare(
|
||||
String text, {
|
||||
required BuildContext context,
|
||||
}) async {
|
||||
await Clipboard.setData(ClipboardData(text: text));
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(content: Text('Copied data to clipboard!')),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
/// Explicitely indicate to the `unawaited_futures` lint
|
||||
/// that the future is not awaited for on purpose
|
||||
void unawaited<T>(Future<T> future) {}
|
|
@ -1,9 +1,8 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:flutter_markdown/flutter_markdown.dart';
|
||||
import 'package:package_info/package_info.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
|
||||
import '../gen/assets.gen.dart';
|
||||
import '../hooks/memo_future.dart';
|
||||
|
@ -17,21 +16,7 @@ class AboutTile extends HookWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final packageInfoSnap = useMemoFuture(
|
||||
() async {
|
||||
try {
|
||||
return await PackageInfo.fromPlatform();
|
||||
} on MissingPluginException {
|
||||
// when we get here it means PackageInfo does not support this platform
|
||||
return PackageInfo(
|
||||
appName: 'lemmur',
|
||||
packageName: '',
|
||||
version: '',
|
||||
buildNumber: '',
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
final packageInfoSnap = useMemoFuture(PackageInfo.fromPlatform);
|
||||
final assetBundle = DefaultAssetBundle.of(context);
|
||||
final changelogSnap =
|
||||
useMemoFuture(() => assetBundle.loadString('CHANGELOG.md'));
|
||||
|
|
|
@ -4,7 +4,6 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
|
||||
import '../hooks/ref.dart';
|
||||
import 'bottom_safe.dart';
|
||||
|
||||
class InfiniteScrollController {
|
||||
|
@ -77,9 +76,9 @@ class InfiniteScroll<T> extends HookWidget {
|
|||
if (controller != null) {
|
||||
controller?.clear = () {
|
||||
data.value = [];
|
||||
hasMore.current = true;
|
||||
page.current = 1;
|
||||
dataSet.current.clear();
|
||||
hasMore.value = true;
|
||||
page.value = 1;
|
||||
dataSet.value.clear();
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -89,9 +88,9 @@ class InfiniteScroll<T> extends HookWidget {
|
|||
return RefreshIndicator(
|
||||
onRefresh: () async {
|
||||
data.value = [];
|
||||
hasMore.current = true;
|
||||
page.current = 1;
|
||||
dataSet.current.clear();
|
||||
hasMore.value = true;
|
||||
page.value = 1;
|
||||
dataSet.value.clear();
|
||||
|
||||
await HapticFeedback.mediumImpact();
|
||||
await Future.delayed(const Duration(seconds: 1));
|
||||
|
@ -107,35 +106,35 @@ class InfiniteScroll<T> extends HookWidget {
|
|||
i -= 1;
|
||||
|
||||
// if we are done but we have no data it means the list is empty
|
||||
if (!hasMore.current && data.value.isEmpty) {
|
||||
if (!hasMore.value && data.value.isEmpty) {
|
||||
return Center(child: noItems);
|
||||
}
|
||||
|
||||
// reached the bottom, fetch more
|
||||
if (i == data.value.length) {
|
||||
// if there are no more, skip
|
||||
if (!hasMore.current) {
|
||||
if (!hasMore.value) {
|
||||
return const BottomSafe();
|
||||
}
|
||||
|
||||
// if it's already fetching more, skip
|
||||
if (!isFetching.current) {
|
||||
isFetching.current = true;
|
||||
fetcher(page.current, batchSize).then((incoming) {
|
||||
if (!isFetching.value) {
|
||||
isFetching.value = true;
|
||||
fetcher(page.value, batchSize).then((incoming) {
|
||||
// if got less than the batchSize, mark the list as done
|
||||
if (incoming.length < batchSize) {
|
||||
hasMore.current = false;
|
||||
hasMore.value = false;
|
||||
}
|
||||
|
||||
final newData = incoming.where(
|
||||
(e) => !dataSet.current.contains(uniquePropFunc(e)),
|
||||
(e) => !dataSet.value.contains(uniquePropFunc(e)),
|
||||
);
|
||||
|
||||
// append new data
|
||||
data.value = [...data.value, ...newData];
|
||||
dataSet.current.addAll(newData.map(uniquePropFunc));
|
||||
page.current += 1;
|
||||
}).whenComplete(() => isFetching.current = false);
|
||||
dataSet.value.addAll(newData.map(uniquePropFunc));
|
||||
page.value += 1;
|
||||
}).whenComplete(() => isFetching.value = false);
|
||||
}
|
||||
|
||||
return SafeArea(
|
||||
|
|
257
pubspec.lock
257
pubspec.lock
|
@ -7,14 +7,14 @@ packages:
|
|||
name: _fe_analyzer_shared
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "22.0.0"
|
||||
version: "25.0.0"
|
||||
analyzer:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: analyzer
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.7.2"
|
||||
version: "2.2.0"
|
||||
archive:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -28,7 +28,7 @@ packages:
|
|||
name: args
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.2.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -49,63 +49,77 @@ packages:
|
|||
name: build
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.0"
|
||||
build_config:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: build_config
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.4.7"
|
||||
version: "1.0.0"
|
||||
build_daemon:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: build_daemon
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.10"
|
||||
version: "3.0.0"
|
||||
build_resolvers:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: build_resolvers
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.4"
|
||||
build_runner:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: build_runner
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.12.2"
|
||||
version: "2.1.2"
|
||||
build_runner_core:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: build_runner_core
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.1.12"
|
||||
version: "7.1.0"
|
||||
built_collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: built_collection
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.0.0"
|
||||
version: "5.1.1"
|
||||
built_value:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: built_value
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "8.0.4"
|
||||
version: "8.1.2"
|
||||
cached_network_image:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: cached_network_image
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.0"
|
||||
version: "3.1.0"
|
||||
cached_network_image_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cached_network_image_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
cached_network_image_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cached_network_image_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.1"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -133,7 +147,7 @@ packages:
|
|||
name: cli_util
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.3.0"
|
||||
version: "0.3.3"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -147,7 +161,7 @@ packages:
|
|||
name: code_builder
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.7.0"
|
||||
version: "4.1.0"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -161,7 +175,14 @@ packages:
|
|||
name: convert
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.0"
|
||||
version: "3.0.1"
|
||||
cross_file:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cross_file
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.3.1+5"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -175,14 +196,14 @@ packages:
|
|||
name: cupertino_icons
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
version: "1.0.3"
|
||||
dart_style:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: dart_style
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.0"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -196,14 +217,14 @@ packages:
|
|||
name: ffi
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
version: "1.1.2"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: file
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.1.0"
|
||||
version: "6.1.2"
|
||||
fixnum:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -229,21 +250,21 @@ packages:
|
|||
name: flutter_cache_manager
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.1"
|
||||
version: "3.1.2"
|
||||
flutter_hooks:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_hooks
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.16.0"
|
||||
version: "0.18.0"
|
||||
flutter_launcher_icons:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_launcher_icons
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.9.0"
|
||||
version: "0.9.2"
|
||||
flutter_localizations:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
|
@ -255,7 +276,7 @@ packages:
|
|||
name: flutter_markdown
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.1"
|
||||
version: "0.6.6"
|
||||
flutter_mobx:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -269,14 +290,14 @@ packages:
|
|||
name: flutter_plugin_android_lifecycle
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "2.0.3"
|
||||
flutter_speed_dial:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_speed_dial
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.5"
|
||||
version: "4.3.0"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
|
@ -293,14 +314,21 @@ packages:
|
|||
name: freezed
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.14.1+2"
|
||||
version: "0.14.5"
|
||||
freezed_annotation:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: freezed_annotation
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.14.2"
|
||||
version: "0.14.3"
|
||||
frontend_server_client:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: frontend_server_client
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
fuzzy:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -321,21 +349,21 @@ packages:
|
|||
name: graphs
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
version: "2.0.0"
|
||||
http:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.13.1"
|
||||
version: "0.13.3"
|
||||
http_multi_server:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http_multi_server
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.0"
|
||||
version: "3.0.1"
|
||||
http_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -349,28 +377,28 @@ packages:
|
|||
name: image
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.2"
|
||||
version: "3.0.4"
|
||||
image_picker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: image_picker
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.7.4"
|
||||
version: "0.8.4"
|
||||
image_picker_for_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: image_picker_for_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.3"
|
||||
image_picker_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: image_picker_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "2.4.1"
|
||||
intl:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -384,7 +412,7 @@ packages:
|
|||
name: io
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
version: "1.0.3"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -398,14 +426,14 @@ packages:
|
|||
name: json_annotation
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.0.1"
|
||||
version: "4.1.0"
|
||||
json_serializable:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: json_serializable
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.1.0"
|
||||
version: "5.0.0"
|
||||
keyboard_dismisser:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -482,7 +510,7 @@ packages:
|
|||
name: mobx_codegen
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
version: "2.0.3"
|
||||
modal_bottom_sheet:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -511,13 +539,48 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
package_info:
|
||||
package_info_plus:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: package_info
|
||||
name: package_info_plus
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "1.0.6"
|
||||
package_info_plus_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: package_info_plus_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.3"
|
||||
package_info_plus_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: package_info_plus_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
package_info_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: package_info_plus_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
package_info_plus_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: package_info_plus_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.4"
|
||||
package_info_plus_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: package_info_plus_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.3"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -531,21 +594,21 @@ packages:
|
|||
name: path_provider
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "2.0.3"
|
||||
path_provider_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.2"
|
||||
path_provider_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.2"
|
||||
path_provider_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -559,21 +622,21 @@ packages:
|
|||
name: path_provider_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.3"
|
||||
pedantic:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pedantic
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.11.0"
|
||||
version: "1.11.1"
|
||||
petitparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: petitparser
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.1.0"
|
||||
version: "4.3.0"
|
||||
photo_view:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -589,14 +652,14 @@ packages:
|
|||
name: platform
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.0"
|
||||
version: "3.0.2"
|
||||
plugin_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: plugin_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.1"
|
||||
pool:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -610,14 +673,14 @@ packages:
|
|||
name: process
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.2.1"
|
||||
version: "4.2.3"
|
||||
provider:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: provider
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.0.0"
|
||||
version: "6.0.0"
|
||||
pub_semver:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -638,35 +701,70 @@ packages:
|
|||
name: rxdart
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.26.0"
|
||||
share:
|
||||
version: "0.27.2"
|
||||
share_plus:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: share
|
||||
name: share_plus
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.4"
|
||||
share_plus_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: share_plus_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.4"
|
||||
share_plus_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: share_plus_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
share_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: share_plus_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
share_plus_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: share_plus_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.4"
|
||||
share_plus_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: share_plus_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.3"
|
||||
shared_preferences:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: shared_preferences
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.5"
|
||||
version: "2.0.7"
|
||||
shared_preferences_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.2"
|
||||
shared_preferences_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.2"
|
||||
shared_preferences_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -680,21 +778,21 @@ packages:
|
|||
name: shared_preferences_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.2"
|
||||
shared_preferences_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.2"
|
||||
shelf:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shelf
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "1.2.0"
|
||||
shelf_web_socket:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -713,7 +811,14 @@ packages:
|
|||
name: source_gen
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
version: "1.1.0"
|
||||
source_helper:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_helper
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
source_span:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -727,14 +832,14 @@ packages:
|
|||
name: sqflite
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0+3"
|
||||
version: "2.0.0+4"
|
||||
sqflite_common:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_common
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0+2"
|
||||
version: "2.0.1+1"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -790,7 +895,7 @@ packages:
|
|||
name: timeago
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.2"
|
||||
version: "3.1.0"
|
||||
timing:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -811,49 +916,49 @@ packages:
|
|||
name: url_launcher
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.0.3"
|
||||
version: "6.0.10"
|
||||
url_launcher_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.2"
|
||||
url_launcher_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.2"
|
||||
url_launcher_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
version: "2.0.4"
|
||||
url_launcher_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.4"
|
||||
url_launcher_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.2"
|
||||
uuid:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: uuid
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.3"
|
||||
version: "3.0.4"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -874,14 +979,14 @@ packages:
|
|||
name: web_socket_channel
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.0"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.5"
|
||||
version: "2.2.9"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -895,7 +1000,7 @@ packages:
|
|||
name: xml
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.1.0"
|
||||
version: "5.3.0"
|
||||
yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -904,5 +1009,5 @@ packages:
|
|||
source: hosted
|
||||
version: "3.1.0"
|
||||
sdks:
|
||||
dart: ">=2.12.0 <3.0.0"
|
||||
flutter: ">=1.24.0-10.2.pre"
|
||||
dart: ">=2.14.0 <3.0.0"
|
||||
flutter: ">=2.0.0"
|
||||
|
|
22
pubspec.yaml
22
pubspec.yaml
|
@ -22,7 +22,7 @@ environment:
|
|||
|
||||
dependencies:
|
||||
# widgets
|
||||
flutter_speed_dial: ^3.0.5
|
||||
flutter_speed_dial: ^4.3.0
|
||||
# TODO: bring back to pub hosted when fix is released
|
||||
photo_view:
|
||||
git:
|
||||
|
@ -34,15 +34,15 @@ dependencies:
|
|||
modal_bottom_sheet: ^2.0.0
|
||||
|
||||
# native
|
||||
share: ^2.0.1
|
||||
share_plus: ^2.1.4
|
||||
url_launcher: ^6.0.3
|
||||
shared_preferences: ^2.0.5
|
||||
package_info: ^2.0.0
|
||||
image_picker: ^0.7.4
|
||||
package_info_plus: ^1.0.6
|
||||
image_picker: ^0.8.4
|
||||
|
||||
# state management
|
||||
flutter_hooks: ^0.16.0
|
||||
provider: ^5.0.0
|
||||
flutter_hooks: ^0.18.0
|
||||
provider: ^6.0.0
|
||||
mobx: ^2.0.4
|
||||
flutter_mobx: ^2.0.2
|
||||
|
||||
|
@ -52,9 +52,9 @@ dependencies:
|
|||
lemmy_api_client: ^0.16.0
|
||||
intl: ^0.17.0
|
||||
matrix4_transform: ^2.0.0
|
||||
json_annotation: ^4.0.1
|
||||
json_annotation: ^4.1.0
|
||||
keyboard_dismisser: ^2.0.0
|
||||
freezed_annotation: ^0.14.2
|
||||
freezed_annotation: ^0.14.3
|
||||
|
||||
flutter:
|
||||
sdk: flutter
|
||||
|
@ -68,9 +68,9 @@ dependencies:
|
|||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_launcher_icons: ^0.9.0
|
||||
json_serializable: ^4.1.0
|
||||
build_runner: ^1.11.1
|
||||
flutter_launcher_icons: ^0.9.2
|
||||
json_serializable: ^5.0.0
|
||||
build_runner: ^2.1.2
|
||||
mobx_codegen: ^2.0.2
|
||||
freezed: ^0.14.1+2
|
||||
|
||||
|
|
Loading…
Reference in New Issue