diff --git a/android/app/build.gradle b/android/app/build.gradle index 41bca0b..8dd6e45 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -19,7 +19,7 @@ android { // compileSdk = flutter.compileSdkVersion compileSdk 35 //ndkVersion = flutter.ndkVersion - ndkVersion = "25.1.8937393" + ndkVersion = "27.0.12077973" compileOptions { coreLibraryDesugaringEnabled true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 22041e5..7d27c46 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip \ No newline at end of file +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip \ No newline at end of file diff --git a/android/settings.gradle b/android/settings.gradle index f6965fa..199cd49 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.3.2" apply false + id "com.android.application" version '8.9.0' apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 7a10f59..8c50b90 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -15,10 +15,10 @@ PODS: - Firebase/Messaging (11.10.0): - Firebase/CoreOnly - FirebaseMessaging (~> 11.10.0) - - firebase_core (3.13.0): + - firebase_core (3.13.1): - Firebase/CoreOnly (= 11.10.0) - Flutter - - firebase_messaging (15.2.5): + - firebase_messaging (15.2.6): - Firebase/Messaging (= 11.10.0) - firebase_core - Flutter @@ -99,44 +99,44 @@ PODS: - GoogleDataTransport (10.1.0): - nanopb (~> 3.30910.0) - PromisesObjC (~> 2.4) - - GoogleUtilities (8.0.2): - - GoogleUtilities/AppDelegateSwizzler (= 8.0.2) - - GoogleUtilities/Environment (= 8.0.2) - - GoogleUtilities/Logger (= 8.0.2) - - GoogleUtilities/MethodSwizzler (= 8.0.2) - - GoogleUtilities/Network (= 8.0.2) - - "GoogleUtilities/NSData+zlib (= 8.0.2)" - - GoogleUtilities/Privacy (= 8.0.2) - - GoogleUtilities/Reachability (= 8.0.2) - - GoogleUtilities/SwizzlerTestHelpers (= 8.0.2) - - GoogleUtilities/UserDefaults (= 8.0.2) - - GoogleUtilities/AppDelegateSwizzler (8.0.2): + - GoogleUtilities (8.1.0): + - GoogleUtilities/AppDelegateSwizzler (= 8.1.0) + - GoogleUtilities/Environment (= 8.1.0) + - GoogleUtilities/Logger (= 8.1.0) + - GoogleUtilities/MethodSwizzler (= 8.1.0) + - GoogleUtilities/Network (= 8.1.0) + - "GoogleUtilities/NSData+zlib (= 8.1.0)" + - GoogleUtilities/Privacy (= 8.1.0) + - GoogleUtilities/Reachability (= 8.1.0) + - GoogleUtilities/SwizzlerTestHelpers (= 8.1.0) + - GoogleUtilities/UserDefaults (= 8.1.0) + - GoogleUtilities/AppDelegateSwizzler (8.1.0): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - GoogleUtilities/Privacy - - GoogleUtilities/Environment (8.0.2): + - GoogleUtilities/Environment (8.1.0): - GoogleUtilities/Privacy - - GoogleUtilities/Logger (8.0.2): + - GoogleUtilities/Logger (8.1.0): - GoogleUtilities/Environment - GoogleUtilities/Privacy - - GoogleUtilities/MethodSwizzler (8.0.2): + - GoogleUtilities/MethodSwizzler (8.1.0): - GoogleUtilities/Logger - GoogleUtilities/Privacy - - GoogleUtilities/Network (8.0.2): + - GoogleUtilities/Network (8.1.0): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Privacy - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (8.0.2)": + - "GoogleUtilities/NSData+zlib (8.1.0)": - GoogleUtilities/Privacy - - GoogleUtilities/Privacy (8.0.2) - - GoogleUtilities/Reachability (8.0.2): + - GoogleUtilities/Privacy (8.1.0) + - GoogleUtilities/Reachability (8.1.0): - GoogleUtilities/Logger - GoogleUtilities/Privacy - - GoogleUtilities/SwizzlerTestHelpers (8.0.2): + - GoogleUtilities/SwizzlerTestHelpers (8.1.0): - GoogleUtilities/MethodSwizzler - - GoogleUtilities/UserDefaults (8.0.2): + - GoogleUtilities/UserDefaults (8.1.0): - GoogleUtilities/Logger - GoogleUtilities/Privacy - image_picker_ios (0.0.1): @@ -192,23 +192,23 @@ PODS: - sqflite_darwin (0.0.4): - Flutter - FlutterMacOS - - sqlite3 (3.49.1): - - sqlite3/common (= 3.49.1) - - sqlite3/common (3.49.1) - - sqlite3/dbstatvtab (3.49.1): + - sqlite3 (3.49.2): + - sqlite3/common (= 3.49.2) + - sqlite3/common (3.49.2) + - sqlite3/dbstatvtab (3.49.2): - sqlite3/common - - sqlite3/fts5 (3.49.1): + - sqlite3/fts5 (3.49.2): - sqlite3/common - - sqlite3/math (3.49.1): + - sqlite3/math (3.49.2): - sqlite3/common - - sqlite3/perf-threadsafe (3.49.1): + - sqlite3/perf-threadsafe (3.49.2): - sqlite3/common - - sqlite3/rtree (3.49.1): + - sqlite3/rtree (3.49.2): - sqlite3/common - sqlite3_flutter_libs (0.0.1): - Flutter - FlutterMacOS - - sqlite3 (~> 3.49.1) + - sqlite3 (~> 3.49.2) - sqlite3/dbstatvtab - sqlite3/fts5 - sqlite3/math @@ -331,8 +331,8 @@ SPEC CHECKSUMS: connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd cryptography_flutter_plus: 44f4e9e4079395fcbb3e7809c0ac2c6ae2d9576f Firebase: 1fe1c0a7d9aaea32efe01fbea5f0ebd8d70e53a2 - firebase_core: 2d4534e7b489907dcede540c835b48981d890943 - firebase_messaging: 75bc93a4df25faccad67f6662ae872ac9ae69b64 + firebase_core: ba71b44041571da878cb624ce0d80250bcbe58ad + firebase_messaging: 13129fe2ca166d1ed2d095062d76cee88943d067 FirebaseAnalytics: 4e42333f02cf78ed93703a5c36f36dd518aebdef FirebaseCore: 8344daef5e2661eb004b177488d6f9f0f24251b7 FirebaseCoreInternal: ef4505d2afb1d0ebbc33162cb3795382904b5679 @@ -346,7 +346,7 @@ SPEC CHECKSUMS: gal: baecd024ebfd13c441269ca7404792a7152fde89 GoogleAppMeasurement: 36684bfb3ee034e2b42b4321eb19da3a1b81e65d GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 - GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d + GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 @@ -364,8 +364,8 @@ SPEC CHECKSUMS: share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 - sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983 - sqlite3_flutter_libs: f6acaa2172e6bb3e2e70c771661905080e8ebcf2 + sqlite3: 3c950dc86011117c307eb0b28c4a7bb449dce9f1 + sqlite3_flutter_libs: 74334e3ef2dbdb7d37e50859bb45da43935779c4 url_launcher_ios: 694010445543906933d732453a59da0a173ae33d video_compress: f2133a07762889d67f0711ac831faa26f956980e video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b diff --git a/lib/src/database/tables/media_uploads_table.dart b/lib/src/database/tables/media_uploads_table.dart index 0da803e..5d4a9dd 100644 --- a/lib/src/database/tables/media_uploads_table.dart +++ b/lib/src/database/tables/media_uploads_table.dart @@ -46,7 +46,6 @@ class MediaUploadMetadata { late int maxShowTime; late DateTime messageSendAt; late bool isVideo; - late bool videoWithAudio; late bool mirrorVideo; MediaUploadMetadata(); @@ -58,7 +57,6 @@ class MediaUploadMetadata { 'mirrorVideo': mirrorVideo, 'maxShowTime': maxShowTime, 'isVideo': isVideo, - 'videoWithAudio': videoWithAudio, 'messageSendAt': messageSendAt.toIso8601String(), }; } @@ -67,7 +65,6 @@ class MediaUploadMetadata { MediaUploadMetadata state = MediaUploadMetadata(); state.contactIds = List.from(json['contactIds']); state.isRealTwonly = json['isRealTwonly']; - state.videoWithAudio = json['videoWithAudio']; state.isVideo = json['isVideo']; state.mirrorVideo = json['mirrorVideo']; state.maxShowTime = json['maxShowTime']; diff --git a/lib/src/providers/api/api.dart b/lib/src/providers/api/api.dart index 85358e1..6773e02 100644 --- a/lib/src/providers/api/api.dart +++ b/lib/src/providers/api/api.dart @@ -28,10 +28,10 @@ Future tryTransmitMessages() async { Map failed = {}; - // List> sortedList = retransmit.entries.toList() - // ..sort((a, b) => int.parse(a.key).compareTo(int.parse(b.key))); + List> sortedList = retransmit.entries.toList() + ..sort((a, b) => int.parse(a.key).compareTo(int.parse(b.key))); - for (final element in retransmit.entries) { + for (final element in sortedList) { RetransmitMessage msg = RetransmitMessage.fromJson(jsonDecode(element.value)); @@ -145,8 +145,18 @@ Future<(String, RetransmitMessage)?> encryptMessage( return null; } - String stateId = - (messageId ?? (60001 + Random().nextInt(100000))).toString(); + var retransmit = await getAllMessagesForRetransmitting(); + + int currentMaxStateId = messageId ?? 60000; + if (retransmit.isNotEmpty && messageId == null) { + currentMaxStateId = retransmit.keys.map((x) => int.parse(x)).reduce(max); + if (currentMaxStateId < 60000) { + currentMaxStateId = 60000; + } + } + + String stateId = (currentMaxStateId + 1).toString(); + Box box = await getMediaStorage(); List? pushData; @@ -162,10 +172,7 @@ Future<(String, RetransmitMessage)?> encryptMessage( ); { - var retransmit = await getAllMessagesForRetransmitting(); - retransmit[stateId] = jsonEncode(encryptedMessage.toJson()); - box.put("messages-to-retransmit", jsonEncode(retransmit)); } diff --git a/lib/src/providers/api/media_send.dart b/lib/src/providers/api/media_send.dart index b089264..42f6687 100644 --- a/lib/src/providers/api/media_send.dart +++ b/lib/src/providers/api/media_send.dart @@ -18,7 +18,6 @@ import 'package:twonly/src/model/json/message.dart'; import 'package:twonly/src/model/protobuf/api/error.pb.dart'; import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; import 'package:twonly/src/providers/api/api.dart'; -import 'package:twonly/src/providers/api/api_utils.dart'; import 'package:twonly/src/providers/api/media_received.dart'; import 'package:twonly/src/services/notification_service.dart'; import 'package:twonly/src/utils/misc.dart'; @@ -50,13 +49,23 @@ Future isAllowedToSend() async { return null; } +/// Process the image up to the point more user informations are required +/// Returns the media upload id +Future preSendMediaFile(Uint8List imageBytes, File? videoFilePath) async { + return 0; +} + +Future cancelSendMediaFile(int mediaUploadId) async {} + +Future finalizeSendMediaFile(int mediaUploadId, List userIds, + bool isRealTwonly, bool isVideo, bool mirrorVideo, int maxShowTime) async {} + Future sendMediaFile( List userIds, Uint8List imageBytes, bool isRealTwonly, int maxShowTime, File? videoFilePath, - bool? enableVideoAudio, bool mirrorVideo, ) async { MediaUploadMetadata metadata = MediaUploadMetadata(); @@ -64,7 +73,6 @@ Future sendMediaFile( metadata.isRealTwonly = isRealTwonly; metadata.messageSendAt = DateTime.now(); metadata.isVideo = videoFilePath != null; - metadata.videoWithAudio = enableVideoAudio != null && enableVideoAudio; metadata.maxShowTime = maxShowTime; metadata.mirrorVideo = mirrorVideo; @@ -266,13 +274,13 @@ Future handleCompressionState( true, // https://github.com/jonataslaw/VideoCompress/issues/184 ); - if (mediaInfo!.filesize! >= 20 * 1000 * 1000) { + if (mediaInfo!.filesize! >= 30 * 1000 * 1000) { // if the media file is over 20MB compress it with low quality mediaInfo = await VideoCompress.compressVideo( videoOriginalFile.path, quality: VideoQuality.Res960x540Quality, deleteOrigin: false, - includeAudio: media.metadata.videoWithAudio, + includeAudio: true, ); } } catch (e) { diff --git a/lib/src/utils/signal.dart b/lib/src/utils/signal.dart index cbbf921..52c5de1 100644 --- a/lib/src/utils/signal.dart +++ b/lib/src/utils/signal.dart @@ -202,7 +202,10 @@ Future getDecryptedText(int source, Uint8List msg) async { signalStore, SignalProtocolAddress(source.toString(), defaultDeviceId)); List? msgs = removeLastXBytes(msg, 4); - if (msgs == null) return null; + if (msgs == null) { + Logger("utils/signal").shout("Message requires at least 4 bytes."); + return null; + } Uint8List body = msgs[0]; int type = bytesToInt(msgs[1]); Uint8List plaintext; @@ -213,6 +216,7 @@ Future getDecryptedText(int source, Uint8List msg) async { SignalMessage signalMsg = SignalMessage.fromSerialized(body); plaintext = await session.decryptFromSignal(signalMsg); } else { + Logger("utils/signal").shout("Type not known: $type"); return null; } MessageJson dectext = diff --git a/lib/src/views/camera/share_image_editor_view.dart b/lib/src/views/camera/share_image_editor_view.dart index 97e768f..ef972d9 100644 --- a/lib/src/views/camera/share_image_editor_view.dart +++ b/lib/src/views/camera/share_image_editor_view.dart @@ -408,7 +408,6 @@ class _ShareImageEditorView extends State { _isRealTwonly, maxShowTime, widget.videoFilePath, - videoWithAudio, widget.mirrorVideo, ); if (context.mounted) { diff --git a/lib/src/views/camera/share_image_view.dart b/lib/src/views/camera/share_image_view.dart index c7f30ec..0c9c9cb 100644 --- a/lib/src/views/camera/share_image_view.dart +++ b/lib/src/views/camera/share_image_view.dart @@ -293,7 +293,6 @@ class _ShareImageView extends State { widget.isRealTwonly, widget.maxShowTime, widget.videoFilePath, - widget.enableVideoAudio, widget.mirrorVideo, ); if (context.mounted) { diff --git a/pubspec.lock b/pubspec.lock index 637e127..9024123 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: de9ecbb3ddafd446095f7e833c853aff2fa1682b017921fe63a833f9d6f0e422 + sha256: "214e6f07e2a44f45972e0365c7b537eaeaddb4598db0778dd4ac64b4acd3f5b1" url: "https://pub.dev" source: hosted - version: "1.3.54" + version: "1.3.55" adaptive_number: dependency: transitive description: @@ -29,18 +29,18 @@ packages: dependency: transitive description: name: analyzer - sha256: "7c8416f91308ced2f7ac1e4fe59d1fb2f6cee25d6b015584505ea286f98a904a" + sha256: "904ae5bb474d32c38fb9482e2d925d5454cda04ddd0e55d2e6826bc72f6ba8c0" url: "https://pub.dev" source: hosted - version: "7.4.3" + version: "7.4.5" archive: dependency: transitive description: name: archive - sha256: a7f37ff061d7abc2fcf213554b9dcaca713c5853afa5c065c44888bc9ccaf813 + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" url: "https://pub.dev" source: hosted - version: "4.0.6" + version: "4.0.7" args: dependency: transitive description: @@ -173,18 +173,18 @@ packages: dependency: transitive description: name: camera_android_camerax - sha256: "26673643ed8f4a468a81ebd7ca760bc1d8c4c741df6d731cc958585ac1983126" + sha256: "0bd3d1645df00af2540a22df13ba466ac5fb2838a09bce4089cecdb1712a9e94" url: "https://pub.dev" source: hosted - version: "0.6.15" + version: "0.6.18" camera_avfoundation: dependency: transitive description: name: camera_avfoundation - sha256: a33cd9a250296271cdf556891b7c0986a93772426f286595eccd5f45b185933c + sha256: ca36181194f429eef3b09de3c96280f2400693f9735025f90d1f4a27465fdd72 url: "https://pub.dev" source: hosted - version: "0.9.18+14" + version: "0.9.19" camera_platform_interface: dependency: transitive description: @@ -325,10 +325,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "27eb0ae77836989a3bc541ce55595e8ceee0992807f14511552a898ddd0d88ac" + sha256: "5b236382b47ee411741447c1f1e111459c941ea1b3f2b540dde54c210a3662af" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.1.0" dbus: dependency: transitive description: @@ -349,18 +349,18 @@ packages: dependency: "direct main" description: name: drift - sha256: "14a61af39d4584faf1d73b5b35e4b758a43008cf4c0fdb0576ec8e7032c0d9a5" + sha256: b584ddeb2b74436735dd2cf746d2d021e19a9a6770f409212fd5cbc2814ada85 url: "https://pub.dev" source: hosted - version: "2.26.0" + version: "2.26.1" drift_dev: dependency: "direct dev" description: name: drift_dev - sha256: "0d3f8b33b76cf1c6a82ee34d9511c40957549c4674b8f1688609e6d6c7306588" + sha256: "54dc207c6e4662741f60e5752678df183957ab907754ffab0372a7082f6d2816" url: "https://pub.dev" source: hosted - version: "2.26.0" + version: "2.26.1" drift_flutter: dependency: "direct main" description: @@ -445,10 +445,10 @@ packages: dependency: "direct main" description: name: firebase_core - sha256: "017d17d9915670e6117497e640b2859e0b868026ea36bf3a57feb28c3b97debe" + sha256: "8cfe3c900512399ce8d50fcc817e5758ff8615eeb6fa5c846a4cc47bbf6353b6" url: "https://pub.dev" source: hosted - version: "3.13.0" + version: "3.13.1" firebase_core_platform_interface: dependency: transitive description: @@ -461,34 +461,34 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: "129a34d1e0fb62e2b488d988a1fc26cc15636357e50944ffee2862efe8929b23" + sha256: ddd72baa6f727e5b23f32d9af23d7d453d67946f380bd9c21daf474ee0f7326e url: "https://pub.dev" source: hosted - version: "2.22.0" + version: "2.23.0" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "5f8918848ee0c8eb172fc7698619b2bcd7dda9ade8b93522c6297dd8f9178356" + sha256: "38111089e511f03daa2c66b4c3614c16421b7d78c84ee04331a0a65b47df4542" url: "https://pub.dev" source: hosted - version: "15.2.5" + version: "15.2.6" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "0bbea00680249595fc896e7313a2bd90bd55be6e0abbe8b9a39d81b6b306acb6" + sha256: ba254769982e5f439e534eed68856181c74e2b3f417c8188afad2bb440807cc7 url: "https://pub.dev" source: hosted - version: "4.6.5" + version: "4.6.6" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: ffb392ce2a7e8439cd0a9a80e3c702194e73c927e5c7b4f0adf6faa00b245b17 + sha256: dba89137272aac39e95f71408ba25c33fb8ed903cd5fa8d1e49b5cd0d96069e0 url: "https://pub.dev" source: hosted - version: "3.10.5" + version: "3.10.6" fixnum: dependency: "direct main" description: @@ -626,10 +626,10 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "33b3e0269ae9d51669957a923f2376bee96299b09915d856395af8c4238aebfa" + sha256: b94a50aabbe56ef254f95f3be75640f99120429f0a153b2dc30143cffc9bfdf3 url: "https://pub.dev" source: hosted - version: "19.1.0" + version: "19.2.1" flutter_local_notifications_linux: dependency: transitive description: @@ -800,18 +800,18 @@ packages: dependency: transitive description: name: html - sha256: "9475be233c437f0e3637af55e7702cbbe5c23a68bd56e8a5fa2d426297b7c6c8" + sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" url: "https://pub.dev" source: hosted - version: "0.15.5+1" + version: "0.15.6" http: dependency: "direct main" description: name: http - sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f + sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" http_multi_server: dependency: transitive description: @@ -1280,10 +1280,10 @@ packages: dependency: "direct main" description: name: pie_menu - sha256: d6511a64319c500e2263656020105fbce41dcc6234cb8c16f5f5cdac47ab64c1 + sha256: "47e29f43fbe896ec47513b155762a661f6cd243317cd8e91ed5303ad0b9f6141" url: "https://pub.dev" source: hosted - version: "3.2.10" + version: "3.3.0" platform: dependency: transitive description: @@ -1328,18 +1328,18 @@ packages: dependency: "direct main" description: name: protobuf - sha256: fbb0c37d435641d0b84813c1dad41e6fa61ddc880a320bce16b3063ecec35aa6 + sha256: "579fe5557eae58e3adca2e999e38f02441d8aa908703854a9e0a0f47fa857731" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.1.0" provider: dependency: "direct main" description: name: provider - sha256: "489024f942069c2920c844ee18bb3d467c69e48955a4f32d1677f71be103e310" + sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "6.1.5" pub_semver: dependency: transitive description: @@ -1573,18 +1573,18 @@ packages: dependency: transitive description: name: sqlite3 - sha256: "310af39c40dd0bb2058538333c9d9840a2725ae0b9f77e4fd09ad6696aa8f66e" + sha256: c0503c69b44d5714e6abbf4c1f51a3c3cc42b75ce785f44404765e4635481d38 url: "https://pub.dev" source: hosted - version: "2.7.5" + version: "2.7.6" sqlite3_flutter_libs: dependency: transitive description: name: sqlite3_flutter_libs - sha256: "1a96b59227828d9eb1463191d684b37a27d66ee5ed7597fcf42eee6452c88a14" + sha256: "7986c26234c0a5cf4fd83ff4ee39d4195b1f47cdb50a949ec7987ede4dcbdc2a" url: "https://pub.dev" source: hosted - version: "0.5.32" + version: "0.5.33" sqlparser: dependency: transitive description: @@ -1653,10 +1653,10 @@ packages: dependency: transitive description: name: timezone - sha256: ffc9d5f4d1193534ef051f9254063fa53d588609418c84299956c3db9383587d + sha256: dd14a3b83cfd7cb19e7888f1cbc20f258b8d71b54c06f79ac585f14093a287d1 url: "https://pub.dev" source: hosted - version: "0.10.0" + version: "0.10.1" timing: dependency: transitive description: @@ -1725,10 +1725,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "3ba963161bd0fe395917ba881d320b9c4f6dd3c4a233da62ab18a5025c85f1e9" + sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" url_launcher_windows: dependency: transitive description: @@ -1765,10 +1765,10 @@ packages: dependency: transitive description: name: vector_graphics_compiler - sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" + sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331" url: "https://pub.dev" source: hosted - version: "1.1.16" + version: "1.1.17" vector_math: dependency: transitive description: @@ -1805,10 +1805,10 @@ packages: dependency: transitive description: name: video_player_android - sha256: ae7d4f1b41e3ac6d24dd9b9d5d6831b52d74a61bdd90a7a6262a33d8bb97c29a + sha256: f5b5ae7a41233adeb6cb4778b4c357522c906e45d590819f5b68d17cdc7a74b4 url: "https://pub.dev" source: hosted - version: "2.8.2" + version: "2.8.6" video_player_avfoundation: dependency: transitive description: @@ -1861,10 +1861,10 @@ packages: dependency: transitive description: name: web_socket - sha256: bfe6f435f6ec49cb6c01da1e275ae4228719e59a6b067048c51e72d9d63bcc4b + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" web_socket_channel: dependency: "direct main" description: @@ -1877,10 +1877,10 @@ packages: dependency: transitive description: name: win32 - sha256: dc6ecaa00a7c708e5b4d10ee7bec8c270e9276dfcab1783f57e9962d7884305f + sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba" url: "https://pub.dev" source: hosted - version: "5.12.0" + version: "5.13.0" x25519: dependency: transitive description: @@ -1915,4 +1915,4 @@ packages: version: "3.1.3" sdks: dart: ">=3.7.0 <4.0.0" - flutter: ">=3.27.0" + flutter: ">=3.29.0"