mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-09-01 08:04:07 +00:00
remove unused proto from dart
This commit is contained in:
parent
3a27f3b24b
commit
6a711431aa
37 changed files with 105 additions and 5483 deletions
|
|
@ -1,42 +0,0 @@
|
|||
// 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 PqcPreKeyInput {
|
||||
final PlatformInt64 eccPreKeyId;
|
||||
final Uint8List eccPreKey;
|
||||
final PlatformInt64 kyberPreKeyId;
|
||||
final Uint8List kyberPreKey;
|
||||
final Uint8List kyberPreKeySignature;
|
||||
|
||||
const PqcPreKeyInput({
|
||||
required this.eccPreKeyId,
|
||||
required this.eccPreKey,
|
||||
required this.kyberPreKeyId,
|
||||
required this.kyberPreKey,
|
||||
required this.kyberPreKeySignature,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
eccPreKeyId.hashCode ^
|
||||
eccPreKey.hashCode ^
|
||||
kyberPreKeyId.hashCode ^
|
||||
kyberPreKey.hashCode ^
|
||||
kyberPreKeySignature.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is PqcPreKeyInput &&
|
||||
runtimeType == other.runtimeType &&
|
||||
eccPreKeyId == other.eccPreKeyId &&
|
||||
eccPreKey == other.eccPreKey &&
|
||||
kyberPreKeyId == other.kyberPreKeyId &&
|
||||
kyberPreKey == other.kyberPreKey &&
|
||||
kyberPreKeySignature == other.kyberPreKeySignature;
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
// 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 PqcPreKeyInput {
|
||||
final PlatformInt64 eccPreKeyId;
|
||||
final Uint8List eccPreKey;
|
||||
final PlatformInt64 kyberPreKeyId;
|
||||
final Uint8List kyberPreKey;
|
||||
final Uint8List kyberPreKeySignature;
|
||||
|
||||
const PqcPreKeyInput({
|
||||
required this.eccPreKeyId,
|
||||
required this.eccPreKey,
|
||||
required this.kyberPreKeyId,
|
||||
required this.kyberPreKey,
|
||||
required this.kyberPreKeySignature,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
eccPreKeyId.hashCode ^
|
||||
eccPreKey.hashCode ^
|
||||
kyberPreKeyId.hashCode ^
|
||||
kyberPreKey.hashCode ^
|
||||
kyberPreKeySignature.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is PqcPreKeyInput &&
|
||||
runtimeType == other.runtimeType &&
|
||||
eccPreKeyId == other.eccPreKeyId &&
|
||||
eccPreKey == other.eccPreKey &&
|
||||
kyberPreKeyId == other.kyberPreKeyId &&
|
||||
kyberPreKey == other.kyberPreKey &&
|
||||
kyberPreKeySignature == other.kyberPreKeySignature;
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
// 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 PasswordLessRecovery {
|
||||
final Uint8List? recoverySecretShare;
|
||||
final bool delete;
|
||||
final PlatformInt64 threshold;
|
||||
|
||||
const PasswordLessRecovery({
|
||||
this.recoverySecretShare,
|
||||
required this.delete,
|
||||
required this.threshold,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
recoverySecretShare.hashCode ^ delete.hashCode ^ threshold.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is PasswordLessRecovery &&
|
||||
runtimeType == other.runtimeType &&
|
||||
recoverySecretShare == other.recoverySecretShare &&
|
||||
delete == other.delete &&
|
||||
threshold == other.threshold;
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
// 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 PqcPreKey {
|
||||
final PlatformInt64 eccPreKeyId;
|
||||
final Uint8List eccPreKey;
|
||||
final PlatformInt64 kyberPreKeyId;
|
||||
final Uint8List kyberPreKey;
|
||||
final Uint8List kyberPreKeySignature;
|
||||
|
||||
const PqcPreKey({
|
||||
required this.eccPreKeyId,
|
||||
required this.eccPreKey,
|
||||
required this.kyberPreKeyId,
|
||||
required this.kyberPreKey,
|
||||
required this.kyberPreKeySignature,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
eccPreKeyId.hashCode ^
|
||||
eccPreKey.hashCode ^
|
||||
kyberPreKeyId.hashCode ^
|
||||
kyberPreKey.hashCode ^
|
||||
kyberPreKeySignature.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is PqcPreKey &&
|
||||
runtimeType == other.runtimeType &&
|
||||
eccPreKeyId == other.eccPreKeyId &&
|
||||
eccPreKey == other.eccPreKey &&
|
||||
kyberPreKeyId == other.kyberPreKeyId &&
|
||||
kyberPreKey == other.kyberPreKey &&
|
||||
kyberPreKeySignature == other.kyberPreKeySignature;
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
// 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 PreKey {
|
||||
final PlatformInt64 id;
|
||||
final Uint8List prekey;
|
||||
|
||||
const PreKey({
|
||||
required this.id,
|
||||
required this.prekey,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode => id.hashCode ^ prekey.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is PreKey &&
|
||||
runtimeType == other.runtimeType &&
|
||||
id == other.id &&
|
||||
prekey == other.prekey;
|
||||
}
|
||||
|
|
@ -1,296 +0,0 @@
|
|||
// 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 '../client_to_server/handshake/initial_pqc_keys.dart';
|
||||
import '../client_to_server/response.dart';
|
||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||
|
||||
class AdditionalAccount {
|
||||
final PlatformInt64 userId;
|
||||
final String planId;
|
||||
|
||||
const AdditionalAccount({
|
||||
required this.userId,
|
||||
required this.planId,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode => userId.hashCode ^ planId.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is AdditionalAccount &&
|
||||
runtimeType == other.runtimeType &&
|
||||
userId == other.userId &&
|
||||
planId == other.planId;
|
||||
}
|
||||
|
||||
class MemoriesUploadUrls {
|
||||
final String mediaId;
|
||||
final PresignedPost? thumbnailUpload;
|
||||
final PresignedPost? fullUpload;
|
||||
|
||||
const MemoriesUploadUrls({
|
||||
required this.mediaId,
|
||||
this.thumbnailUpload,
|
||||
this.fullUpload,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
mediaId.hashCode ^ thumbnailUpload.hashCode ^ fullUpload.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is MemoriesUploadUrls &&
|
||||
runtimeType == other.runtimeType &&
|
||||
mediaId == other.mediaId &&
|
||||
thumbnailUpload == other.thumbnailUpload &&
|
||||
fullUpload == other.fullUpload;
|
||||
}
|
||||
|
||||
class MemoriesUsage {
|
||||
final PlatformInt64 maxBytes;
|
||||
final PlatformInt64 currentBytes;
|
||||
final PlatformInt64 count;
|
||||
|
||||
const MemoriesUsage({
|
||||
required this.maxBytes,
|
||||
required this.currentBytes,
|
||||
required this.count,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
maxBytes.hashCode ^ currentBytes.hashCode ^ count.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is MemoriesUsage &&
|
||||
runtimeType == other.runtimeType &&
|
||||
maxBytes == other.maxBytes &&
|
||||
currentBytes == other.currentBytes &&
|
||||
count == other.count;
|
||||
}
|
||||
|
||||
class PasswordlessNotificationMessage {
|
||||
final PlatformInt64 id;
|
||||
final Uint8List encryptedMessage;
|
||||
|
||||
const PasswordlessNotificationMessage({
|
||||
required this.id,
|
||||
required this.encryptedMessage,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode => id.hashCode ^ encryptedMessage.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is PasswordlessNotificationMessage &&
|
||||
runtimeType == other.runtimeType &&
|
||||
id == other.id &&
|
||||
encryptedMessage == other.encryptedMessage;
|
||||
}
|
||||
|
||||
class PlanBallance {
|
||||
final PlatformInt64 usedDailyMediaUploadLimit;
|
||||
final PlatformInt64 usedUploadMediaSizeLimit;
|
||||
final PlatformInt64? paymentPeriodDays;
|
||||
final PlatformInt64? lastPaymentDoneUnixTimestamp;
|
||||
final List<Transaction> transactions;
|
||||
final List<AdditionalAccount> additionalAccounts;
|
||||
final bool? autoRenewal;
|
||||
final PlatformInt64? additionalAccountOwnerId;
|
||||
|
||||
const PlanBallance({
|
||||
required this.usedDailyMediaUploadLimit,
|
||||
required this.usedUploadMediaSizeLimit,
|
||||
this.paymentPeriodDays,
|
||||
this.lastPaymentDoneUnixTimestamp,
|
||||
required this.transactions,
|
||||
required this.additionalAccounts,
|
||||
this.autoRenewal,
|
||||
this.additionalAccountOwnerId,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
usedDailyMediaUploadLimit.hashCode ^
|
||||
usedUploadMediaSizeLimit.hashCode ^
|
||||
paymentPeriodDays.hashCode ^
|
||||
lastPaymentDoneUnixTimestamp.hashCode ^
|
||||
transactions.hashCode ^
|
||||
additionalAccounts.hashCode ^
|
||||
autoRenewal.hashCode ^
|
||||
additionalAccountOwnerId.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is PlanBallance &&
|
||||
runtimeType == other.runtimeType &&
|
||||
usedDailyMediaUploadLimit == other.usedDailyMediaUploadLimit &&
|
||||
usedUploadMediaSizeLimit == other.usedUploadMediaSizeLimit &&
|
||||
paymentPeriodDays == other.paymentPeriodDays &&
|
||||
lastPaymentDoneUnixTimestamp == other.lastPaymentDoneUnixTimestamp &&
|
||||
transactions == other.transactions &&
|
||||
additionalAccounts == other.additionalAccounts &&
|
||||
autoRenewal == other.autoRenewal &&
|
||||
additionalAccountOwnerId == other.additionalAccountOwnerId;
|
||||
}
|
||||
|
||||
class PqcBundle {
|
||||
final PlatformInt64 eccSignedPrekeyId;
|
||||
final Uint8List eccSignedPrekey;
|
||||
final Uint8List eccSignedPrekeySignature;
|
||||
final PlatformInt64 kyberSignedPrekeyId;
|
||||
final Uint8List kyberSignedPrekey;
|
||||
final Uint8List kyberSignedPrekeySignature;
|
||||
final PqcPreKey? prekey;
|
||||
|
||||
const PqcBundle({
|
||||
required this.eccSignedPrekeyId,
|
||||
required this.eccSignedPrekey,
|
||||
required this.eccSignedPrekeySignature,
|
||||
required this.kyberSignedPrekeyId,
|
||||
required this.kyberSignedPrekey,
|
||||
required this.kyberSignedPrekeySignature,
|
||||
this.prekey,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
eccSignedPrekeyId.hashCode ^
|
||||
eccSignedPrekey.hashCode ^
|
||||
eccSignedPrekeySignature.hashCode ^
|
||||
kyberSignedPrekeyId.hashCode ^
|
||||
kyberSignedPrekey.hashCode ^
|
||||
kyberSignedPrekeySignature.hashCode ^
|
||||
prekey.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is PqcBundle &&
|
||||
runtimeType == other.runtimeType &&
|
||||
eccSignedPrekeyId == other.eccSignedPrekeyId &&
|
||||
eccSignedPrekey == other.eccSignedPrekey &&
|
||||
eccSignedPrekeySignature == other.eccSignedPrekeySignature &&
|
||||
kyberSignedPrekeyId == other.kyberSignedPrekeyId &&
|
||||
kyberSignedPrekey == other.kyberSignedPrekey &&
|
||||
kyberSignedPrekeySignature == other.kyberSignedPrekeySignature &&
|
||||
prekey == other.prekey;
|
||||
}
|
||||
|
||||
class PresignedPost {
|
||||
final String url;
|
||||
final Map<String, String> fields;
|
||||
|
||||
const PresignedPost({
|
||||
required this.url,
|
||||
required this.fields,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode => url.hashCode ^ fields.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is PresignedPost &&
|
||||
runtimeType == other.runtimeType &&
|
||||
url == other.url &&
|
||||
fields == other.fields;
|
||||
}
|
||||
|
||||
class ProofOfWork {
|
||||
final String prefix;
|
||||
final PlatformInt64 difficulty;
|
||||
|
||||
const ProofOfWork({
|
||||
required this.prefix,
|
||||
required this.difficulty,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode => prefix.hashCode ^ difficulty.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is ProofOfWork &&
|
||||
runtimeType == other.runtimeType &&
|
||||
prefix == other.prefix &&
|
||||
difficulty == other.difficulty;
|
||||
}
|
||||
|
||||
class Transaction {
|
||||
const Transaction();
|
||||
|
||||
@override
|
||||
int get hashCode => 0;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is Transaction && runtimeType == other.runtimeType;
|
||||
}
|
||||
|
||||
class UserData {
|
||||
final PlatformInt64 userId;
|
||||
final List<PreKey> prekeys;
|
||||
final Uint8List? username;
|
||||
final Uint8List? publicIdentityKey;
|
||||
final Uint8List? signedPrekey;
|
||||
final Uint8List? signedPrekeySignature;
|
||||
final PlatformInt64? signedPrekeyId;
|
||||
final PlatformInt64? registrationId;
|
||||
final PqcBundle? pqcBundle;
|
||||
|
||||
const UserData({
|
||||
required this.userId,
|
||||
required this.prekeys,
|
||||
this.username,
|
||||
this.publicIdentityKey,
|
||||
this.signedPrekey,
|
||||
this.signedPrekeySignature,
|
||||
this.signedPrekeyId,
|
||||
this.registrationId,
|
||||
this.pqcBundle,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
userId.hashCode ^
|
||||
prekeys.hashCode ^
|
||||
username.hashCode ^
|
||||
publicIdentityKey.hashCode ^
|
||||
signedPrekey.hashCode ^
|
||||
signedPrekeySignature.hashCode ^
|
||||
signedPrekeyId.hashCode ^
|
||||
registrationId.hashCode ^
|
||||
pqcBundle.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is UserData &&
|
||||
runtimeType == other.runtimeType &&
|
||||
userId == other.userId &&
|
||||
prekeys == other.prekeys &&
|
||||
username == other.username &&
|
||||
publicIdentityKey == other.publicIdentityKey &&
|
||||
signedPrekey == other.signedPrekey &&
|
||||
signedPrekeySignature == other.signedPrekeySignature &&
|
||||
signedPrekeyId == other.signedPrekeyId &&
|
||||
registrationId == other.registrationId &&
|
||||
pqcBundle == other.pqcBundle;
|
||||
}
|
||||
|
|
@ -1,103 +0,0 @@
|
|||
// 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<SqlValue> 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<String> columns;
|
||||
final List<SqlRow> 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;
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
// 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 '../lib.dart';
|
||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||
|
||||
class BackupPasswordKeys {
|
||||
final U8Array32 backupId;
|
||||
final U8Array32 encryptionKey;
|
||||
|
||||
const BackupPasswordKeys({
|
||||
required this.backupId,
|
||||
required this.encryptionKey,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode => backupId.hashCode ^ encryptionKey.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is BackupPasswordKeys &&
|
||||
runtimeType == other.runtimeType &&
|
||||
backupId == other.backupId &&
|
||||
encryptionKey == other.encryptionKey;
|
||||
}
|
||||
|
|
@ -1,888 +0,0 @@
|
|||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, type=warning, deprecated_member_use, deprecated_member_use_from_same_package
|
||||
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
|
||||
|
||||
part of 'api.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// FreezedGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// dart format off
|
||||
T _$identity<T>(T value) => value;
|
||||
/// @nodoc
|
||||
mixin _$ServerResultEmpty {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is ServerResultEmpty);
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => runtimeType.hashCode;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ServerResultEmpty()';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class $ServerResultEmptyCopyWith<$Res> {
|
||||
$ServerResultEmptyCopyWith(ServerResultEmpty _, $Res Function(ServerResultEmpty) __);
|
||||
}
|
||||
|
||||
|
||||
/// Adds pattern-matching-related methods to [ServerResultEmpty].
|
||||
extension ServerResultEmptyPatterns on ServerResultEmpty {
|
||||
/// A variant of `map` that fallback to returning `orElse`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeMap<TResult extends Object?>({TResult Function( ServerResultEmpty_Ok value)? ok,TResult Function( ServerResultEmpty_ErrorCode value)? errorCode,required TResult orElse(),}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultEmpty_Ok() when ok != null:
|
||||
return ok(_that);case ServerResultEmpty_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// Callbacks receives the raw object, upcasted.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case final Subclass2 value:
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult map<TResult extends Object?>({required TResult Function( ServerResultEmpty_Ok value) ok,required TResult Function( ServerResultEmpty_ErrorCode value) errorCode,}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultEmpty_Ok():
|
||||
return ok(_that);case ServerResultEmpty_ErrorCode():
|
||||
return errorCode(_that);}
|
||||
}
|
||||
/// A variant of `map` that fallback to returning `null`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>({TResult? Function( ServerResultEmpty_Ok value)? ok,TResult? Function( ServerResultEmpty_ErrorCode value)? errorCode,}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultEmpty_Ok() when ok != null:
|
||||
return ok(_that);case ServerResultEmpty_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `when` that fallback to an `orElse` callback.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>({TResult Function()? ok,TResult Function( int field0)? errorCode,required TResult orElse(),}) {final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultEmpty_Ok() when ok != null:
|
||||
return ok();case ServerResultEmpty_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that.field0);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// As opposed to `map`, this offers destructuring.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case Subclass2(:final field2):
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function() ok,required TResult Function( int field0) errorCode,}) {final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultEmpty_Ok():
|
||||
return ok();case ServerResultEmpty_ErrorCode():
|
||||
return errorCode(_that.field0);}
|
||||
}
|
||||
/// A variant of `when` that fallback to returning `null`
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>({TResult? Function()? ok,TResult? Function( int field0)? errorCode,}) {final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultEmpty_Ok() when ok != null:
|
||||
return ok();case ServerResultEmpty_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that.field0);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
|
||||
class ServerResultEmpty_Ok extends ServerResultEmpty {
|
||||
const ServerResultEmpty_Ok(): super._();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is ServerResultEmpty_Ok);
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => runtimeType.hashCode;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ServerResultEmpty.ok()';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// @nodoc
|
||||
|
||||
|
||||
class ServerResultEmpty_ErrorCode extends ServerResultEmpty {
|
||||
const ServerResultEmpty_ErrorCode(this.field0): super._();
|
||||
|
||||
|
||||
final int field0;
|
||||
|
||||
/// Create a copy of ServerResultEmpty
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
$ServerResultEmpty_ErrorCodeCopyWith<ServerResultEmpty_ErrorCode> get copyWith => _$ServerResultEmpty_ErrorCodeCopyWithImpl<ServerResultEmpty_ErrorCode>(this, _$identity);
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is ServerResultEmpty_ErrorCode&&(identical(other.field0, field0) || other.field0 == field0));
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,field0);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ServerResultEmpty.errorCode(field0: $field0)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class $ServerResultEmpty_ErrorCodeCopyWith<$Res> implements $ServerResultEmptyCopyWith<$Res> {
|
||||
factory $ServerResultEmpty_ErrorCodeCopyWith(ServerResultEmpty_ErrorCode value, $Res Function(ServerResultEmpty_ErrorCode) _then) = _$ServerResultEmpty_ErrorCodeCopyWithImpl;
|
||||
@useResult
|
||||
$Res call({
|
||||
int field0
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class _$ServerResultEmpty_ErrorCodeCopyWithImpl<$Res>
|
||||
implements $ServerResultEmpty_ErrorCodeCopyWith<$Res> {
|
||||
_$ServerResultEmpty_ErrorCodeCopyWithImpl(this._self, this._then);
|
||||
|
||||
final ServerResultEmpty_ErrorCode _self;
|
||||
final $Res Function(ServerResultEmpty_ErrorCode) _then;
|
||||
|
||||
/// Create a copy of ServerResultEmpty
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline') $Res call({Object? field0 = null,}) {
|
||||
return _then(ServerResultEmpty_ErrorCode(
|
||||
null == field0 ? _self.field0 : field0 // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$ServerResultI64 {
|
||||
|
||||
int get field0;
|
||||
/// Create a copy of ServerResultI64
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
$ServerResultI64CopyWith<ServerResultI64> get copyWith => _$ServerResultI64CopyWithImpl<ServerResultI64>(this as ServerResultI64, _$identity);
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is ServerResultI64&&(identical(other.field0, field0) || other.field0 == field0));
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,field0);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ServerResultI64(field0: $field0)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class $ServerResultI64CopyWith<$Res> {
|
||||
factory $ServerResultI64CopyWith(ServerResultI64 value, $Res Function(ServerResultI64) _then) = _$ServerResultI64CopyWithImpl;
|
||||
@useResult
|
||||
$Res call({
|
||||
int field0
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class _$ServerResultI64CopyWithImpl<$Res>
|
||||
implements $ServerResultI64CopyWith<$Res> {
|
||||
_$ServerResultI64CopyWithImpl(this._self, this._then);
|
||||
|
||||
final ServerResultI64 _self;
|
||||
final $Res Function(ServerResultI64) _then;
|
||||
|
||||
/// Create a copy of ServerResultI64
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline') @override $Res call({Object? field0 = null,}) {
|
||||
return _then(_self.copyWith(
|
||||
field0: null == field0 ? _self.field0 : field0 // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// Adds pattern-matching-related methods to [ServerResultI64].
|
||||
extension ServerResultI64Patterns on ServerResultI64 {
|
||||
/// A variant of `map` that fallback to returning `orElse`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeMap<TResult extends Object?>({TResult Function( ServerResultI64_Ok value)? ok,TResult Function( ServerResultI64_ErrorCode value)? errorCode,required TResult orElse(),}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultI64_Ok() when ok != null:
|
||||
return ok(_that);case ServerResultI64_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// Callbacks receives the raw object, upcasted.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case final Subclass2 value:
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult map<TResult extends Object?>({required TResult Function( ServerResultI64_Ok value) ok,required TResult Function( ServerResultI64_ErrorCode value) errorCode,}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultI64_Ok():
|
||||
return ok(_that);case ServerResultI64_ErrorCode():
|
||||
return errorCode(_that);}
|
||||
}
|
||||
/// A variant of `map` that fallback to returning `null`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>({TResult? Function( ServerResultI64_Ok value)? ok,TResult? Function( ServerResultI64_ErrorCode value)? errorCode,}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultI64_Ok() when ok != null:
|
||||
return ok(_that);case ServerResultI64_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `when` that fallback to an `orElse` callback.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>({TResult Function( PlatformInt64 field0)? ok,TResult Function( int field0)? errorCode,required TResult orElse(),}) {final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultI64_Ok() when ok != null:
|
||||
return ok(_that.field0);case ServerResultI64_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that.field0);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// As opposed to `map`, this offers destructuring.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case Subclass2(:final field2):
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function( PlatformInt64 field0) ok,required TResult Function( int field0) errorCode,}) {final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultI64_Ok():
|
||||
return ok(_that.field0);case ServerResultI64_ErrorCode():
|
||||
return errorCode(_that.field0);}
|
||||
}
|
||||
/// A variant of `when` that fallback to returning `null`
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>({TResult? Function( PlatformInt64 field0)? ok,TResult? Function( int field0)? errorCode,}) {final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultI64_Ok() when ok != null:
|
||||
return ok(_that.field0);case ServerResultI64_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that.field0);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
|
||||
class ServerResultI64_Ok extends ServerResultI64 {
|
||||
const ServerResultI64_Ok(this.field0): super._();
|
||||
|
||||
|
||||
@override final PlatformInt64 field0;
|
||||
|
||||
/// Create a copy of ServerResultI64
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override @JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
$ServerResultI64_OkCopyWith<ServerResultI64_Ok> get copyWith => _$ServerResultI64_OkCopyWithImpl<ServerResultI64_Ok>(this, _$identity);
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is ServerResultI64_Ok&&(identical(other.field0, field0) || other.field0 == field0));
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,field0);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ServerResultI64.ok(field0: $field0)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class $ServerResultI64_OkCopyWith<$Res> implements $ServerResultI64CopyWith<$Res> {
|
||||
factory $ServerResultI64_OkCopyWith(ServerResultI64_Ok value, $Res Function(ServerResultI64_Ok) _then) = _$ServerResultI64_OkCopyWithImpl;
|
||||
@override @useResult
|
||||
$Res call({
|
||||
PlatformInt64 field0
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class _$ServerResultI64_OkCopyWithImpl<$Res>
|
||||
implements $ServerResultI64_OkCopyWith<$Res> {
|
||||
_$ServerResultI64_OkCopyWithImpl(this._self, this._then);
|
||||
|
||||
final ServerResultI64_Ok _self;
|
||||
final $Res Function(ServerResultI64_Ok) _then;
|
||||
|
||||
/// Create a copy of ServerResultI64
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override @pragma('vm:prefer-inline') $Res call({Object? field0 = null,}) {
|
||||
return _then(ServerResultI64_Ok(
|
||||
null == field0 ? _self.field0 : field0 // ignore: cast_nullable_to_non_nullable
|
||||
as PlatformInt64,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
|
||||
class ServerResultI64_ErrorCode extends ServerResultI64 {
|
||||
const ServerResultI64_ErrorCode(this.field0): super._();
|
||||
|
||||
|
||||
@override final int field0;
|
||||
|
||||
/// Create a copy of ServerResultI64
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override @JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
$ServerResultI64_ErrorCodeCopyWith<ServerResultI64_ErrorCode> get copyWith => _$ServerResultI64_ErrorCodeCopyWithImpl<ServerResultI64_ErrorCode>(this, _$identity);
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is ServerResultI64_ErrorCode&&(identical(other.field0, field0) || other.field0 == field0));
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,field0);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ServerResultI64.errorCode(field0: $field0)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class $ServerResultI64_ErrorCodeCopyWith<$Res> implements $ServerResultI64CopyWith<$Res> {
|
||||
factory $ServerResultI64_ErrorCodeCopyWith(ServerResultI64_ErrorCode value, $Res Function(ServerResultI64_ErrorCode) _then) = _$ServerResultI64_ErrorCodeCopyWithImpl;
|
||||
@override @useResult
|
||||
$Res call({
|
||||
int field0
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class _$ServerResultI64_ErrorCodeCopyWithImpl<$Res>
|
||||
implements $ServerResultI64_ErrorCodeCopyWith<$Res> {
|
||||
_$ServerResultI64_ErrorCodeCopyWithImpl(this._self, this._then);
|
||||
|
||||
final ServerResultI64_ErrorCode _self;
|
||||
final $Res Function(ServerResultI64_ErrorCode) _then;
|
||||
|
||||
/// Create a copy of ServerResultI64
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@override @pragma('vm:prefer-inline') $Res call({Object? field0 = null,}) {
|
||||
return _then(ServerResultI64_ErrorCode(
|
||||
null == field0 ? _self.field0 : field0 // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$ServerResultVecU8 {
|
||||
|
||||
Object get field0;
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is ServerResultVecU8&&const DeepCollectionEquality().equals(other.field0, field0));
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,const DeepCollectionEquality().hash(field0));
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ServerResultVecU8(field0: $field0)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class $ServerResultVecU8CopyWith<$Res> {
|
||||
$ServerResultVecU8CopyWith(ServerResultVecU8 _, $Res Function(ServerResultVecU8) __);
|
||||
}
|
||||
|
||||
|
||||
/// Adds pattern-matching-related methods to [ServerResultVecU8].
|
||||
extension ServerResultVecU8Patterns on ServerResultVecU8 {
|
||||
/// A variant of `map` that fallback to returning `orElse`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeMap<TResult extends Object?>({TResult Function( ServerResultVecU8_Ok value)? ok,TResult Function( ServerResultVecU8_ErrorCode value)? errorCode,required TResult orElse(),}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultVecU8_Ok() when ok != null:
|
||||
return ok(_that);case ServerResultVecU8_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// Callbacks receives the raw object, upcasted.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case final Subclass2 value:
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult map<TResult extends Object?>({required TResult Function( ServerResultVecU8_Ok value) ok,required TResult Function( ServerResultVecU8_ErrorCode value) errorCode,}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultVecU8_Ok():
|
||||
return ok(_that);case ServerResultVecU8_ErrorCode():
|
||||
return errorCode(_that);}
|
||||
}
|
||||
/// A variant of `map` that fallback to returning `null`.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case final Subclass value:
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>({TResult? Function( ServerResultVecU8_Ok value)? ok,TResult? Function( ServerResultVecU8_ErrorCode value)? errorCode,}){
|
||||
final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultVecU8_Ok() when ok != null:
|
||||
return ok(_that);case ServerResultVecU8_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
/// A variant of `when` that fallback to an `orElse` callback.
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return orElse();
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>({TResult Function( Uint8List field0)? ok,TResult Function( int field0)? errorCode,required TResult orElse(),}) {final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultVecU8_Ok() when ok != null:
|
||||
return ok(_that.field0);case ServerResultVecU8_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that.field0);case _:
|
||||
return orElse();
|
||||
|
||||
}
|
||||
}
|
||||
/// A `switch`-like method, using callbacks.
|
||||
///
|
||||
/// As opposed to `map`, this offers destructuring.
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case Subclass2(:final field2):
|
||||
/// return ...;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function( Uint8List field0) ok,required TResult Function( int field0) errorCode,}) {final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultVecU8_Ok():
|
||||
return ok(_that.field0);case ServerResultVecU8_ErrorCode():
|
||||
return errorCode(_that.field0);}
|
||||
}
|
||||
/// A variant of `when` that fallback to returning `null`
|
||||
///
|
||||
/// It is equivalent to doing:
|
||||
/// ```dart
|
||||
/// switch (sealedClass) {
|
||||
/// case Subclass(:final field):
|
||||
/// return ...;
|
||||
/// case _:
|
||||
/// return null;
|
||||
/// }
|
||||
/// ```
|
||||
|
||||
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>({TResult? Function( Uint8List field0)? ok,TResult? Function( int field0)? errorCode,}) {final _that = this;
|
||||
switch (_that) {
|
||||
case ServerResultVecU8_Ok() when ok != null:
|
||||
return ok(_that.field0);case ServerResultVecU8_ErrorCode() when errorCode != null:
|
||||
return errorCode(_that.field0);case _:
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
|
||||
class ServerResultVecU8_Ok extends ServerResultVecU8 {
|
||||
const ServerResultVecU8_Ok(this.field0): super._();
|
||||
|
||||
|
||||
@override final Uint8List field0;
|
||||
|
||||
/// Create a copy of ServerResultVecU8
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
$ServerResultVecU8_OkCopyWith<ServerResultVecU8_Ok> get copyWith => _$ServerResultVecU8_OkCopyWithImpl<ServerResultVecU8_Ok>(this, _$identity);
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is ServerResultVecU8_Ok&&const DeepCollectionEquality().equals(other.field0, field0));
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,const DeepCollectionEquality().hash(field0));
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ServerResultVecU8.ok(field0: $field0)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class $ServerResultVecU8_OkCopyWith<$Res> implements $ServerResultVecU8CopyWith<$Res> {
|
||||
factory $ServerResultVecU8_OkCopyWith(ServerResultVecU8_Ok value, $Res Function(ServerResultVecU8_Ok) _then) = _$ServerResultVecU8_OkCopyWithImpl;
|
||||
@useResult
|
||||
$Res call({
|
||||
Uint8List field0
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class _$ServerResultVecU8_OkCopyWithImpl<$Res>
|
||||
implements $ServerResultVecU8_OkCopyWith<$Res> {
|
||||
_$ServerResultVecU8_OkCopyWithImpl(this._self, this._then);
|
||||
|
||||
final ServerResultVecU8_Ok _self;
|
||||
final $Res Function(ServerResultVecU8_Ok) _then;
|
||||
|
||||
/// Create a copy of ServerResultVecU8
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline') $Res call({Object? field0 = null,}) {
|
||||
return _then(ServerResultVecU8_Ok(
|
||||
null == field0 ? _self.field0 : field0 // ignore: cast_nullable_to_non_nullable
|
||||
as Uint8List,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
|
||||
class ServerResultVecU8_ErrorCode extends ServerResultVecU8 {
|
||||
const ServerResultVecU8_ErrorCode(this.field0): super._();
|
||||
|
||||
|
||||
@override final int field0;
|
||||
|
||||
/// Create a copy of ServerResultVecU8
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@pragma('vm:prefer-inline')
|
||||
$ServerResultVecU8_ErrorCodeCopyWith<ServerResultVecU8_ErrorCode> get copyWith => _$ServerResultVecU8_ErrorCodeCopyWithImpl<ServerResultVecU8_ErrorCode>(this, _$identity);
|
||||
|
||||
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is ServerResultVecU8_ErrorCode&&(identical(other.field0, field0) || other.field0 == field0));
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType,field0);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ServerResultVecU8.errorCode(field0: $field0)';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract mixin class $ServerResultVecU8_ErrorCodeCopyWith<$Res> implements $ServerResultVecU8CopyWith<$Res> {
|
||||
factory $ServerResultVecU8_ErrorCodeCopyWith(ServerResultVecU8_ErrorCode value, $Res Function(ServerResultVecU8_ErrorCode) _then) = _$ServerResultVecU8_ErrorCodeCopyWithImpl;
|
||||
@useResult
|
||||
$Res call({
|
||||
int field0
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/// @nodoc
|
||||
class _$ServerResultVecU8_ErrorCodeCopyWithImpl<$Res>
|
||||
implements $ServerResultVecU8_ErrorCodeCopyWith<$Res> {
|
||||
_$ServerResultVecU8_ErrorCodeCopyWithImpl(this._self, this._then);
|
||||
|
||||
final ServerResultVecU8_ErrorCode _self;
|
||||
final $Res Function(ServerResultVecU8_ErrorCode) _then;
|
||||
|
||||
/// Create a copy of ServerResultVecU8
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline') $Res call({Object? field0 = null,}) {
|
||||
return _then(ServerResultVecU8_ErrorCode(
|
||||
null == field0 ? _self.field0 : field0 // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// dart format on
|
||||
|
|
@ -1,173 +0,0 @@
|
|||
// 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 '../../bridge.dart';
|
||||
import '../../frb_generated.dart';
|
||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||
|
||||
// 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`
|
||||
|
||||
class UserDiscoveryStoreFlutter {
|
||||
const UserDiscoveryStoreFlutter();
|
||||
|
||||
Future<AnnouncedUser?> getAnnouncedUserByPublicId({
|
||||
required PlatformInt64 publicId,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetAnnouncedUserByPublicId(
|
||||
that: this,
|
||||
publicId: publicId,
|
||||
);
|
||||
|
||||
Future<String> getConfig() => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetConfig(
|
||||
that: this,
|
||||
);
|
||||
|
||||
Future<Uint8List?> getContactPromotion({
|
||||
required PlatformInt64 contactId,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetContactPromotion(
|
||||
that: this,
|
||||
contactId: contactId,
|
||||
);
|
||||
|
||||
Future<Uint8List?> getContactVersion({
|
||||
required PlatformInt64 contactId,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetContactVersion(
|
||||
that: this,
|
||||
contactId: contactId,
|
||||
);
|
||||
|
||||
Future<List<OtherPromotion>> getOtherPromotionsByPublicId({
|
||||
required PlatformInt64 publicId,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetOtherPromotionsByPublicId(
|
||||
that: this,
|
||||
publicId: publicId,
|
||||
);
|
||||
|
||||
Future<List<Uint8List>> getOwnPromotionsAfterVersion({
|
||||
required int version,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetOwnPromotionsAfterVersion(
|
||||
that: this,
|
||||
version: version,
|
||||
);
|
||||
|
||||
Future<Uint8List> getShareForContact({
|
||||
required PlatformInt64 contactId,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterGetShareForContact(
|
||||
that: this,
|
||||
contactId: contactId,
|
||||
);
|
||||
|
||||
Future<void> pushNewUserRelation({
|
||||
required PlatformInt64 fromContactId,
|
||||
required AnnouncedUser announcedUser,
|
||||
PlatformInt64? publicKeyVerifiedTimestamp,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterPushNewUserRelation(
|
||||
that: this,
|
||||
fromContactId: fromContactId,
|
||||
announcedUser: announcedUser,
|
||||
publicKeyVerifiedTimestamp: publicKeyVerifiedTimestamp,
|
||||
);
|
||||
|
||||
Future<void> pushOwnPromotionAndClearOldVersion({
|
||||
required PlatformInt64 contactId,
|
||||
required int version,
|
||||
required List<int> promotion,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterPushOwnPromotionAndClearOldVersion(
|
||||
that: this,
|
||||
contactId: contactId,
|
||||
version: version,
|
||||
promotion: promotion,
|
||||
);
|
||||
|
||||
Future<void> setContactVersion({
|
||||
required PlatformInt64 contactId,
|
||||
required List<int> update,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterSetContactVersion(
|
||||
that: this,
|
||||
contactId: contactId,
|
||||
update: update,
|
||||
);
|
||||
|
||||
Future<void> setShares({required List<Uint8List> shares}) => RustLib
|
||||
.instance
|
||||
.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterSetShares(
|
||||
that: this,
|
||||
shares: shares,
|
||||
);
|
||||
|
||||
Future<void> storeOtherPromotion({
|
||||
required OtherPromotion promotion,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterStoreOtherPromotion(
|
||||
that: this,
|
||||
promotion: promotion,
|
||||
);
|
||||
|
||||
Future<void> updateConfig({required String update}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryStoreFlutterUpdateConfig(
|
||||
that: this,
|
||||
update: update,
|
||||
);
|
||||
|
||||
@override
|
||||
int get hashCode => 0;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is UserDiscoveryStoreFlutter && runtimeType == other.runtimeType;
|
||||
}
|
||||
|
||||
class UserDiscoveryUtilsFlutter {
|
||||
const UserDiscoveryUtilsFlutter();
|
||||
|
||||
Future<Uint8List> signData({required List<int> inputData}) => RustLib
|
||||
.instance
|
||||
.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterSignData(
|
||||
that: this,
|
||||
inputData: inputData,
|
||||
);
|
||||
|
||||
Future<bool> verifySignature({
|
||||
required List<int> inputData,
|
||||
required List<int> pubkey,
|
||||
required List<int> signature,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterVerifySignature(
|
||||
that: this,
|
||||
inputData: inputData,
|
||||
pubkey: pubkey,
|
||||
signature: signature,
|
||||
);
|
||||
|
||||
Future<bool> verifyStoredPubkey({
|
||||
required PlatformInt64 fromContactId,
|
||||
required List<int> pubkey,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeCallbacksUserDiscoveryUserDiscoveryUtilsFlutterVerifyStoredPubkey(
|
||||
that: this,
|
||||
fromContactId: fromContactId,
|
||||
pubkey: pubkey,
|
||||
);
|
||||
|
||||
@override
|
||||
int get hashCode => 0;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is UserDiscoveryUtilsFlutter && runtimeType == other.runtimeType;
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
// 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 InitConfig {
|
||||
final String databasePath;
|
||||
final String dataDirectory;
|
||||
|
||||
const InitConfig({
|
||||
required this.databasePath,
|
||||
required this.dataDirectory,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode => databasePath.hashCode ^ dataDirectory.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is InitConfig &&
|
||||
runtimeType == other.runtimeType &&
|
||||
databasePath == other.databasePath &&
|
||||
dataDirectory == other.dataDirectory;
|
||||
}
|
||||
|
|
@ -1,261 +0,0 @@
|
|||
// This is a generated file - do not edit.
|
||||
//
|
||||
// Generated from groups.proto.
|
||||
|
||||
// @dart = 3.3
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:fixnum/fixnum.dart' as $fixnum;
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
import 'groups.pbenum.dart';
|
||||
|
||||
export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;
|
||||
|
||||
export 'groups.pbenum.dart';
|
||||
|
||||
/// Stored encrypted on the server in the members columns.
|
||||
class EncryptedGroupState extends $pb.GeneratedMessage {
|
||||
factory EncryptedGroupState({
|
||||
$core.Iterable<$fixnum.Int64>? memberIds,
|
||||
$core.Iterable<$fixnum.Int64>? adminIds,
|
||||
$core.String? groupName,
|
||||
$fixnum.Int64? deleteMessagesAfterMilliseconds,
|
||||
$core.List<$core.int>? padding,
|
||||
}) {
|
||||
final result = create();
|
||||
if (memberIds != null) result.memberIds.addAll(memberIds);
|
||||
if (adminIds != null) result.adminIds.addAll(adminIds);
|
||||
if (groupName != null) result.groupName = groupName;
|
||||
if (deleteMessagesAfterMilliseconds != null)
|
||||
result.deleteMessagesAfterMilliseconds = deleteMessagesAfterMilliseconds;
|
||||
if (padding != null) result.padding = padding;
|
||||
return result;
|
||||
}
|
||||
|
||||
EncryptedGroupState._();
|
||||
|
||||
factory EncryptedGroupState.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory EncryptedGroupState.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedGroupState',
|
||||
createEmptyInstance: create)
|
||||
..p<$fixnum.Int64>(
|
||||
1, _omitFieldNames ? '' : 'memberIds', $pb.PbFieldType.K6)
|
||||
..p<$fixnum.Int64>(2, _omitFieldNames ? '' : 'adminIds', $pb.PbFieldType.K6)
|
||||
..aOS(3, _omitFieldNames ? '' : 'groupName')
|
||||
..aInt64(4, _omitFieldNames ? '' : 'deleteMessagesAfterMilliseconds')
|
||||
..a<$core.List<$core.int>>(
|
||||
5, _omitFieldNames ? '' : 'padding', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedGroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedGroupState copyWith(void Function(EncryptedGroupState) updates) =>
|
||||
super.copyWith((message) => updates(message as EncryptedGroupState))
|
||||
as EncryptedGroupState;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedGroupState create() => EncryptedGroupState._();
|
||||
@$core.override
|
||||
EncryptedGroupState createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedGroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedGroupState>(create);
|
||||
static EncryptedGroupState? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$pb.PbList<$fixnum.Int64> get memberIds => $_getList(0);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$pb.PbList<$fixnum.Int64> get adminIds => $_getList(1);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.String get groupName => $_getSZ(2);
|
||||
@$pb.TagNumber(3)
|
||||
set groupName($core.String value) => $_setString(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasGroupName() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearGroupName() => $_clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
$fixnum.Int64 get deleteMessagesAfterMilliseconds => $_getI64(3);
|
||||
@$pb.TagNumber(4)
|
||||
set deleteMessagesAfterMilliseconds($fixnum.Int64 value) =>
|
||||
$_setInt64(3, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasDeleteMessagesAfterMilliseconds() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearDeleteMessagesAfterMilliseconds() => $_clearField(4);
|
||||
|
||||
@$pb.TagNumber(5)
|
||||
$core.List<$core.int> get padding => $_getN(4);
|
||||
@$pb.TagNumber(5)
|
||||
set padding($core.List<$core.int> value) => $_setBytes(4, value);
|
||||
@$pb.TagNumber(5)
|
||||
$core.bool hasPadding() => $_has(4);
|
||||
@$pb.TagNumber(5)
|
||||
void clearPadding() => $_clearField(5);
|
||||
}
|
||||
|
||||
class EncryptedAppendedGroupState extends $pb.GeneratedMessage {
|
||||
factory EncryptedAppendedGroupState({
|
||||
EncryptedAppendedGroupState_Type? type,
|
||||
}) {
|
||||
final result = create();
|
||||
if (type != null) result.type = type;
|
||||
return result;
|
||||
}
|
||||
|
||||
EncryptedAppendedGroupState._();
|
||||
|
||||
factory EncryptedAppendedGroupState.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory EncryptedAppendedGroupState.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedAppendedGroupState',
|
||||
createEmptyInstance: create)
|
||||
..aE<EncryptedAppendedGroupState_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: EncryptedAppendedGroupState_Type.values)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedAppendedGroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedAppendedGroupState copyWith(
|
||||
void Function(EncryptedAppendedGroupState) updates) =>
|
||||
super.copyWith(
|
||||
(message) => updates(message as EncryptedAppendedGroupState))
|
||||
as EncryptedAppendedGroupState;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedAppendedGroupState create() =>
|
||||
EncryptedAppendedGroupState._();
|
||||
@$core.override
|
||||
EncryptedAppendedGroupState createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedAppendedGroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedAppendedGroupState>(create);
|
||||
static EncryptedAppendedGroupState? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
EncryptedAppendedGroupState_Type get type => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set type(EncryptedAppendedGroupState_Type value) => $_setField(1, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasType() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearType() => $_clearField(1);
|
||||
}
|
||||
|
||||
class EncryptedGroupStateEnvelop extends $pb.GeneratedMessage {
|
||||
factory EncryptedGroupStateEnvelop({
|
||||
$core.List<$core.int>? nonce,
|
||||
$core.List<$core.int>? encryptedGroupState,
|
||||
$core.List<$core.int>? mac,
|
||||
}) {
|
||||
final result = create();
|
||||
if (nonce != null) result.nonce = nonce;
|
||||
if (encryptedGroupState != null)
|
||||
result.encryptedGroupState = encryptedGroupState;
|
||||
if (mac != null) result.mac = mac;
|
||||
return result;
|
||||
}
|
||||
|
||||
EncryptedGroupStateEnvelop._();
|
||||
|
||||
factory EncryptedGroupStateEnvelop.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory EncryptedGroupStateEnvelop.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedGroupStateEnvelop',
|
||||
createEmptyInstance: create)
|
||||
..a<$core.List<$core.int>>(
|
||||
1, _omitFieldNames ? '' : 'nonce', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'encryptedGroupState', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'mac', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedGroupStateEnvelop clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedGroupStateEnvelop copyWith(
|
||||
void Function(EncryptedGroupStateEnvelop) updates) =>
|
||||
super.copyWith(
|
||||
(message) => updates(message as EncryptedGroupStateEnvelop))
|
||||
as EncryptedGroupStateEnvelop;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedGroupStateEnvelop create() => EncryptedGroupStateEnvelop._();
|
||||
@$core.override
|
||||
EncryptedGroupStateEnvelop createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedGroupStateEnvelop getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedGroupStateEnvelop>(create);
|
||||
static EncryptedGroupStateEnvelop? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.List<$core.int> get nonce => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set nonce($core.List<$core.int> value) => $_setBytes(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasNonce() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearNonce() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.List<$core.int> get encryptedGroupState => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set encryptedGroupState($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasEncryptedGroupState() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearEncryptedGroupState() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.List<$core.int> get mac => $_getN(2);
|
||||
@$pb.TagNumber(3)
|
||||
set mac($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasMac() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearMac() => $_clearField(3);
|
||||
}
|
||||
|
||||
const $core.bool _omitFieldNames =
|
||||
$core.bool.fromEnvironment('protobuf.omit_field_names');
|
||||
const $core.bool _omitMessageNames =
|
||||
$core.bool.fromEnvironment('protobuf.omit_message_names');
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
// This is a generated file - do not edit.
|
||||
//
|
||||
// Generated from groups.proto.
|
||||
|
||||
// @dart = 3.3
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
class EncryptedAppendedGroupState_Type extends $pb.ProtobufEnum {
|
||||
static const EncryptedAppendedGroupState_Type LEFT_GROUP =
|
||||
EncryptedAppendedGroupState_Type._(0, _omitEnumNames ? '' : 'LEFT_GROUP');
|
||||
|
||||
static const $core.List<EncryptedAppendedGroupState_Type> values =
|
||||
<EncryptedAppendedGroupState_Type>[
|
||||
LEFT_GROUP,
|
||||
];
|
||||
|
||||
static final $core.List<EncryptedAppendedGroupState_Type?> _byValue =
|
||||
$pb.ProtobufEnum.$_initByValueList(values, 0);
|
||||
static EncryptedAppendedGroupState_Type? valueOf($core.int value) =>
|
||||
value < 0 || value >= _byValue.length ? null : _byValue[value];
|
||||
|
||||
const EncryptedAppendedGroupState_Type._(super.value, super.name);
|
||||
}
|
||||
|
||||
const $core.bool _omitEnumNames =
|
||||
$core.bool.fromEnvironment('protobuf.omit_enum_names');
|
||||
|
|
@ -1,100 +0,0 @@
|
|||
// This is a generated file - do not edit.
|
||||
//
|
||||
// Generated from groups.proto.
|
||||
|
||||
// @dart = 3.3
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
import 'dart:typed_data' as $typed_data;
|
||||
|
||||
@$core.Deprecated('Use encryptedGroupStateDescriptor instead')
|
||||
const EncryptedGroupState$json = {
|
||||
'1': 'EncryptedGroupState',
|
||||
'2': [
|
||||
{'1': 'member_ids', '3': 1, '4': 3, '5': 3, '10': 'memberIds'},
|
||||
{'1': 'admin_ids', '3': 2, '4': 3, '5': 3, '10': 'adminIds'},
|
||||
{'1': 'group_name', '3': 3, '4': 1, '5': 9, '10': 'groupName'},
|
||||
{
|
||||
'1': 'delete_messages_after_milliseconds',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
'9': 0,
|
||||
'10': 'deleteMessagesAfterMilliseconds',
|
||||
'17': true
|
||||
},
|
||||
{'1': 'padding', '3': 5, '4': 1, '5': 12, '10': 'padding'},
|
||||
],
|
||||
'8': [
|
||||
{'1': '_delete_messages_after_milliseconds'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `EncryptedGroupState`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List encryptedGroupStateDescriptor = $convert.base64Decode(
|
||||
'ChNFbmNyeXB0ZWRHcm91cFN0YXRlEh0KCm1lbWJlcl9pZHMYASADKANSCW1lbWJlcklkcxIbCg'
|
||||
'lhZG1pbl9pZHMYAiADKANSCGFkbWluSWRzEh0KCmdyb3VwX25hbWUYAyABKAlSCWdyb3VwTmFt'
|
||||
'ZRJQCiJkZWxldGVfbWVzc2FnZXNfYWZ0ZXJfbWlsbGlzZWNvbmRzGAQgASgDSABSH2RlbGV0ZU'
|
||||
'1lc3NhZ2VzQWZ0ZXJNaWxsaXNlY29uZHOIAQESGAoHcGFkZGluZxgFIAEoDFIHcGFkZGluZ0Il'
|
||||
'CiNfZGVsZXRlX21lc3NhZ2VzX2FmdGVyX21pbGxpc2Vjb25kcw==');
|
||||
|
||||
@$core.Deprecated('Use encryptedAppendedGroupStateDescriptor instead')
|
||||
const EncryptedAppendedGroupState$json = {
|
||||
'1': 'EncryptedAppendedGroupState',
|
||||
'2': [
|
||||
{
|
||||
'1': 'type',
|
||||
'3': 1,
|
||||
'4': 1,
|
||||
'5': 14,
|
||||
'6': '.EncryptedAppendedGroupState.Type',
|
||||
'10': 'type'
|
||||
},
|
||||
],
|
||||
'4': [EncryptedAppendedGroupState_Type$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use encryptedAppendedGroupStateDescriptor instead')
|
||||
const EncryptedAppendedGroupState_Type$json = {
|
||||
'1': 'Type',
|
||||
'2': [
|
||||
{'1': 'LEFT_GROUP', '2': 0},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `EncryptedAppendedGroupState`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List encryptedAppendedGroupStateDescriptor =
|
||||
$convert.base64Decode(
|
||||
'ChtFbmNyeXB0ZWRBcHBlbmRlZEdyb3VwU3RhdGUSNQoEdHlwZRgBIAEoDjIhLkVuY3J5cHRlZE'
|
||||
'FwcGVuZGVkR3JvdXBTdGF0ZS5UeXBlUgR0eXBlIhYKBFR5cGUSDgoKTEVGVF9HUk9VUBAA');
|
||||
|
||||
@$core.Deprecated('Use encryptedGroupStateEnvelopDescriptor instead')
|
||||
const EncryptedGroupStateEnvelop$json = {
|
||||
'1': 'EncryptedGroupStateEnvelop',
|
||||
'2': [
|
||||
{'1': 'nonce', '3': 1, '4': 1, '5': 12, '10': 'nonce'},
|
||||
{
|
||||
'1': 'encrypted_group_state',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'encryptedGroupState'
|
||||
},
|
||||
{'1': 'mac', '3': 3, '4': 1, '5': 12, '10': 'mac'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `EncryptedGroupStateEnvelop`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List encryptedGroupStateEnvelopDescriptor =
|
||||
$convert.base64Decode(
|
||||
'ChpFbmNyeXB0ZWRHcm91cFN0YXRlRW52ZWxvcBIUCgVub25jZRgBIAEoDFIFbm9uY2USMgoVZW'
|
||||
'5jcnlwdGVkX2dyb3VwX3N0YXRlGAIgASgMUhNlbmNyeXB0ZWRHcm91cFN0YXRlEhAKA21hYxgD'
|
||||
'IAEoDFIDbWFj');
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: groups.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||
|
||||
export 'groups.pb.dart';
|
||||
|
|
@ -167,747 +167,6 @@ class UploadRequest extends $pb.GeneratedMessage {
|
|||
$pb.PbList<TextMessage> get messagesOnSuccess => $_getList(2);
|
||||
}
|
||||
|
||||
class SealedSenderMessageRequest extends $pb.GeneratedMessage {
|
||||
factory SealedSenderMessageRequest({
|
||||
$fixnum.Int64? recipientUserId,
|
||||
$core.List<$core.int>? sealedSenderMessage,
|
||||
$core.List<$core.int>? privacyPassToken,
|
||||
}) {
|
||||
final result = create();
|
||||
if (recipientUserId != null) result.recipientUserId = recipientUserId;
|
||||
if (sealedSenderMessage != null)
|
||||
result.sealedSenderMessage = sealedSenderMessage;
|
||||
if (privacyPassToken != null) result.privacyPassToken = privacyPassToken;
|
||||
return result;
|
||||
}
|
||||
|
||||
SealedSenderMessageRequest._();
|
||||
|
||||
factory SealedSenderMessageRequest.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory SealedSenderMessageRequest.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'SealedSenderMessageRequest',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'),
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'recipientUserId')
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'sealedSenderMessage', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'privacyPassToken', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
SealedSenderMessageRequest clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
SealedSenderMessageRequest copyWith(
|
||||
void Function(SealedSenderMessageRequest) updates) =>
|
||||
super.copyWith(
|
||||
(message) => updates(message as SealedSenderMessageRequest))
|
||||
as SealedSenderMessageRequest;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static SealedSenderMessageRequest create() => SealedSenderMessageRequest._();
|
||||
@$core.override
|
||||
SealedSenderMessageRequest createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static SealedSenderMessageRequest getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<SealedSenderMessageRequest>(create);
|
||||
static SealedSenderMessageRequest? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$fixnum.Int64 get recipientUserId => $_getI64(0);
|
||||
@$pb.TagNumber(1)
|
||||
set recipientUserId($fixnum.Int64 value) => $_setInt64(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasRecipientUserId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearRecipientUserId() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.List<$core.int> get sealedSenderMessage => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set sealedSenderMessage($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasSealedSenderMessage() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearSealedSenderMessage() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.List<$core.int> get privacyPassToken => $_getN(2);
|
||||
@$pb.TagNumber(3)
|
||||
set privacyPassToken($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasPrivacyPassToken() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearPrivacyPassToken() => $_clearField(3);
|
||||
}
|
||||
|
||||
class SealedSenderMessageResponse extends $pb.GeneratedMessage {
|
||||
factory SealedSenderMessageResponse({
|
||||
$core.String? messageId,
|
||||
}) {
|
||||
final result = create();
|
||||
if (messageId != null) result.messageId = messageId;
|
||||
return result;
|
||||
}
|
||||
|
||||
SealedSenderMessageResponse._();
|
||||
|
||||
factory SealedSenderMessageResponse.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory SealedSenderMessageResponse.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'SealedSenderMessageResponse',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'),
|
||||
createEmptyInstance: create)
|
||||
..aOS(1, _omitFieldNames ? '' : 'messageId')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
SealedSenderMessageResponse clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
SealedSenderMessageResponse copyWith(
|
||||
void Function(SealedSenderMessageResponse) updates) =>
|
||||
super.copyWith(
|
||||
(message) => updates(message as SealedSenderMessageResponse))
|
||||
as SealedSenderMessageResponse;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static SealedSenderMessageResponse create() =>
|
||||
SealedSenderMessageResponse._();
|
||||
@$core.override
|
||||
SealedSenderMessageResponse createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static SealedSenderMessageResponse getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<SealedSenderMessageResponse>(create);
|
||||
static SealedSenderMessageResponse? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.String get messageId => $_getSZ(0);
|
||||
@$pb.TagNumber(1)
|
||||
set messageId($core.String value) => $_setString(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasMessageId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearMessageId() => $_clearField(1);
|
||||
}
|
||||
|
||||
class UpdateGroupState_UpdateTBS extends $pb.GeneratedMessage {
|
||||
factory UpdateGroupState_UpdateTBS({
|
||||
$fixnum.Int64? versionId,
|
||||
$core.List<$core.int>? encryptedGroupState,
|
||||
$core.List<$core.int>? publicKey,
|
||||
$core.List<$core.int>? removeAdmin,
|
||||
$core.List<$core.int>? addAdmin,
|
||||
$core.List<$core.int>? nonce,
|
||||
}) {
|
||||
final result = create();
|
||||
if (versionId != null) result.versionId = versionId;
|
||||
if (encryptedGroupState != null)
|
||||
result.encryptedGroupState = encryptedGroupState;
|
||||
if (publicKey != null) result.publicKey = publicKey;
|
||||
if (removeAdmin != null) result.removeAdmin = removeAdmin;
|
||||
if (addAdmin != null) result.addAdmin = addAdmin;
|
||||
if (nonce != null) result.nonce = nonce;
|
||||
return result;
|
||||
}
|
||||
|
||||
UpdateGroupState_UpdateTBS._();
|
||||
|
||||
factory UpdateGroupState_UpdateTBS.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory UpdateGroupState_UpdateTBS.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'UpdateGroupState.UpdateTBS',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'),
|
||||
createEmptyInstance: create)
|
||||
..a<$fixnum.Int64>(
|
||||
1, _omitFieldNames ? '' : 'versionId', $pb.PbFieldType.OU6,
|
||||
defaultOrMaker: $fixnum.Int64.ZERO)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'encryptedGroupState', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
4, _omitFieldNames ? '' : 'publicKey', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
5, _omitFieldNames ? '' : 'removeAdmin', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
6, _omitFieldNames ? '' : 'addAdmin', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
7, _omitFieldNames ? '' : 'nonce', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UpdateGroupState_UpdateTBS clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UpdateGroupState_UpdateTBS copyWith(
|
||||
void Function(UpdateGroupState_UpdateTBS) updates) =>
|
||||
super.copyWith(
|
||||
(message) => updates(message as UpdateGroupState_UpdateTBS))
|
||||
as UpdateGroupState_UpdateTBS;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UpdateGroupState_UpdateTBS create() => UpdateGroupState_UpdateTBS._();
|
||||
@$core.override
|
||||
UpdateGroupState_UpdateTBS createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UpdateGroupState_UpdateTBS getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<UpdateGroupState_UpdateTBS>(create);
|
||||
static UpdateGroupState_UpdateTBS? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$fixnum.Int64 get versionId => $_getI64(0);
|
||||
@$pb.TagNumber(1)
|
||||
set versionId($fixnum.Int64 value) => $_setInt64(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasVersionId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearVersionId() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.List<$core.int> get encryptedGroupState => $_getN(1);
|
||||
@$pb.TagNumber(3)
|
||||
set encryptedGroupState($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasEncryptedGroupState() => $_has(1);
|
||||
@$pb.TagNumber(3)
|
||||
void clearEncryptedGroupState() => $_clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
$core.List<$core.int> get publicKey => $_getN(2);
|
||||
@$pb.TagNumber(4)
|
||||
set publicKey($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasPublicKey() => $_has(2);
|
||||
@$pb.TagNumber(4)
|
||||
void clearPublicKey() => $_clearField(4);
|
||||
|
||||
/// public group key
|
||||
@$pb.TagNumber(5)
|
||||
$core.List<$core.int> get removeAdmin => $_getN(3);
|
||||
@$pb.TagNumber(5)
|
||||
set removeAdmin($core.List<$core.int> value) => $_setBytes(3, value);
|
||||
@$pb.TagNumber(5)
|
||||
$core.bool hasRemoveAdmin() => $_has(3);
|
||||
@$pb.TagNumber(5)
|
||||
void clearRemoveAdmin() => $_clearField(5);
|
||||
|
||||
@$pb.TagNumber(6)
|
||||
$core.List<$core.int> get addAdmin => $_getN(4);
|
||||
@$pb.TagNumber(6)
|
||||
set addAdmin($core.List<$core.int> value) => $_setBytes(4, value);
|
||||
@$pb.TagNumber(6)
|
||||
$core.bool hasAddAdmin() => $_has(4);
|
||||
@$pb.TagNumber(6)
|
||||
void clearAddAdmin() => $_clearField(6);
|
||||
|
||||
@$pb.TagNumber(7)
|
||||
$core.List<$core.int> get nonce => $_getN(5);
|
||||
@$pb.TagNumber(7)
|
||||
set nonce($core.List<$core.int> value) => $_setBytes(5, value);
|
||||
@$pb.TagNumber(7)
|
||||
$core.bool hasNonce() => $_has(5);
|
||||
@$pb.TagNumber(7)
|
||||
void clearNonce() => $_clearField(7);
|
||||
}
|
||||
|
||||
/// plaintext message send to the server
|
||||
class UpdateGroupState extends $pb.GeneratedMessage {
|
||||
factory UpdateGroupState({
|
||||
UpdateGroupState_UpdateTBS? update,
|
||||
$core.List<$core.int>? signature,
|
||||
}) {
|
||||
final result = create();
|
||||
if (update != null) result.update = update;
|
||||
if (signature != null) result.signature = signature;
|
||||
return result;
|
||||
}
|
||||
|
||||
UpdateGroupState._();
|
||||
|
||||
factory UpdateGroupState.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory UpdateGroupState.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'UpdateGroupState',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'),
|
||||
createEmptyInstance: create)
|
||||
..aOM<UpdateGroupState_UpdateTBS>(1, _omitFieldNames ? '' : 'update',
|
||||
subBuilder: UpdateGroupState_UpdateTBS.create)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'signature', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UpdateGroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UpdateGroupState copyWith(void Function(UpdateGroupState) updates) =>
|
||||
super.copyWith((message) => updates(message as UpdateGroupState))
|
||||
as UpdateGroupState;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UpdateGroupState create() => UpdateGroupState._();
|
||||
@$core.override
|
||||
UpdateGroupState createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UpdateGroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<UpdateGroupState>(create);
|
||||
static UpdateGroupState? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
UpdateGroupState_UpdateTBS get update => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set update(UpdateGroupState_UpdateTBS value) => $_setField(1, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasUpdate() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearUpdate() => $_clearField(1);
|
||||
@$pb.TagNumber(1)
|
||||
UpdateGroupState_UpdateTBS ensureUpdate() => $_ensure(0);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.List<$core.int> get signature => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set signature($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasSignature() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearSignature() => $_clearField(2);
|
||||
}
|
||||
|
||||
class NewGroupState extends $pb.GeneratedMessage {
|
||||
factory NewGroupState({
|
||||
$core.String? groupId,
|
||||
$fixnum.Int64? versionId,
|
||||
$core.List<$core.int>? encryptedGroupState,
|
||||
$core.List<$core.int>? publicKey,
|
||||
}) {
|
||||
final result = create();
|
||||
if (groupId != null) result.groupId = groupId;
|
||||
if (versionId != null) result.versionId = versionId;
|
||||
if (encryptedGroupState != null)
|
||||
result.encryptedGroupState = encryptedGroupState;
|
||||
if (publicKey != null) result.publicKey = publicKey;
|
||||
return result;
|
||||
}
|
||||
|
||||
NewGroupState._();
|
||||
|
||||
factory NewGroupState.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory NewGroupState.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'NewGroupState',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'),
|
||||
createEmptyInstance: create)
|
||||
..aOS(1, _omitFieldNames ? '' : 'groupId')
|
||||
..a<$fixnum.Int64>(
|
||||
2, _omitFieldNames ? '' : 'versionId', $pb.PbFieldType.OU6,
|
||||
defaultOrMaker: $fixnum.Int64.ZERO)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'encryptedGroupState', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
4, _omitFieldNames ? '' : 'publicKey', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
NewGroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
NewGroupState copyWith(void Function(NewGroupState) updates) =>
|
||||
super.copyWith((message) => updates(message as NewGroupState))
|
||||
as NewGroupState;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static NewGroupState create() => NewGroupState._();
|
||||
@$core.override
|
||||
NewGroupState createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static NewGroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<NewGroupState>(create);
|
||||
static NewGroupState? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.String get groupId => $_getSZ(0);
|
||||
@$pb.TagNumber(1)
|
||||
set groupId($core.String value) => $_setString(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasGroupId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearGroupId() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$fixnum.Int64 get versionId => $_getI64(1);
|
||||
@$pb.TagNumber(2)
|
||||
set versionId($fixnum.Int64 value) => $_setInt64(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasVersionId() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearVersionId() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.List<$core.int> get encryptedGroupState => $_getN(2);
|
||||
@$pb.TagNumber(3)
|
||||
set encryptedGroupState($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasEncryptedGroupState() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearEncryptedGroupState() => $_clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
$core.List<$core.int> get publicKey => $_getN(3);
|
||||
@$pb.TagNumber(4)
|
||||
set publicKey($core.List<$core.int> value) => $_setBytes(3, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasPublicKey() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearPublicKey() => $_clearField(4);
|
||||
}
|
||||
|
||||
class AppendGroupState_AppendTBS extends $pb.GeneratedMessage {
|
||||
factory AppendGroupState_AppendTBS({
|
||||
$core.List<$core.int>? encryptedGroupStateAppend,
|
||||
$core.List<$core.int>? publicKey,
|
||||
$core.String? groupId,
|
||||
$core.List<$core.int>? nonce,
|
||||
}) {
|
||||
final result = create();
|
||||
if (encryptedGroupStateAppend != null)
|
||||
result.encryptedGroupStateAppend = encryptedGroupStateAppend;
|
||||
if (publicKey != null) result.publicKey = publicKey;
|
||||
if (groupId != null) result.groupId = groupId;
|
||||
if (nonce != null) result.nonce = nonce;
|
||||
return result;
|
||||
}
|
||||
|
||||
AppendGroupState_AppendTBS._();
|
||||
|
||||
factory AppendGroupState_AppendTBS.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory AppendGroupState_AppendTBS.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'AppendGroupState.AppendTBS',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'),
|
||||
createEmptyInstance: create)
|
||||
..a<$core.List<$core.int>>(1,
|
||||
_omitFieldNames ? '' : 'encryptedGroupStateAppend', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'publicKey', $pb.PbFieldType.OY)
|
||||
..aOS(3, _omitFieldNames ? '' : 'groupId')
|
||||
..a<$core.List<$core.int>>(
|
||||
4, _omitFieldNames ? '' : 'nonce', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupState_AppendTBS clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupState_AppendTBS copyWith(
|
||||
void Function(AppendGroupState_AppendTBS) updates) =>
|
||||
super.copyWith(
|
||||
(message) => updates(message as AppendGroupState_AppendTBS))
|
||||
as AppendGroupState_AppendTBS;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static AppendGroupState_AppendTBS create() => AppendGroupState_AppendTBS._();
|
||||
@$core.override
|
||||
AppendGroupState_AppendTBS createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static AppendGroupState_AppendTBS getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<AppendGroupState_AppendTBS>(create);
|
||||
static AppendGroupState_AppendTBS? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.List<$core.int> get encryptedGroupStateAppend => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set encryptedGroupStateAppend($core.List<$core.int> value) =>
|
||||
$_setBytes(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasEncryptedGroupStateAppend() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearEncryptedGroupStateAppend() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.List<$core.int> get publicKey => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set publicKey($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasPublicKey() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearPublicKey() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.String get groupId => $_getSZ(2);
|
||||
@$pb.TagNumber(3)
|
||||
set groupId($core.String value) => $_setString(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasGroupId() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearGroupId() => $_clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
$core.List<$core.int> get nonce => $_getN(3);
|
||||
@$pb.TagNumber(4)
|
||||
set nonce($core.List<$core.int> value) => $_setBytes(3, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasNonce() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearNonce() => $_clearField(4);
|
||||
}
|
||||
|
||||
class AppendGroupState extends $pb.GeneratedMessage {
|
||||
factory AppendGroupState({
|
||||
$core.List<$core.int>? signature,
|
||||
AppendGroupState_AppendTBS? appendTBS,
|
||||
$fixnum.Int64? versionId,
|
||||
}) {
|
||||
final result = create();
|
||||
if (signature != null) result.signature = signature;
|
||||
if (appendTBS != null) result.appendTBS = appendTBS;
|
||||
if (versionId != null) result.versionId = versionId;
|
||||
return result;
|
||||
}
|
||||
|
||||
AppendGroupState._();
|
||||
|
||||
factory AppendGroupState.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory AppendGroupState.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'AppendGroupState',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'),
|
||||
createEmptyInstance: create)
|
||||
..a<$core.List<$core.int>>(
|
||||
1, _omitFieldNames ? '' : 'signature', $pb.PbFieldType.OY)
|
||||
..aOM<AppendGroupState_AppendTBS>(2, _omitFieldNames ? '' : 'appendTBS',
|
||||
protoName: 'appendTBS', subBuilder: AppendGroupState_AppendTBS.create)
|
||||
..a<$fixnum.Int64>(
|
||||
3, _omitFieldNames ? '' : 'versionId', $pb.PbFieldType.OU6,
|
||||
protoName: 'versionId', defaultOrMaker: $fixnum.Int64.ZERO)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupState copyWith(void Function(AppendGroupState) updates) =>
|
||||
super.copyWith((message) => updates(message as AppendGroupState))
|
||||
as AppendGroupState;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static AppendGroupState create() => AppendGroupState._();
|
||||
@$core.override
|
||||
AppendGroupState createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static AppendGroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<AppendGroupState>(create);
|
||||
static AppendGroupState? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.List<$core.int> get signature => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set signature($core.List<$core.int> value) => $_setBytes(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasSignature() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearSignature() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
AppendGroupState_AppendTBS get appendTBS => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set appendTBS(AppendGroupState_AppendTBS value) => $_setField(2, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasAppendTBS() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearAppendTBS() => $_clearField(2);
|
||||
@$pb.TagNumber(2)
|
||||
AppendGroupState_AppendTBS ensureAppendTBS() => $_ensure(1);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$fixnum.Int64 get versionId => $_getI64(2);
|
||||
@$pb.TagNumber(3)
|
||||
set versionId($fixnum.Int64 value) => $_setInt64(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasVersionId() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearVersionId() => $_clearField(3);
|
||||
}
|
||||
|
||||
class GroupState extends $pb.GeneratedMessage {
|
||||
factory GroupState({
|
||||
$fixnum.Int64? versionId,
|
||||
$core.List<$core.int>? encryptedGroupState,
|
||||
$core.Iterable<AppendGroupState>? appendedGroupStates,
|
||||
}) {
|
||||
final result = create();
|
||||
if (versionId != null) result.versionId = versionId;
|
||||
if (encryptedGroupState != null)
|
||||
result.encryptedGroupState = encryptedGroupState;
|
||||
if (appendedGroupStates != null)
|
||||
result.appendedGroupStates.addAll(appendedGroupStates);
|
||||
return result;
|
||||
}
|
||||
|
||||
GroupState._();
|
||||
|
||||
factory GroupState.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory GroupState.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'GroupState',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'),
|
||||
createEmptyInstance: create)
|
||||
..a<$fixnum.Int64>(
|
||||
1, _omitFieldNames ? '' : 'versionId', $pb.PbFieldType.OU6,
|
||||
defaultOrMaker: $fixnum.Int64.ZERO)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'encryptedGroupState', $pb.PbFieldType.OY)
|
||||
..pPM<AppendGroupState>(3, _omitFieldNames ? '' : 'appendedGroupStates',
|
||||
subBuilder: AppendGroupState.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
GroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
GroupState copyWith(void Function(GroupState) updates) =>
|
||||
super.copyWith((message) => updates(message as GroupState)) as GroupState;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static GroupState create() => GroupState._();
|
||||
@$core.override
|
||||
GroupState createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static GroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<GroupState>(create);
|
||||
static GroupState? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$fixnum.Int64 get versionId => $_getI64(0);
|
||||
@$pb.TagNumber(1)
|
||||
set versionId($fixnum.Int64 value) => $_setInt64(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasVersionId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearVersionId() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.List<$core.int> get encryptedGroupState => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set encryptedGroupState($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasEncryptedGroupState() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearEncryptedGroupState() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$pb.PbList<AppendGroupState> get appendedGroupStates => $_getList(2);
|
||||
}
|
||||
|
||||
/// this is just a database helper to store multiple appends
|
||||
class AppendGroupStateHelper extends $pb.GeneratedMessage {
|
||||
factory AppendGroupStateHelper({
|
||||
$core.Iterable<AppendGroupState>? appendedGroupStates,
|
||||
}) {
|
||||
final result = create();
|
||||
if (appendedGroupStates != null)
|
||||
result.appendedGroupStates.addAll(appendedGroupStates);
|
||||
return result;
|
||||
}
|
||||
|
||||
AppendGroupStateHelper._();
|
||||
|
||||
factory AppendGroupStateHelper.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory AppendGroupStateHelper.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'AppendGroupStateHelper',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'),
|
||||
createEmptyInstance: create)
|
||||
..pPM<AppendGroupState>(1, _omitFieldNames ? '' : 'appendedGroupStates',
|
||||
subBuilder: AppendGroupState.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupStateHelper clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupStateHelper copyWith(
|
||||
void Function(AppendGroupStateHelper) updates) =>
|
||||
super.copyWith((message) => updates(message as AppendGroupStateHelper))
|
||||
as AppendGroupStateHelper;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static AppendGroupStateHelper create() => AppendGroupStateHelper._();
|
||||
@$core.override
|
||||
AppendGroupStateHelper createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static AppendGroupStateHelper getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<AppendGroupStateHelper>(create);
|
||||
static AppendGroupStateHelper? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$pb.PbList<AppendGroupState> get appendedGroupStates => $_getList(0);
|
||||
}
|
||||
|
||||
const $core.bool _omitFieldNames =
|
||||
$core.bool.fromEnvironment('protobuf.omit_field_names');
|
||||
const $core.bool _omitMessageNames =
|
||||
|
|
|
|||
|
|
@ -64,232 +64,3 @@ final $typed_data.Uint8List uploadRequestDescriptor = $convert.base64Decode(
|
|||
'cKD2Rvd25sb2FkX3Rva2VucxgCIAMoDFIOZG93bmxvYWRUb2tlbnMSSgoTbWVzc2FnZXNfb25f'
|
||||
'c3VjY2VzcxgDIAMoCzIaLmh0dHBfcmVxdWVzdHMuVGV4dE1lc3NhZ2VSEW1lc3NhZ2VzT25TdW'
|
||||
'NjZXNz');
|
||||
|
||||
@$core.Deprecated('Use sealedSenderMessageRequestDescriptor instead')
|
||||
const SealedSenderMessageRequest$json = {
|
||||
'1': 'SealedSenderMessageRequest',
|
||||
'2': [
|
||||
{'1': 'recipient_user_id', '3': 1, '4': 1, '5': 3, '10': 'recipientUserId'},
|
||||
{
|
||||
'1': 'sealed_sender_message',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'sealedSenderMessage'
|
||||
},
|
||||
{
|
||||
'1': 'privacy_pass_token',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'privacyPassToken'
|
||||
},
|
||||
],
|
||||
'9': [
|
||||
{'1': 4, '2': 5},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `SealedSenderMessageRequest`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List sealedSenderMessageRequestDescriptor = $convert.base64Decode(
|
||||
'ChpTZWFsZWRTZW5kZXJNZXNzYWdlUmVxdWVzdBIqChFyZWNpcGllbnRfdXNlcl9pZBgBIAEoA1'
|
||||
'IPcmVjaXBpZW50VXNlcklkEjIKFXNlYWxlZF9zZW5kZXJfbWVzc2FnZRgCIAEoDFITc2VhbGVk'
|
||||
'U2VuZGVyTWVzc2FnZRIsChJwcml2YWN5X3Bhc3NfdG9rZW4YAyABKAxSEHByaXZhY3lQYXNzVG'
|
||||
'9rZW5KBAgEEAU=');
|
||||
|
||||
@$core.Deprecated('Use sealedSenderMessageResponseDescriptor instead')
|
||||
const SealedSenderMessageResponse$json = {
|
||||
'1': 'SealedSenderMessageResponse',
|
||||
'2': [
|
||||
{'1': 'message_id', '3': 1, '4': 1, '5': 9, '10': 'messageId'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `SealedSenderMessageResponse`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List sealedSenderMessageResponseDescriptor =
|
||||
$convert.base64Decode(
|
||||
'ChtTZWFsZWRTZW5kZXJNZXNzYWdlUmVzcG9uc2USHQoKbWVzc2FnZV9pZBgBIAEoCVIJbWVzc2'
|
||||
'FnZUlk');
|
||||
|
||||
@$core.Deprecated('Use updateGroupStateDescriptor instead')
|
||||
const UpdateGroupState$json = {
|
||||
'1': 'UpdateGroupState',
|
||||
'2': [
|
||||
{
|
||||
'1': 'update',
|
||||
'3': 1,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.http_requests.UpdateGroupState.UpdateTBS',
|
||||
'10': 'update'
|
||||
},
|
||||
{'1': 'signature', '3': 2, '4': 1, '5': 12, '10': 'signature'},
|
||||
],
|
||||
'3': [UpdateGroupState_UpdateTBS$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use updateGroupStateDescriptor instead')
|
||||
const UpdateGroupState_UpdateTBS$json = {
|
||||
'1': 'UpdateTBS',
|
||||
'2': [
|
||||
{'1': 'version_id', '3': 1, '4': 1, '5': 4, '10': 'versionId'},
|
||||
{
|
||||
'1': 'encrypted_group_state',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'encryptedGroupState'
|
||||
},
|
||||
{'1': 'public_key', '3': 4, '4': 1, '5': 12, '10': 'publicKey'},
|
||||
{
|
||||
'1': 'remove_admin',
|
||||
'3': 5,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'9': 0,
|
||||
'10': 'removeAdmin',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'add_admin',
|
||||
'3': 6,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'9': 1,
|
||||
'10': 'addAdmin',
|
||||
'17': true
|
||||
},
|
||||
{'1': 'nonce', '3': 7, '4': 1, '5': 12, '10': 'nonce'},
|
||||
],
|
||||
'8': [
|
||||
{'1': '_remove_admin'},
|
||||
{'1': '_add_admin'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `UpdateGroupState`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List updateGroupStateDescriptor = $convert.base64Decode(
|
||||
'ChBVcGRhdGVHcm91cFN0YXRlEkEKBnVwZGF0ZRgBIAEoCzIpLmh0dHBfcmVxdWVzdHMuVXBkYX'
|
||||
'RlR3JvdXBTdGF0ZS5VcGRhdGVUQlNSBnVwZGF0ZRIcCglzaWduYXR1cmUYAiABKAxSCXNpZ25h'
|
||||
'dHVyZRr8AQoJVXBkYXRlVEJTEh0KCnZlcnNpb25faWQYASABKARSCXZlcnNpb25JZBIyChVlbm'
|
||||
'NyeXB0ZWRfZ3JvdXBfc3RhdGUYAyABKAxSE2VuY3J5cHRlZEdyb3VwU3RhdGUSHQoKcHVibGlj'
|
||||
'X2tleRgEIAEoDFIJcHVibGljS2V5EiYKDHJlbW92ZV9hZG1pbhgFIAEoDEgAUgtyZW1vdmVBZG'
|
||||
'1pbogBARIgCglhZGRfYWRtaW4YBiABKAxIAVIIYWRkQWRtaW6IAQESFAoFbm9uY2UYByABKAxS'
|
||||
'BW5vbmNlQg8KDV9yZW1vdmVfYWRtaW5CDAoKX2FkZF9hZG1pbg==');
|
||||
|
||||
@$core.Deprecated('Use newGroupStateDescriptor instead')
|
||||
const NewGroupState$json = {
|
||||
'1': 'NewGroupState',
|
||||
'2': [
|
||||
{'1': 'group_id', '3': 1, '4': 1, '5': 9, '10': 'groupId'},
|
||||
{'1': 'version_id', '3': 2, '4': 1, '5': 4, '10': 'versionId'},
|
||||
{
|
||||
'1': 'encrypted_group_state',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'encryptedGroupState'
|
||||
},
|
||||
{'1': 'public_key', '3': 4, '4': 1, '5': 12, '10': 'publicKey'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `NewGroupState`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List newGroupStateDescriptor = $convert.base64Decode(
|
||||
'Cg1OZXdHcm91cFN0YXRlEhkKCGdyb3VwX2lkGAEgASgJUgdncm91cElkEh0KCnZlcnNpb25faW'
|
||||
'QYAiABKARSCXZlcnNpb25JZBIyChVlbmNyeXB0ZWRfZ3JvdXBfc3RhdGUYAyABKAxSE2VuY3J5'
|
||||
'cHRlZEdyb3VwU3RhdGUSHQoKcHVibGljX2tleRgEIAEoDFIJcHVibGljS2V5');
|
||||
|
||||
@$core.Deprecated('Use appendGroupStateDescriptor instead')
|
||||
const AppendGroupState$json = {
|
||||
'1': 'AppendGroupState',
|
||||
'2': [
|
||||
{'1': 'signature', '3': 1, '4': 1, '5': 12, '10': 'signature'},
|
||||
{
|
||||
'1': 'appendTBS',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.http_requests.AppendGroupState.AppendTBS',
|
||||
'10': 'appendTBS'
|
||||
},
|
||||
{'1': 'versionId', '3': 3, '4': 1, '5': 4, '10': 'versionId'},
|
||||
],
|
||||
'3': [AppendGroupState_AppendTBS$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use appendGroupStateDescriptor instead')
|
||||
const AppendGroupState_AppendTBS$json = {
|
||||
'1': 'AppendTBS',
|
||||
'2': [
|
||||
{
|
||||
'1': 'encrypted_group_state_append',
|
||||
'3': 1,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'encryptedGroupStateAppend'
|
||||
},
|
||||
{'1': 'public_key', '3': 2, '4': 1, '5': 12, '10': 'publicKey'},
|
||||
{'1': 'group_id', '3': 3, '4': 1, '5': 9, '10': 'groupId'},
|
||||
{'1': 'nonce', '3': 4, '4': 1, '5': 12, '10': 'nonce'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `AppendGroupState`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List appendGroupStateDescriptor = $convert.base64Decode(
|
||||
'ChBBcHBlbmRHcm91cFN0YXRlEhwKCXNpZ25hdHVyZRgBIAEoDFIJc2lnbmF0dXJlEkcKCWFwcG'
|
||||
'VuZFRCUxgCIAEoCzIpLmh0dHBfcmVxdWVzdHMuQXBwZW5kR3JvdXBTdGF0ZS5BcHBlbmRUQlNS'
|
||||
'CWFwcGVuZFRCUxIcCgl2ZXJzaW9uSWQYAyABKARSCXZlcnNpb25JZBqcAQoJQXBwZW5kVEJTEj'
|
||||
'8KHGVuY3J5cHRlZF9ncm91cF9zdGF0ZV9hcHBlbmQYASABKAxSGWVuY3J5cHRlZEdyb3VwU3Rh'
|
||||
'dGVBcHBlbmQSHQoKcHVibGljX2tleRgCIAEoDFIJcHVibGljS2V5EhkKCGdyb3VwX2lkGAMgAS'
|
||||
'gJUgdncm91cElkEhQKBW5vbmNlGAQgASgMUgVub25jZQ==');
|
||||
|
||||
@$core.Deprecated('Use groupStateDescriptor instead')
|
||||
const GroupState$json = {
|
||||
'1': 'GroupState',
|
||||
'2': [
|
||||
{'1': 'version_id', '3': 1, '4': 1, '5': 4, '10': 'versionId'},
|
||||
{
|
||||
'1': 'encrypted_group_state',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'encryptedGroupState'
|
||||
},
|
||||
{
|
||||
'1': 'appended_group_states',
|
||||
'3': 3,
|
||||
'4': 3,
|
||||
'5': 11,
|
||||
'6': '.http_requests.AppendGroupState',
|
||||
'10': 'appendedGroupStates'
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `GroupState`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List groupStateDescriptor = $convert.base64Decode(
|
||||
'CgpHcm91cFN0YXRlEh0KCnZlcnNpb25faWQYASABKARSCXZlcnNpb25JZBIyChVlbmNyeXB0ZW'
|
||||
'RfZ3JvdXBfc3RhdGUYAiABKAxSE2VuY3J5cHRlZEdyb3VwU3RhdGUSUwoVYXBwZW5kZWRfZ3Jv'
|
||||
'dXBfc3RhdGVzGAMgAygLMh8uaHR0cF9yZXF1ZXN0cy5BcHBlbmRHcm91cFN0YXRlUhNhcHBlbm'
|
||||
'RlZEdyb3VwU3RhdGVz');
|
||||
|
||||
@$core.Deprecated('Use appendGroupStateHelperDescriptor instead')
|
||||
const AppendGroupStateHelper$json = {
|
||||
'1': 'AppendGroupStateHelper',
|
||||
'2': [
|
||||
{
|
||||
'1': 'appended_group_states',
|
||||
'3': 1,
|
||||
'4': 3,
|
||||
'5': 11,
|
||||
'6': '.http_requests.AppendGroupState',
|
||||
'10': 'appendedGroupStates'
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `AppendGroupStateHelper`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List appendGroupStateHelperDescriptor = $convert.base64Decode(
|
||||
'ChZBcHBlbmRHcm91cFN0YXRlSGVscGVyElMKFWFwcGVuZGVkX2dyb3VwX3N0YXRlcxgBIAMoCz'
|
||||
'IfLmh0dHBfcmVxdWVzdHMuQXBwZW5kR3JvdXBTdGF0ZVITYXBwZW5kZWRHcm91cFN0YXRlcw==');
|
||||
|
|
|
|||
|
|
@ -21,565 +21,6 @@ export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;
|
|||
|
||||
export 'messages.pbenum.dart';
|
||||
|
||||
class EncryptedMessageEnvelope extends $pb.GeneratedMessage {
|
||||
factory EncryptedMessageEnvelope({
|
||||
$core.List<$core.int>? ephemeralPublicKey,
|
||||
$core.List<$core.int>? nonce,
|
||||
$core.List<$core.int>? ciphertext,
|
||||
}) {
|
||||
final result = create();
|
||||
if (ephemeralPublicKey != null)
|
||||
result.ephemeralPublicKey = ephemeralPublicKey;
|
||||
if (nonce != null) result.nonce = nonce;
|
||||
if (ciphertext != null) result.ciphertext = ciphertext;
|
||||
return result;
|
||||
}
|
||||
|
||||
EncryptedMessageEnvelope._();
|
||||
|
||||
factory EncryptedMessageEnvelope.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory EncryptedMessageEnvelope.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedMessageEnvelope',
|
||||
createEmptyInstance: create)
|
||||
..a<$core.List<$core.int>>(
|
||||
1, _omitFieldNames ? '' : 'ephemeralPublicKey', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'nonce', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'ciphertext', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedMessageEnvelope clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedMessageEnvelope copyWith(
|
||||
void Function(EncryptedMessageEnvelope) updates) =>
|
||||
super.copyWith((message) => updates(message as EncryptedMessageEnvelope))
|
||||
as EncryptedMessageEnvelope;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedMessageEnvelope create() => EncryptedMessageEnvelope._();
|
||||
@$core.override
|
||||
EncryptedMessageEnvelope createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedMessageEnvelope getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedMessageEnvelope>(create);
|
||||
static EncryptedMessageEnvelope? _defaultInstance;
|
||||
|
||||
/// Fresh 32-byte X25519 public key generated for this envelope. The sender
|
||||
/// derives the encryption key from this ephemeral key pair and the recipient's
|
||||
/// public identity key using HKDF-SHA-256 with an empty salt and a 32-byte
|
||||
/// output. HKDF info must be the UTF-8 bytes of
|
||||
/// "twonly-message-envelope-encryption-v1" followed by ephemeral_public_key
|
||||
/// and the recipient's serialized public identity key.
|
||||
@$pb.TagNumber(1)
|
||||
$core.List<$core.int> get ephemeralPublicKey => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set ephemeralPublicKey($core.List<$core.int> value) => $_setBytes(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasEphemeralPublicKey() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearEphemeralPublicKey() => $_clearField(1);
|
||||
|
||||
/// Fresh 24-byte XChaCha20-Poly1305 nonce.
|
||||
@$pb.TagNumber(2)
|
||||
$core.List<$core.int> get nonce => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set nonce($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasNonce() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearNonce() => $_clearField(2);
|
||||
|
||||
/// Serialized MessageEnvelope encrypted with XChaCha20-Poly1305. This includes
|
||||
/// the 16-byte Poly1305 authentication tag. The AEAD associated data is exactly
|
||||
/// the UTF-8 bytes of "twonly-message-envelope-encryption-v1".
|
||||
@$pb.TagNumber(3)
|
||||
$core.List<$core.int> get ciphertext => $_getN(2);
|
||||
@$pb.TagNumber(3)
|
||||
set ciphertext($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasCiphertext() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearCiphertext() => $_clearField(3);
|
||||
}
|
||||
|
||||
class MessageEnvelope extends $pb.GeneratedMessage {
|
||||
factory MessageEnvelope({
|
||||
$core.List<$core.int>? signedPayload,
|
||||
$core.List<$core.int>? signature,
|
||||
}) {
|
||||
final result = create();
|
||||
if (signedPayload != null) result.signedPayload = signedPayload;
|
||||
if (signature != null) result.signature = signature;
|
||||
return result;
|
||||
}
|
||||
|
||||
MessageEnvelope._();
|
||||
|
||||
factory MessageEnvelope.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory MessageEnvelope.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'MessageEnvelope',
|
||||
createEmptyInstance: create)
|
||||
..a<$core.List<$core.int>>(
|
||||
1, _omitFieldNames ? '' : 'signedPayload', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'signature', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
MessageEnvelope clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
MessageEnvelope copyWith(void Function(MessageEnvelope) updates) =>
|
||||
super.copyWith((message) => updates(message as MessageEnvelope))
|
||||
as MessageEnvelope;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static MessageEnvelope create() => MessageEnvelope._();
|
||||
@$core.override
|
||||
MessageEnvelope createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static MessageEnvelope getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<MessageEnvelope>(create);
|
||||
static MessageEnvelope? _defaultInstance;
|
||||
|
||||
/// Exact serialized MessageEnvelopePayload bytes. The signature is calculated
|
||||
/// directly over these bytes. Keeping the serialized payload allows verification
|
||||
/// without relying on canonical protobuf serialization.
|
||||
@$pb.TagNumber(1)
|
||||
$core.List<$core.int> get signedPayload => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set signedPayload($core.List<$core.int> value) => $_setBytes(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasSignedPayload() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearSignedPayload() => $_clearField(1);
|
||||
|
||||
/// Signature created with the sender's identity key. For a known contact, use
|
||||
/// the pinned public identity key. For an unknown sender, fetch the public key
|
||||
/// from the trusted server, verify this signature, and only then pin the key and
|
||||
/// process the raw message.
|
||||
@$pb.TagNumber(2)
|
||||
$core.List<$core.int> get signature => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set signature($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasSignature() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearSignature() => $_clearField(2);
|
||||
}
|
||||
|
||||
class MessageEnvelopePayload extends $pb.GeneratedMessage {
|
||||
factory MessageEnvelopePayload({
|
||||
$core.String? magic,
|
||||
$fixnum.Int64? fromUserId,
|
||||
$fixnum.Int64? recipientUserId,
|
||||
Message? message,
|
||||
$fixnum.Int64? createdAtUnixSeconds,
|
||||
}) {
|
||||
final result = create();
|
||||
if (magic != null) result.magic = magic;
|
||||
if (fromUserId != null) result.fromUserId = fromUserId;
|
||||
if (recipientUserId != null) result.recipientUserId = recipientUserId;
|
||||
if (message != null) result.message = message;
|
||||
if (createdAtUnixSeconds != null)
|
||||
result.createdAtUnixSeconds = createdAtUnixSeconds;
|
||||
return result;
|
||||
}
|
||||
|
||||
MessageEnvelopePayload._();
|
||||
|
||||
factory MessageEnvelopePayload.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory MessageEnvelopePayload.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'MessageEnvelopePayload',
|
||||
createEmptyInstance: create)
|
||||
..aOS(1, _omitFieldNames ? '' : 'magic')
|
||||
..aInt64(2, _omitFieldNames ? '' : 'fromUserId')
|
||||
..aInt64(3, _omitFieldNames ? '' : 'recipientUserId')
|
||||
..aOM<Message>(4, _omitFieldNames ? '' : 'message',
|
||||
subBuilder: Message.create)
|
||||
..aInt64(5, _omitFieldNames ? '' : 'createdAtUnixSeconds')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
MessageEnvelopePayload clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
MessageEnvelopePayload copyWith(
|
||||
void Function(MessageEnvelopePayload) updates) =>
|
||||
super.copyWith((message) => updates(message as MessageEnvelopePayload))
|
||||
as MessageEnvelopePayload;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static MessageEnvelopePayload create() => MessageEnvelopePayload._();
|
||||
@$core.override
|
||||
MessageEnvelopePayload createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static MessageEnvelopePayload getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<MessageEnvelopePayload>(create);
|
||||
static MessageEnvelopePayload? _defaultInstance;
|
||||
|
||||
/// Domain-separation and protocol-version marker. The receiver must reject the
|
||||
/// payload unless this is exactly "twonly-message-envelope-v1".
|
||||
@$pb.TagNumber(1)
|
||||
$core.String get magic => $_getSZ(0);
|
||||
@$pb.TagNumber(1)
|
||||
set magic($core.String value) => $_setString(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasMagic() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearMagic() => $_clearField(1);
|
||||
|
||||
/// The sender is protected by the encryption of the outer MessageEnvelope.
|
||||
@$pb.TagNumber(2)
|
||||
$fixnum.Int64 get fromUserId => $_getI64(1);
|
||||
@$pb.TagNumber(2)
|
||||
set fromUserId($fixnum.Int64 value) => $_setInt64(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasFromUserId() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearFromUserId() => $_clearField(2);
|
||||
|
||||
/// Bind the sender's signature to the intended recipient. This prevents a
|
||||
/// recipient from re-encrypting a valid signed envelope for another user. The
|
||||
/// binding is required because raw_message is not always a Signal ciphertext
|
||||
/// and therefore is not always independently bound to a Signal session. The
|
||||
/// receiver must reject an envelope when this ID does not match its own user ID.
|
||||
@$pb.TagNumber(3)
|
||||
$fixnum.Int64 get recipientUserId => $_getI64(2);
|
||||
@$pb.TagNumber(3)
|
||||
set recipientUserId($fixnum.Int64 value) => $_setInt64(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasRecipientUserId() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearRecipientUserId() => $_clearField(3);
|
||||
|
||||
/// The mandatory UUIDv4 receipt_id is covered by the envelope signature and is
|
||||
/// used by the receiver to reject replayed messages before processing them.
|
||||
@$pb.TagNumber(4)
|
||||
Message get message => $_getN(3);
|
||||
@$pb.TagNumber(4)
|
||||
set message(Message value) => $_setField(4, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasMessage() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearMessage() => $_clearField(4);
|
||||
@$pb.TagNumber(4)
|
||||
Message ensureMessage() => $_ensure(3);
|
||||
|
||||
/// UTC Unix timestamp in seconds when the envelope was created. The receiver
|
||||
/// must reject envelopes older than 45 days or more than five minutes in the
|
||||
/// future. This field is covered by the envelope signature.
|
||||
@$pb.TagNumber(5)
|
||||
$fixnum.Int64 get createdAtUnixSeconds => $_getI64(4);
|
||||
@$pb.TagNumber(5)
|
||||
set createdAtUnixSeconds($fixnum.Int64 value) => $_setInt64(4, value);
|
||||
@$pb.TagNumber(5)
|
||||
$core.bool hasCreatedAtUnixSeconds() => $_has(4);
|
||||
@$pb.TagNumber(5)
|
||||
void clearCreatedAtUnixSeconds() => $_clearField(5);
|
||||
}
|
||||
|
||||
class Message extends $pb.GeneratedMessage {
|
||||
factory Message({
|
||||
Message_Type? type,
|
||||
$core.String? receiptId,
|
||||
$core.List<$core.int>? encryptedContent,
|
||||
PlaintextContent? plaintextContent,
|
||||
}) {
|
||||
final result = create();
|
||||
if (type != null) result.type = type;
|
||||
if (receiptId != null) result.receiptId = receiptId;
|
||||
if (encryptedContent != null) result.encryptedContent = encryptedContent;
|
||||
if (plaintextContent != null) result.plaintextContent = plaintextContent;
|
||||
return result;
|
||||
}
|
||||
|
||||
Message._();
|
||||
|
||||
factory Message.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory Message.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'Message',
|
||||
createEmptyInstance: create)
|
||||
..aE<Message_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: Message_Type.values)
|
||||
..aOS(2, _omitFieldNames ? '' : 'receiptId')
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'encryptedContent', $pb.PbFieldType.OY)
|
||||
..aOM<PlaintextContent>(4, _omitFieldNames ? '' : 'plaintextContent',
|
||||
subBuilder: PlaintextContent.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Message clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Message copyWith(void Function(Message) updates) =>
|
||||
super.copyWith((message) => updates(message as Message)) as Message;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Message create() => Message._();
|
||||
@$core.override
|
||||
Message createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Message getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Message>(create);
|
||||
static Message? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
Message_Type get type => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set type(Message_Type value) => $_setField(1, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasType() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearType() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.String get receiptId => $_getSZ(1);
|
||||
@$pb.TagNumber(2)
|
||||
set receiptId($core.String value) => $_setString(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasReceiptId() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearReceiptId() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.List<$core.int> get encryptedContent => $_getN(2);
|
||||
@$pb.TagNumber(3)
|
||||
set encryptedContent($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasEncryptedContent() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearEncryptedContent() => $_clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
PlaintextContent get plaintextContent => $_getN(3);
|
||||
@$pb.TagNumber(4)
|
||||
set plaintextContent(PlaintextContent value) => $_setField(4, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasPlaintextContent() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearPlaintextContent() => $_clearField(4);
|
||||
@$pb.TagNumber(4)
|
||||
PlaintextContent ensurePlaintextContent() => $_ensure(3);
|
||||
}
|
||||
|
||||
class PlaintextContent_RetryErrorMessage extends $pb.GeneratedMessage {
|
||||
factory PlaintextContent_RetryErrorMessage() => create();
|
||||
|
||||
PlaintextContent_RetryErrorMessage._();
|
||||
|
||||
factory PlaintextContent_RetryErrorMessage.fromBuffer(
|
||||
$core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory PlaintextContent_RetryErrorMessage.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PlaintextContent.RetryErrorMessage',
|
||||
createEmptyInstance: create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent_RetryErrorMessage clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent_RetryErrorMessage copyWith(
|
||||
void Function(PlaintextContent_RetryErrorMessage) updates) =>
|
||||
super.copyWith((message) =>
|
||||
updates(message as PlaintextContent_RetryErrorMessage))
|
||||
as PlaintextContent_RetryErrorMessage;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PlaintextContent_RetryErrorMessage create() =>
|
||||
PlaintextContent_RetryErrorMessage._();
|
||||
@$core.override
|
||||
PlaintextContent_RetryErrorMessage createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PlaintextContent_RetryErrorMessage getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<PlaintextContent_RetryErrorMessage>(
|
||||
create);
|
||||
static PlaintextContent_RetryErrorMessage? _defaultInstance;
|
||||
}
|
||||
|
||||
class PlaintextContent_DecryptionErrorMessage extends $pb.GeneratedMessage {
|
||||
factory PlaintextContent_DecryptionErrorMessage({
|
||||
PlaintextContent_DecryptionErrorMessage_Type? type,
|
||||
}) {
|
||||
final result = create();
|
||||
if (type != null) result.type = type;
|
||||
return result;
|
||||
}
|
||||
|
||||
PlaintextContent_DecryptionErrorMessage._();
|
||||
|
||||
factory PlaintextContent_DecryptionErrorMessage.fromBuffer(
|
||||
$core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory PlaintextContent_DecryptionErrorMessage.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PlaintextContent.DecryptionErrorMessage',
|
||||
createEmptyInstance: create)
|
||||
..aE<PlaintextContent_DecryptionErrorMessage_Type>(
|
||||
1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: PlaintextContent_DecryptionErrorMessage_Type.values)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent_DecryptionErrorMessage clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent_DecryptionErrorMessage copyWith(
|
||||
void Function(PlaintextContent_DecryptionErrorMessage) updates) =>
|
||||
super.copyWith((message) =>
|
||||
updates(message as PlaintextContent_DecryptionErrorMessage))
|
||||
as PlaintextContent_DecryptionErrorMessage;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PlaintextContent_DecryptionErrorMessage create() =>
|
||||
PlaintextContent_DecryptionErrorMessage._();
|
||||
@$core.override
|
||||
PlaintextContent_DecryptionErrorMessage createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PlaintextContent_DecryptionErrorMessage getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
PlaintextContent_DecryptionErrorMessage>(create);
|
||||
static PlaintextContent_DecryptionErrorMessage? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
PlaintextContent_DecryptionErrorMessage_Type get type => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set type(PlaintextContent_DecryptionErrorMessage_Type value) =>
|
||||
$_setField(1, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasType() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearType() => $_clearField(1);
|
||||
}
|
||||
|
||||
class PlaintextContent extends $pb.GeneratedMessage {
|
||||
factory PlaintextContent({
|
||||
PlaintextContent_DecryptionErrorMessage? decryptionErrorMessage,
|
||||
PlaintextContent_RetryErrorMessage? retryControlError,
|
||||
}) {
|
||||
final result = create();
|
||||
if (decryptionErrorMessage != null)
|
||||
result.decryptionErrorMessage = decryptionErrorMessage;
|
||||
if (retryControlError != null) result.retryControlError = retryControlError;
|
||||
return result;
|
||||
}
|
||||
|
||||
PlaintextContent._();
|
||||
|
||||
factory PlaintextContent.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory PlaintextContent.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PlaintextContent',
|
||||
createEmptyInstance: create)
|
||||
..aOM<PlaintextContent_DecryptionErrorMessage>(
|
||||
1, _omitFieldNames ? '' : 'decryptionErrorMessage',
|
||||
subBuilder: PlaintextContent_DecryptionErrorMessage.create)
|
||||
..aOM<PlaintextContent_RetryErrorMessage>(
|
||||
2, _omitFieldNames ? '' : 'retryControlError',
|
||||
subBuilder: PlaintextContent_RetryErrorMessage.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent copyWith(void Function(PlaintextContent) updates) =>
|
||||
super.copyWith((message) => updates(message as PlaintextContent))
|
||||
as PlaintextContent;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PlaintextContent create() => PlaintextContent._();
|
||||
@$core.override
|
||||
PlaintextContent createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PlaintextContent getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<PlaintextContent>(create);
|
||||
static PlaintextContent? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
PlaintextContent_DecryptionErrorMessage get decryptionErrorMessage =>
|
||||
$_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set decryptionErrorMessage(PlaintextContent_DecryptionErrorMessage value) =>
|
||||
$_setField(1, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasDecryptionErrorMessage() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearDecryptionErrorMessage() => $_clearField(1);
|
||||
@$pb.TagNumber(1)
|
||||
PlaintextContent_DecryptionErrorMessage ensureDecryptionErrorMessage() =>
|
||||
$_ensure(0);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
PlaintextContent_RetryErrorMessage get retryControlError => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set retryControlError(PlaintextContent_RetryErrorMessage value) =>
|
||||
$_setField(2, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasRetryControlError() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearRetryControlError() => $_clearField(2);
|
||||
@$pb.TagNumber(2)
|
||||
PlaintextContent_RetryErrorMessage ensureRetryControlError() => $_ensure(1);
|
||||
}
|
||||
|
||||
class EncryptedContent_ErrorMessages extends $pb.GeneratedMessage {
|
||||
factory EncryptedContent_ErrorMessages({
|
||||
EncryptedContent_ErrorMessages_Type? type,
|
||||
|
|
|
|||
|
|
@ -14,60 +14,6 @@ import 'dart:core' as $core;
|
|||
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
class Message_Type extends $pb.ProtobufEnum {
|
||||
static const Message_Type SENDER_DELIVERY_RECEIPT =
|
||||
Message_Type._(0, _omitEnumNames ? '' : 'SENDER_DELIVERY_RECEIPT');
|
||||
static const Message_Type PLAINTEXT_CONTENT =
|
||||
Message_Type._(1, _omitEnumNames ? '' : 'PLAINTEXT_CONTENT');
|
||||
static const Message_Type CIPHERTEXT =
|
||||
Message_Type._(2, _omitEnumNames ? '' : 'CIPHERTEXT');
|
||||
static const Message_Type PREKEY_BUNDLE =
|
||||
Message_Type._(3, _omitEnumNames ? '' : 'PREKEY_BUNDLE');
|
||||
static const Message_Type TEST_NOTIFICATION =
|
||||
Message_Type._(4, _omitEnumNames ? '' : 'TEST_NOTIFICATION');
|
||||
static const Message_Type CIPHERTEXT_V2 =
|
||||
Message_Type._(5, _omitEnumNames ? '' : 'CIPHERTEXT_V2');
|
||||
|
||||
static const $core.List<Message_Type> values = <Message_Type>[
|
||||
SENDER_DELIVERY_RECEIPT,
|
||||
PLAINTEXT_CONTENT,
|
||||
CIPHERTEXT,
|
||||
PREKEY_BUNDLE,
|
||||
TEST_NOTIFICATION,
|
||||
CIPHERTEXT_V2,
|
||||
];
|
||||
|
||||
static final $core.List<Message_Type?> _byValue =
|
||||
$pb.ProtobufEnum.$_initByValueList(values, 5);
|
||||
static Message_Type? valueOf($core.int value) =>
|
||||
value < 0 || value >= _byValue.length ? null : _byValue[value];
|
||||
|
||||
const Message_Type._(super.value, super.name);
|
||||
}
|
||||
|
||||
class PlaintextContent_DecryptionErrorMessage_Type extends $pb.ProtobufEnum {
|
||||
static const PlaintextContent_DecryptionErrorMessage_Type UNKNOWN =
|
||||
PlaintextContent_DecryptionErrorMessage_Type._(
|
||||
0, _omitEnumNames ? '' : 'UNKNOWN');
|
||||
static const PlaintextContent_DecryptionErrorMessage_Type PREKEY_UNKNOWN =
|
||||
PlaintextContent_DecryptionErrorMessage_Type._(
|
||||
1, _omitEnumNames ? '' : 'PREKEY_UNKNOWN');
|
||||
|
||||
static const $core.List<PlaintextContent_DecryptionErrorMessage_Type> values =
|
||||
<PlaintextContent_DecryptionErrorMessage_Type>[
|
||||
UNKNOWN,
|
||||
PREKEY_UNKNOWN,
|
||||
];
|
||||
|
||||
static final $core.List<PlaintextContent_DecryptionErrorMessage_Type?>
|
||||
_byValue = $pb.ProtobufEnum.$_initByValueList(values, 1);
|
||||
static PlaintextContent_DecryptionErrorMessage_Type? valueOf(
|
||||
$core.int value) =>
|
||||
value < 0 || value >= _byValue.length ? null : _byValue[value];
|
||||
|
||||
const PlaintextContent_DecryptionErrorMessage_Type._(super.value, super.name);
|
||||
}
|
||||
|
||||
class EncryptedContent_ErrorMessages_Type extends $pb.ProtobufEnum {
|
||||
static const EncryptedContent_ErrorMessages_Type
|
||||
ERROR_PROCESSING_MESSAGE_CREATED_ACCOUNT_REQUEST_INSTEAD =
|
||||
|
|
|
|||
|
|
@ -15,199 +15,6 @@ import 'dart:convert' as $convert;
|
|||
import 'dart:core' as $core;
|
||||
import 'dart:typed_data' as $typed_data;
|
||||
|
||||
@$core.Deprecated('Use encryptedMessageEnvelopeDescriptor instead')
|
||||
const EncryptedMessageEnvelope$json = {
|
||||
'1': 'EncryptedMessageEnvelope',
|
||||
'2': [
|
||||
{
|
||||
'1': 'ephemeral_public_key',
|
||||
'3': 1,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'ephemeralPublicKey'
|
||||
},
|
||||
{'1': 'nonce', '3': 2, '4': 1, '5': 12, '10': 'nonce'},
|
||||
{'1': 'ciphertext', '3': 3, '4': 1, '5': 12, '10': 'ciphertext'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `EncryptedMessageEnvelope`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List encryptedMessageEnvelopeDescriptor = $convert.base64Decode(
|
||||
'ChhFbmNyeXB0ZWRNZXNzYWdlRW52ZWxvcGUSMAoUZXBoZW1lcmFsX3B1YmxpY19rZXkYASABKA'
|
||||
'xSEmVwaGVtZXJhbFB1YmxpY0tleRIUCgVub25jZRgCIAEoDFIFbm9uY2USHgoKY2lwaGVydGV4'
|
||||
'dBgDIAEoDFIKY2lwaGVydGV4dA==');
|
||||
|
||||
@$core.Deprecated('Use messageEnvelopeDescriptor instead')
|
||||
const MessageEnvelope$json = {
|
||||
'1': 'MessageEnvelope',
|
||||
'2': [
|
||||
{'1': 'signed_payload', '3': 1, '4': 1, '5': 12, '10': 'signedPayload'},
|
||||
{'1': 'signature', '3': 2, '4': 1, '5': 12, '10': 'signature'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `MessageEnvelope`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List messageEnvelopeDescriptor = $convert.base64Decode(
|
||||
'Cg9NZXNzYWdlRW52ZWxvcGUSJQoOc2lnbmVkX3BheWxvYWQYASABKAxSDXNpZ25lZFBheWxvYW'
|
||||
'QSHAoJc2lnbmF0dXJlGAIgASgMUglzaWduYXR1cmU=');
|
||||
|
||||
@$core.Deprecated('Use messageEnvelopePayloadDescriptor instead')
|
||||
const MessageEnvelopePayload$json = {
|
||||
'1': 'MessageEnvelopePayload',
|
||||
'2': [
|
||||
{'1': 'magic', '3': 1, '4': 1, '5': 9, '10': 'magic'},
|
||||
{'1': 'from_user_id', '3': 2, '4': 1, '5': 3, '10': 'fromUserId'},
|
||||
{'1': 'recipient_user_id', '3': 3, '4': 1, '5': 3, '10': 'recipientUserId'},
|
||||
{'1': 'message', '3': 4, '4': 1, '5': 11, '6': '.Message', '10': 'message'},
|
||||
{
|
||||
'1': 'created_at_unix_seconds',
|
||||
'3': 5,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
'10': 'createdAtUnixSeconds'
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `MessageEnvelopePayload`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List messageEnvelopePayloadDescriptor = $convert.base64Decode(
|
||||
'ChZNZXNzYWdlRW52ZWxvcGVQYXlsb2FkEhQKBW1hZ2ljGAEgASgJUgVtYWdpYxIgCgxmcm9tX3'
|
||||
'VzZXJfaWQYAiABKANSCmZyb21Vc2VySWQSKgoRcmVjaXBpZW50X3VzZXJfaWQYAyABKANSD3Jl'
|
||||
'Y2lwaWVudFVzZXJJZBIiCgdtZXNzYWdlGAQgASgLMgguTWVzc2FnZVIHbWVzc2FnZRI1Chdjcm'
|
||||
'VhdGVkX2F0X3VuaXhfc2Vjb25kcxgFIAEoA1IUY3JlYXRlZEF0VW5peFNlY29uZHM=');
|
||||
|
||||
@$core.Deprecated('Use messageDescriptor instead')
|
||||
const Message$json = {
|
||||
'1': 'Message',
|
||||
'2': [
|
||||
{'1': 'type', '3': 1, '4': 1, '5': 14, '6': '.Message.Type', '10': 'type'},
|
||||
{'1': 'receipt_id', '3': 2, '4': 1, '5': 9, '10': 'receiptId'},
|
||||
{
|
||||
'1': 'encrypted_content',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'9': 0,
|
||||
'10': 'encryptedContent',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'plaintext_content',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.PlaintextContent',
|
||||
'9': 1,
|
||||
'10': 'plaintextContent',
|
||||
'17': true
|
||||
},
|
||||
],
|
||||
'4': [Message_Type$json],
|
||||
'8': [
|
||||
{'1': '_encrypted_content'},
|
||||
{'1': '_plaintext_content'},
|
||||
],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use messageDescriptor instead')
|
||||
const Message_Type$json = {
|
||||
'1': 'Type',
|
||||
'2': [
|
||||
{'1': 'SENDER_DELIVERY_RECEIPT', '2': 0},
|
||||
{'1': 'PLAINTEXT_CONTENT', '2': 1},
|
||||
{'1': 'CIPHERTEXT', '2': 2},
|
||||
{'1': 'PREKEY_BUNDLE', '2': 3},
|
||||
{'1': 'TEST_NOTIFICATION', '2': 4},
|
||||
{'1': 'CIPHERTEXT_V2', '2': 5},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `Message`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List messageDescriptor = $convert.base64Decode(
|
||||
'CgdNZXNzYWdlEiEKBHR5cGUYASABKA4yDS5NZXNzYWdlLlR5cGVSBHR5cGUSHQoKcmVjZWlwdF'
|
||||
'9pZBgCIAEoCVIJcmVjZWlwdElkEjAKEWVuY3J5cHRlZF9jb250ZW50GAMgASgMSABSEGVuY3J5'
|
||||
'cHRlZENvbnRlbnSIAQESQwoRcGxhaW50ZXh0X2NvbnRlbnQYBCABKAsyES5QbGFpbnRleHRDb2'
|
||||
'50ZW50SAFSEHBsYWludGV4dENvbnRlbnSIAQEihwEKBFR5cGUSGwoXU0VOREVSX0RFTElWRVJZ'
|
||||
'X1JFQ0VJUFQQABIVChFQTEFJTlRFWFRfQ09OVEVOVBABEg4KCkNJUEhFUlRFWFQQAhIRCg1QUk'
|
||||
'VLRVlfQlVORExFEAMSFQoRVEVTVF9OT1RJRklDQVRJT04QBBIRCg1DSVBIRVJURVhUX1YyEAVC'
|
||||
'FAoSX2VuY3J5cHRlZF9jb250ZW50QhQKEl9wbGFpbnRleHRfY29udGVudA==');
|
||||
|
||||
@$core.Deprecated('Use plaintextContentDescriptor instead')
|
||||
const PlaintextContent$json = {
|
||||
'1': 'PlaintextContent',
|
||||
'2': [
|
||||
{
|
||||
'1': 'decryption_error_message',
|
||||
'3': 1,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.PlaintextContent.DecryptionErrorMessage',
|
||||
'9': 0,
|
||||
'10': 'decryptionErrorMessage',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'retry_control_error',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.PlaintextContent.RetryErrorMessage',
|
||||
'9': 1,
|
||||
'10': 'retryControlError',
|
||||
'17': true
|
||||
},
|
||||
],
|
||||
'3': [
|
||||
PlaintextContent_RetryErrorMessage$json,
|
||||
PlaintextContent_DecryptionErrorMessage$json
|
||||
],
|
||||
'8': [
|
||||
{'1': '_decryption_error_message'},
|
||||
{'1': '_retry_control_error'},
|
||||
],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use plaintextContentDescriptor instead')
|
||||
const PlaintextContent_RetryErrorMessage$json = {
|
||||
'1': 'RetryErrorMessage',
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use plaintextContentDescriptor instead')
|
||||
const PlaintextContent_DecryptionErrorMessage$json = {
|
||||
'1': 'DecryptionErrorMessage',
|
||||
'2': [
|
||||
{
|
||||
'1': 'type',
|
||||
'3': 1,
|
||||
'4': 1,
|
||||
'5': 14,
|
||||
'6': '.PlaintextContent.DecryptionErrorMessage.Type',
|
||||
'10': 'type'
|
||||
},
|
||||
],
|
||||
'4': [PlaintextContent_DecryptionErrorMessage_Type$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use plaintextContentDescriptor instead')
|
||||
const PlaintextContent_DecryptionErrorMessage_Type$json = {
|
||||
'1': 'Type',
|
||||
'2': [
|
||||
{'1': 'UNKNOWN', '2': 0},
|
||||
{'1': 'PREKEY_UNKNOWN', '2': 1},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `PlaintextContent`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List plaintextContentDescriptor = $convert.base64Decode(
|
||||
'ChBQbGFpbnRleHRDb250ZW50EmcKGGRlY3J5cHRpb25fZXJyb3JfbWVzc2FnZRgBIAEoCzIoLl'
|
||||
'BsYWludGV4dENvbnRlbnQuRGVjcnlwdGlvbkVycm9yTWVzc2FnZUgAUhZkZWNyeXB0aW9uRXJy'
|
||||
'b3JNZXNzYWdliAEBElgKE3JldHJ5X2NvbnRyb2xfZXJyb3IYAiABKAsyIy5QbGFpbnRleHRDb2'
|
||||
'50ZW50LlJldHJ5RXJyb3JNZXNzYWdlSAFSEXJldHJ5Q29udHJvbEVycm9yiAEBGhMKEVJldHJ5'
|
||||
'RXJyb3JNZXNzYWdlGoQBChZEZWNyeXB0aW9uRXJyb3JNZXNzYWdlEkEKBHR5cGUYASABKA4yLS'
|
||||
'5QbGFpbnRleHRDb250ZW50LkRlY3J5cHRpb25FcnJvck1lc3NhZ2UuVHlwZVIEdHlwZSInCgRU'
|
||||
'eXBlEgsKB1VOS05PV04QABISCg5QUkVLRVlfVU5LTk9XThABQhsKGV9kZWNyeXB0aW9uX2Vycm'
|
||||
'9yX21lc3NhZ2VCFgoUX3JldHJ5X2NvbnRyb2xfZXJyb3I=');
|
||||
|
||||
@$core.Deprecated('Use encryptedContentDescriptor instead')
|
||||
const EncryptedContent$json = {
|
||||
'1': 'EncryptedContent',
|
||||
|
|
|
|||
|
|
@ -1,418 +0,0 @@
|
|||
// This is a generated file - do not edit.
|
||||
//
|
||||
// Generated from push_notification.proto.
|
||||
|
||||
// @dart = 3.3
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:fixnum/fixnum.dart' as $fixnum;
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
import 'push_notification.pbenum.dart';
|
||||
|
||||
export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;
|
||||
|
||||
export 'push_notification.pbenum.dart';
|
||||
|
||||
class EncryptedPushNotification extends $pb.GeneratedMessage {
|
||||
factory EncryptedPushNotification({
|
||||
$fixnum.Int64? keyId,
|
||||
$core.List<$core.int>? nonce,
|
||||
$core.List<$core.int>? ciphertext,
|
||||
$core.List<$core.int>? mac,
|
||||
}) {
|
||||
final result = create();
|
||||
if (keyId != null) result.keyId = keyId;
|
||||
if (nonce != null) result.nonce = nonce;
|
||||
if (ciphertext != null) result.ciphertext = ciphertext;
|
||||
if (mac != null) result.mac = mac;
|
||||
return result;
|
||||
}
|
||||
|
||||
EncryptedPushNotification._();
|
||||
|
||||
factory EncryptedPushNotification.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory EncryptedPushNotification.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedPushNotification',
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'keyId')
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'nonce', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'ciphertext', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
4, _omitFieldNames ? '' : 'mac', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedPushNotification clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedPushNotification copyWith(
|
||||
void Function(EncryptedPushNotification) updates) =>
|
||||
super.copyWith((message) => updates(message as EncryptedPushNotification))
|
||||
as EncryptedPushNotification;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedPushNotification create() => EncryptedPushNotification._();
|
||||
@$core.override
|
||||
EncryptedPushNotification createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedPushNotification getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedPushNotification>(create);
|
||||
static EncryptedPushNotification? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$fixnum.Int64 get keyId => $_getI64(0);
|
||||
@$pb.TagNumber(1)
|
||||
set keyId($fixnum.Int64 value) => $_setInt64(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasKeyId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearKeyId() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.List<$core.int> get nonce => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set nonce($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasNonce() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearNonce() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.List<$core.int> get ciphertext => $_getN(2);
|
||||
@$pb.TagNumber(3)
|
||||
set ciphertext($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasCiphertext() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearCiphertext() => $_clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
$core.List<$core.int> get mac => $_getN(3);
|
||||
@$pb.TagNumber(4)
|
||||
set mac($core.List<$core.int> value) => $_setBytes(3, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasMac() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearMac() => $_clearField(4);
|
||||
}
|
||||
|
||||
class PushNotification extends $pb.GeneratedMessage {
|
||||
factory PushNotification({
|
||||
PushKind? kind,
|
||||
$core.String? messageId,
|
||||
$core.String? additionalContent,
|
||||
}) {
|
||||
final result = create();
|
||||
if (kind != null) result.kind = kind;
|
||||
if (messageId != null) result.messageId = messageId;
|
||||
if (additionalContent != null) result.additionalContent = additionalContent;
|
||||
return result;
|
||||
}
|
||||
|
||||
PushNotification._();
|
||||
|
||||
factory PushNotification.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory PushNotification.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PushNotification',
|
||||
createEmptyInstance: create)
|
||||
..aE<PushKind>(1, _omitFieldNames ? '' : 'kind',
|
||||
enumValues: PushKind.values)
|
||||
..aOS(2, _omitFieldNames ? '' : 'messageId')
|
||||
..aOS(3, _omitFieldNames ? '' : 'additionalContent')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushNotification clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushNotification copyWith(void Function(PushNotification) updates) =>
|
||||
super.copyWith((message) => updates(message as PushNotification))
|
||||
as PushNotification;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushNotification create() => PushNotification._();
|
||||
@$core.override
|
||||
PushNotification createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushNotification getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<PushNotification>(create);
|
||||
static PushNotification? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
PushKind get kind => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set kind(PushKind value) => $_setField(1, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasKind() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearKind() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.String get messageId => $_getSZ(1);
|
||||
@$pb.TagNumber(2)
|
||||
set messageId($core.String value) => $_setString(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasMessageId() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearMessageId() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.String get additionalContent => $_getSZ(2);
|
||||
@$pb.TagNumber(3)
|
||||
set additionalContent($core.String value) => $_setString(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasAdditionalContent() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearAdditionalContent() => $_clearField(3);
|
||||
}
|
||||
|
||||
class PushUsers extends $pb.GeneratedMessage {
|
||||
factory PushUsers({
|
||||
$core.Iterable<PushUser>? users,
|
||||
}) {
|
||||
final result = create();
|
||||
if (users != null) result.users.addAll(users);
|
||||
return result;
|
||||
}
|
||||
|
||||
PushUsers._();
|
||||
|
||||
factory PushUsers.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory PushUsers.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PushUsers',
|
||||
createEmptyInstance: create)
|
||||
..pPM<PushUser>(1, _omitFieldNames ? '' : 'users',
|
||||
subBuilder: PushUser.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushUsers clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushUsers copyWith(void Function(PushUsers) updates) =>
|
||||
super.copyWith((message) => updates(message as PushUsers)) as PushUsers;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushUsers create() => PushUsers._();
|
||||
@$core.override
|
||||
PushUsers createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushUsers getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<PushUsers>(create);
|
||||
static PushUsers? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$pb.PbList<PushUser> get users => $_getList(0);
|
||||
}
|
||||
|
||||
class PushUser extends $pb.GeneratedMessage {
|
||||
factory PushUser({
|
||||
$fixnum.Int64? userId,
|
||||
$core.String? displayName,
|
||||
$core.bool? blocked,
|
||||
$core.String? lastMessageId,
|
||||
$core.Iterable<PushKey>? pushKeys,
|
||||
}) {
|
||||
final result = create();
|
||||
if (userId != null) result.userId = userId;
|
||||
if (displayName != null) result.displayName = displayName;
|
||||
if (blocked != null) result.blocked = blocked;
|
||||
if (lastMessageId != null) result.lastMessageId = lastMessageId;
|
||||
if (pushKeys != null) result.pushKeys.addAll(pushKeys);
|
||||
return result;
|
||||
}
|
||||
|
||||
PushUser._();
|
||||
|
||||
factory PushUser.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory PushUser.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PushUser',
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'userId')
|
||||
..aOS(2, _omitFieldNames ? '' : 'displayName')
|
||||
..aOB(3, _omitFieldNames ? '' : 'blocked')
|
||||
..aOS(4, _omitFieldNames ? '' : 'lastMessageId')
|
||||
..pPM<PushKey>(5, _omitFieldNames ? '' : 'pushKeys',
|
||||
subBuilder: PushKey.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushUser clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushUser copyWith(void Function(PushUser) updates) =>
|
||||
super.copyWith((message) => updates(message as PushUser)) as PushUser;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushUser create() => PushUser._();
|
||||
@$core.override
|
||||
PushUser createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushUser getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<PushUser>(create);
|
||||
static PushUser? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$fixnum.Int64 get userId => $_getI64(0);
|
||||
@$pb.TagNumber(1)
|
||||
set userId($fixnum.Int64 value) => $_setInt64(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasUserId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearUserId() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.String get displayName => $_getSZ(1);
|
||||
@$pb.TagNumber(2)
|
||||
set displayName($core.String value) => $_setString(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasDisplayName() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearDisplayName() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool get blocked => $_getBF(2);
|
||||
@$pb.TagNumber(3)
|
||||
set blocked($core.bool value) => $_setBool(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasBlocked() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearBlocked() => $_clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
$core.String get lastMessageId => $_getSZ(3);
|
||||
@$pb.TagNumber(4)
|
||||
set lastMessageId($core.String value) => $_setString(3, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasLastMessageId() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearLastMessageId() => $_clearField(4);
|
||||
|
||||
@$pb.TagNumber(5)
|
||||
$pb.PbList<PushKey> get pushKeys => $_getList(4);
|
||||
}
|
||||
|
||||
class PushKey extends $pb.GeneratedMessage {
|
||||
factory PushKey({
|
||||
$fixnum.Int64? id,
|
||||
$core.List<$core.int>? key,
|
||||
$fixnum.Int64? createdAtUnixTimestamp,
|
||||
}) {
|
||||
final result = create();
|
||||
if (id != null) result.id = id;
|
||||
if (key != null) result.key = key;
|
||||
if (createdAtUnixTimestamp != null)
|
||||
result.createdAtUnixTimestamp = createdAtUnixTimestamp;
|
||||
return result;
|
||||
}
|
||||
|
||||
PushKey._();
|
||||
|
||||
factory PushKey.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory PushKey.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PushKey',
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'id')
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'key', $pb.PbFieldType.OY)
|
||||
..aInt64(3, _omitFieldNames ? '' : 'createdAtUnixTimestamp')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushKey clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushKey copyWith(void Function(PushKey) updates) =>
|
||||
super.copyWith((message) => updates(message as PushKey)) as PushKey;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushKey create() => PushKey._();
|
||||
@$core.override
|
||||
PushKey createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushKey getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<PushKey>(create);
|
||||
static PushKey? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$fixnum.Int64 get id => $_getI64(0);
|
||||
@$pb.TagNumber(1)
|
||||
set id($fixnum.Int64 value) => $_setInt64(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearId() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.List<$core.int> get key => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set key($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasKey() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearKey() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$fixnum.Int64 get createdAtUnixTimestamp => $_getI64(2);
|
||||
@$pb.TagNumber(3)
|
||||
set createdAtUnixTimestamp($fixnum.Int64 value) => $_setInt64(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasCreatedAtUnixTimestamp() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearCreatedAtUnixTimestamp() => $_clearField(3);
|
||||
}
|
||||
|
||||
const $core.bool _omitFieldNames =
|
||||
$core.bool.fromEnvironment('protobuf.omit_field_names');
|
||||
const $core.bool _omitMessageNames =
|
||||
$core.bool.fromEnvironment('protobuf.omit_message_names');
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
// This is a generated file - do not edit.
|
||||
//
|
||||
// Generated from push_notification.proto.
|
||||
|
||||
// @dart = 3.3
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
class PushKind extends $pb.ProtobufEnum {
|
||||
static const PushKind REACTION =
|
||||
PushKind._(0, _omitEnumNames ? '' : 'REACTION');
|
||||
static const PushKind RESPONSE =
|
||||
PushKind._(1, _omitEnumNames ? '' : 'RESPONSE');
|
||||
static const PushKind TEXT = PushKind._(2, _omitEnumNames ? '' : 'TEXT');
|
||||
static const PushKind VIDEO = PushKind._(3, _omitEnumNames ? '' : 'VIDEO');
|
||||
static const PushKind TWONLY = PushKind._(4, _omitEnumNames ? '' : 'TWONLY');
|
||||
static const PushKind IMAGE = PushKind._(5, _omitEnumNames ? '' : 'IMAGE');
|
||||
static const PushKind CONTACT_REQUEST =
|
||||
PushKind._(6, _omitEnumNames ? '' : 'CONTACT_REQUEST');
|
||||
static const PushKind ACCEPT_REQUEST =
|
||||
PushKind._(7, _omitEnumNames ? '' : 'ACCEPT_REQUEST');
|
||||
static const PushKind STORED_MEDIA_FILE =
|
||||
PushKind._(8, _omitEnumNames ? '' : 'STORED_MEDIA_FILE');
|
||||
static const PushKind TEST_NOTIFICATION =
|
||||
PushKind._(9, _omitEnumNames ? '' : 'TEST_NOTIFICATION');
|
||||
static const PushKind REOPENED_MEDIA =
|
||||
PushKind._(10, _omitEnumNames ? '' : 'REOPENED_MEDIA');
|
||||
static const PushKind REACTION_TO_VIDEO =
|
||||
PushKind._(11, _omitEnumNames ? '' : 'REACTION_TO_VIDEO');
|
||||
static const PushKind REACTION_TO_TEXT =
|
||||
PushKind._(12, _omitEnumNames ? '' : 'REACTION_TO_TEXT');
|
||||
static const PushKind REACTION_TO_IMAGE =
|
||||
PushKind._(13, _omitEnumNames ? '' : 'REACTION_TO_IMAGE');
|
||||
static const PushKind REACTION_TO_AUDIO =
|
||||
PushKind._(14, _omitEnumNames ? '' : 'REACTION_TO_AUDIO');
|
||||
static const PushKind ADDED_TO_GROUP =
|
||||
PushKind._(15, _omitEnumNames ? '' : 'ADDED_TO_GROUP');
|
||||
static const PushKind AUDIO = PushKind._(16, _omitEnumNames ? '' : 'AUDIO');
|
||||
|
||||
static const $core.List<PushKind> values = <PushKind>[
|
||||
REACTION,
|
||||
RESPONSE,
|
||||
TEXT,
|
||||
VIDEO,
|
||||
TWONLY,
|
||||
IMAGE,
|
||||
CONTACT_REQUEST,
|
||||
ACCEPT_REQUEST,
|
||||
STORED_MEDIA_FILE,
|
||||
TEST_NOTIFICATION,
|
||||
REOPENED_MEDIA,
|
||||
REACTION_TO_VIDEO,
|
||||
REACTION_TO_TEXT,
|
||||
REACTION_TO_IMAGE,
|
||||
REACTION_TO_AUDIO,
|
||||
ADDED_TO_GROUP,
|
||||
AUDIO,
|
||||
];
|
||||
|
||||
static final $core.List<PushKind?> _byValue =
|
||||
$pb.ProtobufEnum.$_initByValueList(values, 16);
|
||||
static PushKind? valueOf($core.int value) =>
|
||||
value < 0 || value >= _byValue.length ? null : _byValue[value];
|
||||
|
||||
const PushKind._(super.value, super.name);
|
||||
}
|
||||
|
||||
const $core.bool _omitEnumNames =
|
||||
$core.bool.fromEnvironment('protobuf.omit_enum_names');
|
||||
|
|
@ -1,173 +0,0 @@
|
|||
// This is a generated file - do not edit.
|
||||
//
|
||||
// Generated from push_notification.proto.
|
||||
|
||||
// @dart = 3.3
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
import 'dart:typed_data' as $typed_data;
|
||||
|
||||
@$core.Deprecated('Use pushKindDescriptor instead')
|
||||
const PushKind$json = {
|
||||
'1': 'PushKind',
|
||||
'2': [
|
||||
{'1': 'REACTION', '2': 0},
|
||||
{'1': 'RESPONSE', '2': 1},
|
||||
{'1': 'TEXT', '2': 2},
|
||||
{'1': 'VIDEO', '2': 3},
|
||||
{'1': 'TWONLY', '2': 4},
|
||||
{'1': 'IMAGE', '2': 5},
|
||||
{'1': 'CONTACT_REQUEST', '2': 6},
|
||||
{'1': 'ACCEPT_REQUEST', '2': 7},
|
||||
{'1': 'STORED_MEDIA_FILE', '2': 8},
|
||||
{'1': 'TEST_NOTIFICATION', '2': 9},
|
||||
{'1': 'REOPENED_MEDIA', '2': 10},
|
||||
{'1': 'REACTION_TO_VIDEO', '2': 11},
|
||||
{'1': 'REACTION_TO_TEXT', '2': 12},
|
||||
{'1': 'REACTION_TO_IMAGE', '2': 13},
|
||||
{'1': 'REACTION_TO_AUDIO', '2': 14},
|
||||
{'1': 'ADDED_TO_GROUP', '2': 15},
|
||||
{'1': 'AUDIO', '2': 16},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `PushKind`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
||||
final $typed_data.Uint8List pushKindDescriptor = $convert.base64Decode(
|
||||
'CghQdXNoS2luZBIMCghSRUFDVElPThAAEgwKCFJFU1BPTlNFEAESCAoEVEVYVBACEgkKBVZJRE'
|
||||
'VPEAMSCgoGVFdPTkxZEAQSCQoFSU1BR0UQBRITCg9DT05UQUNUX1JFUVVFU1QQBhISCg5BQ0NF'
|
||||
'UFRfUkVRVUVTVBAHEhUKEVNUT1JFRF9NRURJQV9GSUxFEAgSFQoRVEVTVF9OT1RJRklDQVRJT0'
|
||||
'4QCRISCg5SRU9QRU5FRF9NRURJQRAKEhUKEVJFQUNUSU9OX1RPX1ZJREVPEAsSFAoQUkVBQ1RJ'
|
||||
'T05fVE9fVEVYVBAMEhUKEVJFQUNUSU9OX1RPX0lNQUdFEA0SFQoRUkVBQ1RJT05fVE9fQVVESU'
|
||||
'8QDhISCg5BRERFRF9UT19HUk9VUBAPEgkKBUFVRElPEBA=');
|
||||
|
||||
@$core.Deprecated('Use encryptedPushNotificationDescriptor instead')
|
||||
const EncryptedPushNotification$json = {
|
||||
'1': 'EncryptedPushNotification',
|
||||
'2': [
|
||||
{'1': 'key_id', '3': 1, '4': 1, '5': 3, '10': 'keyId'},
|
||||
{'1': 'nonce', '3': 2, '4': 1, '5': 12, '10': 'nonce'},
|
||||
{'1': 'ciphertext', '3': 3, '4': 1, '5': 12, '10': 'ciphertext'},
|
||||
{'1': 'mac', '3': 4, '4': 1, '5': 12, '10': 'mac'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `EncryptedPushNotification`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List encryptedPushNotificationDescriptor = $convert.base64Decode(
|
||||
'ChlFbmNyeXB0ZWRQdXNoTm90aWZpY2F0aW9uEhUKBmtleV9pZBgBIAEoA1IFa2V5SWQSFAoFbm'
|
||||
'9uY2UYAiABKAxSBW5vbmNlEh4KCmNpcGhlcnRleHQYAyABKAxSCmNpcGhlcnRleHQSEAoDbWFj'
|
||||
'GAQgASgMUgNtYWM=');
|
||||
|
||||
@$core.Deprecated('Use pushNotificationDescriptor instead')
|
||||
const PushNotification$json = {
|
||||
'1': 'PushNotification',
|
||||
'2': [
|
||||
{'1': 'kind', '3': 1, '4': 1, '5': 14, '6': '.PushKind', '10': 'kind'},
|
||||
{
|
||||
'1': 'message_id',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
'9': 0,
|
||||
'10': 'messageId',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'additional_content',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
'9': 1,
|
||||
'10': 'additionalContent',
|
||||
'17': true
|
||||
},
|
||||
],
|
||||
'8': [
|
||||
{'1': '_message_id'},
|
||||
{'1': '_additional_content'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `PushNotification`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List pushNotificationDescriptor = $convert.base64Decode(
|
||||
'ChBQdXNoTm90aWZpY2F0aW9uEh0KBGtpbmQYASABKA4yCS5QdXNoS2luZFIEa2luZBIiCgptZX'
|
||||
'NzYWdlX2lkGAIgASgJSABSCW1lc3NhZ2VJZIgBARIyChJhZGRpdGlvbmFsX2NvbnRlbnQYAyAB'
|
||||
'KAlIAVIRYWRkaXRpb25hbENvbnRlbnSIAQFCDQoLX21lc3NhZ2VfaWRCFQoTX2FkZGl0aW9uYW'
|
||||
'xfY29udGVudA==');
|
||||
|
||||
@$core.Deprecated('Use pushUsersDescriptor instead')
|
||||
const PushUsers$json = {
|
||||
'1': 'PushUsers',
|
||||
'2': [
|
||||
{'1': 'users', '3': 1, '4': 3, '5': 11, '6': '.PushUser', '10': 'users'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `PushUsers`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List pushUsersDescriptor = $convert.base64Decode(
|
||||
'CglQdXNoVXNlcnMSHwoFdXNlcnMYASADKAsyCS5QdXNoVXNlclIFdXNlcnM=');
|
||||
|
||||
@$core.Deprecated('Use pushUserDescriptor instead')
|
||||
const PushUser$json = {
|
||||
'1': 'PushUser',
|
||||
'2': [
|
||||
{'1': 'user_id', '3': 1, '4': 1, '5': 3, '10': 'userId'},
|
||||
{'1': 'display_name', '3': 2, '4': 1, '5': 9, '10': 'displayName'},
|
||||
{'1': 'blocked', '3': 3, '4': 1, '5': 8, '10': 'blocked'},
|
||||
{
|
||||
'1': 'last_message_id',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
'9': 0,
|
||||
'10': 'lastMessageId',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'push_keys',
|
||||
'3': 5,
|
||||
'4': 3,
|
||||
'5': 11,
|
||||
'6': '.PushKey',
|
||||
'10': 'pushKeys'
|
||||
},
|
||||
],
|
||||
'8': [
|
||||
{'1': '_last_message_id'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `PushUser`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List pushUserDescriptor = $convert.base64Decode(
|
||||
'CghQdXNoVXNlchIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQSIQoMZGlzcGxheV9uYW1lGAIgAS'
|
||||
'gJUgtkaXNwbGF5TmFtZRIYCgdibG9ja2VkGAMgASgIUgdibG9ja2VkEisKD2xhc3RfbWVzc2Fn'
|
||||
'ZV9pZBgEIAEoCUgAUg1sYXN0TWVzc2FnZUlkiAEBEiUKCXB1c2hfa2V5cxgFIAMoCzIILlB1c2'
|
||||
'hLZXlSCHB1c2hLZXlzQhIKEF9sYXN0X21lc3NhZ2VfaWQ=');
|
||||
|
||||
@$core.Deprecated('Use pushKeyDescriptor instead')
|
||||
const PushKey$json = {
|
||||
'1': 'PushKey',
|
||||
'2': [
|
||||
{'1': 'id', '3': 1, '4': 1, '5': 3, '10': 'id'},
|
||||
{'1': 'key', '3': 2, '4': 1, '5': 12, '10': 'key'},
|
||||
{
|
||||
'1': 'created_at_unix_timestamp',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
'10': 'createdAtUnixTimestamp'
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `PushKey`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List pushKeyDescriptor = $convert.base64Decode(
|
||||
'CgdQdXNoS2V5Eg4KAmlkGAEgASgDUgJpZBIQCgNrZXkYAiABKAxSA2tleRI5ChljcmVhdGVkX2'
|
||||
'F0X3VuaXhfdGltZXN0YW1wGAMgASgDUhZjcmVhdGVkQXRVbml4VGltZXN0YW1w');
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: push_notification.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||
|
||||
export 'push_notification.pb.dart';
|
||||
|
|
@ -12,59 +12,3 @@ message UploadRequest {
|
|||
repeated bytes download_tokens = 2;
|
||||
repeated TextMessage messages_on_success = 3;
|
||||
}
|
||||
|
||||
message SealedSenderMessageRequest {
|
||||
reserved 4;
|
||||
int64 recipient_user_id = 1;
|
||||
bytes sealed_sender_message = 2;
|
||||
bytes privacy_pass_token = 3;
|
||||
}
|
||||
|
||||
message SealedSenderMessageResponse {
|
||||
string message_id = 1;
|
||||
}
|
||||
|
||||
// plaintext message send to the server
|
||||
message UpdateGroupState {
|
||||
message UpdateTBS {
|
||||
uint64 version_id = 1;
|
||||
bytes encrypted_group_state = 3;
|
||||
bytes public_key = 4;
|
||||
// public group key
|
||||
optional bytes remove_admin = 5;
|
||||
optional bytes add_admin = 6;
|
||||
bytes nonce = 7;
|
||||
}
|
||||
UpdateTBS update = 1;
|
||||
bytes signature = 2;
|
||||
}
|
||||
|
||||
message NewGroupState {
|
||||
string group_id = 1;
|
||||
uint64 version_id = 2;
|
||||
bytes encrypted_group_state = 3;
|
||||
bytes public_key = 4;
|
||||
}
|
||||
|
||||
message AppendGroupState {
|
||||
message AppendTBS {
|
||||
bytes encrypted_group_state_append = 1;
|
||||
bytes public_key = 2;
|
||||
string group_id = 3;
|
||||
bytes nonce = 4;
|
||||
}
|
||||
bytes signature = 1;
|
||||
AppendTBS appendTBS = 2;
|
||||
uint64 versionId = 3;
|
||||
}
|
||||
|
||||
message GroupState {
|
||||
uint64 version_id = 1;
|
||||
bytes encrypted_group_state = 2;
|
||||
repeated AppendGroupState appended_group_states = 3;
|
||||
}
|
||||
|
||||
// this is just a database helper to store multiple appends
|
||||
message AppendGroupStateHelper {
|
||||
repeated AppendGroupState appended_group_states = 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,52 +0,0 @@
|
|||
syntax = "proto3";
|
||||
|
||||
message EncryptedPushNotification {
|
||||
int64 key_id = 1;
|
||||
bytes nonce = 2;
|
||||
bytes ciphertext = 3;
|
||||
bytes mac = 4;
|
||||
}
|
||||
|
||||
enum PushKind {
|
||||
REACTION = 0;
|
||||
RESPONSE = 1;
|
||||
TEXT = 2;
|
||||
VIDEO = 3;
|
||||
TWONLY = 4;
|
||||
IMAGE = 5;
|
||||
CONTACT_REQUEST = 6;
|
||||
ACCEPT_REQUEST = 7;
|
||||
STORED_MEDIA_FILE = 8;
|
||||
TEST_NOTIFICATION = 9;
|
||||
REOPENED_MEDIA = 10;
|
||||
REACTION_TO_VIDEO = 11;
|
||||
REACTION_TO_TEXT = 12;
|
||||
REACTION_TO_IMAGE = 13;
|
||||
REACTION_TO_AUDIO = 14;
|
||||
ADDED_TO_GROUP = 15;
|
||||
AUDIO = 16;
|
||||
};
|
||||
|
||||
message PushNotification {
|
||||
PushKind kind = 1;
|
||||
optional string message_id = 2;
|
||||
optional string additional_content = 3;
|
||||
}
|
||||
|
||||
message PushUsers {
|
||||
repeated PushUser users = 1;
|
||||
}
|
||||
|
||||
message PushUser {
|
||||
int64 user_id = 1;
|
||||
string display_name = 2;
|
||||
bool blocked = 3;
|
||||
optional string last_message_id = 4;
|
||||
repeated PushKey push_keys = 5;
|
||||
}
|
||||
|
||||
message PushKey {
|
||||
int64 id = 1;
|
||||
bytes key = 2;
|
||||
int64 created_at_unix_timestamp = 3;
|
||||
}
|
||||
|
|
@ -6,8 +6,7 @@ import 'package:twonly/core/bridge/wrapper/key_manager.dart';
|
|||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/tables/mediafiles.table.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/model/protobuf/client/generated/messages.pbserver.dart'
|
||||
hide Message;
|
||||
import 'package:twonly/src/model/protobuf/client/generated/messages.pbserver.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
import 'package:twonly/src/utils/misc.dart';
|
||||
import 'package:twonly/src/utils/secure_storage.dart';
|
||||
|
|
|
|||
|
|
@ -1,21 +1,7 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:cryptography_flutter_plus/cryptography_flutter_plus.dart';
|
||||
import 'package:cryptography_plus/cryptography_plus.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/constants/routes.keys.dart';
|
||||
import 'package:twonly/src/localization/generated/app_localizations.dart';
|
||||
import 'package:twonly/src/localization/generated/app_localizations_de.dart';
|
||||
import 'package:twonly/src/localization/generated/app_localizations_en.dart';
|
||||
import 'package:twonly/src/model/protobuf/client/generated/push_notification.pb.dart';
|
||||
import 'package:twonly/src/providers/routing.provider.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
import 'package:twonly/src/utils/misc.dart';
|
||||
|
||||
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
|
||||
FlutterLocalNotificationsPlugin();
|
||||
|
|
@ -46,213 +32,3 @@ Future<void> customLocalPushNotification(String title, String msg) async {
|
|||
notificationDetails,
|
||||
);
|
||||
}
|
||||
|
||||
Future<PushNotification?> tryDecryptMessage(
|
||||
List<int> key,
|
||||
EncryptedPushNotification push,
|
||||
) async {
|
||||
try {
|
||||
final chacha20 = FlutterChacha20.poly1305Aead();
|
||||
final secretKeyData = SecretKeyData(key);
|
||||
|
||||
final secretBox = SecretBox(
|
||||
push.ciphertext,
|
||||
nonce: push.nonce,
|
||||
mac: Mac(push.mac),
|
||||
);
|
||||
|
||||
final plaintext = await chacha20.decrypt(
|
||||
secretBox,
|
||||
secretKey: secretKeyData,
|
||||
);
|
||||
return PushNotification.fromBuffer(plaintext);
|
||||
} catch (e) {
|
||||
// this error is allowed to happen...
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> showLocalPushNotification(
|
||||
PushUser pushUser,
|
||||
PushNotification pushNotification, {
|
||||
String? groupId,
|
||||
String? titleSuffix,
|
||||
}) async {
|
||||
String? title;
|
||||
String? body;
|
||||
|
||||
// do not show notification for blocked users...
|
||||
if (pushUser.blocked) {
|
||||
Log.info('Blocked a message from a blocked user!');
|
||||
return;
|
||||
}
|
||||
|
||||
var targetGroupId = groupId;
|
||||
if (targetGroupId == null) {
|
||||
try {
|
||||
if (userService.isUserCreated) {
|
||||
targetGroupId = getUUIDforDirectChat(
|
||||
userService.currentUser.userId,
|
||||
pushUser.userId.toInt(),
|
||||
);
|
||||
}
|
||||
} catch (_) {}
|
||||
}
|
||||
|
||||
if (targetGroupId != null) {
|
||||
try {
|
||||
final currentUri = routerProvider.routerDelegate.currentConfiguration.uri;
|
||||
final isResumed =
|
||||
WidgetsBinding.instance.lifecycleState == AppLifecycleState.resumed;
|
||||
if (isResumed && currentUri.path.contains(targetGroupId)) {
|
||||
Log.info(
|
||||
'Suppressing local push notification because chat with group $targetGroupId is currently open.',
|
||||
);
|
||||
return;
|
||||
}
|
||||
} catch (e) {
|
||||
Log.error('Error checking current route: $e');
|
||||
}
|
||||
}
|
||||
|
||||
title = pushUser.displayName;
|
||||
if (titleSuffix != null && titleSuffix.isNotEmpty) {
|
||||
title = '$title $titleSuffix';
|
||||
}
|
||||
|
||||
body = getPushNotificationText(pushNotification);
|
||||
if (body == '') {
|
||||
Log.error('No push notification type defined!');
|
||||
}
|
||||
|
||||
FilePathAndroidBitmap? styleInformation;
|
||||
final avatarPath = await getAvatarIcon(pushUser.userId.toInt());
|
||||
if (avatarPath != null) {
|
||||
styleInformation = FilePathAndroidBitmap(avatarPath);
|
||||
}
|
||||
|
||||
final lang = getLocalizations();
|
||||
|
||||
final androidNotificationDetails = AndroidNotificationDetails(
|
||||
'0',
|
||||
lang.notificationCategoryMessageTitle,
|
||||
channelDescription: lang.notificationCategoryMessageDesc,
|
||||
importance: Importance.max,
|
||||
priority: Priority.max,
|
||||
ticker: 'You got a new message.',
|
||||
largeIcon: styleInformation,
|
||||
icon: 'ic_launcher_foreground',
|
||||
groupKey: 'com.twonly.messages',
|
||||
);
|
||||
|
||||
const darwinNotificationDetails = DarwinNotificationDetails();
|
||||
final notificationDetails = NotificationDetails(
|
||||
android: androidNotificationDetails,
|
||||
iOS: darwinNotificationDetails,
|
||||
);
|
||||
|
||||
String? payload;
|
||||
|
||||
if (groupId != null &&
|
||||
(pushNotification.kind == PushKind.TEXT ||
|
||||
pushNotification.kind == PushKind.RESPONSE ||
|
||||
pushNotification.kind == PushKind.REACTION_TO_AUDIO ||
|
||||
pushNotification.kind == PushKind.STORED_MEDIA_FILE ||
|
||||
pushNotification.kind == PushKind.REACTION_TO_IMAGE ||
|
||||
pushNotification.kind == PushKind.REACTION_TO_TEXT ||
|
||||
pushNotification.kind == PushKind.REACTION_TO_VIDEO)) {
|
||||
payload = Routes.chatsMessages(groupId);
|
||||
} else {
|
||||
payload = Routes.chats;
|
||||
}
|
||||
|
||||
await flutterLocalNotificationsPlugin.show(
|
||||
// Invalid argument (id): must fit within the size of a 32-bit integer
|
||||
pushUser.userId.toInt() % 2147483647,
|
||||
title,
|
||||
body,
|
||||
notificationDetails,
|
||||
payload: payload,
|
||||
);
|
||||
|
||||
if (Platform.isAndroid) {
|
||||
final summaryAndroidDetails = AndroidNotificationDetails(
|
||||
'0',
|
||||
lang.notificationCategoryMessageTitle,
|
||||
channelDescription: lang.notificationCategoryMessageDesc,
|
||||
importance: Importance.max,
|
||||
priority: Priority.max,
|
||||
groupKey: 'com.twonly.messages',
|
||||
setAsGroupSummary: true,
|
||||
icon: 'ic_launcher_foreground',
|
||||
);
|
||||
final summaryNotificationDetails = NotificationDetails(
|
||||
android: summaryAndroidDetails,
|
||||
);
|
||||
await flutterLocalNotificationsPlugin.show(
|
||||
0,
|
||||
lang.notificationCategoryMessageTitle,
|
||||
'',
|
||||
summaryNotificationDetails,
|
||||
payload: Routes.chats,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<String?> getAvatarIcon(int contactId) async {
|
||||
final avatarsDirectory = Directory('${AppEnvironment.cacheDir}/avatars');
|
||||
final filePath = '${avatarsDirectory.path}/$contactId.png';
|
||||
final file = File(filePath);
|
||||
if (file.existsSync()) {
|
||||
return filePath;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
AppLocalizations getLocalizations() {
|
||||
final systemLanguage = Platform.localeName;
|
||||
if (systemLanguage.contains('de')) return AppLocalizationsDe();
|
||||
return AppLocalizationsEn();
|
||||
}
|
||||
|
||||
String getPushNotificationText(PushNotification pushNotification) {
|
||||
final lang = getLocalizations();
|
||||
|
||||
var inGroup = '';
|
||||
|
||||
if (pushNotification.hasAdditionalContent()) {
|
||||
inGroup =
|
||||
' ${lang.notificationFillerIn} ${pushNotification.additionalContent}';
|
||||
}
|
||||
|
||||
final pushNotificationText = {
|
||||
PushKind.TEXT.name: lang.notificationText(inGroup),
|
||||
PushKind.TWONLY.name: lang.notificationTwonly(inGroup),
|
||||
PushKind.VIDEO.name: lang.notificationVideo(inGroup),
|
||||
PushKind.IMAGE.name: lang.notificationImage(inGroup),
|
||||
PushKind.AUDIO.name: lang.notificationAudio(inGroup),
|
||||
PushKind.CONTACT_REQUEST.name: lang.notificationContactRequest,
|
||||
PushKind.ACCEPT_REQUEST.name: lang.notificationAcceptRequest,
|
||||
PushKind.STORED_MEDIA_FILE.name: lang.notificationStoredMediaFile,
|
||||
PushKind.REACTION.name: lang.notificationReaction,
|
||||
PushKind.REOPENED_MEDIA.name: lang.notificationReopenedMedia,
|
||||
PushKind.REACTION_TO_VIDEO.name: lang.notificationReactionToVideo(
|
||||
pushNotification.additionalContent,
|
||||
),
|
||||
PushKind.REACTION_TO_AUDIO.name: lang.notificationReactionToAudio(
|
||||
pushNotification.additionalContent,
|
||||
),
|
||||
PushKind.REACTION_TO_TEXT.name: lang.notificationReactionToText(
|
||||
pushNotification.additionalContent,
|
||||
),
|
||||
PushKind.REACTION_TO_IMAGE.name: lang.notificationReactionToImage(
|
||||
pushNotification.additionalContent,
|
||||
),
|
||||
PushKind.RESPONSE.name: lang.notificationResponse(inGroup),
|
||||
PushKind.ADDED_TO_GROUP.name: lang.notificationAddedToGroup(
|
||||
pushNotification.additionalContent,
|
||||
),
|
||||
};
|
||||
|
||||
return pushNotificationText[pushNotification.kind.name] ?? '';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@ import 'package:twonly/src/database/tables/messages.table.dart';
|
|||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/model/memory_item.model.dart';
|
||||
import 'package:twonly/src/model/protobuf/client/generated/data.pb.dart';
|
||||
import 'package:twonly/src/model/protobuf/client/generated/messages.pb.dart'
|
||||
hide Message;
|
||||
import 'package:twonly/src/model/protobuf/client/generated/messages.pb.dart';
|
||||
import 'package:twonly/src/services/api/mediafiles/download.api.dart'
|
||||
as received;
|
||||
import 'package:twonly/src/services/mediafiles/mediafile.service.dart';
|
||||
|
|
|
|||
|
|
@ -26,17 +26,19 @@ fn main() -> Result<()> {
|
|||
.compile_protos(&websocket_protos, &[websocket_proto_root])?;
|
||||
|
||||
prost_build::compile_protos(&["models/user_discovery.proto"], &["src/"])?;
|
||||
let client_proto_root = "src/api/proto/client";
|
||||
let client_protos = [
|
||||
"src/api/proto/client/sealed_sender.proto",
|
||||
"src/api/proto/client/groups.proto",
|
||||
"src/api/proto/client/messages.proto",
|
||||
"src/api/proto/client/data.proto",
|
||||
];
|
||||
for proto in &client_protos {
|
||||
println!("cargo:rerun-if-changed={proto}");
|
||||
}
|
||||
prost_build::Config::new()
|
||||
.include_file("client_messages.rs")
|
||||
.compile_protos(
|
||||
&[
|
||||
"../lib/src/model/protobuf/client/messages.proto",
|
||||
"../lib/src/model/protobuf/client/data.proto",
|
||||
"../lib/src/model/protobuf/client/push_notification.proto",
|
||||
"../lib/src/model/protobuf/client/groups.proto",
|
||||
],
|
||||
&["../lib/src/model/protobuf/client/"],
|
||||
)?;
|
||||
.compile_protos(&client_protos, &[client_proto_root])?;
|
||||
prost_build::compile_protos(
|
||||
&["src/api/proto/api/http/http_requests.proto"],
|
||||
&["src/api/proto/"],
|
||||
|
|
|
|||
|
|
@ -1,94 +1,5 @@
|
|||
syntax = "proto3";
|
||||
|
||||
message EncryptedMessageEnvelope {
|
||||
// Fresh 32-byte X25519 public key generated for this envelope. The sender
|
||||
// derives the encryption key from this ephemeral key pair and the recipient's
|
||||
// public identity key using HKDF-SHA-256 with an empty salt and a 32-byte
|
||||
// output. HKDF info must be the UTF-8 bytes of
|
||||
// "twonly-message-envelope-encryption-v1" followed by ephemeral_public_key
|
||||
// and the recipient's serialized public identity key.
|
||||
bytes ephemeral_public_key = 1;
|
||||
|
||||
// Fresh 24-byte XChaCha20-Poly1305 nonce.
|
||||
bytes nonce = 2;
|
||||
|
||||
// Serialized MessageEnvelope encrypted with XChaCha20-Poly1305. This includes
|
||||
// the 16-byte Poly1305 authentication tag. The AEAD associated data is exactly
|
||||
// the UTF-8 bytes of "twonly-message-envelope-encryption-v1".
|
||||
bytes ciphertext = 3;
|
||||
}
|
||||
|
||||
message MessageEnvelope {
|
||||
// The serialized MessageEnvelope is encrypted into EncryptedMessageEnvelope
|
||||
// before it is sent to the server.
|
||||
|
||||
// Exact serialized MessageEnvelopePayload bytes. The signature is calculated
|
||||
// directly over these bytes. Keeping the serialized payload allows verification
|
||||
// without relying on canonical protobuf serialization.
|
||||
bytes signed_payload = 1;
|
||||
|
||||
// Signature created with the sender's identity key. For a known contact, use
|
||||
// the pinned public identity key. For an unknown sender, fetch the public key
|
||||
// from the trusted server, verify this signature, and only then pin the key and
|
||||
// process the raw message.
|
||||
bytes signature = 2;
|
||||
}
|
||||
|
||||
message MessageEnvelopePayload {
|
||||
// Domain-separation and protocol-version marker. The receiver must reject the
|
||||
// payload unless this is exactly "twonly-message-envelope-v1".
|
||||
string magic = 1;
|
||||
|
||||
// The sender is protected by the encryption of the outer MessageEnvelope.
|
||||
int64 from_user_id = 2;
|
||||
|
||||
// Bind the sender's signature to the intended recipient. This prevents a
|
||||
// recipient from re-encrypting a valid signed envelope for another user. The
|
||||
// binding is required because raw_message is not always a Signal ciphertext
|
||||
// and therefore is not always independently bound to a Signal session. The
|
||||
// receiver must reject an envelope when this ID does not match its own user ID.
|
||||
int64 recipient_user_id = 3;
|
||||
|
||||
// The mandatory UUIDv4 receipt_id is covered by the envelope signature and is
|
||||
// used by the receiver to reject replayed messages before processing them.
|
||||
Message message = 4;
|
||||
|
||||
// UTC Unix timestamp in seconds when the envelope was created. The receiver
|
||||
// must reject envelopes older than 45 days or more than five minutes in the
|
||||
// future. This field is covered by the envelope signature.
|
||||
int64 created_at_unix_seconds = 5;
|
||||
}
|
||||
|
||||
message Message {
|
||||
enum Type {
|
||||
SENDER_DELIVERY_RECEIPT = 0;
|
||||
PLAINTEXT_CONTENT = 1;
|
||||
CIPHERTEXT = 2;
|
||||
PREKEY_BUNDLE = 3;
|
||||
TEST_NOTIFICATION = 4;
|
||||
CIPHERTEXT_V2 = 5;
|
||||
}
|
||||
Type type = 1;
|
||||
string receipt_id = 2;
|
||||
optional bytes encrypted_content = 3;
|
||||
optional PlaintextContent plaintext_content = 4;
|
||||
}
|
||||
|
||||
message PlaintextContent {
|
||||
optional DecryptionErrorMessage decryption_error_message = 1;
|
||||
optional RetryErrorMessage retry_control_error = 2;
|
||||
|
||||
message RetryErrorMessage { }
|
||||
|
||||
message DecryptionErrorMessage {
|
||||
enum Type {
|
||||
UNKNOWN = 0;
|
||||
PREKEY_UNKNOWN = 1;
|
||||
}
|
||||
Type type = 1;
|
||||
}
|
||||
}
|
||||
|
||||
message EncryptedContent {
|
||||
|
||||
optional string group_id = 2;
|
||||
90
rust/src/api/proto/client/sealed_sender.proto
Normal file
90
rust/src/api/proto/client/sealed_sender.proto
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
syntax = "proto3";
|
||||
|
||||
message EncryptedMessageEnvelope {
|
||||
// Fresh 32-byte X25519 public key generated for this envelope. The sender
|
||||
// derives the encryption key from this ephemeral key pair and the recipient's
|
||||
// public identity key using HKDF-SHA-256 with an empty salt and a 32-byte
|
||||
// output. HKDF info must be the UTF-8 bytes of
|
||||
// "twonly-message-envelope-encryption-v1" followed by ephemeral_public_key
|
||||
// and the recipient's serialized public identity key.
|
||||
bytes ephemeral_public_key = 1;
|
||||
|
||||
// Fresh 24-byte XChaCha20-Poly1305 nonce.
|
||||
bytes nonce = 2;
|
||||
|
||||
// Serialized MessageEnvelope encrypted with XChaCha20-Poly1305. This includes
|
||||
// the 16-byte Poly1305 authentication tag. The AEAD associated data is exactly
|
||||
// the UTF-8 bytes of "twonly-message-envelope-encryption-v1".
|
||||
bytes ciphertext = 3;
|
||||
}
|
||||
|
||||
message MessageEnvelope {
|
||||
// The serialized MessageEnvelope is encrypted into EncryptedMessageEnvelope
|
||||
// before it is sent to the server.
|
||||
|
||||
// Exact serialized MessageEnvelopePayload bytes. The signature is calculated
|
||||
// directly over these bytes. Keeping the serialized payload allows verification
|
||||
// without relying on canonical protobuf serialization.
|
||||
bytes signed_payload = 1;
|
||||
|
||||
// Signature created with the sender's identity key. For a known contact, use
|
||||
// the pinned public identity key. For an unknown sender, fetch the public key
|
||||
// from the trusted server, verify this signature, and only then pin the key and
|
||||
// process the raw message.
|
||||
bytes signature = 2;
|
||||
}
|
||||
|
||||
message MessageEnvelopePayload {
|
||||
// Domain-separation and protocol-version marker. The receiver must reject the
|
||||
// payload unless this is exactly "twonly-message-envelope-v1".
|
||||
string magic = 1;
|
||||
|
||||
// The sender is protected by the encryption of the outer MessageEnvelope.
|
||||
int64 from_user_id = 2;
|
||||
|
||||
// Bind the sender's signature to the intended recipient. This prevents a
|
||||
// recipient from re-encrypting a valid signed envelope for another user. The
|
||||
// binding is required because raw_message is not always a Signal ciphertext
|
||||
// and therefore is not always independently bound to a Signal session. The
|
||||
// receiver must reject an envelope when this ID does not match its own user ID.
|
||||
int64 recipient_user_id = 3;
|
||||
|
||||
// The mandatory UUIDv4 receipt_id is covered by the envelope signature and is
|
||||
// used by the receiver to reject replayed messages before processing them.
|
||||
Message message = 4;
|
||||
|
||||
// UTC Unix timestamp in seconds when the envelope was created. The receiver
|
||||
// must reject envelopes older than 45 days or more than five minutes in the
|
||||
// future. This field is covered by the envelope signature.
|
||||
int64 created_at_unix_seconds = 5;
|
||||
}
|
||||
|
||||
message Message {
|
||||
enum Type {
|
||||
SENDER_DELIVERY_RECEIPT = 0;
|
||||
PLAINTEXT_CONTENT = 1;
|
||||
CIPHERTEXT = 2;
|
||||
PREKEY_BUNDLE = 3;
|
||||
TEST_NOTIFICATION = 4;
|
||||
CIPHERTEXT_V2 = 5;
|
||||
}
|
||||
Type type = 1;
|
||||
string receipt_id = 2;
|
||||
optional bytes encrypted_content = 3;
|
||||
optional PlaintextContent plaintext_content = 4;
|
||||
}
|
||||
|
||||
message PlaintextContent {
|
||||
optional DecryptionErrorMessage decryption_error_message = 1;
|
||||
optional RetryErrorMessage retry_control_error = 2;
|
||||
|
||||
message RetryErrorMessage { }
|
||||
|
||||
message DecryptionErrorMessage {
|
||||
enum Type {
|
||||
UNKNOWN = 0;
|
||||
PREKEY_UNKNOWN = 1;
|
||||
}
|
||||
Type type = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +1,8 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:drift/drift.dart' hide isNotNull, isNull;
|
||||
import 'package:fixnum/fixnum.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:twonly/core/bridge/api.dart';
|
||||
import 'package:twonly/src/database/tables/messages.table.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/model/protobuf/client/generated/messages.pb.dart'
|
||||
as pb;
|
||||
import 'package:twonly/src/services/api/api.service.dart';
|
||||
import 'package:twonly/src/services/user.service.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
|
|
@ -33,11 +26,11 @@ class TestClient {
|
|||
final timeStr = DateTime.now().millisecondsSinceEpoch.toString();
|
||||
username = 't_${timeStr.substring(timeStr.length - 6)}$localIdSeed';
|
||||
}
|
||||
|
||||
late final UserEnvironment env;
|
||||
late final ApiService api;
|
||||
final int localIdSeed;
|
||||
late String username;
|
||||
Group? defaultGroup;
|
||||
int realUserId = 0;
|
||||
|
||||
Future<void> init({bool disablePqc = false}) async {
|
||||
|
|
@ -82,207 +75,7 @@ class TestClient {
|
|||
});
|
||||
}
|
||||
|
||||
Future<void> initContact(TestClient other) async {
|
||||
await run(() async {
|
||||
await env.db.contactsDao.insertOnConflictUpdate(
|
||||
ContactsCompanion.insert(
|
||||
userId: Value(other.realUserId),
|
||||
username: other.username,
|
||||
accepted: const Value(true),
|
||||
),
|
||||
);
|
||||
defaultGroup = await env.db.groupsDao.createNewDirectChat(
|
||||
other.realUserId,
|
||||
GroupsCompanion(groupName: Value(other.username)),
|
||||
);
|
||||
|
||||
await RustApi.establishSignalSession(contactId: other.realUserId);
|
||||
});
|
||||
}
|
||||
|
||||
Future<T> run<T>(Future<T> Function() computation) {
|
||||
return runInZone(env, api, computation);
|
||||
}
|
||||
|
||||
Future<Message> sendText(TestClient target, String text) async {
|
||||
return run(() async {
|
||||
final m = await env.db.messagesDao.insertMessage(
|
||||
MessagesCompanion(
|
||||
groupId: Value(defaultGroup!.groupId),
|
||||
content: Value(text),
|
||||
type: Value(MessageType.text.name),
|
||||
),
|
||||
);
|
||||
await RustApi.sendEncryptedContent(
|
||||
contactId: target.realUserId,
|
||||
content: pb.EncryptedContent(
|
||||
groupId: defaultGroup!.groupId,
|
||||
textMessage: pb.EncryptedContent_TextMessage()
|
||||
..senderMessageId = m!.messageId
|
||||
..text = text,
|
||||
).writeToBuffer(),
|
||||
messageId: m.messageId,
|
||||
);
|
||||
return m;
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> sendEncryptedContent(
|
||||
TestClient target,
|
||||
pb.EncryptedContent content,
|
||||
) async {
|
||||
await run(() async {
|
||||
await RustApi.sendEncryptedContent(
|
||||
contactId: target.realUserId,
|
||||
content: content.writeToBuffer(),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> sendGroupJoin(
|
||||
TestClient target,
|
||||
String groupId,
|
||||
List<int> groupPublicKey,
|
||||
) async {
|
||||
final content = pb.EncryptedContent()
|
||||
..groupId = groupId
|
||||
..groupJoin = (pb.EncryptedContent_GroupJoin()
|
||||
..groupPublicKey = groupPublicKey);
|
||||
await sendEncryptedContent(target, content);
|
||||
}
|
||||
|
||||
Future<void> sendResendGroupPublicKey(
|
||||
TestClient target,
|
||||
String groupId,
|
||||
) async {
|
||||
final content = pb.EncryptedContent()
|
||||
..groupId = groupId
|
||||
..resendGroupPublicKey = pb.EncryptedContent_ResendGroupPublicKey();
|
||||
await sendEncryptedContent(target, content);
|
||||
}
|
||||
|
||||
Future<void> sendErrorMessages(
|
||||
TestClient target,
|
||||
pb.EncryptedContent_ErrorMessages_Type type,
|
||||
String receiptId,
|
||||
) async {
|
||||
final content = pb.EncryptedContent()
|
||||
..errorMessages = (pb.EncryptedContent_ErrorMessages()
|
||||
..type = type
|
||||
..relatedReceiptId = receiptId);
|
||||
await sendEncryptedContent(target, content);
|
||||
}
|
||||
|
||||
Future<void> sendUserDiscoveryRequest(
|
||||
TestClient target,
|
||||
List<int> version,
|
||||
) async {
|
||||
final content = pb.EncryptedContent()
|
||||
..userDiscoveryRequest = (pb.EncryptedContent_UserDiscoveryRequest()
|
||||
..currentVersion = version);
|
||||
await sendEncryptedContent(target, content);
|
||||
}
|
||||
|
||||
Future<void> sendUserDiscoveryUpdate(
|
||||
TestClient target,
|
||||
List<List<int>> messages,
|
||||
) async {
|
||||
final content = pb.EncryptedContent()
|
||||
..userDiscoveryUpdate = (pb.EncryptedContent_UserDiscoveryUpdate()
|
||||
..messages.addAll(messages));
|
||||
await sendEncryptedContent(target, content);
|
||||
}
|
||||
|
||||
Future<void> sendKeyVerificationProof(
|
||||
TestClient target,
|
||||
List<int> mac,
|
||||
) async {
|
||||
final content = pb.EncryptedContent()
|
||||
..keyVerificationProof = (pb.EncryptedContent_KeyVerificationProof()
|
||||
..calculatedMac = mac);
|
||||
await sendEncryptedContent(target, content);
|
||||
}
|
||||
|
||||
Future<void> sendDeliveryReceipt(TestClient target, String receiptId) async {
|
||||
final msg = pb.Message()
|
||||
..type = pb.Message_Type.SENDER_DELIVERY_RECEIPT
|
||||
..receiptId = receiptId;
|
||||
await RustApi.sendTextMessage(
|
||||
userId: target.realUserId,
|
||||
body: msg.writeToBuffer(),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> sendReaction(
|
||||
TestClient target,
|
||||
String targetMessageId,
|
||||
String emoji, {
|
||||
bool remove = false,
|
||||
}) async {
|
||||
final content = pb.EncryptedContent()
|
||||
..groupId = defaultGroup!.groupId
|
||||
..reaction = (pb.EncryptedContent_Reaction()
|
||||
..targetMessageId = targetMessageId
|
||||
..emoji = emoji
|
||||
..remove = remove);
|
||||
await sendEncryptedContent(target, content);
|
||||
}
|
||||
|
||||
Future<void> sendMessageUpdate(
|
||||
TestClient target,
|
||||
String targetMessageId,
|
||||
pb.EncryptedContent_MessageUpdate_Type type, {
|
||||
String? text,
|
||||
}) async {
|
||||
final update = pb.EncryptedContent_MessageUpdate()
|
||||
..type = type
|
||||
..senderMessageId = targetMessageId
|
||||
..timestamp = Int64(DateTime.now().millisecondsSinceEpoch);
|
||||
if (text != null) update.text = text;
|
||||
final content = pb.EncryptedContent()
|
||||
..groupId = defaultGroup!.groupId
|
||||
..messageUpdate = update;
|
||||
await sendEncryptedContent(target, content);
|
||||
}
|
||||
|
||||
Future<void> sendMedia(
|
||||
TestClient target,
|
||||
String senderMessageId,
|
||||
pb.EncryptedContent_Media_Type type,
|
||||
) async {
|
||||
final content = pb.EncryptedContent()
|
||||
..groupId = defaultGroup!.groupId
|
||||
..media = (pb.EncryptedContent_Media()
|
||||
..senderMessageId = senderMessageId
|
||||
..type = type
|
||||
..requiresAuthentication = false
|
||||
..timestamp = Int64(DateTime.now().millisecondsSinceEpoch));
|
||||
await sendEncryptedContent(target, content);
|
||||
}
|
||||
|
||||
Future<Message> expectMessage(bool Function(Message) predicate) async {
|
||||
for (var i = 0; i < 500; i++) {
|
||||
final msg = await run(() async {
|
||||
final msgs = await env.db.select(env.db.messages).get();
|
||||
return msgs.firstWhereOrNull(predicate);
|
||||
});
|
||||
if (msg != null) return msg;
|
||||
await Future.delayed(const Duration(milliseconds: 10));
|
||||
}
|
||||
throw Exception('Message matching predicate not received');
|
||||
}
|
||||
|
||||
Future<Reaction> expectReaction(String messageId, String emoji) async {
|
||||
for (var i = 0; i < 500; i++) {
|
||||
final reaction = await run(() async {
|
||||
final reactions = await (env.db.select(
|
||||
env.db.reactions,
|
||||
)..where((t) => t.messageId.equals(messageId))).get();
|
||||
return reactions.firstWhereOrNull((r) => r.emoji == emoji);
|
||||
});
|
||||
if (reaction != null) return reaction;
|
||||
await Future.delayed(const Duration(milliseconds: 10));
|
||||
}
|
||||
throw Exception('Reaction $emoji not received on message $messageId');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
import 'package:workmanager_platform_interface/workmanager_platform_interface.dart';
|
||||
|
||||
class MockWorkmanagerPlatform extends WorkmanagerPlatform {
|
||||
@override
|
||||
Future<void> initialize(
|
||||
Function callbackDispatcher, {
|
||||
bool isInDebugMode = false,
|
||||
}) async {}
|
||||
|
||||
@override
|
||||
Future<void> registerOneOffTask(
|
||||
String uniqueName,
|
||||
String taskName, {
|
||||
Map<String, dynamic>? inputData,
|
||||
Duration? initialDelay,
|
||||
Constraints? constraints,
|
||||
ExistingWorkPolicy? existingWorkPolicy,
|
||||
BackoffPolicy? backoffPolicy,
|
||||
Duration? backoffPolicyDelay,
|
||||
String? tag,
|
||||
OutOfQuotaPolicy? outOfQuotaPolicy,
|
||||
}) async {}
|
||||
|
||||
@override
|
||||
Future<void> cancelByUniqueName(String uniqueName) async {}
|
||||
|
||||
@override
|
||||
dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
|
||||
}
|
||||
|
|
@ -1,242 +0,0 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:drift/drift.dart' hide isNotNull, isNull;
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:twonly/core/bridge.dart' as bridge;
|
||||
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/tables/messages.table.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/model/protobuf/client/generated/messages.pb.dart'
|
||||
as pb;
|
||||
import 'package:twonly/src/services/api/api.service.dart';
|
||||
import 'package:twonly/src/services/user.service.dart';
|
||||
import 'package:workmanager/workmanager.dart';
|
||||
|
||||
import '../mocks/platform_channels.dart';
|
||||
import '../mocks/test_client.dart';
|
||||
import '../mocks/workmanager.dart';
|
||||
|
||||
void main() {
|
||||
if (!Platform.isMacOS) {
|
||||
return;
|
||||
}
|
||||
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
late Directory tempDir;
|
||||
|
||||
setUpAll(() async {
|
||||
// Log.init();
|
||||
driftRuntimeOptions.dontWarnAboutMultipleDatabases = true;
|
||||
WorkmanagerPlatform.instance = MockWorkmanagerPlatform();
|
||||
tempDir = Directory.systemTemp.createTempSync('twonly_messaging_test_');
|
||||
AppEnvironment.initTesting(
|
||||
customCacheDir: tempDir.path,
|
||||
customSupportDir: tempDir.path,
|
||||
);
|
||||
|
||||
final dylibPath =
|
||||
'${Directory.current.path}/rust/target/debug/librust_lib_twonly.dylib';
|
||||
if (File(dylibPath).existsSync()) {
|
||||
await RustLib.init(externalLibrary: ExternalLibrary.open(dylibPath));
|
||||
} else {
|
||||
await RustLib.init();
|
||||
}
|
||||
await initFlutterCallbacksForRust();
|
||||
|
||||
await bridge.initializeTwonlyFlutter(
|
||||
config: bridge.InitConfig(
|
||||
databaseDir: tempDir.path,
|
||||
dataDir: tempDir.path,
|
||||
),
|
||||
);
|
||||
|
||||
if (locator.isRegistered<TwonlyDB>()) await locator.unregister<TwonlyDB>();
|
||||
if (locator.isRegistered<UserService>()) {
|
||||
await locator.unregister<UserService>();
|
||||
}
|
||||
if (locator.isRegistered<ApiService>()) {
|
||||
await locator.unregister<ApiService>();
|
||||
}
|
||||
|
||||
locator
|
||||
..registerFactory<TwonlyDB>(() {
|
||||
final db = Zone.current[#twonlyDB] as TwonlyDB?;
|
||||
if (db != null) return db;
|
||||
throw StateError('No TwonlyDB in active Zone.');
|
||||
})
|
||||
..registerFactory<UserService>(() {
|
||||
final us = Zone.current[#userService] as UserService?;
|
||||
if (us != null) return us;
|
||||
throw StateError('No UserService in active Zone.');
|
||||
})
|
||||
..registerFactory<ApiService>(() {
|
||||
final api = Zone.current[#apiService] as ApiService?;
|
||||
if (api != null) return api;
|
||||
throw StateError('No ApiService in active Zone.');
|
||||
});
|
||||
});
|
||||
|
||||
tearDownAll(() async {
|
||||
if (tempDir.existsSync()) {
|
||||
try {
|
||||
tempDir.deleteSync(recursive: true);
|
||||
} catch (_) {}
|
||||
}
|
||||
});
|
||||
|
||||
group('C2C Messaging Protocol - Real API Stress Tests', () {
|
||||
late TestClient clientA;
|
||||
late TestClient clientB;
|
||||
|
||||
setUp(() async {
|
||||
setupPlatformChannelMocks();
|
||||
HttpOverrides.global = RealHttpOverrides();
|
||||
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
|
||||
.setMockMethodCallHandler(
|
||||
const MethodChannel('dev.fluttercommunity.plus/package_info'),
|
||||
(call) async {
|
||||
return {
|
||||
'appName': 'twonly',
|
||||
'packageName': 'eu.twonly.app',
|
||||
'version': '1.0.0',
|
||||
'buildNumber': '100',
|
||||
};
|
||||
},
|
||||
);
|
||||
await Workmanager().initialize(() {});
|
||||
|
||||
clientA = TestClient(1001);
|
||||
clientB = TestClient(2002);
|
||||
|
||||
await clientA.init();
|
||||
await clientB.init();
|
||||
|
||||
await clientA.initContact(clientB);
|
||||
await clientB.initContact(clientA);
|
||||
});
|
||||
|
||||
tearDown(() async {
|
||||
await clientA.run(() async => clientA.api.dispose());
|
||||
await clientB.run(() async => clientB.api.dispose());
|
||||
await clientA.env.db.close();
|
||||
await clientB.env.db.close();
|
||||
});
|
||||
|
||||
test('C2C: Text Message Send & Receive', () async {
|
||||
const text = 'Hello User B!';
|
||||
await clientA.sendText(clientB, text);
|
||||
|
||||
final receivedMsg = await clientB.expectMessage(
|
||||
(m) => m.content == text && m.senderId == clientA.realUserId,
|
||||
);
|
||||
|
||||
expect(receivedMsg.content, text);
|
||||
expect(receivedMsg.senderId, clientA.realUserId);
|
||||
expect(receivedMsg.type, MessageType.text.name);
|
||||
});
|
||||
|
||||
test('C2C: GroupJoin & ResendGroupPublicKey', () async {
|
||||
// clientA creates a fake group ID
|
||||
const groupId = 'test-group-id';
|
||||
|
||||
// clientA asks clientB for public key
|
||||
await clientA.sendResendGroupPublicKey(clientB, groupId);
|
||||
|
||||
// We expect clientB to process it without crashing.
|
||||
// Wait for it to settle by sending a text message and awaiting it.
|
||||
await clientA.sendText(clientB, 'sync1');
|
||||
await clientB.expectMessage((m) => m.content == 'sync1');
|
||||
|
||||
// clientA sends GroupJoin
|
||||
await clientA.sendGroupJoin(clientB, groupId, [1, 2, 3]);
|
||||
|
||||
await clientA.sendText(clientB, 'sync2');
|
||||
await clientB.expectMessage((m) => m.content == 'sync2');
|
||||
});
|
||||
|
||||
test('C2C: ErrorMessages', () async {
|
||||
await clientA.sendErrorMessages(
|
||||
clientB,
|
||||
pb.EncryptedContent_ErrorMessages_Type.SESSION_OUT_OF_SYNC,
|
||||
'fake-receipt',
|
||||
);
|
||||
await clientA.sendText(clientB, 'sync3');
|
||||
await clientB.expectMessage((m) => m.content == 'sync3');
|
||||
});
|
||||
|
||||
test('C2C: UserDiscoveryRequest & Update', () async {
|
||||
await clientA.sendUserDiscoveryRequest(clientB, [1]);
|
||||
await clientA.sendUserDiscoveryUpdate(clientB, [
|
||||
[1, 2],
|
||||
]);
|
||||
await clientA.sendText(clientB, 'sync4');
|
||||
await clientB.expectMessage((m) => m.content == 'sync4');
|
||||
});
|
||||
|
||||
test('C2C: KeyVerificationProof', () async {
|
||||
await clientA.sendKeyVerificationProof(clientB, [0, 0, 0]);
|
||||
await clientA.sendText(clientB, 'sync5');
|
||||
await clientB.expectMessage((m) => m.content == 'sync5');
|
||||
});
|
||||
|
||||
test('C2C: SENDER_DELIVERY_RECEIPT', () async {
|
||||
await clientA.sendDeliveryReceipt(clientB, 'fake-receipt-999');
|
||||
await clientA.sendText(clientB, 'sync6');
|
||||
await clientB.expectMessage((m) => m.content == 'sync6');
|
||||
});
|
||||
|
||||
test('C2C: Reaction Send & Receive', () async {
|
||||
final msgA = await clientA.sendText(clientB, 'Message to react to');
|
||||
await clientB.expectMessage((m) => m.content == 'Message to react to');
|
||||
|
||||
await clientB.sendReaction(clientA, msgA.messageId, '👍');
|
||||
final receivedReaction = await clientA.expectReaction(
|
||||
msgA.messageId,
|
||||
'👍',
|
||||
);
|
||||
expect(receivedReaction.emoji, '👍');
|
||||
});
|
||||
|
||||
test('C2C: MessageUpdate (Edit & Delete)', () async {
|
||||
final msgA = await clientA.sendText(clientB, 'Message to edit');
|
||||
await clientB.expectMessage((m) => m.content == 'Message to edit');
|
||||
|
||||
await clientA.sendMessageUpdate(
|
||||
clientB,
|
||||
msgA.messageId,
|
||||
pb.EncryptedContent_MessageUpdate_Type.EDIT_TEXT,
|
||||
text: 'Edited text',
|
||||
);
|
||||
|
||||
final editedMsg = await clientB.expectMessage(
|
||||
(m) => m.content == 'Edited text' && m.messageId == msgA.messageId,
|
||||
);
|
||||
expect(editedMsg.content, 'Edited text');
|
||||
|
||||
await clientA.sendMessageUpdate(
|
||||
clientB,
|
||||
msgA.messageId,
|
||||
pb.EncryptedContent_MessageUpdate_Type.DELETE,
|
||||
);
|
||||
await clientA.sendText(clientB, 'sync7');
|
||||
await clientB.expectMessage((m) => m.content == 'sync7');
|
||||
});
|
||||
|
||||
test('C2C: Media Message', () async {
|
||||
await clientA.sendMedia(
|
||||
clientB,
|
||||
'media-msg-id',
|
||||
pb.EncryptedContent_Media_Type.IMAGE,
|
||||
);
|
||||
await clientA.sendText(clientB, 'sync8');
|
||||
await clientB.expectMessage((m) => m.content == 'sync8');
|
||||
});
|
||||
});
|
||||
}
|
||||
Loading…
Reference in a new issue