diff --git a/.gitignore b/.gitignore index 10e2410d..ba46011e 100644 --- a/.gitignore +++ b/.gitignore @@ -56,4 +56,6 @@ devtools_options.yaml rust/target rust_dependencies/target fastlane/repo/status/running.json -.cache/ \ No newline at end of file +.cache/ +# Widget Preview related +.widget_preview/ diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index bf14aa8c..2d428bfb 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.14.5-all.zip \ No newline at end of file +distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index affa3a38..ed11c79f 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -18,11 +18,11 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version '8.11.1' apply false + id "com.android.application" version '9.0.1' apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration - id "org.jetbrains.kotlin.android" version "2.2.20" apply false + id "org.jetbrains.kotlin.android" version "2.3.20" apply false } include ":app" diff --git a/lib/core/app_database.dart b/lib/core/app_database.dart new file mode 100644 index 00000000..f3596554 --- /dev/null +++ b/lib/core/app_database.dart @@ -0,0 +1,103 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.12.0. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import 'frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +class SqlExecutionResult { + final PlatformInt64 affectedRows; + final PlatformInt64 lastInsertRowId; + + const SqlExecutionResult({ + required this.affectedRows, + required this.lastInsertRowId, + }); + + @override + int get hashCode => affectedRows.hashCode ^ lastInsertRowId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is SqlExecutionResult && + runtimeType == other.runtimeType && + affectedRows == other.affectedRows && + lastInsertRowId == other.lastInsertRowId; +} + +class SqlRow { + final List values; + + const SqlRow({ + required this.values, + }); + + @override + int get hashCode => values.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is SqlRow && + runtimeType == other.runtimeType && + values == other.values; +} + +class SqlRows { + final List columns; + final List rows; + + const SqlRows({ + required this.columns, + required this.rows, + }); + + @override + int get hashCode => columns.hashCode ^ rows.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is SqlRows && + runtimeType == other.runtimeType && + columns == other.columns && + rows == other.rows; +} + +class SqlValue { + /// 0 = null, 1 = integer, 2 = real, 3 = text, 4 = blob. + final int kind; + final PlatformInt64? integerValue; + final double? realValue; + final String? textValue; + final Uint8List? blobValue; + + const SqlValue({ + required this.kind, + this.integerValue, + this.realValue, + this.textValue, + this.blobValue, + }); + + @override + int get hashCode => + kind.hashCode ^ + integerValue.hashCode ^ + realValue.hashCode ^ + textValue.hashCode ^ + blobValue.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is SqlValue && + runtimeType == other.runtimeType && + kind == other.kind && + integerValue == other.integerValue && + realValue == other.realValue && + textValue == other.textValue && + blobValue == other.blobValue; +} diff --git a/lib/core/bridge.dart b/lib/core/bridge.dart index d3c9d0f4..487fa706 100644 --- a/lib/core/bridge.dart +++ b/lib/core/bridge.dart @@ -7,35 +7,11 @@ import 'frb_generated.dart'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; // These functions are ignored because they are not marked as `pub`: `get_twonly_flutter` -// These types are ignored because they are neither used by any `pub` functions nor (for structs and enums) marked `#[frb(unignore)]`: `TwonlyFlutter` +// These types are ignored because they are neither used by any `pub` functions nor (for structs and enums) marked `#[frb(unignore)]`: `AnnouncedUser`, `OtherPromotion`, `TwonlyFlutter` Future initializeTwonlyFlutter({required InitConfig config}) => RustLib.instance.api.crateBridgeInitializeTwonlyFlutter(config: config); -class AnnouncedUser { - final PlatformInt64 userId; - final Uint8List publicKey; - final PlatformInt64 publicId; - - const AnnouncedUser({ - required this.userId, - required this.publicKey, - required this.publicId, - }); - - @override - int get hashCode => userId.hashCode ^ publicKey.hashCode ^ publicId.hashCode; - - @override - bool operator ==(Object other) => - identical(this, other) || - other is AnnouncedUser && - runtimeType == other.runtimeType && - userId == other.userId && - publicKey == other.publicKey && - publicId == other.publicId; -} - class InitConfig { final String databaseDir; final String dataDir; @@ -56,42 +32,3 @@ class InitConfig { databaseDir == other.databaseDir && dataDir == other.dataDir; } - -class OtherPromotion { - final int promotionId; - final PlatformInt64 publicId; - final PlatformInt64 fromContactId; - final int threshold; - final Uint8List announcementShare; - final PlatformInt64? publicKeyVerifiedTimestamp; - - const OtherPromotion({ - required this.promotionId, - required this.publicId, - required this.fromContactId, - required this.threshold, - required this.announcementShare, - this.publicKeyVerifiedTimestamp, - }); - - @override - int get hashCode => - promotionId.hashCode ^ - publicId.hashCode ^ - fromContactId.hashCode ^ - threshold.hashCode ^ - announcementShare.hashCode ^ - publicKeyVerifiedTimestamp.hashCode; - - @override - bool operator ==(Object other) => - identical(this, other) || - other is OtherPromotion && - runtimeType == other.runtimeType && - promotionId == other.promotionId && - publicId == other.publicId && - fromContactId == other.fromContactId && - threshold == other.threshold && - announcementShare == other.announcementShare && - publicKeyVerifiedTimestamp == other.publicKeyVerifiedTimestamp; -} diff --git a/lib/core/bridge/callbacks.dart b/lib/core/bridge/callbacks.dart index ad534436..4dd5845c 100644 --- a/lib/core/bridge/callbacks.dart +++ b/lib/core/bridge/callbacks.dart @@ -3,62 +3,17 @@ // ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import -import '../bridge.dart'; import '../frb_generated.dart'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; // These functions are ignored because they are not marked as `pub`: `get_callbacks` -// These types are ignored because they are neither used by any `pub` functions nor (for structs and enums) marked `#[frb(unignore)]`: `FlutterCallbacks`, `Logging`, `UserDiscoveryCallbacks` -// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `clone`, `clone`, `clone` +// These types are ignored because they are neither used by any `pub` functions nor (for structs and enums) marked `#[frb(unignore)]`: `FlutterCallbacks`, `Logging` +// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `clone`, `clone` Future initFlutterCallbacks({ required int callbackId, required FutureOr> Function() loggingGetStreamSink, - required FutureOr Function(Uint8List) userDiscoverySignData, - required FutureOr Function(Uint8List, Uint8List, Uint8List) - userDiscoveryVerifySignature, - required FutureOr Function(PlatformInt64, Uint8List) - userDiscoveryVerifyStoredPubkey, - required FutureOr Function(List) userDiscoverySetShares, - required FutureOr Function(PlatformInt64) - userDiscoveryGetShareForContact, - required FutureOr Function(PlatformInt64, PlatformInt64, Uint8List) - userDiscoveryPushOwnPromotionAndClearOldVersion, - required FutureOr?> Function(PlatformInt64) - userDiscoveryGetOwnPromotionsAfterVersion, - required FutureOr Function(OtherPromotion) - userDiscoveryStoreOtherPromotion, - required FutureOr?> Function(PlatformInt64) - userDiscoveryGetOtherPromotionsByPublicId, - required FutureOr Function(PlatformInt64) - userDiscoveryGetAnnouncedUserByPublicId, - required FutureOr Function(PlatformInt64) - userDiscoveryGetContactVersion, - required FutureOr Function(PlatformInt64, Uint8List) - userDiscoverySetContactVersion, - required FutureOr Function(PlatformInt64, AnnouncedUser, PlatformInt64?) - userDiscoveryPushNewUserRelation, - required FutureOr Function(PlatformInt64) - userDiscoveryGetContactPromotion, }) => RustLib.instance.api.crateBridgeCallbacksInitFlutterCallbacks( callbackId: callbackId, loggingGetStreamSink: loggingGetStreamSink, - userDiscoverySignData: userDiscoverySignData, - userDiscoveryVerifySignature: userDiscoveryVerifySignature, - userDiscoveryVerifyStoredPubkey: userDiscoveryVerifyStoredPubkey, - userDiscoverySetShares: userDiscoverySetShares, - userDiscoveryGetShareForContact: userDiscoveryGetShareForContact, - userDiscoveryPushOwnPromotionAndClearOldVersion: - userDiscoveryPushOwnPromotionAndClearOldVersion, - userDiscoveryGetOwnPromotionsAfterVersion: - userDiscoveryGetOwnPromotionsAfterVersion, - userDiscoveryStoreOtherPromotion: userDiscoveryStoreOtherPromotion, - userDiscoveryGetOtherPromotionsByPublicId: - userDiscoveryGetOtherPromotionsByPublicId, - userDiscoveryGetAnnouncedUserByPublicId: - userDiscoveryGetAnnouncedUserByPublicId, - userDiscoveryGetContactVersion: userDiscoveryGetContactVersion, - userDiscoverySetContactVersion: userDiscoverySetContactVersion, - userDiscoveryPushNewUserRelation: userDiscoveryPushNewUserRelation, - userDiscoveryGetContactPromotion: userDiscoveryGetContactPromotion, ); diff --git a/lib/core/bridge/wrapper/app_database.dart b/lib/core/bridge/wrapper/app_database.dart new file mode 100644 index 00000000..9cd4341e --- /dev/null +++ b/lib/core/bridge/wrapper/app_database.dart @@ -0,0 +1,89 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.12.0. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../database/app.dart'; +import '../../frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +class LegacyMigrationReport { + final PlatformInt64 legacyVersion; + final List tables; + + const LegacyMigrationReport({ + required this.legacyVersion, + required this.tables, + }); + + @override + int get hashCode => legacyVersion.hashCode ^ tables.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is LegacyMigrationReport && + runtimeType == other.runtimeType && + legacyVersion == other.legacyVersion && + tables == other.tables; +} + +class LegacyTableMigrationCount { + final String table; + final PlatformInt64 rows; + + const LegacyTableMigrationCount({ + required this.table, + required this.rows, + }); + + @override + int get hashCode => table.hashCode ^ rows.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is LegacyTableMigrationCount && + runtimeType == other.runtimeType && + table == other.table && + rows == other.rows; +} + +class RustAppDatabase { + const RustAppDatabase(); + + static Future execute({ + required String statement, + required List arguments, + }) => + RustLib.instance.api.crateBridgeWrapperAppDatabaseRustAppDatabaseExecute( + statement: statement, + arguments: arguments, + ); + + static Future legacyImportComplete() => RustLib.instance.api + .crateBridgeWrapperAppDatabaseRustAppDatabaseLegacyImportComplete(); + + /// Imports the non-Signal tables from a Drift v25 database. The import is + /// transactional and idempotent. Drift must be closed while this runs. + static Future migrateLegacyDatabase() => RustLib + .instance + .api + .crateBridgeWrapperAppDatabaseRustAppDatabaseMigrateLegacyDatabase(); + + static Future select({ + required String statement, + required List arguments, + }) => RustLib.instance.api.crateBridgeWrapperAppDatabaseRustAppDatabaseSelect( + statement: statement, + arguments: arguments, + ); + + @override + int get hashCode => 0; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is RustAppDatabase && runtimeType == other.runtimeType; +} diff --git a/lib/core/database/app.dart b/lib/core/database/app.dart new file mode 100644 index 00000000..5f2a8e01 --- /dev/null +++ b/lib/core/database/app.dart @@ -0,0 +1,103 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.12.0. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +class SqlExecutionResult { + final PlatformInt64 affectedRows; + final PlatformInt64 lastInsertRowId; + + const SqlExecutionResult({ + required this.affectedRows, + required this.lastInsertRowId, + }); + + @override + int get hashCode => affectedRows.hashCode ^ lastInsertRowId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is SqlExecutionResult && + runtimeType == other.runtimeType && + affectedRows == other.affectedRows && + lastInsertRowId == other.lastInsertRowId; +} + +class SqlRow { + final List values; + + const SqlRow({ + required this.values, + }); + + @override + int get hashCode => values.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is SqlRow && + runtimeType == other.runtimeType && + values == other.values; +} + +class SqlRows { + final List columns; + final List rows; + + const SqlRows({ + required this.columns, + required this.rows, + }); + + @override + int get hashCode => columns.hashCode ^ rows.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is SqlRows && + runtimeType == other.runtimeType && + columns == other.columns && + rows == other.rows; +} + +class SqlValue { + /// 0 = null, 1 = integer, 2 = real, 3 = text, 4 = blob. + final int kind; + final PlatformInt64? integerValue; + final double? realValue; + final String? textValue; + final Uint8List? blobValue; + + const SqlValue({ + required this.kind, + this.integerValue, + this.realValue, + this.textValue, + this.blobValue, + }); + + @override + int get hashCode => + kind.hashCode ^ + integerValue.hashCode ^ + realValue.hashCode ^ + textValue.hashCode ^ + blobValue.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is SqlValue && + runtimeType == other.runtimeType && + kind == other.kind && + integerValue == other.integerValue && + realValue == other.realValue && + textValue == other.textValue && + blobValue == other.blobValue; +} diff --git a/lib/core/frb_generated.dart b/lib/core/frb_generated.dart index 67e16043..9dd15541 100644 --- a/lib/core/frb_generated.dart +++ b/lib/core/frb_generated.dart @@ -5,14 +5,15 @@ import 'bridge.dart'; import 'bridge/callbacks.dart'; -import 'bridge/callbacks/user_discovery.dart'; import 'bridge/wrapper.dart'; +import 'bridge/wrapper/app_database.dart'; import 'bridge/wrapper/backup.dart'; import 'bridge/wrapper/key_manager.dart'; import 'bridge/wrapper/signal.dart'; import 'bridge/wrapper/user_discovery.dart'; import 'dart:async'; import 'dart:convert'; +import 'database/app.dart'; import 'frb_generated.dart'; import 'frb_generated.io.dart' if (dart.library.js_interop) 'frb_generated.web.dart'; @@ -78,7 +79,7 @@ class RustLib extends BaseEntrypoint { String get codegenVersion => '2.12.0'; @override - int get rustContentHash => 1109927244; + int get rustContentHash => -1155052375; static const kDefaultExternalLibraryLoaderConfig = ExternalLibraryLoaderConfig( @@ -136,40 +137,27 @@ abstract class RustLibApi extends BaseApi { Future crateBridgeCallbacksInitFlutterCallbacks({ required int callbackId, required FutureOr> Function() loggingGetStreamSink, - required FutureOr Function(Uint8List) userDiscoverySignData, - required FutureOr Function(Uint8List, Uint8List, Uint8List) - userDiscoveryVerifySignature, - required FutureOr Function(PlatformInt64, Uint8List) - userDiscoveryVerifyStoredPubkey, - required FutureOr Function(List) userDiscoverySetShares, - required FutureOr Function(PlatformInt64) - userDiscoveryGetShareForContact, - required FutureOr Function(PlatformInt64, PlatformInt64, Uint8List) - userDiscoveryPushOwnPromotionAndClearOldVersion, - required FutureOr?> Function(PlatformInt64) - userDiscoveryGetOwnPromotionsAfterVersion, - required FutureOr Function(OtherPromotion) - userDiscoveryStoreOtherPromotion, - required FutureOr?> Function(PlatformInt64) - userDiscoveryGetOtherPromotionsByPublicId, - required FutureOr Function(PlatformInt64) - userDiscoveryGetAnnouncedUserByPublicId, - required FutureOr Function(PlatformInt64) - userDiscoveryGetContactVersion, - required FutureOr Function(PlatformInt64, Uint8List) - userDiscoverySetContactVersion, - required FutureOr Function( - PlatformInt64, - AnnouncedUser, - PlatformInt64?, - ) - userDiscoveryPushNewUserRelation, - required FutureOr Function(PlatformInt64) - userDiscoveryGetContactPromotion, }); Future crateBridgeInitializeTwonlyFlutter({required InitConfig config}); + Future + crateBridgeWrapperAppDatabaseRustAppDatabaseExecute({ + required String statement, + required List arguments, + }); + + Future + crateBridgeWrapperAppDatabaseRustAppDatabaseLegacyImportComplete(); + + Future + crateBridgeWrapperAppDatabaseRustAppDatabaseMigrateLegacyDatabase(); + + Future crateBridgeWrapperAppDatabaseRustAppDatabaseSelect({ + required String statement, + required List arguments, + }); + Future<(String, String)> crateBridgeWrapperBackupRustBackupArchiveCreateBackupArchive(); @@ -294,109 +282,6 @@ abstract class RustLibApi extends BaseApi { required List shares, required int threshold, }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetAnnouncedUserByPublicId({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 publicId, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetConfig({ - required UserDiscoveryStoreFlutter that, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetContactPromotion({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 contactId, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetContactVersion({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 contactId, - }); - - Future> - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetOtherPromotionsByPublicId({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 publicId, - }); - - Future> - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetOwnPromotionsAfterVersion({ - required UserDiscoveryStoreFlutter that, - required int version, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetShareForContact({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 contactId, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterPushNewUserRelation({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 fromContactId, - required AnnouncedUser announcedUser, - PlatformInt64? publicKeyVerifiedTimestamp, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterPushOwnPromotionAndClearOldVersion({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 contactId, - required int version, - required List promotion, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterSetContactVersion({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 contactId, - required List update, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterSetShares({ - required UserDiscoveryStoreFlutter that, - required List shares, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterStoreOtherPromotion({ - required UserDiscoveryStoreFlutter that, - required OtherPromotion promotion, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterUpdateConfig({ - required UserDiscoveryStoreFlutter that, - required String update, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterSignData({ - required UserDiscoveryUtilsFlutter that, - required List inputData, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterVerifySignature({ - required UserDiscoveryUtilsFlutter that, - required List inputData, - required List pubkey, - required List signature, - }); - - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterVerifyStoredPubkey({ - required UserDiscoveryUtilsFlutter that, - required PlatformInt64 fromContactId, - required List pubkey, - }); } class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { @@ -675,36 +560,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { Future crateBridgeCallbacksInitFlutterCallbacks({ required int callbackId, required FutureOr> Function() loggingGetStreamSink, - required FutureOr Function(Uint8List) userDiscoverySignData, - required FutureOr Function(Uint8List, Uint8List, Uint8List) - userDiscoveryVerifySignature, - required FutureOr Function(PlatformInt64, Uint8List) - userDiscoveryVerifyStoredPubkey, - required FutureOr Function(List) userDiscoverySetShares, - required FutureOr Function(PlatformInt64) - userDiscoveryGetShareForContact, - required FutureOr Function(PlatformInt64, PlatformInt64, Uint8List) - userDiscoveryPushOwnPromotionAndClearOldVersion, - required FutureOr?> Function(PlatformInt64) - userDiscoveryGetOwnPromotionsAfterVersion, - required FutureOr Function(OtherPromotion) - userDiscoveryStoreOtherPromotion, - required FutureOr?> Function(PlatformInt64) - userDiscoveryGetOtherPromotionsByPublicId, - required FutureOr Function(PlatformInt64) - userDiscoveryGetAnnouncedUserByPublicId, - required FutureOr Function(PlatformInt64) - userDiscoveryGetContactVersion, - required FutureOr Function(PlatformInt64, Uint8List) - userDiscoverySetContactVersion, - required FutureOr Function( - PlatformInt64, - AnnouncedUser, - PlatformInt64?, - ) - userDiscoveryPushNewUserRelation, - required FutureOr Function(PlatformInt64) - userDiscoveryGetContactPromotion, }) { return handler.executeNormal( NormalTask( @@ -715,62 +570,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { loggingGetStreamSink, serializer, ); - sse_encode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException( - userDiscoverySignData, - serializer, - ); - sse_encode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException( - userDiscoveryVerifySignature, - serializer, - ); - sse_encode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - userDiscoveryVerifyStoredPubkey, - serializer, - ); - sse_encode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException( - userDiscoverySetShares, - serializer, - ); - sse_encode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - userDiscoveryGetShareForContact, - serializer, - ); - sse_encode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - userDiscoveryPushOwnPromotionAndClearOldVersion, - serializer, - ); - sse_encode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException( - userDiscoveryGetOwnPromotionsAfterVersion, - serializer, - ); - sse_encode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException( - userDiscoveryStoreOtherPromotion, - serializer, - ); - sse_encode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException( - userDiscoveryGetOtherPromotionsByPublicId, - serializer, - ); - sse_encode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException( - userDiscoveryGetAnnouncedUserByPublicId, - serializer, - ); - sse_encode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - userDiscoveryGetContactVersion, - serializer, - ); - sse_encode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - userDiscoverySetContactVersion, - serializer, - ); - sse_encode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException( - userDiscoveryPushNewUserRelation, - serializer, - ); - sse_encode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - userDiscoveryGetContactPromotion, - serializer, - ); pdeCallFfi( generalizedFrbRustBinding, serializer, @@ -783,24 +582,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { decodeErrorData: null, ), constMeta: kCrateBridgeCallbacksInitFlutterCallbacksConstMeta, - argValues: [ - callbackId, - loggingGetStreamSink, - userDiscoverySignData, - userDiscoveryVerifySignature, - userDiscoveryVerifyStoredPubkey, - userDiscoverySetShares, - userDiscoveryGetShareForContact, - userDiscoveryPushOwnPromotionAndClearOldVersion, - userDiscoveryGetOwnPromotionsAfterVersion, - userDiscoveryStoreOtherPromotion, - userDiscoveryGetOtherPromotionsByPublicId, - userDiscoveryGetAnnouncedUserByPublicId, - userDiscoveryGetContactVersion, - userDiscoverySetContactVersion, - userDiscoveryPushNewUserRelation, - userDiscoveryGetContactPromotion, - ], + argValues: [callbackId, loggingGetStreamSink], apiImpl: this, ), ); @@ -809,24 +591,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { TaskConstMeta get kCrateBridgeCallbacksInitFlutterCallbacksConstMeta => const TaskConstMeta( debugName: "init_flutter_callbacks", - argNames: [ - "callbackId", - "loggingGetStreamSink", - "userDiscoverySignData", - "userDiscoveryVerifySignature", - "userDiscoveryVerifyStoredPubkey", - "userDiscoverySetShares", - "userDiscoveryGetShareForContact", - "userDiscoveryPushOwnPromotionAndClearOldVersion", - "userDiscoveryGetOwnPromotionsAfterVersion", - "userDiscoveryStoreOtherPromotion", - "userDiscoveryGetOtherPromotionsByPublicId", - "userDiscoveryGetAnnouncedUserByPublicId", - "userDiscoveryGetContactVersion", - "userDiscoverySetContactVersion", - "userDiscoveryPushNewUserRelation", - "userDiscoveryGetContactPromotion", - ], + argNames: ["callbackId", "loggingGetStreamSink"], ); @override @@ -862,6 +627,146 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { argNames: ["config"], ); + @override + Future + crateBridgeWrapperAppDatabaseRustAppDatabaseExecute({ + required String statement, + required List arguments, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(statement, serializer); + sse_encode_list_sql_value(arguments, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 9, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_sql_execution_result, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: + kCrateBridgeWrapperAppDatabaseRustAppDatabaseExecuteConstMeta, + argValues: [statement, arguments], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kCrateBridgeWrapperAppDatabaseRustAppDatabaseExecuteConstMeta => + const TaskConstMeta( + debugName: "rust_app_database_execute", + argNames: ["statement", "arguments"], + ); + + @override + Future + crateBridgeWrapperAppDatabaseRustAppDatabaseLegacyImportComplete() { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 10, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: + kCrateBridgeWrapperAppDatabaseRustAppDatabaseLegacyImportCompleteConstMeta, + argValues: [], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kCrateBridgeWrapperAppDatabaseRustAppDatabaseLegacyImportCompleteConstMeta => + const TaskConstMeta( + debugName: "rust_app_database_legacy_import_complete", + argNames: [], + ); + + @override + Future + crateBridgeWrapperAppDatabaseRustAppDatabaseMigrateLegacyDatabase() { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 11, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_legacy_migration_report, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: + kCrateBridgeWrapperAppDatabaseRustAppDatabaseMigrateLegacyDatabaseConstMeta, + argValues: [], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kCrateBridgeWrapperAppDatabaseRustAppDatabaseMigrateLegacyDatabaseConstMeta => + const TaskConstMeta( + debugName: "rust_app_database_migrate_legacy_database", + argNames: [], + ); + + @override + Future crateBridgeWrapperAppDatabaseRustAppDatabaseSelect({ + required String statement, + required List arguments, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(statement, serializer); + sse_encode_list_sql_value(arguments, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 12, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_sql_rows, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kCrateBridgeWrapperAppDatabaseRustAppDatabaseSelectConstMeta, + argValues: [statement, arguments], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kCrateBridgeWrapperAppDatabaseRustAppDatabaseSelectConstMeta => + const TaskConstMeta( + debugName: "rust_app_database_select", + argNames: ["statement", "arguments"], + ); + @override Future<(String, String)> crateBridgeWrapperBackupRustBackupArchiveCreateBackupArchive() { @@ -872,7 +777,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 9, + funcId: 13, port: port_, ); }, @@ -905,7 +810,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 10, + funcId: 14, port: port_, ); }, @@ -940,7 +845,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 11, + funcId: 15, port: port_, ); }, @@ -972,7 +877,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 12, + funcId: 16, port: port_, ); }, @@ -1010,7 +915,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 13, + funcId: 17, port: port_, ); }, @@ -1043,7 +948,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 14, + funcId: 18, port: port_, ); }, @@ -1081,7 +986,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 15, + funcId: 19, port: port_, ); }, @@ -1118,7 +1023,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 16, + funcId: 20, port: port_, ); }, @@ -1155,7 +1060,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 17, + funcId: 21, port: port_, ); }, @@ -1193,7 +1098,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 18, + funcId: 22, port: port_, ); }, @@ -1231,7 +1136,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 19, + funcId: 23, port: port_, ); }, @@ -1263,7 +1168,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 20, + funcId: 24, port: port_, ); }, @@ -1296,7 +1201,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 21, + funcId: 25, port: port_, ); }, @@ -1328,7 +1233,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 22, + funcId: 26, port: port_, ); }, @@ -1363,7 +1268,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 23, + funcId: 27, port: port_, ); }, @@ -1405,7 +1310,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 24, + funcId: 28, port: port_, ); }, @@ -1449,7 +1354,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 25, + funcId: 29, port: port_, ); }, @@ -1482,7 +1387,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 26, + funcId: 30, port: port_, ); }, @@ -1514,7 +1419,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 27, + funcId: 31, port: port_, ); }, @@ -1549,7 +1454,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 28, + funcId: 32, port: port_, ); }, @@ -1581,7 +1486,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 29, + funcId: 33, port: port_, ); }, @@ -1616,7 +1521,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 30, + funcId: 34, port: port_, ); }, @@ -1653,7 +1558,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 31, + funcId: 35, port: port_, ); }, @@ -1692,7 +1597,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 32, + funcId: 36, port: port_, ); }, @@ -1729,7 +1634,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 33, + funcId: 37, port: port_, ); }, @@ -1759,7 +1664,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 34, + funcId: 38, port: port_, ); }, @@ -1791,7 +1696,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 35, + funcId: 39, port: port_, ); }, @@ -1830,7 +1735,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 36, + funcId: 40, port: port_, ); }, @@ -1869,7 +1774,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 37, + funcId: 41, port: port_, ); }, @@ -1904,7 +1809,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { pdeCallFfi( generalizedFrbRustBinding, serializer, - funcId: 38, + funcId: 42, port: port_, ); }, @@ -1925,645 +1830,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { argNames: ["shares", "threshold"], ); - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetAnnouncedUserByPublicId({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 publicId, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_i_64(publicId, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 39, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_opt_box_autoadd_announced_user, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetAnnouncedUserByPublicIdConstMeta, - argValues: [that, publicId], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetAnnouncedUserByPublicIdConstMeta => - const TaskConstMeta( - debugName: - "user_discovery_store_flutter_get_announced_user_by_public_id", - argNames: ["that", "publicId"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetConfig({ - required UserDiscoveryStoreFlutter that, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 40, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_String, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetConfigConstMeta, - argValues: [that], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetConfigConstMeta => - const TaskConstMeta( - debugName: "user_discovery_store_flutter_get_config", - argNames: ["that"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetContactPromotion({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 contactId, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_i_64(contactId, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 41, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_opt_list_prim_u_8_strict, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetContactPromotionConstMeta, - argValues: [that, contactId], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetContactPromotionConstMeta => - const TaskConstMeta( - debugName: "user_discovery_store_flutter_get_contact_promotion", - argNames: ["that", "contactId"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetContactVersion({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 contactId, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_i_64(contactId, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 42, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_opt_list_prim_u_8_strict, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetContactVersionConstMeta, - argValues: [that, contactId], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetContactVersionConstMeta => - const TaskConstMeta( - debugName: "user_discovery_store_flutter_get_contact_version", - argNames: ["that", "contactId"], - ); - - @override - Future> - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetOtherPromotionsByPublicId({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 publicId, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_i_64(publicId, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 43, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_list_other_promotion, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetOtherPromotionsByPublicIdConstMeta, - argValues: [that, publicId], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetOtherPromotionsByPublicIdConstMeta => - const TaskConstMeta( - debugName: - "user_discovery_store_flutter_get_other_promotions_by_public_id", - argNames: ["that", "publicId"], - ); - - @override - Future> - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetOwnPromotionsAfterVersion({ - required UserDiscoveryStoreFlutter that, - required int version, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_u_32(version, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 44, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_list_list_prim_u_8_strict, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetOwnPromotionsAfterVersionConstMeta, - argValues: [that, version], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetOwnPromotionsAfterVersionConstMeta => - const TaskConstMeta( - debugName: - "user_discovery_store_flutter_get_own_promotions_after_version", - argNames: ["that", "version"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetShareForContact({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 contactId, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_i_64(contactId, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 45, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_list_prim_u_8_strict, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetShareForContactConstMeta, - argValues: [that, contactId], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetShareForContactConstMeta => - const TaskConstMeta( - debugName: "user_discovery_store_flutter_get_share_for_contact", - argNames: ["that", "contactId"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterPushNewUserRelation({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 fromContactId, - required AnnouncedUser announcedUser, - PlatformInt64? publicKeyVerifiedTimestamp, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_i_64(fromContactId, serializer); - sse_encode_box_autoadd_announced_user(announcedUser, serializer); - sse_encode_opt_box_autoadd_i_64( - publicKeyVerifiedTimestamp, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 46, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterPushNewUserRelationConstMeta, - argValues: [ - that, - fromContactId, - announcedUser, - publicKeyVerifiedTimestamp, - ], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterPushNewUserRelationConstMeta => - const TaskConstMeta( - debugName: "user_discovery_store_flutter_push_new_user_relation", - argNames: [ - "that", - "fromContactId", - "announcedUser", - "publicKeyVerifiedTimestamp", - ], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterPushOwnPromotionAndClearOldVersion({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 contactId, - required int version, - required List promotion, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_i_64(contactId, serializer); - sse_encode_u_32(version, serializer); - sse_encode_list_prim_u_8_loose(promotion, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 47, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterPushOwnPromotionAndClearOldVersionConstMeta, - argValues: [that, contactId, version, promotion], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterPushOwnPromotionAndClearOldVersionConstMeta => - const TaskConstMeta( - debugName: - "user_discovery_store_flutter_push_own_promotion_and_clear_old_version", - argNames: ["that", "contactId", "version", "promotion"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterSetContactVersion({ - required UserDiscoveryStoreFlutter that, - required PlatformInt64 contactId, - required List update, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_i_64(contactId, serializer); - sse_encode_list_prim_u_8_loose(update, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 48, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterSetContactVersionConstMeta, - argValues: [that, contactId, update], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterSetContactVersionConstMeta => - const TaskConstMeta( - debugName: "user_discovery_store_flutter_set_contact_version", - argNames: ["that", "contactId", "update"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterSetShares({ - required UserDiscoveryStoreFlutter that, - required List shares, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_list_list_prim_u_8_strict(shares, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 49, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterSetSharesConstMeta, - argValues: [that, shares], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterSetSharesConstMeta => - const TaskConstMeta( - debugName: "user_discovery_store_flutter_set_shares", - argNames: ["that", "shares"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterStoreOtherPromotion({ - required UserDiscoveryStoreFlutter that, - required OtherPromotion promotion, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_box_autoadd_other_promotion(promotion, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 50, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterStoreOtherPromotionConstMeta, - argValues: [that, promotion], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterStoreOtherPromotionConstMeta => - const TaskConstMeta( - debugName: "user_discovery_store_flutter_store_other_promotion", - argNames: ["that", "promotion"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterUpdateConfig({ - required UserDiscoveryStoreFlutter that, - required String update, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_store_flutter(that, serializer); - sse_encode_String(update, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 51, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterUpdateConfigConstMeta, - argValues: [that, update], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterUpdateConfigConstMeta => - const TaskConstMeta( - debugName: "user_discovery_store_flutter_update_config", - argNames: ["that", "update"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterSignData({ - required UserDiscoveryUtilsFlutter that, - required List inputData, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_utils_flutter(that, serializer); - sse_encode_list_prim_u_8_loose(inputData, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 52, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_list_prim_u_8_strict, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterSignDataConstMeta, - argValues: [that, inputData], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterSignDataConstMeta => - const TaskConstMeta( - debugName: "user_discovery_utils_flutter_sign_data", - argNames: ["that", "inputData"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterVerifySignature({ - required UserDiscoveryUtilsFlutter that, - required List inputData, - required List pubkey, - required List signature, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_utils_flutter(that, serializer); - sse_encode_list_prim_u_8_loose(inputData, serializer); - sse_encode_list_prim_u_8_loose(pubkey, serializer); - sse_encode_list_prim_u_8_loose(signature, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 53, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_bool, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterVerifySignatureConstMeta, - argValues: [that, inputData, pubkey, signature], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterVerifySignatureConstMeta => - const TaskConstMeta( - debugName: "user_discovery_utils_flutter_verify_signature", - argNames: ["that", "inputData", "pubkey", "signature"], - ); - - @override - Future - crateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterVerifyStoredPubkey({ - required UserDiscoveryUtilsFlutter that, - required PlatformInt64 fromContactId, - required List pubkey, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_box_autoadd_user_discovery_utils_flutter(that, serializer); - sse_encode_i_64(fromContactId, serializer); - sse_encode_list_prim_u_8_loose(pubkey, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 54, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_bool, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: - kCrateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterVerifyStoredPubkeyConstMeta, - argValues: [that, fromContactId, pubkey], - apiImpl: this, - ), - ); - } - - TaskConstMeta - get kCrateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterVerifyStoredPubkeyConstMeta => - const TaskConstMeta( - debugName: "user_discovery_utils_flutter_verify_stored_pubkey", - argNames: ["that", "fromContactId", "pubkey"], - ); - Future Function( int, ) @@ -2601,398 +1867,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { }; } - Future Function(int, dynamic) - encode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException( - FutureOr Function(PlatformInt64) raw, - ) { - return (callId, rawArg0) async { - final arg0 = dco_decode_i_64(rawArg0); - - Box? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_opt_box_autoadd_announced_user(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - - Future Function(int, dynamic) - encode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException( - FutureOr?> Function(PlatformInt64) raw, - ) { - return (callId, rawArg0) async { - final arg0 = dco_decode_i_64(rawArg0); - - Box?>? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_opt_list_list_prim_u_8_strict(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - - Future Function(int, dynamic) - encode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException( - FutureOr?> Function(PlatformInt64) raw, - ) { - return (callId, rawArg0) async { - final arg0 = dco_decode_i_64(rawArg0); - - Box?>? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_opt_list_other_promotion(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - - Future Function(int, dynamic) - encode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - FutureOr Function(PlatformInt64) raw, - ) { - return (callId, rawArg0) async { - final arg0 = dco_decode_i_64(rawArg0); - - Box? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_opt_list_prim_u_8_strict(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - - Future Function(int, dynamic, dynamic, dynamic) - encode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, AnnouncedUser, PlatformInt64?) raw, - ) { - return (callId, rawArg0, rawArg1, rawArg2) async { - final arg0 = dco_decode_i_64(rawArg0); - final arg1 = dco_decode_announced_user(rawArg1); - final arg2 = dco_decode_opt_box_autoadd_i_64(rawArg2); - - Box? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0, arg1, arg2)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_bool(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - - Future Function(int, dynamic, dynamic, dynamic) - encode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, PlatformInt64, Uint8List) raw, - ) { - return (callId, rawArg0, rawArg1, rawArg2) async { - final arg0 = dco_decode_i_64(rawArg0); - final arg1 = dco_decode_i_64(rawArg1); - final arg2 = dco_decode_list_prim_u_8_strict(rawArg2); - - Box? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0, arg1, arg2)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_bool(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - - Future Function(int, dynamic, dynamic) - encode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, Uint8List) raw, - ) { - return (callId, rawArg0, rawArg1) async { - final arg0 = dco_decode_i_64(rawArg0); - final arg1 = dco_decode_list_prim_u_8_strict(rawArg1); - - Box? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0, arg1)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_bool(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - - Future Function(int, dynamic) - encode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(List) raw, - ) { - return (callId, rawArg0) async { - final arg0 = dco_decode_list_list_prim_u_8_strict(rawArg0); - - Box? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_bool(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - - Future Function(int, dynamic) - encode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException( - FutureOr Function(Uint8List) raw, - ) { - return (callId, rawArg0) async { - final arg0 = dco_decode_list_prim_u_8_strict(rawArg0); - - Box? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_opt_list_prim_u_8_strict(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - - Future Function(int, dynamic, dynamic, dynamic) - encode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(Uint8List, Uint8List, Uint8List) raw, - ) { - return (callId, rawArg0, rawArg1, rawArg2) async { - final arg0 = dco_decode_list_prim_u_8_strict(rawArg0); - final arg1 = dco_decode_list_prim_u_8_strict(rawArg1); - final arg2 = dco_decode_list_prim_u_8_strict(rawArg2); - - Box? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0, arg1, arg2)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_bool(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - - Future Function(int, dynamic) - encode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException( - FutureOr Function(OtherPromotion) raw, - ) { - return (callId, rawArg0) async { - final arg0 = dco_decode_other_promotion(rawArg0); - - Box? rawOutput; - Box? rawError; - try { - rawOutput = Box(await raw(arg0)); - } catch (e, s) { - rawError = Box(AnyhowException("$e\n\n$s")); - } - - final serializer = SseSerializer(generalizedFrbRustBinding); - assert((rawOutput != null) ^ (rawError != null)); - if (rawOutput != null) { - serializer.buffer.putUint8(0); - sse_encode_bool(rawOutput.value, serializer); - } else { - serializer.buffer.putUint8(1); - sse_encode_AnyhowException(rawError!.value, serializer); - } - final output = serializer.intoRaw(); - - generalizedFrbRustBinding.dartFnDeliverOutput( - callId: callId, - ptr: output.ptr, - rustVecLen: output.rustVecLen, - dataLen: output.dataLen, - ); - }; - } - @protected AnyhowException dco_decode_AnyhowException(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -3008,105 +1882,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { throw UnimplementedError(''); } - @protected - FutureOr Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - - @protected - FutureOr?> Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - - @protected - FutureOr?> Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - - @protected - FutureOr Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - - @protected - FutureOr Function(PlatformInt64, AnnouncedUser, PlatformInt64?) - dco_decode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - - @protected - FutureOr Function(PlatformInt64, PlatformInt64, Uint8List) - dco_decode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - - @protected - FutureOr Function(PlatformInt64, Uint8List) - dco_decode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - - @protected - FutureOr Function(List) - dco_decode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - - @protected - FutureOr Function(Uint8List) - dco_decode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - - @protected - FutureOr Function(Uint8List, Uint8List, Uint8List) - dco_decode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - - @protected - FutureOr Function(OtherPromotion) - dco_decode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - throw UnimplementedError(''); - } - @protected Object dco_decode_DartOpaque(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -3137,19 +1912,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return raw as String; } - @protected - AnnouncedUser dco_decode_announced_user(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - final arr = raw as List; - if (arr.length != 3) - throw Exception('unexpected arr length: expect 3 but see ${arr.length}'); - return AnnouncedUser( - userId: dco_decode_i_64(arr[0]), - publicKey: dco_decode_list_prim_u_8_strict(arr[1]), - publicId: dco_decode_i_64(arr[2]), - ); - } - @protected BackupPasswordKeys dco_decode_backup_password_keys(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -3168,18 +1930,18 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return raw as bool; } - @protected - AnnouncedUser dco_decode_box_autoadd_announced_user(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return dco_decode_announced_user(raw); - } - @protected BackupPasswordKeys dco_decode_box_autoadd_backup_password_keys(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return dco_decode_backup_password_keys(raw); } + @protected + double dco_decode_box_autoadd_f_64(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as double; + } + @protected FrbPreKeyBundle dco_decode_box_autoadd_frb_pre_key_bundle(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -3198,12 +1960,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return dco_decode_init_config(raw); } - @protected - OtherPromotion dco_decode_box_autoadd_other_promotion(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return dco_decode_other_promotion(raw); - } - @protected int dco_decode_box_autoadd_u_32(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -3211,19 +1967,9 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } @protected - UserDiscoveryStoreFlutter dco_decode_box_autoadd_user_discovery_store_flutter( - dynamic raw, - ) { + double dco_decode_f_64(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs - return dco_decode_user_discovery_store_flutter(raw); - } - - @protected - UserDiscoveryUtilsFlutter dco_decode_box_autoadd_user_discovery_utils_flutter( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return dco_decode_user_discovery_utils_flutter(raw); + return raw as double; } @protected @@ -3295,6 +2041,38 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return dcoDecodeI64(raw); } + @protected + LegacyMigrationReport dco_decode_legacy_migration_report(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 2) + throw Exception('unexpected arr length: expect 2 but see ${arr.length}'); + return LegacyMigrationReport( + legacyVersion: dco_decode_i_64(arr[0]), + tables: dco_decode_list_legacy_table_migration_count(arr[1]), + ); + } + + @protected + LegacyTableMigrationCount dco_decode_legacy_table_migration_count( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 2) + throw Exception('unexpected arr length: expect 2 but see ${arr.length}'); + return LegacyTableMigrationCount( + table: dco_decode_String(arr[0]), + rows: dco_decode_i_64(arr[1]), + ); + } + + @protected + List dco_decode_list_String(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return (raw as List).map(dco_decode_String).toList(); + } + @protected List dco_decode_list_frb_pqc_pre_key(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -3302,15 +2080,19 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } @protected - List dco_decode_list_list_prim_u_8_strict(dynamic raw) { + List dco_decode_list_legacy_table_migration_count( + dynamic raw, + ) { // Codec=Dco (DartCObject based), see doc to use other codecs - return (raw as List).map(dco_decode_list_prim_u_8_strict).toList(); + return (raw as List) + .map(dco_decode_legacy_table_migration_count) + .toList(); } @protected - List dco_decode_list_other_promotion(dynamic raw) { + List dco_decode_list_list_prim_u_8_strict(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs - return (raw as List).map(dco_decode_other_promotion).toList(); + return (raw as List).map(dco_decode_list_prim_u_8_strict).toList(); } @protected @@ -3334,6 +2116,18 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { .toList(); } + @protected + List dco_decode_list_sql_row(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return (raw as List).map(dco_decode_sql_row).toList(); + } + + @protected + List dco_decode_list_sql_value(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return (raw as List).map(dco_decode_sql_value).toList(); + } + @protected String? dco_decode_opt_String(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -3341,9 +2135,9 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } @protected - AnnouncedUser? dco_decode_opt_box_autoadd_announced_user(dynamic raw) { + double? dco_decode_opt_box_autoadd_f_64(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs - return raw == null ? null : dco_decode_box_autoadd_announced_user(raw); + return raw == null ? null : dco_decode_box_autoadd_f_64(raw); } @protected @@ -3358,40 +2152,12 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return raw == null ? null : dco_decode_box_autoadd_u_32(raw); } - @protected - List? dco_decode_opt_list_list_prim_u_8_strict(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return raw == null ? null : dco_decode_list_list_prim_u_8_strict(raw); - } - - @protected - List? dco_decode_opt_list_other_promotion(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return raw == null ? null : dco_decode_list_other_promotion(raw); - } - @protected Uint8List? dco_decode_opt_list_prim_u_8_strict(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return raw == null ? null : dco_decode_list_prim_u_8_strict(raw); } - @protected - OtherPromotion dco_decode_other_promotion(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - final arr = raw as List; - if (arr.length != 6) - throw Exception('unexpected arr length: expect 6 but see ${arr.length}'); - return OtherPromotion( - promotionId: dco_decode_u_32(arr[0]), - publicId: dco_decode_i_64(arr[1]), - fromContactId: dco_decode_i_64(arr[2]), - threshold: dco_decode_u_8(arr[3]), - announcementShare: dco_decode_list_prim_u_8_strict(arr[4]), - publicKeyVerifiedTimestamp: dco_decode_opt_box_autoadd_i_64(arr[5]), - ); - } - @protected (PlatformInt64, Uint8List) dco_decode_record_i_64_list_prim_u_8_strict( dynamic raw, @@ -3435,6 +2201,15 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); } + @protected + RustAppDatabase dco_decode_rust_app_database(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 0) + throw Exception('unexpected arr length: expect 0 but see ${arr.length}'); + return RustAppDatabase(); + } + @protected RustBackupArchive dco_decode_rust_backup_archive(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -3480,6 +2255,56 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return RustUtils(); } + @protected + SqlExecutionResult dco_decode_sql_execution_result(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 2) + throw Exception('unexpected arr length: expect 2 but see ${arr.length}'); + return SqlExecutionResult( + affectedRows: dco_decode_i_64(arr[0]), + lastInsertRowId: dco_decode_i_64(arr[1]), + ); + } + + @protected + SqlRow dco_decode_sql_row(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 1) + throw Exception('unexpected arr length: expect 1 but see ${arr.length}'); + return SqlRow( + values: dco_decode_list_sql_value(arr[0]), + ); + } + + @protected + SqlRows dco_decode_sql_rows(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 2) + throw Exception('unexpected arr length: expect 2 but see ${arr.length}'); + return SqlRows( + columns: dco_decode_list_String(arr[0]), + rows: dco_decode_list_sql_row(arr[1]), + ); + } + + @protected + SqlValue dco_decode_sql_value(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 5) + throw Exception('unexpected arr length: expect 5 but see ${arr.length}'); + return SqlValue( + kind: dco_decode_u_8(arr[0]), + integerValue: dco_decode_opt_box_autoadd_i_64(arr[1]), + realValue: dco_decode_opt_box_autoadd_f_64(arr[2]), + textValue: dco_decode_opt_String(arr[3]), + blobValue: dco_decode_opt_list_prim_u_8_strict(arr[4]), + ); + } + @protected int dco_decode_u_32(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -3504,28 +2329,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return; } - @protected - UserDiscoveryStoreFlutter dco_decode_user_discovery_store_flutter( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - final arr = raw as List; - if (arr.length != 0) - throw Exception('unexpected arr length: expect 0 but see ${arr.length}'); - return UserDiscoveryStoreFlutter(); - } - - @protected - UserDiscoveryUtilsFlutter dco_decode_user_discovery_utils_flutter( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - final arr = raw as List; - if (arr.length != 0) - throw Exception('unexpected arr length: expect 0 but see ${arr.length}'); - return UserDiscoveryUtilsFlutter(); - } - @protected BigInt dco_decode_usize(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -3570,19 +2373,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return utf8.decoder.convert(inner); } - @protected - AnnouncedUser sse_decode_announced_user(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - var var_userId = sse_decode_i_64(deserializer); - var var_publicKey = sse_decode_list_prim_u_8_strict(deserializer); - var var_publicId = sse_decode_i_64(deserializer); - return AnnouncedUser( - userId: var_userId, - publicKey: var_publicKey, - publicId: var_publicId, - ); - } - @protected BackupPasswordKeys sse_decode_backup_password_keys( SseDeserializer deserializer, @@ -3602,14 +2392,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return deserializer.buffer.getUint8() != 0; } - @protected - AnnouncedUser sse_decode_box_autoadd_announced_user( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return (sse_decode_announced_user(deserializer)); - } - @protected BackupPasswordKeys sse_decode_box_autoadd_backup_password_keys( SseDeserializer deserializer, @@ -3618,6 +2400,12 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return (sse_decode_backup_password_keys(deserializer)); } + @protected + double sse_decode_box_autoadd_f_64(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return (sse_decode_f_64(deserializer)); + } + @protected FrbPreKeyBundle sse_decode_box_autoadd_frb_pre_key_bundle( SseDeserializer deserializer, @@ -3638,14 +2426,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return (sse_decode_init_config(deserializer)); } - @protected - OtherPromotion sse_decode_box_autoadd_other_promotion( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return (sse_decode_other_promotion(deserializer)); - } - @protected int sse_decode_box_autoadd_u_32(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -3653,19 +2433,9 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } @protected - UserDiscoveryStoreFlutter sse_decode_box_autoadd_user_discovery_store_flutter( - SseDeserializer deserializer, - ) { + double sse_decode_f_64(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs - return (sse_decode_user_discovery_store_flutter(deserializer)); - } - - @protected - UserDiscoveryUtilsFlutter sse_decode_box_autoadd_user_discovery_utils_flutter( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return (sse_decode_user_discovery_utils_flutter(deserializer)); + return deserializer.buffer.getFloat64(); } @protected @@ -3748,6 +2518,41 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return deserializer.buffer.getPlatformInt64(); } + @protected + LegacyMigrationReport sse_decode_legacy_migration_report( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_legacyVersion = sse_decode_i_64(deserializer); + var var_tables = sse_decode_list_legacy_table_migration_count(deserializer); + return LegacyMigrationReport( + legacyVersion: var_legacyVersion, + tables: var_tables, + ); + } + + @protected + LegacyTableMigrationCount sse_decode_legacy_table_migration_count( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_table = sse_decode_String(deserializer); + var var_rows = sse_decode_i_64(deserializer); + return LegacyTableMigrationCount(table: var_table, rows: var_rows); + } + + @protected + List sse_decode_list_String(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var len_ = sse_decode_i_32(deserializer); + var ans_ = []; + for (var idx_ = 0; idx_ < len_; ++idx_) { + ans_.add(sse_decode_String(deserializer)); + } + return ans_; + } + @protected List sse_decode_list_frb_pqc_pre_key( SseDeserializer deserializer, @@ -3762,6 +2567,20 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return ans_; } + @protected + List sse_decode_list_legacy_table_migration_count( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var len_ = sse_decode_i_32(deserializer); + var ans_ = []; + for (var idx_ = 0; idx_ < len_; ++idx_) { + ans_.add(sse_decode_legacy_table_migration_count(deserializer)); + } + return ans_; + } + @protected List sse_decode_list_list_prim_u_8_strict( SseDeserializer deserializer, @@ -3776,20 +2595,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return ans_; } - @protected - List sse_decode_list_other_promotion( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - - var len_ = sse_decode_i_32(deserializer); - var ans_ = []; - for (var idx_ = 0; idx_ < len_; ++idx_) { - ans_.add(sse_decode_other_promotion(deserializer)); - } - return ans_; - } - @protected List sse_decode_list_prim_u_8_loose(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -3819,6 +2624,30 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return ans_; } + @protected + List sse_decode_list_sql_row(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var len_ = sse_decode_i_32(deserializer); + var ans_ = []; + for (var idx_ = 0; idx_ < len_; ++idx_) { + ans_.add(sse_decode_sql_row(deserializer)); + } + return ans_; + } + + @protected + List sse_decode_list_sql_value(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var len_ = sse_decode_i_32(deserializer); + var ans_ = []; + for (var idx_ = 0; idx_ < len_; ++idx_) { + ans_.add(sse_decode_sql_value(deserializer)); + } + return ans_; + } + @protected String? sse_decode_opt_String(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -3831,13 +2660,11 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } @protected - AnnouncedUser? sse_decode_opt_box_autoadd_announced_user( - SseDeserializer deserializer, - ) { + double? sse_decode_opt_box_autoadd_f_64(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs if (sse_decode_bool(deserializer)) { - return (sse_decode_box_autoadd_announced_user(deserializer)); + return (sse_decode_box_autoadd_f_64(deserializer)); } else { return null; } @@ -3865,32 +2692,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } } - @protected - List? sse_decode_opt_list_list_prim_u_8_strict( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - - if (sse_decode_bool(deserializer)) { - return (sse_decode_list_list_prim_u_8_strict(deserializer)); - } else { - return null; - } - } - - @protected - List? sse_decode_opt_list_other_promotion( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - - if (sse_decode_bool(deserializer)) { - return (sse_decode_list_other_promotion(deserializer)); - } else { - return null; - } - } - @protected Uint8List? sse_decode_opt_list_prim_u_8_strict(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -3902,27 +2703,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } } - @protected - OtherPromotion sse_decode_other_promotion(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - var var_promotionId = sse_decode_u_32(deserializer); - var var_publicId = sse_decode_i_64(deserializer); - var var_fromContactId = sse_decode_i_64(deserializer); - var var_threshold = sse_decode_u_8(deserializer); - var var_announcementShare = sse_decode_list_prim_u_8_strict(deserializer); - var var_publicKeyVerifiedTimestamp = sse_decode_opt_box_autoadd_i_64( - deserializer, - ); - return OtherPromotion( - promotionId: var_promotionId, - publicId: var_publicId, - fromContactId: var_fromContactId, - threshold: var_threshold, - announcementShare: var_announcementShare, - publicKeyVerifiedTimestamp: var_publicKeyVerifiedTimestamp, - ); - } - @protected (PlatformInt64, Uint8List) sse_decode_record_i_64_list_prim_u_8_strict( SseDeserializer deserializer, @@ -3953,6 +2733,12 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return (var_field0, var_field1); } + @protected + RustAppDatabase sse_decode_rust_app_database(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RustAppDatabase(); + } + @protected RustBackupArchive sse_decode_rust_backup_archive( SseDeserializer deserializer, @@ -3987,6 +2773,51 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return RustUtils(); } + @protected + SqlExecutionResult sse_decode_sql_execution_result( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_affectedRows = sse_decode_i_64(deserializer); + var var_lastInsertRowId = sse_decode_i_64(deserializer); + return SqlExecutionResult( + affectedRows: var_affectedRows, + lastInsertRowId: var_lastInsertRowId, + ); + } + + @protected + SqlRow sse_decode_sql_row(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_values = sse_decode_list_sql_value(deserializer); + return SqlRow(values: var_values); + } + + @protected + SqlRows sse_decode_sql_rows(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_columns = sse_decode_list_String(deserializer); + var var_rows = sse_decode_list_sql_row(deserializer); + return SqlRows(columns: var_columns, rows: var_rows); + } + + @protected + SqlValue sse_decode_sql_value(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_kind = sse_decode_u_8(deserializer); + var var_integerValue = sse_decode_opt_box_autoadd_i_64(deserializer); + var var_realValue = sse_decode_opt_box_autoadd_f_64(deserializer); + var var_textValue = sse_decode_opt_String(deserializer); + var var_blobValue = sse_decode_opt_list_prim_u_8_strict(deserializer); + return SqlValue( + kind: var_kind, + integerValue: var_integerValue, + realValue: var_realValue, + textValue: var_textValue, + blobValue: var_blobValue, + ); + } + @protected int sse_decode_u_32(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -4011,22 +2842,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { // Codec=Sse (Serialization based), see doc to use other codecs } - @protected - UserDiscoveryStoreFlutter sse_decode_user_discovery_store_flutter( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return UserDiscoveryStoreFlutter(); - } - - @protected - UserDiscoveryUtilsFlutter sse_decode_user_discovery_utils_flutter( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return UserDiscoveryUtilsFlutter(); - } - @protected BigInt sse_decode_usize(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -4060,168 +2875,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); } - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException( - FutureOr Function(PlatformInt64) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException( - self, - ), - serializer, - ); - } - - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException( - FutureOr?> Function(PlatformInt64) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException( - self, - ), - serializer, - ); - } - - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException( - FutureOr?> Function(PlatformInt64) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException( - self, - ), - serializer, - ); - } - - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - FutureOr Function(PlatformInt64) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - self, - ), - serializer, - ); - } - - @protected - void - sse_encode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, AnnouncedUser, PlatformInt64?) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException( - self, - ), - serializer, - ); - } - - @protected - void - sse_encode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, PlatformInt64, Uint8List) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - self, - ), - serializer, - ); - } - - @protected - void - sse_encode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, Uint8List) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - self, - ), - serializer, - ); - } - - @protected - void - sse_encode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(List) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException( - self, - ), - serializer, - ); - } - - @protected - void - sse_encode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException( - FutureOr Function(Uint8List) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException( - self, - ), - serializer, - ); - } - - @protected - void - sse_encode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(Uint8List, Uint8List, Uint8List) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException( - self, - ), - serializer, - ); - } - - @protected - void sse_encode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException( - FutureOr Function(OtherPromotion) self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_DartOpaque( - encode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException(self), - serializer, - ); - } - @protected void sse_encode_DartOpaque(Object self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -4272,14 +2925,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { sse_encode_list_prim_u_8_strict(utf8.encoder.convert(self), serializer); } - @protected - void sse_encode_announced_user(AnnouncedUser self, SseSerializer serializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_i_64(self.userId, serializer); - sse_encode_list_prim_u_8_strict(self.publicKey, serializer); - sse_encode_i_64(self.publicId, serializer); - } - @protected void sse_encode_backup_password_keys( BackupPasswordKeys self, @@ -4296,15 +2941,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { serializer.buffer.putUint8(self ? 1 : 0); } - @protected - void sse_encode_box_autoadd_announced_user( - AnnouncedUser self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_announced_user(self, serializer); - } - @protected void sse_encode_box_autoadd_backup_password_keys( BackupPasswordKeys self, @@ -4314,6 +2950,12 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { sse_encode_backup_password_keys(self, serializer); } + @protected + void sse_encode_box_autoadd_f_64(double self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_f_64(self, serializer); + } + @protected void sse_encode_box_autoadd_frb_pre_key_bundle( FrbPreKeyBundle self, @@ -4341,15 +2983,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { sse_encode_init_config(self, serializer); } - @protected - void sse_encode_box_autoadd_other_promotion( - OtherPromotion self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_other_promotion(self, serializer); - } - @protected void sse_encode_box_autoadd_u_32(int self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -4357,21 +2990,9 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } @protected - void sse_encode_box_autoadd_user_discovery_store_flutter( - UserDiscoveryStoreFlutter self, - SseSerializer serializer, - ) { + void sse_encode_f_64(double self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_user_discovery_store_flutter(self, serializer); - } - - @protected - void sse_encode_box_autoadd_user_discovery_utils_flutter( - UserDiscoveryUtilsFlutter self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_user_discovery_utils_flutter(self, serializer); + serializer.buffer.putFloat64(self); } @protected @@ -4430,6 +3051,35 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { serializer.buffer.putPlatformInt64(self); } + @protected + void sse_encode_legacy_migration_report( + LegacyMigrationReport self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_64(self.legacyVersion, serializer); + sse_encode_list_legacy_table_migration_count(self.tables, serializer); + } + + @protected + void sse_encode_legacy_table_migration_count( + LegacyTableMigrationCount self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_String(self.table, serializer); + sse_encode_i_64(self.rows, serializer); + } + + @protected + void sse_encode_list_String(List self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + for (final item in self) { + sse_encode_String(item, serializer); + } + } + @protected void sse_encode_list_frb_pqc_pre_key( List self, @@ -4442,6 +3092,18 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } } + @protected + void sse_encode_list_legacy_table_migration_count( + List self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + for (final item in self) { + sse_encode_legacy_table_migration_count(item, serializer); + } + } + @protected void sse_encode_list_list_prim_u_8_strict( List self, @@ -4454,18 +3116,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } } - @protected - void sse_encode_list_other_promotion( - List self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_i_32(self.length, serializer); - for (final item in self) { - sse_encode_other_promotion(item, serializer); - } - } - @protected void sse_encode_list_prim_u_8_loose( List self, @@ -4500,6 +3150,27 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } } + @protected + void sse_encode_list_sql_row(List self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + for (final item in self) { + sse_encode_sql_row(item, serializer); + } + } + + @protected + void sse_encode_list_sql_value( + List self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + for (final item in self) { + sse_encode_sql_value(item, serializer); + } + } + @protected void sse_encode_opt_String(String? self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -4511,15 +3182,12 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } @protected - void sse_encode_opt_box_autoadd_announced_user( - AnnouncedUser? self, - SseSerializer serializer, - ) { + void sse_encode_opt_box_autoadd_f_64(double? self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_bool(self != null, serializer); if (self != null) { - sse_encode_box_autoadd_announced_user(self, serializer); + sse_encode_box_autoadd_f_64(self, serializer); } } @@ -4546,32 +3214,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } } - @protected - void sse_encode_opt_list_list_prim_u_8_strict( - List? self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - - sse_encode_bool(self != null, serializer); - if (self != null) { - sse_encode_list_list_prim_u_8_strict(self, serializer); - } - } - - @protected - void sse_encode_opt_list_other_promotion( - List? self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - - sse_encode_bool(self != null, serializer); - if (self != null) { - sse_encode_list_other_promotion(self, serializer); - } - } - @protected void sse_encode_opt_list_prim_u_8_strict( Uint8List? self, @@ -4585,23 +3227,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } } - @protected - void sse_encode_other_promotion( - OtherPromotion self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_u_32(self.promotionId, serializer); - sse_encode_i_64(self.publicId, serializer); - sse_encode_i_64(self.fromContactId, serializer); - sse_encode_u_8(self.threshold, serializer); - sse_encode_list_prim_u_8_strict(self.announcementShare, serializer); - sse_encode_opt_box_autoadd_i_64( - self.publicKeyVerifiedTimestamp, - serializer, - ); - } - @protected void sse_encode_record_i_64_list_prim_u_8_strict( (PlatformInt64, Uint8List) self, @@ -4632,6 +3257,14 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { sse_encode_String(self.$2, serializer); } + @protected + void sse_encode_rust_app_database( + RustAppDatabase self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + } + @protected void sse_encode_rust_backup_archive( RustBackupArchive self, @@ -4666,6 +3299,39 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { // Codec=Sse (Serialization based), see doc to use other codecs } + @protected + void sse_encode_sql_execution_result( + SqlExecutionResult self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_64(self.affectedRows, serializer); + sse_encode_i_64(self.lastInsertRowId, serializer); + } + + @protected + void sse_encode_sql_row(SqlRow self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_list_sql_value(self.values, serializer); + } + + @protected + void sse_encode_sql_rows(SqlRows self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_list_String(self.columns, serializer); + sse_encode_list_sql_row(self.rows, serializer); + } + + @protected + void sse_encode_sql_value(SqlValue self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_u_8(self.kind, serializer); + sse_encode_opt_box_autoadd_i_64(self.integerValue, serializer); + sse_encode_opt_box_autoadd_f_64(self.realValue, serializer); + sse_encode_opt_String(self.textValue, serializer); + sse_encode_opt_list_prim_u_8_strict(self.blobValue, serializer); + } + @protected void sse_encode_u_32(int self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -4689,22 +3355,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { // Codec=Sse (Serialization based), see doc to use other codecs } - @protected - void sse_encode_user_discovery_store_flutter( - UserDiscoveryStoreFlutter self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - } - - @protected - void sse_encode_user_discovery_utils_flutter( - UserDiscoveryUtilsFlutter self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - } - @protected void sse_encode_usize(BigInt self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs diff --git a/lib/core/frb_generated.io.dart b/lib/core/frb_generated.io.dart index dd94d308..41f58771 100644 --- a/lib/core/frb_generated.io.dart +++ b/lib/core/frb_generated.io.dart @@ -5,8 +5,8 @@ import 'bridge.dart'; import 'bridge/callbacks.dart'; -import 'bridge/callbacks/user_discovery.dart'; import 'bridge/wrapper.dart'; +import 'bridge/wrapper/app_database.dart'; import 'bridge/wrapper/backup.dart'; import 'bridge/wrapper/key_manager.dart'; import 'bridge/wrapper/signal.dart'; @@ -14,6 +14,7 @@ import 'bridge/wrapper/user_discovery.dart'; import 'dart:async'; import 'dart:convert'; import 'dart:ffi' as ffi; +import 'database/app.dart'; import 'frb_generated.dart'; import 'keys/backup_password_keys.dart'; import 'lib.dart'; @@ -37,72 +38,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { dynamic raw, ); - @protected - FutureOr Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr?> Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr?> Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(PlatformInt64, AnnouncedUser, PlatformInt64?) - dco_decode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(PlatformInt64, PlatformInt64, Uint8List) - dco_decode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(PlatformInt64, Uint8List) - dco_decode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(List) - dco_decode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(Uint8List) - dco_decode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(Uint8List, Uint8List, Uint8List) - dco_decode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(OtherPromotion) - dco_decode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException( - dynamic raw, - ); - @protected Object dco_decode_DartOpaque(dynamic raw); @@ -117,9 +52,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected String dco_decode_String(dynamic raw); - @protected - AnnouncedUser dco_decode_announced_user(dynamic raw); - @protected BackupPasswordKeys dco_decode_backup_password_keys(dynamic raw); @@ -127,10 +59,10 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { bool dco_decode_bool(dynamic raw); @protected - AnnouncedUser dco_decode_box_autoadd_announced_user(dynamic raw); + BackupPasswordKeys dco_decode_box_autoadd_backup_password_keys(dynamic raw); @protected - BackupPasswordKeys dco_decode_box_autoadd_backup_password_keys(dynamic raw); + double dco_decode_box_autoadd_f_64(dynamic raw); @protected FrbPreKeyBundle dco_decode_box_autoadd_frb_pre_key_bundle(dynamic raw); @@ -141,21 +73,11 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected InitConfig dco_decode_box_autoadd_init_config(dynamic raw); - @protected - OtherPromotion dco_decode_box_autoadd_other_promotion(dynamic raw); - @protected int dco_decode_box_autoadd_u_32(dynamic raw); @protected - UserDiscoveryStoreFlutter dco_decode_box_autoadd_user_discovery_store_flutter( - dynamic raw, - ); - - @protected - UserDiscoveryUtilsFlutter dco_decode_box_autoadd_user_discovery_utils_flutter( - dynamic raw, - ); + double dco_decode_f_64(dynamic raw); @protected FlutterUserDiscovery dco_decode_flutter_user_discovery(dynamic raw); @@ -175,14 +97,27 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected PlatformInt64 dco_decode_isize(dynamic raw); + @protected + LegacyMigrationReport dco_decode_legacy_migration_report(dynamic raw); + + @protected + LegacyTableMigrationCount dco_decode_legacy_table_migration_count( + dynamic raw, + ); + + @protected + List dco_decode_list_String(dynamic raw); + @protected List dco_decode_list_frb_pqc_pre_key(dynamic raw); @protected - List dco_decode_list_list_prim_u_8_strict(dynamic raw); + List dco_decode_list_legacy_table_migration_count( + dynamic raw, + ); @protected - List dco_decode_list_other_promotion(dynamic raw); + List dco_decode_list_list_prim_u_8_strict(dynamic raw); @protected List dco_decode_list_prim_u_8_loose(dynamic raw); @@ -194,11 +129,17 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { List<(PlatformInt64, Uint8List)> dco_decode_list_record_i_64_list_prim_u_8_strict(dynamic raw); + @protected + List dco_decode_list_sql_row(dynamic raw); + + @protected + List dco_decode_list_sql_value(dynamic raw); + @protected String? dco_decode_opt_String(dynamic raw); @protected - AnnouncedUser? dco_decode_opt_box_autoadd_announced_user(dynamic raw); + double? dco_decode_opt_box_autoadd_f_64(dynamic raw); @protected PlatformInt64? dco_decode_opt_box_autoadd_i_64(dynamic raw); @@ -206,18 +147,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected int? dco_decode_opt_box_autoadd_u_32(dynamic raw); - @protected - List? dco_decode_opt_list_list_prim_u_8_strict(dynamic raw); - - @protected - List? dco_decode_opt_list_other_promotion(dynamic raw); - @protected Uint8List? dco_decode_opt_list_prim_u_8_strict(dynamic raw); - @protected - OtherPromotion dco_decode_other_promotion(dynamic raw); - @protected (PlatformInt64, Uint8List) dco_decode_record_i_64_list_prim_u_8_strict( dynamic raw, @@ -231,6 +163,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected (String, String) dco_decode_record_string_string(dynamic raw); + @protected + RustAppDatabase dco_decode_rust_app_database(dynamic raw); + @protected RustBackupArchive dco_decode_rust_backup_archive(dynamic raw); @@ -246,6 +181,18 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected RustUtils dco_decode_rust_utils(dynamic raw); + @protected + SqlExecutionResult dco_decode_sql_execution_result(dynamic raw); + + @protected + SqlRow dco_decode_sql_row(dynamic raw); + + @protected + SqlRows dco_decode_sql_rows(dynamic raw); + + @protected + SqlValue dco_decode_sql_value(dynamic raw); + @protected int dco_decode_u_32(dynamic raw); @@ -258,16 +205,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void dco_decode_unit(dynamic raw); - @protected - UserDiscoveryStoreFlutter dco_decode_user_discovery_store_flutter( - dynamic raw, - ); - - @protected - UserDiscoveryUtilsFlutter dco_decode_user_discovery_utils_flutter( - dynamic raw, - ); - @protected BigInt dco_decode_usize(dynamic raw); @@ -290,9 +227,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected String sse_decode_String(SseDeserializer deserializer); - @protected - AnnouncedUser sse_decode_announced_user(SseDeserializer deserializer); - @protected BackupPasswordKeys sse_decode_backup_password_keys( SseDeserializer deserializer, @@ -302,14 +236,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { bool sse_decode_bool(SseDeserializer deserializer); @protected - AnnouncedUser sse_decode_box_autoadd_announced_user( + BackupPasswordKeys sse_decode_box_autoadd_backup_password_keys( SseDeserializer deserializer, ); @protected - BackupPasswordKeys sse_decode_box_autoadd_backup_password_keys( - SseDeserializer deserializer, - ); + double sse_decode_box_autoadd_f_64(SseDeserializer deserializer); @protected FrbPreKeyBundle sse_decode_box_autoadd_frb_pre_key_bundle( @@ -322,23 +254,11 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected InitConfig sse_decode_box_autoadd_init_config(SseDeserializer deserializer); - @protected - OtherPromotion sse_decode_box_autoadd_other_promotion( - SseDeserializer deserializer, - ); - @protected int sse_decode_box_autoadd_u_32(SseDeserializer deserializer); @protected - UserDiscoveryStoreFlutter sse_decode_box_autoadd_user_discovery_store_flutter( - SseDeserializer deserializer, - ); - - @protected - UserDiscoveryUtilsFlutter sse_decode_box_autoadd_user_discovery_utils_flutter( - SseDeserializer deserializer, - ); + double sse_decode_f_64(SseDeserializer deserializer); @protected FlutterUserDiscovery sse_decode_flutter_user_discovery( @@ -360,18 +280,31 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected PlatformInt64 sse_decode_isize(SseDeserializer deserializer); + @protected + LegacyMigrationReport sse_decode_legacy_migration_report( + SseDeserializer deserializer, + ); + + @protected + LegacyTableMigrationCount sse_decode_legacy_table_migration_count( + SseDeserializer deserializer, + ); + + @protected + List sse_decode_list_String(SseDeserializer deserializer); + @protected List sse_decode_list_frb_pqc_pre_key( SseDeserializer deserializer, ); @protected - List sse_decode_list_list_prim_u_8_strict( + List sse_decode_list_legacy_table_migration_count( SseDeserializer deserializer, ); @protected - List sse_decode_list_other_promotion( + List sse_decode_list_list_prim_u_8_strict( SseDeserializer deserializer, ); @@ -387,13 +320,17 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseDeserializer deserializer, ); + @protected + List sse_decode_list_sql_row(SseDeserializer deserializer); + + @protected + List sse_decode_list_sql_value(SseDeserializer deserializer); + @protected String? sse_decode_opt_String(SseDeserializer deserializer); @protected - AnnouncedUser? sse_decode_opt_box_autoadd_announced_user( - SseDeserializer deserializer, - ); + double? sse_decode_opt_box_autoadd_f_64(SseDeserializer deserializer); @protected PlatformInt64? sse_decode_opt_box_autoadd_i_64(SseDeserializer deserializer); @@ -401,22 +338,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected int? sse_decode_opt_box_autoadd_u_32(SseDeserializer deserializer); - @protected - List? sse_decode_opt_list_list_prim_u_8_strict( - SseDeserializer deserializer, - ); - - @protected - List? sse_decode_opt_list_other_promotion( - SseDeserializer deserializer, - ); - @protected Uint8List? sse_decode_opt_list_prim_u_8_strict(SseDeserializer deserializer); - @protected - OtherPromotion sse_decode_other_promotion(SseDeserializer deserializer); - @protected (PlatformInt64, Uint8List) sse_decode_record_i_64_list_prim_u_8_strict( SseDeserializer deserializer, @@ -432,6 +356,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseDeserializer deserializer, ); + @protected + RustAppDatabase sse_decode_rust_app_database(SseDeserializer deserializer); + @protected RustBackupArchive sse_decode_rust_backup_archive( SseDeserializer deserializer, @@ -451,6 +378,20 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected RustUtils sse_decode_rust_utils(SseDeserializer deserializer); + @protected + SqlExecutionResult sse_decode_sql_execution_result( + SseDeserializer deserializer, + ); + + @protected + SqlRow sse_decode_sql_row(SseDeserializer deserializer); + + @protected + SqlRows sse_decode_sql_rows(SseDeserializer deserializer); + + @protected + SqlValue sse_decode_sql_value(SseDeserializer deserializer); + @protected int sse_decode_u_32(SseDeserializer deserializer); @@ -463,16 +404,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_decode_unit(SseDeserializer deserializer); - @protected - UserDiscoveryStoreFlutter sse_decode_user_discovery_store_flutter( - SseDeserializer deserializer, - ); - - @protected - UserDiscoveryUtilsFlutter sse_decode_user_discovery_utils_flutter( - SseDeserializer deserializer, - ); - @protected BigInt sse_decode_usize(SseDeserializer deserializer); @@ -491,82 +422,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException( - FutureOr Function(PlatformInt64) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException( - FutureOr?> Function(PlatformInt64) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException( - FutureOr?> Function(PlatformInt64) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - FutureOr Function(PlatformInt64) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, AnnouncedUser, PlatformInt64?) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, PlatformInt64, Uint8List) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, Uint8List) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(List) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException( - FutureOr Function(Uint8List) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(Uint8List, Uint8List, Uint8List) self, - SseSerializer serializer, - ); - - @protected - void sse_encode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException( - FutureOr Function(OtherPromotion) self, - SseSerializer serializer, - ); - @protected void sse_encode_DartOpaque(Object self, SseSerializer serializer); @@ -585,9 +440,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_String(String self, SseSerializer serializer); - @protected - void sse_encode_announced_user(AnnouncedUser self, SseSerializer serializer); - @protected void sse_encode_backup_password_keys( BackupPasswordKeys self, @@ -597,18 +449,15 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_bool(bool self, SseSerializer serializer); - @protected - void sse_encode_box_autoadd_announced_user( - AnnouncedUser self, - SseSerializer serializer, - ); - @protected void sse_encode_box_autoadd_backup_password_keys( BackupPasswordKeys self, SseSerializer serializer, ); + @protected + void sse_encode_box_autoadd_f_64(double self, SseSerializer serializer); + @protected void sse_encode_box_autoadd_frb_pre_key_bundle( FrbPreKeyBundle self, @@ -627,26 +476,11 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); - @protected - void sse_encode_box_autoadd_other_promotion( - OtherPromotion self, - SseSerializer serializer, - ); - @protected void sse_encode_box_autoadd_u_32(int self, SseSerializer serializer); @protected - void sse_encode_box_autoadd_user_discovery_store_flutter( - UserDiscoveryStoreFlutter self, - SseSerializer serializer, - ); - - @protected - void sse_encode_box_autoadd_user_discovery_utils_flutter( - UserDiscoveryUtilsFlutter self, - SseSerializer serializer, - ); + void sse_encode_f_64(double self, SseSerializer serializer); @protected void sse_encode_flutter_user_discovery( @@ -672,6 +506,21 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_isize(PlatformInt64 self, SseSerializer serializer); + @protected + void sse_encode_legacy_migration_report( + LegacyMigrationReport self, + SseSerializer serializer, + ); + + @protected + void sse_encode_legacy_table_migration_count( + LegacyTableMigrationCount self, + SseSerializer serializer, + ); + + @protected + void sse_encode_list_String(List self, SseSerializer serializer); + @protected void sse_encode_list_frb_pqc_pre_key( List self, @@ -679,14 +528,14 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { ); @protected - void sse_encode_list_list_prim_u_8_strict( - List self, + void sse_encode_list_legacy_table_migration_count( + List self, SseSerializer serializer, ); @protected - void sse_encode_list_other_promotion( - List self, + void sse_encode_list_list_prim_u_8_strict( + List self, SseSerializer serializer, ); @@ -705,14 +554,17 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); + @protected + void sse_encode_list_sql_row(List self, SseSerializer serializer); + + @protected + void sse_encode_list_sql_value(List self, SseSerializer serializer); + @protected void sse_encode_opt_String(String? self, SseSerializer serializer); @protected - void sse_encode_opt_box_autoadd_announced_user( - AnnouncedUser? self, - SseSerializer serializer, - ); + void sse_encode_opt_box_autoadd_f_64(double? self, SseSerializer serializer); @protected void sse_encode_opt_box_autoadd_i_64( @@ -723,30 +575,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_opt_box_autoadd_u_32(int? self, SseSerializer serializer); - @protected - void sse_encode_opt_list_list_prim_u_8_strict( - List? self, - SseSerializer serializer, - ); - - @protected - void sse_encode_opt_list_other_promotion( - List? self, - SseSerializer serializer, - ); - @protected void sse_encode_opt_list_prim_u_8_strict( Uint8List? self, SseSerializer serializer, ); - @protected - void sse_encode_other_promotion( - OtherPromotion self, - SseSerializer serializer, - ); - @protected void sse_encode_record_i_64_list_prim_u_8_strict( (PlatformInt64, Uint8List) self, @@ -765,6 +599,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); + @protected + void sse_encode_rust_app_database( + RustAppDatabase self, + SseSerializer serializer, + ); + @protected void sse_encode_rust_backup_archive( RustBackupArchive self, @@ -789,6 +629,21 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_rust_utils(RustUtils self, SseSerializer serializer); + @protected + void sse_encode_sql_execution_result( + SqlExecutionResult self, + SseSerializer serializer, + ); + + @protected + void sse_encode_sql_row(SqlRow self, SseSerializer serializer); + + @protected + void sse_encode_sql_rows(SqlRows self, SseSerializer serializer); + + @protected + void sse_encode_sql_value(SqlValue self, SseSerializer serializer); + @protected void sse_encode_u_32(int self, SseSerializer serializer); @@ -801,18 +656,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_unit(void self, SseSerializer serializer); - @protected - void sse_encode_user_discovery_store_flutter( - UserDiscoveryStoreFlutter self, - SseSerializer serializer, - ); - - @protected - void sse_encode_user_discovery_utils_flutter( - UserDiscoveryUtilsFlutter self, - SseSerializer serializer, - ); - @protected void sse_encode_usize(BigInt self, SseSerializer serializer); diff --git a/lib/core/frb_generated.web.dart b/lib/core/frb_generated.web.dart index 5941a3aa..6a9d0731 100644 --- a/lib/core/frb_generated.web.dart +++ b/lib/core/frb_generated.web.dart @@ -8,14 +8,15 @@ import 'bridge.dart'; import 'bridge/callbacks.dart'; -import 'bridge/callbacks/user_discovery.dart'; import 'bridge/wrapper.dart'; +import 'bridge/wrapper/app_database.dart'; import 'bridge/wrapper/backup.dart'; import 'bridge/wrapper/key_manager.dart'; import 'bridge/wrapper/signal.dart'; import 'bridge/wrapper/user_discovery.dart'; import 'dart:async'; import 'dart:convert'; +import 'database/app.dart'; import 'frb_generated.dart'; import 'keys/backup_password_keys.dart'; import 'lib.dart'; @@ -39,72 +40,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { dynamic raw, ); - @protected - FutureOr Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr?> Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr?> Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(PlatformInt64) - dco_decode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(PlatformInt64, AnnouncedUser, PlatformInt64?) - dco_decode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(PlatformInt64, PlatformInt64, Uint8List) - dco_decode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(PlatformInt64, Uint8List) - dco_decode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(List) - dco_decode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(Uint8List) - dco_decode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(Uint8List, Uint8List, Uint8List) - dco_decode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException( - dynamic raw, - ); - - @protected - FutureOr Function(OtherPromotion) - dco_decode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException( - dynamic raw, - ); - @protected Object dco_decode_DartOpaque(dynamic raw); @@ -119,9 +54,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected String dco_decode_String(dynamic raw); - @protected - AnnouncedUser dco_decode_announced_user(dynamic raw); - @protected BackupPasswordKeys dco_decode_backup_password_keys(dynamic raw); @@ -129,10 +61,10 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { bool dco_decode_bool(dynamic raw); @protected - AnnouncedUser dco_decode_box_autoadd_announced_user(dynamic raw); + BackupPasswordKeys dco_decode_box_autoadd_backup_password_keys(dynamic raw); @protected - BackupPasswordKeys dco_decode_box_autoadd_backup_password_keys(dynamic raw); + double dco_decode_box_autoadd_f_64(dynamic raw); @protected FrbPreKeyBundle dco_decode_box_autoadd_frb_pre_key_bundle(dynamic raw); @@ -143,21 +75,11 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected InitConfig dco_decode_box_autoadd_init_config(dynamic raw); - @protected - OtherPromotion dco_decode_box_autoadd_other_promotion(dynamic raw); - @protected int dco_decode_box_autoadd_u_32(dynamic raw); @protected - UserDiscoveryStoreFlutter dco_decode_box_autoadd_user_discovery_store_flutter( - dynamic raw, - ); - - @protected - UserDiscoveryUtilsFlutter dco_decode_box_autoadd_user_discovery_utils_flutter( - dynamic raw, - ); + double dco_decode_f_64(dynamic raw); @protected FlutterUserDiscovery dco_decode_flutter_user_discovery(dynamic raw); @@ -177,14 +99,27 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected PlatformInt64 dco_decode_isize(dynamic raw); + @protected + LegacyMigrationReport dco_decode_legacy_migration_report(dynamic raw); + + @protected + LegacyTableMigrationCount dco_decode_legacy_table_migration_count( + dynamic raw, + ); + + @protected + List dco_decode_list_String(dynamic raw); + @protected List dco_decode_list_frb_pqc_pre_key(dynamic raw); @protected - List dco_decode_list_list_prim_u_8_strict(dynamic raw); + List dco_decode_list_legacy_table_migration_count( + dynamic raw, + ); @protected - List dco_decode_list_other_promotion(dynamic raw); + List dco_decode_list_list_prim_u_8_strict(dynamic raw); @protected List dco_decode_list_prim_u_8_loose(dynamic raw); @@ -196,11 +131,17 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { List<(PlatformInt64, Uint8List)> dco_decode_list_record_i_64_list_prim_u_8_strict(dynamic raw); + @protected + List dco_decode_list_sql_row(dynamic raw); + + @protected + List dco_decode_list_sql_value(dynamic raw); + @protected String? dco_decode_opt_String(dynamic raw); @protected - AnnouncedUser? dco_decode_opt_box_autoadd_announced_user(dynamic raw); + double? dco_decode_opt_box_autoadd_f_64(dynamic raw); @protected PlatformInt64? dco_decode_opt_box_autoadd_i_64(dynamic raw); @@ -208,18 +149,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected int? dco_decode_opt_box_autoadd_u_32(dynamic raw); - @protected - List? dco_decode_opt_list_list_prim_u_8_strict(dynamic raw); - - @protected - List? dco_decode_opt_list_other_promotion(dynamic raw); - @protected Uint8List? dco_decode_opt_list_prim_u_8_strict(dynamic raw); - @protected - OtherPromotion dco_decode_other_promotion(dynamic raw); - @protected (PlatformInt64, Uint8List) dco_decode_record_i_64_list_prim_u_8_strict( dynamic raw, @@ -233,6 +165,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected (String, String) dco_decode_record_string_string(dynamic raw); + @protected + RustAppDatabase dco_decode_rust_app_database(dynamic raw); + @protected RustBackupArchive dco_decode_rust_backup_archive(dynamic raw); @@ -248,6 +183,18 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected RustUtils dco_decode_rust_utils(dynamic raw); + @protected + SqlExecutionResult dco_decode_sql_execution_result(dynamic raw); + + @protected + SqlRow dco_decode_sql_row(dynamic raw); + + @protected + SqlRows dco_decode_sql_rows(dynamic raw); + + @protected + SqlValue dco_decode_sql_value(dynamic raw); + @protected int dco_decode_u_32(dynamic raw); @@ -260,16 +207,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void dco_decode_unit(dynamic raw); - @protected - UserDiscoveryStoreFlutter dco_decode_user_discovery_store_flutter( - dynamic raw, - ); - - @protected - UserDiscoveryUtilsFlutter dco_decode_user_discovery_utils_flutter( - dynamic raw, - ); - @protected BigInt dco_decode_usize(dynamic raw); @@ -292,9 +229,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected String sse_decode_String(SseDeserializer deserializer); - @protected - AnnouncedUser sse_decode_announced_user(SseDeserializer deserializer); - @protected BackupPasswordKeys sse_decode_backup_password_keys( SseDeserializer deserializer, @@ -304,14 +238,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { bool sse_decode_bool(SseDeserializer deserializer); @protected - AnnouncedUser sse_decode_box_autoadd_announced_user( + BackupPasswordKeys sse_decode_box_autoadd_backup_password_keys( SseDeserializer deserializer, ); @protected - BackupPasswordKeys sse_decode_box_autoadd_backup_password_keys( - SseDeserializer deserializer, - ); + double sse_decode_box_autoadd_f_64(SseDeserializer deserializer); @protected FrbPreKeyBundle sse_decode_box_autoadd_frb_pre_key_bundle( @@ -324,23 +256,11 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected InitConfig sse_decode_box_autoadd_init_config(SseDeserializer deserializer); - @protected - OtherPromotion sse_decode_box_autoadd_other_promotion( - SseDeserializer deserializer, - ); - @protected int sse_decode_box_autoadd_u_32(SseDeserializer deserializer); @protected - UserDiscoveryStoreFlutter sse_decode_box_autoadd_user_discovery_store_flutter( - SseDeserializer deserializer, - ); - - @protected - UserDiscoveryUtilsFlutter sse_decode_box_autoadd_user_discovery_utils_flutter( - SseDeserializer deserializer, - ); + double sse_decode_f_64(SseDeserializer deserializer); @protected FlutterUserDiscovery sse_decode_flutter_user_discovery( @@ -362,18 +282,31 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected PlatformInt64 sse_decode_isize(SseDeserializer deserializer); + @protected + LegacyMigrationReport sse_decode_legacy_migration_report( + SseDeserializer deserializer, + ); + + @protected + LegacyTableMigrationCount sse_decode_legacy_table_migration_count( + SseDeserializer deserializer, + ); + + @protected + List sse_decode_list_String(SseDeserializer deserializer); + @protected List sse_decode_list_frb_pqc_pre_key( SseDeserializer deserializer, ); @protected - List sse_decode_list_list_prim_u_8_strict( + List sse_decode_list_legacy_table_migration_count( SseDeserializer deserializer, ); @protected - List sse_decode_list_other_promotion( + List sse_decode_list_list_prim_u_8_strict( SseDeserializer deserializer, ); @@ -389,13 +322,17 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseDeserializer deserializer, ); + @protected + List sse_decode_list_sql_row(SseDeserializer deserializer); + + @protected + List sse_decode_list_sql_value(SseDeserializer deserializer); + @protected String? sse_decode_opt_String(SseDeserializer deserializer); @protected - AnnouncedUser? sse_decode_opt_box_autoadd_announced_user( - SseDeserializer deserializer, - ); + double? sse_decode_opt_box_autoadd_f_64(SseDeserializer deserializer); @protected PlatformInt64? sse_decode_opt_box_autoadd_i_64(SseDeserializer deserializer); @@ -403,22 +340,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected int? sse_decode_opt_box_autoadd_u_32(SseDeserializer deserializer); - @protected - List? sse_decode_opt_list_list_prim_u_8_strict( - SseDeserializer deserializer, - ); - - @protected - List? sse_decode_opt_list_other_promotion( - SseDeserializer deserializer, - ); - @protected Uint8List? sse_decode_opt_list_prim_u_8_strict(SseDeserializer deserializer); - @protected - OtherPromotion sse_decode_other_promotion(SseDeserializer deserializer); - @protected (PlatformInt64, Uint8List) sse_decode_record_i_64_list_prim_u_8_strict( SseDeserializer deserializer, @@ -434,6 +358,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseDeserializer deserializer, ); + @protected + RustAppDatabase sse_decode_rust_app_database(SseDeserializer deserializer); + @protected RustBackupArchive sse_decode_rust_backup_archive( SseDeserializer deserializer, @@ -453,6 +380,20 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected RustUtils sse_decode_rust_utils(SseDeserializer deserializer); + @protected + SqlExecutionResult sse_decode_sql_execution_result( + SseDeserializer deserializer, + ); + + @protected + SqlRow sse_decode_sql_row(SseDeserializer deserializer); + + @protected + SqlRows sse_decode_sql_rows(SseDeserializer deserializer); + + @protected + SqlValue sse_decode_sql_value(SseDeserializer deserializer); + @protected int sse_decode_u_32(SseDeserializer deserializer); @@ -465,16 +406,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_decode_unit(SseDeserializer deserializer); - @protected - UserDiscoveryStoreFlutter sse_decode_user_discovery_store_flutter( - SseDeserializer deserializer, - ); - - @protected - UserDiscoveryUtilsFlutter sse_decode_user_discovery_utils_flutter( - SseDeserializer deserializer, - ); - @protected BigInt sse_decode_usize(SseDeserializer deserializer); @@ -493,82 +424,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException( - FutureOr Function(PlatformInt64) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException( - FutureOr?> Function(PlatformInt64) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException( - FutureOr?> Function(PlatformInt64) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException( - FutureOr Function(PlatformInt64) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, AnnouncedUser, PlatformInt64?) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, PlatformInt64, Uint8List) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(PlatformInt64, Uint8List) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(List) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException( - FutureOr Function(Uint8List) self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException( - FutureOr Function(Uint8List, Uint8List, Uint8List) self, - SseSerializer serializer, - ); - - @protected - void sse_encode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException( - FutureOr Function(OtherPromotion) self, - SseSerializer serializer, - ); - @protected void sse_encode_DartOpaque(Object self, SseSerializer serializer); @@ -587,9 +442,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_String(String self, SseSerializer serializer); - @protected - void sse_encode_announced_user(AnnouncedUser self, SseSerializer serializer); - @protected void sse_encode_backup_password_keys( BackupPasswordKeys self, @@ -599,18 +451,15 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_bool(bool self, SseSerializer serializer); - @protected - void sse_encode_box_autoadd_announced_user( - AnnouncedUser self, - SseSerializer serializer, - ); - @protected void sse_encode_box_autoadd_backup_password_keys( BackupPasswordKeys self, SseSerializer serializer, ); + @protected + void sse_encode_box_autoadd_f_64(double self, SseSerializer serializer); + @protected void sse_encode_box_autoadd_frb_pre_key_bundle( FrbPreKeyBundle self, @@ -629,26 +478,11 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); - @protected - void sse_encode_box_autoadd_other_promotion( - OtherPromotion self, - SseSerializer serializer, - ); - @protected void sse_encode_box_autoadd_u_32(int self, SseSerializer serializer); @protected - void sse_encode_box_autoadd_user_discovery_store_flutter( - UserDiscoveryStoreFlutter self, - SseSerializer serializer, - ); - - @protected - void sse_encode_box_autoadd_user_discovery_utils_flutter( - UserDiscoveryUtilsFlutter self, - SseSerializer serializer, - ); + void sse_encode_f_64(double self, SseSerializer serializer); @protected void sse_encode_flutter_user_discovery( @@ -674,6 +508,21 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_isize(PlatformInt64 self, SseSerializer serializer); + @protected + void sse_encode_legacy_migration_report( + LegacyMigrationReport self, + SseSerializer serializer, + ); + + @protected + void sse_encode_legacy_table_migration_count( + LegacyTableMigrationCount self, + SseSerializer serializer, + ); + + @protected + void sse_encode_list_String(List self, SseSerializer serializer); + @protected void sse_encode_list_frb_pqc_pre_key( List self, @@ -681,14 +530,14 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { ); @protected - void sse_encode_list_list_prim_u_8_strict( - List self, + void sse_encode_list_legacy_table_migration_count( + List self, SseSerializer serializer, ); @protected - void sse_encode_list_other_promotion( - List self, + void sse_encode_list_list_prim_u_8_strict( + List self, SseSerializer serializer, ); @@ -707,14 +556,17 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); + @protected + void sse_encode_list_sql_row(List self, SseSerializer serializer); + + @protected + void sse_encode_list_sql_value(List self, SseSerializer serializer); + @protected void sse_encode_opt_String(String? self, SseSerializer serializer); @protected - void sse_encode_opt_box_autoadd_announced_user( - AnnouncedUser? self, - SseSerializer serializer, - ); + void sse_encode_opt_box_autoadd_f_64(double? self, SseSerializer serializer); @protected void sse_encode_opt_box_autoadd_i_64( @@ -725,30 +577,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_opt_box_autoadd_u_32(int? self, SseSerializer serializer); - @protected - void sse_encode_opt_list_list_prim_u_8_strict( - List? self, - SseSerializer serializer, - ); - - @protected - void sse_encode_opt_list_other_promotion( - List? self, - SseSerializer serializer, - ); - @protected void sse_encode_opt_list_prim_u_8_strict( Uint8List? self, SseSerializer serializer, ); - @protected - void sse_encode_other_promotion( - OtherPromotion self, - SseSerializer serializer, - ); - @protected void sse_encode_record_i_64_list_prim_u_8_strict( (PlatformInt64, Uint8List) self, @@ -767,6 +601,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); + @protected + void sse_encode_rust_app_database( + RustAppDatabase self, + SseSerializer serializer, + ); + @protected void sse_encode_rust_backup_archive( RustBackupArchive self, @@ -791,6 +631,21 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_rust_utils(RustUtils self, SseSerializer serializer); + @protected + void sse_encode_sql_execution_result( + SqlExecutionResult self, + SseSerializer serializer, + ); + + @protected + void sse_encode_sql_row(SqlRow self, SseSerializer serializer); + + @protected + void sse_encode_sql_rows(SqlRows self, SseSerializer serializer); + + @protected + void sse_encode_sql_value(SqlValue self, SseSerializer serializer); + @protected void sse_encode_u_32(int self, SseSerializer serializer); @@ -803,18 +658,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_unit(void self, SseSerializer serializer); - @protected - void sse_encode_user_discovery_store_flutter( - UserDiscoveryStoreFlutter self, - SseSerializer serializer, - ); - - @protected - void sse_encode_user_discovery_utils_flutter( - UserDiscoveryUtilsFlutter self, - SseSerializer serializer, - ); - @protected void sse_encode_usize(BigInt self, SseSerializer serializer); diff --git a/lib/locator.dart b/lib/locator.dart index 4fa2f7b4..cdb669ae 100644 --- a/lib/locator.dart +++ b/lib/locator.dart @@ -1,4 +1,5 @@ import 'package:get_it/get_it.dart'; +import 'package:twonly/src/database/signal.db.dart'; import 'package:twonly/src/database/twonly.db.dart'; import 'package:twonly/src/services/api/api.service.dart'; import 'package:twonly/src/services/news.service.dart'; @@ -11,10 +12,12 @@ void setupLocator() { ..registerLazySingleton(UserService.new) ..registerLazySingleton(ApiService.new) ..registerLazySingleton(TwonlyDB.new) + ..registerLazySingleton(SignalDB.new) ..registerLazySingleton(NewsService.new); } UserService get userService => locator(); ApiService get apiService => locator(); TwonlyDB get twonlyDB => locator(); +SignalDB get signalDB => locator(); NewsService get newsService => locator(); diff --git a/lib/main.dart b/lib/main.dart index a8c1ae87..a73ce59a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,7 @@ import 'dart:async'; +import 'dart:io'; import 'package:camera/camera.dart'; +import 'package:drift/native.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:mutex/mutex.dart'; @@ -7,11 +9,13 @@ import 'package:provider/provider.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:twonly/app.dart'; import 'package:twonly/core/bridge.dart' as bridge; +import 'package:twonly/core/bridge/wrapper/app_database.dart'; import 'package:twonly/core/bridge/wrapper/key_manager.dart'; import 'package:twonly/core/frb_generated.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/locator.dart'; import 'package:twonly/src/callbacks/callbacks.dart'; +import 'package:twonly/src/database/twonly.db.dart'; import 'package:twonly/src/providers/connection.provider.dart'; import 'package:twonly/src/providers/image_editor.provider.dart'; import 'package:twonly/src/providers/purchases.provider.dart'; @@ -55,6 +59,19 @@ Future twonlyMinimumInitialization() async { dataDir: AppEnvironment.supportDir, ), ); + if (!await RustAppDatabase.legacyImportComplete()) { + final legacyFile = File( + '${AppEnvironment.supportDir}/twonly.sqlite', + ); + if (legacyFile.existsSync()) { + final legacyDatabase = TwonlyDB(NativeDatabase(legacyFile)); + // Opening the database applies every existing Drift migration up + // to v25 before Rust copies the application tables. + await legacyDatabase.customSelect('PRAGMA user_version').getSingle(); + await legacyDatabase.close(); + } + await RustAppDatabase.migrateLegacyDatabase(); + } } catch (e) { Log.error(e); return true; diff --git a/lib/src/callbacks/callbacks.dart b/lib/src/callbacks/callbacks.dart index 37da7a30..46432540 100644 --- a/lib/src/callbacks/callbacks.dart +++ b/lib/src/callbacks/callbacks.dart @@ -1,33 +1,10 @@ import 'package:twonly/core/bridge/callbacks.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/callbacks/logging.callbacks.dart'; -import 'package:twonly/src/callbacks/user_discovery.callbacks.dart'; Future initFlutterCallbacksForRust() async { await initFlutterCallbacks( callbackId: isolateCallbackId, loggingGetStreamSink: LoggingCallbacks.getStreamSink, - userDiscoverySetShares: UserDiscoveryCallbacks.setShares, - userDiscoveryGetShareForContact: - UserDiscoveryCallbacks.userDiscoveryGetShareForContact, - userDiscoveryPushOwnPromotionAndClearOldVersion: - UserDiscoveryCallbacks.userDiscoveryPushOwnPromotionAndClearOldVersion, - userDiscoveryPushNewUserRelation: - UserDiscoveryCallbacks.pushNewUserRelation, - userDiscoveryGetOwnPromotionsAfterVersion: - UserDiscoveryCallbacks.getOwnPromotionsAfterVersion, - userDiscoveryStoreOtherPromotion: - UserDiscoveryCallbacks.storeOtherPromotion, - userDiscoveryGetOtherPromotionsByPublicId: - UserDiscoveryCallbacks.getOtherPromotionsByPublicId, - userDiscoveryGetAnnouncedUserByPublicId: - UserDiscoveryCallbacks.getAnnouncedUserByPublicId, - userDiscoveryGetContactVersion: UserDiscoveryCallbacks.getContactVersion, - userDiscoverySetContactVersion: UserDiscoveryCallbacks.setContactVersion, - userDiscoverySignData: UserDiscoveryCallbacks.signData, - userDiscoveryVerifySignature: UserDiscoveryCallbacks.verifySignature, - userDiscoveryVerifyStoredPubkey: UserDiscoveryCallbacks.verifyStoredPubKey, - userDiscoveryGetContactPromotion: - UserDiscoveryCallbacks.getContactPromotion, ); } diff --git a/lib/src/callbacks/user_discovery.callbacks.dart b/lib/src/callbacks/user_discovery.callbacks.dart deleted file mode 100644 index 1c0753b2..00000000 --- a/lib/src/callbacks/user_discovery.callbacks.dart +++ /dev/null @@ -1,328 +0,0 @@ -import 'package:collection/collection.dart'; -import 'package:drift/drift.dart'; -import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart' - show Curve, IdentityKey; -// ignore: implementation_imports -import 'package:libsignal_protocol_dart/src/ecc/ed25519.dart'; -import 'package:twonly/core/bridge.dart'; -import 'package:twonly/locator.dart'; -import 'package:twonly/src/database/twonly.db.dart'; -import 'package:twonly/src/services/signal/identity.signal.dart'; -import 'package:twonly/src/services/signal/session.signal.dart'; -import 'package:twonly/src/utils/log.dart'; -import 'package:twonly/src/utils/misc.dart'; - -class UserDiscoveryCallbacks { - static Future signData( - Uint8List inputData, - ) async { - Log.info('UserDiscoveryCallbacks: signData started'); - var privKey = (await getSignalIdentityKeyPair())?.getPrivateKey(); - if (privKey == null) { - Log.error('UserDiscoveryCallbacks: signData failed, privKey is null'); - return null; - } - final random = getRandomUint8List(32); - final signature = sign( - privKey.serialize(), - inputData, - random, - ); - privKey = null; - Log.info('UserDiscoveryCallbacks: signData finished'); - return signature; - } - - static Future verifySignature( - Uint8List inputData, - Uint8List pubKey, - Uint8List signature, - ) async { - try { - return Curve.verifySignature( - IdentityKey.fromBytes(pubKey, 0).publicKey, - inputData, - signature, - ); - } catch (_) { - return false; - } - } - - static Future verifyStoredPubKey( - int contactId, - Uint8List pubKey, - ) async { - try { - final storedPublicKey = await getPublicKeyFromContact(contactId); - if (storedPublicKey != null) { - return storedPublicKey.equals(pubKey); - } else { - return false; - } - } catch (_) { - return false; - } - } - - static Future setShares(List shares) async { - try { - // First remove all old shares then insert all the new shares - await twonlyDB.delete(twonlyDB.userDiscoveryShares).go(); - await twonlyDB.batch((b) { - b.insertAll( - twonlyDB.userDiscoveryShares, - shares - .map((s) => UserDiscoverySharesCompanion(share: Value(s))) - .toList(), - ); - }); - return true; - } catch (e) { - Log.error(e); - return false; - } - } - - static Future userDiscoveryGetShareForContact( - int contactId, - ) async { - return twonlyDB.transaction(() async { - // 1. Check if this contact already has a share assigned - final existing = - await (twonlyDB.select(twonlyDB.userDiscoveryShares) - ..where((tbl) => tbl.contactId.equals(contactId)) - ..limit(1)) - .getSingleOrNull(); - - if (existing != null) { - return existing.share; - } - - // 2. No share found. Find an available one (where contactId is null) - final available = - await (twonlyDB.select(twonlyDB.userDiscoveryShares) - ..where((tbl) => tbl.contactId.isNull()) - ..limit(1)) - .getSingleOrNull(); - - if (available != null) { - // 3. Assign the contactId to this available share - await (twonlyDB.update( - twonlyDB.userDiscoveryShares, - )..where((tbl) => tbl.shareId.equals(available.shareId))).write( - UserDiscoverySharesCompanion( - contactId: Value(contactId), - ), - ); - - return available.share; - } - - return null; // 4. No existing or available shares found - }); - } - - static Future userDiscoveryPushOwnPromotionAndClearOldVersion( - int contactId, - int version, - Uint8List promotion, - ) async { - try { - // Old promotions from this users should be removed... - await (twonlyDB.update( - twonlyDB.userDiscoveryOwnPromotions, - )..where((t) => t.contactId.equals(contactId))).write( - UserDiscoveryOwnPromotionsCompanion(promotion: Value(Uint8List(0))), - ); - await twonlyDB - .into(twonlyDB.userDiscoveryOwnPromotions) - .insert( - UserDiscoveryOwnPromotionsCompanion.insert( - contactId: contactId, - promotion: promotion, - ), - ); - return true; - } catch (e) { - Log.error(e); - return false; - } - } - - static Future> getOwnPromotionsAfterVersion( - int version, - ) async { - final query = twonlyDB.select(twonlyDB.userDiscoveryOwnPromotions) - ..where((tbl) => tbl.versionId.isBiggerThanValue(version)); - - final rows = await query.get(); - return rows.map((r) => r.promotion).toList(); - } - - static Future storeOtherPromotion( - OtherPromotion promotion, - ) async { - try { - await twonlyDB - .into(twonlyDB.userDiscoveryOtherPromotions) - .insertOnConflictUpdate( - UserDiscoveryOtherPromotionsCompanion( - promotionId: Value(promotion.promotionId), - publicId: Value(promotion.publicId), - fromContactId: Value(promotion.fromContactId), - threshold: Value(promotion.threshold), - announcementShare: Value(promotion.announcementShare), - publicKeyVerifiedTimestamp: Value( - promotion.publicKeyVerifiedTimestamp == null - ? null - : DateTime.fromMillisecondsSinceEpoch( - promotion.publicKeyVerifiedTimestamp!, - ), - ), - ), - ); - return true; - } catch (e) { - Log.error(e); - return false; - } - } - - static Future> getOtherPromotionsByPublicId( - int publicId, - ) async { - final rows = await (twonlyDB.select( - twonlyDB.userDiscoveryOtherPromotions, - )..where((tbl) => tbl.publicId.equals(publicId))).get(); - - return rows - .map( - (row) => OtherPromotion( - promotionId: row.promotionId, - publicId: row.publicId, - fromContactId: row.fromContactId, - threshold: row.threshold, - announcementShare: row.announcementShare, - publicKeyVerifiedTimestamp: - row.publicKeyVerifiedTimestamp?.millisecondsSinceEpoch, - ), - ) - .toList(); - } - - static Future getAnnouncedUserByPublicId( - int publicId, - ) async { - final row = await (twonlyDB.select( - twonlyDB.userDiscoveryAnnouncedUsers, - )..where((tbl) => tbl.publicId.equals(publicId))).getSingleOrNull(); - if (row == null) return null; - return AnnouncedUser( - userId: row.announcedUserId, - publicKey: row.announcedPublicKey, - publicId: row.publicId, - ); - } - - static Future pushNewUserRelation( - int fromContactId, - AnnouncedUser announcedUser, - int? publicKeyVerifiedTimestamp, - ) async { - try { - await twonlyDB.transaction(() async { - // 1. Ensure the user exists in the AnnouncedUsers table - await twonlyDB - .into(twonlyDB.userDiscoveryAnnouncedUsers) - .insertOnConflictUpdate( - UserDiscoveryAnnouncedUsersCompanion( - announcedUserId: Value(announcedUser.userId), - announcedPublicKey: Value(announcedUser.publicKey), - publicId: Value(announcedUser.publicId), - ), - ); - - // 2. Insert or update the relation - await twonlyDB - .into(twonlyDB.userDiscoveryUserRelations) - .insertOnConflictUpdate( - UserDiscoveryUserRelationsCompanion.insert( - announcedUserId: announcedUser.userId, - fromContactId: fromContactId, - publicKeyVerifiedTimestamp: Value( - publicKeyVerifiedTimestamp != null - ? DateTime.fromMillisecondsSinceEpoch( - publicKeyVerifiedTimestamp, - ) - : null, - ), - ), - ); - }); - return true; - } catch (e) { - Log.error(e); - return false; - } - } - - // static Future>> - // getAllAnnouncedUsers() async { - // final query = twonlyDB.select(twonlyDB.userDiscoveryAnnouncedUsers).join([ - // innerJoin( - // twonlyDB.userDiscoveryUserRelations, - // twonlyDB.userDiscoveryUserRelations.announcedUserId.equalsExp( - // twonlyDB.userDiscoveryAnnouncedUsers.announcedUserId, - // ), - // ), - // ]); - - // final results = await query.get(); - // final map = >{}; - - // for (final row in results) { - // final user = row.readTable(twonlyDB.userDiscoveryAnnouncedUsers); - // final relation = row.readTable(twonlyDB.userDiscoveryUserRelations); - - // map.putIfAbsent(user, () => []).add( - // (relation.fromContactId, relation.publicKeyVerifiedTimestamp), - // ); - // } - - // return map; - // } - - static Future getContactVersion(int contactId) async { - final row = await (twonlyDB.select( - twonlyDB.contacts, - )..where((tbl) => tbl.userId.equals(contactId))).getSingleOrNull(); - return row?.userDiscoveryVersion; - } - - static Future setContactVersion(int contactId, Uint8List update) async { - try { - await (twonlyDB.update(twonlyDB.contacts) - ..where((tbl) => tbl.userId.equals(contactId))) - .write(ContactsCompanion(userDiscoveryVersion: Value(update))); - return true; - } catch (e) { - Log.error(e); - return false; - } - } - - static Future getContactPromotion(int contactId) async { - try { - final query = twonlyDB.select(twonlyDB.userDiscoveryOwnPromotions) - ..where((tbl) => tbl.contactId.equals(contactId)) - ..orderBy([(tbl) => OrderingTerm.desc(tbl.versionId)]) - ..limit(1); - final row = await query.getSingleOrNull(); - return row?.promotion; - } catch (e) { - Log.error(e); - return null; - } - } -} diff --git a/lib/src/database/daos/groups.dao.dart b/lib/src/database/daos/groups.dao.dart index 3d294a52..8de76450 100644 --- a/lib/src/database/daos/groups.dao.dart +++ b/lib/src/database/daos/groups.dao.dart @@ -188,6 +188,15 @@ class GroupsDao extends DatabaseAccessor with _$GroupsDaoMixin { .watch(); } + Stream> watchAllGroupMembers() { + final query = select(groupMembers).join([ + innerJoin(contacts, contacts.userId.equalsExp(groupMembers.contactId)), + ]); + return query + .map((row) => (row.readTable(contacts), row.readTable(groupMembers))) + .watch(); + } + Stream> watchGroupsForShareImage() { return (select(groups)..where( (g) => g.leftGroup.equals(false) & g.deletedContent.equals(false), @@ -202,6 +211,12 @@ class GroupsDao extends DatabaseAccessor with _$GroupsDaoMixin { .watch(); } + Stream> watchTypingGroupMembers() { + return (select( + groupMembers, + )..where((member) => member.lastTypeIndicator.isNotNull())).watch(); + } + Stream watchGroup(String groupId) { return (select( groups, diff --git a/lib/src/database/daos/key_verification.dao.dart b/lib/src/database/daos/key_verification.dao.dart index eef18d6e..18779ae2 100644 --- a/lib/src/database/daos/key_verification.dao.dart +++ b/lib/src/database/daos/key_verification.dao.dart @@ -259,6 +259,51 @@ class KeyVerificationDao extends DatabaseAccessor }); } + Stream> watchAllGroupsVerificationStatus() { + final gm = groupMembers; + final directKv = alias(keyVerifications, 'allGroupsDirectKv'); + final ur = userDiscoveryUserRelations; + final verifierKv = alias(keyVerifications, 'allGroupsVerifierKv'); + + final query = select(gm).join([ + leftOuterJoin(directKv, directKv.contactId.equalsExp(gm.contactId)), + leftOuterJoin( + ur, + ur.announcedUserId.equalsExp(gm.contactId) & + ur.publicKeyVerifiedTimestamp.isNotNull() & + ur.fromContactId.equalsExp(gm.contactId).not(), + ), + leftOuterJoin( + verifierKv, + verifierKv.contactId.equalsExp(ur.fromContactId), + ), + ]); + + return query.watch().map((rows) { + final groups = >{}; + for (final row in rows) { + final member = row.readTable(gm); + final members = groups.putIfAbsent(member.groupId, () => {}); + final current = + members[member.contactId] ?? (direct: false, partial: false); + members[member.contactId] = ( + direct: current.direct || row.readTableOrNull(directKv) != null, + partial: current.partial || row.readTableOrNull(verifierKv) != null, + ); + } + return { + for (final entry in groups.entries) + entry.key: entry.value.values.every((member) => member.direct) + ? VerificationStatus.trusted + : entry.value.values.every( + (member) => member.direct || member.partial, + ) + ? VerificationStatus.partialTrusted + : VerificationStatus.notTrusted, + }; + }); + } + Stream watchUnverifiedGroupMembersCount(String groupId) { final gm = groupMembers; final directKv = alias(keyVerifications, 'directKv'); diff --git a/lib/src/database/daos/labels.dao.dart b/lib/src/database/daos/labels.dao.dart index 99f234d6..75bc7ab8 100644 --- a/lib/src/database/daos/labels.dao.dart +++ b/lib/src/database/daos/labels.dao.dart @@ -14,11 +14,15 @@ class LabelsDao extends DatabaseAccessor with _$LabelsDaoMixin { LabelsDao(super.db); Stream> watchAllLabels() { - return (select(labels)..orderBy([(t) => OrderingTerm(expression: t.name)])).watch(); + return (select( + labels, + )..orderBy([(t) => OrderingTerm(expression: t.name)])).watch(); } Future> getAllLabels() { - return (select(labels)..orderBy([(t) => OrderingTerm(expression: t.name)])).get(); + return (select( + labels, + )..orderBy([(t) => OrderingTerm(expression: t.name)])).get(); } Stream> watchContactLabels(int contactId) { @@ -27,8 +31,24 @@ class LabelsDao extends DatabaseAccessor with _$LabelsDaoMixin { ])..where(contactLabels.contactId.equals(contactId)); return query.watch().map( - (rows) => rows.map((row) => row.readTable(labels)).toList(), - ); + (rows) => rows.map((row) => row.readTable(labels)).toList(), + ); + } + + Stream> watchAllContactLabels() { + final query = select(contactLabels).join([ + innerJoin(labels, labels.id.equalsExp(contactLabels.labelId)), + ]); + return query.watch().map( + (rows) => rows + .map( + (row) => ( + row.readTable(contactLabels).contactId, + row.readTable(labels), + ), + ) + .toList(), + ); } Future> getContactLabels(int contactId) { @@ -37,14 +57,16 @@ class LabelsDao extends DatabaseAccessor with _$LabelsDaoMixin { ])..where(contactLabels.contactId.equals(contactId)); return query.get().then( - (rows) => rows.map((row) => row.readTable(labels)).toList(), - ); + (rows) => rows.map((row) => row.readTable(labels)).toList(), + ); } Future setContactLabels(int contactId, List labelIds) async { final sanitizedLabelIds = labelIds.take(3).toList(); await transaction(() async { - await (delete(contactLabels)..where((t) => t.contactId.equals(contactId))).go(); + await (delete( + contactLabels, + )..where((t) => t.contactId.equals(contactId))).go(); if (sanitizedLabelIds.isNotEmpty) { await batch((b) { b.insertAll( @@ -72,7 +94,12 @@ class LabelsDao extends DatabaseAccessor with _$LabelsDaoMixin { ); } - Future updateLabel(int id, String name, int textColor, int backgroundColor) { + Future updateLabel( + int id, + String name, + int textColor, + int backgroundColor, + ) { final sanitizedName = name.length > 8 ? name.substring(0, 8) : name; return (update(labels)..where((t) => t.id.equals(id))) .write( diff --git a/lib/src/database/daos/mediafiles.dao.dart b/lib/src/database/daos/mediafiles.dao.dart index 234eddf6..5697cd6c 100644 --- a/lib/src/database/daos/mediafiles.dao.dart +++ b/lib/src/database/daos/mediafiles.dao.dart @@ -177,6 +177,32 @@ class MediaFilesDao extends DatabaseAccessor return query.map((row) => row.readTable(mediaFiles)).watch(); } + Stream> watchChatListMediaFiles() { + return customSelect( + ''' + WITH ranked_messages AS ( + SELECT messages.media_id, + messages.opened_at, + ROW_NUMBER() OVER ( + PARTITION BY messages.group_id + ORDER BY messages.created_at DESC + ) AS message_rank + FROM messages + WHERE messages.media_id IS NOT NULL + ) + SELECT DISTINCT media_files.* + FROM media_files + INNER JOIN ranked_messages + ON ranked_messages.media_id = media_files.media_id + WHERE ranked_messages.message_rank = 1 + OR ranked_messages.opened_at IS NULL + ''', + readsFrom: {mediaFiles, db.messages}, + ).watch().map( + (rows) => rows.map((row) => mediaFiles.map(row.data)).toList(), + ); + } + Future updateAllRetransmissionUploadingState() async { await (update(mediaFiles)..where( (t) => diff --git a/lib/src/database/daos/messages.dao.dart b/lib/src/database/daos/messages.dao.dart index 1d70728a..9e37527b 100644 --- a/lib/src/database/daos/messages.dao.dart +++ b/lib/src/database/daos/messages.dao.dart @@ -53,6 +53,27 @@ class MessagesDao extends DatabaseAccessor with _$MessagesDaoMixin { return query.map((row) => row.readTable(messages)).watch(); } + Stream> watchAllMessagesNotOpened() { + final query = + select(messages).join([ + leftOuterJoin( + mediaFiles, + mediaFiles.mediaId.equalsExp(messages.mediaId), + ), + ]) + ..where( + messages.openedAt.isNull() & + messages.isDeletedFromSender.equals(false) & + (messages.mediaId.isNull() | + mediaFiles.downloadState.isNull() | + mediaFiles.downloadState + .equals(DownloadState.reuploadRequested.name) + .not()), + ) + ..orderBy([OrderingTerm.desc(messages.createdAt)]); + return query.map((row) => row.readTable(messages)).watch(); + } + Stream> watchMediaNotOpened(String groupId) { final query = select(messages).join([ @@ -127,6 +148,38 @@ class MessagesDao extends DatabaseAccessor with _$MessagesDaoMixin { return query.map((row) => row.readTable(messages)).watchSingleOrNull(); } + Stream> watchLatestMessagesByGroup() { + return customSelect( + ''' + SELECT message_rows.* + FROM ( + SELECT messages.*, + ROW_NUMBER() OVER ( + PARTITION BY messages.group_id + ORDER BY messages.created_at DESC + ) AS message_rank + FROM messages + INNER JOIN groups ON groups.group_id = messages.group_id + LEFT JOIN media_files ON media_files.media_id = messages.media_id + WHERE ( + messages.opened_at IS NULL OR + messages.media_stored = 1 OR + messages.opened_at > CAST(strftime('%s', 'now') AS INTEGER) - + (groups.delete_messages_after_milliseconds / 1000) + ) + AND ( + media_files.download_state IS NULL OR + media_files.download_state != 'reuploadRequested' + ) + ) AS message_rows + WHERE message_rank = 1 + ''', + readsFrom: {messages, groups, mediaFiles}, + ).watch().map( + (rows) => rows.map((row) => messages.map(row.data)).toList(), + ); + } + Future>> watchByGroupId(String groupId) async { final group = await twonlyDB.groupsDao.getGroup(groupId); final deletionTime = clock.now().subtract( @@ -575,6 +628,19 @@ class MessagesDao extends DatabaseAccessor with _$MessagesDaoMixin { .watch(); } + Stream> watchMessageActionsForGroup( + String groupId, + ) { + final query = select(messageActions).join([ + innerJoin( + messages, + messages.messageId.equalsExp(messageActions.messageId), + useColumns: false, + ), + ])..where(messages.groupId.equals(groupId)); + return query.map((row) => row.readTable(messageActions)).watch(); + } + Stream> watchMessageHistory(String messageId) { return (select(messageHistories) ..where((t) => t.messageId.equals(messageId)) diff --git a/lib/src/database/daos/reactions.dao.dart b/lib/src/database/daos/reactions.dao.dart index 0644ae31..da183a34 100644 --- a/lib/src/database/daos/reactions.dao.dart +++ b/lib/src/database/daos/reactions.dao.dart @@ -108,6 +108,20 @@ class ReactionsDao extends DatabaseAccessor with _$ReactionsDaoMixin { .watch(); } + Stream> watchReactionsForGroup(String groupId) { + final query = + select(reactions).join([ + innerJoin( + messages, + messages.messageId.equalsExp(reactions.messageId), + useColumns: false, + ), + ]) + ..where(messages.groupId.equals(groupId)) + ..orderBy([OrderingTerm.desc(reactions.createdAt)]); + return query.map((row) => row.readTable(reactions)).watch(); + } + Stream watchLastReactions(String groupId) { final query = (select(reactions)).join( @@ -125,6 +139,35 @@ class ReactionsDao extends DatabaseAccessor with _$ReactionsDaoMixin { return query.map((row) => row.readTable(reactions)).watchSingleOrNull(); } + Stream> watchLatestReactionsByGroup() { + return customSelect( + ''' + SELECT reaction_rows.* + FROM ( + SELECT reactions.*, + messages.group_id AS reaction_group_id, + ROW_NUMBER() OVER ( + PARTITION BY messages.group_id + ORDER BY messages.created_at DESC, reactions.created_at DESC + ) AS reaction_rank + FROM reactions + INNER JOIN messages ON messages.message_id = reactions.message_id + ) AS reaction_rows + WHERE reaction_rank = 1 + ''', + readsFrom: {reactions, messages}, + ).watch().map( + (rows) => rows + .map( + (row) => ( + row.read('reaction_group_id'), + reactions.map(row.data), + ), + ) + .toList(), + ); + } + Stream> watchReactionWithContacts( String messageId, ) { diff --git a/lib/src/database/rust_query_executor.dart b/lib/src/database/rust_query_executor.dart new file mode 100644 index 00000000..e9d35f00 --- /dev/null +++ b/lib/src/database/rust_query_executor.dart @@ -0,0 +1,96 @@ +import 'package:drift/backends.dart'; +import 'package:drift/drift.dart'; +import 'package:twonly/core/bridge/wrapper/app_database.dart'; +import 'package:twonly/core/database/app.dart' as rust; + +/// Drift compatibility executor backed by the Rust-owned SQLCipher database. +/// +/// This keeps the existing generated models, DAO methods and query watches +/// while moving connection, encryption and storage ownership into Rust. +QueryExecutor openRustAppDatabase() => DelegatedDatabase( + _RustDatabaseDelegate(), + isSequential: true, + ); + +class _RustDatabaseDelegate extends DatabaseDelegate { + @override + Future get isOpen async => true; + + @override + DbVersionDelegate get versionDelegate => const NoVersionDelegate(); + + @override + TransactionDelegate get transactionDelegate => const NoTransactionDelegate(); + + @override + Future open(QueryExecutorUser db) async {} + + @override + Future close() async { + // The Rust application context owns the database lifecycle. + } + + @override + Future runSelect(String statement, List args) async { + final result = await RustAppDatabase.select( + statement: statement, + arguments: args.map(_encode).toList(growable: false), + ); + return QueryResult( + result.columns, + result.rows + .map((row) => row.values.map(_decode).toList(growable: false)) + .toList(growable: false), + ); + } + + @override + Future runInsert(String statement, List args) async { + final result = await _execute(statement, args); + return result.lastInsertRowId; + } + + @override + Future runUpdate(String statement, List args) async { + final result = await _execute(statement, args); + return result.affectedRows; + } + + @override + Future runCustom(String statement, List args) async { + await _execute(statement, args); + } + + Future _execute( + String statement, + List args, + ) { + return RustAppDatabase.execute( + statement: statement, + arguments: args.map(_encode).toList(growable: false), + ); + } +} + +rust.SqlValue _encode(Object? value) { + return switch (value) { + null => const rust.SqlValue(kind: 0), + final bool value => rust.SqlValue(kind: 1, integerValue: value ? 1 : 0), + final int value => rust.SqlValue(kind: 1, integerValue: value), + final double value => rust.SqlValue(kind: 2, realValue: value), + final String value => rust.SqlValue(kind: 3, textValue: value), + final Uint8List value => rust.SqlValue(kind: 4, blobValue: value), + _ => throw ArgumentError.value(value, 'value', 'Unsupported SQLite value'), + }; +} + +Object? _decode(rust.SqlValue value) { + return switch (value.kind) { + 0 => null, + 1 => value.integerValue, + 2 => value.realValue, + 3 => value.textValue, + 4 => value.blobValue, + _ => throw StateError('Unknown SQLite value kind ${value.kind}'), + }; +} diff --git a/lib/src/database/signal.db.dart b/lib/src/database/signal.db.dart new file mode 100644 index 00000000..ec0ec17f --- /dev/null +++ b/lib/src/database/signal.db.dart @@ -0,0 +1,47 @@ +import 'package:drift/drift.dart'; +import 'package:drift_flutter/drift_flutter.dart' + show DriftNativeOptions, driftDatabase; +import 'package:path_provider/path_provider.dart'; +import 'package:twonly/src/database/tables/signal_identity_key_store.table.dart'; +import 'package:twonly/src/database/tables/signal_pre_key_store.table.dart'; +import 'package:twonly/src/database/tables/signal_sender_key_store.table.dart'; +import 'package:twonly/src/database/tables/signal_session_store.table.dart'; +import 'package:twonly/src/database/tables/signal_signed_pre_key_store.table.dart'; + +part 'signal.db.g.dart'; + +@DriftDatabase( + tables: [ + SignalIdentityKeyStores, + SignalPreKeyStores, + SignalSenderKeyStores, + SignalSessionStores, + SignalSignedPreKeyStores, + ], +) +class SignalDB extends _$SignalDB { + SignalDB([QueryExecutor? executor]) : super(executor ?? _openConnection()); + + @override + // This database shares the legacy twonly.sqlite file, whose user_version is + // already 25. Keeping that version avoids a false downgrade while only the + // Signal tables remain owned by Drift. + int get schemaVersion => 25; + + static QueryExecutor _openConnection() { + return driftDatabase( + name: 'twonly', + native: DriftNativeOptions( + databaseDirectory: getApplicationSupportDirectory, + shareAcrossIsolates: true, + setup: (database) { + database + ..execute('PRAGMA journal_mode=DELETE;') + ..execute('PRAGMA synchronous=FULL;') + ..execute('PRAGMA busy_timeout=5000;') + ..execute('PRAGMA foreign_keys=ON;'); + }, + ), + ); + } +} diff --git a/lib/src/database/signal.db.g.dart b/lib/src/database/signal.db.g.dart new file mode 100644 index 00000000..10d790fc --- /dev/null +++ b/lib/src/database/signal.db.g.dart @@ -0,0 +1,2383 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'signal.db.dart'; + +// ignore_for_file: type=lint +class $SignalIdentityKeyStoresTable extends SignalIdentityKeyStores + with TableInfo<$SignalIdentityKeyStoresTable, SignalIdentityKeyStore> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $SignalIdentityKeyStoresTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _deviceIdMeta = const VerificationMeta( + 'deviceId', + ); + @override + late final GeneratedColumn deviceId = GeneratedColumn( + 'device_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _nameMeta = const VerificationMeta('name'); + @override + late final GeneratedColumn name = GeneratedColumn( + 'name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _identityKeyMeta = const VerificationMeta( + 'identityKey', + ); + @override + late final GeneratedColumn identityKey = + GeneratedColumn( + 'identity_key', + aliasedName, + false, + type: DriftSqlType.blob, + requiredDuringInsert: true, + ); + static const VerificationMeta _createdAtMeta = const VerificationMeta( + 'createdAt', + ); + @override + late final GeneratedColumn createdAt = GeneratedColumn( + 'created_at', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime, + ); + @override + List get $columns => [ + deviceId, + name, + identityKey, + createdAt, + ]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'signal_identity_key_stores'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('device_id')) { + context.handle( + _deviceIdMeta, + deviceId.isAcceptableOrUnknown(data['device_id']!, _deviceIdMeta), + ); + } else if (isInserting) { + context.missing(_deviceIdMeta); + } + if (data.containsKey('name')) { + context.handle( + _nameMeta, + name.isAcceptableOrUnknown(data['name']!, _nameMeta), + ); + } else if (isInserting) { + context.missing(_nameMeta); + } + if (data.containsKey('identity_key')) { + context.handle( + _identityKeyMeta, + identityKey.isAcceptableOrUnknown( + data['identity_key']!, + _identityKeyMeta, + ), + ); + } else if (isInserting) { + context.missing(_identityKeyMeta); + } + if (data.containsKey('created_at')) { + context.handle( + _createdAtMeta, + createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), + ); + } + return context; + } + + @override + Set get $primaryKey => {deviceId, name}; + @override + SignalIdentityKeyStore map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return SignalIdentityKeyStore( + deviceId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}device_id'], + )!, + name: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}name'], + )!, + identityKey: attachedDatabase.typeMapping.read( + DriftSqlType.blob, + data['${effectivePrefix}identity_key'], + )!, + createdAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}created_at'], + )!, + ); + } + + @override + $SignalIdentityKeyStoresTable createAlias(String alias) { + return $SignalIdentityKeyStoresTable(attachedDatabase, alias); + } +} + +class SignalIdentityKeyStore extends DataClass + implements Insertable { + final int deviceId; + final String name; + final Uint8List identityKey; + final DateTime createdAt; + const SignalIdentityKeyStore({ + required this.deviceId, + required this.name, + required this.identityKey, + required this.createdAt, + }); + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + map['device_id'] = Variable(deviceId); + map['name'] = Variable(name); + map['identity_key'] = Variable(identityKey); + map['created_at'] = Variable(createdAt); + return map; + } + + SignalIdentityKeyStoresCompanion toCompanion(bool nullToAbsent) { + return SignalIdentityKeyStoresCompanion( + deviceId: Value(deviceId), + name: Value(name), + identityKey: Value(identityKey), + createdAt: Value(createdAt), + ); + } + + factory SignalIdentityKeyStore.fromJson( + Map json, { + ValueSerializer? serializer, + }) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return SignalIdentityKeyStore( + deviceId: serializer.fromJson(json['deviceId']), + name: serializer.fromJson(json['name']), + identityKey: serializer.fromJson(json['identityKey']), + createdAt: serializer.fromJson(json['createdAt']), + ); + } + @override + Map toJson({ValueSerializer? serializer}) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return { + 'deviceId': serializer.toJson(deviceId), + 'name': serializer.toJson(name), + 'identityKey': serializer.toJson(identityKey), + 'createdAt': serializer.toJson(createdAt), + }; + } + + SignalIdentityKeyStore copyWith({ + int? deviceId, + String? name, + Uint8List? identityKey, + DateTime? createdAt, + }) => SignalIdentityKeyStore( + deviceId: deviceId ?? this.deviceId, + name: name ?? this.name, + identityKey: identityKey ?? this.identityKey, + createdAt: createdAt ?? this.createdAt, + ); + SignalIdentityKeyStore copyWithCompanion( + SignalIdentityKeyStoresCompanion data, + ) { + return SignalIdentityKeyStore( + deviceId: data.deviceId.present ? data.deviceId.value : this.deviceId, + name: data.name.present ? data.name.value : this.name, + identityKey: data.identityKey.present + ? data.identityKey.value + : this.identityKey, + createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, + ); + } + + @override + String toString() { + return (StringBuffer('SignalIdentityKeyStore(') + ..write('deviceId: $deviceId, ') + ..write('name: $name, ') + ..write('identityKey: $identityKey, ') + ..write('createdAt: $createdAt') + ..write(')')) + .toString(); + } + + @override + int get hashCode => Object.hash( + deviceId, + name, + $driftBlobEquality.hash(identityKey), + createdAt, + ); + @override + bool operator ==(Object other) => + identical(this, other) || + (other is SignalIdentityKeyStore && + other.deviceId == this.deviceId && + other.name == this.name && + $driftBlobEquality.equals(other.identityKey, this.identityKey) && + other.createdAt == this.createdAt); +} + +class SignalIdentityKeyStoresCompanion + extends UpdateCompanion { + final Value deviceId; + final Value name; + final Value identityKey; + final Value createdAt; + final Value rowid; + const SignalIdentityKeyStoresCompanion({ + this.deviceId = const Value.absent(), + this.name = const Value.absent(), + this.identityKey = const Value.absent(), + this.createdAt = const Value.absent(), + this.rowid = const Value.absent(), + }); + SignalIdentityKeyStoresCompanion.insert({ + required int deviceId, + required String name, + required Uint8List identityKey, + this.createdAt = const Value.absent(), + this.rowid = const Value.absent(), + }) : deviceId = Value(deviceId), + name = Value(name), + identityKey = Value(identityKey); + static Insertable custom({ + Expression? deviceId, + Expression? name, + Expression? identityKey, + Expression? createdAt, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (deviceId != null) 'device_id': deviceId, + if (name != null) 'name': name, + if (identityKey != null) 'identity_key': identityKey, + if (createdAt != null) 'created_at': createdAt, + if (rowid != null) 'rowid': rowid, + }); + } + + SignalIdentityKeyStoresCompanion copyWith({ + Value? deviceId, + Value? name, + Value? identityKey, + Value? createdAt, + Value? rowid, + }) { + return SignalIdentityKeyStoresCompanion( + deviceId: deviceId ?? this.deviceId, + name: name ?? this.name, + identityKey: identityKey ?? this.identityKey, + createdAt: createdAt ?? this.createdAt, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (deviceId.present) { + map['device_id'] = Variable(deviceId.value); + } + if (name.present) { + map['name'] = Variable(name.value); + } + if (identityKey.present) { + map['identity_key'] = Variable(identityKey.value); + } + if (createdAt.present) { + map['created_at'] = Variable(createdAt.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('SignalIdentityKeyStoresCompanion(') + ..write('deviceId: $deviceId, ') + ..write('name: $name, ') + ..write('identityKey: $identityKey, ') + ..write('createdAt: $createdAt, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $SignalPreKeyStoresTable extends SignalPreKeyStores + with TableInfo<$SignalPreKeyStoresTable, SignalPreKeyStore> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $SignalPreKeyStoresTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _preKeyIdMeta = const VerificationMeta( + 'preKeyId', + ); + @override + late final GeneratedColumn preKeyId = GeneratedColumn( + 'pre_key_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: false, + ); + static const VerificationMeta _preKeyMeta = const VerificationMeta('preKey'); + @override + late final GeneratedColumn preKey = GeneratedColumn( + 'pre_key', + aliasedName, + false, + type: DriftSqlType.blob, + requiredDuringInsert: true, + ); + static const VerificationMeta _createdAtMeta = const VerificationMeta( + 'createdAt', + ); + @override + late final GeneratedColumn createdAt = GeneratedColumn( + 'created_at', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime, + ); + @override + List get $columns => [preKeyId, preKey, createdAt]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'signal_pre_key_stores'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('pre_key_id')) { + context.handle( + _preKeyIdMeta, + preKeyId.isAcceptableOrUnknown(data['pre_key_id']!, _preKeyIdMeta), + ); + } + if (data.containsKey('pre_key')) { + context.handle( + _preKeyMeta, + preKey.isAcceptableOrUnknown(data['pre_key']!, _preKeyMeta), + ); + } else if (isInserting) { + context.missing(_preKeyMeta); + } + if (data.containsKey('created_at')) { + context.handle( + _createdAtMeta, + createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), + ); + } + return context; + } + + @override + Set get $primaryKey => {preKeyId}; + @override + SignalPreKeyStore map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return SignalPreKeyStore( + preKeyId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}pre_key_id'], + )!, + preKey: attachedDatabase.typeMapping.read( + DriftSqlType.blob, + data['${effectivePrefix}pre_key'], + )!, + createdAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}created_at'], + )!, + ); + } + + @override + $SignalPreKeyStoresTable createAlias(String alias) { + return $SignalPreKeyStoresTable(attachedDatabase, alias); + } +} + +class SignalPreKeyStore extends DataClass + implements Insertable { + final int preKeyId; + final Uint8List preKey; + final DateTime createdAt; + const SignalPreKeyStore({ + required this.preKeyId, + required this.preKey, + required this.createdAt, + }); + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + map['pre_key_id'] = Variable(preKeyId); + map['pre_key'] = Variable(preKey); + map['created_at'] = Variable(createdAt); + return map; + } + + SignalPreKeyStoresCompanion toCompanion(bool nullToAbsent) { + return SignalPreKeyStoresCompanion( + preKeyId: Value(preKeyId), + preKey: Value(preKey), + createdAt: Value(createdAt), + ); + } + + factory SignalPreKeyStore.fromJson( + Map json, { + ValueSerializer? serializer, + }) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return SignalPreKeyStore( + preKeyId: serializer.fromJson(json['preKeyId']), + preKey: serializer.fromJson(json['preKey']), + createdAt: serializer.fromJson(json['createdAt']), + ); + } + @override + Map toJson({ValueSerializer? serializer}) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return { + 'preKeyId': serializer.toJson(preKeyId), + 'preKey': serializer.toJson(preKey), + 'createdAt': serializer.toJson(createdAt), + }; + } + + SignalPreKeyStore copyWith({ + int? preKeyId, + Uint8List? preKey, + DateTime? createdAt, + }) => SignalPreKeyStore( + preKeyId: preKeyId ?? this.preKeyId, + preKey: preKey ?? this.preKey, + createdAt: createdAt ?? this.createdAt, + ); + SignalPreKeyStore copyWithCompanion(SignalPreKeyStoresCompanion data) { + return SignalPreKeyStore( + preKeyId: data.preKeyId.present ? data.preKeyId.value : this.preKeyId, + preKey: data.preKey.present ? data.preKey.value : this.preKey, + createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, + ); + } + + @override + String toString() { + return (StringBuffer('SignalPreKeyStore(') + ..write('preKeyId: $preKeyId, ') + ..write('preKey: $preKey, ') + ..write('createdAt: $createdAt') + ..write(')')) + .toString(); + } + + @override + int get hashCode => + Object.hash(preKeyId, $driftBlobEquality.hash(preKey), createdAt); + @override + bool operator ==(Object other) => + identical(this, other) || + (other is SignalPreKeyStore && + other.preKeyId == this.preKeyId && + $driftBlobEquality.equals(other.preKey, this.preKey) && + other.createdAt == this.createdAt); +} + +class SignalPreKeyStoresCompanion extends UpdateCompanion { + final Value preKeyId; + final Value preKey; + final Value createdAt; + const SignalPreKeyStoresCompanion({ + this.preKeyId = const Value.absent(), + this.preKey = const Value.absent(), + this.createdAt = const Value.absent(), + }); + SignalPreKeyStoresCompanion.insert({ + this.preKeyId = const Value.absent(), + required Uint8List preKey, + this.createdAt = const Value.absent(), + }) : preKey = Value(preKey); + static Insertable custom({ + Expression? preKeyId, + Expression? preKey, + Expression? createdAt, + }) { + return RawValuesInsertable({ + if (preKeyId != null) 'pre_key_id': preKeyId, + if (preKey != null) 'pre_key': preKey, + if (createdAt != null) 'created_at': createdAt, + }); + } + + SignalPreKeyStoresCompanion copyWith({ + Value? preKeyId, + Value? preKey, + Value? createdAt, + }) { + return SignalPreKeyStoresCompanion( + preKeyId: preKeyId ?? this.preKeyId, + preKey: preKey ?? this.preKey, + createdAt: createdAt ?? this.createdAt, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (preKeyId.present) { + map['pre_key_id'] = Variable(preKeyId.value); + } + if (preKey.present) { + map['pre_key'] = Variable(preKey.value); + } + if (createdAt.present) { + map['created_at'] = Variable(createdAt.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('SignalPreKeyStoresCompanion(') + ..write('preKeyId: $preKeyId, ') + ..write('preKey: $preKey, ') + ..write('createdAt: $createdAt') + ..write(')')) + .toString(); + } +} + +class $SignalSenderKeyStoresTable extends SignalSenderKeyStores + with TableInfo<$SignalSenderKeyStoresTable, SignalSenderKeyStore> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $SignalSenderKeyStoresTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _senderKeyNameMeta = const VerificationMeta( + 'senderKeyName', + ); + @override + late final GeneratedColumn senderKeyName = GeneratedColumn( + 'sender_key_name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _senderKeyMeta = const VerificationMeta( + 'senderKey', + ); + @override + late final GeneratedColumn senderKey = GeneratedColumn( + 'sender_key', + aliasedName, + false, + type: DriftSqlType.blob, + requiredDuringInsert: true, + ); + @override + List get $columns => [senderKeyName, senderKey]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'signal_sender_key_stores'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('sender_key_name')) { + context.handle( + _senderKeyNameMeta, + senderKeyName.isAcceptableOrUnknown( + data['sender_key_name']!, + _senderKeyNameMeta, + ), + ); + } else if (isInserting) { + context.missing(_senderKeyNameMeta); + } + if (data.containsKey('sender_key')) { + context.handle( + _senderKeyMeta, + senderKey.isAcceptableOrUnknown(data['sender_key']!, _senderKeyMeta), + ); + } else if (isInserting) { + context.missing(_senderKeyMeta); + } + return context; + } + + @override + Set get $primaryKey => {senderKeyName}; + @override + SignalSenderKeyStore map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return SignalSenderKeyStore( + senderKeyName: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}sender_key_name'], + )!, + senderKey: attachedDatabase.typeMapping.read( + DriftSqlType.blob, + data['${effectivePrefix}sender_key'], + )!, + ); + } + + @override + $SignalSenderKeyStoresTable createAlias(String alias) { + return $SignalSenderKeyStoresTable(attachedDatabase, alias); + } +} + +class SignalSenderKeyStore extends DataClass + implements Insertable { + final String senderKeyName; + final Uint8List senderKey; + const SignalSenderKeyStore({ + required this.senderKeyName, + required this.senderKey, + }); + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + map['sender_key_name'] = Variable(senderKeyName); + map['sender_key'] = Variable(senderKey); + return map; + } + + SignalSenderKeyStoresCompanion toCompanion(bool nullToAbsent) { + return SignalSenderKeyStoresCompanion( + senderKeyName: Value(senderKeyName), + senderKey: Value(senderKey), + ); + } + + factory SignalSenderKeyStore.fromJson( + Map json, { + ValueSerializer? serializer, + }) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return SignalSenderKeyStore( + senderKeyName: serializer.fromJson(json['senderKeyName']), + senderKey: serializer.fromJson(json['senderKey']), + ); + } + @override + Map toJson({ValueSerializer? serializer}) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return { + 'senderKeyName': serializer.toJson(senderKeyName), + 'senderKey': serializer.toJson(senderKey), + }; + } + + SignalSenderKeyStore copyWith({ + String? senderKeyName, + Uint8List? senderKey, + }) => SignalSenderKeyStore( + senderKeyName: senderKeyName ?? this.senderKeyName, + senderKey: senderKey ?? this.senderKey, + ); + SignalSenderKeyStore copyWithCompanion(SignalSenderKeyStoresCompanion data) { + return SignalSenderKeyStore( + senderKeyName: data.senderKeyName.present + ? data.senderKeyName.value + : this.senderKeyName, + senderKey: data.senderKey.present ? data.senderKey.value : this.senderKey, + ); + } + + @override + String toString() { + return (StringBuffer('SignalSenderKeyStore(') + ..write('senderKeyName: $senderKeyName, ') + ..write('senderKey: $senderKey') + ..write(')')) + .toString(); + } + + @override + int get hashCode => + Object.hash(senderKeyName, $driftBlobEquality.hash(senderKey)); + @override + bool operator ==(Object other) => + identical(this, other) || + (other is SignalSenderKeyStore && + other.senderKeyName == this.senderKeyName && + $driftBlobEquality.equals(other.senderKey, this.senderKey)); +} + +class SignalSenderKeyStoresCompanion + extends UpdateCompanion { + final Value senderKeyName; + final Value senderKey; + final Value rowid; + const SignalSenderKeyStoresCompanion({ + this.senderKeyName = const Value.absent(), + this.senderKey = const Value.absent(), + this.rowid = const Value.absent(), + }); + SignalSenderKeyStoresCompanion.insert({ + required String senderKeyName, + required Uint8List senderKey, + this.rowid = const Value.absent(), + }) : senderKeyName = Value(senderKeyName), + senderKey = Value(senderKey); + static Insertable custom({ + Expression? senderKeyName, + Expression? senderKey, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (senderKeyName != null) 'sender_key_name': senderKeyName, + if (senderKey != null) 'sender_key': senderKey, + if (rowid != null) 'rowid': rowid, + }); + } + + SignalSenderKeyStoresCompanion copyWith({ + Value? senderKeyName, + Value? senderKey, + Value? rowid, + }) { + return SignalSenderKeyStoresCompanion( + senderKeyName: senderKeyName ?? this.senderKeyName, + senderKey: senderKey ?? this.senderKey, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (senderKeyName.present) { + map['sender_key_name'] = Variable(senderKeyName.value); + } + if (senderKey.present) { + map['sender_key'] = Variable(senderKey.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('SignalSenderKeyStoresCompanion(') + ..write('senderKeyName: $senderKeyName, ') + ..write('senderKey: $senderKey, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $SignalSessionStoresTable extends SignalSessionStores + with TableInfo<$SignalSessionStoresTable, SignalSessionStore> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $SignalSessionStoresTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _deviceIdMeta = const VerificationMeta( + 'deviceId', + ); + @override + late final GeneratedColumn deviceId = GeneratedColumn( + 'device_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: true, + ); + static const VerificationMeta _nameMeta = const VerificationMeta('name'); + @override + late final GeneratedColumn name = GeneratedColumn( + 'name', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _sessionRecordMeta = const VerificationMeta( + 'sessionRecord', + ); + @override + late final GeneratedColumn sessionRecord = + GeneratedColumn( + 'session_record', + aliasedName, + false, + type: DriftSqlType.blob, + requiredDuringInsert: true, + ); + static const VerificationMeta _createdAtMeta = const VerificationMeta( + 'createdAt', + ); + @override + late final GeneratedColumn createdAt = GeneratedColumn( + 'created_at', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime, + ); + @override + List get $columns => [ + deviceId, + name, + sessionRecord, + createdAt, + ]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'signal_session_stores'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('device_id')) { + context.handle( + _deviceIdMeta, + deviceId.isAcceptableOrUnknown(data['device_id']!, _deviceIdMeta), + ); + } else if (isInserting) { + context.missing(_deviceIdMeta); + } + if (data.containsKey('name')) { + context.handle( + _nameMeta, + name.isAcceptableOrUnknown(data['name']!, _nameMeta), + ); + } else if (isInserting) { + context.missing(_nameMeta); + } + if (data.containsKey('session_record')) { + context.handle( + _sessionRecordMeta, + sessionRecord.isAcceptableOrUnknown( + data['session_record']!, + _sessionRecordMeta, + ), + ); + } else if (isInserting) { + context.missing(_sessionRecordMeta); + } + if (data.containsKey('created_at')) { + context.handle( + _createdAtMeta, + createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), + ); + } + return context; + } + + @override + Set get $primaryKey => {deviceId, name}; + @override + SignalSessionStore map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return SignalSessionStore( + deviceId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}device_id'], + )!, + name: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}name'], + )!, + sessionRecord: attachedDatabase.typeMapping.read( + DriftSqlType.blob, + data['${effectivePrefix}session_record'], + )!, + createdAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}created_at'], + )!, + ); + } + + @override + $SignalSessionStoresTable createAlias(String alias) { + return $SignalSessionStoresTable(attachedDatabase, alias); + } +} + +class SignalSessionStore extends DataClass + implements Insertable { + final int deviceId; + final String name; + final Uint8List sessionRecord; + final DateTime createdAt; + const SignalSessionStore({ + required this.deviceId, + required this.name, + required this.sessionRecord, + required this.createdAt, + }); + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + map['device_id'] = Variable(deviceId); + map['name'] = Variable(name); + map['session_record'] = Variable(sessionRecord); + map['created_at'] = Variable(createdAt); + return map; + } + + SignalSessionStoresCompanion toCompanion(bool nullToAbsent) { + return SignalSessionStoresCompanion( + deviceId: Value(deviceId), + name: Value(name), + sessionRecord: Value(sessionRecord), + createdAt: Value(createdAt), + ); + } + + factory SignalSessionStore.fromJson( + Map json, { + ValueSerializer? serializer, + }) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return SignalSessionStore( + deviceId: serializer.fromJson(json['deviceId']), + name: serializer.fromJson(json['name']), + sessionRecord: serializer.fromJson(json['sessionRecord']), + createdAt: serializer.fromJson(json['createdAt']), + ); + } + @override + Map toJson({ValueSerializer? serializer}) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return { + 'deviceId': serializer.toJson(deviceId), + 'name': serializer.toJson(name), + 'sessionRecord': serializer.toJson(sessionRecord), + 'createdAt': serializer.toJson(createdAt), + }; + } + + SignalSessionStore copyWith({ + int? deviceId, + String? name, + Uint8List? sessionRecord, + DateTime? createdAt, + }) => SignalSessionStore( + deviceId: deviceId ?? this.deviceId, + name: name ?? this.name, + sessionRecord: sessionRecord ?? this.sessionRecord, + createdAt: createdAt ?? this.createdAt, + ); + SignalSessionStore copyWithCompanion(SignalSessionStoresCompanion data) { + return SignalSessionStore( + deviceId: data.deviceId.present ? data.deviceId.value : this.deviceId, + name: data.name.present ? data.name.value : this.name, + sessionRecord: data.sessionRecord.present + ? data.sessionRecord.value + : this.sessionRecord, + createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, + ); + } + + @override + String toString() { + return (StringBuffer('SignalSessionStore(') + ..write('deviceId: $deviceId, ') + ..write('name: $name, ') + ..write('sessionRecord: $sessionRecord, ') + ..write('createdAt: $createdAt') + ..write(')')) + .toString(); + } + + @override + int get hashCode => Object.hash( + deviceId, + name, + $driftBlobEquality.hash(sessionRecord), + createdAt, + ); + @override + bool operator ==(Object other) => + identical(this, other) || + (other is SignalSessionStore && + other.deviceId == this.deviceId && + other.name == this.name && + $driftBlobEquality.equals(other.sessionRecord, this.sessionRecord) && + other.createdAt == this.createdAt); +} + +class SignalSessionStoresCompanion extends UpdateCompanion { + final Value deviceId; + final Value name; + final Value sessionRecord; + final Value createdAt; + final Value rowid; + const SignalSessionStoresCompanion({ + this.deviceId = const Value.absent(), + this.name = const Value.absent(), + this.sessionRecord = const Value.absent(), + this.createdAt = const Value.absent(), + this.rowid = const Value.absent(), + }); + SignalSessionStoresCompanion.insert({ + required int deviceId, + required String name, + required Uint8List sessionRecord, + this.createdAt = const Value.absent(), + this.rowid = const Value.absent(), + }) : deviceId = Value(deviceId), + name = Value(name), + sessionRecord = Value(sessionRecord); + static Insertable custom({ + Expression? deviceId, + Expression? name, + Expression? sessionRecord, + Expression? createdAt, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (deviceId != null) 'device_id': deviceId, + if (name != null) 'name': name, + if (sessionRecord != null) 'session_record': sessionRecord, + if (createdAt != null) 'created_at': createdAt, + if (rowid != null) 'rowid': rowid, + }); + } + + SignalSessionStoresCompanion copyWith({ + Value? deviceId, + Value? name, + Value? sessionRecord, + Value? createdAt, + Value? rowid, + }) { + return SignalSessionStoresCompanion( + deviceId: deviceId ?? this.deviceId, + name: name ?? this.name, + sessionRecord: sessionRecord ?? this.sessionRecord, + createdAt: createdAt ?? this.createdAt, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (deviceId.present) { + map['device_id'] = Variable(deviceId.value); + } + if (name.present) { + map['name'] = Variable(name.value); + } + if (sessionRecord.present) { + map['session_record'] = Variable(sessionRecord.value); + } + if (createdAt.present) { + map['created_at'] = Variable(createdAt.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('SignalSessionStoresCompanion(') + ..write('deviceId: $deviceId, ') + ..write('name: $name, ') + ..write('sessionRecord: $sessionRecord, ') + ..write('createdAt: $createdAt, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $SignalSignedPreKeyStoresTable extends SignalSignedPreKeyStores + with TableInfo<$SignalSignedPreKeyStoresTable, SignalSignedPreKeyStore> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $SignalSignedPreKeyStoresTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _signedPreKeyIdMeta = const VerificationMeta( + 'signedPreKeyId', + ); + @override + late final GeneratedColumn signedPreKeyId = GeneratedColumn( + 'signed_pre_key_id', + aliasedName, + false, + type: DriftSqlType.int, + requiredDuringInsert: false, + ); + static const VerificationMeta _signedPreKeyMeta = const VerificationMeta( + 'signedPreKey', + ); + @override + late final GeneratedColumn signedPreKey = + GeneratedColumn( + 'signed_pre_key', + aliasedName, + false, + type: DriftSqlType.blob, + requiredDuringInsert: true, + ); + static const VerificationMeta _createdAtMeta = const VerificationMeta( + 'createdAt', + ); + @override + late final GeneratedColumn createdAt = GeneratedColumn( + 'created_at', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime, + ); + @override + List get $columns => [ + signedPreKeyId, + signedPreKey, + createdAt, + ]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'signal_signed_pre_key_stores'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('signed_pre_key_id')) { + context.handle( + _signedPreKeyIdMeta, + signedPreKeyId.isAcceptableOrUnknown( + data['signed_pre_key_id']!, + _signedPreKeyIdMeta, + ), + ); + } + if (data.containsKey('signed_pre_key')) { + context.handle( + _signedPreKeyMeta, + signedPreKey.isAcceptableOrUnknown( + data['signed_pre_key']!, + _signedPreKeyMeta, + ), + ); + } else if (isInserting) { + context.missing(_signedPreKeyMeta); + } + if (data.containsKey('created_at')) { + context.handle( + _createdAtMeta, + createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), + ); + } + return context; + } + + @override + Set get $primaryKey => {signedPreKeyId}; + @override + SignalSignedPreKeyStore map( + Map data, { + String? tablePrefix, + }) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return SignalSignedPreKeyStore( + signedPreKeyId: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}signed_pre_key_id'], + )!, + signedPreKey: attachedDatabase.typeMapping.read( + DriftSqlType.blob, + data['${effectivePrefix}signed_pre_key'], + )!, + createdAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}created_at'], + )!, + ); + } + + @override + $SignalSignedPreKeyStoresTable createAlias(String alias) { + return $SignalSignedPreKeyStoresTable(attachedDatabase, alias); + } +} + +class SignalSignedPreKeyStore extends DataClass + implements Insertable { + final int signedPreKeyId; + final Uint8List signedPreKey; + final DateTime createdAt; + const SignalSignedPreKeyStore({ + required this.signedPreKeyId, + required this.signedPreKey, + required this.createdAt, + }); + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + map['signed_pre_key_id'] = Variable(signedPreKeyId); + map['signed_pre_key'] = Variable(signedPreKey); + map['created_at'] = Variable(createdAt); + return map; + } + + SignalSignedPreKeyStoresCompanion toCompanion(bool nullToAbsent) { + return SignalSignedPreKeyStoresCompanion( + signedPreKeyId: Value(signedPreKeyId), + signedPreKey: Value(signedPreKey), + createdAt: Value(createdAt), + ); + } + + factory SignalSignedPreKeyStore.fromJson( + Map json, { + ValueSerializer? serializer, + }) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return SignalSignedPreKeyStore( + signedPreKeyId: serializer.fromJson(json['signedPreKeyId']), + signedPreKey: serializer.fromJson(json['signedPreKey']), + createdAt: serializer.fromJson(json['createdAt']), + ); + } + @override + Map toJson({ValueSerializer? serializer}) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return { + 'signedPreKeyId': serializer.toJson(signedPreKeyId), + 'signedPreKey': serializer.toJson(signedPreKey), + 'createdAt': serializer.toJson(createdAt), + }; + } + + SignalSignedPreKeyStore copyWith({ + int? signedPreKeyId, + Uint8List? signedPreKey, + DateTime? createdAt, + }) => SignalSignedPreKeyStore( + signedPreKeyId: signedPreKeyId ?? this.signedPreKeyId, + signedPreKey: signedPreKey ?? this.signedPreKey, + createdAt: createdAt ?? this.createdAt, + ); + SignalSignedPreKeyStore copyWithCompanion( + SignalSignedPreKeyStoresCompanion data, + ) { + return SignalSignedPreKeyStore( + signedPreKeyId: data.signedPreKeyId.present + ? data.signedPreKeyId.value + : this.signedPreKeyId, + signedPreKey: data.signedPreKey.present + ? data.signedPreKey.value + : this.signedPreKey, + createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, + ); + } + + @override + String toString() { + return (StringBuffer('SignalSignedPreKeyStore(') + ..write('signedPreKeyId: $signedPreKeyId, ') + ..write('signedPreKey: $signedPreKey, ') + ..write('createdAt: $createdAt') + ..write(')')) + .toString(); + } + + @override + int get hashCode => Object.hash( + signedPreKeyId, + $driftBlobEquality.hash(signedPreKey), + createdAt, + ); + @override + bool operator ==(Object other) => + identical(this, other) || + (other is SignalSignedPreKeyStore && + other.signedPreKeyId == this.signedPreKeyId && + $driftBlobEquality.equals(other.signedPreKey, this.signedPreKey) && + other.createdAt == this.createdAt); +} + +class SignalSignedPreKeyStoresCompanion + extends UpdateCompanion { + final Value signedPreKeyId; + final Value signedPreKey; + final Value createdAt; + const SignalSignedPreKeyStoresCompanion({ + this.signedPreKeyId = const Value.absent(), + this.signedPreKey = const Value.absent(), + this.createdAt = const Value.absent(), + }); + SignalSignedPreKeyStoresCompanion.insert({ + this.signedPreKeyId = const Value.absent(), + required Uint8List signedPreKey, + this.createdAt = const Value.absent(), + }) : signedPreKey = Value(signedPreKey); + static Insertable custom({ + Expression? signedPreKeyId, + Expression? signedPreKey, + Expression? createdAt, + }) { + return RawValuesInsertable({ + if (signedPreKeyId != null) 'signed_pre_key_id': signedPreKeyId, + if (signedPreKey != null) 'signed_pre_key': signedPreKey, + if (createdAt != null) 'created_at': createdAt, + }); + } + + SignalSignedPreKeyStoresCompanion copyWith({ + Value? signedPreKeyId, + Value? signedPreKey, + Value? createdAt, + }) { + return SignalSignedPreKeyStoresCompanion( + signedPreKeyId: signedPreKeyId ?? this.signedPreKeyId, + signedPreKey: signedPreKey ?? this.signedPreKey, + createdAt: createdAt ?? this.createdAt, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (signedPreKeyId.present) { + map['signed_pre_key_id'] = Variable(signedPreKeyId.value); + } + if (signedPreKey.present) { + map['signed_pre_key'] = Variable(signedPreKey.value); + } + if (createdAt.present) { + map['created_at'] = Variable(createdAt.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('SignalSignedPreKeyStoresCompanion(') + ..write('signedPreKeyId: $signedPreKeyId, ') + ..write('signedPreKey: $signedPreKey, ') + ..write('createdAt: $createdAt') + ..write(')')) + .toString(); + } +} + +abstract class _$SignalDB extends GeneratedDatabase { + _$SignalDB(QueryExecutor e) : super(e); + $SignalDBManager get managers => $SignalDBManager(this); + late final $SignalIdentityKeyStoresTable signalIdentityKeyStores = + $SignalIdentityKeyStoresTable(this); + late final $SignalPreKeyStoresTable signalPreKeyStores = + $SignalPreKeyStoresTable(this); + late final $SignalSenderKeyStoresTable signalSenderKeyStores = + $SignalSenderKeyStoresTable(this); + late final $SignalSessionStoresTable signalSessionStores = + $SignalSessionStoresTable(this); + late final $SignalSignedPreKeyStoresTable signalSignedPreKeyStores = + $SignalSignedPreKeyStoresTable(this); + @override + Iterable> get allTables => + allSchemaEntities.whereType>(); + @override + List get allSchemaEntities => [ + signalIdentityKeyStores, + signalPreKeyStores, + signalSenderKeyStores, + signalSessionStores, + signalSignedPreKeyStores, + ]; +} + +typedef $$SignalIdentityKeyStoresTableCreateCompanionBuilder = + SignalIdentityKeyStoresCompanion Function({ + required int deviceId, + required String name, + required Uint8List identityKey, + Value createdAt, + Value rowid, + }); +typedef $$SignalIdentityKeyStoresTableUpdateCompanionBuilder = + SignalIdentityKeyStoresCompanion Function({ + Value deviceId, + Value name, + Value identityKey, + Value createdAt, + Value rowid, + }); + +class $$SignalIdentityKeyStoresTableFilterComposer + extends Composer<_$SignalDB, $SignalIdentityKeyStoresTable> { + $$SignalIdentityKeyStoresTableFilterComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnFilters get deviceId => $composableBuilder( + column: $table.deviceId, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get name => $composableBuilder( + column: $table.name, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get identityKey => $composableBuilder( + column: $table.identityKey, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnFilters(column), + ); +} + +class $$SignalIdentityKeyStoresTableOrderingComposer + extends Composer<_$SignalDB, $SignalIdentityKeyStoresTable> { + $$SignalIdentityKeyStoresTableOrderingComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnOrderings get deviceId => $composableBuilder( + column: $table.deviceId, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get name => $composableBuilder( + column: $table.name, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get identityKey => $composableBuilder( + column: $table.identityKey, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnOrderings(column), + ); +} + +class $$SignalIdentityKeyStoresTableAnnotationComposer + extends Composer<_$SignalDB, $SignalIdentityKeyStoresTable> { + $$SignalIdentityKeyStoresTableAnnotationComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + GeneratedColumn get deviceId => + $composableBuilder(column: $table.deviceId, builder: (column) => column); + + GeneratedColumn get name => + $composableBuilder(column: $table.name, builder: (column) => column); + + GeneratedColumn get identityKey => $composableBuilder( + column: $table.identityKey, + builder: (column) => column, + ); + + GeneratedColumn get createdAt => + $composableBuilder(column: $table.createdAt, builder: (column) => column); +} + +class $$SignalIdentityKeyStoresTableTableManager + extends + RootTableManager< + _$SignalDB, + $SignalIdentityKeyStoresTable, + SignalIdentityKeyStore, + $$SignalIdentityKeyStoresTableFilterComposer, + $$SignalIdentityKeyStoresTableOrderingComposer, + $$SignalIdentityKeyStoresTableAnnotationComposer, + $$SignalIdentityKeyStoresTableCreateCompanionBuilder, + $$SignalIdentityKeyStoresTableUpdateCompanionBuilder, + ( + SignalIdentityKeyStore, + BaseReferences< + _$SignalDB, + $SignalIdentityKeyStoresTable, + SignalIdentityKeyStore + >, + ), + SignalIdentityKeyStore, + PrefetchHooks Function() + > { + $$SignalIdentityKeyStoresTableTableManager( + _$SignalDB db, + $SignalIdentityKeyStoresTable table, + ) : super( + TableManagerState( + db: db, + table: table, + createFilteringComposer: () => + $$SignalIdentityKeyStoresTableFilterComposer( + $db: db, + $table: table, + ), + createOrderingComposer: () => + $$SignalIdentityKeyStoresTableOrderingComposer( + $db: db, + $table: table, + ), + createComputedFieldComposer: () => + $$SignalIdentityKeyStoresTableAnnotationComposer( + $db: db, + $table: table, + ), + updateCompanionCallback: + ({ + Value deviceId = const Value.absent(), + Value name = const Value.absent(), + Value identityKey = const Value.absent(), + Value createdAt = const Value.absent(), + Value rowid = const Value.absent(), + }) => SignalIdentityKeyStoresCompanion( + deviceId: deviceId, + name: name, + identityKey: identityKey, + createdAt: createdAt, + rowid: rowid, + ), + createCompanionCallback: + ({ + required int deviceId, + required String name, + required Uint8List identityKey, + Value createdAt = const Value.absent(), + Value rowid = const Value.absent(), + }) => SignalIdentityKeyStoresCompanion.insert( + deviceId: deviceId, + name: name, + identityKey: identityKey, + createdAt: createdAt, + rowid: rowid, + ), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), + prefetchHooksCallback: null, + ), + ); +} + +typedef $$SignalIdentityKeyStoresTableProcessedTableManager = + ProcessedTableManager< + _$SignalDB, + $SignalIdentityKeyStoresTable, + SignalIdentityKeyStore, + $$SignalIdentityKeyStoresTableFilterComposer, + $$SignalIdentityKeyStoresTableOrderingComposer, + $$SignalIdentityKeyStoresTableAnnotationComposer, + $$SignalIdentityKeyStoresTableCreateCompanionBuilder, + $$SignalIdentityKeyStoresTableUpdateCompanionBuilder, + ( + SignalIdentityKeyStore, + BaseReferences< + _$SignalDB, + $SignalIdentityKeyStoresTable, + SignalIdentityKeyStore + >, + ), + SignalIdentityKeyStore, + PrefetchHooks Function() + >; +typedef $$SignalPreKeyStoresTableCreateCompanionBuilder = + SignalPreKeyStoresCompanion Function({ + Value preKeyId, + required Uint8List preKey, + Value createdAt, + }); +typedef $$SignalPreKeyStoresTableUpdateCompanionBuilder = + SignalPreKeyStoresCompanion Function({ + Value preKeyId, + Value preKey, + Value createdAt, + }); + +class $$SignalPreKeyStoresTableFilterComposer + extends Composer<_$SignalDB, $SignalPreKeyStoresTable> { + $$SignalPreKeyStoresTableFilterComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnFilters get preKeyId => $composableBuilder( + column: $table.preKeyId, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get preKey => $composableBuilder( + column: $table.preKey, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnFilters(column), + ); +} + +class $$SignalPreKeyStoresTableOrderingComposer + extends Composer<_$SignalDB, $SignalPreKeyStoresTable> { + $$SignalPreKeyStoresTableOrderingComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnOrderings get preKeyId => $composableBuilder( + column: $table.preKeyId, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get preKey => $composableBuilder( + column: $table.preKey, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnOrderings(column), + ); +} + +class $$SignalPreKeyStoresTableAnnotationComposer + extends Composer<_$SignalDB, $SignalPreKeyStoresTable> { + $$SignalPreKeyStoresTableAnnotationComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + GeneratedColumn get preKeyId => + $composableBuilder(column: $table.preKeyId, builder: (column) => column); + + GeneratedColumn get preKey => + $composableBuilder(column: $table.preKey, builder: (column) => column); + + GeneratedColumn get createdAt => + $composableBuilder(column: $table.createdAt, builder: (column) => column); +} + +class $$SignalPreKeyStoresTableTableManager + extends + RootTableManager< + _$SignalDB, + $SignalPreKeyStoresTable, + SignalPreKeyStore, + $$SignalPreKeyStoresTableFilterComposer, + $$SignalPreKeyStoresTableOrderingComposer, + $$SignalPreKeyStoresTableAnnotationComposer, + $$SignalPreKeyStoresTableCreateCompanionBuilder, + $$SignalPreKeyStoresTableUpdateCompanionBuilder, + ( + SignalPreKeyStore, + BaseReferences< + _$SignalDB, + $SignalPreKeyStoresTable, + SignalPreKeyStore + >, + ), + SignalPreKeyStore, + PrefetchHooks Function() + > { + $$SignalPreKeyStoresTableTableManager( + _$SignalDB db, + $SignalPreKeyStoresTable table, + ) : super( + TableManagerState( + db: db, + table: table, + createFilteringComposer: () => + $$SignalPreKeyStoresTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$SignalPreKeyStoresTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$SignalPreKeyStoresTableAnnotationComposer( + $db: db, + $table: table, + ), + updateCompanionCallback: + ({ + Value preKeyId = const Value.absent(), + Value preKey = const Value.absent(), + Value createdAt = const Value.absent(), + }) => SignalPreKeyStoresCompanion( + preKeyId: preKeyId, + preKey: preKey, + createdAt: createdAt, + ), + createCompanionCallback: + ({ + Value preKeyId = const Value.absent(), + required Uint8List preKey, + Value createdAt = const Value.absent(), + }) => SignalPreKeyStoresCompanion.insert( + preKeyId: preKeyId, + preKey: preKey, + createdAt: createdAt, + ), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), + prefetchHooksCallback: null, + ), + ); +} + +typedef $$SignalPreKeyStoresTableProcessedTableManager = + ProcessedTableManager< + _$SignalDB, + $SignalPreKeyStoresTable, + SignalPreKeyStore, + $$SignalPreKeyStoresTableFilterComposer, + $$SignalPreKeyStoresTableOrderingComposer, + $$SignalPreKeyStoresTableAnnotationComposer, + $$SignalPreKeyStoresTableCreateCompanionBuilder, + $$SignalPreKeyStoresTableUpdateCompanionBuilder, + ( + SignalPreKeyStore, + BaseReferences<_$SignalDB, $SignalPreKeyStoresTable, SignalPreKeyStore>, + ), + SignalPreKeyStore, + PrefetchHooks Function() + >; +typedef $$SignalSenderKeyStoresTableCreateCompanionBuilder = + SignalSenderKeyStoresCompanion Function({ + required String senderKeyName, + required Uint8List senderKey, + Value rowid, + }); +typedef $$SignalSenderKeyStoresTableUpdateCompanionBuilder = + SignalSenderKeyStoresCompanion Function({ + Value senderKeyName, + Value senderKey, + Value rowid, + }); + +class $$SignalSenderKeyStoresTableFilterComposer + extends Composer<_$SignalDB, $SignalSenderKeyStoresTable> { + $$SignalSenderKeyStoresTableFilterComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnFilters get senderKeyName => $composableBuilder( + column: $table.senderKeyName, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get senderKey => $composableBuilder( + column: $table.senderKey, + builder: (column) => ColumnFilters(column), + ); +} + +class $$SignalSenderKeyStoresTableOrderingComposer + extends Composer<_$SignalDB, $SignalSenderKeyStoresTable> { + $$SignalSenderKeyStoresTableOrderingComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnOrderings get senderKeyName => $composableBuilder( + column: $table.senderKeyName, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get senderKey => $composableBuilder( + column: $table.senderKey, + builder: (column) => ColumnOrderings(column), + ); +} + +class $$SignalSenderKeyStoresTableAnnotationComposer + extends Composer<_$SignalDB, $SignalSenderKeyStoresTable> { + $$SignalSenderKeyStoresTableAnnotationComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + GeneratedColumn get senderKeyName => $composableBuilder( + column: $table.senderKeyName, + builder: (column) => column, + ); + + GeneratedColumn get senderKey => + $composableBuilder(column: $table.senderKey, builder: (column) => column); +} + +class $$SignalSenderKeyStoresTableTableManager + extends + RootTableManager< + _$SignalDB, + $SignalSenderKeyStoresTable, + SignalSenderKeyStore, + $$SignalSenderKeyStoresTableFilterComposer, + $$SignalSenderKeyStoresTableOrderingComposer, + $$SignalSenderKeyStoresTableAnnotationComposer, + $$SignalSenderKeyStoresTableCreateCompanionBuilder, + $$SignalSenderKeyStoresTableUpdateCompanionBuilder, + ( + SignalSenderKeyStore, + BaseReferences< + _$SignalDB, + $SignalSenderKeyStoresTable, + SignalSenderKeyStore + >, + ), + SignalSenderKeyStore, + PrefetchHooks Function() + > { + $$SignalSenderKeyStoresTableTableManager( + _$SignalDB db, + $SignalSenderKeyStoresTable table, + ) : super( + TableManagerState( + db: db, + table: table, + createFilteringComposer: () => + $$SignalSenderKeyStoresTableFilterComposer( + $db: db, + $table: table, + ), + createOrderingComposer: () => + $$SignalSenderKeyStoresTableOrderingComposer( + $db: db, + $table: table, + ), + createComputedFieldComposer: () => + $$SignalSenderKeyStoresTableAnnotationComposer( + $db: db, + $table: table, + ), + updateCompanionCallback: + ({ + Value senderKeyName = const Value.absent(), + Value senderKey = const Value.absent(), + Value rowid = const Value.absent(), + }) => SignalSenderKeyStoresCompanion( + senderKeyName: senderKeyName, + senderKey: senderKey, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String senderKeyName, + required Uint8List senderKey, + Value rowid = const Value.absent(), + }) => SignalSenderKeyStoresCompanion.insert( + senderKeyName: senderKeyName, + senderKey: senderKey, + rowid: rowid, + ), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), + prefetchHooksCallback: null, + ), + ); +} + +typedef $$SignalSenderKeyStoresTableProcessedTableManager = + ProcessedTableManager< + _$SignalDB, + $SignalSenderKeyStoresTable, + SignalSenderKeyStore, + $$SignalSenderKeyStoresTableFilterComposer, + $$SignalSenderKeyStoresTableOrderingComposer, + $$SignalSenderKeyStoresTableAnnotationComposer, + $$SignalSenderKeyStoresTableCreateCompanionBuilder, + $$SignalSenderKeyStoresTableUpdateCompanionBuilder, + ( + SignalSenderKeyStore, + BaseReferences< + _$SignalDB, + $SignalSenderKeyStoresTable, + SignalSenderKeyStore + >, + ), + SignalSenderKeyStore, + PrefetchHooks Function() + >; +typedef $$SignalSessionStoresTableCreateCompanionBuilder = + SignalSessionStoresCompanion Function({ + required int deviceId, + required String name, + required Uint8List sessionRecord, + Value createdAt, + Value rowid, + }); +typedef $$SignalSessionStoresTableUpdateCompanionBuilder = + SignalSessionStoresCompanion Function({ + Value deviceId, + Value name, + Value sessionRecord, + Value createdAt, + Value rowid, + }); + +class $$SignalSessionStoresTableFilterComposer + extends Composer<_$SignalDB, $SignalSessionStoresTable> { + $$SignalSessionStoresTableFilterComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnFilters get deviceId => $composableBuilder( + column: $table.deviceId, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get name => $composableBuilder( + column: $table.name, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get sessionRecord => $composableBuilder( + column: $table.sessionRecord, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnFilters(column), + ); +} + +class $$SignalSessionStoresTableOrderingComposer + extends Composer<_$SignalDB, $SignalSessionStoresTable> { + $$SignalSessionStoresTableOrderingComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnOrderings get deviceId => $composableBuilder( + column: $table.deviceId, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get name => $composableBuilder( + column: $table.name, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get sessionRecord => $composableBuilder( + column: $table.sessionRecord, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnOrderings(column), + ); +} + +class $$SignalSessionStoresTableAnnotationComposer + extends Composer<_$SignalDB, $SignalSessionStoresTable> { + $$SignalSessionStoresTableAnnotationComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + GeneratedColumn get deviceId => + $composableBuilder(column: $table.deviceId, builder: (column) => column); + + GeneratedColumn get name => + $composableBuilder(column: $table.name, builder: (column) => column); + + GeneratedColumn get sessionRecord => $composableBuilder( + column: $table.sessionRecord, + builder: (column) => column, + ); + + GeneratedColumn get createdAt => + $composableBuilder(column: $table.createdAt, builder: (column) => column); +} + +class $$SignalSessionStoresTableTableManager + extends + RootTableManager< + _$SignalDB, + $SignalSessionStoresTable, + SignalSessionStore, + $$SignalSessionStoresTableFilterComposer, + $$SignalSessionStoresTableOrderingComposer, + $$SignalSessionStoresTableAnnotationComposer, + $$SignalSessionStoresTableCreateCompanionBuilder, + $$SignalSessionStoresTableUpdateCompanionBuilder, + ( + SignalSessionStore, + BaseReferences< + _$SignalDB, + $SignalSessionStoresTable, + SignalSessionStore + >, + ), + SignalSessionStore, + PrefetchHooks Function() + > { + $$SignalSessionStoresTableTableManager( + _$SignalDB db, + $SignalSessionStoresTable table, + ) : super( + TableManagerState( + db: db, + table: table, + createFilteringComposer: () => + $$SignalSessionStoresTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$SignalSessionStoresTableOrderingComposer( + $db: db, + $table: table, + ), + createComputedFieldComposer: () => + $$SignalSessionStoresTableAnnotationComposer( + $db: db, + $table: table, + ), + updateCompanionCallback: + ({ + Value deviceId = const Value.absent(), + Value name = const Value.absent(), + Value sessionRecord = const Value.absent(), + Value createdAt = const Value.absent(), + Value rowid = const Value.absent(), + }) => SignalSessionStoresCompanion( + deviceId: deviceId, + name: name, + sessionRecord: sessionRecord, + createdAt: createdAt, + rowid: rowid, + ), + createCompanionCallback: + ({ + required int deviceId, + required String name, + required Uint8List sessionRecord, + Value createdAt = const Value.absent(), + Value rowid = const Value.absent(), + }) => SignalSessionStoresCompanion.insert( + deviceId: deviceId, + name: name, + sessionRecord: sessionRecord, + createdAt: createdAt, + rowid: rowid, + ), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), + prefetchHooksCallback: null, + ), + ); +} + +typedef $$SignalSessionStoresTableProcessedTableManager = + ProcessedTableManager< + _$SignalDB, + $SignalSessionStoresTable, + SignalSessionStore, + $$SignalSessionStoresTableFilterComposer, + $$SignalSessionStoresTableOrderingComposer, + $$SignalSessionStoresTableAnnotationComposer, + $$SignalSessionStoresTableCreateCompanionBuilder, + $$SignalSessionStoresTableUpdateCompanionBuilder, + ( + SignalSessionStore, + BaseReferences< + _$SignalDB, + $SignalSessionStoresTable, + SignalSessionStore + >, + ), + SignalSessionStore, + PrefetchHooks Function() + >; +typedef $$SignalSignedPreKeyStoresTableCreateCompanionBuilder = + SignalSignedPreKeyStoresCompanion Function({ + Value signedPreKeyId, + required Uint8List signedPreKey, + Value createdAt, + }); +typedef $$SignalSignedPreKeyStoresTableUpdateCompanionBuilder = + SignalSignedPreKeyStoresCompanion Function({ + Value signedPreKeyId, + Value signedPreKey, + Value createdAt, + }); + +class $$SignalSignedPreKeyStoresTableFilterComposer + extends Composer<_$SignalDB, $SignalSignedPreKeyStoresTable> { + $$SignalSignedPreKeyStoresTableFilterComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnFilters get signedPreKeyId => $composableBuilder( + column: $table.signedPreKeyId, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get signedPreKey => $composableBuilder( + column: $table.signedPreKey, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnFilters(column), + ); +} + +class $$SignalSignedPreKeyStoresTableOrderingComposer + extends Composer<_$SignalDB, $SignalSignedPreKeyStoresTable> { + $$SignalSignedPreKeyStoresTableOrderingComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnOrderings get signedPreKeyId => $composableBuilder( + column: $table.signedPreKeyId, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get signedPreKey => $composableBuilder( + column: $table.signedPreKey, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnOrderings(column), + ); +} + +class $$SignalSignedPreKeyStoresTableAnnotationComposer + extends Composer<_$SignalDB, $SignalSignedPreKeyStoresTable> { + $$SignalSignedPreKeyStoresTableAnnotationComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + GeneratedColumn get signedPreKeyId => $composableBuilder( + column: $table.signedPreKeyId, + builder: (column) => column, + ); + + GeneratedColumn get signedPreKey => $composableBuilder( + column: $table.signedPreKey, + builder: (column) => column, + ); + + GeneratedColumn get createdAt => + $composableBuilder(column: $table.createdAt, builder: (column) => column); +} + +class $$SignalSignedPreKeyStoresTableTableManager + extends + RootTableManager< + _$SignalDB, + $SignalSignedPreKeyStoresTable, + SignalSignedPreKeyStore, + $$SignalSignedPreKeyStoresTableFilterComposer, + $$SignalSignedPreKeyStoresTableOrderingComposer, + $$SignalSignedPreKeyStoresTableAnnotationComposer, + $$SignalSignedPreKeyStoresTableCreateCompanionBuilder, + $$SignalSignedPreKeyStoresTableUpdateCompanionBuilder, + ( + SignalSignedPreKeyStore, + BaseReferences< + _$SignalDB, + $SignalSignedPreKeyStoresTable, + SignalSignedPreKeyStore + >, + ), + SignalSignedPreKeyStore, + PrefetchHooks Function() + > { + $$SignalSignedPreKeyStoresTableTableManager( + _$SignalDB db, + $SignalSignedPreKeyStoresTable table, + ) : super( + TableManagerState( + db: db, + table: table, + createFilteringComposer: () => + $$SignalSignedPreKeyStoresTableFilterComposer( + $db: db, + $table: table, + ), + createOrderingComposer: () => + $$SignalSignedPreKeyStoresTableOrderingComposer( + $db: db, + $table: table, + ), + createComputedFieldComposer: () => + $$SignalSignedPreKeyStoresTableAnnotationComposer( + $db: db, + $table: table, + ), + updateCompanionCallback: + ({ + Value signedPreKeyId = const Value.absent(), + Value signedPreKey = const Value.absent(), + Value createdAt = const Value.absent(), + }) => SignalSignedPreKeyStoresCompanion( + signedPreKeyId: signedPreKeyId, + signedPreKey: signedPreKey, + createdAt: createdAt, + ), + createCompanionCallback: + ({ + Value signedPreKeyId = const Value.absent(), + required Uint8List signedPreKey, + Value createdAt = const Value.absent(), + }) => SignalSignedPreKeyStoresCompanion.insert( + signedPreKeyId: signedPreKeyId, + signedPreKey: signedPreKey, + createdAt: createdAt, + ), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), + prefetchHooksCallback: null, + ), + ); +} + +typedef $$SignalSignedPreKeyStoresTableProcessedTableManager = + ProcessedTableManager< + _$SignalDB, + $SignalSignedPreKeyStoresTable, + SignalSignedPreKeyStore, + $$SignalSignedPreKeyStoresTableFilterComposer, + $$SignalSignedPreKeyStoresTableOrderingComposer, + $$SignalSignedPreKeyStoresTableAnnotationComposer, + $$SignalSignedPreKeyStoresTableCreateCompanionBuilder, + $$SignalSignedPreKeyStoresTableUpdateCompanionBuilder, + ( + SignalSignedPreKeyStore, + BaseReferences< + _$SignalDB, + $SignalSignedPreKeyStoresTable, + SignalSignedPreKeyStore + >, + ), + SignalSignedPreKeyStore, + PrefetchHooks Function() + >; + +class $SignalDBManager { + final _$SignalDB _db; + $SignalDBManager(this._db); + $$SignalIdentityKeyStoresTableTableManager get signalIdentityKeyStores => + $$SignalIdentityKeyStoresTableTableManager( + _db, + _db.signalIdentityKeyStores, + ); + $$SignalPreKeyStoresTableTableManager get signalPreKeyStores => + $$SignalPreKeyStoresTableTableManager(_db, _db.signalPreKeyStores); + $$SignalSenderKeyStoresTableTableManager get signalSenderKeyStores => + $$SignalSenderKeyStoresTableTableManager(_db, _db.signalSenderKeyStores); + $$SignalSessionStoresTableTableManager get signalSessionStores => + $$SignalSessionStoresTableTableManager(_db, _db.signalSessionStores); + $$SignalSignedPreKeyStoresTableTableManager get signalSignedPreKeyStores => + $$SignalSignedPreKeyStoresTableTableManager( + _db, + _db.signalSignedPreKeyStores, + ); +} diff --git a/lib/src/database/signal/signal_identity_key_store.dart b/lib/src/database/signal/signal_identity_key_store.dart index ed917656..e251ba23 100644 --- a/lib/src/database/signal/signal_identity_key_store.dart +++ b/lib/src/database/signal/signal_identity_key_store.dart @@ -2,7 +2,7 @@ import 'package:collection/collection.dart'; import 'package:drift/drift.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; import 'package:twonly/locator.dart'; -import 'package:twonly/src/database/twonly.db.dart'; +import 'package:twonly/src/database/signal.db.dart'; class SignalIdentityKeyStore extends IdentityKeyStore { SignalIdentityKeyStore(this.identityKeyPair, this.localRegistrationId); @@ -13,7 +13,7 @@ class SignalIdentityKeyStore extends IdentityKeyStore { @override Future getIdentity(SignalProtocolAddress address) async { final identity = - await (twonlyDB.select(twonlyDB.signalIdentityKeyStores)..where( + await (signalDB.select(signalDB.signalIdentityKeyStores)..where( (t) => t.deviceId.equals(address.getDeviceId()) & t.name.equals(address.getName()), @@ -55,8 +55,8 @@ class SignalIdentityKeyStore extends IdentityKeyStore { return false; } if (await getIdentity(address) == null) { - await twonlyDB - .into(twonlyDB.signalIdentityKeyStores) + await signalDB + .into(signalDB.signalIdentityKeyStores) .insert( SignalIdentityKeyStoresCompanion( deviceId: Value(address.getDeviceId()), @@ -65,7 +65,7 @@ class SignalIdentityKeyStore extends IdentityKeyStore { ), ); } else { - await (twonlyDB.update(twonlyDB.signalIdentityKeyStores)..where( + await (signalDB.update(signalDB.signalIdentityKeyStores)..where( (t) => t.deviceId.equals(address.getDeviceId()) & t.name.equals(address.getName()), diff --git a/lib/src/database/signal/signal_pre_key_store.dart b/lib/src/database/signal/signal_pre_key_store.dart index dc7cac75..e6dd00a9 100644 --- a/lib/src/database/signal/signal_pre_key_store.dart +++ b/lib/src/database/signal/signal_pre_key_store.dart @@ -1,22 +1,22 @@ import 'package:drift/drift.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; import 'package:twonly/locator.dart'; -import 'package:twonly/src/database/twonly.db.dart'; +import 'package:twonly/src/database/signal.db.dart'; import 'package:twonly/src/utils/log.dart'; class SignalPreKeyStore extends PreKeyStore { @override Future containsPreKey(int preKeyId) async { - final preKeyRecord = await (twonlyDB.select( - twonlyDB.signalPreKeyStores, + final preKeyRecord = await (signalDB.select( + signalDB.signalPreKeyStores, )..where((tbl) => tbl.preKeyId.equals(preKeyId))).get(); return preKeyRecord.isNotEmpty; } @override Future loadPreKey(int preKeyId) async { - final preKeyRecord = await (twonlyDB.select( - twonlyDB.signalPreKeyStores, + final preKeyRecord = await (signalDB.select( + signalDB.signalPreKeyStores, )..where((tbl) => tbl.preKeyId.equals(preKeyId))).get(); if (preKeyRecord.isEmpty) { throw InvalidKeyIdException( @@ -29,8 +29,8 @@ class SignalPreKeyStore extends PreKeyStore { @override Future removePreKey(int preKeyId) async { - await (twonlyDB.delete( - twonlyDB.signalPreKeyStores, + await (signalDB.delete( + signalDB.signalPreKeyStores, )..where((tbl) => tbl.preKeyId.equals(preKeyId))).go(); } @@ -42,8 +42,8 @@ class SignalPreKeyStore extends PreKeyStore { ); try { - await twonlyDB - .into(twonlyDB.signalPreKeyStores) + await signalDB + .into(signalDB.signalPreKeyStores) .insert(preKeyCompanion, mode: InsertMode.insertOrReplace); } catch (e) { Log.error('$e'); diff --git a/lib/src/database/signal/signal_sender_key_store.dart b/lib/src/database/signal/signal_sender_key_store.dart index 04e082bc..7bf1dc52 100644 --- a/lib/src/database/signal/signal_sender_key_store.dart +++ b/lib/src/database/signal/signal_sender_key_store.dart @@ -1,13 +1,13 @@ import 'package:drift/drift.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; import 'package:twonly/locator.dart'; -import 'package:twonly/src/database/twonly.db.dart'; +import 'package:twonly/src/database/signal.db.dart'; class SignalSenderKeyStore extends SenderKeyStore { @override Future loadSenderKey(SenderKeyName senderKeyName) async { final identity = - await (twonlyDB.select(twonlyDB.signalSenderKeyStores) + await (signalDB.select(signalDB.signalSenderKeyStores) ..where((t) => t.senderKeyName.equals(senderKeyName.serialize()))) .getSingleOrNull(); if (identity == null) { @@ -23,8 +23,8 @@ class SignalSenderKeyStore extends SenderKeyStore { SenderKeyName senderKeyName, SenderKeyRecord record, ) async { - await twonlyDB - .into(twonlyDB.signalSenderKeyStores) + await signalDB + .into(signalDB.signalSenderKeyStores) .insert( SignalSenderKeyStoresCompanion( senderKey: Value(record.serialize()), diff --git a/lib/src/database/signal/signal_session_store.dart b/lib/src/database/signal/signal_session_store.dart index fce145e4..f11e304e 100644 --- a/lib/src/database/signal/signal_session_store.dart +++ b/lib/src/database/signal/signal_session_store.dart @@ -1,13 +1,13 @@ import 'package:drift/drift.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; import 'package:twonly/locator.dart'; -import 'package:twonly/src/database/twonly.db.dart'; +import 'package:twonly/src/database/signal.db.dart'; class SignalSessionStore extends SessionStore { @override Future containsSession(SignalProtocolAddress address) async { final sessions = - await (twonlyDB.select(twonlyDB.signalSessionStores)..where( + await (signalDB.select(signalDB.signalSessionStores)..where( (tbl) => tbl.deviceId.equals(address.getDeviceId()) & tbl.name.equals(address.getName()), @@ -18,14 +18,14 @@ class SignalSessionStore extends SessionStore { @override Future deleteAllSessions(String name) async { - await (twonlyDB.delete( - twonlyDB.signalSessionStores, + await (signalDB.delete( + signalDB.signalSessionStores, )..where((tbl) => tbl.name.equals(name))).go(); } @override Future deleteSession(SignalProtocolAddress address) async { - await (twonlyDB.delete(twonlyDB.signalSessionStores)..where( + await (signalDB.delete(signalDB.signalSessionStores)..where( (tbl) => tbl.deviceId.equals(address.getDeviceId()) & tbl.name.equals(address.getName()), @@ -36,7 +36,7 @@ class SignalSessionStore extends SessionStore { @override Future> getSubDeviceSessions(String name) async { final deviceIds = - await (twonlyDB.select(twonlyDB.signalSessionStores)..where( + await (signalDB.select(signalDB.signalSessionStores)..where( (tbl) => tbl.deviceId.equals(1).not() & tbl.name.equals(name), )) .get(); @@ -46,7 +46,7 @@ class SignalSessionStore extends SessionStore { @override Future loadSession(SignalProtocolAddress address) async { final dbSession = - await (twonlyDB.select(twonlyDB.signalSessionStores)..where( + await (signalDB.select(signalDB.signalSessionStores)..where( (tbl) => tbl.deviceId.equals(address.getDeviceId()) & tbl.name.equals(address.getName()), @@ -72,11 +72,11 @@ class SignalSessionStore extends SessionStore { ); if (!await containsSession(address)) { - await twonlyDB - .into(twonlyDB.signalSessionStores) + await signalDB + .into(signalDB.signalSessionStores) .insert(sessionCompanion); } else { - await (twonlyDB.update(twonlyDB.signalSessionStores)..where( + await (signalDB.update(signalDB.signalSessionStores)..where( (tbl) => tbl.deviceId.equals(address.getDeviceId()) & tbl.name.equals(address.getName()), diff --git a/lib/src/database/signal/signal_signed_pre_key_store.dart b/lib/src/database/signal/signal_signed_pre_key_store.dart index 1d4c8e4c..9376c77e 100644 --- a/lib/src/database/signal/signal_signed_pre_key_store.dart +++ b/lib/src/database/signal/signal_signed_pre_key_store.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'package:drift/drift.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; import 'package:twonly/locator.dart'; -import 'package:twonly/src/database/twonly.db.dart'; +import 'package:twonly/src/database/signal.db.dart'; import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/secure_storage.dart'; @@ -26,8 +26,8 @@ Future> getSignalSignedPreKeyStoreOld() async { class SignalSignedPreKeyStore extends SignedPreKeyStore { @override Future loadSignedPreKey(int signedPreKeyId) async { - final record = await (twonlyDB.select( - twonlyDB.signalSignedPreKeyStores, + final record = await (signalDB.select( + signalDB.signalSignedPreKeyStores, )..where((tbl) => tbl.signedPreKeyId.equals(signedPreKeyId))).get(); if (record.isEmpty) { throw InvalidKeyIdException( @@ -39,8 +39,8 @@ class SignalSignedPreKeyStore extends SignedPreKeyStore { @override Future> loadSignedPreKeys() async { - final records = await twonlyDB - .select(twonlyDB.signalSignedPreKeyStores) + final records = await signalDB + .select(signalDB.signalSignedPreKeyStores) .get(); return records .map((r) => SignedPreKeyRecord.fromSerialized(r.signedPreKey)) @@ -58,8 +58,8 @@ class SignalSignedPreKeyStore extends SignedPreKeyStore { ); try { - await twonlyDB - .into(twonlyDB.signalSignedPreKeyStores) + await signalDB + .into(signalDB.signalSignedPreKeyStores) .insert(companion, mode: InsertMode.insertOrReplace); } catch (e) { Log.error('$e'); @@ -69,16 +69,16 @@ class SignalSignedPreKeyStore extends SignedPreKeyStore { @override Future containsSignedPreKey(int signedPreKeyId) async { - final record = await (twonlyDB.select( - twonlyDB.signalSignedPreKeyStores, + final record = await (signalDB.select( + signalDB.signalSignedPreKeyStores, )..where((tbl) => tbl.signedPreKeyId.equals(signedPreKeyId))).get(); return record.isNotEmpty; } @override Future removeSignedPreKey(int signedPreKeyId) async { - await (twonlyDB.delete( - twonlyDB.signalSignedPreKeyStores, + await (signalDB.delete( + signalDB.signalSignedPreKeyStores, )..where((tbl) => tbl.signedPreKeyId.equals(signedPreKeyId))).go(); } } diff --git a/lib/src/database/twonly.db.dart b/lib/src/database/twonly.db.dart index 0f69e6ef..40eea8f7 100644 --- a/lib/src/database/twonly.db.dart +++ b/lib/src/database/twonly.db.dart @@ -1,8 +1,4 @@ import 'package:drift/drift.dart'; -import 'package:drift_flutter/drift_flutter.dart' - show DriftNativeOptions, driftDatabase; -import 'package:path_provider/path_provider.dart'; -import 'package:twonly/locator.dart'; import 'package:twonly/src/database/daos/contacts.dao.dart'; import 'package:twonly/src/database/daos/groups.dao.dart'; import 'package:twonly/src/database/daos/key_verification.dao.dart'; @@ -13,7 +9,7 @@ import 'package:twonly/src/database/daos/reactions.dao.dart'; import 'package:twonly/src/database/daos/receipts.dao.dart'; import 'package:twonly/src/database/daos/shortcuts.dao.dart'; import 'package:twonly/src/database/daos/user_discovery.dao.dart'; -import 'package:twonly/src/database/drift_logging_interceptor.dart'; +import 'package:twonly/src/database/rust_query_executor.dart'; import 'package:twonly/src/database/tables/contacts.table.dart'; import 'package:twonly/src/database/tables/groups.table.dart'; import 'package:twonly/src/database/tables/labels.table.dart'; @@ -22,11 +18,6 @@ import 'package:twonly/src/database/tables/messages.table.dart'; import 'package:twonly/src/database/tables/reactions.table.dart'; import 'package:twonly/src/database/tables/receipts.table.dart'; import 'package:twonly/src/database/tables/shortcuts.table.dart'; -import 'package:twonly/src/database/tables/signal_identity_key_store.table.dart'; -import 'package:twonly/src/database/tables/signal_pre_key_store.table.dart'; -import 'package:twonly/src/database/tables/signal_sender_key_store.table.dart'; -import 'package:twonly/src/database/tables/signal_session_store.table.dart'; -import 'package:twonly/src/database/tables/signal_signed_pre_key_store.table.dart'; import 'package:twonly/src/database/tables/user_discovery.table.dart'; import 'package:twonly/src/database/twonly.db.steps.dart'; import 'package:twonly/src/utils/log.dart'; @@ -45,11 +36,6 @@ part 'twonly.db.g.dart'; GroupMembers, Receipts, ReceivedReceipts, - SignalIdentityKeyStores, - SignalPreKeyStores, - SignalSenderKeyStores, - SignalSessionStores, - SignalSignedPreKeyStores, MessageActions, GroupHistories, KeyVerifications, @@ -80,7 +66,7 @@ part 'twonly.db.g.dart'; class TwonlyDB extends _$TwonlyDB { TwonlyDB([QueryExecutor? e]) : super( - e ?? _openConnection(), + e ?? openRustAppDatabase(), ); // ignore: matching_super_parameters @@ -89,29 +75,6 @@ class TwonlyDB extends _$TwonlyDB { @override int get schemaVersion => 25; - static QueryExecutor _openConnection() { - final connection = driftDatabase( - name: 'twonly', - native: DriftNativeOptions( - databaseDirectory: getApplicationSupportDirectory, - shareAcrossIsolates: true, - setup: (rawDb) { - rawDb - ..execute('PRAGMA journal_mode=DELETE;') - ..execute('PRAGMA synchronous=FULL;') - ..execute('PRAGMA busy_timeout=5000;'); - }, - ), - ); - try { - if (userService.isUserCreated && - userService.currentUser.enableDatabaseLogging) { - return connection.interceptWith(DriftLoggingInterceptor()); - } - } catch (_) {} - return connection; - } - @override MigrationStrategy get migration { return MigrationStrategy( diff --git a/lib/src/database/twonly.db.g.dart b/lib/src/database/twonly.db.g.dart index fca40dc8..b2decaaa 100644 --- a/lib/src/database/twonly.db.g.dart +++ b/lib/src/database/twonly.db.g.dart @@ -7910,1428 +7910,6 @@ class ReceivedReceiptsCompanion extends UpdateCompanion { } } -class $SignalIdentityKeyStoresTable extends SignalIdentityKeyStores - with TableInfo<$SignalIdentityKeyStoresTable, SignalIdentityKeyStore> { - @override - final GeneratedDatabase attachedDatabase; - final String? _alias; - $SignalIdentityKeyStoresTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _deviceIdMeta = const VerificationMeta( - 'deviceId', - ); - @override - late final GeneratedColumn deviceId = GeneratedColumn( - 'device_id', - aliasedName, - false, - type: DriftSqlType.int, - requiredDuringInsert: true, - ); - static const VerificationMeta _nameMeta = const VerificationMeta('name'); - @override - late final GeneratedColumn name = GeneratedColumn( - 'name', - aliasedName, - false, - type: DriftSqlType.string, - requiredDuringInsert: true, - ); - static const VerificationMeta _identityKeyMeta = const VerificationMeta( - 'identityKey', - ); - @override - late final GeneratedColumn identityKey = - GeneratedColumn( - 'identity_key', - aliasedName, - false, - type: DriftSqlType.blob, - requiredDuringInsert: true, - ); - static const VerificationMeta _createdAtMeta = const VerificationMeta( - 'createdAt', - ); - @override - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', - aliasedName, - false, - type: DriftSqlType.dateTime, - requiredDuringInsert: false, - defaultValue: currentDateAndTime, - ); - @override - List get $columns => [ - deviceId, - name, - identityKey, - createdAt, - ]; - @override - String get aliasedName => _alias ?? actualTableName; - @override - String get actualTableName => $name; - static const String $name = 'signal_identity_key_stores'; - @override - VerificationContext validateIntegrity( - Insertable instance, { - bool isInserting = false, - }) { - final context = VerificationContext(); - final data = instance.toColumns(true); - if (data.containsKey('device_id')) { - context.handle( - _deviceIdMeta, - deviceId.isAcceptableOrUnknown(data['device_id']!, _deviceIdMeta), - ); - } else if (isInserting) { - context.missing(_deviceIdMeta); - } - if (data.containsKey('name')) { - context.handle( - _nameMeta, - name.isAcceptableOrUnknown(data['name']!, _nameMeta), - ); - } else if (isInserting) { - context.missing(_nameMeta); - } - if (data.containsKey('identity_key')) { - context.handle( - _identityKeyMeta, - identityKey.isAcceptableOrUnknown( - data['identity_key']!, - _identityKeyMeta, - ), - ); - } else if (isInserting) { - context.missing(_identityKeyMeta); - } - if (data.containsKey('created_at')) { - context.handle( - _createdAtMeta, - createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), - ); - } - return context; - } - - @override - Set get $primaryKey => {deviceId, name}; - @override - SignalIdentityKeyStore map(Map data, {String? tablePrefix}) { - final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return SignalIdentityKeyStore( - deviceId: attachedDatabase.typeMapping.read( - DriftSqlType.int, - data['${effectivePrefix}device_id'], - )!, - name: attachedDatabase.typeMapping.read( - DriftSqlType.string, - data['${effectivePrefix}name'], - )!, - identityKey: attachedDatabase.typeMapping.read( - DriftSqlType.blob, - data['${effectivePrefix}identity_key'], - )!, - createdAt: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, - data['${effectivePrefix}created_at'], - )!, - ); - } - - @override - $SignalIdentityKeyStoresTable createAlias(String alias) { - return $SignalIdentityKeyStoresTable(attachedDatabase, alias); - } -} - -class SignalIdentityKeyStore extends DataClass - implements Insertable { - final int deviceId; - final String name; - final Uint8List identityKey; - final DateTime createdAt; - const SignalIdentityKeyStore({ - required this.deviceId, - required this.name, - required this.identityKey, - required this.createdAt, - }); - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - map['device_id'] = Variable(deviceId); - map['name'] = Variable(name); - map['identity_key'] = Variable(identityKey); - map['created_at'] = Variable(createdAt); - return map; - } - - SignalIdentityKeyStoresCompanion toCompanion(bool nullToAbsent) { - return SignalIdentityKeyStoresCompanion( - deviceId: Value(deviceId), - name: Value(name), - identityKey: Value(identityKey), - createdAt: Value(createdAt), - ); - } - - factory SignalIdentityKeyStore.fromJson( - Map json, { - ValueSerializer? serializer, - }) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return SignalIdentityKeyStore( - deviceId: serializer.fromJson(json['deviceId']), - name: serializer.fromJson(json['name']), - identityKey: serializer.fromJson(json['identityKey']), - createdAt: serializer.fromJson(json['createdAt']), - ); - } - @override - Map toJson({ValueSerializer? serializer}) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return { - 'deviceId': serializer.toJson(deviceId), - 'name': serializer.toJson(name), - 'identityKey': serializer.toJson(identityKey), - 'createdAt': serializer.toJson(createdAt), - }; - } - - SignalIdentityKeyStore copyWith({ - int? deviceId, - String? name, - Uint8List? identityKey, - DateTime? createdAt, - }) => SignalIdentityKeyStore( - deviceId: deviceId ?? this.deviceId, - name: name ?? this.name, - identityKey: identityKey ?? this.identityKey, - createdAt: createdAt ?? this.createdAt, - ); - SignalIdentityKeyStore copyWithCompanion( - SignalIdentityKeyStoresCompanion data, - ) { - return SignalIdentityKeyStore( - deviceId: data.deviceId.present ? data.deviceId.value : this.deviceId, - name: data.name.present ? data.name.value : this.name, - identityKey: data.identityKey.present - ? data.identityKey.value - : this.identityKey, - createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, - ); - } - - @override - String toString() { - return (StringBuffer('SignalIdentityKeyStore(') - ..write('deviceId: $deviceId, ') - ..write('name: $name, ') - ..write('identityKey: $identityKey, ') - ..write('createdAt: $createdAt') - ..write(')')) - .toString(); - } - - @override - int get hashCode => Object.hash( - deviceId, - name, - $driftBlobEquality.hash(identityKey), - createdAt, - ); - @override - bool operator ==(Object other) => - identical(this, other) || - (other is SignalIdentityKeyStore && - other.deviceId == this.deviceId && - other.name == this.name && - $driftBlobEquality.equals(other.identityKey, this.identityKey) && - other.createdAt == this.createdAt); -} - -class SignalIdentityKeyStoresCompanion - extends UpdateCompanion { - final Value deviceId; - final Value name; - final Value identityKey; - final Value createdAt; - final Value rowid; - const SignalIdentityKeyStoresCompanion({ - this.deviceId = const Value.absent(), - this.name = const Value.absent(), - this.identityKey = const Value.absent(), - this.createdAt = const Value.absent(), - this.rowid = const Value.absent(), - }); - SignalIdentityKeyStoresCompanion.insert({ - required int deviceId, - required String name, - required Uint8List identityKey, - this.createdAt = const Value.absent(), - this.rowid = const Value.absent(), - }) : deviceId = Value(deviceId), - name = Value(name), - identityKey = Value(identityKey); - static Insertable custom({ - Expression? deviceId, - Expression? name, - Expression? identityKey, - Expression? createdAt, - Expression? rowid, - }) { - return RawValuesInsertable({ - if (deviceId != null) 'device_id': deviceId, - if (name != null) 'name': name, - if (identityKey != null) 'identity_key': identityKey, - if (createdAt != null) 'created_at': createdAt, - if (rowid != null) 'rowid': rowid, - }); - } - - SignalIdentityKeyStoresCompanion copyWith({ - Value? deviceId, - Value? name, - Value? identityKey, - Value? createdAt, - Value? rowid, - }) { - return SignalIdentityKeyStoresCompanion( - deviceId: deviceId ?? this.deviceId, - name: name ?? this.name, - identityKey: identityKey ?? this.identityKey, - createdAt: createdAt ?? this.createdAt, - rowid: rowid ?? this.rowid, - ); - } - - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - if (deviceId.present) { - map['device_id'] = Variable(deviceId.value); - } - if (name.present) { - map['name'] = Variable(name.value); - } - if (identityKey.present) { - map['identity_key'] = Variable(identityKey.value); - } - if (createdAt.present) { - map['created_at'] = Variable(createdAt.value); - } - if (rowid.present) { - map['rowid'] = Variable(rowid.value); - } - return map; - } - - @override - String toString() { - return (StringBuffer('SignalIdentityKeyStoresCompanion(') - ..write('deviceId: $deviceId, ') - ..write('name: $name, ') - ..write('identityKey: $identityKey, ') - ..write('createdAt: $createdAt, ') - ..write('rowid: $rowid') - ..write(')')) - .toString(); - } -} - -class $SignalPreKeyStoresTable extends SignalPreKeyStores - with TableInfo<$SignalPreKeyStoresTable, SignalPreKeyStore> { - @override - final GeneratedDatabase attachedDatabase; - final String? _alias; - $SignalPreKeyStoresTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _preKeyIdMeta = const VerificationMeta( - 'preKeyId', - ); - @override - late final GeneratedColumn preKeyId = GeneratedColumn( - 'pre_key_id', - aliasedName, - false, - type: DriftSqlType.int, - requiredDuringInsert: false, - ); - static const VerificationMeta _preKeyMeta = const VerificationMeta('preKey'); - @override - late final GeneratedColumn preKey = GeneratedColumn( - 'pre_key', - aliasedName, - false, - type: DriftSqlType.blob, - requiredDuringInsert: true, - ); - static const VerificationMeta _createdAtMeta = const VerificationMeta( - 'createdAt', - ); - @override - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', - aliasedName, - false, - type: DriftSqlType.dateTime, - requiredDuringInsert: false, - defaultValue: currentDateAndTime, - ); - @override - List get $columns => [preKeyId, preKey, createdAt]; - @override - String get aliasedName => _alias ?? actualTableName; - @override - String get actualTableName => $name; - static const String $name = 'signal_pre_key_stores'; - @override - VerificationContext validateIntegrity( - Insertable instance, { - bool isInserting = false, - }) { - final context = VerificationContext(); - final data = instance.toColumns(true); - if (data.containsKey('pre_key_id')) { - context.handle( - _preKeyIdMeta, - preKeyId.isAcceptableOrUnknown(data['pre_key_id']!, _preKeyIdMeta), - ); - } - if (data.containsKey('pre_key')) { - context.handle( - _preKeyMeta, - preKey.isAcceptableOrUnknown(data['pre_key']!, _preKeyMeta), - ); - } else if (isInserting) { - context.missing(_preKeyMeta); - } - if (data.containsKey('created_at')) { - context.handle( - _createdAtMeta, - createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), - ); - } - return context; - } - - @override - Set get $primaryKey => {preKeyId}; - @override - SignalPreKeyStore map(Map data, {String? tablePrefix}) { - final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return SignalPreKeyStore( - preKeyId: attachedDatabase.typeMapping.read( - DriftSqlType.int, - data['${effectivePrefix}pre_key_id'], - )!, - preKey: attachedDatabase.typeMapping.read( - DriftSqlType.blob, - data['${effectivePrefix}pre_key'], - )!, - createdAt: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, - data['${effectivePrefix}created_at'], - )!, - ); - } - - @override - $SignalPreKeyStoresTable createAlias(String alias) { - return $SignalPreKeyStoresTable(attachedDatabase, alias); - } -} - -class SignalPreKeyStore extends DataClass - implements Insertable { - final int preKeyId; - final Uint8List preKey; - final DateTime createdAt; - const SignalPreKeyStore({ - required this.preKeyId, - required this.preKey, - required this.createdAt, - }); - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - map['pre_key_id'] = Variable(preKeyId); - map['pre_key'] = Variable(preKey); - map['created_at'] = Variable(createdAt); - return map; - } - - SignalPreKeyStoresCompanion toCompanion(bool nullToAbsent) { - return SignalPreKeyStoresCompanion( - preKeyId: Value(preKeyId), - preKey: Value(preKey), - createdAt: Value(createdAt), - ); - } - - factory SignalPreKeyStore.fromJson( - Map json, { - ValueSerializer? serializer, - }) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return SignalPreKeyStore( - preKeyId: serializer.fromJson(json['preKeyId']), - preKey: serializer.fromJson(json['preKey']), - createdAt: serializer.fromJson(json['createdAt']), - ); - } - @override - Map toJson({ValueSerializer? serializer}) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return { - 'preKeyId': serializer.toJson(preKeyId), - 'preKey': serializer.toJson(preKey), - 'createdAt': serializer.toJson(createdAt), - }; - } - - SignalPreKeyStore copyWith({ - int? preKeyId, - Uint8List? preKey, - DateTime? createdAt, - }) => SignalPreKeyStore( - preKeyId: preKeyId ?? this.preKeyId, - preKey: preKey ?? this.preKey, - createdAt: createdAt ?? this.createdAt, - ); - SignalPreKeyStore copyWithCompanion(SignalPreKeyStoresCompanion data) { - return SignalPreKeyStore( - preKeyId: data.preKeyId.present ? data.preKeyId.value : this.preKeyId, - preKey: data.preKey.present ? data.preKey.value : this.preKey, - createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, - ); - } - - @override - String toString() { - return (StringBuffer('SignalPreKeyStore(') - ..write('preKeyId: $preKeyId, ') - ..write('preKey: $preKey, ') - ..write('createdAt: $createdAt') - ..write(')')) - .toString(); - } - - @override - int get hashCode => - Object.hash(preKeyId, $driftBlobEquality.hash(preKey), createdAt); - @override - bool operator ==(Object other) => - identical(this, other) || - (other is SignalPreKeyStore && - other.preKeyId == this.preKeyId && - $driftBlobEquality.equals(other.preKey, this.preKey) && - other.createdAt == this.createdAt); -} - -class SignalPreKeyStoresCompanion extends UpdateCompanion { - final Value preKeyId; - final Value preKey; - final Value createdAt; - const SignalPreKeyStoresCompanion({ - this.preKeyId = const Value.absent(), - this.preKey = const Value.absent(), - this.createdAt = const Value.absent(), - }); - SignalPreKeyStoresCompanion.insert({ - this.preKeyId = const Value.absent(), - required Uint8List preKey, - this.createdAt = const Value.absent(), - }) : preKey = Value(preKey); - static Insertable custom({ - Expression? preKeyId, - Expression? preKey, - Expression? createdAt, - }) { - return RawValuesInsertable({ - if (preKeyId != null) 'pre_key_id': preKeyId, - if (preKey != null) 'pre_key': preKey, - if (createdAt != null) 'created_at': createdAt, - }); - } - - SignalPreKeyStoresCompanion copyWith({ - Value? preKeyId, - Value? preKey, - Value? createdAt, - }) { - return SignalPreKeyStoresCompanion( - preKeyId: preKeyId ?? this.preKeyId, - preKey: preKey ?? this.preKey, - createdAt: createdAt ?? this.createdAt, - ); - } - - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - if (preKeyId.present) { - map['pre_key_id'] = Variable(preKeyId.value); - } - if (preKey.present) { - map['pre_key'] = Variable(preKey.value); - } - if (createdAt.present) { - map['created_at'] = Variable(createdAt.value); - } - return map; - } - - @override - String toString() { - return (StringBuffer('SignalPreKeyStoresCompanion(') - ..write('preKeyId: $preKeyId, ') - ..write('preKey: $preKey, ') - ..write('createdAt: $createdAt') - ..write(')')) - .toString(); - } -} - -class $SignalSenderKeyStoresTable extends SignalSenderKeyStores - with TableInfo<$SignalSenderKeyStoresTable, SignalSenderKeyStore> { - @override - final GeneratedDatabase attachedDatabase; - final String? _alias; - $SignalSenderKeyStoresTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _senderKeyNameMeta = const VerificationMeta( - 'senderKeyName', - ); - @override - late final GeneratedColumn senderKeyName = GeneratedColumn( - 'sender_key_name', - aliasedName, - false, - type: DriftSqlType.string, - requiredDuringInsert: true, - ); - static const VerificationMeta _senderKeyMeta = const VerificationMeta( - 'senderKey', - ); - @override - late final GeneratedColumn senderKey = GeneratedColumn( - 'sender_key', - aliasedName, - false, - type: DriftSqlType.blob, - requiredDuringInsert: true, - ); - @override - List get $columns => [senderKeyName, senderKey]; - @override - String get aliasedName => _alias ?? actualTableName; - @override - String get actualTableName => $name; - static const String $name = 'signal_sender_key_stores'; - @override - VerificationContext validateIntegrity( - Insertable instance, { - bool isInserting = false, - }) { - final context = VerificationContext(); - final data = instance.toColumns(true); - if (data.containsKey('sender_key_name')) { - context.handle( - _senderKeyNameMeta, - senderKeyName.isAcceptableOrUnknown( - data['sender_key_name']!, - _senderKeyNameMeta, - ), - ); - } else if (isInserting) { - context.missing(_senderKeyNameMeta); - } - if (data.containsKey('sender_key')) { - context.handle( - _senderKeyMeta, - senderKey.isAcceptableOrUnknown(data['sender_key']!, _senderKeyMeta), - ); - } else if (isInserting) { - context.missing(_senderKeyMeta); - } - return context; - } - - @override - Set get $primaryKey => {senderKeyName}; - @override - SignalSenderKeyStore map(Map data, {String? tablePrefix}) { - final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return SignalSenderKeyStore( - senderKeyName: attachedDatabase.typeMapping.read( - DriftSqlType.string, - data['${effectivePrefix}sender_key_name'], - )!, - senderKey: attachedDatabase.typeMapping.read( - DriftSqlType.blob, - data['${effectivePrefix}sender_key'], - )!, - ); - } - - @override - $SignalSenderKeyStoresTable createAlias(String alias) { - return $SignalSenderKeyStoresTable(attachedDatabase, alias); - } -} - -class SignalSenderKeyStore extends DataClass - implements Insertable { - final String senderKeyName; - final Uint8List senderKey; - const SignalSenderKeyStore({ - required this.senderKeyName, - required this.senderKey, - }); - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - map['sender_key_name'] = Variable(senderKeyName); - map['sender_key'] = Variable(senderKey); - return map; - } - - SignalSenderKeyStoresCompanion toCompanion(bool nullToAbsent) { - return SignalSenderKeyStoresCompanion( - senderKeyName: Value(senderKeyName), - senderKey: Value(senderKey), - ); - } - - factory SignalSenderKeyStore.fromJson( - Map json, { - ValueSerializer? serializer, - }) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return SignalSenderKeyStore( - senderKeyName: serializer.fromJson(json['senderKeyName']), - senderKey: serializer.fromJson(json['senderKey']), - ); - } - @override - Map toJson({ValueSerializer? serializer}) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return { - 'senderKeyName': serializer.toJson(senderKeyName), - 'senderKey': serializer.toJson(senderKey), - }; - } - - SignalSenderKeyStore copyWith({ - String? senderKeyName, - Uint8List? senderKey, - }) => SignalSenderKeyStore( - senderKeyName: senderKeyName ?? this.senderKeyName, - senderKey: senderKey ?? this.senderKey, - ); - SignalSenderKeyStore copyWithCompanion(SignalSenderKeyStoresCompanion data) { - return SignalSenderKeyStore( - senderKeyName: data.senderKeyName.present - ? data.senderKeyName.value - : this.senderKeyName, - senderKey: data.senderKey.present ? data.senderKey.value : this.senderKey, - ); - } - - @override - String toString() { - return (StringBuffer('SignalSenderKeyStore(') - ..write('senderKeyName: $senderKeyName, ') - ..write('senderKey: $senderKey') - ..write(')')) - .toString(); - } - - @override - int get hashCode => - Object.hash(senderKeyName, $driftBlobEquality.hash(senderKey)); - @override - bool operator ==(Object other) => - identical(this, other) || - (other is SignalSenderKeyStore && - other.senderKeyName == this.senderKeyName && - $driftBlobEquality.equals(other.senderKey, this.senderKey)); -} - -class SignalSenderKeyStoresCompanion - extends UpdateCompanion { - final Value senderKeyName; - final Value senderKey; - final Value rowid; - const SignalSenderKeyStoresCompanion({ - this.senderKeyName = const Value.absent(), - this.senderKey = const Value.absent(), - this.rowid = const Value.absent(), - }); - SignalSenderKeyStoresCompanion.insert({ - required String senderKeyName, - required Uint8List senderKey, - this.rowid = const Value.absent(), - }) : senderKeyName = Value(senderKeyName), - senderKey = Value(senderKey); - static Insertable custom({ - Expression? senderKeyName, - Expression? senderKey, - Expression? rowid, - }) { - return RawValuesInsertable({ - if (senderKeyName != null) 'sender_key_name': senderKeyName, - if (senderKey != null) 'sender_key': senderKey, - if (rowid != null) 'rowid': rowid, - }); - } - - SignalSenderKeyStoresCompanion copyWith({ - Value? senderKeyName, - Value? senderKey, - Value? rowid, - }) { - return SignalSenderKeyStoresCompanion( - senderKeyName: senderKeyName ?? this.senderKeyName, - senderKey: senderKey ?? this.senderKey, - rowid: rowid ?? this.rowid, - ); - } - - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - if (senderKeyName.present) { - map['sender_key_name'] = Variable(senderKeyName.value); - } - if (senderKey.present) { - map['sender_key'] = Variable(senderKey.value); - } - if (rowid.present) { - map['rowid'] = Variable(rowid.value); - } - return map; - } - - @override - String toString() { - return (StringBuffer('SignalSenderKeyStoresCompanion(') - ..write('senderKeyName: $senderKeyName, ') - ..write('senderKey: $senderKey, ') - ..write('rowid: $rowid') - ..write(')')) - .toString(); - } -} - -class $SignalSessionStoresTable extends SignalSessionStores - with TableInfo<$SignalSessionStoresTable, SignalSessionStore> { - @override - final GeneratedDatabase attachedDatabase; - final String? _alias; - $SignalSessionStoresTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _deviceIdMeta = const VerificationMeta( - 'deviceId', - ); - @override - late final GeneratedColumn deviceId = GeneratedColumn( - 'device_id', - aliasedName, - false, - type: DriftSqlType.int, - requiredDuringInsert: true, - ); - static const VerificationMeta _nameMeta = const VerificationMeta('name'); - @override - late final GeneratedColumn name = GeneratedColumn( - 'name', - aliasedName, - false, - type: DriftSqlType.string, - requiredDuringInsert: true, - ); - static const VerificationMeta _sessionRecordMeta = const VerificationMeta( - 'sessionRecord', - ); - @override - late final GeneratedColumn sessionRecord = - GeneratedColumn( - 'session_record', - aliasedName, - false, - type: DriftSqlType.blob, - requiredDuringInsert: true, - ); - static const VerificationMeta _createdAtMeta = const VerificationMeta( - 'createdAt', - ); - @override - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', - aliasedName, - false, - type: DriftSqlType.dateTime, - requiredDuringInsert: false, - defaultValue: currentDateAndTime, - ); - @override - List get $columns => [ - deviceId, - name, - sessionRecord, - createdAt, - ]; - @override - String get aliasedName => _alias ?? actualTableName; - @override - String get actualTableName => $name; - static const String $name = 'signal_session_stores'; - @override - VerificationContext validateIntegrity( - Insertable instance, { - bool isInserting = false, - }) { - final context = VerificationContext(); - final data = instance.toColumns(true); - if (data.containsKey('device_id')) { - context.handle( - _deviceIdMeta, - deviceId.isAcceptableOrUnknown(data['device_id']!, _deviceIdMeta), - ); - } else if (isInserting) { - context.missing(_deviceIdMeta); - } - if (data.containsKey('name')) { - context.handle( - _nameMeta, - name.isAcceptableOrUnknown(data['name']!, _nameMeta), - ); - } else if (isInserting) { - context.missing(_nameMeta); - } - if (data.containsKey('session_record')) { - context.handle( - _sessionRecordMeta, - sessionRecord.isAcceptableOrUnknown( - data['session_record']!, - _sessionRecordMeta, - ), - ); - } else if (isInserting) { - context.missing(_sessionRecordMeta); - } - if (data.containsKey('created_at')) { - context.handle( - _createdAtMeta, - createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), - ); - } - return context; - } - - @override - Set get $primaryKey => {deviceId, name}; - @override - SignalSessionStore map(Map data, {String? tablePrefix}) { - final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return SignalSessionStore( - deviceId: attachedDatabase.typeMapping.read( - DriftSqlType.int, - data['${effectivePrefix}device_id'], - )!, - name: attachedDatabase.typeMapping.read( - DriftSqlType.string, - data['${effectivePrefix}name'], - )!, - sessionRecord: attachedDatabase.typeMapping.read( - DriftSqlType.blob, - data['${effectivePrefix}session_record'], - )!, - createdAt: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, - data['${effectivePrefix}created_at'], - )!, - ); - } - - @override - $SignalSessionStoresTable createAlias(String alias) { - return $SignalSessionStoresTable(attachedDatabase, alias); - } -} - -class SignalSessionStore extends DataClass - implements Insertable { - final int deviceId; - final String name; - final Uint8List sessionRecord; - final DateTime createdAt; - const SignalSessionStore({ - required this.deviceId, - required this.name, - required this.sessionRecord, - required this.createdAt, - }); - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - map['device_id'] = Variable(deviceId); - map['name'] = Variable(name); - map['session_record'] = Variable(sessionRecord); - map['created_at'] = Variable(createdAt); - return map; - } - - SignalSessionStoresCompanion toCompanion(bool nullToAbsent) { - return SignalSessionStoresCompanion( - deviceId: Value(deviceId), - name: Value(name), - sessionRecord: Value(sessionRecord), - createdAt: Value(createdAt), - ); - } - - factory SignalSessionStore.fromJson( - Map json, { - ValueSerializer? serializer, - }) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return SignalSessionStore( - deviceId: serializer.fromJson(json['deviceId']), - name: serializer.fromJson(json['name']), - sessionRecord: serializer.fromJson(json['sessionRecord']), - createdAt: serializer.fromJson(json['createdAt']), - ); - } - @override - Map toJson({ValueSerializer? serializer}) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return { - 'deviceId': serializer.toJson(deviceId), - 'name': serializer.toJson(name), - 'sessionRecord': serializer.toJson(sessionRecord), - 'createdAt': serializer.toJson(createdAt), - }; - } - - SignalSessionStore copyWith({ - int? deviceId, - String? name, - Uint8List? sessionRecord, - DateTime? createdAt, - }) => SignalSessionStore( - deviceId: deviceId ?? this.deviceId, - name: name ?? this.name, - sessionRecord: sessionRecord ?? this.sessionRecord, - createdAt: createdAt ?? this.createdAt, - ); - SignalSessionStore copyWithCompanion(SignalSessionStoresCompanion data) { - return SignalSessionStore( - deviceId: data.deviceId.present ? data.deviceId.value : this.deviceId, - name: data.name.present ? data.name.value : this.name, - sessionRecord: data.sessionRecord.present - ? data.sessionRecord.value - : this.sessionRecord, - createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, - ); - } - - @override - String toString() { - return (StringBuffer('SignalSessionStore(') - ..write('deviceId: $deviceId, ') - ..write('name: $name, ') - ..write('sessionRecord: $sessionRecord, ') - ..write('createdAt: $createdAt') - ..write(')')) - .toString(); - } - - @override - int get hashCode => Object.hash( - deviceId, - name, - $driftBlobEquality.hash(sessionRecord), - createdAt, - ); - @override - bool operator ==(Object other) => - identical(this, other) || - (other is SignalSessionStore && - other.deviceId == this.deviceId && - other.name == this.name && - $driftBlobEquality.equals(other.sessionRecord, this.sessionRecord) && - other.createdAt == this.createdAt); -} - -class SignalSessionStoresCompanion extends UpdateCompanion { - final Value deviceId; - final Value name; - final Value sessionRecord; - final Value createdAt; - final Value rowid; - const SignalSessionStoresCompanion({ - this.deviceId = const Value.absent(), - this.name = const Value.absent(), - this.sessionRecord = const Value.absent(), - this.createdAt = const Value.absent(), - this.rowid = const Value.absent(), - }); - SignalSessionStoresCompanion.insert({ - required int deviceId, - required String name, - required Uint8List sessionRecord, - this.createdAt = const Value.absent(), - this.rowid = const Value.absent(), - }) : deviceId = Value(deviceId), - name = Value(name), - sessionRecord = Value(sessionRecord); - static Insertable custom({ - Expression? deviceId, - Expression? name, - Expression? sessionRecord, - Expression? createdAt, - Expression? rowid, - }) { - return RawValuesInsertable({ - if (deviceId != null) 'device_id': deviceId, - if (name != null) 'name': name, - if (sessionRecord != null) 'session_record': sessionRecord, - if (createdAt != null) 'created_at': createdAt, - if (rowid != null) 'rowid': rowid, - }); - } - - SignalSessionStoresCompanion copyWith({ - Value? deviceId, - Value? name, - Value? sessionRecord, - Value? createdAt, - Value? rowid, - }) { - return SignalSessionStoresCompanion( - deviceId: deviceId ?? this.deviceId, - name: name ?? this.name, - sessionRecord: sessionRecord ?? this.sessionRecord, - createdAt: createdAt ?? this.createdAt, - rowid: rowid ?? this.rowid, - ); - } - - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - if (deviceId.present) { - map['device_id'] = Variable(deviceId.value); - } - if (name.present) { - map['name'] = Variable(name.value); - } - if (sessionRecord.present) { - map['session_record'] = Variable(sessionRecord.value); - } - if (createdAt.present) { - map['created_at'] = Variable(createdAt.value); - } - if (rowid.present) { - map['rowid'] = Variable(rowid.value); - } - return map; - } - - @override - String toString() { - return (StringBuffer('SignalSessionStoresCompanion(') - ..write('deviceId: $deviceId, ') - ..write('name: $name, ') - ..write('sessionRecord: $sessionRecord, ') - ..write('createdAt: $createdAt, ') - ..write('rowid: $rowid') - ..write(')')) - .toString(); - } -} - -class $SignalSignedPreKeyStoresTable extends SignalSignedPreKeyStores - with TableInfo<$SignalSignedPreKeyStoresTable, SignalSignedPreKeyStore> { - @override - final GeneratedDatabase attachedDatabase; - final String? _alias; - $SignalSignedPreKeyStoresTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _signedPreKeyIdMeta = const VerificationMeta( - 'signedPreKeyId', - ); - @override - late final GeneratedColumn signedPreKeyId = GeneratedColumn( - 'signed_pre_key_id', - aliasedName, - false, - type: DriftSqlType.int, - requiredDuringInsert: false, - ); - static const VerificationMeta _signedPreKeyMeta = const VerificationMeta( - 'signedPreKey', - ); - @override - late final GeneratedColumn signedPreKey = - GeneratedColumn( - 'signed_pre_key', - aliasedName, - false, - type: DriftSqlType.blob, - requiredDuringInsert: true, - ); - static const VerificationMeta _createdAtMeta = const VerificationMeta( - 'createdAt', - ); - @override - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', - aliasedName, - false, - type: DriftSqlType.dateTime, - requiredDuringInsert: false, - defaultValue: currentDateAndTime, - ); - @override - List get $columns => [ - signedPreKeyId, - signedPreKey, - createdAt, - ]; - @override - String get aliasedName => _alias ?? actualTableName; - @override - String get actualTableName => $name; - static const String $name = 'signal_signed_pre_key_stores'; - @override - VerificationContext validateIntegrity( - Insertable instance, { - bool isInserting = false, - }) { - final context = VerificationContext(); - final data = instance.toColumns(true); - if (data.containsKey('signed_pre_key_id')) { - context.handle( - _signedPreKeyIdMeta, - signedPreKeyId.isAcceptableOrUnknown( - data['signed_pre_key_id']!, - _signedPreKeyIdMeta, - ), - ); - } - if (data.containsKey('signed_pre_key')) { - context.handle( - _signedPreKeyMeta, - signedPreKey.isAcceptableOrUnknown( - data['signed_pre_key']!, - _signedPreKeyMeta, - ), - ); - } else if (isInserting) { - context.missing(_signedPreKeyMeta); - } - if (data.containsKey('created_at')) { - context.handle( - _createdAtMeta, - createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), - ); - } - return context; - } - - @override - Set get $primaryKey => {signedPreKeyId}; - @override - SignalSignedPreKeyStore map( - Map data, { - String? tablePrefix, - }) { - final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return SignalSignedPreKeyStore( - signedPreKeyId: attachedDatabase.typeMapping.read( - DriftSqlType.int, - data['${effectivePrefix}signed_pre_key_id'], - )!, - signedPreKey: attachedDatabase.typeMapping.read( - DriftSqlType.blob, - data['${effectivePrefix}signed_pre_key'], - )!, - createdAt: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, - data['${effectivePrefix}created_at'], - )!, - ); - } - - @override - $SignalSignedPreKeyStoresTable createAlias(String alias) { - return $SignalSignedPreKeyStoresTable(attachedDatabase, alias); - } -} - -class SignalSignedPreKeyStore extends DataClass - implements Insertable { - final int signedPreKeyId; - final Uint8List signedPreKey; - final DateTime createdAt; - const SignalSignedPreKeyStore({ - required this.signedPreKeyId, - required this.signedPreKey, - required this.createdAt, - }); - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - map['signed_pre_key_id'] = Variable(signedPreKeyId); - map['signed_pre_key'] = Variable(signedPreKey); - map['created_at'] = Variable(createdAt); - return map; - } - - SignalSignedPreKeyStoresCompanion toCompanion(bool nullToAbsent) { - return SignalSignedPreKeyStoresCompanion( - signedPreKeyId: Value(signedPreKeyId), - signedPreKey: Value(signedPreKey), - createdAt: Value(createdAt), - ); - } - - factory SignalSignedPreKeyStore.fromJson( - Map json, { - ValueSerializer? serializer, - }) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return SignalSignedPreKeyStore( - signedPreKeyId: serializer.fromJson(json['signedPreKeyId']), - signedPreKey: serializer.fromJson(json['signedPreKey']), - createdAt: serializer.fromJson(json['createdAt']), - ); - } - @override - Map toJson({ValueSerializer? serializer}) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return { - 'signedPreKeyId': serializer.toJson(signedPreKeyId), - 'signedPreKey': serializer.toJson(signedPreKey), - 'createdAt': serializer.toJson(createdAt), - }; - } - - SignalSignedPreKeyStore copyWith({ - int? signedPreKeyId, - Uint8List? signedPreKey, - DateTime? createdAt, - }) => SignalSignedPreKeyStore( - signedPreKeyId: signedPreKeyId ?? this.signedPreKeyId, - signedPreKey: signedPreKey ?? this.signedPreKey, - createdAt: createdAt ?? this.createdAt, - ); - SignalSignedPreKeyStore copyWithCompanion( - SignalSignedPreKeyStoresCompanion data, - ) { - return SignalSignedPreKeyStore( - signedPreKeyId: data.signedPreKeyId.present - ? data.signedPreKeyId.value - : this.signedPreKeyId, - signedPreKey: data.signedPreKey.present - ? data.signedPreKey.value - : this.signedPreKey, - createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, - ); - } - - @override - String toString() { - return (StringBuffer('SignalSignedPreKeyStore(') - ..write('signedPreKeyId: $signedPreKeyId, ') - ..write('signedPreKey: $signedPreKey, ') - ..write('createdAt: $createdAt') - ..write(')')) - .toString(); - } - - @override - int get hashCode => Object.hash( - signedPreKeyId, - $driftBlobEquality.hash(signedPreKey), - createdAt, - ); - @override - bool operator ==(Object other) => - identical(this, other) || - (other is SignalSignedPreKeyStore && - other.signedPreKeyId == this.signedPreKeyId && - $driftBlobEquality.equals(other.signedPreKey, this.signedPreKey) && - other.createdAt == this.createdAt); -} - -class SignalSignedPreKeyStoresCompanion - extends UpdateCompanion { - final Value signedPreKeyId; - final Value signedPreKey; - final Value createdAt; - const SignalSignedPreKeyStoresCompanion({ - this.signedPreKeyId = const Value.absent(), - this.signedPreKey = const Value.absent(), - this.createdAt = const Value.absent(), - }); - SignalSignedPreKeyStoresCompanion.insert({ - this.signedPreKeyId = const Value.absent(), - required Uint8List signedPreKey, - this.createdAt = const Value.absent(), - }) : signedPreKey = Value(signedPreKey); - static Insertable custom({ - Expression? signedPreKeyId, - Expression? signedPreKey, - Expression? createdAt, - }) { - return RawValuesInsertable({ - if (signedPreKeyId != null) 'signed_pre_key_id': signedPreKeyId, - if (signedPreKey != null) 'signed_pre_key': signedPreKey, - if (createdAt != null) 'created_at': createdAt, - }); - } - - SignalSignedPreKeyStoresCompanion copyWith({ - Value? signedPreKeyId, - Value? signedPreKey, - Value? createdAt, - }) { - return SignalSignedPreKeyStoresCompanion( - signedPreKeyId: signedPreKeyId ?? this.signedPreKeyId, - signedPreKey: signedPreKey ?? this.signedPreKey, - createdAt: createdAt ?? this.createdAt, - ); - } - - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - if (signedPreKeyId.present) { - map['signed_pre_key_id'] = Variable(signedPreKeyId.value); - } - if (signedPreKey.present) { - map['signed_pre_key'] = Variable(signedPreKey.value); - } - if (createdAt.present) { - map['created_at'] = Variable(createdAt.value); - } - return map; - } - - @override - String toString() { - return (StringBuffer('SignalSignedPreKeyStoresCompanion(') - ..write('signedPreKeyId: $signedPreKeyId, ') - ..write('signedPreKey: $signedPreKey, ') - ..write('createdAt: $createdAt') - ..write(')')) - .toString(); - } -} - class $MessageActionsTable extends MessageActions with TableInfo<$MessageActionsTable, MessageAction> { @override @@ -13810,16 +12388,6 @@ abstract class _$TwonlyDB extends GeneratedDatabase { late final $ReceivedReceiptsTable receivedReceipts = $ReceivedReceiptsTable( this, ); - late final $SignalIdentityKeyStoresTable signalIdentityKeyStores = - $SignalIdentityKeyStoresTable(this); - late final $SignalPreKeyStoresTable signalPreKeyStores = - $SignalPreKeyStoresTable(this); - late final $SignalSenderKeyStoresTable signalSenderKeyStores = - $SignalSenderKeyStoresTable(this); - late final $SignalSessionStoresTable signalSessionStores = - $SignalSessionStoresTable(this); - late final $SignalSignedPreKeyStoresTable signalSignedPreKeyStores = - $SignalSignedPreKeyStoresTable(this); late final $MessageActionsTable messageActions = $MessageActionsTable(this); late final $GroupHistoriesTable groupHistories = $GroupHistoriesTable(this); late final $KeyVerificationsTable keyVerifications = $KeyVerificationsTable( @@ -13879,11 +12447,6 @@ abstract class _$TwonlyDB extends GeneratedDatabase { groupMembers, receipts, receivedReceipts, - signalIdentityKeyStores, - signalPreKeyStores, - signalSenderKeyStores, - signalSessionStores, - signalSignedPreKeyStores, messageActions, groupHistories, keyVerifications, @@ -20811,915 +19374,6 @@ typedef $$ReceivedReceiptsTableProcessedTableManager = ReceivedReceipt, PrefetchHooks Function() >; -typedef $$SignalIdentityKeyStoresTableCreateCompanionBuilder = - SignalIdentityKeyStoresCompanion Function({ - required int deviceId, - required String name, - required Uint8List identityKey, - Value createdAt, - Value rowid, - }); -typedef $$SignalIdentityKeyStoresTableUpdateCompanionBuilder = - SignalIdentityKeyStoresCompanion Function({ - Value deviceId, - Value name, - Value identityKey, - Value createdAt, - Value rowid, - }); - -class $$SignalIdentityKeyStoresTableFilterComposer - extends Composer<_$TwonlyDB, $SignalIdentityKeyStoresTable> { - $$SignalIdentityKeyStoresTableFilterComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnFilters get deviceId => $composableBuilder( - column: $table.deviceId, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get name => $composableBuilder( - column: $table.name, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get identityKey => $composableBuilder( - column: $table.identityKey, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get createdAt => $composableBuilder( - column: $table.createdAt, - builder: (column) => ColumnFilters(column), - ); -} - -class $$SignalIdentityKeyStoresTableOrderingComposer - extends Composer<_$TwonlyDB, $SignalIdentityKeyStoresTable> { - $$SignalIdentityKeyStoresTableOrderingComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnOrderings get deviceId => $composableBuilder( - column: $table.deviceId, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get name => $composableBuilder( - column: $table.name, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get identityKey => $composableBuilder( - column: $table.identityKey, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get createdAt => $composableBuilder( - column: $table.createdAt, - builder: (column) => ColumnOrderings(column), - ); -} - -class $$SignalIdentityKeyStoresTableAnnotationComposer - extends Composer<_$TwonlyDB, $SignalIdentityKeyStoresTable> { - $$SignalIdentityKeyStoresTableAnnotationComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - GeneratedColumn get deviceId => - $composableBuilder(column: $table.deviceId, builder: (column) => column); - - GeneratedColumn get name => - $composableBuilder(column: $table.name, builder: (column) => column); - - GeneratedColumn get identityKey => $composableBuilder( - column: $table.identityKey, - builder: (column) => column, - ); - - GeneratedColumn get createdAt => - $composableBuilder(column: $table.createdAt, builder: (column) => column); -} - -class $$SignalIdentityKeyStoresTableTableManager - extends - RootTableManager< - _$TwonlyDB, - $SignalIdentityKeyStoresTable, - SignalIdentityKeyStore, - $$SignalIdentityKeyStoresTableFilterComposer, - $$SignalIdentityKeyStoresTableOrderingComposer, - $$SignalIdentityKeyStoresTableAnnotationComposer, - $$SignalIdentityKeyStoresTableCreateCompanionBuilder, - $$SignalIdentityKeyStoresTableUpdateCompanionBuilder, - ( - SignalIdentityKeyStore, - BaseReferences< - _$TwonlyDB, - $SignalIdentityKeyStoresTable, - SignalIdentityKeyStore - >, - ), - SignalIdentityKeyStore, - PrefetchHooks Function() - > { - $$SignalIdentityKeyStoresTableTableManager( - _$TwonlyDB db, - $SignalIdentityKeyStoresTable table, - ) : super( - TableManagerState( - db: db, - table: table, - createFilteringComposer: () => - $$SignalIdentityKeyStoresTableFilterComposer( - $db: db, - $table: table, - ), - createOrderingComposer: () => - $$SignalIdentityKeyStoresTableOrderingComposer( - $db: db, - $table: table, - ), - createComputedFieldComposer: () => - $$SignalIdentityKeyStoresTableAnnotationComposer( - $db: db, - $table: table, - ), - updateCompanionCallback: - ({ - Value deviceId = const Value.absent(), - Value name = const Value.absent(), - Value identityKey = const Value.absent(), - Value createdAt = const Value.absent(), - Value rowid = const Value.absent(), - }) => SignalIdentityKeyStoresCompanion( - deviceId: deviceId, - name: name, - identityKey: identityKey, - createdAt: createdAt, - rowid: rowid, - ), - createCompanionCallback: - ({ - required int deviceId, - required String name, - required Uint8List identityKey, - Value createdAt = const Value.absent(), - Value rowid = const Value.absent(), - }) => SignalIdentityKeyStoresCompanion.insert( - deviceId: deviceId, - name: name, - identityKey: identityKey, - createdAt: createdAt, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), - prefetchHooksCallback: null, - ), - ); -} - -typedef $$SignalIdentityKeyStoresTableProcessedTableManager = - ProcessedTableManager< - _$TwonlyDB, - $SignalIdentityKeyStoresTable, - SignalIdentityKeyStore, - $$SignalIdentityKeyStoresTableFilterComposer, - $$SignalIdentityKeyStoresTableOrderingComposer, - $$SignalIdentityKeyStoresTableAnnotationComposer, - $$SignalIdentityKeyStoresTableCreateCompanionBuilder, - $$SignalIdentityKeyStoresTableUpdateCompanionBuilder, - ( - SignalIdentityKeyStore, - BaseReferences< - _$TwonlyDB, - $SignalIdentityKeyStoresTable, - SignalIdentityKeyStore - >, - ), - SignalIdentityKeyStore, - PrefetchHooks Function() - >; -typedef $$SignalPreKeyStoresTableCreateCompanionBuilder = - SignalPreKeyStoresCompanion Function({ - Value preKeyId, - required Uint8List preKey, - Value createdAt, - }); -typedef $$SignalPreKeyStoresTableUpdateCompanionBuilder = - SignalPreKeyStoresCompanion Function({ - Value preKeyId, - Value preKey, - Value createdAt, - }); - -class $$SignalPreKeyStoresTableFilterComposer - extends Composer<_$TwonlyDB, $SignalPreKeyStoresTable> { - $$SignalPreKeyStoresTableFilterComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnFilters get preKeyId => $composableBuilder( - column: $table.preKeyId, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get preKey => $composableBuilder( - column: $table.preKey, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get createdAt => $composableBuilder( - column: $table.createdAt, - builder: (column) => ColumnFilters(column), - ); -} - -class $$SignalPreKeyStoresTableOrderingComposer - extends Composer<_$TwonlyDB, $SignalPreKeyStoresTable> { - $$SignalPreKeyStoresTableOrderingComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnOrderings get preKeyId => $composableBuilder( - column: $table.preKeyId, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get preKey => $composableBuilder( - column: $table.preKey, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get createdAt => $composableBuilder( - column: $table.createdAt, - builder: (column) => ColumnOrderings(column), - ); -} - -class $$SignalPreKeyStoresTableAnnotationComposer - extends Composer<_$TwonlyDB, $SignalPreKeyStoresTable> { - $$SignalPreKeyStoresTableAnnotationComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - GeneratedColumn get preKeyId => - $composableBuilder(column: $table.preKeyId, builder: (column) => column); - - GeneratedColumn get preKey => - $composableBuilder(column: $table.preKey, builder: (column) => column); - - GeneratedColumn get createdAt => - $composableBuilder(column: $table.createdAt, builder: (column) => column); -} - -class $$SignalPreKeyStoresTableTableManager - extends - RootTableManager< - _$TwonlyDB, - $SignalPreKeyStoresTable, - SignalPreKeyStore, - $$SignalPreKeyStoresTableFilterComposer, - $$SignalPreKeyStoresTableOrderingComposer, - $$SignalPreKeyStoresTableAnnotationComposer, - $$SignalPreKeyStoresTableCreateCompanionBuilder, - $$SignalPreKeyStoresTableUpdateCompanionBuilder, - ( - SignalPreKeyStore, - BaseReferences< - _$TwonlyDB, - $SignalPreKeyStoresTable, - SignalPreKeyStore - >, - ), - SignalPreKeyStore, - PrefetchHooks Function() - > { - $$SignalPreKeyStoresTableTableManager( - _$TwonlyDB db, - $SignalPreKeyStoresTable table, - ) : super( - TableManagerState( - db: db, - table: table, - createFilteringComposer: () => - $$SignalPreKeyStoresTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $$SignalPreKeyStoresTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $$SignalPreKeyStoresTableAnnotationComposer( - $db: db, - $table: table, - ), - updateCompanionCallback: - ({ - Value preKeyId = const Value.absent(), - Value preKey = const Value.absent(), - Value createdAt = const Value.absent(), - }) => SignalPreKeyStoresCompanion( - preKeyId: preKeyId, - preKey: preKey, - createdAt: createdAt, - ), - createCompanionCallback: - ({ - Value preKeyId = const Value.absent(), - required Uint8List preKey, - Value createdAt = const Value.absent(), - }) => SignalPreKeyStoresCompanion.insert( - preKeyId: preKeyId, - preKey: preKey, - createdAt: createdAt, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), - prefetchHooksCallback: null, - ), - ); -} - -typedef $$SignalPreKeyStoresTableProcessedTableManager = - ProcessedTableManager< - _$TwonlyDB, - $SignalPreKeyStoresTable, - SignalPreKeyStore, - $$SignalPreKeyStoresTableFilterComposer, - $$SignalPreKeyStoresTableOrderingComposer, - $$SignalPreKeyStoresTableAnnotationComposer, - $$SignalPreKeyStoresTableCreateCompanionBuilder, - $$SignalPreKeyStoresTableUpdateCompanionBuilder, - ( - SignalPreKeyStore, - BaseReferences<_$TwonlyDB, $SignalPreKeyStoresTable, SignalPreKeyStore>, - ), - SignalPreKeyStore, - PrefetchHooks Function() - >; -typedef $$SignalSenderKeyStoresTableCreateCompanionBuilder = - SignalSenderKeyStoresCompanion Function({ - required String senderKeyName, - required Uint8List senderKey, - Value rowid, - }); -typedef $$SignalSenderKeyStoresTableUpdateCompanionBuilder = - SignalSenderKeyStoresCompanion Function({ - Value senderKeyName, - Value senderKey, - Value rowid, - }); - -class $$SignalSenderKeyStoresTableFilterComposer - extends Composer<_$TwonlyDB, $SignalSenderKeyStoresTable> { - $$SignalSenderKeyStoresTableFilterComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnFilters get senderKeyName => $composableBuilder( - column: $table.senderKeyName, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get senderKey => $composableBuilder( - column: $table.senderKey, - builder: (column) => ColumnFilters(column), - ); -} - -class $$SignalSenderKeyStoresTableOrderingComposer - extends Composer<_$TwonlyDB, $SignalSenderKeyStoresTable> { - $$SignalSenderKeyStoresTableOrderingComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnOrderings get senderKeyName => $composableBuilder( - column: $table.senderKeyName, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get senderKey => $composableBuilder( - column: $table.senderKey, - builder: (column) => ColumnOrderings(column), - ); -} - -class $$SignalSenderKeyStoresTableAnnotationComposer - extends Composer<_$TwonlyDB, $SignalSenderKeyStoresTable> { - $$SignalSenderKeyStoresTableAnnotationComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - GeneratedColumn get senderKeyName => $composableBuilder( - column: $table.senderKeyName, - builder: (column) => column, - ); - - GeneratedColumn get senderKey => - $composableBuilder(column: $table.senderKey, builder: (column) => column); -} - -class $$SignalSenderKeyStoresTableTableManager - extends - RootTableManager< - _$TwonlyDB, - $SignalSenderKeyStoresTable, - SignalSenderKeyStore, - $$SignalSenderKeyStoresTableFilterComposer, - $$SignalSenderKeyStoresTableOrderingComposer, - $$SignalSenderKeyStoresTableAnnotationComposer, - $$SignalSenderKeyStoresTableCreateCompanionBuilder, - $$SignalSenderKeyStoresTableUpdateCompanionBuilder, - ( - SignalSenderKeyStore, - BaseReferences< - _$TwonlyDB, - $SignalSenderKeyStoresTable, - SignalSenderKeyStore - >, - ), - SignalSenderKeyStore, - PrefetchHooks Function() - > { - $$SignalSenderKeyStoresTableTableManager( - _$TwonlyDB db, - $SignalSenderKeyStoresTable table, - ) : super( - TableManagerState( - db: db, - table: table, - createFilteringComposer: () => - $$SignalSenderKeyStoresTableFilterComposer( - $db: db, - $table: table, - ), - createOrderingComposer: () => - $$SignalSenderKeyStoresTableOrderingComposer( - $db: db, - $table: table, - ), - createComputedFieldComposer: () => - $$SignalSenderKeyStoresTableAnnotationComposer( - $db: db, - $table: table, - ), - updateCompanionCallback: - ({ - Value senderKeyName = const Value.absent(), - Value senderKey = const Value.absent(), - Value rowid = const Value.absent(), - }) => SignalSenderKeyStoresCompanion( - senderKeyName: senderKeyName, - senderKey: senderKey, - rowid: rowid, - ), - createCompanionCallback: - ({ - required String senderKeyName, - required Uint8List senderKey, - Value rowid = const Value.absent(), - }) => SignalSenderKeyStoresCompanion.insert( - senderKeyName: senderKeyName, - senderKey: senderKey, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), - prefetchHooksCallback: null, - ), - ); -} - -typedef $$SignalSenderKeyStoresTableProcessedTableManager = - ProcessedTableManager< - _$TwonlyDB, - $SignalSenderKeyStoresTable, - SignalSenderKeyStore, - $$SignalSenderKeyStoresTableFilterComposer, - $$SignalSenderKeyStoresTableOrderingComposer, - $$SignalSenderKeyStoresTableAnnotationComposer, - $$SignalSenderKeyStoresTableCreateCompanionBuilder, - $$SignalSenderKeyStoresTableUpdateCompanionBuilder, - ( - SignalSenderKeyStore, - BaseReferences< - _$TwonlyDB, - $SignalSenderKeyStoresTable, - SignalSenderKeyStore - >, - ), - SignalSenderKeyStore, - PrefetchHooks Function() - >; -typedef $$SignalSessionStoresTableCreateCompanionBuilder = - SignalSessionStoresCompanion Function({ - required int deviceId, - required String name, - required Uint8List sessionRecord, - Value createdAt, - Value rowid, - }); -typedef $$SignalSessionStoresTableUpdateCompanionBuilder = - SignalSessionStoresCompanion Function({ - Value deviceId, - Value name, - Value sessionRecord, - Value createdAt, - Value rowid, - }); - -class $$SignalSessionStoresTableFilterComposer - extends Composer<_$TwonlyDB, $SignalSessionStoresTable> { - $$SignalSessionStoresTableFilterComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnFilters get deviceId => $composableBuilder( - column: $table.deviceId, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get name => $composableBuilder( - column: $table.name, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get sessionRecord => $composableBuilder( - column: $table.sessionRecord, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get createdAt => $composableBuilder( - column: $table.createdAt, - builder: (column) => ColumnFilters(column), - ); -} - -class $$SignalSessionStoresTableOrderingComposer - extends Composer<_$TwonlyDB, $SignalSessionStoresTable> { - $$SignalSessionStoresTableOrderingComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnOrderings get deviceId => $composableBuilder( - column: $table.deviceId, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get name => $composableBuilder( - column: $table.name, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get sessionRecord => $composableBuilder( - column: $table.sessionRecord, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get createdAt => $composableBuilder( - column: $table.createdAt, - builder: (column) => ColumnOrderings(column), - ); -} - -class $$SignalSessionStoresTableAnnotationComposer - extends Composer<_$TwonlyDB, $SignalSessionStoresTable> { - $$SignalSessionStoresTableAnnotationComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - GeneratedColumn get deviceId => - $composableBuilder(column: $table.deviceId, builder: (column) => column); - - GeneratedColumn get name => - $composableBuilder(column: $table.name, builder: (column) => column); - - GeneratedColumn get sessionRecord => $composableBuilder( - column: $table.sessionRecord, - builder: (column) => column, - ); - - GeneratedColumn get createdAt => - $composableBuilder(column: $table.createdAt, builder: (column) => column); -} - -class $$SignalSessionStoresTableTableManager - extends - RootTableManager< - _$TwonlyDB, - $SignalSessionStoresTable, - SignalSessionStore, - $$SignalSessionStoresTableFilterComposer, - $$SignalSessionStoresTableOrderingComposer, - $$SignalSessionStoresTableAnnotationComposer, - $$SignalSessionStoresTableCreateCompanionBuilder, - $$SignalSessionStoresTableUpdateCompanionBuilder, - ( - SignalSessionStore, - BaseReferences< - _$TwonlyDB, - $SignalSessionStoresTable, - SignalSessionStore - >, - ), - SignalSessionStore, - PrefetchHooks Function() - > { - $$SignalSessionStoresTableTableManager( - _$TwonlyDB db, - $SignalSessionStoresTable table, - ) : super( - TableManagerState( - db: db, - table: table, - createFilteringComposer: () => - $$SignalSessionStoresTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $$SignalSessionStoresTableOrderingComposer( - $db: db, - $table: table, - ), - createComputedFieldComposer: () => - $$SignalSessionStoresTableAnnotationComposer( - $db: db, - $table: table, - ), - updateCompanionCallback: - ({ - Value deviceId = const Value.absent(), - Value name = const Value.absent(), - Value sessionRecord = const Value.absent(), - Value createdAt = const Value.absent(), - Value rowid = const Value.absent(), - }) => SignalSessionStoresCompanion( - deviceId: deviceId, - name: name, - sessionRecord: sessionRecord, - createdAt: createdAt, - rowid: rowid, - ), - createCompanionCallback: - ({ - required int deviceId, - required String name, - required Uint8List sessionRecord, - Value createdAt = const Value.absent(), - Value rowid = const Value.absent(), - }) => SignalSessionStoresCompanion.insert( - deviceId: deviceId, - name: name, - sessionRecord: sessionRecord, - createdAt: createdAt, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), - prefetchHooksCallback: null, - ), - ); -} - -typedef $$SignalSessionStoresTableProcessedTableManager = - ProcessedTableManager< - _$TwonlyDB, - $SignalSessionStoresTable, - SignalSessionStore, - $$SignalSessionStoresTableFilterComposer, - $$SignalSessionStoresTableOrderingComposer, - $$SignalSessionStoresTableAnnotationComposer, - $$SignalSessionStoresTableCreateCompanionBuilder, - $$SignalSessionStoresTableUpdateCompanionBuilder, - ( - SignalSessionStore, - BaseReferences< - _$TwonlyDB, - $SignalSessionStoresTable, - SignalSessionStore - >, - ), - SignalSessionStore, - PrefetchHooks Function() - >; -typedef $$SignalSignedPreKeyStoresTableCreateCompanionBuilder = - SignalSignedPreKeyStoresCompanion Function({ - Value signedPreKeyId, - required Uint8List signedPreKey, - Value createdAt, - }); -typedef $$SignalSignedPreKeyStoresTableUpdateCompanionBuilder = - SignalSignedPreKeyStoresCompanion Function({ - Value signedPreKeyId, - Value signedPreKey, - Value createdAt, - }); - -class $$SignalSignedPreKeyStoresTableFilterComposer - extends Composer<_$TwonlyDB, $SignalSignedPreKeyStoresTable> { - $$SignalSignedPreKeyStoresTableFilterComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnFilters get signedPreKeyId => $composableBuilder( - column: $table.signedPreKeyId, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get signedPreKey => $composableBuilder( - column: $table.signedPreKey, - builder: (column) => ColumnFilters(column), - ); - - ColumnFilters get createdAt => $composableBuilder( - column: $table.createdAt, - builder: (column) => ColumnFilters(column), - ); -} - -class $$SignalSignedPreKeyStoresTableOrderingComposer - extends Composer<_$TwonlyDB, $SignalSignedPreKeyStoresTable> { - $$SignalSignedPreKeyStoresTableOrderingComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnOrderings get signedPreKeyId => $composableBuilder( - column: $table.signedPreKeyId, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get signedPreKey => $composableBuilder( - column: $table.signedPreKey, - builder: (column) => ColumnOrderings(column), - ); - - ColumnOrderings get createdAt => $composableBuilder( - column: $table.createdAt, - builder: (column) => ColumnOrderings(column), - ); -} - -class $$SignalSignedPreKeyStoresTableAnnotationComposer - extends Composer<_$TwonlyDB, $SignalSignedPreKeyStoresTable> { - $$SignalSignedPreKeyStoresTableAnnotationComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - GeneratedColumn get signedPreKeyId => $composableBuilder( - column: $table.signedPreKeyId, - builder: (column) => column, - ); - - GeneratedColumn get signedPreKey => $composableBuilder( - column: $table.signedPreKey, - builder: (column) => column, - ); - - GeneratedColumn get createdAt => - $composableBuilder(column: $table.createdAt, builder: (column) => column); -} - -class $$SignalSignedPreKeyStoresTableTableManager - extends - RootTableManager< - _$TwonlyDB, - $SignalSignedPreKeyStoresTable, - SignalSignedPreKeyStore, - $$SignalSignedPreKeyStoresTableFilterComposer, - $$SignalSignedPreKeyStoresTableOrderingComposer, - $$SignalSignedPreKeyStoresTableAnnotationComposer, - $$SignalSignedPreKeyStoresTableCreateCompanionBuilder, - $$SignalSignedPreKeyStoresTableUpdateCompanionBuilder, - ( - SignalSignedPreKeyStore, - BaseReferences< - _$TwonlyDB, - $SignalSignedPreKeyStoresTable, - SignalSignedPreKeyStore - >, - ), - SignalSignedPreKeyStore, - PrefetchHooks Function() - > { - $$SignalSignedPreKeyStoresTableTableManager( - _$TwonlyDB db, - $SignalSignedPreKeyStoresTable table, - ) : super( - TableManagerState( - db: db, - table: table, - createFilteringComposer: () => - $$SignalSignedPreKeyStoresTableFilterComposer( - $db: db, - $table: table, - ), - createOrderingComposer: () => - $$SignalSignedPreKeyStoresTableOrderingComposer( - $db: db, - $table: table, - ), - createComputedFieldComposer: () => - $$SignalSignedPreKeyStoresTableAnnotationComposer( - $db: db, - $table: table, - ), - updateCompanionCallback: - ({ - Value signedPreKeyId = const Value.absent(), - Value signedPreKey = const Value.absent(), - Value createdAt = const Value.absent(), - }) => SignalSignedPreKeyStoresCompanion( - signedPreKeyId: signedPreKeyId, - signedPreKey: signedPreKey, - createdAt: createdAt, - ), - createCompanionCallback: - ({ - Value signedPreKeyId = const Value.absent(), - required Uint8List signedPreKey, - Value createdAt = const Value.absent(), - }) => SignalSignedPreKeyStoresCompanion.insert( - signedPreKeyId: signedPreKeyId, - signedPreKey: signedPreKey, - createdAt: createdAt, - ), - withReferenceMapper: (p0) => p0 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) - .toList(), - prefetchHooksCallback: null, - ), - ); -} - -typedef $$SignalSignedPreKeyStoresTableProcessedTableManager = - ProcessedTableManager< - _$TwonlyDB, - $SignalSignedPreKeyStoresTable, - SignalSignedPreKeyStore, - $$SignalSignedPreKeyStoresTableFilterComposer, - $$SignalSignedPreKeyStoresTableOrderingComposer, - $$SignalSignedPreKeyStoresTableAnnotationComposer, - $$SignalSignedPreKeyStoresTableCreateCompanionBuilder, - $$SignalSignedPreKeyStoresTableUpdateCompanionBuilder, - ( - SignalSignedPreKeyStore, - BaseReferences< - _$TwonlyDB, - $SignalSignedPreKeyStoresTable, - SignalSignedPreKeyStore - >, - ), - SignalSignedPreKeyStore, - PrefetchHooks Function() - >; typedef $$MessageActionsTableCreateCompanionBuilder = MessageActionsCompanion Function({ required String messageId, @@ -26284,22 +23938,6 @@ class $TwonlyDBManager { $$ReceiptsTableTableManager(_db, _db.receipts); $$ReceivedReceiptsTableTableManager get receivedReceipts => $$ReceivedReceiptsTableTableManager(_db, _db.receivedReceipts); - $$SignalIdentityKeyStoresTableTableManager get signalIdentityKeyStores => - $$SignalIdentityKeyStoresTableTableManager( - _db, - _db.signalIdentityKeyStores, - ); - $$SignalPreKeyStoresTableTableManager get signalPreKeyStores => - $$SignalPreKeyStoresTableTableManager(_db, _db.signalPreKeyStores); - $$SignalSenderKeyStoresTableTableManager get signalSenderKeyStores => - $$SignalSenderKeyStoresTableTableManager(_db, _db.signalSenderKeyStores); - $$SignalSessionStoresTableTableManager get signalSessionStores => - $$SignalSessionStoresTableTableManager(_db, _db.signalSessionStores); - $$SignalSignedPreKeyStoresTableTableManager get signalSignedPreKeyStores => - $$SignalSignedPreKeyStoresTableTableManager( - _db, - _db.signalSignedPreKeyStores, - ); $$MessageActionsTableTableManager get messageActions => $$MessageActionsTableTableManager(_db, _db.messageActions); $$GroupHistoriesTableTableManager get groupHistories => diff --git a/lib/src/model/json/userdata.model.g.dart b/lib/src/model/json/userdata.model.g.dart index 6cd7e9e8..4dcf11af 100644 --- a/lib/src/model/json/userdata.model.g.dart +++ b/lib/src/model/json/userdata.model.g.dart @@ -111,15 +111,6 @@ UserData _$UserDataFromJson(Map json) => json['passwordLessRecovery'] as Map, ) ..fcmToken = json['fcmToken'] as String? - ..askedForUserStudyPermission = - json['askedForUserStudyPermission'] as bool? ?? false - ..userStudyParticipantsToken = - json['userStudyParticipantsToken'] as String? - ..userStudyCountNewFriendsViaSuggestion = - (json['userStudyCountNewFriendsViaSuggestion'] as num?)?.toInt() ?? 0 - ..lastUserStudyDataUpload = json['lastUserStudyDataUpload'] == null - ? null - : DateTime.parse(json['lastUserStudyDataUpload'] as String) ..skipSetupPages = json['skipSetupPages'] as bool? ?? false ..hasZoomed = json['hasZoomed'] as bool? ?? false; @@ -184,12 +175,6 @@ Map _$UserDataToJson(UserData instance) => { 'isBackupEnabled': instance.isBackupEnabled, 'passwordLessRecovery': instance.passwordLessRecovery, 'fcmToken': instance.fcmToken, - 'askedForUserStudyPermission': instance.askedForUserStudyPermission, - 'userStudyParticipantsToken': instance.userStudyParticipantsToken, - 'userStudyCountNewFriendsViaSuggestion': - instance.userStudyCountNewFriendsViaSuggestion, - 'lastUserStudyDataUpload': instance.lastUserStudyDataUpload - ?.toIso8601String(), 'currentSetupPage': instance.currentSetupPage, 'skipSetupPages': instance.skipSetupPages, 'hasZoomed': instance.hasZoomed, diff --git a/lib/src/services/migrations.service.dart b/lib/src/services/migrations.service.dart index f9cde856..d8530cf3 100644 --- a/lib/src/services/migrations.service.dart +++ b/lib/src/services/migrations.service.dart @@ -7,6 +7,7 @@ import 'package:twonly/core/bridge/wrapper/key_manager.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/locator.dart'; import 'package:twonly/src/constants/secure_storage.keys.dart'; +import 'package:twonly/src/database/signal.db.dart'; import 'package:twonly/src/database/signal/signal_signed_pre_key_store.dart' show getSignalSignedPreKeyStoreOld; import 'package:twonly/src/database/tables/contacts.table.dart'; @@ -129,8 +130,8 @@ Future runMigrations() async { signedPreKeyId: Value(entry.key), signedPreKey: Value(entry.value), ); - await twonlyDB - .into(twonlyDB.signalSignedPreKeyStores) + await signalDB + .into(signalDB.signalSignedPreKeyStores) .insert( companion, mode: InsertMode.insertOrReplace, diff --git a/lib/src/visual/components/avatar_icon.comp.dart b/lib/src/visual/components/avatar_icon.comp.dart index a11f675b..9fd79f1e 100644 --- a/lib/src/visual/components/avatar_icon.comp.dart +++ b/lib/src/visual/components/avatar_icon.comp.dart @@ -13,6 +13,7 @@ class AvatarIcon extends StatefulWidget { const AvatarIcon({ super.key, this.group, + this.contacts, this.contactId, this.myAvatar = false, this.fontSize = 20, @@ -20,6 +21,7 @@ class AvatarIcon extends StatefulWidget { this.color, }); final Group? group; + final List? contacts; final int? contactId; final bool myAvatar; final double? fontSize; @@ -45,6 +47,21 @@ class _AvatarIconState extends State { initAsync(); } + @override + void didUpdateWidget(AvatarIcon oldWidget) { + super.didUpdateWidget(oldWidget); + if (widget.contacts != null && widget.contacts != oldWidget.contacts) { + _setAvatarContacts(widget.contacts!); + } + } + + void _setAvatarContacts(List contacts) { + _avatarContacts = contacts + .where((contact) => contact.avatarSvgCompressed != null) + .toList(); + if (mounted) setState(() {}); + } + @override void dispose() { groupStream?.cancel(); @@ -84,7 +101,9 @@ class _AvatarIconState extends State { } Future initAsync() async { - if (widget.group != null) { + if (widget.contacts != null) { + _setAvatarContacts(widget.contacts!); + } else if (widget.group != null) { groupStream = twonlyDB.groupsDao .watchGroupContact(widget.group!.groupId) .listen((contacts) { diff --git a/lib/src/visual/components/contact_labels.comp.dart b/lib/src/visual/components/contact_labels.comp.dart index 6f35707e..60d35db2 100644 --- a/lib/src/visual/components/contact_labels.comp.dart +++ b/lib/src/visual/components/contact_labels.comp.dart @@ -11,6 +11,7 @@ class ContactLabels extends StatefulWidget { this.padding = const EdgeInsets.symmetric(horizontal: 6, vertical: 2), this.emptyText, this.showEmptyText = false, + this.labels, super.key, }); @@ -19,6 +20,7 @@ class ContactLabels extends StatefulWidget { final EdgeInsetsGeometry padding; final String? emptyText; final bool showEmptyText; + final List