From a7485f6fcf04872fc1f484927d951421ec687469 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 13:19:08 +0100 Subject: [PATCH 01/93] style: sort events exports --- lib/events.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/events.dart b/lib/events.dart index 8c02e5d8..bcd76234 100644 --- a/lib/events.dart +++ b/lib/events.dart @@ -11,12 +11,12 @@ export 'package:mineral/src/domains/events/contracts/private/private_channel_cre export 'package:mineral/src/domains/events/contracts/private/private_channel_delete_event.dart'; export 'package:mineral/src/domains/events/contracts/private/private_channel_pins_update_event.dart'; export 'package:mineral/src/domains/events/contracts/private/private_channel_update_event.dart'; -export 'package:mineral/src/domains/events/contracts/private/private_modal_submit_event.dart'; export 'package:mineral/src/domains/events/contracts/private/private_message_create_event.dart'; -export 'package:mineral/src/domains/events/contracts/private/private_text_select_event.dart'; -export 'package:mineral/src/domains/events/contracts/private/private_user_select_event.dart'; export 'package:mineral/src/domains/events/contracts/private/private_message_reaction_add_event.dart'; export 'package:mineral/src/domains/events/contracts/private/private_message_reaction_remove_event.dart'; +export 'package:mineral/src/domains/events/contracts/private/private_modal_submit_event.dart'; +export 'package:mineral/src/domains/events/contracts/private/private_text_select_event.dart'; +export 'package:mineral/src/domains/events/contracts/private/private_user_select_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_ban_add_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_ban_remove_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_button_click_event.dart'; @@ -27,7 +27,6 @@ export 'package:mineral/src/domains/events/contracts/server/server_channel_selec export 'package:mineral/src/domains/events/contracts/server/server_channel_update_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_create_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_delete_event.dart'; -export 'package:mineral/src/domains/events/contracts/server/server_modal_submit_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_emojis_update_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_member_add_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_member_remove_event.dart'; @@ -36,6 +35,7 @@ export 'package:mineral/src/domains/events/contracts/server/server_member_update export 'package:mineral/src/domains/events/contracts/server/server_message_create_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_message_reaction_add_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_message_reaction_remove_event.dart'; +export 'package:mineral/src/domains/events/contracts/server/server_modal_submit_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_presence_update_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_role_select_event.dart'; export 'package:mineral/src/domains/events/contracts/server/server_roles_create_event.dart'; From 499c6ff61a577a7048a6cb1df1a56c35c3aaf306 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 13:19:23 +0100 Subject: [PATCH 02/93] style: sort api exports --- lib/api.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/api.dart b/lib/api.dart index 04b2f8ff..ea86aee7 100644 --- a/lib/api.dart +++ b/lib/api.dart @@ -29,9 +29,9 @@ export 'package:mineral/src/api/common/commands/command_option_type.dart'; export 'package:mineral/src/api/common/commands/command_type.dart'; export 'package:mineral/src/api/common/components/component.dart'; export 'package:mineral/src/api/common/components/component_type.dart'; -export 'package:mineral/src/api/common/components/message/message_button.dart'; // Commons export 'package:mineral/src/api/common/components/message/message_builder.dart'; +export 'package:mineral/src/api/common/components/message/message_button.dart'; export 'package:mineral/src/api/common/components/message/message_file.dart'; export 'package:mineral/src/api/common/components/message/message_gallery.dart'; export 'package:mineral/src/api/common/components/message/message_media.dart'; From dc70fa07222ebe54e689c394d1e098a4f6051d01 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 13:21:04 +0100 Subject: [PATCH 03/93] style: format BotActivity for better readability --- lib/src/api/common/bot/bot_activity.dart | 29 ++++++++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/lib/src/api/common/bot/bot_activity.dart b/lib/src/api/common/bot/bot_activity.dart index af26d292..c1cd4dbf 100644 --- a/lib/src/api/common/bot/bot_activity.dart +++ b/lib/src/api/common/bot/bot_activity.dart @@ -7,7 +7,13 @@ class BotActivity { PartialEmoji? emoji; String? state; - BotActivity({required this.type, this.name, this.url, this.emoji, this.state}); + BotActivity({ + required this.type, + this.name, + this.url, + this.emoji, + this.state, + }); Object toJson() { return { @@ -19,18 +25,31 @@ class BotActivity { } factory BotActivity.playing(String name) { - return BotActivity(name: name, type: GamePresence.game); + return BotActivity( + name: name, + type: GamePresence.game, + ); } factory BotActivity.watching(String name) { - return BotActivity(name: name, type: GamePresence.watching); + return BotActivity( + name: name, + type: GamePresence.watching, + ); } factory BotActivity.listening(String name) { - return BotActivity(name: name, type: GamePresence.listening); + return BotActivity( + name: name, + type: GamePresence.listening, + ); } factory BotActivity.streaming(String name, String url) { - return BotActivity(name: name, type: GamePresence.streaming, url: url); + return BotActivity( + name: name, + type: GamePresence.streaming, + url: url, + ); } } From c4cd9b515d4db77aea500e42533be01642a93a24 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 13:31:20 +0100 Subject: [PATCH 04/93] style: improve code formatting and readability in Bot class --- lib/src/api/common/bot/bot.dart | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/src/api/common/bot/bot.dart b/lib/src/api/common/bot/bot.dart index a6f1e3d4..5d6cb05d 100644 --- a/lib/src/api/common/bot/bot.dart +++ b/lib/src/api/common/bot/bot.dart @@ -3,7 +3,8 @@ import 'package:mineral/container.dart'; import 'package:mineral/contracts.dart'; final class Bot { - WebsocketOrchestratorContract get _wss => ioc.resolve(); + WebsocketOrchestratorContract get _wss => + ioc.resolve(); final Snowflake id; final String? discriminator; @@ -38,8 +39,13 @@ final class Bot { } /// Updates presence of this - void setPresence({List? activities, StatusType? status, bool? afk}) => - _wss.setBotPresence(activities, status, afk); + void setPresence({ + List? activities, + StatusType? status, + bool? afk, + }) { + _wss.setBotPresence(activities, status, afk); + } @override String toString() => '<@$id>'; @@ -56,7 +62,11 @@ final class Bot { sessionType: json['session_type'], privateChannels: json['private_channels'], presences: json['presences'], - guildIds: List.from(json['guilds'].map((element) => Snowflake.parse(element['id']))), + guildIds: List.from( + json['guilds'].map( + (element) => Snowflake.parse(element['id']), + ), + ), application: PartialApplication( id: Snowflake.parse(json['application']['id']), flags: json['application']['flags'], From d3e37a51eef75d318f44e461fc99fa5a372608b5 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 13:31:40 +0100 Subject: [PATCH 05/93] style: improve code formatting and readability in game_presence.dart --- lib/src/api/common/bot/game_presence.dart | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/src/api/common/bot/game_presence.dart b/lib/src/api/common/bot/game_presence.dart index 8af3cdbd..bfb65df3 100644 --- a/lib/src/api/common/bot/game_presence.dart +++ b/lib/src/api/common/bot/game_presence.dart @@ -11,19 +11,26 @@ enum GamePresence { const GamePresence(this.value); @override - String toString () => value.toString(); + String toString() => value.toString(); } class Timestamp { DateTime? start; DateTime? end; - Timestamp({ required this.start, required this.end }); + Timestamp({ + required this.start, + required this.end, + }); - factory Timestamp.from ({ required dynamic payload }) { + factory Timestamp.from({required dynamic payload}) { return Timestamp( - start: payload['start'] != null ? DateTime.fromMillisecondsSinceEpoch(payload['start']) : null, - end: payload['end'] != null ? DateTime.fromMillisecondsSinceEpoch(payload['end']) : null, + start: payload['start'] != null + ? DateTime.fromMillisecondsSinceEpoch(payload['start']) + : null, + end: payload['end'] != null + ? DateTime.fromMillisecondsSinceEpoch(payload['end']) + : null, ); } } From 1f0442f269588affa65b29afa65cdb8793bcd342 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 13:44:22 +0100 Subject: [PATCH 06/93] style: improve code formatting and readability in helper.dart --- lib/src/domains/common/utils/helper.dart | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/src/domains/common/utils/helper.dart b/lib/src/domains/common/utils/helper.dart index c77db55b..f3791172 100644 --- a/lib/src/domains/common/utils/helper.dart +++ b/lib/src/domains/common/utils/helper.dart @@ -4,12 +4,17 @@ typedef Constructable = T Function(); typedef ConstructableWithArgs = T Function(Args); final class Helper { - static T? createOrNull( - {required dynamic field, required T? Function() fn}) { + static T? createOrNull({ + required dynamic field, + required T? Function() fn, + }) { return field != null ? fn() : null; } - static Future createOrNullAsync( - {required dynamic field, required Future Function() fn}) async => - field != null ? await fn() : null; + static Future createOrNullAsync({ + required dynamic field, + required Future Function() fn, + }) async { + return field != null ? await fn() : null; + } } From 0dcce76663ba46fa61789cd3ae5edc22d026d26c Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 13:50:19 +0100 Subject: [PATCH 07/93] style: improve code formatting and readability in channel_builder.dart --- .../api/common/builder/channel_builder.dart | 77 ++++++++----------- 1 file changed, 32 insertions(+), 45 deletions(-) diff --git a/lib/src/api/common/builder/channel_builder.dart b/lib/src/api/common/builder/channel_builder.dart index 8fbe9fb5..5a6d76a6 100644 --- a/lib/src/api/common/builder/channel_builder.dart +++ b/lib/src/api/common/builder/channel_builder.dart @@ -3,11 +3,8 @@ import 'package:mineral/src/domains/common/utils/utils.dart'; abstract class ChannelBuilderContract { void setName(String value); - void setPosition(int value); - void setPermissionOverwrite(List value); - void addPermissionOverwrite(ChannelPermissionOverwrite value); Map build(); @@ -15,71 +12,50 @@ abstract class ChannelBuilderContract { abstract interface class TextChannelBuilder extends ChannelBuilderContract { void setTopic(String value); - void setRateLimitPerUser(Duration value); - void setParentId(String value); - void setNsfw(bool value); - void setDefaultAutoArchiveDuration(Duration value); - void setDefaultThreadRateLimitPerUser(Duration value); } abstract interface class ForumChannelBuilder extends ChannelBuilderContract { void setTopic(String value); - void setRateLimitPerUser(Duration value); - void setParentId(String value); - void setNsfw(bool value); - void setDefaultAutoArchiveDuration(Duration value); - void setDefaultReactionEmoji(PartialEmoji value); - void setDefaultSortOrder(int value); - void setDefaultForumLayout(int value); - void setDefaultThreadRateLimitPerUser(Duration value); } -abstract interface class AnnouncementChannelBuilder extends ChannelBuilderContract { +abstract interface class AnnouncementChannelBuilder + extends ChannelBuilderContract { void setTopic(String value); - void setParentId(String value); - void setNsfw(bool value); - void setDefaultAutoArchiveDuration(Duration value); - void setDefaultThreadRateLimitPerUser(Duration value); } abstract interface class VoiceChannelBuilder extends ChannelBuilderContract { void setBitrate(int value); - void setUserLimit(int value); - void setParentId(String value); - void setNsfw(bool value); - void setRtcRegion(String value); - void setVideoQualityMode(VideoQuality value); } abstract interface class ThreadChannelBuilder extends ChannelBuilderContract { void setDefaultAutoArchiveDuration(Duration value); - void setDefaultThreadRateLimitPerUser(Duration value); } -abstract interface class CategoryChannelBuilder extends ChannelBuilderContract {} +abstract interface class CategoryChannelBuilder + extends ChannelBuilderContract {} final class ChannelBuilder implements @@ -89,7 +65,6 @@ final class ChannelBuilder ForumChannelBuilder, CategoryChannelBuilder, ThreadChannelBuilder { - final ChannelType? _type; String? _name; String? _topic; @@ -129,7 +104,8 @@ final class ChannelBuilder void setRateLimitPerUser(Duration value) => _rateLimitPerUser = value; @override - void addPermissionOverwrite(ChannelPermissionOverwrite value) => _permissionOverwrites.add(value); + void addPermissionOverwrite(ChannelPermissionOverwrite value) => + _permissionOverwrites.add(value); @override void setPermissionOverwrite(List value) => @@ -148,10 +124,12 @@ final class ChannelBuilder void setVideoQualityMode(VideoQuality value) => _videoQualityMode = value; @override - void setDefaultAutoArchiveDuration(Duration value) => _defaultAutoArchiveDuration = value; + void setDefaultAutoArchiveDuration(Duration value) => + _defaultAutoArchiveDuration = value; @override - void setDefaultReactionEmoji(PartialEmoji value) => _defaultReactionEmoji = value; + void setDefaultReactionEmoji(PartialEmoji value) => + _defaultReactionEmoji = value; @override void setDefaultSortOrder(int value) => _defaultSortOrder = value; @@ -160,7 +138,8 @@ final class ChannelBuilder void setDefaultForumLayout(int value) => _defaultForumLayout = value; @override - void setDefaultThreadRateLimitPerUser(Duration value) => _defaultThreadRateLimitPerUser = value; + void setDefaultThreadRateLimitPerUser(Duration value) => + _defaultThreadRateLimitPerUser = value; /// Build text channel. /// ```dart @@ -177,7 +156,8 @@ final class ChannelBuilder /// ..setName('announcements') /// ..setTopic('Announcement channel'); /// ``` - static AnnouncementChannelBuilder announcement() => ChannelBuilder(ChannelType.guildAnnouncement); + static AnnouncementChannelBuilder announcement() => + ChannelBuilder(ChannelType.guildAnnouncement); /// Build voice channel. /// ```dart @@ -202,7 +182,8 @@ final class ChannelBuilder /// final builder = ChannelBuilder.category() /// ..setName('category'); /// ``` - static CategoryChannelBuilder category() => ChannelBuilder(ChannelType.guildCategory); + static CategoryChannelBuilder category() => + ChannelBuilder(ChannelType.guildCategory); /// Build category channel. /// ```dart @@ -220,23 +201,28 @@ final class ChannelBuilder if (_position != null) 'position': _position, if (_bitrate != null) 'bitrate': _bitrate, if (_userLimit != null) 'user_limit': _userLimit, - if (_rateLimitPerUser != null) 'rate_limit_per_user': _rateLimitPerUser!.inSeconds, + if (_rateLimitPerUser != null) + 'rate_limit_per_user': _rateLimitPerUser!.inSeconds, if (_permissionOverwrites.isNotEmpty) 'permission_overwrites': _permissionOverwrites - .map((element) => { - 'id': element.id, - 'type': element.type.value, - 'allow': listToBitfield(element.allow), - 'deny': listToBitfield(element.deny), - }) + .map( + (element) => { + 'id': element.id, + 'type': element.type.value, + 'allow': listToBitfield(element.allow), + 'deny': listToBitfield(element.deny), + }, + ) .toList(), if (_parentId != null) 'parent_id': _parentId, if (_nsfw != null) 'nsfw': _nsfw, if (_rtcRegion != null) 'rtc_region': _rtcRegion, - if (_videoQualityMode != null) 'video_quality_mode': _videoQualityMode?.value, + if (_videoQualityMode != null) + 'video_quality_mode': _videoQualityMode?.value, if (_defaultAutoArchiveDuration != null) 'default_auto_archive_duration': _defaultAutoArchiveDuration!.inMinutes, - if (_defaultForumLayout != null) 'default_forum_layout': _defaultForumLayout, + if (_defaultForumLayout != null) + 'default_forum_layout': _defaultForumLayout, if (_defaultReactionEmoji != null) 'default_reaction_emoji': { 'emoji_id': _defaultReactionEmoji?.id, @@ -244,7 +230,8 @@ final class ChannelBuilder }, if (_defaultSortOrder != null) 'default_sort_order': _defaultSortOrder, if (_defaultThreadRateLimitPerUser != null) - 'default_thread_rate_limit_per_user': _defaultThreadRateLimitPerUser!.inSeconds, + 'default_thread_rate_limit_per_user': + _defaultThreadRateLimitPerUser!.inSeconds, }; } } From b91b53a63205be5670cbfb83a89bbd873daacfc4 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 13:54:32 +0100 Subject: [PATCH 08/93] style: improve code formatting and readability in command_builder.dart --- lib/src/api/common/commands/builder/command_builder.dart | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/src/api/common/commands/builder/command_builder.dart b/lib/src/api/common/commands/builder/command_builder.dart index b1446ec3..39b4d45a 100644 --- a/lib/src/api/common/commands/builder/command_builder.dart +++ b/lib/src/api/common/commands/builder/command_builder.dart @@ -38,7 +38,8 @@ final class CommandBuilder { if (!firstArg.contains('CommandContext')) { throw Exception( - 'The first argument of the handler function must be CommandContext'); + 'The first argument of the handler function must be CommandContext', + ); } _handle = fn; @@ -54,7 +55,8 @@ final class CommandBuilder { } CommandBuilder createGroup( - CommandGroupBuilder Function(CommandGroupBuilder) group) { + CommandGroupBuilder Function(CommandGroupBuilder) group, + ) { final builder = CommandGroupBuilder(); group(builder); _groups.add(builder); @@ -91,7 +93,8 @@ final class CommandBuilder { for (final group in _groups) { for (final subCommand in group.commands) { handlers.add( - ('$_name.${group.name}.${subCommand.name}', subCommand.handle!)); + ('$_name.${group.name}.${subCommand.name}', subCommand.handle!), + ); } } From cbdf1fe40abfe6d4771029cff97423002e6d1986 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 13:59:08 +0100 Subject: [PATCH 09/93] style: improve code formatting and readability in command_declaration_builder.dart --- .../builder/command_declaration_builder.dart | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/src/api/common/commands/builder/command_declaration_builder.dart b/lib/src/api/common/commands/builder/command_declaration_builder.dart index 3dd739b4..9f08de0a 100644 --- a/lib/src/api/common/commands/builder/command_declaration_builder.dart +++ b/lib/src/api/common/commands/builder/command_declaration_builder.dart @@ -43,12 +43,16 @@ final class CommandDeclarationBuilder implements CommandBuilder { return this; } - CommandDeclarationBuilder setDescription(String description, - {Translation? translation}) { + CommandDeclarationBuilder setDescription( + String description, { + Translation? translation, + }) { _description = description; if (translation != null) { - _descriptionLocalizations = - _helper.extractTranslations('description', translation); + _descriptionLocalizations = _helper.extractTranslations( + 'description', + translation, + ); } return this; } @@ -115,7 +119,8 @@ final class CommandDeclarationBuilder implements CommandBuilder { for (final subCommand in subCommands) { if (subCommand.handle case null) { throw MissingMethodException( - 'Command "$commandName.${subCommand.name}" has no handler'); + 'Command "$commandName.${subCommand.name}" has no handler', + ); } handlers.add(('$name.${subCommand.name}', subCommand.handle!)); @@ -124,7 +129,8 @@ final class CommandDeclarationBuilder implements CommandBuilder { for (final group in groups) { for (final subCommand in group.commands) { handlers.add( - ('$name.${group.name}.${subCommand.name}', subCommand.handle!)); + ('$name.${group.name}.${subCommand.name}', subCommand.handle!), + ); } } From 4a33ec30e9817712eca8e3359b663985be19b0f2 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 14:28:15 +0100 Subject: [PATCH 10/93] style: improve code formatting and readability in command_definition_builder.dart --- .../builder/command_definition_builder.dart | 280 ++++++++++++------ 1 file changed, 196 insertions(+), 84 deletions(-) diff --git a/lib/src/api/common/commands/builder/command_definition_builder.dart b/lib/src/api/common/commands/builder/command_definition_builder.dart index 2fcce60f..57ecc98a 100644 --- a/lib/src/api/common/commands/builder/command_definition_builder.dart +++ b/lib/src/api/common/commands/builder/command_definition_builder.dart @@ -19,7 +19,10 @@ final class CommandDefinitionBuilder implements CommandBuilder { final CommandDeclarationBuilder command = CommandDeclarationBuilder(); String _extractDefaultValue( - String commandKey, String key, Map payload) { + String commandKey, + String key, + Map payload, + ) { final Map? elements = payload[key]; if (elements == null) { throw Exception('Missing "$key" key under $commandKey'); @@ -30,11 +33,14 @@ final class CommandDefinitionBuilder implements CommandBuilder { } throw Exception( - 'Missing "$key.$_defaultIdentifier" key under $commandKey struct'); + 'Missing "$key.$_defaultIdentifier" key under $commandKey struct', + ); } Map _extractTranslations( - String key, Map payload) { + String key, + Map payload, + ) { final Map? elements = payload[key]; if (elements == null) { throw Exception('Missing "$key" key'); @@ -52,77 +58,136 @@ final class CommandDefinitionBuilder implements CommandBuilder { final Map groupList = content['groups'] ?? {}; for (final element in groupList.entries) { - final String defaultName = - _extractDefaultValue(element.key, 'name', element.value); - final String defaultDescription = - _extractDefaultValue(element.key, 'description', element.value); - - final nameTranslations = _extractTranslations('name', element.value); - final descriptionTranslations = - _extractTranslations('description', element.value); + final String defaultName = _extractDefaultValue( + element.key, + 'name', + element.value, + ); + final String defaultDescription = _extractDefaultValue( + element.key, + 'description', + element.value, + ); + + final nameTranslations = _extractTranslations( + 'name', + element.value, + ); + final descriptionTranslations = _extractTranslations( + 'description', + element.value, + ); command.createGroup((group) { return group - ..setName(defaultName, - translation: Translation({'name': nameTranslations})) - ..setDescription(defaultDescription, - translation: Translation({'name': descriptionTranslations})); + ..setName( + defaultName, + translation: Translation({'name': nameTranslations}), + ) + ..setDescription( + defaultDescription, + translation: Translation({'name': descriptionTranslations}), + ); }); } } List _declareOptions(MapEntry element) { - final options = - List>.from(element.value['options'] ?? []); + final options = List>.from( + element.value['options'] ?? [], + ); return options.fold([], (acc, Map element) { final String name = _extractDefaultValue('option', 'name', element); - final String description = - _extractDefaultValue('option', 'description', element); + final String description = _extractDefaultValue( + 'option', + 'description', + element, + ); final bool required = element['required'] ?? false; final option = switch (element['type']) { final String value when value == 'string' => Option.string( - name: name, description: description, required: required), + name: name, + description: description, + required: required, + ), final String value when value == 'integer' => Option.integer( - name: name, description: description, required: required), + name: name, + description: description, + required: required, + ), final String value when value == 'double' => Option.double( - name: name, description: description, required: required), + name: name, + description: description, + required: required, + ), + // FIXME: The line bellow appear to be wrong, i think it should be 'bool' or 'boolean' final String value when value == 'string' => Option.boolean( - name: name, description: description, required: required), - final String value when value == 'user' => - Option.user(name: name, description: description, required: required), + name: name, + description: description, + required: required, + ), + final String value when value == 'user' => Option.user( + name: name, + description: description, + required: required, + ), final String value when value == 'channel' => Option.channel( - name: name, description: description, required: required), - final String value when value == 'role' => - Option.role(name: name, description: description, required: required), + name: name, + description: description, + required: required, + ), + final String value when value == 'role' => Option.role( + name: name, + description: description, + required: required, + ), final String value when value == 'mention' => Option.mentionable( - name: name, description: description, required: required), + name: name, + description: description, + required: required, + ), final String value when value == 'choice.string' => ChoiceOption.string( name: name, description: description, required: required, choices: List.from(element['choices'] ?? []) - .map((element) => - Choice(element['name'], element['value'])) - .toList()), + .map( + (element) => Choice( + element['name'], + element['value'], + ), + ) + .toList(), + ), final String value when value == 'choice.integer' => ChoiceOption.integer( - name: name, - description: description, - required: required, - choices: List.from(element['choices'] ?? []) - .map((element) => - Choice(element['name'], int.parse(element['value']))) - .toList()), + name: name, + description: description, + required: required, + choices: List.from(element['choices'] ?? []) + .map( + (element) => Choice( + element['name'], + int.parse(element['value']), + ), + ) + .toList(), + ), final String value when value == 'choice.double' => ChoiceOption.double( name: name, description: description, required: required, choices: List.from(element['choices'] ?? []) - .map((element) => - Choice(element['name'], double.parse(element['value']))) - .toList()), + .map( + (element) => Choice( + element['name'], + double.parse(element['value']), + ), + ) + .toList(), + ), _ => throw Exception('Unknown option type') }; @@ -135,47 +200,74 @@ final class CommandDefinitionBuilder implements CommandBuilder { for (final element in commandList.entries) { if (element.key.contains('.')) { - final String defaultName = - _extractDefaultValue(element.key, 'name', element.value); - final String defaultDescription = - _extractDefaultValue(element.key, 'description', element.value); - - final nameTranslations = _extractTranslations('name', element.value); - final descriptionTranslations = - _extractTranslations('description', element.value); + final String defaultName = _extractDefaultValue( + element.key, + 'name', + element.value, + ); + final String defaultDescription = _extractDefaultValue( + element.key, + 'description', + element.value, + ); + + final nameTranslations = _extractTranslations( + 'name', + element.value, + ); + final descriptionTranslations = _extractTranslations( + 'description', + element.value, + ); if (element.value['group'] case final String group) { - final currentGroup = command.groups - .firstWhere((element) => element.name == group) - ..addSubCommand((command) { + final currentGroup = command.groups.firstWhere( + (element) => element.name == group, + )..addSubCommand((command) { command - ..setName(defaultName, - translation: Translation({'name': nameTranslations})) - ..setDescription(defaultDescription, - translation: - Translation({'description': descriptionTranslations})); + ..setName( + defaultName, + translation: Translation( + {'name': nameTranslations}, + ), + ) + ..setDescription( + defaultDescription, + translation: Translation( + {'description': descriptionTranslations}, + ), + ); command.options.addAll(_declareOptions(element)); }); final int currentGroupIndex = command.groups.indexOf(currentGroup); - final int currentSubCommandIndex = - currentGroup.commands.indexOf(currentGroup.commands.last); + final int currentSubCommandIndex = currentGroup.commands.indexOf( + currentGroup.commands.last, + ); _commandMapper[element.key] = () => command .groups[currentGroupIndex].commands[currentSubCommandIndex]; } else { command.addSubCommand((command) { command - ..setName(defaultName, - translation: Translation({'name': nameTranslations})) - ..setDescription(defaultDescription, - translation: - Translation({'description': descriptionTranslations})); + ..setName( + defaultName, + translation: Translation( + {'name': nameTranslations}, + ), + ) + ..setDescription( + defaultDescription, + translation: Translation( + {'description': descriptionTranslations}, + ), + ); command.options.addAll(_declareOptions(element)); }); - final currentSubCommandIndex = - command.subCommands.indexOf(command.subCommands.last); + final currentSubCommandIndex = command.subCommands.indexOf( + command.subCommands.last, + ); _commandMapper[element.key] = () => command.subCommands[currentSubCommandIndex]; } @@ -188,21 +280,39 @@ final class CommandDefinitionBuilder implements CommandBuilder { for (final element in commandList.entries) { if (!element.key.contains('.')) { - final String defaultName = - _extractDefaultValue(element.key, 'name', element.value); - final String defaultDescription = - _extractDefaultValue(element.key, 'description', element.value); - - final nameTranslations = _extractTranslations('name', element.value); - final descriptionTranslations = - _extractTranslations('description', element.value); + final String defaultName = _extractDefaultValue( + element.key, + 'name', + element.value, + ); + final String defaultDescription = _extractDefaultValue( + element.key, + 'description', + element.value, + ); + + final nameTranslations = _extractTranslations( + 'name', + element.value, + ); + final descriptionTranslations = _extractTranslations( + 'description', + element.value, + ); command - ..setName(defaultName, - translation: Translation({'name': nameTranslations})) - ..setDescription(defaultDescription, - translation: - Translation({'description': descriptionTranslations})); + ..setName( + defaultName, + translation: Translation( + {'name': nameTranslations}, + ), + ) + ..setDescription( + defaultDescription, + translation: Translation( + {'description': descriptionTranslations}, + ), + ); command.options.addAll(_declareOptions(element)); @@ -212,14 +322,16 @@ final class CommandDefinitionBuilder implements CommandBuilder { } void context(String key, Function(T) fn) { - final command = - _commandMapper.entries.firstWhere((element) => element.key == key); + final command = _commandMapper.entries.firstWhere( + (element) => element.key == key, + ); fn(command.value()); } void setHandler(String key, Function fn) { - final command = - _commandMapper.entries.firstWhere((element) => element.key == key); + final command = _commandMapper.entries.firstWhere( + (element) => element.key == key, + ); switch (command.value()) { case final SubCommandBuilder command: From d63ceeec6c120bdf3e2a5bd37df2506f06327603 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 14:38:39 +0100 Subject: [PATCH 11/93] style: improve code formatting and readability in command_group_builder.dart --- .../commands/builder/command_group_builder.dart | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/src/api/common/commands/builder/command_group_builder.dart b/lib/src/api/common/commands/builder/command_group_builder.dart index ddfae044..721c4393 100644 --- a/lib/src/api/common/commands/builder/command_group_builder.dart +++ b/lib/src/api/common/commands/builder/command_group_builder.dart @@ -24,12 +24,16 @@ final class CommandGroupBuilder { return this; } - CommandGroupBuilder setDescription(String description, - {Translation? translation}) { + CommandGroupBuilder setDescription( + String description, { + Translation? translation, + }) { _description = description; if (translation != null) { - _descriptionLocalizations = - _helper.extractTranslations('description', translation); + _descriptionLocalizations = _helper.extractTranslations( + 'description', + translation, + ); } return this; } From 9a908bf3f421d0354b1e2cc5779a42c7f57c0956 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 14:41:11 +0100 Subject: [PATCH 12/93] style: improve code formatting and readability in sub_command_builder.dart --- .../common/commands/builder/sub_command_builder.dart | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/src/api/common/commands/builder/sub_command_builder.dart b/lib/src/api/common/commands/builder/sub_command_builder.dart index a9279cc1..105fb5dd 100644 --- a/lib/src/api/common/commands/builder/sub_command_builder.dart +++ b/lib/src/api/common/commands/builder/sub_command_builder.dart @@ -25,12 +25,16 @@ final class SubCommandBuilder { return this; } - SubCommandBuilder setDescription(String description, - {Translation? translation}) { + SubCommandBuilder setDescription( + String description, { + Translation? translation, + }) { _description = description; if (translation != null) { - _descriptionLocalizations = - _helper.extractTranslations('description', translation); + _descriptionLocalizations = _helper.extractTranslations( + 'description', + translation, + ); } return this; } From 1290fdcd8c06e91a22a46131a06ae4fd413c1c08 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 14:43:17 +0100 Subject: [PATCH 13/93] style: improve code formatting and readability in translation.dart --- lib/src/api/common/commands/builder/translation.dart | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/src/api/common/commands/builder/translation.dart b/lib/src/api/common/commands/builder/translation.dart index ee0dc179..7fca33b0 100644 --- a/lib/src/api/common/commands/builder/translation.dart +++ b/lib/src/api/common/commands/builder/translation.dart @@ -35,9 +35,12 @@ final class Translation { final Map map = {}; for (final MapEntry element in translation.value.entries) { - final lang = Lang.values.firstWhere((lang) => lang.uid == element.key, - orElse: () => throw Exception( - 'Lang "${element.key}" not exists is the available languages')); + final lang = Lang.values.firstWhere( + (lang) => lang.uid == element.key, + orElse: () => throw Exception( + 'Lang "${element.key}" not exists is the available languages', + ), + ); map.putIfAbsent(lang, () => element.value); } From b41189f5d89c8d794b1a68922db3576db0bfb6f5 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 14:46:48 +0100 Subject: [PATCH 14/93] style: improve code formatting and readability in command_choice_option.dart --- .../commands/command_choice_option.dart | 88 +++++++++++++------ 1 file changed, 62 insertions(+), 26 deletions(-) diff --git a/lib/src/api/common/commands/command_choice_option.dart b/lib/src/api/common/commands/command_choice_option.dart index 67925261..8f0d3669 100644 --- a/lib/src/api/common/commands/command_choice_option.dart +++ b/lib/src/api/common/commands/command_choice_option.dart @@ -20,8 +20,14 @@ final class ChoiceOption implements CommandOption { final List choices; - const ChoiceOption._(this.name, this.description, this.type, this.isRequired, - this.channelTypes, this.choices); + const ChoiceOption._( + this.name, + this.description, + this.type, + this.isRequired, + this.channelTypes, + this.choices, + ); @override Map toJson() { @@ -30,39 +36,69 @@ final class ChoiceOption implements CommandOption { 'description': description, 'type': type.value, 'required': isRequired, - 'choices': - choices.map((e) => {'name': e.name, 'value': e.value}).toList(), + 'choices': choices + .map( + (e) => {'name': e.name, 'value': e.value}, + ) + .toList(), }; } - factory ChoiceOption.string( - {required String name, - required String description, - required List> choices, - bool required = false}) => - ChoiceOption._( - name, description, CommandOptionType.string, required, null, choices); + factory ChoiceOption.string({ + required String name, + required String description, + required List> choices, + bool required = false, + }) { + return ChoiceOption._( + name, + description, + CommandOptionType.string, + required, + null, + choices, + ); + } - factory ChoiceOption.integer( - {required String name, - required String description, - required List> choices, - bool required = false}) => - ChoiceOption._(name, description, CommandOptionType.integer, required, - null, choices); + factory ChoiceOption.integer({ + required String name, + required String description, + required List> choices, + bool required = false, + }) { + return ChoiceOption._( + name, + description, + CommandOptionType.integer, + required, + null, + choices, + ); + } - factory ChoiceOption.double( - {required String name, - required String description, - required List> choices, - bool required = false}) => - ChoiceOption._( - name, description, CommandOptionType.double, required, null, choices); + factory ChoiceOption.double({ + required String name, + required String description, + required List> choices, + bool required = false, + }) { + return ChoiceOption._( + name, + description, + CommandOptionType.double, + required, + null, + choices, + ); + } } final class Choice { final String name; final T value; - const Choice(this.name, this.value); + const Choice( + this.name, + this.value, + ); } From b1e6600ab8b11376624a3f4452bd58849716245a Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 14:48:38 +0100 Subject: [PATCH 15/93] style: improve code formatting and readability in command_helper.dart --- lib/src/api/common/commands/command_helper.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/src/api/common/commands/command_helper.dart b/lib/src/api/common/commands/command_helper.dart index db08f8a4..2df8326d 100644 --- a/lib/src/api/common/commands/command_helper.dart +++ b/lib/src/api/common/commands/command_helper.dart @@ -9,7 +9,9 @@ final class CommandHelper { ); Map? extractTranslations( - String key, Translation translations) { + String key, + Translation translations, + ) { if (translations.translations[key] case final Map elements) { return elements.entries.fold({}, (acc, element) { return {...?acc, element.key.uid: element.value}; From 12f763eee347a7ddf6013183ad7b3a5dfe5f4d1d Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 14:53:16 +0100 Subject: [PATCH 16/93] style: improve code formatting and readability in command_option.dart --- .../api/common/commands/command_option.dart | 196 ++++++++++++------ 1 file changed, 133 insertions(+), 63 deletions(-) diff --git a/lib/src/api/common/commands/command_option.dart b/lib/src/api/common/commands/command_option.dart index 0636f5b7..cc074e02 100644 --- a/lib/src/api/common/commands/command_option.dart +++ b/lib/src/api/common/commands/command_option.dart @@ -3,15 +3,10 @@ import 'package:mineral/src/api/common/types/channel_type.dart'; abstract interface class CommandOption { String get name; - String get description; - CommandOptionType get type; - bool get isRequired; - List? get channelTypes; - Map toJson(); } @@ -31,8 +26,13 @@ final class Option implements CommandOption { @override final List? channelTypes; - const Option._(this.name, this.description, this.type, this.channelTypes, - this.isRequired); + const Option._( + this.name, + this.description, + this.type, + this.channelTypes, + this.isRequired, + ); @override Map toJson() { @@ -45,60 +45,130 @@ final class Option implements CommandOption { }; } - factory Option.string( - {required String name, - required String description, - bool required = false}) => - Option._(name, description, CommandOptionType.string, null, required); - - factory Option.integer( - {required String name, - required String description, - bool required = false}) => - Option._(name, description, CommandOptionType.integer, null, required); - - factory Option.double( - {required String name, - required String description, - bool required = false}) => - Option._(name, description, CommandOptionType.double, null, required); - - factory Option.boolean( - {required String name, - required String description, - bool required = false}) => - Option._(name, description, CommandOptionType.boolean, null, required); - - factory Option.user( - {required String name, - required String description, - bool required = false}) => - Option._(name, description, CommandOptionType.user, null, required); - - factory Option.channel( - {required String name, - required String description, - List channels = const [], - bool required = false}) => - Option._( - name, description, CommandOptionType.channel, channels, required); - - factory Option.role( - {required String name, - required String description, - bool required = false}) => - Option._(name, description, CommandOptionType.role, null, required); - - factory Option.mentionable( - {required String name, - required String description, - bool required = false}) => - Option._( - name, description, CommandOptionType.mentionable, null, required); - - factory Option.attachment( - {required String name, - required String description, - bool required = false}) => - Option._(name, description, CommandOptionType.attachment, null, required); + factory Option.string({ + required String name, + required String description, + bool required = false, + }) { + return Option._( + name, + description, + CommandOptionType.string, + null, + required, + ); + } + + factory Option.integer({ + required String name, + required String description, + bool required = false, + }) { + return Option._( + name, + description, + CommandOptionType.integer, + null, + required, + ); + } + + factory Option.double({ + required String name, + required String description, + bool required = false, + }) { + return Option._( + name, + description, + CommandOptionType.double, + null, + required, + ); + } + + factory Option.boolean({ + required String name, + required String description, + bool required = false, + }) { + return Option._( + name, + description, + CommandOptionType.boolean, + null, + required, + ); + } + + factory Option.user({ + required String name, + required String description, + bool required = false, + }) { + return Option._( + name, + description, + CommandOptionType.user, + null, + required, + ); + } + + factory Option.channel({ + required String name, + required String description, + List channels = const [], + bool required = false, + }) { + return Option._( + name, + description, + CommandOptionType.channel, + channels, + required, + ); + } + + factory Option.role({ + required String name, + required String description, + bool required = false, + }) { + return Option._( + name, + description, + CommandOptionType.role, + null, + required, + ); + } + + factory Option.mentionable({ + required String name, + required String description, + bool required = false, + }) { + return Option._( + name, + description, + CommandOptionType.mentionable, + null, + required, + ); + } + + factory Option.attachment({ + required String name, + required String description, + bool required = false, + }) { + return Option._( + name, + description, + CommandOptionType.attachment, + null, + required, + ); + } } From c6612d8145c62fe424a69801c19787be4a43a423 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 15:03:51 +0100 Subject: [PATCH 17/93] style: improve code formatting and readability in message_builder.dart --- .../common/components/message/message_builder.dart | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/src/api/common/components/message/message_builder.dart b/lib/src/api/common/components/message/message_builder.dart index 13c6e5f5..ecf4337b 100644 --- a/lib/src/api/common/components/message/message_builder.dart +++ b/lib/src/api/common/components/message/message_builder.dart @@ -11,9 +11,11 @@ import 'package:mineral/src/api/common/components/shared/text_display.dart'; /// MessageButton.link('https://google.com', label: 'label'), /// ]; /// -/// final channelSelectMenu = SelectMenu.channel('channel', +/// final channelSelectMenu = SelectMenu.channel( +/// 'channel', /// channelTypes: [ChannelType.guildText], -/// defaultValues: [Snowflake.parse('1322554770057068636')]); +/// defaultValues: [Snowflake.parse('1322554770057068636')], +/// ); /// /// final builder = MessageBuilder() /// ..text('# Hello from World') @@ -30,8 +32,10 @@ final class MessageBuilder { _components.add(TextDisplay(text)); } - void separator( - {bool show = true, SeparatorSize spacing = SeparatorSize.small}) { + void separator({ + bool show = true, + SeparatorSize spacing = SeparatorSize.small, + }) { _components.add(MessageSeparator(show, spacing)); } From d6eb9786d2a993ab8f2f5c18200e4b6432966fd6 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 15:03:57 +0100 Subject: [PATCH 18/93] style: improve code formatting and readability in message_button.dart --- .../components/message/message_button.dart | 148 +++++++++++------- 1 file changed, 92 insertions(+), 56 deletions(-) diff --git a/lib/src/api/common/components/message/message_button.dart b/lib/src/api/common/components/message/message_button.dart index 8fd198ef..6e93ace6 100644 --- a/lib/src/api/common/components/message/message_button.dart +++ b/lib/src/api/common/components/message/message_button.dart @@ -22,73 +22,109 @@ final class MessageButton implements Component { final PartialEmoji? _emoji; final bool _disabled; - MessageButton( - {required ButtonType type, - String? customId, - String? label, - String? url, - PartialEmoji? emoji, - bool? disabled}) - : _type = type, + MessageButton({ + required ButtonType type, + String? customId, + String? label, + String? url, + PartialEmoji? emoji, + bool? disabled, + }) : _type = type, _customId = customId, _label = label, _url = url, _emoji = emoji, _disabled = disabled ?? false; - factory MessageButton.primary(String customId, - {String? label, PartialEmoji? emoji, bool? disabled}) => - MessageButton( - type: ButtonType.primary, - customId: customId, - label: label, - emoji: emoji, - disabled: disabled); + factory MessageButton.primary( + String customId, { + String? label, + PartialEmoji? emoji, + bool? disabled, + }) { + return MessageButton( + type: ButtonType.primary, + customId: customId, + label: label, + emoji: emoji, + disabled: disabled, + ); + } - factory MessageButton.secondary(String customId, - {String? label, PartialEmoji? emoji, bool? disabled}) => - MessageButton( - type: ButtonType.secondary, - customId: customId, - label: label, - emoji: emoji, - disabled: disabled); + factory MessageButton.secondary( + String customId, { + String? label, + PartialEmoji? emoji, + bool? disabled, + }) { + return MessageButton( + type: ButtonType.secondary, + customId: customId, + label: label, + emoji: emoji, + disabled: disabled, + ); + } - factory MessageButton.success(String customId, - {String? label, PartialEmoji? emoji, bool? disabled}) => - MessageButton( - type: ButtonType.success, - customId: customId, - label: label, - emoji: emoji, - disabled: disabled); + factory MessageButton.success( + String customId, { + String? label, + PartialEmoji? emoji, + bool? disabled, + }) { + return MessageButton( + type: ButtonType.success, + customId: customId, + label: label, + emoji: emoji, + disabled: disabled, + ); + } - factory MessageButton.danger(String customId, - {String? label, PartialEmoji? emoji, bool? disabled}) => - MessageButton( - type: ButtonType.danger, - customId: customId, - label: label, - emoji: emoji, - disabled: disabled); + factory MessageButton.danger( + String customId, { + String? label, + PartialEmoji? emoji, + bool? disabled, + }) { + return MessageButton( + type: ButtonType.danger, + customId: customId, + label: label, + emoji: emoji, + disabled: disabled, + ); + } - factory MessageButton.link(String url, - {String? label, PartialEmoji? emoji, bool? disabled}) => - MessageButton( - type: ButtonType.link, - url: url, - label: label, - emoji: emoji, - disabled: disabled); + factory MessageButton.link( + String url, { + String? label, + PartialEmoji? emoji, + bool? disabled, + }) { + return MessageButton( + type: ButtonType.link, + url: url, + label: label, + emoji: emoji, + disabled: disabled, + ); + } - factory MessageButton.premium(String skuId, - {String? label, PartialEmoji? emoji, bool? disabled}) => - MessageButton( - type: ButtonType.premium, - customId: skuId, - label: label, - emoji: emoji, - disabled: disabled); + factory MessageButton.premium( + String skuId, { + String? label, + PartialEmoji? emoji, + bool? disabled, + }) { + return MessageButton( + type: ButtonType.premium, + customId: skuId, + label: label, + emoji: emoji, + disabled: disabled, + ); + } @override Map toJson() { From 1155ef221c0d8868ff1331afd9f9be134e5b223a Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 15:44:41 +0100 Subject: [PATCH 19/93] style: improve code formatting and readability in message_container.dart --- .../api/common/components/message/message_container.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/src/api/common/components/message/message_container.dart b/lib/src/api/common/components/message/message_container.dart index d5d040fa..65d60eff 100644 --- a/lib/src/api/common/components/message/message_container.dart +++ b/lib/src/api/common/components/message/message_container.dart @@ -7,7 +7,11 @@ final class MessageContainer implements Component { final bool? _spoiler; final MessageBuilder? _components; - MessageContainer(this._color, this._spoiler, this._components); + MessageContainer( + this._color, + this._spoiler, + this._components, + ); @override Map toJson() { From 46e73b07988893c28e3f4f9de2eca5619159268c Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 15:44:52 +0100 Subject: [PATCH 20/93] style: improve code formatting and readability in message_file.dart --- lib/src/api/common/components/message/message_file.dart | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/src/api/common/components/message/message_file.dart b/lib/src/api/common/components/message/message_file.dart index 0113aef9..5ffcde82 100644 --- a/lib/src/api/common/components/message/message_file.dart +++ b/lib/src/api/common/components/message/message_file.dart @@ -27,8 +27,11 @@ final class Attachment implements Component { return Attachment(path, spoiler: spoiler)..bytes = bytes; } - static Future network(String url, - {bool? spoiler, bool cache = false}) async { + static Future network( + String url, { + bool? spoiler, + bool cache = false, + }) async { if (cache && _cachedAttachments.containsKey(url)) { return Attachment(url, spoiler: spoiler) ..bytes = _cachedAttachments[url]!; From 43b7dae259f9db34249942594f85660bbce70389 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 15:48:15 +0100 Subject: [PATCH 21/93] style: improve code formatting and readability in select_menu.dart --- .../common/components/shared/select_menu.dart | 149 ++++++++++-------- 1 file changed, 87 insertions(+), 62 deletions(-) diff --git a/lib/src/api/common/components/shared/select_menu.dart b/lib/src/api/common/components/shared/select_menu.dart index 009180b3..1e2d5f5c 100644 --- a/lib/src/api/common/components/shared/select_menu.dart +++ b/lib/src/api/common/components/shared/select_menu.dart @@ -19,17 +19,19 @@ final class SelectMenu implements Component { final List _defaultValues; final List _channelTypes; - SelectMenu(this._type, this._customId, - {String? placeholder, - int? minLength, - int? maxLength, - int? minValues, - int? maxValues, - bool? disabled, - List>? options, - List? defaultValues, - List? channelTypes}) - : _placeholder = placeholder, + SelectMenu( + this._type, + this._customId, { + String? placeholder, + int? minLength, + int? maxLength, + int? minValues, + int? maxValues, + bool? disabled, + List>? options, + List? defaultValues, + List? channelTypes, + }) : _placeholder = placeholder, _minLength = minLength, _maxLength = maxLength, _minValues = minValues, @@ -46,13 +48,17 @@ final class SelectMenu implements Component { int? minValues, int? maxValues, bool? disabled, - }) => - SelectMenu(ComponentType.textSelectMenu, customId, - placeholder: placeholder, - minValues: minValues, - maxValues: maxValues, - disabled: disabled, - options: options); + }) { + return SelectMenu( + ComponentType.textSelectMenu, + customId, + placeholder: placeholder, + minValues: minValues, + maxValues: maxValues, + disabled: disabled, + options: options, + ); + } static SelectMenu channel( String customId, { @@ -62,14 +68,18 @@ final class SelectMenu implements Component { bool? disabled, List defaultValues = const [], List channelTypes = const [], - }) => - SelectMenu(ComponentType.channelSelectMenu, customId, - placeholder: placeholder, - minValues: minValues, - maxValues: maxValues, - disabled: disabled, - defaultValues: defaultValues, - channelTypes: channelTypes); + }) { + return SelectMenu( + ComponentType.channelSelectMenu, + customId, + placeholder: placeholder, + minValues: minValues, + maxValues: maxValues, + disabled: disabled, + defaultValues: defaultValues, + channelTypes: channelTypes, + ); + } factory SelectMenu.user( String customId, { @@ -78,13 +88,17 @@ final class SelectMenu implements Component { int? maxValues, bool? disabled, List defaultValues = const [], - }) => - SelectMenu(ComponentType.userSelectMenu, customId, - placeholder: placeholder, - minValues: minValues, - maxValues: maxValues, - disabled: disabled, - defaultValues: defaultValues); + }) { + return SelectMenu( + ComponentType.userSelectMenu, + customId, + placeholder: placeholder, + minValues: minValues, + maxValues: maxValues, + disabled: disabled, + defaultValues: defaultValues, + ); + } factory SelectMenu.role( String customId, { @@ -93,13 +107,17 @@ final class SelectMenu implements Component { int? maxValues, bool? disabled, List defaultValues = const [], - }) => - SelectMenu(ComponentType.roleSelectMenu, customId, - placeholder: placeholder, - minValues: minValues, - maxValues: maxValues, - disabled: disabled, - defaultValues: defaultValues); + }) { + return SelectMenu( + ComponentType.roleSelectMenu, + customId, + placeholder: placeholder, + minValues: minValues, + maxValues: maxValues, + disabled: disabled, + defaultValues: defaultValues, + ); + } factory SelectMenu.mentionable( String customId, { @@ -108,13 +126,17 @@ final class SelectMenu implements Component { int? maxValues, bool? disabled, List defaultValues = const [], - }) => - SelectMenu(ComponentType.mentionableSelectMenu, customId, - placeholder: placeholder, - minValues: minValues, - maxValues: maxValues, - disabled: disabled, - defaultValues: defaultValues); + }) { + return SelectMenu( + ComponentType.mentionableSelectMenu, + customId, + placeholder: placeholder, + minValues: minValues, + maxValues: maxValues, + disabled: disabled, + defaultValues: defaultValues, + ); + } @override Map toJson() { @@ -133,15 +155,17 @@ final class SelectMenu implements Component { 'channel_types': _channelTypes.map((e) => e.value).toList(), if (_defaultValues.isNotEmpty) 'default_values': _defaultValues - .map((e) => { - 'id': e.value, - 'type': switch (_type) { - ComponentType.userSelectMenu => 'user', - ComponentType.roleSelectMenu => 'role', - ComponentType.channelSelectMenu => 'channel', - _ => throw Exception('Invalid select menu type'), - }, - }) + .map( + (e) => { + 'id': e.value, + 'type': switch (_type) { + ComponentType.userSelectMenu => 'user', + ComponentType.roleSelectMenu => 'role', + ComponentType.channelSelectMenu => 'channel', + _ => throw Exception('Invalid select menu type'), + }, + }, + ) .toList(), }; } @@ -154,12 +178,13 @@ final class SelectMenuOption { final PartialEmoji? emoji; final bool? isDefault; - SelectMenuOption( - {required this.label, - required this.value, - this.description, - this.emoji, - this.isDefault = false}); + SelectMenuOption({ + required this.label, + required this.value, + this.description, + this.emoji, + this.isDefault = false, + }); Map toJson() { return { From 2ccfc7c213646c8630a5c75d9e025b1a9ee75013 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 15:52:36 +0100 Subject: [PATCH 22/93] style: improve code formatting and readability in embed components --- .../common/embed/message_embed_author.dart | 17 +-- .../common/embed/message_embed_builder.dart | 110 ++++++++++++------ .../api/common/embed/message_embed_field.dart | 19 ++- .../common/embed/message_embed_footer.dart | 13 ++- 4 files changed, 109 insertions(+), 50 deletions(-) diff --git a/lib/src/api/common/embed/message_embed_author.dart b/lib/src/api/common/embed/message_embed_author.dart index 9ba2a9c3..fbce4ced 100644 --- a/lib/src/api/common/embed/message_embed_author.dart +++ b/lib/src/api/common/embed/message_embed_author.dart @@ -6,13 +6,16 @@ final class MessageEmbedAuthor { final String? iconUrl; final String? proxyIconUrl; - MessageEmbedAuthor( - {required this.name, - required this.url, - required this.iconUrl, - required this.proxyIconUrl}) { - expectOrThrow(name.length <= 256, - message: 'Author name must be 256 or fewer in length'); + MessageEmbedAuthor({ + required this.name, + required this.url, + required this.iconUrl, + required this.proxyIconUrl, + }) { + expectOrThrow( + name.length <= 256, + message: 'Author name must be 256 or fewer in length', + ); } Object toJson() { diff --git a/lib/src/api/common/embed/message_embed_builder.dart b/lib/src/api/common/embed/message_embed_builder.dart index 4a7dae76..8d287638 100644 --- a/lib/src/api/common/embed/message_embed_builder.dart +++ b/lib/src/api/common/embed/message_embed_builder.dart @@ -34,26 +34,44 @@ final class MessageEmbedBuilder { return this; } - MessageEmbedBuilder setFooter( - {required String text, String? iconUrl, String? proxyIconUrl}) { + MessageEmbedBuilder setFooter({ + required String text, + String? iconUrl, + String? proxyIconUrl, + }) { footer = MessageEmbedFooter( - text: text, iconUrl: iconUrl, proxyIconUrl: proxyIconUrl); + text: text, + iconUrl: iconUrl, + proxyIconUrl: proxyIconUrl, + ); return this; } - MessageEmbedBuilder setAuthor( - {required String name, - String? url, - String? iconUrl, - String? proxyIconUrl}) { + MessageEmbedBuilder setAuthor({ + required String name, + String? url, + String? iconUrl, + String? proxyIconUrl, + }) { author = MessageEmbedAuthor( - name: name, url: url, iconUrl: iconUrl, proxyIconUrl: proxyIconUrl); + name: name, + url: url, + iconUrl: iconUrl, + proxyIconUrl: proxyIconUrl, + ); return this; } - MessageEmbedBuilder addField( - {required String name, required String value, bool inline = false}) { - fields.add(MessageEmbedField(name: name, value: value, inline: inline)); + MessageEmbedBuilder addField({ + required String name, + required String value, + bool inline = false, + }) { + fields.add(MessageEmbedField( + name: name, + value: value, + inline: inline, + )); return this; } @@ -62,40 +80,66 @@ final class MessageEmbedBuilder { return this; } - MessageEmbedBuilder setImage( - {required String url, String? proxyUrl, int? height, int? width}) { + MessageEmbedBuilder setImage({ + required String url, + String? proxyUrl, + int? height, + int? width, + }) { image = MessageEmbedImage( - url: url, proxyUrl: proxyUrl, height: height, width: width); + url: url, + proxyUrl: proxyUrl, + height: height, + width: width, + ); return this; } - MessageEmbedBuilder setThumbnail( - {required String url, String? proxyUrl, int? height, int? width}) { + MessageEmbedBuilder setThumbnail({ + required String url, + String? proxyUrl, + int? height, + int? width, + }) { thumbnail = MessageEmbedImage( - url: url, proxyUrl: proxyUrl, height: height, width: width); + url: url, + proxyUrl: proxyUrl, + height: height, + width: width, + ); return this; } - MessageEmbedBuilder setVideo( - {required String url, String? proxyUrl, int? height, int? width}) { + MessageEmbedBuilder setVideo({ + required String url, + String? proxyUrl, + int? height, + int? width, + }) { image = MessageEmbedImage( - url: url, proxyUrl: proxyUrl, height: height, width: width); + url: url, + proxyUrl: proxyUrl, + height: height, + width: width, + ); return this; } MessageEmbed build() { return MessageEmbed( - title: title, - description: description, - url: url, - timestamp: timestamp, - color: color ?? Color('#000000'), - assets: MessageEmbedAssets( - image: image, - thumbnail: thumbnail, - video: image, - footer: footer, - author: author), - fields: fields); + title: title, + description: description, + url: url, + timestamp: timestamp, + color: color ?? Color('#000000'), + assets: MessageEmbedAssets( + image: image, + thumbnail: thumbnail, + video: image, + footer: footer, + author: author, + ), + fields: fields, + ); } } diff --git a/lib/src/api/common/embed/message_embed_field.dart b/lib/src/api/common/embed/message_embed_field.dart index a33f3f95..0fbb3f7c 100644 --- a/lib/src/api/common/embed/message_embed_field.dart +++ b/lib/src/api/common/embed/message_embed_field.dart @@ -5,12 +5,19 @@ final class MessageEmbedField { final String value; final bool inline; - MessageEmbedField( - {required this.name, required this.value, this.inline = false}) { - expectOrThrow(name.length <= 256, - message: 'Name must be 256 or fewer in length'); - expectOrThrow(value.length <= 1024, - message: 'Value must be 1024 or fewer in length'); + MessageEmbedField({ + required this.name, + required this.value, + this.inline = false, + }) { + expectOrThrow( + name.length <= 256, + message: 'Name must be 256 or fewer in length', + ); + expectOrThrow( + value.length <= 1024, + message: 'Value must be 1024 or fewer in length', + ); } Object toJson() { diff --git a/lib/src/api/common/embed/message_embed_footer.dart b/lib/src/api/common/embed/message_embed_footer.dart index 931c2221..35bc6296 100644 --- a/lib/src/api/common/embed/message_embed_footer.dart +++ b/lib/src/api/common/embed/message_embed_footer.dart @@ -5,10 +5,15 @@ final class MessageEmbedFooter { final String? iconUrl; final String? proxyIconUrl; - MessageEmbedFooter( - {required this.text, required this.iconUrl, required this.proxyIconUrl}) { - expectOrThrow(text.length <= 2048, - message: 'Text must be 2048 or fewer in length'); + MessageEmbedFooter({ + required this.text, + required this.iconUrl, + required this.proxyIconUrl, + }) { + expectOrThrow( + text.length <= 2048, + message: 'Text must be 2048 or fewer in length', + ); } Object toJson() { From d78d45c264278137aa9e9601354543b92adced10 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 15:54:03 +0100 Subject: [PATCH 23/93] style: improve code formatting and readability in managers --- lib/src/api/common/managers/message_manager.dart | 11 ++++++----- lib/src/api/common/managers/reaction_manager.dart | 6 ++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/src/api/common/managers/message_manager.dart b/lib/src/api/common/managers/message_manager.dart index e29e7ddc..f968a4f6 100644 --- a/lib/src/api/common/managers/message_manager.dart +++ b/lib/src/api/common/managers/message_manager.dart @@ -16,10 +16,11 @@ final class MessageManager { Future getOrFail(Snowflake id, {bool force = false}) => _datastore.message.get(_channelId.value, id.value, force) as Future; - Future> fetch( - {Snowflake? around, - Snowflake? before, - Snowflake? after, - int? limit}) => + Future> fetch({ + Snowflake? around, + Snowflake? before, + Snowflake? after, + int? limit, + }) => _datastore.message.fetch(_channelId.value); } diff --git a/lib/src/api/common/managers/reaction_manager.dart b/lib/src/api/common/managers/reaction_manager.dart index d72299c9..b6218755 100644 --- a/lib/src/api/common/managers/reaction_manager.dart +++ b/lib/src/api/common/managers/reaction_manager.dart @@ -10,12 +10,14 @@ final class ReactionManger { ReactionManger(this._messageId, this._channelId); - Future add(PartialEmoji emoji) => _datastore.reaction.add(_channelId, _messageId, emoji); + Future add(PartialEmoji emoji) => + _datastore.reaction.add(_channelId, _messageId, emoji); Future remove(PartialEmoji emoji) => _datastore.reaction.remove(_channelId, _messageId, emoji); - Future removeAll() => _datastore.reaction.removeAll(_channelId, _messageId); + Future removeAll() => + _datastore.reaction.removeAll(_channelId, _messageId); Future removeForEmoji(PartialEmoji emoji) => _datastore.reaction.removeForEmoji(_channelId, _messageId, emoji); From eefb4651f889468bef46602a5d57225c490004da Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 16:00:21 +0100 Subject: [PATCH 24/93] style: improve code formatting and readability in poll_answer.dart and poll_question.dart --- lib/src/api/common/polls/poll_answer.dart | 20 ++++++++++++-------- lib/src/api/common/polls/poll_question.dart | 5 ++++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/src/api/common/polls/poll_answer.dart b/lib/src/api/common/polls/poll_answer.dart index 98f45a77..716f9fe2 100644 --- a/lib/src/api/common/polls/poll_answer.dart +++ b/lib/src/api/common/polls/poll_answer.dart @@ -5,7 +5,10 @@ final class PollAnswer { String content; PartialEmoji? emoji; - PollAnswer({required this.content, this.emoji}); + PollAnswer({ + required this.content, + this.emoji, + }); Map toJson() { return { @@ -13,13 +16,14 @@ final class PollAnswer { 'type': 'text', 'text': content, ...?Helper.createOrNull( - field: emoji, - fn: () => { - 'emoji': { - 'id': emoji?.id, - 'name': emoji?.name, - }, - }) + field: emoji, + fn: () => { + 'emoji': { + 'id': emoji?.id, + 'name': emoji?.name, + }, + }, + ) } }; } diff --git a/lib/src/api/common/polls/poll_question.dart b/lib/src/api/common/polls/poll_question.dart index 1e8cdbd3..87712010 100644 --- a/lib/src/api/common/polls/poll_question.dart +++ b/lib/src/api/common/polls/poll_question.dart @@ -4,7 +4,10 @@ final class PollQuestion { String content; PartialEmoji? emoji; - PollQuestion({required this.content, this.emoji}); + PollQuestion({ + required this.content, + this.emoji, + }); Map toJson() { return { From a8fa328f983298120ddeefae6178698f62117aa1 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 16:00:29 +0100 Subject: [PATCH 25/93] style: improve code formatting and readability in activity.dart, channel.dart, channel_properties.dart, emoji.dart, and channel_type.dart --- lib/src/api/common/activity.dart | 34 +++++++++++++++++++------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/lib/src/api/common/activity.dart b/lib/src/api/common/activity.dart index b366d366..6c1fb1ad 100644 --- a/lib/src/api/common/activity.dart +++ b/lib/src/api/common/activity.dart @@ -23,19 +23,25 @@ final class Activity { factory Activity.fromJson(Map json) { return Activity( - name: json['name'], - type: ActivityType.values.firstWhere( - (element) => element.value == json['type'], - orElse: () => ActivityType.unknown), - url: json['url'], - createdAt: DateTime.fromMillisecondsSinceEpoch(json['created_at']), - details: json['details'], - state: json['state'], - emoji: Helper.createOrNull( - field: json['emoji'], - fn: () => ActivityEmoji( - name: json['name'], - id: json['id'], - animated: json['animated'] ?? false))); + name: json['name'], + type: ActivityType.values.firstWhere( + (element) => element.value == json['type'], + orElse: () => ActivityType.unknown, + ), + url: json['url'], + createdAt: DateTime.fromMillisecondsSinceEpoch( + json['created_at'], + ), + details: json['details'], + state: json['state'], + emoji: Helper.createOrNull( + field: json['emoji'], + fn: () => ActivityEmoji( + name: json['name'], + id: json['id'], + animated: json['animated'] ?? false, + ), + ), + ); } } From b7b88c02ffb57fd9df3ef6d17275fa7944995457 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 16:00:42 +0100 Subject: [PATCH 26/93] style: improve code formatting and readability in channel_properties.dart --- lib/src/api/common/channel_properties.dart | 105 +++++++++++---------- 1 file changed, 57 insertions(+), 48 deletions(-) diff --git a/lib/src/api/common/channel_properties.dart b/lib/src/api/common/channel_properties.dart index da9f7be1..7cbdb8d8 100644 --- a/lib/src/api/common/channel_properties.dart +++ b/lib/src/api/common/channel_properties.dart @@ -9,7 +9,8 @@ import 'package:mineral/src/domains/common/utils/helper.dart'; import 'package:mineral/src/domains/common/utils/utils.dart'; final class ChannelProperties { - ChannelPartContract get dataStoreChannel => ioc.resolve().channel; + ChannelPartContract get dataStoreChannel => + ioc.resolve().channel; final Snowflake id; final ChannelType type; @@ -78,57 +79,65 @@ final class ChannelProperties { }); static Future serializeCache( - MarshallerContract marshaller, Map element) async { + MarshallerContract marshaller, + Map element, + ) async { final permissionOverwrites = await Helper.createOrNullAsync( - field: element['permission_overwrites'], - fn: () async => Future.wait( - List.from(element['permission_overwrites']) - .map((json) async => - marshaller.serializers.channelPermissionOverwrite.serialize(json)) - .toList(), - )); + field: element['permission_overwrites'], + fn: () async => Future.wait( + List.from(element['permission_overwrites']) + .map((json) async => marshaller + .serializers.channelPermissionOverwrite + .serialize(json)) + .toList(), + ), + ); final recipients = await Helper.createOrNullAsync( - field: element['recipients'], - fn: () async => Future.wait( - List.from(element['recipients']).map((json) async { - final raw = await marshaller.serializers.user.normalize(json); - return marshaller.serializers.user.serialize(raw); - }).toList(), - )); + field: element['recipients'], + fn: () async => Future.wait( + List.from(element['recipients']).map((json) async { + final raw = await marshaller.serializers.user.normalize(json); + return marshaller.serializers.user.serialize(raw); + }).toList(), + ), + ); return ChannelProperties( - id: Snowflake.parse(element['id']), - type: findInEnum(ChannelType.values, element['type']), - name: element['name'], - description: element['description'], - serverId: Snowflake.nullable(element['server_id']), - categoryId: Snowflake.nullable(element['parent_id']), - position: element['position'], - nsfw: element['nsfw'] ?? false, - lastMessageId: Snowflake.nullable(element['last_message_id']), - bitrate: element['bitrate'], - userLimit: element['user_limit'], - rateLimitPerUser: element['rate_limit_per_user'], - recipients: recipients ?? [], - icon: element['icon'], - ownerId: element['owner_id'], - applicationId: element['application_id'], - lastPinTimestamp: element['last_pin_timestamp'], - rtcRegion: element['rtc_region'], - videoQualityMode: element['video_quality_mode'], - messageCount: element['message_count'], - memberCount: element['member_count'], - defaultAutoArchiveDuration: element['default_auto_archive_duration'], - permissions: permissionOverwrites, - flags: element['flags'], - totalMessageSent: element['total_message_sent'], - available: element['available'], - appliedTags: element['applied_tags'] ?? [], - defaultReactions: element['default_reactions'], - defaultSortOrder: element['default_sort_order'], - defaultForumLayout: element['default_forum_layout'], - threads: ThreadsManager( - Snowflake.nullable(element['server_id']), Snowflake.nullable(element['id']))); + id: Snowflake.parse(element['id']), + type: findInEnum(ChannelType.values, element['type']), + name: element['name'], + description: element['description'], + serverId: Snowflake.nullable(element['server_id']), + categoryId: Snowflake.nullable(element['parent_id']), + position: element['position'], + nsfw: element['nsfw'] ?? false, + lastMessageId: Snowflake.nullable(element['last_message_id']), + bitrate: element['bitrate'], + userLimit: element['user_limit'], + rateLimitPerUser: element['rate_limit_per_user'], + recipients: recipients ?? [], + icon: element['icon'], + ownerId: element['owner_id'], + applicationId: element['application_id'], + lastPinTimestamp: element['last_pin_timestamp'], + rtcRegion: element['rtc_region'], + videoQualityMode: element['video_quality_mode'], + messageCount: element['message_count'], + memberCount: element['member_count'], + defaultAutoArchiveDuration: element['default_auto_archive_duration'], + permissions: permissionOverwrites, + flags: element['flags'], + totalMessageSent: element['total_message_sent'], + available: element['available'], + appliedTags: element['applied_tags'] ?? [], + defaultReactions: element['default_reactions'], + defaultSortOrder: element['default_sort_order'], + defaultForumLayout: element['default_forum_layout'], + threads: ThreadsManager( + Snowflake.nullable(element['server_id']), + Snowflake.nullable(element['id']), + ), + ); } } From c8820b4848b144492401747a9756e8c73e64b7aa Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 16:00:46 +0100 Subject: [PATCH 27/93] style: improve code formatting and readability in channel.dart --- lib/src/api/common/channel.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/src/api/common/channel.dart b/lib/src/api/common/channel.dart index e8def34c..5ff82831 100644 --- a/lib/src/api/common/channel.dart +++ b/lib/src/api/common/channel.dart @@ -17,5 +17,8 @@ final class UnknownChannel extends Channel { final String name; - UnknownChannel({required this.id, required this.name}); + UnknownChannel({ + required this.id, + required this.name, + }); } From f709ec94fd85ecef9fa6c4ed2a7405956ead7b2f Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 16:00:54 +0100 Subject: [PATCH 28/93] style: improve code formatting and readability in emoji.dart --- lib/src/api/common/emoji.dart | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/src/api/common/emoji.dart b/lib/src/api/common/emoji.dart index 73e4f964..3d219f14 100644 --- a/lib/src/api/common/emoji.dart +++ b/lib/src/api/common/emoji.dart @@ -68,7 +68,9 @@ final class Emoji extends PartialEmoji { id: id!.value, serverId: serverId.value, reason: reason, - payload: {'roles': [...roles.keys.map((e) => e.value), role.value]}, + payload: { + 'roles': [...roles.keys.map((e) => e.value), role.value] + }, ); } @@ -81,7 +83,12 @@ final class Emoji extends PartialEmoji { id: id!.value, serverId: serverId.value, reason: reason, - payload: {'roles': roles.keys.map((e) => e.value).where((e) => e != role.value).toList()}, + payload: { + 'roles': roles.keys + .map((e) => e.value) + .where((e) => e != role.value) + .toList() + }, ); } @@ -89,8 +96,12 @@ final class Emoji extends PartialEmoji { /// ```dart /// await emoji.update(name: 'New Emoji Name'); /// ``` - Future update( - {String? name, Image? image, List roles = const [], String? reason}) async { + Future update({ + String? name, + Image? image, + List roles = const [], + String? reason, + }) async { await _datastore.emoji.update( id: id!.value, serverId: serverId.value, @@ -109,7 +120,11 @@ final class Emoji extends PartialEmoji { /// ``` Future delete({String? reason}) { return switch (id) { - Snowflake(:final value) => _datastore.emoji.delete(serverId.value, value, reason: reason), + Snowflake(:final value) => _datastore.emoji.delete( + serverId.value, + value, + reason: reason, + ), _ => throw Exception('Unknown emoji id: $id'), }; } From 9dedc09c0e3310892cc9356be75065eaa78d62b6 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Mon, 27 Oct 2025 16:00:58 +0100 Subject: [PATCH 29/93] style: improve code formatting and readability in channel_type.dart --- lib/src/api/common/types/channel_type.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/src/api/common/types/channel_type.dart b/lib/src/api/common/types/channel_type.dart index aed68b71..2a3cb693 100644 --- a/lib/src/api/common/types/channel_type.dart +++ b/lib/src/api/common/types/channel_type.dart @@ -35,5 +35,8 @@ enum ChannelType implements EnhancedEnum { guildMedia ]; - static List privateTypes = [dm, groupDm]; + static List privateTypes = [ + dm, + groupDm, + ]; } From 65d02df26c9fef876f2df7bf37418aec5a04d08c Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Wed, 29 Oct 2025 11:43:53 +0100 Subject: [PATCH 30/93] style: improve code formatting and readability in channel_methods.dart --- lib/src/api/common/channel_methods.dart | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/lib/src/api/common/channel_methods.dart b/lib/src/api/common/channel_methods.dart index 9bf74fc5..ec84e6af 100644 --- a/lib/src/api/common/channel_methods.dart +++ b/lib/src/api/common/channel_methods.dart @@ -8,7 +8,10 @@ final class ChannelMethods { final Snowflake id; - ChannelMethods(this._serverId, this.id); + ChannelMethods( + this._serverId, + this.id, + ); Future setName(String name, String? reason) async { final builder = ChannelBuilder(null)..setName(name); @@ -71,7 +74,9 @@ final class ChannelMethods { } Future setDefaultAutoArchiveDuration( - Duration value, String? reason) async { + Duration value, + String? reason, + ) async { final builder = ChannelBuilder(null)..setDefaultAutoArchiveDuration(value); await _datastore.channel.update( id.value, @@ -82,9 +87,12 @@ final class ChannelMethods { } Future setDefaultThreadRateLimitPerUser( - Duration value, String? reason) async { + Duration value, + String? reason, + ) async { final builder = ChannelBuilder(null) ..setDefaultThreadRateLimitPerUser(value); + await _datastore.channel.update( id.value, builder, @@ -133,8 +141,10 @@ final class ChannelMethods { ); } - Future send( - {required MessageBuilder builder, Snowflake? serverId}) async { + Future send({ + required MessageBuilder builder, + Snowflake? serverId, + }) async { return _datastore.message.send(serverId?.value, id.value, builder); } From e2082adee2ec8e9d15c807f5cfd47a7b87bde012 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Wed, 29 Oct 2025 11:49:08 +0100 Subject: [PATCH 31/93] style: improve code formatting and readability in message_reaction.dart --- lib/src/api/common/message_reaction.dart | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/src/api/common/message_reaction.dart b/lib/src/api/common/message_reaction.dart index 402a64ba..93984ec5 100644 --- a/lib/src/api/common/message_reaction.dart +++ b/lib/src/api/common/message_reaction.dart @@ -13,25 +13,17 @@ enum MessageReactionType { abstract class BaseMessageReaction { Snowflake get channelId; - Snowflake get userId; - Snowflake get messageId; - PartialEmoji get emoji; - bool get isBurst; - MessageReactionType get type; - Future resolveChannel(); - Future resolveMessage({bool force = false}); } abstract interface class ServerMessageReaction extends BaseMessageReaction { Snowflake? get serverId; - Future resolveMember(); } @@ -39,7 +31,8 @@ abstract interface class PrivateMessageReaction extends BaseMessageReaction { Future resolveUser(); } -final class MessageReaction implements ServerMessageReaction, PrivateMessageReaction { +final class MessageReaction + implements ServerMessageReaction, PrivateMessageReaction { DataStoreContract get _datastore => ioc.resolve(); @override @@ -88,7 +81,11 @@ final class MessageReaction implements ServerMessageReaction, PrivateMessageReac /// final member = await reaction.resolveMember(); /// ``` @override - Future resolveMember() => _datastore.member.get(serverId!.value, userId.value, true); + Future resolveMember() => _datastore.member.get( + serverId!.value, + userId.value, + true, + ); /// Get related [ServerVoiceChannel] /// ```dart @@ -106,7 +103,11 @@ final class MessageReaction implements ServerMessageReaction, PrivateMessageReac /// ``` @override Future resolveMessage({bool force = false}) async { - final message = await _datastore.message.get(channelId.value, messageId.value, force); + final message = await _datastore.message.get( + channelId.value, + messageId.value, + force, + ); return message!; } } From 462cd79b14611c5e5673b2b59321cc856d5df18a Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Wed, 29 Oct 2025 11:49:14 +0100 Subject: [PATCH 32/93] style: improve code formatting and readability in message.dart --- lib/src/api/common/message.dart | 48 ++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/lib/src/api/common/message.dart b/lib/src/api/common/message.dart index d0112f4d..d3d5e6b3 100644 --- a/lib/src/api/common/message.dart +++ b/lib/src/api/common/message.dart @@ -5,21 +5,13 @@ import 'package:mineral/src/api/common/managers/reaction_manager.dart'; abstract interface class BaseMessage { ReactionManger get reactions; - Snowflake get id; - String get content; - bool get authorIsBot; - List get embeds; - Snowflake get channelId; - Snowflake? get authorId; - DateTime get createdAt; - DateTime? get updatedAt; Future resolveChannel(); @@ -99,25 +91,36 @@ final class Message implements ServerMessage, PrivateMessage, BaseMessage { DateTime? get updatedAt => _properties.updatedAt; Message(this._properties) - : reactions = - ReactionManger(_properties.id.value, _properties.channelId.value); + : reactions = ReactionManger( + _properties.id.value, + _properties.channelId.value, + ); @override Future edit(MessageBuilder builder) async { - await _datastore.message - .update(id: id.value, channelId: channelId.value, builder: builder); + await _datastore.message.update( + id: id.value, + channelId: channelId.value, + builder: builder, + ); } @override Future resolveMember({bool force = false}) async { - final member = - await _datastore.member.get(serverId!.value, authorId!.value, force); + final member = await _datastore.member.get( + serverId!.value, + authorId!.value, + force, + ); return member!; } @override Future resolveUser({bool force = false}) async { - final user = await _datastore.user.get(authorId!.value, force); + final user = await _datastore.user.get( + authorId!.value, + force, + ); return user!; } @@ -128,8 +131,10 @@ final class Message implements ServerMessage, PrivateMessage, BaseMessage { } @override - Future resolveServer({bool force = false}) => - _datastore.server.get(serverId!.value, force); + Future resolveServer({bool force = false}) => _datastore.server.get( + serverId!.value, + force, + ); @override Future reply(MessageBuilder builder) async { @@ -188,7 +193,12 @@ final class Message implements ServerMessage, PrivateMessage, BaseMessage { /// final thread = await message.createThread(builder); /// ``` Future createThread( - ThreadChannelBuilder builder) => + ThreadChannelBuilder builder, + ) => _datastore.thread.createFromMessage( - serverId.value, channelId.value, id?.value, builder); + serverId.value, + channelId.value, + id?.value, + builder, + ); } From 7684cae2c70622bf98f235afb9b40847ce8c7510 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Wed, 29 Oct 2025 11:52:14 +0100 Subject: [PATCH 33/93] style: improve code formatting and readability in partial_emoji.dart --- lib/src/api/common/partial_emoji.dart | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/src/api/common/partial_emoji.dart b/lib/src/api/common/partial_emoji.dart index e6f07d31..15f8caab 100644 --- a/lib/src/api/common/partial_emoji.dart +++ b/lib/src/api/common/partial_emoji.dart @@ -6,7 +6,11 @@ class PartialEmoji { final String name; final bool animated; - const PartialEmoji(this.id, this.name, this.animated); + const PartialEmoji( + this.id, + this.name, + this.animated, + ); factory PartialEmoji.fromUnicode(String value) => PartialEmoji(null, value, false); @@ -15,8 +19,8 @@ class PartialEmoji { PartialEmoji(emoji.id, emoji.name, emoji.animated); Map toJson() => { - 'id': id?.value, - 'name': name, - 'animated': animated, - }; + 'id': id?.value, + 'name': name, + 'animated': animated, + }; } From db7798853283146acadcd4fbbd8ebf98e14f4fc9 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Wed, 29 Oct 2025 11:52:27 +0100 Subject: [PATCH 34/93] style: improve code formatting and readability in presence.dart --- lib/src/api/common/presence.dart | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/src/api/common/presence.dart b/lib/src/api/common/presence.dart index d53e2d24..fee54238 100644 --- a/lib/src/api/common/presence.dart +++ b/lib/src/api/common/presence.dart @@ -18,9 +18,13 @@ final class Presence { return Presence( since: json['since'] != null ? DateTime.parse(json['since']) : null, activities: List.from( - json['activities'].map((e) => Activity.fromJson(e))), - status: StatusType.values - .firstWhere((element) => element.value == json['status']), + json['activities'].map( + (e) => Activity.fromJson(e), + ), + ), + status: StatusType.values.firstWhere( + (element) => element.value == json['status'], + ), afk: json['afk'] ?? false, ); } From 8d12c98963e6d6bcb4514a95c3805d7e2a1e67f0 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 09:35:54 +0100 Subject: [PATCH 35/93] style: improve code formatting and readability in user.dart --- lib/src/api/private/user.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/src/api/private/user.dart b/lib/src/api/private/user.dart index aa7d861c..ecc42387 100644 --- a/lib/src/api/private/user.dart +++ b/lib/src/api/private/user.dart @@ -46,7 +46,8 @@ final class User implements UserClient { /// ```dart /// final member = await user.toMember('240561194958716928'); /// ``` - Future toMember(String serverId) => _datastore.member.get(serverId, id.value, false); + Future toMember(String serverId) => + _datastore.member.get(serverId, id.value, false); @override String toString() => '<@$id>'; From 7f965dc44fd5d62a77883374ba864322b84ef860 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 09:36:49 +0100 Subject: [PATCH 36/93] style: improve code formatting and readability in audit log action files --- .../api/server/audit_log/actions/channel.dart | 34 ++++---- .../api/server/audit_log/actions/emoji.dart | 32 +++---- .../api/server/audit_log/actions/member.dart | 84 ++++++++++++++----- .../api/server/audit_log/actions/message.dart | 14 +++- .../api/server/audit_log/actions/role.dart | 48 ++++++----- .../api/server/audit_log/actions/server.dart | 12 +-- .../server/audit_log/audit_log_action.dart | 8 +- 7 files changed, 140 insertions(+), 92 deletions(-) diff --git a/lib/src/api/server/audit_log/actions/channel.dart b/lib/src/api/server/audit_log/actions/channel.dart index 70ca6304..e8e7da86 100644 --- a/lib/src/api/server/audit_log/actions/channel.dart +++ b/lib/src/api/server/audit_log/actions/channel.dart @@ -4,33 +4,33 @@ import 'package:mineral/src/api/server/audit_log/audit_log.dart'; final class ChannelCreateAuditLogAction extends AuditLog { final Channel channel; - ChannelCreateAuditLogAction( - {required Snowflake serverId, - required Snowflake userId, - required this.channel}) - : super(AuditLogType.channelCreate, serverId, userId); + ChannelCreateAuditLogAction({ + required Snowflake serverId, + required Snowflake userId, + required this.channel, + }) : super(AuditLogType.channelCreate, serverId, userId); } final class ChannelUpdateAuditLogAction extends AuditLog { final Channel channel; final List changes; - ChannelUpdateAuditLogAction( - {required Snowflake serverId, - required Snowflake userId, - required this.channel, - required this.changes}) - : super(AuditLogType.channelCreate, serverId, userId); + ChannelUpdateAuditLogAction({ + required Snowflake serverId, + required Snowflake userId, + required this.channel, + required this.changes, + }) : super(AuditLogType.channelCreate, serverId, userId); } final class ChannelDeleteAuditLogAction extends AuditLog { final Snowflake channelId; final List changes; - ChannelDeleteAuditLogAction( - {required Snowflake serverId, - required Snowflake userId, - required this.channelId, - required this.changes}) - : super(AuditLogType.channelCreate, serverId, userId); + ChannelDeleteAuditLogAction({ + required Snowflake serverId, + required Snowflake userId, + required this.channelId, + required this.changes, + }) : super(AuditLogType.channelCreate, serverId, userId); } diff --git a/lib/src/api/server/audit_log/actions/emoji.dart b/lib/src/api/server/audit_log/actions/emoji.dart index d9c2330c..821bca86 100644 --- a/lib/src/api/server/audit_log/actions/emoji.dart +++ b/lib/src/api/server/audit_log/actions/emoji.dart @@ -4,31 +4,31 @@ import 'package:mineral/src/api/server/audit_log/audit_log.dart'; final class EmojiCreateAuditLog extends AuditLog { final String emojiName; - EmojiCreateAuditLog( - {required Snowflake serverId, - required Snowflake userId, - required this.emojiName}) - : super(AuditLogType.emojiCreate, serverId, userId); + EmojiCreateAuditLog({ + required Snowflake serverId, + required Snowflake userId, + required this.emojiName, + }) : super(AuditLogType.emojiCreate, serverId, userId); } final class EmojiUpdateAuditLog extends AuditLog { final String beforeEmojiName; final String afterEmojiName; - EmojiUpdateAuditLog( - {required Snowflake serverId, - required Snowflake userId, - required this.beforeEmojiName, - required this.afterEmojiName}) - : super(AuditLogType.emojiUpdate, serverId, userId); + EmojiUpdateAuditLog({ + required Snowflake serverId, + required Snowflake userId, + required this.beforeEmojiName, + required this.afterEmojiName, + }) : super(AuditLogType.emojiUpdate, serverId, userId); } final class EmojiDeleteAuditLog extends AuditLog { final String emojiName; - EmojiDeleteAuditLog( - {required Snowflake serverId, - required Snowflake userId, - required this.emojiName}) - : super(AuditLogType.emojiDelete, serverId, userId); + EmojiDeleteAuditLog({ + required Snowflake serverId, + required Snowflake userId, + required this.emojiName, + }) : super(AuditLogType.emojiDelete, serverId, userId); } diff --git a/lib/src/api/server/audit_log/actions/member.dart b/lib/src/api/server/audit_log/actions/member.dart index 69f464c7..0a695a48 100644 --- a/lib/src/api/server/audit_log/actions/member.dart +++ b/lib/src/api/server/audit_log/actions/member.dart @@ -17,9 +17,14 @@ final class MemberKickAuditLog extends AuditLog { }) : super(AuditLogType.memberKick, serverId, userId); Future resolveMember({bool force = false}) async { - if (memberId == null) return null; - final member = - await _datastore.member.get(serverId.value, memberId!.value, force); + if (memberId == null) { + return null; + } + final member = await _datastore.member.get( + serverId.value, + memberId!.value, + force, + ); return member; } } @@ -53,8 +58,11 @@ final class MemberBanAddAuditLog extends AuditLog { if (memberId == null) { return null; } - final member = - await _datastore.member.get(serverId.value, memberId!.value, force); + final member = await _datastore.member.get( + serverId.value, + memberId!.value, + force, + ); return member; } } @@ -71,9 +79,14 @@ final class MemberBanRemoveAuditLog extends AuditLog { }) : super(AuditLogType.memberBanRemove, serverId, userId); Future resolveMember({bool force = false}) async { - if (memberId == null) return null; - final member = - await _datastore.member.get(serverId.value, memberId!.value, force); + if (memberId == null) { + return null; + } + final member = await _datastore.member.get( + serverId.value, + memberId!.value, + force, + ); return member; } } @@ -92,9 +105,14 @@ final class MemberUpdateAuditLog extends AuditLog { }) : super(AuditLogType.memberUpdate, serverId, userId); Future resolveMember({bool force = false}) async { - if (memberId == null) return null; - final member = - await _datastore.member.get(serverId.value, memberId!.value, force); + if (memberId == null) { + return null; + } + final member = await _datastore.member.get( + serverId.value, + memberId!.value, + force, + ); return member; } } @@ -113,9 +131,14 @@ final class MemberRoleUpdateAuditLog extends AuditLog { }) : super(AuditLogType.memberRoleUpdate, serverId, userId); Future resolveMember({bool force = false}) async { - if (memberId == null) return null; - final member = - await _datastore.member.get(serverId.value, memberId!.value, force); + if (memberId == null) { + return null; + } + final member = await _datastore.member.get( + serverId.value, + memberId!.value, + force, + ); return member; } } @@ -134,9 +157,14 @@ final class MemberMoveAuditLog extends AuditLog { }) : super(AuditLogType.memberMove, serverId, userId); Future resolveMember({bool force = false}) async { - if (memberId == null) return null; - final member = - await _datastore.member.get(serverId.value, memberId!.value, force); + if (memberId == null) { + return null; + } + final member = await _datastore.member.get( + serverId.value, + memberId!.value, + force, + ); return member; } @@ -162,9 +190,14 @@ final class MemberDisconnectAuditLog extends AuditLog { }) : super(AuditLogType.memberDisconnect, serverId, userId); Future resolveMember({bool force = false}) async { - if (memberId == null) return null; - final member = - await _datastore.member.get(serverId.value, memberId!.value, force); + if (memberId == null) { + return null; + } + final member = await _datastore.member.get( + serverId.value, + memberId!.value, + force, + ); return member; } } @@ -181,9 +214,14 @@ final class BotAddAuditLog extends AuditLog { }) : super(AuditLogType.botAdd, serverId, userId); Future resolveBot({bool force = false}) async { - if (botId == null) return null; - final member = - await _datastore.member.get(serverId.value, botId!.value, force); + if (botId == null) { + return null; + } + final member = await _datastore.member.get( + serverId.value, + botId!.value, + force, + ); return member; } } diff --git a/lib/src/api/server/audit_log/actions/message.dart b/lib/src/api/server/audit_log/actions/message.dart index ff691e70..53279be9 100644 --- a/lib/src/api/server/audit_log/actions/message.dart +++ b/lib/src/api/server/audit_log/actions/message.dart @@ -41,8 +41,11 @@ final class MessagePinAuditLog extends AuditLog { }) : super(AuditLogType.messagePin, serverId, userId); Future resolveMessage({bool force = false}) async { - final message = await _datastore.message - .get(serverId.value, messageId.value, force); + final message = await _datastore.message.get( + serverId.value, + messageId.value, + force, + ); return message!; } } @@ -61,8 +64,11 @@ final class MessageUnpinAuditLog extends AuditLog { }) : super(AuditLogType.messageUnpin, serverId, userId); Future resolveMessage({bool force = false}) async { - final message = await _datastore.message - .get(serverId.value, messageId.value, force); + final message = await _datastore.message.get( + serverId.value, + messageId.value, + force, + ); return message!; } } diff --git a/lib/src/api/server/audit_log/actions/role.dart b/lib/src/api/server/audit_log/actions/role.dart index b00b630e..2c86d2a3 100644 --- a/lib/src/api/server/audit_log/actions/role.dart +++ b/lib/src/api/server/audit_log/actions/role.dart @@ -15,7 +15,8 @@ final class RoleCreateAuditLog extends AuditLog { changes.firstWhere((element) => element.key == 'name').after; Permissions get roleOermissions => Permissions.fromInt( - changes.firstWhere((element) => element.key == 'permissions').after); + changes.firstWhere((element) => element.key == 'permissions').after, + ); Color get roleColor => Color.of(changes.firstWhere((element) => element.key == 'color').after); @@ -26,12 +27,12 @@ final class RoleCreateAuditLog extends AuditLog { bool get roleIsMentionable => changes.firstWhere((element) => element.key == 'mentionable').after; - RoleCreateAuditLog( - {required Snowflake serverId, - required Snowflake userId, - required this.roleId, - required this.changes}) - : super(AuditLogType.roleCreate, serverId, userId); + RoleCreateAuditLog({ + required Snowflake serverId, + required Snowflake userId, + required this.roleId, + required this.changes, + }) : super(AuditLogType.roleCreate, serverId, userId); Future resolveRole({bool force = false}) async { final role = await _datastore.role.get(serverId.value, roleId.value, force); @@ -48,8 +49,9 @@ final class RoleUpdateAuditLog extends AuditLog { Change get roleName => changes.firstWhere((element) => element.key == 'name'); Change, List>? get rolePermissions { - final permissions = - changes.firstWhereOrNull((element) => element.key == 'permissions'); + final permissions = changes.firstWhereOrNull( + (element) => element.key == 'permissions', + ); return switch (permissions) { final Change change => Change( change.key, @@ -70,7 +72,9 @@ final class RoleUpdateAuditLog extends AuditLog { _resolveParameterOrNull('mentionable', bool.parse); Change? _resolveParameterOrNull( - String key, T Function(S) transformer) { + String key, + T Function(S) transformer, + ) { final parameter = changes.firstWhereOrNull((element) => element.key == key); return switch (parameter) { final Change change => Change( @@ -87,22 +91,22 @@ final class RoleUpdateAuditLog extends AuditLog { return role!; } - RoleUpdateAuditLog( - {required Snowflake serverId, - required Snowflake userId, - required this.roleId, - required this.changes}) - : super(AuditLogType.roleCreate, serverId, userId); + RoleUpdateAuditLog({ + required Snowflake serverId, + required Snowflake userId, + required this.roleId, + required this.changes, + }) : super(AuditLogType.roleCreate, serverId, userId); } final class RoleDeleteAuditLog extends AuditLog { final Snowflake roleId; final String roleName; - RoleDeleteAuditLog( - {required Snowflake serverId, - required Snowflake userId, - required this.roleId, - required this.roleName}) - : super(AuditLogType.emojiDelete, serverId, userId); + RoleDeleteAuditLog({ + required Snowflake serverId, + required Snowflake userId, + required this.roleId, + required this.roleName, + }) : super(AuditLogType.emojiDelete, serverId, userId); } diff --git a/lib/src/api/server/audit_log/actions/server.dart b/lib/src/api/server/audit_log/actions/server.dart index 8c990752..ad5c297a 100644 --- a/lib/src/api/server/audit_log/actions/server.dart +++ b/lib/src/api/server/audit_log/actions/server.dart @@ -5,10 +5,10 @@ final class ServerUpdateAuditLogAction extends AuditLog { final Server server; final List changes; - ServerUpdateAuditLogAction( - {required Snowflake serverId, - required Snowflake userId, - required this.server, - required this.changes}) - : super(AuditLogType.guildUpdate, serverId, userId); + ServerUpdateAuditLogAction({ + required Snowflake serverId, + required Snowflake userId, + required this.server, + required this.changes, + }) : super(AuditLogType.guildUpdate, serverId, userId); } diff --git a/lib/src/api/server/audit_log/audit_log_action.dart b/lib/src/api/server/audit_log/audit_log_action.dart index 39e39b37..b1296b63 100644 --- a/lib/src/api/server/audit_log/audit_log_action.dart +++ b/lib/src/api/server/audit_log/audit_log_action.dart @@ -5,7 +5,6 @@ import 'package:mineral/src/api/server/audit_log/audit_log.dart'; abstract interface class AuditLogChange { B get before; - A get after; } @@ -22,7 +21,8 @@ abstract class AuditLogActionContract { } final class UnknownAuditLogAction extends AuditLog { - UnknownAuditLogAction( - {required Snowflake serverId, required Snowflake? userId}) - : super(AuditLogType.unknown, serverId, userId); + UnknownAuditLogAction({ + required Snowflake serverId, + required Snowflake? userId, + }) : super(AuditLogType.unknown, serverId, userId); } From 48a0bc3627e7839581f5d03c5b6dc3258dabe776 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 09:37:34 +0100 Subject: [PATCH 37/93] style: improve code formatting and readability in channel files --- .../channels/private_thread_channel.dart | 18 ++++++++++++------ .../server/channels/public_thread_channel.dart | 12 ++++++++---- .../api/server/channels/server_channel.dart | 10 ++++++++-- .../server/channels/server_forum_channel.dart | 7 +++++-- .../server/channels/server_stage_channel.dart | 12 ++++++++---- .../server/channels/server_text_channel.dart | 12 ++++++++---- 6 files changed, 49 insertions(+), 22 deletions(-) diff --git a/lib/src/api/server/channels/private_thread_channel.dart b/lib/src/api/server/channels/private_thread_channel.dart index 7131adc4..034af939 100644 --- a/lib/src/api/server/channels/private_thread_channel.dart +++ b/lib/src/api/server/channels/private_thread_channel.dart @@ -113,8 +113,10 @@ class PrivateThreadChannel extends ServerChannel implements ThreadChannel { /// ```dart /// await channel.setDefaultAutoArchiveDuration(60); /// ``` - Future setDefaultAutoArchiveDuration(Duration value, - {String? reason}) => + Future setDefaultAutoArchiveDuration( + Duration value, { + String? reason, + }) => _methods.setDefaultAutoArchiveDuration(value, reason); /// Sets the default thread rate limit per user for the channel. @@ -122,8 +124,10 @@ class PrivateThreadChannel extends ServerChannel implements ThreadChannel { /// ```dart /// await channel.setDefaultThreadRateLimitPerUser(10); /// ``` - Future setDefaultThreadRateLimitPerUser(Duration value, - {String? reason}) => + Future setDefaultThreadRateLimitPerUser( + Duration value, { + String? reason, + }) => _methods.setDefaultThreadRateLimitPerUser(value, reason); /// Sends a message to the channel. @@ -131,8 +135,10 @@ class PrivateThreadChannel extends ServerChannel implements ThreadChannel { /// ```dart /// await channel.send(content: 'Hello, world!'); /// ``` - Future send(MessageBuilder builder) => - _methods.send(serverId: serverId, builder: builder); + Future send(MessageBuilder builder) => _methods.send( + serverId: serverId, + builder: builder, + ); /// Deletes the channel. /// diff --git a/lib/src/api/server/channels/public_thread_channel.dart b/lib/src/api/server/channels/public_thread_channel.dart index 0157e869..078437d3 100644 --- a/lib/src/api/server/channels/public_thread_channel.dart +++ b/lib/src/api/server/channels/public_thread_channel.dart @@ -113,8 +113,10 @@ class PublicThreadChannel extends ServerChannel implements ThreadChannel { /// ```dart /// await channel.setDefaultAutoArchiveDuration(60); /// ``` - Future setDefaultAutoArchiveDuration(Duration value, - {String? reason}) => + Future setDefaultAutoArchiveDuration( + Duration value, { + String? reason, + }) => _methods.setDefaultAutoArchiveDuration(value, reason); /// Sets the default thread rate limit per user for the channel. @@ -122,8 +124,10 @@ class PublicThreadChannel extends ServerChannel implements ThreadChannel { /// ```dart /// await channel.setDefaultThreadRateLimitPerUser(10); /// ``` - Future setDefaultThreadRateLimitPerUser(Duration value, - {String? reason}) => + Future setDefaultThreadRateLimitPerUser( + Duration value, { + String? reason, + }) => _methods.setDefaultThreadRateLimitPerUser(value, reason); /// Resolves the [User] object of the owner of the channel. diff --git a/lib/src/api/server/channels/server_channel.dart b/lib/src/api/server/channels/server_channel.dart index e446ebf6..07a72833 100644 --- a/lib/src/api/server/channels/server_channel.dart +++ b/lib/src/api/server/channels/server_channel.dart @@ -17,7 +17,8 @@ abstract class ServerChannel implements Channel { /// ```dart /// final server = await channel.resolveServer(force: true); /// ``` - Future resolveServer({bool force = true}) => _dataStore.server.get(serverId.value, force); + Future resolveServer({bool force = true}) => + _dataStore.server.get(serverId.value, force); /// Updates the channel. /// ```dart @@ -28,7 +29,12 @@ abstract class ServerChannel implements Channel { /// await channel.update(builder); /// ``` Future update(ChannelBuilderContract builder, {String? reason}) => - _dataStore.channel.update(id.value, builder, serverId: serverId.value, reason: reason); + _dataStore.channel.update( + id.value, + builder, + serverId: serverId.value, + reason: reason, + ); @override T cast() => this as T; diff --git a/lib/src/api/server/channels/server_forum_channel.dart b/lib/src/api/server/channels/server_forum_channel.dart index 4e792cf6..ffa35923 100644 --- a/lib/src/api/server/channels/server_forum_channel.dart +++ b/lib/src/api/server/channels/server_forum_channel.dart @@ -42,6 +42,9 @@ final class ServerForumChannel extends ServerChannel { @override Snowflake get serverId => _properties.serverId!; - ServerForumChannel(this._properties, - {required this.sortOrder, required this.layoutType}); + ServerForumChannel( + this._properties, { + required this.sortOrder, + required this.layoutType, + }); } diff --git a/lib/src/api/server/channels/server_stage_channel.dart b/lib/src/api/server/channels/server_stage_channel.dart index 1096db6e..62d3a1f1 100644 --- a/lib/src/api/server/channels/server_stage_channel.dart +++ b/lib/src/api/server/channels/server_stage_channel.dart @@ -93,8 +93,10 @@ final class ServerStageChannel extends ServerChannel { /// ```dart /// await channel.setDefaultAutoArchiveDuration(60); /// ``` - Future setDefaultAutoArchiveDuration(Duration value, - {String? reason}) => + Future setDefaultAutoArchiveDuration( + Duration value, { + String? reason, + }) => _methods.setDefaultAutoArchiveDuration(value, reason); /// Sets the default thread rate limit per user for the channel. @@ -102,8 +104,10 @@ final class ServerStageChannel extends ServerChannel { /// ```dart /// await channel.setDefaultThreadRateLimitPerUser(10); /// ``` - Future setDefaultThreadRateLimitPerUser(Duration value, - {String? reason}) => + Future setDefaultThreadRateLimitPerUser( + Duration value, { + String? reason, + }) => _methods.setDefaultThreadRateLimitPerUser(value, reason); /// Deletes the channel. diff --git a/lib/src/api/server/channels/server_text_channel.dart b/lib/src/api/server/channels/server_text_channel.dart index d0b7afe2..1bb65f43 100644 --- a/lib/src/api/server/channels/server_text_channel.dart +++ b/lib/src/api/server/channels/server_text_channel.dart @@ -92,8 +92,10 @@ final class ServerTextChannel extends ServerChannel { /// ```dart /// await channel.setDefaultAutoArchiveDuration(60); /// ``` - Future setDefaultAutoArchiveDuration(Duration value, - {String? reason}) => + Future setDefaultAutoArchiveDuration( + Duration value, { + String? reason, + }) => _methods.setDefaultAutoArchiveDuration(value, reason); /// Sets the default thread rate limit per user for the channel. @@ -101,8 +103,10 @@ final class ServerTextChannel extends ServerChannel { /// ```dart /// await channel.setDefaultThreadRateLimitPerUser(10); /// ``` - Future setDefaultThreadRateLimitPerUser(Duration value, - {String? reason}) => + Future setDefaultThreadRateLimitPerUser( + Duration value, { + String? reason, + }) => _methods.setDefaultThreadRateLimitPerUser(value, reason); /// Sends a message with components to the channel. From e4e32e4c88abdb44b52f2562bbee4bf45d5353b7 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 09:44:13 +0100 Subject: [PATCH 38/93] style: improve code formatting and readability across various manager files --- .../api/server/managers/channel_manager.dart | 62 +++++++++---- .../api/server/managers/emoji_manager.dart | 19 ++-- .../api/server/managers/member_manager.dart | 20 ++-- .../server/managers/member_role_manager.dart | 36 ++++++-- .../server/managers/member_voice_manager.dart | 91 ++++++++++--------- lib/src/api/server/managers/role_manager.dart | 25 +++-- .../api/server/managers/rules_manager.dart | 27 +++--- .../api/server/managers/sticker_manager.dart | 3 +- .../api/server/managers/threads_manager.dart | 20 +++- 9 files changed, 190 insertions(+), 113 deletions(-) diff --git a/lib/src/api/server/managers/channel_manager.dart b/lib/src/api/server/managers/channel_manager.dart index f544566f..f323e286 100644 --- a/lib/src/api/server/managers/channel_manager.dart +++ b/lib/src/api/server/managers/channel_manager.dart @@ -39,8 +39,10 @@ final class ChannelManager { /// ```dart /// final channel = await server.channels.create(builder, reason: 'Testing'); /// ``` - Future create(ChannelBuilderContract builder, - {String? reason}) => + Future create( + ChannelBuilderContract builder, { + String? reason, + }) => _datastore.channel.create(_serverId.value, builder, reason: reason); /// Resolve the server's afk channel. @@ -83,8 +85,9 @@ final class ChannelManager { /// ```dart /// final publicUpdatesChannel = await server.channels.resolvePublicUpdatesChannel(); /// ``` - Future resolvePublicUpdatesChannel( - {bool force = false}) async { + Future resolvePublicUpdatesChannel({ + bool force = false, + }) async { return switch (publicUpdatesChannelId) { Snowflake(:final value) => _datastore.channel.get(value, force), @@ -96,8 +99,9 @@ final class ChannelManager { /// ```dart /// final safetyAlertsChannel = await server.channels.resolveSafetyAlertsChannel(); /// ``` - Future resolveSafetyAlertsChannel( - {bool force = false}) async { + Future resolveSafetyAlertsChannel({ + bool force = false, + }) async { return switch (safetyAlertsChannelId) { Snowflake(:final value) => _datastore.channel.get(value, force), @@ -111,8 +115,11 @@ final class ChannelManager { /// await server.setAfkChannel('1091121140090535956', reason: 'Testing'); /// ``` Future setAfkChannel(String? channelId, {String? reason}) async { - await _datastore.server - .update(_serverId.value, {'afk_channel_id': channelId}, reason); + await _datastore.server.update( + _serverId.value, + {'afk_channel_id': channelId}, + reason, + ); } /// Set the server's system channel. @@ -121,8 +128,11 @@ final class ChannelManager { /// await server.setSystemChannel('1091121140090535956', reason: 'Testing'); /// ``` Future setSystemChannel(String? channelId, {String? reason}) async { - await _datastore.server - .update(_serverId.value, {'system_channel_id': channelId}, reason); + await _datastore.server.update( + _serverId.value, + {'system_channel_id': channelId}, + reason, + ); } /// Set the server's rules channel. @@ -131,8 +141,11 @@ final class ChannelManager { /// await server.setRulesChannel('1091121140090535956', reason: 'Testing'); /// ``` Future setRulesChannel(String? channelId, {String? reason}) async { - await _datastore.server - .update(_serverId.value, {'rules_channel_id': channelId}, reason); + await _datastore.server.update( + _serverId.value, + {'rules_channel_id': channelId}, + reason, + ); } /// Set the server's public updates channel. @@ -140,10 +153,15 @@ final class ChannelManager { /// ```dart /// await server.setPublicUpdatesChannel('1091121140090535956', reason: 'Testing'); /// ``` - Future setPublicUpdatesChannel(String? channelId, - {String? reason}) async { + Future setPublicUpdatesChannel( + String? channelId, { + String? reason, + }) async { await _datastore.server.update( - _serverId.value, {'public_updates_channel_id': channelId}, reason); + _serverId.value, + {'public_updates_channel_id': channelId}, + reason, + ); } factory ChannelManager.empty(String serverId) { @@ -158,16 +176,20 @@ final class ChannelManager { } factory ChannelManager.fromMap( - Object serverId, Map payload) { + Object serverId, + Map payload, + ) { return ChannelManager( Snowflake.parse(serverId), afkChannelId: Snowflake.nullable(payload['afk_channel_id']), systemChannelId: Snowflake.nullable(payload['system_channel_id']), rulesChannelId: Snowflake.nullable(payload['rules_channel_id']), - publicUpdatesChannelId: - Snowflake.nullable(payload['public_updates_channel_id']), - safetyAlertsChannelId: - Snowflake.nullable(payload['safety_alerts_channel_id']), + publicUpdatesChannelId: Snowflake.nullable( + payload['public_updates_channel_id'], + ), + safetyAlertsChannelId: Snowflake.nullable( + payload['safety_alerts_channel_id'], + ), ); } } diff --git a/lib/src/api/server/managers/emoji_manager.dart b/lib/src/api/server/managers/emoji_manager.dart index 8fa8a09b..fafaa851 100644 --- a/lib/src/api/server/managers/emoji_manager.dart +++ b/lib/src/api/server/managers/emoji_manager.dart @@ -27,12 +27,17 @@ final class EmojiManager { /// ```dart /// final emoji = await server.emojis.create(name: 'New Emoji', ); /// ``` - Future create( - {required String name, - required Image image, - List roles = const [], - String? reason}) => + Future create({ + required String name, + required Image image, + List roles = const [], + String? reason, + }) => _datastore.emoji.create( - _serverId.value, name, image, roles.map((element) => element.value).toList(), - reason: reason); + _serverId.value, + name, + image, + roles.map((element) => element.value).toList(), + reason: reason, + ); } diff --git a/lib/src/api/server/managers/member_manager.dart b/lib/src/api/server/managers/member_manager.dart index 149790ad..eedbf641 100644 --- a/lib/src/api/server/managers/member_manager.dart +++ b/lib/src/api/server/managers/member_manager.dart @@ -34,16 +34,20 @@ final class MemberRecord { MemberRecord(this.members); Map get humans { - return members.entries.where((element) => !element.value.isBot).fold({}, - (value, element) { - return {...value, element.key: element.value}; - }); + return members.entries.where((element) => !element.value.isBot).fold( + {}, + (value, element) { + return {...value, element.key: element.value}; + }, + ); } Map get bots { - return members.entries.where((element) => element.value.isBot).fold({}, - (value, element) { - return {...value, element.key: element.value}; - }); + return members.entries.where((element) => element.value.isBot).fold( + {}, + (value, element) { + return {...value, element.key: element.value}; + }, + ); } } diff --git a/lib/src/api/server/managers/member_role_manager.dart b/lib/src/api/server/managers/member_role_manager.dart index 589793a6..2444d6ed 100644 --- a/lib/src/api/server/managers/member_role_manager.dart +++ b/lib/src/api/server/managers/member_role_manager.dart @@ -13,28 +13,46 @@ final class MemberRoleManager { Future> fetch({bool force = false}) async { final roles = await _datastore.role.fetch(_serverId.value, force); - return Map.fromEntries(roles.entries - .where((element) => currentIds.contains(element.key)) - .map((e) => MapEntry(e.key, e.value))); + return Map.fromEntries( + roles.entries + .where((element) => currentIds.contains(element.key)) + .map((e) => MapEntry(e.key, e.value)), + ); } Future add(String roleId, {String? reason}) async { - return _datastore.role - .add(memberId: _memberId.value, serverId: _serverId.value, roleId: roleId, reason: reason); + return _datastore.role.add( + memberId: _memberId.value, + serverId: _serverId.value, + roleId: roleId, + reason: reason, + ); } Future remove(String roleId, {String? reason}) async { return _datastore.role.remove( - memberId: _memberId.value, serverId: _serverId.value, roleId: roleId, reason: reason); + memberId: _memberId.value, + serverId: _serverId.value, + roleId: roleId, + reason: reason, + ); } Future sync(List roleIds, {String? reason}) async { return _datastore.role.sync( - memberId: _memberId.value, serverId: _serverId.value, roleIds: roleIds, reason: reason); + memberId: _memberId.value, + serverId: _serverId.value, + roleIds: roleIds, + reason: reason, + ); } Future clear({String? reason}) async { - return _datastore.role - .sync(memberId: _memberId.value, serverId: _serverId.value, roleIds: [], reason: reason); + return _datastore.role.sync( + memberId: _memberId.value, + serverId: _serverId.value, + roleIds: [], + reason: reason, + ); } } diff --git a/lib/src/api/server/managers/member_voice_manager.dart b/lib/src/api/server/managers/member_voice_manager.dart index 2e1a6cd5..718646a3 100644 --- a/lib/src/api/server/managers/member_voice_manager.dart +++ b/lib/src/api/server/managers/member_voice_manager.dart @@ -1,7 +1,6 @@ import 'package:mineral/api.dart'; import 'package:mineral/container.dart'; import 'package:mineral/contracts.dart'; -import 'package:mineral/src/api/server/voice_state.dart'; final class MemberVoiceManager { DataStoreContract get _datastore => ioc.resolve(); @@ -50,10 +49,11 @@ final class MemberVoiceManager { } await _datastore.member.update( - serverId: _serverId.value, - memberId: _memberId.value, - reason: reason, - payload: {'mute': true}); + serverId: _serverId.value, + memberId: _memberId.value, + reason: reason, + payload: {'mute': true}, + ); } /// Unmute the [Member]. @@ -68,10 +68,11 @@ final class MemberVoiceManager { } await _datastore.member.update( - serverId: _serverId.value, - memberId: _memberId.value, - reason: reason, - payload: {'mute': false}); + serverId: _serverId.value, + memberId: _memberId.value, + reason: reason, + payload: {'mute': false}, + ); } /// Toggle the [Member] mute status. @@ -86,10 +87,11 @@ final class MemberVoiceManager { } await _datastore.member.update( - serverId: _serverId.value, - memberId: _memberId.value, - reason: reason, - payload: {'mute': !(isMuted ?? false)}); + serverId: _serverId.value, + memberId: _memberId.value, + reason: reason, + payload: {'mute': !(isMuted ?? false)}, + ); } /// Deafen the [Member]. @@ -104,10 +106,11 @@ final class MemberVoiceManager { } await _datastore.member.update( - serverId: _serverId.value, - memberId: _memberId.value, - reason: reason, - payload: {'deaf': true}); + serverId: _serverId.value, + memberId: _memberId.value, + reason: reason, + payload: {'deaf': true}, + ); } /// Set the [Member] mute status. @@ -122,10 +125,11 @@ final class MemberVoiceManager { } await _datastore.member.update( - serverId: _serverId.value, - memberId: _memberId.value, - reason: reason, - payload: {'mute': value}); + serverId: _serverId.value, + memberId: _memberId.value, + reason: reason, + payload: {'mute': value}, + ); } /// Un-deafen the [Member]. @@ -140,10 +144,11 @@ final class MemberVoiceManager { } await _datastore.member.update( - serverId: _serverId.value, - memberId: _memberId.value, - reason: reason, - payload: {'deaf': false}); + serverId: _serverId.value, + memberId: _memberId.value, + reason: reason, + payload: {'deaf': false}, + ); } /// Toggle the [Member] deafen status. @@ -158,10 +163,11 @@ final class MemberVoiceManager { } await _datastore.member.update( - serverId: _serverId.value, - memberId: _memberId.value, - reason: reason, - payload: {'deaf': !(isDeafened ?? false)}); + serverId: _serverId.value, + memberId: _memberId.value, + reason: reason, + payload: {'deaf': !(isDeafened ?? false)}, + ); } /// Set the [Member] deafen status. @@ -176,10 +182,11 @@ final class MemberVoiceManager { } await _datastore.member.update( - serverId: _serverId.value, - memberId: _memberId.value, - reason: reason, - payload: {'deaf': value}); + serverId: _serverId.value, + memberId: _memberId.value, + reason: reason, + payload: {'deaf': value}, + ); } /// Update the current [VoiceState] with multiple properties. @@ -222,10 +229,11 @@ final class MemberVoiceManager { } await _datastore.member.update( - serverId: _serverId.value, - memberId: _memberId.value, - reason: reason, - payload: {'channel_id': channelId}); + serverId: _serverId.value, + memberId: _memberId.value, + reason: reason, + payload: {'channel_id': channelId}, + ); } /// Disconnect the [Member] from the voice channel. @@ -240,9 +248,10 @@ final class MemberVoiceManager { } await _datastore.member.update( - serverId: _serverId.value, - memberId: _memberId.value, - reason: reason, - payload: {'channel_id': null}); + serverId: _serverId.value, + memberId: _memberId.value, + reason: reason, + payload: {'channel_id': null}, + ); } } diff --git a/lib/src/api/server/managers/role_manager.dart b/lib/src/api/server/managers/role_manager.dart index 33fdebfe..81128658 100644 --- a/lib/src/api/server/managers/role_manager.dart +++ b/lib/src/api/server/managers/role_manager.dart @@ -27,12 +27,21 @@ final class RoleManager { /// ```dart /// final role = await server.roles.create('New Role'); /// ``` - Future create( - {required String name, - required List permissions, - required Color color, - bool hoist = false, - bool mentionable = false, - String? reason}) => - _datastore.role.create(_serverId.value, name, permissions, color, hoist, mentionable, reason); + Future create({ + required String name, + required List permissions, + required Color color, + bool hoist = false, + bool mentionable = false, + String? reason, + }) => + _datastore.role.create( + _serverId.value, + name, + permissions, + color, + hoist, + mentionable, + reason, + ); } diff --git a/lib/src/api/server/managers/rules_manager.dart b/lib/src/api/server/managers/rules_manager.dart index 21ca61c8..978704c5 100644 --- a/lib/src/api/server/managers/rules_manager.dart +++ b/lib/src/api/server/managers/rules_manager.dart @@ -1,8 +1,6 @@ import 'package:mineral/api.dart'; import 'package:mineral/container.dart'; import 'package:mineral/contracts.dart'; -import 'package:mineral/src/api/server/moderation/action.dart'; -import 'package:mineral/src/api/server/moderation/auto_moderation_rule.dart'; import 'package:mineral/src/api/server/moderation/enums/auto_moderation_event_type.dart'; import 'package:mineral/src/api/server/moderation/enums/trigger_type.dart'; import 'package:mineral/src/api/server/moderation/trigger_metadata.dart'; @@ -32,18 +30,19 @@ final class RulesManager { /// ```dart /// final emoji = await server.emojis.create(name: 'New Emoji', ); /// ``` - Future create( - {required Object serverId, - required String name, - required AutoModerationEventType eventType, - required TriggerType triggerType, - required List actions, - TriggerMetadata? triggerMetadata, - List exemptRoles = const [], - List exemptChannels = const [], - bool enabled = true, - String? reason, - }) => _datastore.rules.create( + Future create({ + required Object serverId, + required String name, + required AutoModerationEventType eventType, + required TriggerType triggerType, + required List actions, + TriggerMetadata? triggerMetadata, + List exemptRoles = const [], + List exemptChannels = const [], + bool enabled = true, + String? reason, + }) => + _datastore.rules.create( serverId: serverId, name: name, eventType: eventType, diff --git a/lib/src/api/server/managers/sticker_manager.dart b/lib/src/api/server/managers/sticker_manager.dart index 91c4d224..315d5a7c 100644 --- a/lib/src/api/server/managers/sticker_manager.dart +++ b/lib/src/api/server/managers/sticker_manager.dart @@ -21,5 +21,6 @@ final class StickerManager { /// ```dart /// final channel = await server.assets.stickers.get('1091121140090535956'); /// ``` - Future get(String id, {bool force = false}) => _datastore.sticker.get(_serverId.value, id, force); + Future get(String id, {bool force = false}) => + _datastore.sticker.get(_serverId.value, id, force); } diff --git a/lib/src/api/server/managers/threads_manager.dart b/lib/src/api/server/managers/threads_manager.dart index f2942126..47f12f2f 100644 --- a/lib/src/api/server/managers/threads_manager.dart +++ b/lib/src/api/server/managers/threads_manager.dart @@ -13,10 +13,13 @@ abstract interface class ChannelThreadManager { Future> fetchPrivateArchived(); - Future createWithoutMessage(ThreadChannelBuilder builder); + Future createWithoutMessage( + ThreadChannelBuilder builder, + ); } -final class ThreadsManager implements ServerThreadManager, ChannelThreadManager { +final class ThreadsManager + implements ServerThreadManager, ChannelThreadManager { DataStoreContract get _datastore => ioc.resolve(); final Snowflake? _serverId; @@ -25,7 +28,8 @@ final class ThreadsManager implements ServerThreadManager, ChannelThreadManager ThreadsManager(this._serverId, this._channelId); @override - Future fetchActives() => _datastore.thread.fetchActives(_serverId!.value); + Future fetchActives() => + _datastore.thread.fetchActives(_serverId!.value); @override Future> fetchPublicArchived() => @@ -36,6 +40,12 @@ final class ThreadsManager implements ServerThreadManager, ChannelThreadManager _datastore.thread.fetchPrivateArchived(_channelId!.value); @override - Future createWithoutMessage(ThreadChannelBuilder builder) => - _datastore.thread.createWithoutMessage(_serverId!.value, _channelId!.value, builder); + Future createWithoutMessage( + ThreadChannelBuilder builder, + ) => + _datastore.thread.createWithoutMessage( + _serverId!.value, + _channelId!.value, + builder, + ); } From d4bd34787885c69cf9624394976ffdc134b3b3c5 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 09:58:15 +0100 Subject: [PATCH 39/93] style: improve code formatting and readability in moderation enum files --- lib/src/api/server/moderation/enums/action_type.dart | 4 ++-- .../server/moderation/enums/auto_moderation_event_type.dart | 4 ++-- lib/src/api/server/moderation/enums/keyword_preset_type.dart | 4 ++-- lib/src/api/server/moderation/enums/trigger_type.dart | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/src/api/server/moderation/enums/action_type.dart b/lib/src/api/server/moderation/enums/action_type.dart index 8d674293..18fa75cf 100644 --- a/lib/src/api/server/moderation/enums/action_type.dart +++ b/lib/src/api/server/moderation/enums/action_type.dart @@ -1,6 +1,6 @@ import 'package:mineral/api.dart'; -enum ActionType implements EnhancedEnum { +enum ActionType implements EnhancedEnum { blockMessage(1), sendAlertMessage(2), timeout(3), @@ -9,4 +9,4 @@ enum ActionType implements EnhancedEnum { @override final int value; const ActionType(this.value); -} \ No newline at end of file +} diff --git a/lib/src/api/server/moderation/enums/auto_moderation_event_type.dart b/lib/src/api/server/moderation/enums/auto_moderation_event_type.dart index 3181d7ae..6a09bf5f 100644 --- a/lib/src/api/server/moderation/enums/auto_moderation_event_type.dart +++ b/lib/src/api/server/moderation/enums/auto_moderation_event_type.dart @@ -1,10 +1,10 @@ import 'package:mineral/api.dart'; -enum AutoModerationEventType implements EnhancedEnum { +enum AutoModerationEventType implements EnhancedEnum { messageSend(1), memberUpdate(2); @override final int value; const AutoModerationEventType(this.value); -} \ No newline at end of file +} diff --git a/lib/src/api/server/moderation/enums/keyword_preset_type.dart b/lib/src/api/server/moderation/enums/keyword_preset_type.dart index 2c7ad437..fe8ec254 100644 --- a/lib/src/api/server/moderation/enums/keyword_preset_type.dart +++ b/lib/src/api/server/moderation/enums/keyword_preset_type.dart @@ -1,6 +1,6 @@ import 'package:mineral/api.dart'; -enum KeywordPresetType implements EnhancedEnum { +enum KeywordPresetType implements EnhancedEnum { profanity(1), sexualContent(2), slurs(3); @@ -8,4 +8,4 @@ enum KeywordPresetType implements EnhancedEnum { @override final int value; const KeywordPresetType(this.value); -} \ No newline at end of file +} diff --git a/lib/src/api/server/moderation/enums/trigger_type.dart b/lib/src/api/server/moderation/enums/trigger_type.dart index 31bc252d..a1451452 100644 --- a/lib/src/api/server/moderation/enums/trigger_type.dart +++ b/lib/src/api/server/moderation/enums/trigger_type.dart @@ -1,6 +1,6 @@ import 'package:mineral/api.dart'; -enum TriggerType implements EnhancedEnum { +enum TriggerType implements EnhancedEnum { keyword(1), spam(3), keywordPreset(4), @@ -10,4 +10,4 @@ enum TriggerType implements EnhancedEnum { @override final int value; const TriggerType(this.value); -} \ No newline at end of file +} From d813dfb87b3fd692868da3fe5e485eae7fb72bf5 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 09:58:30 +0100 Subject: [PATCH 40/93] style: improve code formatting and readability in moderation action files --- lib/src/api/server/moderation/action.dart | 2 +- lib/src/api/server/moderation/action_metadata.dart | 2 +- lib/src/api/server/moderation/auto_moderation_rule.dart | 3 +-- lib/src/api/server/moderation/rule_execution.dart | 3 +-- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/src/api/server/moderation/action.dart b/lib/src/api/server/moderation/action.dart index 2d8f1435..4b55a1b0 100644 --- a/lib/src/api/server/moderation/action.dart +++ b/lib/src/api/server/moderation/action.dart @@ -9,4 +9,4 @@ final class Action { required this.type, this.metadata, }); -} \ No newline at end of file +} diff --git a/lib/src/api/server/moderation/action_metadata.dart b/lib/src/api/server/moderation/action_metadata.dart index eb6966eb..eda1a0b4 100644 --- a/lib/src/api/server/moderation/action_metadata.dart +++ b/lib/src/api/server/moderation/action_metadata.dart @@ -18,4 +18,4 @@ final class ActionMetadata { customMessage: json['custom_message'], ); } -} \ No newline at end of file +} diff --git a/lib/src/api/server/moderation/auto_moderation_rule.dart b/lib/src/api/server/moderation/auto_moderation_rule.dart index a3baf78e..e5f0890c 100644 --- a/lib/src/api/server/moderation/auto_moderation_rule.dart +++ b/lib/src/api/server/moderation/auto_moderation_rule.dart @@ -1,5 +1,4 @@ import 'package:mineral/api.dart'; -import 'package:mineral/src/api/server/moderation/action.dart'; import 'package:mineral/src/api/server/moderation/enums/auto_moderation_event_type.dart'; import 'package:mineral/src/api/server/moderation/enums/trigger_type.dart'; import 'package:mineral/src/api/server/moderation/trigger_metadata.dart'; @@ -30,4 +29,4 @@ final class AutoModerationRule { required this.exemptRoles, required this.exemptChannels, }); -} \ No newline at end of file +} diff --git a/lib/src/api/server/moderation/rule_execution.dart b/lib/src/api/server/moderation/rule_execution.dart index 759f331d..9885cd7a 100644 --- a/lib/src/api/server/moderation/rule_execution.dart +++ b/lib/src/api/server/moderation/rule_execution.dart @@ -15,7 +15,6 @@ final class RuleExecution { final String? matchedContent; final String? matchedKeyword; - RuleExecution({ required this.ruleId, required this.channelId, @@ -28,4 +27,4 @@ final class RuleExecution { this.matchedContent, this.matchedKeyword, }); -} \ No newline at end of file +} From 4f9e3ea1dd3d7741920e67a23a301a0cad90e167 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:06:11 +0100 Subject: [PATCH 41/93] refactor: use factory for TriggerMetadata.fromJson --- lib/src/api/server/moderation/trigger_metadata.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/src/api/server/moderation/trigger_metadata.dart b/lib/src/api/server/moderation/trigger_metadata.dart index a4e20655..d350d649 100644 --- a/lib/src/api/server/moderation/trigger_metadata.dart +++ b/lib/src/api/server/moderation/trigger_metadata.dart @@ -18,7 +18,7 @@ final class TriggerMetadata { this.mentionRaidProtectionEnabled, }); - static fromJson(Map json) { + factory TriggerMetadata.fromJson(Map json) { return TriggerMetadata( keywordFilter: List.from(json['keyword_filter'] ?? []), regexPatterns: List.from(json['regex_patterns'] ?? []), @@ -32,4 +32,4 @@ final class TriggerMetadata { mentionRaidProtectionEnabled: json['mention_raid_protection_enabled'], ); } -} \ No newline at end of file +} From abd8307a6619925ee6db4d8569a2a9cfbf79e569 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:08:20 +0100 Subject: [PATCH 42/93] style: improve code formatting and readability in thread_channel and thread_result files --- .../api/server/threads/thread_channel.dart | 4 +--- lib/src/api/server/threads/thread_result.dart | 22 ++++++++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/src/api/server/threads/thread_channel.dart b/lib/src/api/server/threads/thread_channel.dart index df917d8d..efdf6dba 100644 --- a/lib/src/api/server/threads/thread_channel.dart +++ b/lib/src/api/server/threads/thread_channel.dart @@ -1,5 +1,3 @@ import 'package:mineral/api.dart'; -abstract interface class ThreadChannel extends Channel { - -} +abstract interface class ThreadChannel extends Channel {} diff --git a/lib/src/api/server/threads/thread_result.dart b/lib/src/api/server/threads/thread_result.dart index 65dcc2dc..a85e335e 100644 --- a/lib/src/api/server/threads/thread_result.dart +++ b/lib/src/api/server/threads/thread_result.dart @@ -8,19 +8,25 @@ final class ThreadResult { Map get publicChannels { return _channels.values .whereType() - .fold>({}, (acc, channel) { - acc[channel.id] = channel; - return acc; - }); + .fold>( + {}, + (acc, channel) { + acc[channel.id] = channel; + return acc; + }, + ); } Map get privateChannels { return _channels.values .whereType() - .fold>({}, (acc, channel) { - acc[channel.id] = channel; - return acc; - }); + .fold>( + {}, + (acc, channel) { + acc[channel.id] = channel; + return acc; + }, + ); } ThreadResult(this._channels); From df2ac281e77379689405239844afb3f478abf73b Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:16:41 +0100 Subject: [PATCH 43/93] style: improve code formatting and readability in Invite class --- lib/src/api/server/invite.dart | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/lib/src/api/server/invite.dart b/lib/src/api/server/invite.dart index b7bb978a..9ac781f8 100644 --- a/lib/src/api/server/invite.dart +++ b/lib/src/api/server/invite.dart @@ -18,21 +18,20 @@ final class Invite { final DateTime? expiresAt; final bool isTemporary; - Invite( - {required this.type, - required this.code, - required this.maxAge, - required this.maxUses, - required this.inviterId, - required this.isTemporary, - required this.createdAt, - this.serverId, - this.channelId, - this.expiresAt}); - - Future resolveInviter() { - return _datastore.user.get(inviterId.value, false); - } + Invite({ + required this.type, + required this.code, + required this.maxAge, + required this.maxUses, + required this.inviterId, + required this.isTemporary, + required this.createdAt, + this.serverId, + this.channelId, + this.expiresAt, + }); + + Future resolveInviter() => _datastore.user.get(inviterId.value, false); Future resolveChannel() async { if (channelId == null) { From 50145d1825e1cfb45afa61c8c3541f9571447565 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:16:57 +0100 Subject: [PATCH 44/93] style: improve code formatting and readability across multiple server-related files --- lib/src/api/server/member.dart | 94 +++++++++++++++------------ lib/src/api/server/member_flags.dart | 9 +-- lib/src/api/server/member_voice.dart | 3 +- lib/src/api/server/role.dart | 22 ++++--- lib/src/api/server/server.dart | 71 ++++++++++++++++---- lib/src/api/server/server_assets.dart | 34 +++++++--- lib/src/api/server/voice_state.dart | 11 +++- 7 files changed, 163 insertions(+), 81 deletions(-) diff --git a/lib/src/api/server/member.dart b/lib/src/api/server/member.dart index ea14c020..f9bd26e4 100644 --- a/lib/src/api/server/member.dart +++ b/lib/src/api/server/member.dart @@ -52,8 +52,11 @@ final class Member implements UserClient { /// final voice = await member.resolveVoiceContext(force: true); /// ``` Future resolveVoiceContext({bool force = false}) async { - final voiceState = - await _datastore.member.getVoiceState(serverId.value, id.value, force); + final voiceState = await _datastore.member.getVoiceState( + serverId.value, + id.value, + force, + ); return MemberVoiceManager(serverId, id, voiceState); } @@ -112,10 +115,11 @@ final class Member implements UserClient { /// ``` Future setUsername(String value, String? reason) => _datastore.member.update( - serverId: serverId.value, - memberId: id.value, - payload: {'username': value}, - reason: reason); + serverId: serverId.value, + memberId: id.value, + payload: {'username': value}, + reason: reason, + ); /// Change the member's nickname. /// @@ -124,10 +128,11 @@ final class Member implements UserClient { /// ``` Future setNickname(String value, String? reason) => _datastore.member.update( - serverId: serverId.value, - memberId: id.value, - payload: {'nick': value}, - reason: reason); + serverId: serverId.value, + memberId: id.value, + payload: {'nick': value}, + reason: reason, + ); /// Ban the member. /// @@ -136,17 +141,21 @@ final class Member implements UserClient { /// ``` Future ban({Duration? deleteSince, String? reason}) => _datastore.member.ban( - serverId: serverId.value, - memberId: id.value, - deleteSince: deleteSince); + serverId: serverId.value, + memberId: id.value, + deleteSince: deleteSince, + ); /// Kick the member. /// /// ```dart /// await member.kick(reason: 'Testing'); /// ``` - Future kick({String? reason}) => _datastore.member - .kick(serverId: serverId.value, memberId: id.value, reason: reason); + Future kick({String? reason}) => _datastore.member.kick( + serverId: serverId.value, + memberId: id.value, + reason: reason, + ); /// Exclude the member. /// @@ -158,10 +167,11 @@ final class Member implements UserClient { duration != null ? DateTime.now().add(duration) : DateTime.now(); return _datastore.member.update( - serverId: serverId.value, - memberId: id.value, - reason: reason, - payload: {'communication_disabled_until': timeout.toIso8601String()}); + serverId: serverId.value, + memberId: id.value, + reason: reason, + payload: {'communication_disabled_until': timeout.toIso8601String()}, + ); } /// Unexclude the member. @@ -170,10 +180,11 @@ final class Member implements UserClient { /// await member.unExclude(reason: 'Testing'); /// ``` Future unExclude({String? reason}) => _datastore.member.update( - serverId: serverId.value, - memberId: id.value, - reason: reason, - payload: {'communication_disabled_until': null}); + serverId: serverId.value, + memberId: id.value, + reason: reason, + payload: {'communication_disabled_until': null}, + ); /// Enable the member's MFA. This member will be required to verify their account for accessing the server. /// @@ -181,10 +192,11 @@ final class Member implements UserClient { /// await member.enableMfa(reason: 'Testing'); /// ``` Future enableMfa({String? reason}) => _datastore.member.update( - serverId: serverId.value, - memberId: id.value, - payload: {'mfa_enable': true}, - reason: reason); + serverId: serverId.value, + memberId: id.value, + payload: {'mfa_enable': true}, + reason: reason, + ); /// Disable the member's MFA. /// @@ -192,10 +204,11 @@ final class Member implements UserClient { /// await member.disableMfa(reason: 'Testing'); /// ``` Future disableMfa({String? reason}) => _datastore.member.update( - serverId: serverId.value, - memberId: id.value, - payload: {'mfa_enable': false}, - reason: reason); + serverId: serverId.value, + memberId: id.value, + payload: {'mfa_enable': false}, + reason: reason, + ); /// Toggle the member's MFA. /// @@ -216,15 +229,16 @@ final class Member implements UserClient { /// ``` Future edit(MemberBuilder builder, {String? reason}) => _datastore.member.update( - serverId: serverId.value, - memberId: id.value, - reason: reason, - payload: { - 'nick': nickname, - 'mute': builder.isMuted, - 'deaf': builder.isDeafened, - 'exclude': builder.isExcluded, - }); + serverId: serverId.value, + memberId: id.value, + reason: reason, + payload: { + 'nick': nickname, + 'mute': builder.isMuted, + 'deaf': builder.isDeafened, + 'exclude': builder.isExcluded, + }, + ); Member({ required this.id, diff --git a/lib/src/api/server/member_flags.dart b/lib/src/api/server/member_flags.dart index 3d55b4b9..b02fa236 100644 --- a/lib/src/api/server/member_flags.dart +++ b/lib/src/api/server/member_flags.dart @@ -24,10 +24,11 @@ final class MemberFlagsManager { /// ``` Future allowBypassVerification({String? reason}) => _memberMethods.update( - serverId: server.id.value, - memberId: member.id.value, - payload: {'flags': MemberFlag.bypassedVerification.value}, - reason: reason); + serverId: server.id.value, + memberId: member.id.value, + payload: {'flags': MemberFlag.bypassedVerification.value}, + reason: reason, + ); /// Disallow the member to bypass verification. /// diff --git a/lib/src/api/server/member_voice.dart b/lib/src/api/server/member_voice.dart index 506977a9..2a9f2d43 100644 --- a/lib/src/api/server/member_voice.dart +++ b/lib/src/api/server/member_voice.dart @@ -4,7 +4,8 @@ import 'package:mineral/src/api/common/snowflake.dart'; import 'package:mineral/src/api/server/member.dart'; final class MemberVoice { - MemberPartContract get _memberMethods => ioc.resolve().member; + MemberPartContract get _memberMethods => + ioc.resolve().member; final Member _member; diff --git a/lib/src/api/server/role.dart b/lib/src/api/server/role.dart index 1cb4ad57..88229f2a 100644 --- a/lib/src/api/server/role.dart +++ b/lib/src/api/server/role.dart @@ -113,13 +113,14 @@ final class Role { /// color: Color.blue_400, /// reason: 'Testing'); /// ``` - Future update( - {String? name, - Color? color, - bool? hoist, - String? emoji, - bool? mentionable, - String? reason}) async { + Future update({ + String? name, + Color? color, + bool? hoist, + String? emoji, + bool? mentionable, + String? reason, + }) async { await _datastore.role.update( id: id.value, serverId: serverId.value, @@ -139,8 +140,11 @@ final class Role { /// ```dart /// await role.delete(reason: 'Testing'); /// ``` - Future delete({String? reason}) => - _datastore.role.delete(id: id.value, guildId: serverId.value, reason: reason); + Future delete({String? reason}) => _datastore.role.delete( + id: id.value, + guildId: serverId.value, + reason: reason, + ); /// Get the server this role belongs to. /// ```dart diff --git a/lib/src/api/server/server.dart b/lib/src/api/server/server.dart index c566cb87..6fc7f9c4 100644 --- a/lib/src/api/server/server.dart +++ b/lib/src/api/server/server.dart @@ -40,7 +40,11 @@ final class Server { /// await server.setName('New Server Name', reason: 'Testing'); /// ``` Future setName(String name, {String? reason}) async { - await _datastore.server.update(id.value, {'name': name}, reason); + await _datastore.server.update( + id.value, + {'name': name}, + reason, + ); } /// Set the server's description. @@ -49,7 +53,11 @@ final class Server { /// await server.setDescription('New Server Description', reason: 'Testing'); /// ``` Future setDescription(String description, {String? reason}) async { - await _datastore.server.update(id.value, {'description': description}, reason); + await _datastore.server.update( + id.value, + {'description': description}, + reason, + ); } /// Set the default message notifications for the server. @@ -57,10 +65,15 @@ final class Server { /// ```dart /// await server.setDefaultMessageNotifications(DefaultMessageNotification.allMessages, reason: 'Testing'); /// ``` - Future setDefaultMessageNotifications(DefaultMessageNotification value, - {String? reason}) async { - await _datastore.server - .update(id.value, {'default_message_notifications': value.value}, reason); + Future setDefaultMessageNotifications( + DefaultMessageNotification value, { + String? reason, + }) async { + await _datastore.server.update( + id.value, + {'default_message_notifications': value.value}, + reason, + ); } /// Set the explicit content filter for the server. @@ -68,8 +81,15 @@ final class Server { /// ```dart /// await server.setExplicitContentFilter(ExplicitContentFilter.disabled, reason: 'Testing'); /// ``` - Future setExplicitContentFilter(ExplicitContentFilter value, {String? reason}) async { - await _datastore.server.update(id.value, {'explicit_content_filter': value.value}, reason); + Future setExplicitContentFilter( + ExplicitContentFilter value, { + String? reason, + }) async { + await _datastore.server.update( + id.value, + {'explicit_content_filter': value.value}, + reason, + ); } /// Set the server's afk timeout. @@ -78,7 +98,11 @@ final class Server { /// await server.setAfkTimeout(300, reason: 'Testing'); /// ``` Future setAfkTimeout(int value, {String? reason}) async { - await _datastore.server.update(id.value, {'afk_timeout': value}, reason); + await _datastore.server.update( + id.value, + {'afk_timeout': value}, + reason, + ); } /// Set the server's enabled premium features. @@ -87,7 +111,11 @@ final class Server { /// await server.enablePremiumProgressBar(true, reason: 'Testing'); /// ``` Future enablePremiumProgressBar(bool value, {String? reason}) async { - await _datastore.server.update(id.value, {'premium_progress_bar_enabled': value}, reason); + await _datastore.server.update( + id.value, + {'premium_progress_bar_enabled': value}, + reason, + ); } /// Set the server's safety alerts channel. @@ -95,8 +123,15 @@ final class Server { /// ```dart /// await server.setSafetyAlertsChannel('1091121140090535956', reason: 'Testing'); /// ``` - Future setSafetyAlertsChannel(String? channelId, {String? reason}) async { - await _datastore.server.update(id.value, {'safety_alerts_channel_id': channelId}, reason); + Future setSafetyAlertsChannel( + String? channelId, { + String? reason, + }) async { + await _datastore.server.update( + id.value, + {'safety_alerts_channel_id': channelId}, + reason, + ); } /// Set the server's preferred locale. @@ -105,7 +140,11 @@ final class Server { /// await server.setPreferredLocale('en-US', reason: 'Testing'); /// ``` Future setPreferredLocale(String value, {String? reason}) async { - await _datastore.server.update(id.value, {'preferred_locale': value}, reason); + await _datastore.server.update( + id.value, + {'preferred_locale': value}, + reason, + ); } /// Set the server's vanity url code. @@ -114,7 +153,11 @@ final class Server { /// await server.setVanityUrlCode('new-vanity-url', reason: 'Testing'); /// ``` Future setVanityUrlCode(String value, {String? reason}) async { - await _datastore.server.update(id.value, {'vanity_url_code': value}, reason); + await _datastore.server.update( + id.value, + {'vanity_url_code': value}, + reason, + ); } /// Resolve the server owner's name. diff --git a/lib/src/api/server/server_assets.dart b/lib/src/api/server/server_assets.dart index 778ebc69..7efb8a11 100644 --- a/lib/src/api/server/server_assets.dart +++ b/lib/src/api/server/server_assets.dart @@ -35,8 +35,11 @@ final class ServerAsset { /// ``` Future setIcon(File icon, {String? reason}) async { final iconAsset = ImageAsset.makeAsset(icon); - await _datastore.server - .update(serverId.value, {'icon': iconAsset.makeUrl()}, reason); + await _datastore.server.update( + serverId.value, + {'icon': iconAsset.makeUrl()}, + reason, + ); } /// Set the server's banner. @@ -46,8 +49,11 @@ final class ServerAsset { /// ``` Future setBanner(File banner, {String? reason}) async { final bannerAsset = ImageAsset.makeAsset(banner); - await _datastore.server - .update(serverId.value, {'banner': bannerAsset.makeUrl()}, reason); + await _datastore.server.update( + serverId.value, + {'banner': bannerAsset.makeUrl()}, + reason, + ); } /// Set the server's splash. @@ -57,8 +63,11 @@ final class ServerAsset { /// ``` Future setSplash(File splash, {String? reason}) async { final splashAsset = ImageAsset.makeAsset(splash); - await _datastore.server - .update(serverId.value, {'splash': splashAsset.makeUrl()}, reason); + await _datastore.server.update( + serverId.value, + {'splash': splashAsset.makeUrl()}, + reason, + ); } /// Set the server's discovery splash. @@ -66,10 +75,15 @@ final class ServerAsset { /// ```dart /// await server.assets.setDiscoverySplash(File('discovery_splash.png'), reason: 'Testing'); /// ``` - Future setDiscoverySplash(File discoverySplash, - {String? reason}) async { + Future setDiscoverySplash( + File discoverySplash, { + String? reason, + }) async { final discoverySplashAsset = ImageAsset.makeAsset(discoverySplash); - await _datastore.server.update(serverId.value, - {'discovery_splash': discoverySplashAsset.makeUrl()}, reason); + await _datastore.server.update( + serverId.value, + {'discovery_splash': discoverySplashAsset.makeUrl()}, + reason, + ); } } diff --git a/lib/src/api/server/voice_state.dart b/lib/src/api/server/voice_state.dart index 5c9e138e..f7727786 100644 --- a/lib/src/api/server/voice_state.dart +++ b/lib/src/api/server/voice_state.dart @@ -47,14 +47,15 @@ final class VoiceState { /// ```dart /// final member = await voiceState.resolveMember(); /// ``` - Future resolveMember() => _datastore.member.get(serverId.value, userId.value, true); + Future resolveMember() => + _datastore.member.get(serverId.value, userId.value, true); /// Get related [ServerVoiceChannel] /// ```dart /// final channel = await voiceState.resolveChannel(); /// ``` Future resolveChannel() async { - return switch(channelId) { + return switch (channelId) { Snowflake(:final value) => await _datastore.channel.get(value, true), _ => null, }; @@ -70,7 +71,11 @@ final class VoiceState { /// final voice = await member.resolveVoiceContext(force: true); /// ``` Future resolveVoiceContext({bool force = false}) async { - final voiceState = await _datastore.member.getVoiceState(serverId.value, userId.value, force); + final voiceState = await _datastore.member.getVoiceState( + serverId.value, + userId.value, + force, + ); return MemberVoiceManager(serverId, userId, voiceState); } From 6cfbf1b05c2e05185a789a01cf1841767e5c2fee Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:17:13 +0100 Subject: [PATCH 45/93] chore: remove unused ServerMessage class and its methods --- lib/src/api/server/server_message.dart | 75 -------------------------- 1 file changed, 75 deletions(-) delete mode 100644 lib/src/api/server/server_message.dart diff --git a/lib/src/api/server/server_message.dart b/lib/src/api/server/server_message.dart deleted file mode 100644 index 80e0e659..00000000 --- a/lib/src/api/server/server_message.dart +++ /dev/null @@ -1,75 +0,0 @@ - - -// final class ServerMessage extends Message { -// DataStoreContract get _datastore => ioc.resolve(); -// final MessageProperties _properties; -// -// Snowflake get serverId => _properties.serverId!; -// -// ServerMessage(this._properties) : super(_properties); -// -// Future resolveAuthor({bool force = false}) async { -// final author = await _datastore.member.get(serverId.value, authorId!.value, force); -// return author!; -// } -// -// /// Reply to the original message. -// /// -// /// ```dart -// /// await message.reply(content: 'Replying to the message'); -// /// ``` -// Future reply( -// {String? content, List? embeds, List? components}) async { -// final channel = await resolveChannel(); -// _datastore.serverMessage.reply( -// id: id, -// channelId: channelId, -// serverId: channel.serverId, -// content: content, -// embeds: embeds, -// components: components); -// } -// -// /// Pin the message. -// /// -// /// ```dart -// /// await message.pin(); -// /// ``` -// Future pin() async { -// await _datastore.serverMessage.pin(id: id, channelId: channelId); -// } -// -// /// Unpin the message. -// /// -// /// ```dart -// /// await message.unpin(); -// /// ``` -// Future unpin() async { -// await _datastore.serverMessage.unpin(id: id, channelId: channelId); -// } -// -// /// Crosspost the message. -// /// -// /// ```dart -// /// await message.crosspost(); // only works for guild announcements -// /// ``` -// Future crosspost() async { -// final channel = await resolveChannel(); -// if (channel.type != ChannelType.guildAnnouncement) { -// return; -// } -// -// await _datastore.serverMessage.crosspost(id: id, channelId: channelId); -// } -// -// /// Delete the message. -// /// -// /// ```dart -// /// await message.delete(); -// /// ``` -// Future delete() async { -// await _datastore.serverMessage.delete(id: id, channelId: channelId); -// } -// -// // todo: addReaction, removeReaction, removeAllReactions, getReactions, clearReactions -// } From e243ffc3a496efcc9b53d06e1df1b59d513c5de9 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:21:27 +0100 Subject: [PATCH 46/93] style: improve code formatting and readability in ClientBuilder class --- lib/src/domains/client/client_builder.dart | 49 ++++++++++++++-------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/lib/src/domains/client/client_builder.dart b/lib/src/domains/client/client_builder.dart index 7c566986..103faf90 100644 --- a/lib/src/domains/client/client_builder.dart +++ b/lib/src/domains/client/client_builder.dart @@ -58,7 +58,8 @@ final class ClientBuilder { } ClientBuilder setCache( - ConstructableWithArgs cache) { + ConstructableWithArgs cache, + ) { _cache = ioc.make(() => cache(env)); return this; } @@ -88,7 +89,8 @@ final class ClientBuilder { } ClientBuilder registerProvider( - T Function(Client) provider) { + T Function(Client) provider, + ) { _providers.add(provider); return this; } @@ -123,37 +125,48 @@ final class ClientBuilder { final token = env.get(AppEnv.token, defaultValue: _token); final intent = env.get(AppEnv.intent, defaultValue: _intent); - final httpVersion = env.get(AppEnv.discordRestHttpVersion, - defaultValue: _discordRestHttpVersion); + final httpVersion = env.get( + AppEnv.discordRestHttpVersion, + defaultValue: _discordRestHttpVersion, + ); - final shardVersion = env.get(AppEnv.discordWssVersion, - defaultValue: _discordWssVersion); + final shardVersion = env.get( + AppEnv.discordWssVersion, + defaultValue: _discordWssVersion, + ); - final wsEncodingStrategy = - env.get(AppEnv.discordWssEncoding, defaultValue: _wssEncoder); + final wsEncodingStrategy = env.get( + AppEnv.discordWssEncoding, + defaultValue: _wssEncoder, + ); final http = HttpClient( - config: HttpClientConfigImpl( - uri: Uri.parse('https://discord.com/api/v$httpVersion'), - headers: { + config: HttpClientConfigImpl( + uri: Uri.parse('https://discord.com/api/v$httpVersion'), + headers: { Header.userAgent('Mineral'), Header.contentType('application/json'), - })); + }, + ), + ); final shardConfig = ShardingConfig( - token: token, - intent: intent, - version: shardVersion, - encoding: wsEncodingStrategy.strategy()); + token: token, + intent: intent, + version: shardVersion, + encoding: wsEncodingStrategy.strategy(), + ); final packetListener = PacketListener(); final eventListener = EventListener(); final providerManager = ProviderManager(); final globalStateManager = ioc.make(GlobalStateManager.new); final interactiveComponent = ioc.make( - InteractiveComponentManager.new); + InteractiveComponentManager.new, + ); final wssOrchestrator = ioc.make( - () => WebsocketOrchestrator(shardConfig)); + () => WebsocketOrchestrator(shardConfig), + ); final kernel = Kernel( _hasDefinedDevPort, From 3c85d1deebf22bbb37fbc74968708e78310b810f Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:21:32 +0100 Subject: [PATCH 47/93] style: improve code formatting and readability in Client class --- lib/src/domains/client/client.dart | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/lib/src/domains/client/client.dart b/lib/src/domains/client/client.dart index 4fd3bc6e..fa52222d 100644 --- a/lib/src/domains/client/client.dart +++ b/lib/src/domains/client/client.dart @@ -11,22 +11,15 @@ import '../events/types/listenable_event.dart'; final class Client { final Kernel _kernel; - final EventBucket events; - final CommandBucket commands; IocContainer get container => ioc; - LoggerContract get logger => _kernel.logger; - DataStoreContract get rest => ioc.resolve(); - WebsocketOrchestratorContract get wss => _kernel.wss; - CommandInteractionManagerContract get _commands => ioc.resolve(); - InteractiveComponentService get components => _kernel.interactiveComponent; Client(Kernel kernel) @@ -44,7 +37,8 @@ final class Client { final ListenableEvent event => _kernel.eventListener.listen( event: event.event, handle: (instance as dynamic).handle as Function, - customId: event.customId), + customId: event.customId, + ), final InteractiveComponent component => _kernel.interactiveComponent.register(component), _ => throw UnimplementedError(), From 0c26ca6a6481536a4d9908730f151a0d24ff5228 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:26:46 +0100 Subject: [PATCH 48/93] style: improve code formatting and readability in command context classes --- .../command_interaction_dispatcher.dart | 49 +++++++++++++------ .../commands/command_interaction_manager.dart | 20 +++++--- .../contexts/global_command_context.dart | 7 ++- .../contexts/server_command_context.dart | 7 ++- 4 files changed, 57 insertions(+), 26 deletions(-) diff --git a/lib/src/domains/commands/command_interaction_dispatcher.dart b/lib/src/domains/commands/command_interaction_dispatcher.dart index e00811b2..4fc10420 100644 --- a/lib/src/domains/commands/command_interaction_dispatcher.dart +++ b/lib/src/domains/commands/command_interaction_dispatcher.dart @@ -25,13 +25,17 @@ final class CommandInteractionDispatcher } Future _handleGroups( - Map data, Map group) async { + Map data, + Map group, + ) async { data['data']['options'] = group['options']; return _handleSubCommand(data, group); } Future _handleSubCommand( - Map data, Map option) async { + Map data, + Map option, + ) async { data['data']['name'] = "${data['data']['name']}.${option['name']}"; data['data']['options'] = option['options']; @@ -41,8 +45,9 @@ final class CommandInteractionDispatcher Future _handleCommand(Map data) async { if (data['data']['options'] != null) { for (final option in data['data']['options']) { - final type = CommandType.values - .firstWhereOrNull((e) => e.value == option['type']); + final type = CommandType.values.firstWhereOrNull( + (e) => e.value == option['type'], + ); if (type == null) { continue; @@ -55,8 +60,9 @@ final class CommandInteractionDispatcher } } - final command = _interactionManager.commandsHandler - .firstWhere((command) => command.$1 == data['data']['name']); + final command = _interactionManager.commandsHandler.firstWhere( + (command) => command.$1 == data['data']['name'], + ); final serverId = Snowflake.nullable(data['data']['guild_id']); final commandContext = await switch (serverId) { @@ -68,8 +74,9 @@ final class CommandInteractionDispatcher if (data['data']['options'] != null) { for (final option in data['data']['options']) { - final type = CommandOptionType.values - .firstWhereOrNull((e) => e.value == option['type']); + final type = CommandOptionType.values.firstWhereOrNull( + (e) => e.value == option['type'], + ); if (type == null) { _marshaller.logger.warn("Unknown option type: ${option['type']}"); @@ -78,20 +85,32 @@ final class CommandInteractionDispatcher options[Symbol(option['name'])] = await switch (type) { CommandOptionType.user => switch (commandContext) { - ServerCommandContext() => _dataStore.member - .get(commandContext.server.id.value, option['value'], false), + ServerCommandContext() => _dataStore.member.get( + commandContext.server.id.value, + option['value'], + false, + ), _ => _dataStore.user.get(option['value'], false), }, - CommandOptionType.channel => - _dataStore.channel.get(option['value'], false), - CommandOptionType.role => - _dataStore.role.get(data['guild_id'], option['value'], false), + CommandOptionType.channel => _dataStore.channel.get( + option['value'], + false, + ), + CommandOptionType.role => _dataStore.role.get( + data['guild_id'], + option['value'], + false, + ), // TODO attachement _ => option['value'], }; } } - await Function.apply(command.$2, [commandContext], options); + await Function.apply( + command.$2, + [commandContext], + options, + ); } } diff --git a/lib/src/domains/commands/command_interaction_manager.dart b/lib/src/domains/commands/command_interaction_manager.dart index a4590204..011d3a6e 100644 --- a/lib/src/domains/commands/command_interaction_manager.dart +++ b/lib/src/domains/commands/command_interaction_manager.dart @@ -71,24 +71,30 @@ final class CommandInteractionManager @override Future registerGlobal(Bot bot) async { - final List globalCommands = - _getContext(CommandContextType.global); + final List globalCommands = _getContext( + CommandContextType.global, + ); final payload = _serializeCommand(globalCommands); final req = Request.json( - endpoint: '/applications/${bot.id}/commands', body: payload); + endpoint: '/applications/${bot.id}/commands', + body: payload, + ); + await _dataStore.client.put(req); } @override Future registerServer(Bot bot, Server server) async { - final List guildCommands = - _getContext(CommandContextType.server); + final List guildCommands = _getContext( + CommandContextType.server, + ); final payload = _serializeCommand(guildCommands); final req = Request.json( - endpoint: '/applications/${bot.id}/guilds/${server.id}/commands', - body: payload); + endpoint: '/applications/${bot.id}/guilds/${server.id}/commands', + body: payload, + ); final response = await _dataStore.client.put(req); if (response.statusCode == 400) { diff --git a/lib/src/domains/commands/contexts/global_command_context.dart b/lib/src/domains/commands/contexts/global_command_context.dart index b4628191..00868e70 100644 --- a/lib/src/domains/commands/contexts/global_command_context.dart +++ b/lib/src/domains/commands/contexts/global_command_context.dart @@ -33,8 +33,11 @@ final class GlobalCommandContext implements CommandContext { this.channel, }) : interaction = Interaction(token, id); - static Future fromMap(MarshallerContract marshaller, - DataStoreContract datastore, Map payload) async { + static Future fromMap( + MarshallerContract marshaller, + DataStoreContract datastore, + Map payload, + ) async { final (user, channel) = await ( datastore.user.get(payload['member']['user']['id'], false), datastore.channel.get(payload['channel_id'], false) diff --git a/lib/src/domains/commands/contexts/server_command_context.dart b/lib/src/domains/commands/contexts/server_command_context.dart index 9ddc6e12..cc5114bf 100644 --- a/lib/src/domains/commands/contexts/server_command_context.dart +++ b/lib/src/domains/commands/contexts/server_command_context.dart @@ -36,8 +36,11 @@ final class ServerCommandContext implements CommandContext { this.channel, }) : interaction = Interaction(token, id); - static Future fromMap(MarshallerContract marshaller, - DataStoreContract datastore, Map payload) async { + static Future fromMap( + MarshallerContract marshaller, + DataStoreContract datastore, + Map payload, + ) async { final member = await datastore.member.get( payload['guild_id'], payload['member']['user']['id'], From 441913ed007216d4e3609f097e7ce288b6d4b0de Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:29:42 +0100 Subject: [PATCH 49/93] style: improve code formatting and readability in extensions and utility functions --- lib/src/domains/common/utils/extensions.dart | 2 +- lib/src/domains/common/utils/file.dart | 36 ++++++++++++-------- lib/src/domains/common/utils/utils.dart | 17 ++++++--- 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/lib/src/domains/common/utils/extensions.dart b/lib/src/domains/common/utils/extensions.dart index f1c9d3df..fa249d53 100644 --- a/lib/src/domains/common/utils/extensions.dart +++ b/lib/src/domains/common/utils/extensions.dart @@ -2,7 +2,7 @@ import 'dart:async'; extension type AsyncList(Iterable> fn) { static AsyncList? nullable(Iterable>? fn) { - return switch(fn) { + return switch (fn) { Iterable>() => AsyncList(fn), _ => null, }; diff --git a/lib/src/domains/common/utils/file.dart b/lib/src/domains/common/utils/file.dart index f7dc9b6e..38945a3c 100644 --- a/lib/src/domains/common/utils/file.dart +++ b/lib/src/domains/common/utils/file.dart @@ -4,8 +4,9 @@ import 'dart:io'; import 'package:yaml/yaml.dart'; extension YamlFile on File { - Future readAsYaml( - {T Function(Map payload)? constructor}) async { + Future readAsYaml({ + T Function(Map payload)? constructor, + }) async { final stringifyContent = await readAsString(); final YamlMap yamlContent = loadYaml(stringifyContent); final Map map = {}; @@ -17,8 +18,9 @@ extension YamlFile on File { return constructor != null ? constructor(map) : map; } - T readAsYamlSync( - {T Function(Map payload)? constructor}) { + T readAsYamlSync({ + T Function(Map payload)? constructor, + }) { final stringifyContent = readAsStringSync(); final YamlMap yamlContent = loadYaml(stringifyContent); final Map map = {}; @@ -32,16 +34,18 @@ extension YamlFile on File { } extension JsonFile on File { - Future readAsJson( - {T Function(Map payload)? constructor}) async { + Future readAsJson({ + T Function(Map payload)? constructor, + }) async { final content = await readAsString(); final Map map = jsonDecode(content); return constructor != null ? constructor(map) : map; } - T readAsJsonSync( - {T Function(Map payload)? constructor}) { + T readAsJsonSync({ + T Function(Map payload)? constructor, + }) { final content = readAsStringSync(); final Map map = jsonDecode(content); @@ -50,10 +54,11 @@ extension JsonFile on File { } extension YamlWriter on Map { - void writeAsYaml( - {required StringBuffer buffer, - required List payload, - int spacing = 2}) { + void writeAsYaml({ + required StringBuffer buffer, + required List payload, + int spacing = 2, + }) { for (final entry in payload) { final spaces = ' ' * spacing; @@ -63,9 +68,10 @@ extension YamlWriter on Map { buffer.writeln('$spaces${entry.key}:'); writeAsYaml( - buffer: buffer, - payload: (entry.value as dynamic).entries.toList(), - spacing: spacing + 2); + buffer: buffer, + payload: (entry.value as dynamic).entries.toList(), + spacing: spacing + 2, + ); } } } diff --git a/lib/src/domains/common/utils/utils.dart b/lib/src/domains/common/utils/utils.dart index b4a23c1e..0847f2c9 100644 --- a/lib/src/domains/common/utils/utils.dart +++ b/lib/src/domains/common/utils/utils.dart @@ -3,12 +3,17 @@ import 'dart:async'; import 'package:collection/collection.dart'; import 'package:mineral/src/api/common/types/enhanced_enum.dart'; -FutureOr createOrNull( - {required dynamic field, required FutureOr Function() fn}) async => - field != null ? await fn() : null; +FutureOr createOrNull({ + required dynamic field, + required FutureOr Function() fn, +}) async { + return field != null ? await fn() : null; +} List bitfieldToList>( - List values, int bitfield) { + List values, + int bitfield, +) { final List flags = []; for (final element in values) { @@ -21,7 +26,9 @@ List bitfieldToList>( int listToBitfield>(List values) { return values.fold( - 0, (previousValue, element) => previousValue += element.value); + 0, + (previousValue, element) => previousValue += element.value, + ); } T findInEnum, R>(List values, R value) { From 508164b2f554a67f2749d4cf653330eb5227c9af Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:29:51 +0100 Subject: [PATCH 50/93] style: improve code formatting for header authorization in Kernel class --- lib/src/domains/common/kernel.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/src/domains/common/kernel.dart b/lib/src/domains/common/kernel.dart index 065f2f0d..dacc6924 100644 --- a/lib/src/domains/common/kernel.dart +++ b/lib/src/domains/common/kernel.dart @@ -52,8 +52,9 @@ final class Kernel { required this.wss, }) { _watch.start(); - httpClient.config.headers - .add(Header.authorization('Bot ${wss.config.token}')); + httpClient.config.headers.add( + Header.authorization('Bot ${wss.config.token}'), + ); } Future init() async { From 5f134bbcf4c0d41faeffd4e97a9f44ba40dd548d Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:59:16 +0100 Subject: [PATCH 51/93] style: improve code formatting and readability in PrivateButtonContext and ServerButtonContext classes --- .../buttons/contexts/private_button_context.dart | 12 +++++++++--- .../buttons/contexts/server_button_context.dart | 12 +++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/src/domains/components/buttons/contexts/private_button_context.dart b/lib/src/domains/components/buttons/contexts/private_button_context.dart index 153d7d8e..00217561 100644 --- a/lib/src/domains/components/buttons/contexts/private_button_context.dart +++ b/lib/src/domains/components/buttons/contexts/private_button_context.dart @@ -48,7 +48,10 @@ final class PrivateButtonContext implements ButtonContext { } Future resolveChannel({bool force = false}) async { - final channel = await _dataStore.channel.get(channelId.value, force); + final channel = await _dataStore.channel.get( + channelId.value, + force, + ); return channel!; } @@ -57,8 +60,11 @@ final class PrivateButtonContext implements ButtonContext { /// final message = await ctx.resolveMessage(); /// ``` Future resolveMessage({bool force = false}) async { - final message = await _dataStore.message - .get(channelId.value, messageId.value, force); + final message = await _dataStore.message.get( + channelId.value, + messageId.value, + force, + ); return message!; } } diff --git a/lib/src/domains/components/buttons/contexts/server_button_context.dart b/lib/src/domains/components/buttons/contexts/server_button_context.dart index 3f470623..f9eb9b5e 100644 --- a/lib/src/domains/components/buttons/contexts/server_button_context.dart +++ b/lib/src/domains/components/buttons/contexts/server_button_context.dart @@ -44,7 +44,10 @@ final class ServerButtonContext implements ButtonContext { /// final channel = await ctx.resolveChannel(); /// ``` Future resolveChannel({bool force = false}) async { - final channel = await _dataStore.channel.get(channelId.value, force); + final channel = await _dataStore.channel.get( + channelId.value, + force, + ); return channel!; } @@ -53,8 +56,11 @@ final class ServerButtonContext implements ButtonContext { /// final message = await ctx.resolveMessage(); /// ``` Future resolveMessage({bool force = false}) async { - final message = await _dataStore.message - .get(channelId.value, messageId.value, force); + final message = await _dataStore.message.get( + channelId.value, + messageId.value, + force, + ); return message!; } } From 9b6322769410c1b0dbd435124facddca24e2531e Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:59:21 +0100 Subject: [PATCH 52/93] style: improve code formatting and readability in InteractiveModal class --- .../components/interactives/components/interactive_modal.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/src/domains/components/interactives/components/interactive_modal.dart b/lib/src/domains/components/interactives/components/interactive_modal.dart index 88e0af50..98f602b2 100644 --- a/lib/src/domains/components/interactives/components/interactive_modal.dart +++ b/lib/src/domains/components/interactives/components/interactive_modal.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:mineral/api.dart'; import 'package:mineral/src/domains/components/interactives/components/interactive_component.dart'; -abstract interface class InteractiveModal implements InteractiveComponent { +abstract interface class InteractiveModal + implements InteractiveComponent { FutureOr handle(ModalContext ctx, T values); } From f0c248d27f2aa6abaf6b9b4632cc5fce3f2a1541 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:59:37 +0100 Subject: [PATCH 53/93] style: improve code formatting and readability in InteractiveComponentManager class --- .../interactives/interactive_component_manager.dart | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/src/domains/components/interactives/interactive_component_manager.dart b/lib/src/domains/components/interactives/interactive_component_manager.dart index 0ab4aa08..4b392c98 100644 --- a/lib/src/domains/components/interactives/interactive_component_manager.dart +++ b/lib/src/domains/components/interactives/interactive_component_manager.dart @@ -11,7 +11,8 @@ abstract interface class InteractiveComponentManagerContract void dispatch(String customId, List params); } -final class InteractiveComponentManager implements InteractiveComponentManagerContract { +final class InteractiveComponentManager + implements InteractiveComponentManagerContract { final Map _components = {}; @override @@ -29,6 +30,8 @@ final class InteractiveComponentManager implements InteractiveComponentManagerCo @override T get(String customId) => - _components.values.firstWhere((e) => e.customId == customId, - orElse: () => throw Exception('Cannot found component')) as T; + _components.values.firstWhere( + (e) => e.customId == customId, + orElse: () => throw Exception('Cannot found component'), + ) as T; } From 2c84260684a0df3943a1e09c85ef1c8cdc0592e0 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:59:42 +0100 Subject: [PATCH 54/93] style: improve code formatting and readability in PrivateModalContext and ServerModalContext classes --- .../components/modal/contexts/private_modal_context.dart | 4 +++- .../components/modal/contexts/server_modal_context.dart | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/src/domains/components/modal/contexts/private_modal_context.dart b/lib/src/domains/components/modal/contexts/private_modal_context.dart index cf4667bd..37445a39 100644 --- a/lib/src/domains/components/modal/contexts/private_modal_context.dart +++ b/lib/src/domains/components/modal/contexts/private_modal_context.dart @@ -36,7 +36,9 @@ final class PrivateModalContext implements ModalContext { } static Future fromMap( - MarshallerContract marshaller, Map payload) async { + MarshallerContract marshaller, + Map payload, + ) async { return PrivateModalContext( customId: payload['data']['custom_id'], id: Snowflake.parse(payload['id']), diff --git a/lib/src/domains/components/modal/contexts/server_modal_context.dart b/lib/src/domains/components/modal/contexts/server_modal_context.dart index 14b9217d..a47d6421 100644 --- a/lib/src/domains/components/modal/contexts/server_modal_context.dart +++ b/lib/src/domains/components/modal/contexts/server_modal_context.dart @@ -36,7 +36,9 @@ final class ServerModalContext implements ModalContext { } static Future fromMap( - DataStoreContract datastore, Map payload) async { + DataStoreContract datastore, + Map payload, + ) async { return ServerModalContext( customId: payload['data']['custom_id'], id: Snowflake.parse(payload['id']), From 53baf59b29a0d43395c60ccf0d73e04755820bca Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 10:59:56 +0100 Subject: [PATCH 55/93] style: improve code formatting and readability in PrivateSelectContext and ServerSelectContext classes --- .../selects/contexts/private_select_context.dart | 7 +++++-- .../selects/contexts/server_select_context.dart | 11 ++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/src/domains/components/selects/contexts/private_select_context.dart b/lib/src/domains/components/selects/contexts/private_select_context.dart index 282ae208..c65d7634 100644 --- a/lib/src/domains/components/selects/contexts/private_select_context.dart +++ b/lib/src/domains/components/selects/contexts/private_select_context.dart @@ -63,8 +63,11 @@ final class PrivateSelectContext implements SelectContext { return _datastore.channel.get(channelId!.value, force); } - static Future fromMap(MarshallerContract marshaller, - DataStoreContract datastore, Map payload) async { + static Future fromMap( + MarshallerContract marshaller, + DataStoreContract datastore, + Map payload, + ) async { return PrivateSelectContext( customId: payload['data']['custom_id'], id: Snowflake.parse(payload['id']), diff --git a/lib/src/domains/components/selects/contexts/server_select_context.dart b/lib/src/domains/components/selects/contexts/server_select_context.dart index 76a8eefe..0fb0664b 100644 --- a/lib/src/domains/components/selects/contexts/server_select_context.dart +++ b/lib/src/domains/components/selects/contexts/server_select_context.dart @@ -58,8 +58,11 @@ final class ServerSelectContext implements SelectContext { return null; } - return _datastore.message - .get(serverId.value, messageId!.value, force); + return _datastore.message.get( + serverId.value, + messageId!.value, + force, + ); } Future resolveChannel({bool force = false}) async { @@ -74,7 +77,9 @@ final class ServerSelectContext implements SelectContext { _datastore.server.get(serverId.value, force); static Future fromMap( - DataStoreContract datastore, Map payload) async { + DataStoreContract datastore, + Map payload, + ) async { return ServerSelectContext( customId: payload['data']['custom_id'], id: Snowflake.parse(payload['id']), From 48827618b8b199471170a4efedf9b20756d6e277 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:04:08 +0100 Subject: [PATCH 56/93] style: improve code formatting and readability in ComponentContext class --- lib/src/domains/components/component_context.dart | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/src/domains/components/component_context.dart b/lib/src/domains/components/component_context.dart index 32b2bba1..4df2b099 100644 --- a/lib/src/domains/components/component_context.dart +++ b/lib/src/domains/components/component_context.dart @@ -1,3 +1 @@ -abstract interface class ComponentContext { - -} +abstract interface class ComponentContext {} From 83439f683b300a832e465e6196ae80e78c592d9d Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:04:15 +0100 Subject: [PATCH 57/93] style: improve code formatting and readability in PrivateBucket and ServerBucket classes --- .../events/buckets/private_bucket.dart | 13 +++++++----- .../domains/events/buckets/server_bucket.dart | 20 ++++++++++++------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/lib/src/domains/events/buckets/private_bucket.dart b/lib/src/domains/events/buckets/private_bucket.dart index f52f574c..de4884b0 100644 --- a/lib/src/domains/events/buckets/private_bucket.dart +++ b/lib/src/domains/events/buckets/private_bucket.dart @@ -1,15 +1,15 @@ import 'package:mineral/src/domains/events/contracts/private/private_button_click_event.dart'; import 'package:mineral/src/domains/events/contracts/private/private_channel_create_event.dart'; import 'package:mineral/src/domains/events/contracts/private/private_channel_pins_update_event.dart'; -import 'package:mineral/src/domains/events/contracts/private/private_modal_submit_event.dart'; import 'package:mineral/src/domains/events/contracts/private/private_message_create_event.dart'; +import 'package:mineral/src/domains/events/contracts/private/private_message_reaction_add_event.dart'; import 'package:mineral/src/domains/events/contracts/private/private_message_reaction_remove_all_event.dart'; +import 'package:mineral/src/domains/events/contracts/private/private_message_reaction_remove_event.dart'; +import 'package:mineral/src/domains/events/contracts/private/private_modal_submit_event.dart'; import 'package:mineral/src/domains/events/contracts/private/private_poll_vote_add_event.dart'; import 'package:mineral/src/domains/events/contracts/private/private_poll_vote_remove_event.dart'; import 'package:mineral/src/domains/events/contracts/private/private_text_select_event.dart'; import 'package:mineral/src/domains/events/contracts/private/private_user_select_event.dart'; -import 'package:mineral/src/domains/events/contracts/private/private_message_reaction_add_event.dart'; -import 'package:mineral/src/domains/events/contracts/private/private_message_reaction_remove_event.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/event_bucket.dart'; @@ -42,10 +42,13 @@ final class PrivateBucket { void privateMessageReactionAdd(PrivateMessageReactionAddHandler handle) => _events.make(Event.privateMessageReactionAdd, handle); - void privateMessageReactionRemove(PrivateMessageReactionRemoveHandler handle) => + void privateMessageReactionRemove( + PrivateMessageReactionRemoveHandler handle, + ) => _events.make(Event.privateMessageReactionRemove, handle); - void messageReactionRemoveAll(PrivateMessageReactionRemoveAllHandler handle) => + void messageReactionRemoveAll( + PrivateMessageReactionRemoveAllHandler handle) => _events.make(Event.privateMessageReactionRemoveAll, handle); void pollVoteAdd(PrivatePollVoteAddEventHandler handle) => diff --git a/lib/src/domains/events/buckets/server_bucket.dart b/lib/src/domains/events/buckets/server_bucket.dart index f31bced4..4bb0497f 100644 --- a/lib/src/domains/events/buckets/server_bucket.dart +++ b/lib/src/domains/events/buckets/server_bucket.dart @@ -9,7 +9,6 @@ import 'package:mineral/src/domains/events/contracts/server/server_channel_selec import 'package:mineral/src/domains/events/contracts/server/server_channel_update_event.dart'; import 'package:mineral/src/domains/events/contracts/server/server_create_event.dart'; import 'package:mineral/src/domains/events/contracts/server/server_delete_event.dart'; -import 'package:mineral/src/domains/events/contracts/server/server_modal_submit_event.dart'; import 'package:mineral/src/domains/events/contracts/server/server_emojis_update_event.dart'; import 'package:mineral/src/domains/events/contracts/server/server_member_add_event.dart'; import 'package:mineral/src/domains/events/contracts/server/server_member_chunk_event.dart'; @@ -20,6 +19,7 @@ import 'package:mineral/src/domains/events/contracts/server/server_message_creat import 'package:mineral/src/domains/events/contracts/server/server_message_reaction_add_event.dart'; import 'package:mineral/src/domains/events/contracts/server/server_message_reaction_remove_all_event.dart'; import 'package:mineral/src/domains/events/contracts/server/server_message_reaction_remove_event.dart'; +import 'package:mineral/src/domains/events/contracts/server/server_modal_submit_event.dart'; import 'package:mineral/src/domains/events/contracts/server/server_poll_vote_add_event.dart'; import 'package:mineral/src/domains/events/contracts/server/server_poll_vote_remove_event.dart'; import 'package:mineral/src/domains/events/contracts/server/server_presence_update_event.dart'; @@ -111,19 +111,25 @@ final class ServerBucket { void buttonClick(ServerButtonClickEventHandler handle, {String? customId}) => _events.make(Event.serverButtonClick, handle, customId: customId); - void modalSubmit(ServerModalSubmitEventHandler handle, - {String? customId}) => + void modalSubmit( + ServerModalSubmitEventHandler handle, { + String? customId, + }) => _events.make(Event.serverModalSubmit, handle, customId: customId); - void selectChannel(ServerChannelSelectEventHandler handle, - {String? customId}) => + void selectChannel( + ServerChannelSelectEventHandler handle, { + String? customId, + }) => _events.make(Event.serverChannelSelect, handle, customId: customId); void selectRole(ServerRoleSelectEventHandler handle, {String? customId}) => _events.make(Event.serverRoleSelect, handle, customId: customId); - void selectMember(ServerMemberSelectEventHandler handle, - {String? customId}) => + void selectMember( + ServerMemberSelectEventHandler handle, { + String? customId, + }) => _events.make(Event.serverMemberSelect, handle, customId: customId); void selectText(ServerTextSelectEventHandler handle, {String? customId}) => From 8f3d5d9ec69f6f387967f62ebda90c63dfa8e39b Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:04:20 +0100 Subject: [PATCH 58/93] style: improve code formatting and readability in InviteDeleteEventHandler typedef --- .../domains/events/contracts/common/invite_delete_event.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/src/domains/events/contracts/common/invite_delete_event.dart b/lib/src/domains/events/contracts/common/invite_delete_event.dart index 32bbe587..02711f1e 100644 --- a/lib/src/domains/events/contracts/common/invite_delete_event.dart +++ b/lib/src/domains/events/contracts/common/invite_delete_event.dart @@ -5,7 +5,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef InviteDeleteEventHandler = FutureOr Function( - String code, Channel channel); + String code, + Channel channel, +); abstract class InviteDeleteEvent implements ListenableEvent { @override From 44852da7b453337b20e5232f3c51aefd52647dd1 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:07:01 +0100 Subject: [PATCH 59/93] style: improve code formatting and readability in private event handlers --- .../contracts/private/private_button_click_event.dart | 7 +++++-- .../private/private_channel_create_event.dart | 7 +++++-- .../private/private_channel_delete_event.dart | 7 +++++-- .../private/private_channel_pins_update_event.dart | 7 +++++-- .../private/private_channel_update_event.dart | 9 +++++++-- .../private/private_mentionable_select_event.dart | 9 +++++++-- .../private/private_message_create_event.dart | 7 +++++-- .../private/private_message_reaction_add_event.dart | 8 ++++++-- .../private_message_reaction_remove_all_event.dart | 10 ++++++++-- .../private/private_message_reaction_remove_event.dart | 8 ++++++-- .../contracts/private/private_modal_submit_event.dart | 7 +++++-- .../contracts/private/private_poll_vote_add_event.dart | 10 ++++++++-- .../private/private_poll_vote_remove_event.dart | 10 ++++++++-- .../contracts/private/private_text_select_event.dart | 9 +++++++-- .../contracts/private/private_user_select_event.dart | 9 +++++++-- 15 files changed, 94 insertions(+), 30 deletions(-) diff --git a/lib/src/domains/events/contracts/private/private_button_click_event.dart b/lib/src/domains/events/contracts/private/private_button_click_event.dart index 605a3cea..81afa237 100644 --- a/lib/src/domains/events/contracts/private/private_button_click_event.dart +++ b/lib/src/domains/events/contracts/private/private_button_click_event.dart @@ -5,7 +5,8 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef PrivateButtonClickEventHandler = FutureOr Function( - PrivateButtonContext); + PrivateButtonContext, +); abstract class PrivateButtonClickEvent implements ListenableEvent { @override @@ -14,5 +15,7 @@ abstract class PrivateButtonClickEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateButtonContext ctx); + FutureOr handle( + PrivateButtonContext ctx, + ); } diff --git a/lib/src/domains/events/contracts/private/private_channel_create_event.dart b/lib/src/domains/events/contracts/private/private_channel_create_event.dart index c77df11a..0e195d80 100644 --- a/lib/src/domains/events/contracts/private/private_channel_create_event.dart +++ b/lib/src/domains/events/contracts/private/private_channel_create_event.dart @@ -4,11 +4,14 @@ import 'package:mineral/src/api/private/channels/private_channel.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef PrivateChannelCreateEventHandler = FutureOr Function( - PrivateChannel); + PrivateChannel, +); abstract class PrivateChannelCreateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateChannel channel); + FutureOr handle( + PrivateChannel channel, + ); } diff --git a/lib/src/domains/events/contracts/private/private_channel_delete_event.dart b/lib/src/domains/events/contracts/private/private_channel_delete_event.dart index 3d3f50b7..c12c6e50 100644 --- a/lib/src/domains/events/contracts/private/private_channel_delete_event.dart +++ b/lib/src/domains/events/contracts/private/private_channel_delete_event.dart @@ -5,7 +5,8 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef PrivateChannelDeleteEventHandler = FutureOr Function( - PrivateChannel); + PrivateChannel, +); abstract class PrivateChannelDeleteEvent implements ListenableEvent { @override @@ -14,5 +15,7 @@ abstract class PrivateChannelDeleteEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateChannel channel); + FutureOr handle( + PrivateChannel channel, + ); } diff --git a/lib/src/domains/events/contracts/private/private_channel_pins_update_event.dart b/lib/src/domains/events/contracts/private/private_channel_pins_update_event.dart index afb9f716..23f1781b 100644 --- a/lib/src/domains/events/contracts/private/private_channel_pins_update_event.dart +++ b/lib/src/domains/events/contracts/private/private_channel_pins_update_event.dart @@ -5,7 +5,8 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef PrivateChannelPinsUpdateEventHandler = FutureOr Function( - PrivateChannel?); + PrivateChannel?, +); abstract class PrivateChannelPinsUpdateEvent implements ListenableEvent { @override @@ -14,5 +15,7 @@ abstract class PrivateChannelPinsUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateChannel channel); + FutureOr handle( + PrivateChannel channel, + ); } diff --git a/lib/src/domains/events/contracts/private/private_channel_update_event.dart b/lib/src/domains/events/contracts/private/private_channel_update_event.dart index a1e3a5ee..bb7277e4 100644 --- a/lib/src/domains/events/contracts/private/private_channel_update_event.dart +++ b/lib/src/domains/events/contracts/private/private_channel_update_event.dart @@ -5,7 +5,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef PrivateChannelUpdateEventHandler = FutureOr Function( - PrivateChannel?, PrivateChannel); + PrivateChannel?, + PrivateChannel, +); abstract class PrivateChannelUpdateEvent implements ListenableEvent { @override @@ -14,5 +16,8 @@ abstract class PrivateChannelUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateChannel? before, PrivateChannel after); + FutureOr handle( + PrivateChannel? before, + PrivateChannel after, + ); } diff --git a/lib/src/domains/events/contracts/private/private_mentionable_select_event.dart b/lib/src/domains/events/contracts/private/private_mentionable_select_event.dart index 49f3f1f0..ca83597c 100644 --- a/lib/src/domains/events/contracts/private/private_mentionable_select_event.dart +++ b/lib/src/domains/events/contracts/private/private_mentionable_select_event.dart @@ -5,7 +5,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef PrivateMentionableSelectEventHandler = FutureOr Function( - PrivateSelectContext ctx, List mentionables); + PrivateSelectContext ctx, + List mentionables, +); abstract class PrivateMentionableSelectEvent implements ListenableEvent { @override @@ -14,5 +16,8 @@ abstract class PrivateMentionableSelectEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateSelectContext ctx, List mentionables); + FutureOr handle( + PrivateSelectContext ctx, + List mentionables, + ); } diff --git a/lib/src/domains/events/contracts/private/private_message_create_event.dart b/lib/src/domains/events/contracts/private/private_message_create_event.dart index 216a1d6a..a32204a9 100644 --- a/lib/src/domains/events/contracts/private/private_message_create_event.dart +++ b/lib/src/domains/events/contracts/private/private_message_create_event.dart @@ -5,7 +5,8 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef PrivateMessageCreateEventHandler = FutureOr Function( - PrivateMessage); + PrivateMessage, +); abstract class PrivateMessageCreateEvent implements ListenableEvent { @override @@ -14,5 +15,7 @@ abstract class PrivateMessageCreateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateMessage message); + FutureOr handle( + PrivateMessage message, + ); } diff --git a/lib/src/domains/events/contracts/private/private_message_reaction_add_event.dart b/lib/src/domains/events/contracts/private/private_message_reaction_add_event.dart index 1edbc810..90f74a69 100644 --- a/lib/src/domains/events/contracts/private/private_message_reaction_add_event.dart +++ b/lib/src/domains/events/contracts/private/private_message_reaction_add_event.dart @@ -4,7 +4,9 @@ import 'package:mineral/src/api/common/message_reaction.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef PrivateMessageReactionAddHandler = FutureOr Function(MessageReaction reaction); +typedef PrivateMessageReactionAddHandler = FutureOr Function( + MessageReaction reaction, +); abstract class PrivateMessageReactionAddEvent implements ListenableEvent { @override @@ -13,5 +15,7 @@ abstract class PrivateMessageReactionAddEvent implements ListenableEvent { @override String? customId; - FutureOr handle(MessageReaction reaction); + FutureOr handle( + MessageReaction reaction, + ); } diff --git a/lib/src/domains/events/contracts/private/private_message_reaction_remove_all_event.dart b/lib/src/domains/events/contracts/private/private_message_reaction_remove_all_event.dart index 1f3336b5..d8e14e59 100644 --- a/lib/src/domains/events/contracts/private/private_message_reaction_remove_all_event.dart +++ b/lib/src/domains/events/contracts/private/private_message_reaction_remove_all_event.dart @@ -4,7 +4,10 @@ import 'package:mineral/api.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef PrivateMessageReactionRemoveAllHandler = FutureOr Function(PrivateChannel, Message); +typedef PrivateMessageReactionRemoveAllHandler = FutureOr Function( + PrivateChannel, + Message, +); abstract class PrivateMessageReactionRemoveAllEvent implements ListenableEvent { @override @@ -13,5 +16,8 @@ abstract class PrivateMessageReactionRemoveAllEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateChannel channel, Message message); + FutureOr handle( + PrivateChannel channel, + Message message, + ); } diff --git a/lib/src/domains/events/contracts/private/private_message_reaction_remove_event.dart b/lib/src/domains/events/contracts/private/private_message_reaction_remove_event.dart index 24e40962..c6406c27 100644 --- a/lib/src/domains/events/contracts/private/private_message_reaction_remove_event.dart +++ b/lib/src/domains/events/contracts/private/private_message_reaction_remove_event.dart @@ -4,7 +4,9 @@ import 'package:mineral/src/api/common/message_reaction.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef PrivateMessageReactionRemoveHandler = FutureOr Function(MessageReaction reaction); +typedef PrivateMessageReactionRemoveHandler = FutureOr Function( + MessageReaction reaction, +); abstract class PrivateMessageReactionRemoveEvent implements ListenableEvent { @override @@ -13,5 +15,7 @@ abstract class PrivateMessageReactionRemoveEvent implements ListenableEvent { @override String? customId; - FutureOr handle(MessageReaction reaction); + FutureOr handle( + MessageReaction reaction, + ); } diff --git a/lib/src/domains/events/contracts/private/private_modal_submit_event.dart b/lib/src/domains/events/contracts/private/private_modal_submit_event.dart index ff127d94..219ab32a 100644 --- a/lib/src/domains/events/contracts/private/private_modal_submit_event.dart +++ b/lib/src/domains/events/contracts/private/private_modal_submit_event.dart @@ -5,7 +5,8 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef PrivateModalSubmitEventHandler = FutureOr Function( - PrivateModalContext); + PrivateModalContext, +); abstract class PrivateModalSubmitEvent implements ListenableEvent { @override @@ -14,5 +15,7 @@ abstract class PrivateModalSubmitEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateModalContext ctx); + FutureOr handle( + PrivateModalContext ctx, + ); } diff --git a/lib/src/domains/events/contracts/private/private_poll_vote_add_event.dart b/lib/src/domains/events/contracts/private/private_poll_vote_add_event.dart index 7542af68..cf4eeea0 100644 --- a/lib/src/domains/events/contracts/private/private_poll_vote_add_event.dart +++ b/lib/src/domains/events/contracts/private/private_poll_vote_add_event.dart @@ -5,7 +5,10 @@ import 'package:mineral/src/api/common/polls/poll_answer_vote.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef PrivatePollVoteAddEventHandler = FutureOr Function(PollAnswerVote, User); +typedef PrivatePollVoteAddEventHandler = FutureOr Function( + PollAnswerVote, + User, +); abstract class PrivatePollVoteAddEvent implements ListenableEvent { @override @@ -14,5 +17,8 @@ abstract class PrivatePollVoteAddEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PollAnswerVote answer, User user); + FutureOr handle( + PollAnswerVote answer, + User user, + ); } diff --git a/lib/src/domains/events/contracts/private/private_poll_vote_remove_event.dart b/lib/src/domains/events/contracts/private/private_poll_vote_remove_event.dart index 6ab2aec0..2113e458 100644 --- a/lib/src/domains/events/contracts/private/private_poll_vote_remove_event.dart +++ b/lib/src/domains/events/contracts/private/private_poll_vote_remove_event.dart @@ -5,7 +5,10 @@ import 'package:mineral/src/api/common/polls/poll_answer_vote.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef PrivatePollVoteRemoveEventHandler = FutureOr Function(PollAnswerVote, User); +typedef PrivatePollVoteRemoveEventHandler = FutureOr Function( + PollAnswerVote, + User, +); abstract class PrivatePollVoteRemoveEvent implements ListenableEvent { @override @@ -14,5 +17,8 @@ abstract class PrivatePollVoteRemoveEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PollAnswerVote answer, User user); + FutureOr handle( + PollAnswerVote answer, + User user, + ); } diff --git a/lib/src/domains/events/contracts/private/private_text_select_event.dart b/lib/src/domains/events/contracts/private/private_text_select_event.dart index d133517a..502c02d1 100644 --- a/lib/src/domains/events/contracts/private/private_text_select_event.dart +++ b/lib/src/domains/events/contracts/private/private_text_select_event.dart @@ -5,7 +5,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef PrivateTextSelectEventHandler = FutureOr Function( - PrivateSelectContext, List); + PrivateSelectContext, + List, +); abstract class PrivateTextSelectEvent implements ListenableEvent { @override @@ -14,5 +16,8 @@ abstract class PrivateTextSelectEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateSelectContext ctx, List values); + FutureOr handle( + PrivateSelectContext ctx, + List values, + ); } diff --git a/lib/src/domains/events/contracts/private/private_user_select_event.dart b/lib/src/domains/events/contracts/private/private_user_select_event.dart index 95bd7952..f2bf14af 100644 --- a/lib/src/domains/events/contracts/private/private_user_select_event.dart +++ b/lib/src/domains/events/contracts/private/private_user_select_event.dart @@ -6,7 +6,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef PrivateUserSelectEventHandler = FutureOr Function( - PrivateSelectContext, List); + PrivateSelectContext, + List, +); abstract class PrivateUserSelectEvent implements ListenableEvent { @override @@ -15,5 +17,8 @@ abstract class PrivateUserSelectEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PrivateSelectContext ctx, List users); + FutureOr handle( + PrivateSelectContext ctx, + List users, + ); } From 52e7a32d05b2530d1742efc7e173532330d04068 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:07:14 +0100 Subject: [PATCH 60/93] style: improve code formatting and readability in server event handler files --- .../contracts/server/server_audit_log_event.dart | 4 +++- .../contracts/server/server_ban_add_event.dart | 11 +++++++++-- .../contracts/server/server_ban_remove_event.dart | 5 ++++- .../contracts/server/server_button_click_event.dart | 7 +++++-- .../server/server_channel_create_event.dart | 7 +++++-- .../server/server_channel_delete_event.dart | 7 +++++-- .../server/server_channel_pins_update_event.dart | 9 +++++++-- .../server/server_channel_select_event.dart | 9 +++++++-- .../server/server_channel_update_event.dart | 9 +++++++-- .../contracts/server/server_create_event.dart | 4 +++- .../contracts/server/server_delete_event.dart | 4 +++- .../server/server_emojis_update_event.dart | 9 +++++++-- .../contracts/server/server_member_add_event.dart | 5 ++++- .../contracts/server/server_member_chunk_event.dart | 10 ++++++++-- .../server/server_member_remove_event.dart | 5 ++++- .../server/server_member_select_event.dart | 9 +++++++-- .../server/server_member_update_event.dart | 11 +++++++++-- .../server/server_mentionable_select_event.dart | 9 +++++++-- .../server/server_message_create_event.dart | 4 +++- .../server/server_message_reaction_add_event.dart | 8 ++++++-- .../server_message_reaction_remove_all_event.dart | 12 ++++++++++-- .../server_message_reaction_remove_event.dart | 8 ++++++-- .../contracts/server/server_modal_submit_event.dart | 9 +++++++-- .../server/server_poll_vote_add_event.dart | 10 ++++++++-- .../server/server_poll_vote_remove_event.dart | 10 ++++++++-- .../server/server_presence_update_event.dart | 10 ++++++++-- .../contracts/server/server_role_select_event.dart | 9 +++++++-- .../contracts/server/server_roles_create_event.dart | 10 ++++++++-- .../contracts/server/server_roles_remove_event.dart | 10 ++++++++-- .../contracts/server/server_roles_update_event.dart | 13 ++++++++++--- .../contracts/server/server_rule_create_event.dart | 8 ++++++-- .../contracts/server/server_rule_delete_event.dart | 8 ++++++-- .../server/server_rule_execution_event.dart | 8 ++++++-- .../contracts/server/server_rule_update_event.dart | 10 ++++++++-- .../server/server_stickers_update_event.dart | 10 ++++++++-- .../contracts/server/server_text_select_event.dart | 9 +++++++-- .../server/server_thread_create_event.dart | 10 ++++++++-- .../server/server_thread_delete_event.dart | 9 +++++++-- .../server/server_thread_list_sync_event.dart | 9 +++++++-- .../server/server_thread_member_add_event.dart | 11 +++++++++-- .../server/server_thread_member_remove_event.dart | 11 +++++++++-- .../server/server_thread_member_update_event.dart | 11 +++++++++-- .../server/server_thread_update_event.dart | 11 +++++++++-- .../contracts/server/server_update_event.dart | 10 ++++++++-- 44 files changed, 300 insertions(+), 82 deletions(-) diff --git a/lib/src/domains/events/contracts/server/server_audit_log_event.dart b/lib/src/domains/events/contracts/server/server_audit_log_event.dart index ccea8c4b..050e980c 100644 --- a/lib/src/domains/events/contracts/server/server_audit_log_event.dart +++ b/lib/src/domains/events/contracts/server/server_audit_log_event.dart @@ -13,5 +13,7 @@ abstract class ServerAuditLogEvent implements ListenableEvent { @override String? customId; - FutureOr handle(AuditLog audit); + FutureOr handle( + AuditLog audit, + ); } diff --git a/lib/src/domains/events/contracts/server/server_ban_add_event.dart b/lib/src/domains/events/contracts/server/server_ban_add_event.dart index b966abbe..52aa9b24 100644 --- a/lib/src/domains/events/contracts/server/server_ban_add_event.dart +++ b/lib/src/domains/events/contracts/server/server_ban_add_event.dart @@ -7,7 +7,10 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerBanAddEventHandler = FutureOr Function( - Member?, User, Server); + Member?, + User, + Server, +); abstract class ServerBanAddEvent implements ListenableEvent { @override @@ -16,5 +19,9 @@ abstract class ServerBanAddEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Member? member, User user, Server server); + FutureOr handle( + Member? member, + User user, + Server server, + ); } diff --git a/lib/src/domains/events/contracts/server/server_ban_remove_event.dart b/lib/src/domains/events/contracts/server/server_ban_remove_event.dart index 755f8c1f..b9488055 100644 --- a/lib/src/domains/events/contracts/server/server_ban_remove_event.dart +++ b/lib/src/domains/events/contracts/server/server_ban_remove_event.dart @@ -14,5 +14,8 @@ abstract class ServerBanRemoveEvent implements ListenableEvent { @override String? customId; - FutureOr handle(User user, Server server); + FutureOr handle( + User user, + Server server, + ); } diff --git a/lib/src/domains/events/contracts/server/server_button_click_event.dart b/lib/src/domains/events/contracts/server/server_button_click_event.dart index 6f668a91..aa3692ee 100644 --- a/lib/src/domains/events/contracts/server/server_button_click_event.dart +++ b/lib/src/domains/events/contracts/server/server_button_click_event.dart @@ -5,7 +5,8 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerButtonClickEventHandler = FutureOr Function( - ServerButtonContext); + ServerButtonContext, +); abstract class ServerButtonClickEvent implements ListenableEvent { @override @@ -14,5 +15,7 @@ abstract class ServerButtonClickEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerButtonContext ctx); + FutureOr handle( + ServerButtonContext ctx, + ); } diff --git a/lib/src/domains/events/contracts/server/server_channel_create_event.dart b/lib/src/domains/events/contracts/server/server_channel_create_event.dart index e85de9fa..22c1d203 100644 --- a/lib/src/domains/events/contracts/server/server_channel_create_event.dart +++ b/lib/src/domains/events/contracts/server/server_channel_create_event.dart @@ -5,7 +5,8 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerChannelCreateEventHandler = FutureOr Function( - ServerChannel channel); + ServerChannel channel, +); abstract class ServerChannelCreateEvent implements ListenableEvent { @override @@ -14,5 +15,7 @@ abstract class ServerChannelCreateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerChannel channel); + FutureOr handle( + ServerChannel channel, + ); } diff --git a/lib/src/domains/events/contracts/server/server_channel_delete_event.dart b/lib/src/domains/events/contracts/server/server_channel_delete_event.dart index ae402e2e..1018b7b9 100644 --- a/lib/src/domains/events/contracts/server/server_channel_delete_event.dart +++ b/lib/src/domains/events/contracts/server/server_channel_delete_event.dart @@ -5,7 +5,8 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerChannelDeleteEventHandler = FutureOr Function( - ServerChannel?); + ServerChannel?, +); abstract class ServerChannelDeleteEvent implements ListenableEvent { @override @@ -14,5 +15,7 @@ abstract class ServerChannelDeleteEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerChannel? channel); + FutureOr handle( + ServerChannel? channel, + ); } diff --git a/lib/src/domains/events/contracts/server/server_channel_pins_update_event.dart b/lib/src/domains/events/contracts/server/server_channel_pins_update_event.dart index 237a76c9..ed2bd931 100644 --- a/lib/src/domains/events/contracts/server/server_channel_pins_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_channel_pins_update_event.dart @@ -6,7 +6,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerChannelPinsUpdateEventHandler = FutureOr Function( - Server, ServerChannel?); + Server, + ServerChannel?, +); abstract class ServerChannelPinsUpdateEvent implements ListenableEvent { @override @@ -15,5 +17,8 @@ abstract class ServerChannelPinsUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server server, ServerChannel channel); + FutureOr handle( + Server server, + ServerChannel channel, + ); } diff --git a/lib/src/domains/events/contracts/server/server_channel_select_event.dart b/lib/src/domains/events/contracts/server/server_channel_select_event.dart index f2956bd4..a9669132 100644 --- a/lib/src/domains/events/contracts/server/server_channel_select_event.dart +++ b/lib/src/domains/events/contracts/server/server_channel_select_event.dart @@ -6,7 +6,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerChannelSelectEventHandler = FutureOr Function( - ServerSelectContext ctx, List channels); + ServerSelectContext ctx, + List channels, +); abstract class ServerChannelSelectEvent implements ListenableEvent { @override @@ -15,5 +17,8 @@ abstract class ServerChannelSelectEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerSelectContext ctx, List channels); + FutureOr handle( + ServerSelectContext ctx, + List channels, + ); } diff --git a/lib/src/domains/events/contracts/server/server_channel_update_event.dart b/lib/src/domains/events/contracts/server/server_channel_update_event.dart index c2e57360..720475e7 100644 --- a/lib/src/domains/events/contracts/server/server_channel_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_channel_update_event.dart @@ -5,7 +5,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerChannelUpdateEventHandler = FutureOr Function( - ServerChannel, ServerChannel); + ServerChannel, + ServerChannel, +); abstract class ServerChannelUpdateEvent implements ListenableEvent { @override @@ -14,5 +16,8 @@ abstract class ServerChannelUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerChannel before, ServerChannel after); + FutureOr handle( + ServerChannel before, + ServerChannel after, + ); } diff --git a/lib/src/domains/events/contracts/server/server_create_event.dart b/lib/src/domains/events/contracts/server/server_create_event.dart index 0d7e2900..bcc42974 100644 --- a/lib/src/domains/events/contracts/server/server_create_event.dart +++ b/lib/src/domains/events/contracts/server/server_create_event.dart @@ -13,5 +13,7 @@ abstract class ServerCreateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server server); + FutureOr handle( + Server server, + ); } diff --git a/lib/src/domains/events/contracts/server/server_delete_event.dart b/lib/src/domains/events/contracts/server/server_delete_event.dart index 38b78f4e..bb820649 100644 --- a/lib/src/domains/events/contracts/server/server_delete_event.dart +++ b/lib/src/domains/events/contracts/server/server_delete_event.dart @@ -13,5 +13,7 @@ abstract class ServerDeleteEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server? server); + FutureOr handle( + Server? server, + ); } diff --git a/lib/src/domains/events/contracts/server/server_emojis_update_event.dart b/lib/src/domains/events/contracts/server/server_emojis_update_event.dart index 034ee166..2cb32ef8 100644 --- a/lib/src/domains/events/contracts/server/server_emojis_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_emojis_update_event.dart @@ -6,7 +6,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerEmojisUpdateEventHandler = FutureOr Function( - EmojiManager, Server); + EmojiManager, + Server, +); abstract class ServerEmojisUpdateEvent implements ListenableEvent { @override @@ -15,5 +17,8 @@ abstract class ServerEmojisUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(EmojiManager emojisManager, Server server); + FutureOr handle( + EmojiManager emojisManager, + Server server, + ); } diff --git a/lib/src/domains/events/contracts/server/server_member_add_event.dart b/lib/src/domains/events/contracts/server/server_member_add_event.dart index f398390a..380d95ac 100644 --- a/lib/src/domains/events/contracts/server/server_member_add_event.dart +++ b/lib/src/domains/events/contracts/server/server_member_add_event.dart @@ -14,5 +14,8 @@ abstract class ServerMemberAddEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Member member, Server server); + FutureOr handle( + Member member, + Server server, + ); } diff --git a/lib/src/domains/events/contracts/server/server_member_chunk_event.dart b/lib/src/domains/events/contracts/server/server_member_chunk_event.dart index 63025e10..cb8b07d4 100644 --- a/lib/src/domains/events/contracts/server/server_member_chunk_event.dart +++ b/lib/src/domains/events/contracts/server/server_member_chunk_event.dart @@ -4,7 +4,10 @@ import 'package:mineral/api.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerMemberChunkEventHandler = FutureOr Function(Server server, Map members); +typedef ServerMemberChunkEventHandler = FutureOr Function( + Server server, + Map members, +); abstract class ServerMemberChunkEvent implements ListenableEvent { @override @@ -13,5 +16,8 @@ abstract class ServerMemberChunkEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server server, Map members); + FutureOr handle( + Server server, + Map members, + ); } diff --git a/lib/src/domains/events/contracts/server/server_member_remove_event.dart b/lib/src/domains/events/contracts/server/server_member_remove_event.dart index d443d1fd..b1d6ea18 100644 --- a/lib/src/domains/events/contracts/server/server_member_remove_event.dart +++ b/lib/src/domains/events/contracts/server/server_member_remove_event.dart @@ -14,5 +14,8 @@ abstract class ServerMemberRemoveEvent implements ListenableEvent { @override String? customId; - FutureOr handle(User? user, Server server); + FutureOr handle( + User? user, + Server server, + ); } diff --git a/lib/src/domains/events/contracts/server/server_member_select_event.dart b/lib/src/domains/events/contracts/server/server_member_select_event.dart index 9f685fc5..0137c865 100644 --- a/lib/src/domains/events/contracts/server/server_member_select_event.dart +++ b/lib/src/domains/events/contracts/server/server_member_select_event.dart @@ -6,7 +6,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerMemberSelectEventHandler = FutureOr Function( - ServerSelectContext, List); + ServerSelectContext, + List, +); abstract class ServerMemberSelectEvent implements ListenableEvent { @override @@ -15,5 +17,8 @@ abstract class ServerMemberSelectEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerSelectContext ctx, List members); + FutureOr handle( + ServerSelectContext ctx, + List members, + ); } diff --git a/lib/src/domains/events/contracts/server/server_member_update_event.dart b/lib/src/domains/events/contracts/server/server_member_update_event.dart index a6310e86..e6fd1d7a 100644 --- a/lib/src/domains/events/contracts/server/server_member_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_member_update_event.dart @@ -6,7 +6,10 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerMemberUpdateEventHandler = FutureOr Function( - Server, Member?, Member); + Server, + Member?, + Member, +); abstract class ServerMemberUpdateEvent implements ListenableEvent { @override @@ -15,5 +18,9 @@ abstract class ServerMemberUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server server, Member after, Member before); + FutureOr handle( + Server server, + Member after, + Member before, + ); } diff --git a/lib/src/domains/events/contracts/server/server_mentionable_select_event.dart b/lib/src/domains/events/contracts/server/server_mentionable_select_event.dart index 01f11028..9ae32ff1 100644 --- a/lib/src/domains/events/contracts/server/server_mentionable_select_event.dart +++ b/lib/src/domains/events/contracts/server/server_mentionable_select_event.dart @@ -5,7 +5,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerMentionableSelectEventHandler = FutureOr Function( - ServerSelectContext ctx, List mentionables); + ServerSelectContext ctx, + List mentionables, +); abstract class ServerMentionableSelectEvent implements ListenableEvent { @override @@ -14,5 +16,8 @@ abstract class ServerMentionableSelectEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerSelectContext ctx, List mentionables); + FutureOr handle( + ServerSelectContext ctx, + List mentionables, + ); } diff --git a/lib/src/domains/events/contracts/server/server_message_create_event.dart b/lib/src/domains/events/contracts/server/server_message_create_event.dart index da7de39a..1e619a30 100644 --- a/lib/src/domains/events/contracts/server/server_message_create_event.dart +++ b/lib/src/domains/events/contracts/server/server_message_create_event.dart @@ -13,5 +13,7 @@ abstract class ServerMessageCreateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerMessage message); + FutureOr handle( + ServerMessage message, + ); } diff --git a/lib/src/domains/events/contracts/server/server_message_reaction_add_event.dart b/lib/src/domains/events/contracts/server/server_message_reaction_add_event.dart index f5030030..0989224b 100644 --- a/lib/src/domains/events/contracts/server/server_message_reaction_add_event.dart +++ b/lib/src/domains/events/contracts/server/server_message_reaction_add_event.dart @@ -4,7 +4,9 @@ import 'package:mineral/src/api/common/message_reaction.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerMessageReactionAddHandler = FutureOr Function(MessageReaction reaction); +typedef ServerMessageReactionAddHandler = FutureOr Function( + MessageReaction reaction, +); abstract class ServerMessageReactionAddEvent implements ListenableEvent { @override @@ -13,5 +15,7 @@ abstract class ServerMessageReactionAddEvent implements ListenableEvent { @override String? customId; - FutureOr handle(MessageReaction reaction); + FutureOr handle( + MessageReaction reaction, + ); } diff --git a/lib/src/domains/events/contracts/server/server_message_reaction_remove_all_event.dart b/lib/src/domains/events/contracts/server/server_message_reaction_remove_all_event.dart index c1cdf72e..470e4b5b 100644 --- a/lib/src/domains/events/contracts/server/server_message_reaction_remove_all_event.dart +++ b/lib/src/domains/events/contracts/server/server_message_reaction_remove_all_event.dart @@ -4,7 +4,11 @@ import 'package:mineral/api.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerMessageReactionRemoveAllHandler = FutureOr Function(Server, ServerTextChannel, Message); +typedef ServerMessageReactionRemoveAllHandler = FutureOr Function( + Server, + ServerTextChannel, + Message, +); abstract class ServerMessageReactionRemoveAllEvent implements ListenableEvent { @override @@ -13,5 +17,9 @@ abstract class ServerMessageReactionRemoveAllEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server server, ServerTextChannel channel, Message message); + FutureOr handle( + Server server, + ServerTextChannel channel, + Message message, + ); } diff --git a/lib/src/domains/events/contracts/server/server_message_reaction_remove_event.dart b/lib/src/domains/events/contracts/server/server_message_reaction_remove_event.dart index 98838d85..13991585 100644 --- a/lib/src/domains/events/contracts/server/server_message_reaction_remove_event.dart +++ b/lib/src/domains/events/contracts/server/server_message_reaction_remove_event.dart @@ -4,7 +4,9 @@ import 'package:mineral/src/api/common/message_reaction.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerMessageReactionRemoveHandler = FutureOr Function(MessageReaction reaction); +typedef ServerMessageReactionRemoveHandler = FutureOr Function( + MessageReaction reaction, +); abstract class ServerMessageReactionRemoveEvent implements ListenableEvent { @override @@ -13,5 +15,7 @@ abstract class ServerMessageReactionRemoveEvent implements ListenableEvent { @override String? customId; - FutureOr handle(MessageReaction reaction); + FutureOr handle( + MessageReaction reaction, + ); } diff --git a/lib/src/domains/events/contracts/server/server_modal_submit_event.dart b/lib/src/domains/events/contracts/server/server_modal_submit_event.dart index 64dd7f4d..a34605db 100644 --- a/lib/src/domains/events/contracts/server/server_modal_submit_event.dart +++ b/lib/src/domains/events/contracts/server/server_modal_submit_event.dart @@ -5,7 +5,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerModalSubmitEventHandler = FutureOr Function( - ServerModalContext ctx, T data); + ServerModalContext ctx, + T data, +); abstract class ServerModalSubmitEvent implements ListenableEvent { @override @@ -14,5 +16,8 @@ abstract class ServerModalSubmitEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerModalContext ctx, T data); + FutureOr handle( + ServerModalContext ctx, + T data, + ); } diff --git a/lib/src/domains/events/contracts/server/server_poll_vote_add_event.dart b/lib/src/domains/events/contracts/server/server_poll_vote_add_event.dart index 6c442f47..e781f560 100644 --- a/lib/src/domains/events/contracts/server/server_poll_vote_add_event.dart +++ b/lib/src/domains/events/contracts/server/server_poll_vote_add_event.dart @@ -5,7 +5,10 @@ import 'package:mineral/src/api/common/polls/poll_answer_vote.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerPollVoteAddEventHandler = FutureOr Function(PollAnswerVote, User); +typedef ServerPollVoteAddEventHandler = FutureOr Function( + PollAnswerVote, + User, +); abstract class ServerPollVoteAddEvent implements ListenableEvent { @override @@ -14,5 +17,8 @@ abstract class ServerPollVoteAddEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PollAnswerVote answer, User user); + FutureOr handle( + PollAnswerVote answer, + User user, + ); } diff --git a/lib/src/domains/events/contracts/server/server_poll_vote_remove_event.dart b/lib/src/domains/events/contracts/server/server_poll_vote_remove_event.dart index 47c630b5..abba7e52 100644 --- a/lib/src/domains/events/contracts/server/server_poll_vote_remove_event.dart +++ b/lib/src/domains/events/contracts/server/server_poll_vote_remove_event.dart @@ -5,7 +5,10 @@ import 'package:mineral/src/api/common/polls/poll_answer_vote.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerPollVoteRemoveEventHandler = FutureOr Function(PollAnswerVote, User); +typedef ServerPollVoteRemoveEventHandler = FutureOr Function( + PollAnswerVote, + User, +); abstract class ServerPollVoteRemoveEvent implements ListenableEvent { @override @@ -14,5 +17,8 @@ abstract class ServerPollVoteRemoveEvent implements ListenableEvent { @override String? customId; - FutureOr handle(PollAnswerVote message, User user); + FutureOr handle( + PollAnswerVote message, + User user, + ); } diff --git a/lib/src/domains/events/contracts/server/server_presence_update_event.dart b/lib/src/domains/events/contracts/server/server_presence_update_event.dart index a0ec01b0..f0504e31 100644 --- a/lib/src/domains/events/contracts/server/server_presence_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_presence_update_event.dart @@ -5,7 +5,10 @@ import 'package:mineral/src/api/server/member.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerPresenceUpdateEventHandler = FutureOr Function(Member, Presence); +typedef ServerPresenceUpdateEventHandler = FutureOr Function( + Member, + Presence, +); abstract class ServerPresenceUpdateEvent implements ListenableEvent { @override @@ -14,5 +17,8 @@ abstract class ServerPresenceUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Member member, Presence presence); + FutureOr handle( + Member member, + Presence presence, + ); } diff --git a/lib/src/domains/events/contracts/server/server_role_select_event.dart b/lib/src/domains/events/contracts/server/server_role_select_event.dart index 5b3de12e..60a35eca 100644 --- a/lib/src/domains/events/contracts/server/server_role_select_event.dart +++ b/lib/src/domains/events/contracts/server/server_role_select_event.dart @@ -6,7 +6,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerRoleSelectEventHandler = FutureOr Function( - ServerSelectContext, List); + ServerSelectContext, + List, +); abstract class ServerRoleSelectEvent implements ListenableEvent { @override @@ -15,5 +17,8 @@ abstract class ServerRoleSelectEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerSelectContext ctx, List roles); + FutureOr handle( + ServerSelectContext ctx, + List roles, + ); } diff --git a/lib/src/domains/events/contracts/server/server_roles_create_event.dart b/lib/src/domains/events/contracts/server/server_roles_create_event.dart index 8b96b11c..e906a665 100644 --- a/lib/src/domains/events/contracts/server/server_roles_create_event.dart +++ b/lib/src/domains/events/contracts/server/server_roles_create_event.dart @@ -5,7 +5,10 @@ import 'package:mineral/src/api/server/server.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerRolesCreateEventHandler = FutureOr Function(Server, Role); +typedef ServerRolesCreateEventHandler = FutureOr Function( + Server, + Role, +); abstract class ServerRolesCreateEvent implements ListenableEvent { @override @@ -14,5 +17,8 @@ abstract class ServerRolesCreateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server server, Role role); + FutureOr handle( + Server server, + Role role, + ); } diff --git a/lib/src/domains/events/contracts/server/server_roles_remove_event.dart b/lib/src/domains/events/contracts/server/server_roles_remove_event.dart index 6f05190a..15c94363 100644 --- a/lib/src/domains/events/contracts/server/server_roles_remove_event.dart +++ b/lib/src/domains/events/contracts/server/server_roles_remove_event.dart @@ -5,7 +5,10 @@ import 'package:mineral/src/api/server/server.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerRolesDeleteEventHandler = FutureOr Function(Server, Role?); +typedef ServerRolesDeleteEventHandler = FutureOr Function( + Server, + Role?, +); abstract class ServerRolesDeleteEvent implements ListenableEvent { @override @@ -14,5 +17,8 @@ abstract class ServerRolesDeleteEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server server, Role? role); + FutureOr handle( + Server server, + Role? role, + ); } diff --git a/lib/src/domains/events/contracts/server/server_roles_update_event.dart b/lib/src/domains/events/contracts/server/server_roles_update_event.dart index 3eae7438..dfe0b449 100644 --- a/lib/src/domains/events/contracts/server/server_roles_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_roles_update_event.dart @@ -5,8 +5,11 @@ import 'package:mineral/src/api/server/server.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerRolesUpdateEventHandler = FutureOr Function(Server, - Role, Role); +typedef ServerRolesUpdateEventHandler = FutureOr Function( + Server, + Role, + Role, +); abstract class ServerRolesUpdateEvent implements ListenableEvent { @override @@ -15,5 +18,9 @@ abstract class ServerRolesUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server server, Role before, Role after); + FutureOr handle( + Server server, + Role before, + Role after, + ); } diff --git a/lib/src/domains/events/contracts/server/server_rule_create_event.dart b/lib/src/domains/events/contracts/server/server_rule_create_event.dart index c32acfa0..96b50e68 100644 --- a/lib/src/domains/events/contracts/server/server_rule_create_event.dart +++ b/lib/src/domains/events/contracts/server/server_rule_create_event.dart @@ -4,7 +4,9 @@ import 'package:mineral/src/api/server/moderation/auto_moderation_rule.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerRuleCreateEventHandler = FutureOr Function(AutoModerationRule); +typedef ServerRuleCreateEventHandler = FutureOr Function( + AutoModerationRule, +); abstract class ServerRuleCreateEvent implements ListenableEvent { @override @@ -13,5 +15,7 @@ abstract class ServerRuleCreateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(AutoModerationRule rule); + FutureOr handle( + AutoModerationRule rule, + ); } diff --git a/lib/src/domains/events/contracts/server/server_rule_delete_event.dart b/lib/src/domains/events/contracts/server/server_rule_delete_event.dart index bd6686cc..95e85c86 100644 --- a/lib/src/domains/events/contracts/server/server_rule_delete_event.dart +++ b/lib/src/domains/events/contracts/server/server_rule_delete_event.dart @@ -4,7 +4,9 @@ import 'package:mineral/src/api/server/moderation/auto_moderation_rule.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerRuleDeleteEventHandler = FutureOr Function(AutoModerationRule); +typedef ServerRuleDeleteEventHandler = FutureOr Function( + AutoModerationRule, +); abstract class ServerRuleDeleteEvent implements ListenableEvent { @override @@ -13,5 +15,7 @@ abstract class ServerRuleDeleteEvent implements ListenableEvent { @override String? customId; - FutureOr handle(AutoModerationRule rule); + FutureOr handle( + AutoModerationRule rule, + ); } diff --git a/lib/src/domains/events/contracts/server/server_rule_execution_event.dart b/lib/src/domains/events/contracts/server/server_rule_execution_event.dart index 0ac36df8..7832361b 100644 --- a/lib/src/domains/events/contracts/server/server_rule_execution_event.dart +++ b/lib/src/domains/events/contracts/server/server_rule_execution_event.dart @@ -4,7 +4,9 @@ import 'package:mineral/api.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerRuleExecutionEventHandler = FutureOr Function(RuleExecution); +typedef ServerRuleExecutionEventHandler = FutureOr Function( + RuleExecution, +); abstract class ServerRuleExecutionEvent implements ListenableEvent { @override @@ -13,5 +15,7 @@ abstract class ServerRuleExecutionEvent implements ListenableEvent { @override String? customId; - FutureOr handle(RuleExecution execution); + FutureOr handle( + RuleExecution execution, + ); } diff --git a/lib/src/domains/events/contracts/server/server_rule_update_event.dart b/lib/src/domains/events/contracts/server/server_rule_update_event.dart index ca9f72f7..e1103ab1 100644 --- a/lib/src/domains/events/contracts/server/server_rule_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_rule_update_event.dart @@ -4,7 +4,10 @@ import 'package:mineral/src/api/server/moderation/auto_moderation_rule.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerRuleUpdateEventHandler = FutureOr Function(AutoModerationRule?, AutoModerationRule); +typedef ServerRuleUpdateEventHandler = FutureOr Function( + AutoModerationRule?, + AutoModerationRule, +); abstract class ServerRuleUpdateEvent implements ListenableEvent { @override @@ -13,5 +16,8 @@ abstract class ServerRuleUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(AutoModerationRule? before, AutoModerationRule after); + FutureOr handle( + AutoModerationRule? before, + AutoModerationRule after, + ); } diff --git a/lib/src/domains/events/contracts/server/server_stickers_update_event.dart b/lib/src/domains/events/contracts/server/server_stickers_update_event.dart index e5f04484..b79245c0 100644 --- a/lib/src/domains/events/contracts/server/server_stickers_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_stickers_update_event.dart @@ -4,7 +4,10 @@ import 'package:mineral/api.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerStickersUpdateEventHandler = FutureOr Function(Server, Map); +typedef ServerStickersUpdateEventHandler = FutureOr Function( + Server, + Map, +); abstract class ServerStickersUpdateEvent implements ListenableEvent { @override @@ -13,5 +16,8 @@ abstract class ServerStickersUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server server, Map stickers); + FutureOr handle( + Server server, + Map stickers, + ); } diff --git a/lib/src/domains/events/contracts/server/server_text_select_event.dart b/lib/src/domains/events/contracts/server/server_text_select_event.dart index 4e3aed0c..7aff2675 100644 --- a/lib/src/domains/events/contracts/server/server_text_select_event.dart +++ b/lib/src/domains/events/contracts/server/server_text_select_event.dart @@ -5,7 +5,9 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerTextSelectEventHandler = FutureOr Function( - ServerSelectContext, List); + ServerSelectContext, + List, +); abstract class ServerTextSelectEvent implements ListenableEvent { @override @@ -14,5 +16,8 @@ abstract class ServerTextSelectEvent implements ListenableEvent { @override String? customId; - FutureOr handle(ServerSelectContext ctx, List values); + FutureOr handle( + ServerSelectContext ctx, + List values, + ); } diff --git a/lib/src/domains/events/contracts/server/server_thread_create_event.dart b/lib/src/domains/events/contracts/server/server_thread_create_event.dart index 4ee10b04..709f553f 100644 --- a/lib/src/domains/events/contracts/server/server_thread_create_event.dart +++ b/lib/src/domains/events/contracts/server/server_thread_create_event.dart @@ -4,11 +4,17 @@ import 'package:mineral/api.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerThreadCreateEventHandler = FutureOr Function(Server, ThreadChannel); +typedef ServerThreadCreateEventHandler = FutureOr Function( + Server, + ThreadChannel, +); abstract class ServerThreadCreateEvent implements ListenableEvent { @override Event get event => Event.serverThreadCreate; - FutureOr handle(Server server, ThreadChannel channel); + FutureOr handle( + Server server, + ThreadChannel channel, + ); } diff --git a/lib/src/domains/events/contracts/server/server_thread_delete_event.dart b/lib/src/domains/events/contracts/server/server_thread_delete_event.dart index b1ef71ea..c0e3597b 100644 --- a/lib/src/domains/events/contracts/server/server_thread_delete_event.dart +++ b/lib/src/domains/events/contracts/server/server_thread_delete_event.dart @@ -5,11 +5,16 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerThreadDeleteEventHandler = FutureOr Function( - ThreadChannel, Server); + ThreadChannel, + Server, +); abstract class ServerThreadDeleteEvent implements ListenableEvent { @override Event get event => Event.serverThreadDelete; - FutureOr handle(ThreadChannel thread, Server server); + FutureOr handle( + ThreadChannel thread, + Server server, + ); } diff --git a/lib/src/domains/events/contracts/server/server_thread_list_sync_event.dart b/lib/src/domains/events/contracts/server/server_thread_list_sync_event.dart index 55a65067..20476df0 100644 --- a/lib/src/domains/events/contracts/server/server_thread_list_sync_event.dart +++ b/lib/src/domains/events/contracts/server/server_thread_list_sync_event.dart @@ -5,11 +5,16 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerThreadListSyncEventHandler = FutureOr Function( - List, Server); + List, + Server, +); abstract class ServerThreadListSyncEvent implements ListenableEvent { @override Event get event => Event.serverThreadListSync; - FutureOr handle(List threads, Server server); + FutureOr handle( + List threads, + Server server, + ); } diff --git a/lib/src/domains/events/contracts/server/server_thread_member_add_event.dart b/lib/src/domains/events/contracts/server/server_thread_member_add_event.dart index f0384692..c3a7bac3 100644 --- a/lib/src/domains/events/contracts/server/server_thread_member_add_event.dart +++ b/lib/src/domains/events/contracts/server/server_thread_member_add_event.dart @@ -5,11 +5,18 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerThreadMemberAddEventHandler = FutureOr Function( - ThreadChannel, Server, Member); + ThreadChannel, + Server, + Member, +); abstract class ServerThreadMemberAddEvent implements ListenableEvent { @override Event get event => Event.serverThreadMemberAdd; - FutureOr handle(ThreadChannel thread, Server server, Member member); + FutureOr handle( + ThreadChannel thread, + Server server, + Member member, + ); } diff --git a/lib/src/domains/events/contracts/server/server_thread_member_remove_event.dart b/lib/src/domains/events/contracts/server/server_thread_member_remove_event.dart index d65aea18..053d05c7 100644 --- a/lib/src/domains/events/contracts/server/server_thread_member_remove_event.dart +++ b/lib/src/domains/events/contracts/server/server_thread_member_remove_event.dart @@ -5,11 +5,18 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerThreadMemberRemoveEventHandler = FutureOr Function( - ThreadChannel, Server, Member); + ThreadChannel, + Server, + Member, +); abstract class ServerThreadMemberRemoveEvent implements ListenableEvent { @override Event get event => Event.serverThreadMemberRemove; - FutureOr handle(ThreadChannel thread, Server server, Member member); + FutureOr handle( + ThreadChannel thread, + Server server, + Member member, + ); } diff --git a/lib/src/domains/events/contracts/server/server_thread_member_update_event.dart b/lib/src/domains/events/contracts/server/server_thread_member_update_event.dart index 7b59e5a5..ec6c8aea 100644 --- a/lib/src/domains/events/contracts/server/server_thread_member_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_thread_member_update_event.dart @@ -5,11 +5,18 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerThreadMemberUpdateEventHandler = FutureOr Function( - ThreadChannel, Server, Member); + ThreadChannel, + Server, + Member, +); abstract class ServerThreadMemberUpdateEvent implements ListenableEvent { @override Event get event => Event.serverThreadMemberUpdate; - FutureOr handle(ThreadChannel thread, Server server, Member member); + FutureOr handle( + ThreadChannel thread, + Server server, + Member member, + ); } diff --git a/lib/src/domains/events/contracts/server/server_thread_update_event.dart b/lib/src/domains/events/contracts/server/server_thread_update_event.dart index 2b242546..8fd49ca0 100644 --- a/lib/src/domains/events/contracts/server/server_thread_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_thread_update_event.dart @@ -5,11 +5,18 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; typedef ServerThreadUpdateEventHandler = FutureOr Function( - Server, ThreadChannel?, ThreadChannel); + Server, + ThreadChannel?, + ThreadChannel, +); abstract class ServerThreadUpdateEvent implements ListenableEvent { @override Event get event => Event.serverThreadUpdate; - FutureOr handle(Server server, ThreadChannel before, ThreadChannel after); + FutureOr handle( + Server server, + ThreadChannel before, + ThreadChannel after, + ); } diff --git a/lib/src/domains/events/contracts/server/server_update_event.dart b/lib/src/domains/events/contracts/server/server_update_event.dart index 176f9036..ec35da38 100644 --- a/lib/src/domains/events/contracts/server/server_update_event.dart +++ b/lib/src/domains/events/contracts/server/server_update_event.dart @@ -4,7 +4,10 @@ import 'package:mineral/src/api/server/server.dart'; import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/domains/events/types/listenable_event.dart'; -typedef ServerUpdateEventHandler = FutureOr Function(Server, Server); +typedef ServerUpdateEventHandler = FutureOr Function( + Server, + Server, +); abstract class ServerUpdateEvent implements ListenableEvent { @override @@ -13,5 +16,8 @@ abstract class ServerUpdateEvent implements ListenableEvent { @override String? customId; - FutureOr handle(Server before, Server after); + FutureOr handle( + Server before, + Server after, + ); } From 61a68c81144fc66fc610b9bca3a05bb97e26ea66 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:07:22 +0100 Subject: [PATCH 61/93] style: improve code formatting and readability in ListenableDispatcher interface --- lib/src/domains/events/types/listenable_dispatcher.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/src/domains/events/types/listenable_dispatcher.dart b/lib/src/domains/events/types/listenable_dispatcher.dart index 087d86ab..ffec07ff 100644 --- a/lib/src/domains/events/types/listenable_dispatcher.dart +++ b/lib/src/domains/events/types/listenable_dispatcher.dart @@ -1,7 +1,5 @@ abstract interface class ListenableDispatcher { void listen(dynamic params); - void dispatch(T payload); - void dispose(); } From 3f86dfc9db894423e2f00bee764e0fbb8d5b595b Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:07:31 +0100 Subject: [PATCH 62/93] style: improve code formatting and readability in event bucket, dispatcher, and listener files --- lib/src/domains/events/event_bucket.dart | 15 ++++++---- lib/src/domains/events/event_dispatcher.dart | 10 +++---- lib/src/domains/events/event_listener.dart | 30 ++++++++++++-------- 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/lib/src/domains/events/event_bucket.dart b/lib/src/domains/events/event_bucket.dart index 97d81c35..f6187516 100644 --- a/lib/src/domains/events/event_bucket.dart +++ b/lib/src/domains/events/event_bucket.dart @@ -4,7 +4,6 @@ import 'package:mineral/src/domains/events/buckets/private_bucket.dart'; import 'package:mineral/src/domains/events/buckets/server_bucket.dart'; import 'package:mineral/src/domains/events/contracts/common/invite_create_event.dart'; import 'package:mineral/src/domains/events/contracts/common/invite_delete_event.dart'; -import 'package:mineral/src/domains/events/contracts/common/voice_move_event.dart'; final class EventBucket { final Kernel _kernel; @@ -41,8 +40,14 @@ final class EventBucket { void inviteDelete(InviteDeleteEventHandler handle) => _registerEvent(event: Event.inviteDelete, handle: handle); - void _registerEvent( - {required Event event, required T handle, String? customId}) => - _kernel.eventListener - .listen(event: event, handle: handle, customId: customId); + void _registerEvent({ + required Event event, + required T handle, + String? customId, + }) => + _kernel.eventListener.listen( + event: event, + handle: handle, + customId: customId, + ); } diff --git a/lib/src/domains/events/event_dispatcher.dart b/lib/src/domains/events/event_dispatcher.dart index 14f3a94e..ac201b32 100644 --- a/lib/src/domains/events/event_dispatcher.dart +++ b/lib/src/domains/events/event_dispatcher.dart @@ -4,7 +4,6 @@ import 'package:rxdart/rxdart.dart'; abstract interface class EventDispatcherContract { void dispatch({required Event event, required List params}); - void dispose(); } @@ -14,10 +13,11 @@ final class EventDispatcher implements EventDispatcherContract { EventDispatcher(this._events); @override - void dispatch( - {required Event event, - required List params, - bool Function(String?)? constraint}) { + void dispatch({ + required Event event, + required List params, + bool Function(String?)? constraint, + }) { _events.add(InternalEventParams(event, params, constraint)); } diff --git a/lib/src/domains/events/event_listener.dart b/lib/src/domains/events/event_listener.dart index 574fdac1..5c384eb1 100644 --- a/lib/src/domains/events/event_listener.dart +++ b/lib/src/domains/events/event_listener.dart @@ -11,8 +11,11 @@ abstract interface class EventListenerContract { EventDispatcherContract get dispatcher; - StreamSubscription listen( - {required Event event, required T handle, required String? customId}); + StreamSubscription listen({ + required Event event, + required T handle, + required String? customId, + }); } final class EventListener implements EventListenerContract { @@ -29,15 +32,18 @@ final class EventListener implements EventListenerContract { } @override - StreamSubscription listen( - {required Event event, required T handle, required String? customId}) { - return _events.stream - .where((element) => element.event == event) - .where((element) { - return switch (element.constraint) { - final bool Function(String?) constraint => constraint(customId), - _ => true - }; - }).listen((element) => Function.apply(handle, element.params)); + StreamSubscription listen({ + required Event event, + required T handle, + required String? customId, + }) { + return _events.stream.where((element) => element.event == event).where( + (element) { + return switch (element.constraint) { + final bool Function(String?) constraint => constraint(customId), + _ => true + }; + }, + ).listen((element) => Function.apply(handle, element.params)); } } From bc203b9914a873997fc9f3777a3a8b7f8fd86bd8 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:07:41 +0100 Subject: [PATCH 63/93] style: improve code formatting and readability in CacheProviderContract --- .../services/cache/cache_provider_contract.dart | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/src/domains/services/cache/cache_provider_contract.dart b/lib/src/domains/services/cache/cache_provider_contract.dart index 1aeb500c..2857de5b 100644 --- a/lib/src/domains/services/cache/cache_provider_contract.dart +++ b/lib/src/domains/services/cache/cache_provider_contract.dart @@ -13,13 +13,17 @@ abstract interface class CacheProviderContract { FutureOr?>> getMany(List keys); - FutureOr> getOrFail(String key, - {Exception Function()? onFail}); + FutureOr> getOrFail( + String key, { + Exception Function()? onFail, + }); FutureOr?> whereKeyStartsWith(String prefix); - FutureOr> whereKeyStartsWithOrFail(String prefix, - {Exception Function()? onFail}); + FutureOr> whereKeyStartsWithOrFail( + String prefix, { + Exception Function()? onFail, + }); FutureOr has(String key); From 1c61dde60b4642e01b7afc1c4f9d3c24e6b63b05 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:07:50 +0100 Subject: [PATCH 64/93] style: improve code formatting and readability in DataStoreContract and parts files --- .../domains/services/datastore/datastore.dart | 14 - lib/src/domains/services/datastore/parts.dart | 528 ++++++++++++------ 2 files changed, 372 insertions(+), 170 deletions(-) diff --git a/lib/src/domains/services/datastore/datastore.dart b/lib/src/domains/services/datastore/datastore.dart index 407795e5..f0d7b78e 100644 --- a/lib/src/domains/services/datastore/datastore.dart +++ b/lib/src/domains/services/datastore/datastore.dart @@ -5,32 +5,18 @@ import 'package:mineral/src/infrastructure/internals/datastore/request_bucket.da abstract class DataStoreContract { RequestBucket get requestBucket; - HttpClient get client; - ChannelPartContract get channel; - ServerPartContract get server; - MemberPartContract get member; - UserPartContract get user; - RolePartContract get role; - MessagePartContract get message; - InteractionPartContract get interaction; - StickerPartContract get sticker; - EmojiPartContract get emoji; - RulesPartContract get rules; - ReactionPartContract get reaction; - ThreadPart get thread; - InvitePartContract get invite; } diff --git a/lib/src/domains/services/datastore/parts.dart b/lib/src/domains/services/datastore/parts.dart index f0e3cb76..70a920c6 100644 --- a/lib/src/domains/services/datastore/parts.dart +++ b/lib/src/domains/services/datastore/parts.dart @@ -2,109 +2,195 @@ import 'package:mineral/api.dart'; import 'package:mineral/src/api/common/polls/poll_answer_vote.dart'; import 'package:mineral/src/api/server/channels/private_thread_channel.dart'; import 'package:mineral/src/api/server/channels/public_thread_channel.dart'; -import 'package:mineral/src/api/server/moderation/action.dart'; -import 'package:mineral/src/api/server/moderation/auto_moderation_rule.dart'; import 'package:mineral/src/api/server/moderation/enums/auto_moderation_event_type.dart'; import 'package:mineral/src/api/server/moderation/enums/trigger_type.dart'; import 'package:mineral/src/api/server/moderation/trigger_metadata.dart'; -import 'package:mineral/src/api/server/voice_state.dart'; abstract interface class DataStorePart {} abstract interface class ChannelPartContract implements DataStorePart { Future> fetch( - Object serverId, bool force); + Object serverId, + bool force, + ); - Future get(Object id, bool force); + Future get( + Object id, + bool force, + ); Future create( - Object? serverId, ChannelBuilderContract builder, - {String? reason}); + Object? serverId, + ChannelBuilderContract builder, { + String? reason, + }); - Future createPrivateChannel(Object id, String recipientId); + Future createPrivateChannel( + Object id, + String recipientId, + ); Future update( - Object id, ChannelBuilderContract builder, - {Object? serverId, String? reason}); + Object id, + ChannelBuilderContract builder, { + Object? serverId, + String? reason, + }); - Future delete(Object id, String? reason); + Future delete( + Object id, + String? reason, + ); } abstract interface class ThreadPartContract implements DataStorePart { - Future fetchActives(Object serverId); + Future fetchActives( + Object serverId, + ); Future> fetchPublicArchived( - Object channelId); + Object channelId, + ); Future> fetchPrivateArchived( - Object channelId); + Object channelId, + ); Future createWithoutMessage( - Object? serverId, Object? channelId, ThreadChannelBuilder builder, - {String? reason}); + Object? serverId, + Object? channelId, + ThreadChannelBuilder builder, { + String? reason, + }); - Future createFromMessage(Object? serverId, - Object? channelId, Object? messageId, ThreadChannelBuilder builder, - {String? reason}); + Future createFromMessage( + Object? serverId, + Object? channelId, + Object? messageId, + ThreadChannelBuilder builder, { + String? reason, + }); } abstract interface class InteractionPartContract implements DataStorePart { - Future replyInteraction(Snowflake id, String token, - MessageBuilder builder, bool ephemeral); - - Future editInteraction(Snowflake botId, String token, - MessageBuilder builder, bool ephemeral); - - Future deleteInteraction(Snowflake botId, String token); - - Future noReplyInteraction(Snowflake id, String token, bool ephemeral); - - Future createFollowup(Snowflake botId, String token, - MessageBuilder builder, bool ephemeral); - - Future editFollowup(Snowflake botId, String token, Snowflake messageId, - MessageBuilder builder, bool ephemeral); + Future replyInteraction( + Snowflake id, + String token, + MessageBuilder builder, + bool ephemeral, + ); + + Future editInteraction( + Snowflake botId, + String token, + MessageBuilder builder, + bool ephemeral, + ); + + Future deleteInteraction( + Snowflake botId, + String token, + ); + + Future noReplyInteraction( + Snowflake id, + String token, + bool ephemeral, + ); + + Future createFollowup( + Snowflake botId, + String token, + MessageBuilder builder, + bool ephemeral, + ); + + Future editFollowup( + Snowflake botId, + String token, + Snowflake messageId, + MessageBuilder builder, + bool ephemeral, + ); Future deleteFollowup( - Snowflake botId, String token, Snowflake messageId); - - Future waitInteraction(Snowflake id, String token); - - Future sendModal(Snowflake id, String token, ModalBuilder modal); + Snowflake botId, + String token, + Snowflake messageId, + ); + + Future waitInteraction( + Snowflake id, + String token, + ); + + Future sendModal( + Snowflake id, + String token, + ModalBuilder modal, + ); } abstract interface class MemberPartContract implements DataStorePart { - Future> fetch(Object serverId, bool force); - - Future get(Object serverId, Object id, bool force); - - Future update( - {required Object serverId, - required String memberId, - required Map payload, - String? reason}); + Future> fetch( + Object serverId, + bool force, + ); + + Future get( + Object serverId, + Object id, + bool force, + ); + + Future update({ + required Object serverId, + required String memberId, + required Map payload, + String? reason, + }); - Future ban( - {required Object serverId, - required Duration? deleteSince, - required String memberId, - String? reason}); + Future ban({ + required Object serverId, + required Duration? deleteSince, + required String memberId, + String? reason, + }); - Future kick( - {required Object serverId, required String memberId, String? reason}); + Future kick({ + required Object serverId, + required String memberId, + String? reason, + }); - Future getVoiceState(Object serverId, String userId, bool force); + Future getVoiceState( + Object serverId, + String userId, + bool force, + ); } abstract interface class MessagePartContract implements DataStorePart { - Future> fetch(Object channelId, - {Snowflake? around, Snowflake? before, Snowflake? after, int? limit}); + Future> fetch( + Object channelId, { + Snowflake? around, + Snowflake? before, + Snowflake? after, + int? limit, + }); Future get( - Object channelId, Object id, bool force); - - Future getPollVotes(Snowflake? serverId, Snowflake channelId, - Snowflake messageId, int answerId); + Object channelId, + Object id, + bool force, + ); + + Future getPollVotes( + Snowflake? serverId, + Snowflake channelId, + Snowflake messageId, + int answerId, + ); Future update({ required Object id, @@ -112,27 +198,55 @@ abstract interface class MessagePartContract implements DataStorePart { required MessageBuilder builder, }); - Future pin(Snowflake channelId, Snowflake id); + Future pin( + Snowflake channelId, + Snowflake id, + ); - Future unpin(Snowflake channelId, Snowflake id); + Future unpin( + Snowflake channelId, + Snowflake id, + ); - Future crosspost(Snowflake channelId, Snowflake id); + Future crosspost( + Snowflake channelId, + Snowflake id, + ); - Future delete(Snowflake channelId, Snowflake id); + Future delete( + Snowflake channelId, + Snowflake id, + ); Future send( - String? serverId, String channelId, MessageBuilder builder); + String? serverId, + String channelId, + MessageBuilder builder, + ); - Future sendPoll(String channelId, Poll poll); + Future sendPoll( + String channelId, + Poll poll, + ); Future reply( - Snowflake id, Snowflake channelId, MessageBuilder builder); + Snowflake id, + Snowflake channelId, + MessageBuilder builder, + ); } abstract interface class RolePartContract implements DataStorePart { - Future> fetch(Object serverId, bool force); + Future> fetch( + Object serverId, + bool force, + ); - Future get(Object serverId, Object id, bool force); + Future get( + Object serverId, + Object id, + bool force, + ); Future create( Object serverId, @@ -143,32 +257,39 @@ abstract interface class RolePartContract implements DataStorePart { bool mentionable, String? reason); - Future add( - {required String memberId, - required Object serverId, - required String roleId, - required String? reason}); + Future add({ + required String memberId, + required Object serverId, + required String roleId, + required String? reason, + }); - Future remove( - {required String memberId, - required Object serverId, - required String roleId, - required String? reason}); - - Future sync( - {required String memberId, - required Object serverId, - required List roleIds, - required String? reason}); - - Future update( - {required Object id, - required Object serverId, - required Map payload, - required String? reason}); + Future remove({ + required String memberId, + required Object serverId, + required String roleId, + required String? reason, + }); - Future delete( - {required Object id, required String guildId, required String? reason}); + Future sync({ + required String memberId, + required Object serverId, + required List roleIds, + required String? reason, + }); + + Future update({ + required Object id, + required Object serverId, + required Map payload, + required String? reason, + }); + + Future delete({ + required Object id, + required String guildId, + required String? reason, + }); } abstract interface class ServerMessagePartContract implements DataStorePart { @@ -181,109 +302,200 @@ abstract interface class ServerMessagePartContract implements DataStorePart { List? components, }); - Future reply( - {required Snowflake id, - required Snowflake channelId, - required Snowflake serverId, - String? content, - List? embeds, - List? components}); + Future reply({ + required Snowflake id, + required Snowflake channelId, + required Snowflake serverId, + String? content, + List? embeds, + List? components, + }); - Future pin({required Snowflake id, required Snowflake channelId}); + Future pin({ + required Snowflake id, + required Snowflake channelId, + }); - Future unpin({required Snowflake id, required Snowflake channelId}); + Future unpin({ + required Snowflake id, + required Snowflake channelId, + }); - Future crosspost({required Snowflake id, required Snowflake channelId}); + Future crosspost({ + required Snowflake id, + required Snowflake channelId, + }); - Future delete({required Snowflake id, required Snowflake channelId}); + Future delete({ + required Snowflake id, + required Snowflake channelId, + }); } abstract interface class ServerPartContract implements DataStorePart { - Future get(Object id, bool force); + Future get( + Object id, + bool force, + ); Future update( - Object id, Map payload, String? reason); + Object id, + Map payload, + String? reason, + ); - Future delete(Object id, String? reason); + Future delete( + Object id, + String? reason, + ); } abstract interface class StickerPartContract implements DataStorePart { - Future> fetch(Object serverId, bool force); + Future> fetch( + Object serverId, + bool force, + ); - Future get(Object serverId, Object id, bool force); + Future get( + Object serverId, + Object id, + bool force, + ); - Future delete(Object serverId, Object stickerId); + Future delete( + Object serverId, + Object stickerId, + ); } abstract interface class UserPartContract implements DataStorePart { - Future get(Object id, bool force); + Future get( + Object id, + bool force, + ); } abstract interface class EmojiPartContract implements DataStorePart { - Future> fetch(Object serverId, bool force); + Future> fetch( + Object serverId, + bool force, + ); - Future get(Object serverId, Object id, bool force); + Future get( + Object serverId, + Object id, + bool force, + ); Future create( - Object serverId, String name, Image image, List roles, - {String? reason}); + Object serverId, + String name, + Image image, + List roles, { + String? reason, + }); - Future update( - {required Object id, - required Object serverId, - required Map payload, - required String? reason}); + Future update({ + required Object id, + required Object serverId, + required Map payload, + required String? reason, + }); - Future delete(Object serverId, String emojiId, {String? reason}); + Future delete( + Object serverId, + String emojiId, { + String? reason, + }); } abstract interface class RulesPartContract implements DataStorePart { - Future> fetch(Object serverId, bool force); - - Future get(Object serverId, Object id, bool force); - - Future create( - {required Object serverId, - required String name, - required AutoModerationEventType eventType, - required TriggerType triggerType, - required List actions, - TriggerMetadata? triggerMetadata, - List exemptRoles = const [], - List exemptChannels = const [], - bool enabled = true, - String? reason}); - - Future update( - {required Object id, - required Object serverId, - required Map payload, - required String? reason}); - - Future delete(Object serverId, Object ruleId, {String? reason}); + Future> fetch( + Object serverId, + bool force, + ); + + Future get( + Object serverId, + Object id, + bool force, + ); + + Future create({ + required Object serverId, + required String name, + required AutoModerationEventType eventType, + required TriggerType triggerType, + required List actions, + TriggerMetadata? triggerMetadata, + List exemptRoles = const [], + List exemptChannels = const [], + bool enabled = true, + String? reason, + }); + + Future update({ + required Object id, + required Object serverId, + required Map payload, + required String? reason, + }); + + Future delete( + Object serverId, + Object ruleId, { + String? reason, + }); } abstract interface class ReactionPartContract implements DataStorePart { Future> getUsersForEmoji( - Object channelId, Object messageId, PartialEmoji emoji); + Object channelId, + Object messageId, + PartialEmoji emoji, + ); - Future add(Object channelId, Object messageId, PartialEmoji emoji); + Future add( + Object channelId, + Object messageId, + PartialEmoji emoji, + ); - Future remove(Object channelId, Object messageId, PartialEmoji emoji); + Future remove( + Object channelId, + Object messageId, + PartialEmoji emoji, + ); - Future removeAll(Object channelId, Object messageId); + Future removeAll( + Object channelId, + Object messageId, + ); Future removeForEmoji( - Object channelId, Object messageId, PartialEmoji emoji); + Object channelId, + Object messageId, + PartialEmoji emoji, + ); Future removeForUser( - String userId, Object channelId, Object messageId, PartialEmoji emoji); + String userId, + Object channelId, + Object messageId, + PartialEmoji emoji, + ); } abstract interface class InvitePartContract implements DataStorePart { - Future get(String code, bool force); + Future get( + String code, + bool force, + ); - Future getExtrasMetadata(String code, bool force); + Future getExtrasMetadata( + String code, + bool force, + ); // Future create( // String code, @@ -291,7 +503,11 @@ abstract interface class InvitePartContract implements DataStorePart { // String channelId, // String inviterId, // bool isTemporary, - // int maxAge, int maxUses); + // int maxAge, int maxUses, + // ); - Future delete(String code, String? reason); + Future delete( + String code, + String? reason, + ); } From 6230abe35c1765fc3667fe0400bbd191f8d946e7 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:08:25 +0100 Subject: [PATCH 65/93] style: improve code formatting and readability in HttpClientContract and RequestContract --- lib/src/domains/services/http/http.dart | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/lib/src/domains/services/http/http.dart b/lib/src/domains/services/http/http.dart index a7bca067..940a9f7c 100644 --- a/lib/src/domains/services/http/http.dart +++ b/lib/src/domains/services/http/http.dart @@ -3,21 +3,13 @@ import 'package:mineral/services.dart'; abstract interface class HttpClientContract { HttpClientStatus get status; - HttpInterceptor get interceptor; - HttpClientConfig get config; - Future> get(RequestContract request); - Future> post(RequestContract request); - Future> put(RequestContract request); - Future> patch(RequestContract request); - Future> delete(RequestContract request); - Future> send(RequestContract request); } @@ -25,7 +17,10 @@ class Header { final String key; final String value; - Header(this.key, this.value); + Header( + this.key, + this.value, + ); Header.contentType(String value) : this('Content-Type', value); Header.accept(String value) : this('Accept', value); @@ -40,17 +35,11 @@ enum RequestType { abstract interface class RequestContract { RequestType get type; - String? method; - late Uri url; - Set
get headers; - Map get queryParameters; - Object? get body; - List get files; RequestContract copyWith({ From 657b51c8b8c96edfc76f3c46467d9b2026a9510a Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:08:34 +0100 Subject: [PATCH 66/93] style: improve code formatting and readability in various service contracts and implementations --- .../interactions/interaction_contract.dart | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/lib/src/domains/services/interactions/interaction_contract.dart b/lib/src/domains/services/interactions/interaction_contract.dart index 1a3621ae..1211ada6 100644 --- a/lib/src/domains/services/interactions/interaction_contract.dart +++ b/lib/src/domains/services/interactions/interaction_contract.dart @@ -7,16 +7,20 @@ abstract class InteractionContract { /// ```dart /// final interaction = await interaction.reply(content: 'Hello Mineral'); /// ``` - Future reply( - {required MessageBuilder builder, bool ephemeral = false}); + Future reply({ + required MessageBuilder builder, + bool ephemeral = false, + }); /// Use to edit the reply to the interaction. /// Usage: /// /// ```dart /// final interaction = await interaction.editReply(content: 'New Hello Mineral'); - Future editReply( - {required MessageBuilder builder, bool ephemeral = false}); + Future editReply({ + required MessageBuilder builder, + bool ephemeral = false, + }); /// Use to delete the reply to the interaction. Need a reply to delete. /// Usage: @@ -32,7 +36,9 @@ abstract class InteractionContract { /// ```dart /// await interaction.noReply(); /// ``` - Future noReply({bool ephemeral = false}); + Future noReply({ + bool ephemeral = false, + }); /// Use to follow up the interaction. /// Usage: @@ -40,8 +46,10 @@ abstract class InteractionContract { /// ```dart /// final interaction = await interaction.followUp(content: 'Hello Mineral'); /// ``` - Future followup( - {required MessageBuilder builder, bool ephemeral = false}); + Future followup({ + required MessageBuilder builder, + bool ephemeral = false, + }); /// Use to edit the follow up message. /// Usage: @@ -49,8 +57,10 @@ abstract class InteractionContract { /// ```dart /// final interaction = await interaction.editFollowUp(content: 'New Hello Mineral'); /// ``` - Future editFollowup( - {required MessageBuilder builder, bool ephemeral = false}); + Future editFollowup({ + required MessageBuilder builder, + bool ephemeral = false, + }); /// Use to delete the follow up message. /// Usage: @@ -82,5 +92,7 @@ abstract class InteractionContract { /// /// await interaction.modal(modal); /// ``` - Future modal(ModalBuilder modal); + Future modal( + ModalBuilder modal, + ); } From f5b1eea6d31b0bd69110f44fc20e957a7cdca202 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:08:44 +0100 Subject: [PATCH 67/93] style: remove unused import and improve formatting in log_level.dart and logger_contract.dart --- lib/src/domains/services/logger/log_level.dart | 1 - lib/src/domains/services/logger/logger_contract.dart | 4 ---- 2 files changed, 5 deletions(-) diff --git a/lib/src/domains/services/logger/log_level.dart b/lib/src/domains/services/logger/log_level.dart index 4fa1b97e..ebbab193 100644 --- a/lib/src/domains/services/logger/log_level.dart +++ b/lib/src/domains/services/logger/log_level.dart @@ -1,4 +1,3 @@ -import 'package:env_guard/env_guard.dart'; import 'package:logging/logging.dart' as logging; import 'package:mineral/api.dart'; diff --git a/lib/src/domains/services/logger/logger_contract.dart b/lib/src/domains/services/logger/logger_contract.dart index b6f0677b..300c091a 100644 --- a/lib/src/domains/services/logger/logger_contract.dart +++ b/lib/src/domains/services/logger/logger_contract.dart @@ -1,11 +1,7 @@ abstract interface class LoggerContract { void trace(Object message); - void fatal(Exception message); - void error(String message); - void warn(String message); - void info(String message); } From 00b6f16ce00c1f5662509775196f0e7b2430dd05 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:08:59 +0100 Subject: [PATCH 68/93] style: remove unnecessary blank lines in MarshallerContract --- lib/src/domains/services/marshaller/marshaller.dart | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/src/domains/services/marshaller/marshaller.dart b/lib/src/domains/services/marshaller/marshaller.dart index 0fc128eb..7bea0240 100644 --- a/lib/src/domains/services/marshaller/marshaller.dart +++ b/lib/src/domains/services/marshaller/marshaller.dart @@ -5,10 +5,7 @@ import 'package:mineral/src/infrastructure/internals/marshaller/serializer_bucke abstract interface class MarshallerContract { LoggerContract get logger; - SerializerBucket get serializers; - CacheProviderContract? get cache; - CacheKey get cacheKey; } From d2fae1f0ea2f28ece0fe3df3705a1d996d1a1b47 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:09:07 +0100 Subject: [PATCH 69/93] style: improve formatting of listen method in PacketDispatcherContract --- lib/src/domains/services/packets/packet_dispatcher.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/src/domains/services/packets/packet_dispatcher.dart b/lib/src/domains/services/packets/packet_dispatcher.dart index 83eb14f6..c88ba129 100644 --- a/lib/src/domains/services/packets/packet_dispatcher.dart +++ b/lib/src/domains/services/packets/packet_dispatcher.dart @@ -3,8 +3,10 @@ import 'package:mineral/src/infrastructure/internals/packets/listenable_packet.d import 'package:mineral/src/infrastructure/internals/wss/shard_message.dart'; abstract interface class PacketDispatcherContract { - void listen(PacketTypeContract packet, - Function(ShardMessage, DispatchEvent) listener); + void listen( + PacketTypeContract packet, + Function(ShardMessage, DispatchEvent) listener, + ); void dispatch(dynamic payload); From e52eabc53ae4ab2abcae2e39a0eeed1c2fe1e549 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:09:15 +0100 Subject: [PATCH 70/93] style: remove unnecessary blank lines in PlaceholderContract --- lib/src/domains/services/placeholder/placeholder.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/src/domains/services/placeholder/placeholder.dart b/lib/src/domains/services/placeholder/placeholder.dart index f42e527d..9b11eaea 100644 --- a/lib/src/domains/services/placeholder/placeholder.dart +++ b/lib/src/domains/services/placeholder/placeholder.dart @@ -1,7 +1,5 @@ abstract interface class PlaceholderContract { Map get values; - String? get identifier; - String apply(String value); } From aaa27679009544e65a7b6db71e994165035ad5aa Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:09:23 +0100 Subject: [PATCH 71/93] style: improve formatting of ShardDisconnectError constructor --- .../services/wss/constants/shard_disconnect_error.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/src/domains/services/wss/constants/shard_disconnect_error.dart b/lib/src/domains/services/wss/constants/shard_disconnect_error.dart index 19e1b428..4e8d4441 100644 --- a/lib/src/domains/services/wss/constants/shard_disconnect_error.dart +++ b/lib/src/domains/services/wss/constants/shard_disconnect_error.dart @@ -29,5 +29,9 @@ enum ShardDisconnectError { final String message; final bool canBeReconnected; - const ShardDisconnectError(this.code, this.message, this.canBeReconnected); + const ShardDisconnectError( + this.code, + this.message, + this.canBeReconnected, + ); } From 8322be5d5e0ebf8abd302d1864e9491649c54780 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 11:09:35 +0100 Subject: [PATCH 72/93] style: remove unnecessary blank lines in multiple contracts and improve formatting --- .../services/wss/encoding_strategy.dart | 2 -- lib/src/domains/services/wss/shard.dart | 9 --------- .../services/wss/shard_authentication.dart | 6 ------ .../domains/services/wss/sharding_config.dart | 6 ------ .../services/wss/websocket_orchestrator.dart | 18 ++++++++++++++---- 5 files changed, 14 insertions(+), 27 deletions(-) diff --git a/lib/src/domains/services/wss/encoding_strategy.dart b/lib/src/domains/services/wss/encoding_strategy.dart index b69bd66f..2c52d02e 100644 --- a/lib/src/domains/services/wss/encoding_strategy.dart +++ b/lib/src/domains/services/wss/encoding_strategy.dart @@ -4,8 +4,6 @@ import 'package:mineral/src/infrastructure/services/wss/websocket_requested_mess abstract interface class EncodingStrategy { WsEncoder get encoder; - WebsocketMessage decode(WebsocketMessage message); - WebsocketRequestedMessage encode(WebsocketRequestedMessage message); } diff --git a/lib/src/domains/services/wss/shard.dart b/lib/src/domains/services/wss/shard.dart index 5171450c..d9364743 100644 --- a/lib/src/domains/services/wss/shard.dart +++ b/lib/src/domains/services/wss/shard.dart @@ -8,27 +8,18 @@ import 'package:mineral/src/infrastructure/services/wss/websocket_message.dart'; abstract interface class ShardContract { Queue> get onceEventQueue; - String get shardName; - WebsocketOrchestratorContract get wss; - WebsocketClient get client; - ShardAuthentication get authentication; - Future init(); } abstract interface class ShardMessageContract { String? get type; - OpCodeEnum get opCode; - int? get sequence; - T get payload; - Object serialize(); } diff --git a/lib/src/domains/services/wss/shard_authentication.dart b/lib/src/domains/services/wss/shard_authentication.dart index fdd48a79..ff8b9a93 100644 --- a/lib/src/domains/services/wss/shard_authentication.dart +++ b/lib/src/domains/services/wss/shard_authentication.dart @@ -1,15 +1,9 @@ abstract interface class ShardAuthenticationContract { void setupRequirements(Map payload); - void identify(Map payload); - Future connect(); - void reconnect(); - void heartbeat(); - void ack(); - void resume(); } diff --git a/lib/src/domains/services/wss/sharding_config.dart b/lib/src/domains/services/wss/sharding_config.dart index 0265638a..f89800d8 100644 --- a/lib/src/domains/services/wss/sharding_config.dart +++ b/lib/src/domains/services/wss/sharding_config.dart @@ -10,16 +10,10 @@ enum WsEncoder { abstract interface class ShardingConfigContract { String get token; - int get intent; - bool get compress; - int get version; - EncodingStrategy get encoding; - int get largeThreshold; - int? get shardCount; } diff --git a/lib/src/domains/services/wss/websocket_orchestrator.dart b/lib/src/domains/services/wss/websocket_orchestrator.dart index ea3d61c3..85a7ab99 100644 --- a/lib/src/domains/services/wss/websocket_orchestrator.dart +++ b/lib/src/domains/services/wss/websocket_orchestrator.dart @@ -13,14 +13,24 @@ abstract class WebsocketOrchestratorContract { Map get shards; - void send(WebsocketIsolateMessageTransfert message); + void send( + WebsocketIsolateMessageTransfert message, + ); void setBotPresence( - List? activity, StatusType? status, bool? afk); + List? activity, + StatusType? status, + bool? afk, + ); - Future getMemberPresence(String serverId, String id); + Future getMemberPresence( + String serverId, + String id, + ); Future> getWebsocketEndpoint(); - Future createShards(RunningStrategy strategy); + Future createShards( + RunningStrategy strategy, + ); } From c0bcf536b5c07094f0200f34dc712a52a4f789a8 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 12:12:45 +0100 Subject: [PATCH 73/93] style: add FIXME comment for the create method in InvitePartContract --- lib/src/domains/services/datastore/parts.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/src/domains/services/datastore/parts.dart b/lib/src/domains/services/datastore/parts.dart index 70a920c6..02902f43 100644 --- a/lib/src/domains/services/datastore/parts.dart +++ b/lib/src/domains/services/datastore/parts.dart @@ -497,6 +497,7 @@ abstract interface class InvitePartContract implements DataStorePart { bool force, ); + // FIXME: Do something with the "create" method commented bellow // Future create( // String code, // String serverId, From 4e9ebf0d4512b9074be0b09d0f44b0ee78030421 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 12:13:39 +0100 Subject: [PATCH 74/93] style: improve code formatting and readability in infrastructure datastore parts files --- .../datastore/parts/channel_part.dart | 52 +++++--- .../internals/datastore/parts/emoji_part.dart | 52 +++++--- .../datastore/parts/interaction_part.dart | 60 ++++++--- .../datastore/parts/invite_part.dart | 16 ++- .../datastore/parts/member_part.dart | 86 +++++++----- .../datastore/parts/message_part.dart | 126 ++++++++++++------ .../datastore/parts/reaction_part.dart | 55 +++++--- .../internals/datastore/parts/role_part.dart | 107 ++++++++------- .../internals/datastore/parts/rules_part.dart | 102 ++++++++------ .../datastore/parts/server_part.dart | 27 ++-- .../datastore/parts/sticker_part.dart | 8 +- .../datastore/parts/thread_part.dart | 62 ++++++--- .../internals/datastore/parts/user_part.dart | 4 +- 13 files changed, 476 insertions(+), 281 deletions(-) diff --git a/lib/src/infrastructure/internals/datastore/parts/channel_part.dart b/lib/src/infrastructure/internals/datastore/parts/channel_part.dart index 9c0e5f98..9bb7ac90 100644 --- a/lib/src/infrastructure/internals/datastore/parts/channel_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/channel_part.dart @@ -15,7 +15,9 @@ final class ChannelPart implements ChannelPartContract { @override Future> fetch( - Object serverId, bool force) async { + Object serverId, + bool force, + ) async { final completer = Completer>(); final req = Request.json(endpoint: '/guilds/$serverId/channels'); @@ -29,7 +31,8 @@ final class ChannelPart implements ChannelPartContract { }).wait; completer.complete( - channels.asMap().map((_, value) => MapEntry(value.id, value as T))); + channels.asMap().map((_, value) => MapEntry(value.id, value as T)), + ); return completer.future; } @@ -40,8 +43,9 @@ final class ChannelPart implements ChannelPartContract { final String key = _marshaller.cacheKey.channel(id); final cachedChannel = await _marshaller.cache?.get(key); if (!force && cachedChannel != null) { - final channel = - await _marshaller.serializers.channels.serialize(cachedChannel) as T; + final channel = await _marshaller.serializers.channels.serialize( + cachedChannel, + ) as T; completer.complete(channel); return completer.future; @@ -61,14 +65,17 @@ final class ChannelPart implements ChannelPartContract { @override Future create( - Object? serverId, ChannelBuilderContract builder, - {String? reason}) async { + Object? serverId, + ChannelBuilderContract builder, { + String? reason, + }) async { final completer = Completer(); final req = Request.json( - endpoint: '/guilds/$serverId/channels', - body: builder.build(), - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/channels', + body: builder.build(), + headers: {DiscordHeader.auditLogReason(reason)}, + ); final result = await _dataStore.requestBucket .query>(req) @@ -86,11 +93,15 @@ final class ChannelPart implements ChannelPartContract { @override Future createPrivateChannel( - Object id, Object recipientId) async { + Object id, + Object recipientId, + ) async { final completer = Completer(); final req = Request.json( - endpoint: '/users/@me/channels', body: {'recipient_id': recipientId}); + endpoint: '/users/@me/channels', + body: {'recipient_id': recipientId}, + ); final result = await _dataStore.requestBucket .query>(req) @@ -106,14 +117,18 @@ final class ChannelPart implements ChannelPartContract { @override Future update( - Object id, ChannelBuilderContract builder, - {Object? serverId, String? reason}) async { + Object id, + ChannelBuilderContract builder, { + Object? serverId, + String? reason, + }) async { final completer = Completer(); final req = Request.json( - endpoint: '/channels/$id', - body: builder.build(), - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/channels/$id', + body: builder.build(), + headers: {DiscordHeader.auditLogReason(reason)}, + ); final result = await _dataStore.requestBucket .query>(req) @@ -132,8 +147,9 @@ final class ChannelPart implements ChannelPartContract { @override Future delete(Object id, String? reason) async { final req = Request.json( - endpoint: '/channels/$id', - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/channels/$id', + headers: {DiscordHeader.auditLogReason(reason)}, + ); await _dataStore.requestBucket .query>(req) diff --git a/lib/src/infrastructure/internals/datastore/parts/emoji_part.dart b/lib/src/infrastructure/internals/datastore/parts/emoji_part.dart index 5d85ff8a..d13872e4 100644 --- a/lib/src/infrastructure/internals/datastore/parts/emoji_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/emoji_part.dart @@ -27,8 +27,9 @@ final class EmojiPart implements EmojiPartContract { return _marshaller.serializers.emojis.serialize(raw); }).wait; - completer - .complete(emojis.asMap().map((_, value) => MapEntry(value.id!, value))); + completer.complete( + emojis.asMap().map((_, value) => MapEntry(value.id!, value)), + ); return completer.future; } @@ -61,17 +62,23 @@ final class EmojiPart implements EmojiPartContract { @override Future create( - Object serverId, String name, Image image, List roles, - {String? reason}) async { + Object serverId, + String name, + Image image, + List roles, { + String? reason, + }) async { final completer = Completer(); - final req = Request.json(endpoint: '/guilds/$serverId/emojis', body: { - 'name': name.replaceAll(' ', '_'), - 'image': image.base64, - 'roles': roles.isNotEmpty ? roles : null, - }, headers: { - DiscordHeader.auditLogReason(reason) - }); + final req = Request.json( + endpoint: '/guilds/$serverId/emojis', + headers: {DiscordHeader.auditLogReason(reason)}, + body: { + 'name': name.replaceAll(' ', '_'), + 'image': image.base64, + 'roles': roles.isNotEmpty ? roles : null, + }, + ); final result = await _dataStore.requestBucket .query>(req) .run(_dataStore.client.post); @@ -88,17 +95,19 @@ final class EmojiPart implements EmojiPartContract { } @override - Future update( - {required Object id, - required Object serverId, - required Map payload, - required String? reason}) async { + Future update({ + required Object id, + required Object serverId, + required Map payload, + required String? reason, + }) async { final completer = Completer(); final req = Request.json( - endpoint: '/guilds/$serverId/emojis/$id', - body: payload, - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/emojis/$id', + headers: {DiscordHeader.auditLogReason(reason)}, + body: payload, + ); final result = await _dataStore.requestBucket .query>(req) @@ -117,8 +126,9 @@ final class EmojiPart implements EmojiPartContract { @override Future delete(Object serverId, Object emojiId, {String? reason}) async { final req = Request.json( - endpoint: '/guilds/$serverId/emojis/$emojiId', - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/emojis/$emojiId', + headers: {DiscordHeader.auditLogReason(reason)}, + ); await _dataStore.requestBucket .query>(req) diff --git a/lib/src/infrastructure/internals/datastore/parts/interaction_part.dart b/lib/src/infrastructure/internals/datastore/parts/interaction_part.dart index 9fe55c92..bf2b67cc 100644 --- a/lib/src/infrastructure/internals/datastore/parts/interaction_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/interaction_part.dart @@ -12,8 +12,12 @@ final class InteractionPart implements InteractionPartContract { HttpClientStatus get status => _dataStore.client.status; @override - Future replyInteraction(Snowflake id, String token, - MessageBuilder builder, bool ephemeral) async { + Future replyInteraction( + Snowflake id, + String token, + MessageBuilder builder, + bool ephemeral, + ) async { final (components, files) = makeAttachmentFromBuilder(builder); int flags = MessageFlagType.isComponentV2.value; @@ -34,8 +38,12 @@ final class InteractionPart implements InteractionPartContract { } @override - Future editInteraction(Snowflake id, String token, - MessageBuilder builder, bool ephemeral) async { + Future editInteraction( + Snowflake id, + String token, + MessageBuilder builder, + bool ephemeral, + ) async { final (components, files) = makeAttachmentFromBuilder(builder); int flags = MessageFlagType.isComponentV2.value; @@ -56,14 +64,18 @@ final class InteractionPart implements InteractionPartContract { @override Future deleteInteraction(Snowflake id, String token) async { - final req = - Request.json(endpoint: '/webhooks/$id/$token/messages/@original'); + final req = Request.json( + endpoint: '/webhooks/$id/$token/messages/@original', + ); await _dataStore.client.delete(req); } @override Future noReplyInteraction( - Snowflake id, String token, bool ephemeral) async { + Snowflake id, + String token, + bool ephemeral, + ) async { final req = Request.json( endpoint: '/webhooks/$id/$token/messages/@original', body: { @@ -76,8 +88,12 @@ final class InteractionPart implements InteractionPartContract { } @override - Future createFollowup(Snowflake id, String token, - MessageBuilder builder, bool ephemeral) async { + Future createFollowup( + Snowflake id, + String token, + MessageBuilder builder, + bool ephemeral, + ) async { final (components, files) = makeAttachmentFromBuilder(builder); int flags = MessageFlagType.isComponentV2.value; @@ -98,8 +114,13 @@ final class InteractionPart implements InteractionPartContract { } @override - Future editFollowup(Snowflake botId, String token, Snowflake messageId, - MessageBuilder builder, bool ephemeral) async { + Future editFollowup( + Snowflake botId, + String token, + Snowflake messageId, + MessageBuilder builder, + bool ephemeral, + ) async { final (components, files) = makeAttachmentFromBuilder(builder); int flags = MessageFlagType.isComponentV2.value; @@ -132,8 +153,9 @@ final class InteractionPart implements InteractionPartContract { @override Future deleteFollowup( Snowflake botId, String token, Snowflake messageId) async { - final req = - Request.json(endpoint: '/webhooks/$botId/$token/messages/$messageId'); + final req = Request.json( + endpoint: '/webhooks/$botId/$token/messages/$messageId', + ); await _dataStore.client.delete(req); } @@ -143,11 +165,13 @@ final class InteractionPart implements InteractionPartContract { String token, ModalBuilder modal, ) async { - final req = - Request.json(endpoint: '/interactions/$id/$token/callback', body: { - 'type': InteractionCallbackType.modal.value, - 'data': modal.toJson(), - }); + final req = Request.json( + endpoint: '/interactions/$id/$token/callback', + body: { + 'type': InteractionCallbackType.modal.value, + 'data': modal.toJson(), + }, + ); await _dataStore.client.post(req); } } diff --git a/lib/src/infrastructure/internals/datastore/parts/invite_part.dart b/lib/src/infrastructure/internals/datastore/parts/invite_part.dart index d53a8d7a..eb003212 100644 --- a/lib/src/infrastructure/internals/datastore/parts/invite_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/invite_part.dart @@ -20,8 +20,9 @@ final class InvitePart implements InvitePartContract { final cachedInvite = await _marshaller.cache?.get(key); if (!force && cachedInvite != null) { - final invite = - await _marshaller.serializers.invite.serialize(cachedInvite); + final invite = await _marshaller.serializers.invite.serialize( + cachedInvite, + ); completer.complete(invite); return completer.future; @@ -43,10 +44,13 @@ final class InvitePart implements InvitePartContract { Future getExtrasMetadata(String code, bool force) async { final completer = Completer(); - final req = Request.json(endpoint: '/invites/$code', queryParameters: { - 'with_counts': 'true', - 'with_expiration': 'true', - }); + final req = Request.json( + endpoint: '/invites/$code', + queryParameters: { + 'with_counts': 'true', + 'with_expiration': 'true', + }, + ); final result = await _dataStore.requestBucket .query>(req) diff --git a/lib/src/infrastructure/internals/datastore/parts/member_part.dart b/lib/src/infrastructure/internals/datastore/parts/member_part.dart index 843d46bf..e9bd15d0 100644 --- a/lib/src/infrastructure/internals/datastore/parts/member_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/member_part.dart @@ -25,13 +25,16 @@ final class MemberPart implements MemberPartContract { .run(_dataStore.client.get); final members = await result.map((element) async { - final raw = await _marshaller.serializers.member - .normalize({...element, 'guild_id': serverId}); + final raw = await _marshaller.serializers.member.normalize({ + ...element, + 'guild_id': serverId, + }); return _marshaller.serializers.member.serialize(raw); }).wait; - completer - .complete(members.asMap().map((_, value) => MapEntry(value.id, value))); + completer.complete( + members.asMap().map((_, value) => MapEntry(value.id, value)), + ); return completer.future; } @@ -42,8 +45,9 @@ final class MemberPart implements MemberPartContract { final cachedMember = await _marshaller.cache?.get(key); if (!force && cachedMember != null) { - final member = - await _marshaller.serializers.member.serialize(cachedMember); + final member = await _marshaller.serializers.member.serialize( + cachedMember, + ); completer.complete(member); return completer.future; @@ -54,8 +58,9 @@ final class MemberPart implements MemberPartContract { .query>(req) .run(_dataStore.client.get); - final raw = await _marshaller.serializers.member - .normalize({...result, 'guild_id': serverId}); + final raw = await _marshaller.serializers.member.normalize( + {...result, 'guild_id': serverId}, + ); final member = await _marshaller.serializers.member.serialize(raw); completer.complete(member); @@ -63,17 +68,19 @@ final class MemberPart implements MemberPartContract { } @override - Future update( - {required Object serverId, - required Object memberId, - required Map payload, - String? reason}) async { + Future update({ + required Object serverId, + required Object memberId, + required Map payload, + String? reason, + }) async { final completer = Completer(); final req = Request.json( - endpoint: '/guilds/$serverId/members/$memberId', - body: payload, - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/members/$memberId', + headers: {DiscordHeader.auditLogReason(reason)}, + body: payload, + ); final result = await _dataStore.requestBucket .query>(req) .run(_dataStore.client.patch); @@ -89,15 +96,17 @@ final class MemberPart implements MemberPartContract { } @override - Future ban( - {required Object serverId, - required Duration? deleteSince, - required Object memberId, - String? reason}) async { + Future ban({ + required Object serverId, + required Duration? deleteSince, + required Object memberId, + String? reason, + }) async { final req = Request.json( - endpoint: '/guilds/$serverId/bans/$memberId', - body: {'delete_message_seconds': deleteSince?.inSeconds}, - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/bans/$memberId', + headers: {DiscordHeader.auditLogReason(reason)}, + body: {'delete_message_seconds': deleteSince?.inSeconds}, + ); await _dataStore.requestBucket .query>(req) @@ -105,13 +114,15 @@ final class MemberPart implements MemberPartContract { } @override - Future kick( - {required Object serverId, - required Object memberId, - String? reason}) async { + Future kick({ + required Object serverId, + required Object memberId, + String? reason, + }) async { final req = Request.json( - endpoint: '/guilds/$serverId/members/$memberId', - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/members/$memberId', + headers: {DiscordHeader.auditLogReason(reason)}, + ); await _dataStore.requestBucket .query>(req) @@ -120,21 +131,26 @@ final class MemberPart implements MemberPartContract { @override Future getVoiceState( - Object serverId, Object userId, bool force) async { + Object serverId, + Object userId, + bool force, + ) async { final completer = Completer(); final String key = _marshaller.cacheKey.voiceState(serverId, userId); final cachedMember = await _marshaller.cache?.get(key); if (!force && cachedMember != null) { - final voiceState = - await _marshaller.serializers.voice.serialize(cachedMember); + final voiceState = await _marshaller.serializers.voice.serialize( + cachedMember, + ); completer.complete(voiceState); return completer.future; } - final req = - Request.json(endpoint: '/guilds/$serverId/voice-states/$userId'); + final req = Request.json( + endpoint: '/guilds/$serverId/voice-states/$userId', + ); final result = await _dataStore.requestBucket .query>(req) .run(_dataStore.client.get); diff --git a/lib/src/infrastructure/internals/datastore/parts/message_part.dart b/lib/src/infrastructure/internals/datastore/parts/message_part.dart index e416099e..d5182364 100644 --- a/lib/src/infrastructure/internals/datastore/parts/message_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/message_part.dart @@ -16,11 +16,13 @@ final class MessagePart implements MessagePartContract { HttpClientStatus get status => _dataStore.client.status; @override - Future> fetch(Object channelId, - {Snowflake? around, - Snowflake? before, - Snowflake? after, - int? limit}) async { + Future> fetch( + Object channelId, { + Snowflake? around, + Snowflake? before, + Snowflake? after, + int? limit, + }) async { final completer = Completer>(); final query = { @@ -31,28 +33,37 @@ final class MessagePart implements MessagePartContract { }; final req = Request.json( - endpoint: query.isEmpty - ? '/channels/$channelId/messages' - : '/channels/$channelId/messages?${query.entries.map((e) => '${e.key}=${e.value}').join('&')}'); + endpoint: query.isEmpty + ? '/channels/$channelId/messages' + : '/channels/$channelId/messages?${query.entries.map((e) => '${e.key}=${e.value}').join('&')}', + ); final response = await _dataStore.client.get(req); final messages = await switch (response.statusCode) { int() when status.isSuccess(response.statusCode) => Future.wait( - List.from(response.body) - .map((e) async => _marshaller.serializers.message.normalize(e))), + List.from(response.body).map( + (e) async => _marshaller.serializers.message.normalize(e), + ), + ), int() when status.isRateLimit(response.statusCode) => throw HttpException(response.bodyString), int() when status.isError(response.statusCode) => throw HttpException(response.bodyString), _ => throw Exception( - 'Unknown status code: ${response.statusCode} ${response.bodyString}') + 'Unknown status code: ${response.statusCode} ${response.bodyString}', + ) }; - final serializedMessages = await Future.wait(messages - .map((e) => _marshaller.serializers.message.serialize(e) as Future)); + final serializedMessages = await Future.wait( + messages.map( + (e) => _marshaller.serializers.message.serialize(e) as Future, + ), + ); - final Map results = serializedMessages.fold({}, - (previousValue, element) => {...previousValue, element.id: element}); + final Map results = serializedMessages.fold( + {}, + (previousValue, element) => {...previousValue, element.id: element}, + ); completer.complete(results); return completer.future; @@ -60,14 +71,18 @@ final class MessagePart implements MessagePartContract { @override Future get( - Object channelId, Object id, bool force) async { + Object channelId, + Object id, + bool force, + ) async { final completer = Completer(); final cacheKey = _marshaller.cacheKey.message(channelId, id); final cachedMessage = await _marshaller.cache?.get(cacheKey); if (!force && cachedMessage != null) { - final message = - await _marshaller.serializers.message.serialize(cachedMessage); + final message = await _marshaller.serializers.message.serialize( + cachedMessage, + ); completer.complete(message as T); return completer.future; @@ -84,11 +99,13 @@ final class MessagePart implements MessagePartContract { int() when status.isError(response.statusCode) => throw HttpException(response.bodyString), _ => throw Exception( - 'Unknown status code: ${response.statusCode} ${response.bodyString}') + 'Unknown status code: ${response.statusCode} ${response.bodyString}', + ) }; completer.complete( - await _marshaller.serializers.message.serialize(message) as T); + await _marshaller.serializers.message.serialize(message) as T, + ); return completer.future; } @@ -104,11 +121,14 @@ final class MessagePart implements MessagePartContract { final payload = {'flags': 32768, 'components': components}; final req = switch (files.isEmpty) { true => Request.json( - endpoint: '/channels/$channelId/messages/$id', body: payload), + endpoint: '/channels/$channelId/messages/$id', + body: payload, + ), false => Request.formData( endpoint: '/channels/$channelId/messages/$id', body: payload, - files: files), + files: files, + ), }; final response = await _dataStore.client.patch(req); @@ -121,7 +141,8 @@ final class MessagePart implements MessagePartContract { int() when status.isError(response.statusCode) => throw HttpException(response.bodyString), _ => throw Exception( - 'Unknown status code: ${response.statusCode} ${response.bodyString}') + 'Unknown status code: ${response.statusCode} ${response.bodyString}', + ) }; final message = await _marshaller.serializers.message.serialize(rawMessage); @@ -144,8 +165,9 @@ final class MessagePart implements MessagePartContract { @override Future crosspost(Snowflake channelId, Snowflake id) async { - final req = - Request.json(endpoint: '/channels/$channelId/messages/$id/crosspost'); + final req = Request.json( + endpoint: '/channels/$channelId/messages/$id/crosspost', + ); await _dataStore.client.post(req); } @@ -156,8 +178,11 @@ final class MessagePart implements MessagePartContract { } @override - Future send(String? guildId, String channelId, - MessageBuilder builder) async { + Future send( + String? guildId, + String channelId, + MessageBuilder builder, + ) async { final (components, files) = makeAttachmentFromBuilder(builder); final payload = {'flags': 32768, 'components': components}; @@ -167,7 +192,8 @@ final class MessagePart implements MessagePartContract { false => Request.formData( endpoint: '/channels/$channelId/messages', body: payload, - files: files), + files: files, + ), }; final response = await _dataStore.client.post(req); @@ -180,15 +206,19 @@ final class MessagePart implements MessagePartContract { int() when status.isError(response.statusCode) => throw HttpException(response.bodyString), _ => throw Exception( - 'Unknown status code: ${response.statusCode} ${response.bodyString}') + 'Unknown status code: ${response.statusCode} ${response.bodyString}', + ) }; return _marshaller.serializers.message.serialize(message) as Future; } @override - Future reply(Snowflake id, - Snowflake channelId, MessageBuilder builder) async { + Future reply( + Snowflake id, + Snowflake channelId, + MessageBuilder builder, + ) async { final (components, files) = makeAttachmentFromBuilder(builder); final payload = { @@ -215,8 +245,9 @@ final class MessagePart implements MessagePartContract { Future sendPoll(String channelId, Poll poll) async { final completer = Completer(); final req = Request.json( - endpoint: '/channels/$channelId/messages', - body: {'poll': _marshaller.serializers.poll.deserialize(poll)}); + endpoint: '/channels/$channelId/messages', + body: {'poll': _marshaller.serializers.poll.deserialize(poll)}, + ); final response = await _dataStore.client.post(req); final message = switch (response.statusCode) { @@ -227,11 +258,13 @@ final class MessagePart implements MessagePartContract { int() when status.isError(response.statusCode) => throw HttpException(response.bodyString), _ => throw Exception( - 'Unknown status code: ${response.statusCode} ${response.bodyString}') + 'Unknown status code: ${response.statusCode} ${response.bodyString}', + ) }; - final serializedMessage = - await _marshaller.serializers.message.serialize(message); + final serializedMessage = await _marshaller.serializers.message.serialize( + message, + ); completer.complete(serializedMessage as T); @@ -239,13 +272,18 @@ final class MessagePart implements MessagePartContract { } @override - Future getPollVotes(Snowflake? serverId, Snowflake channelId, - Snowflake messageId, int answerId) async { + Future getPollVotes( + Snowflake? serverId, + Snowflake channelId, + Snowflake messageId, + int answerId, + ) async { final completer = Completer(); final req = Request.json( - endpoint: - '/channels/${channelId.value}/polls/${messageId.value}/answers/$answerId'); + endpoint: + '/channels/${channelId.value}/polls/${messageId.value}/answers/$answerId', + ); final response = await _dataStore.client.get(req); response.body['id'] = answerId; @@ -261,11 +299,13 @@ final class MessagePart implements MessagePartContract { int() when status.isError(response.statusCode) => throw HttpException(response.bodyString), _ => throw Exception( - 'Unknown status code: ${response.statusCode} ${response.bodyString}') + 'Unknown status code: ${response.statusCode} ${response.bodyString}', + ) }; - final answer = - await _marshaller.serializers.pollAnswerVote.serialize(answerPayload); + final answer = await _marshaller.serializers.pollAnswerVote.serialize( + answerPayload, + ); completer.complete(answer); return completer.future; diff --git a/lib/src/infrastructure/internals/datastore/parts/reaction_part.dart b/lib/src/infrastructure/internals/datastore/parts/reaction_part.dart index 139c8400..4d8abf4c 100644 --- a/lib/src/infrastructure/internals/datastore/parts/reaction_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/reaction_part.dart @@ -14,12 +14,16 @@ final class ReactionPart implements ReactionPartContract { @override Future> getUsersForEmoji( - Object channelId, Object messageId, PartialEmoji emoji) async { + Object channelId, + Object messageId, + PartialEmoji emoji, + ) async { final value = emoji.id != null ? '${emoji.name}:${emoji.id}' : emoji.name; final complete = Completer>(); final req = Request.json( - endpoint: '/channels/$channelId/messages/$messageId/reactions/$value'); + endpoint: '/channels/$channelId/messages/$messageId/reactions/$value', + ); final result = await _dataStore.requestBucket .query>>(req) .run(_dataStore.client.get); @@ -29,18 +33,22 @@ final class ReactionPart implements ReactionPartContract { return _marshaller.serializers.user.serialize(raw); }).wait; - complete - .complete(users.asMap().map((key, value) => MapEntry(value.id, value))); + complete.complete( + users.asMap().map((key, value) => MapEntry(value.id, value)), + ); return complete.future; } @override Future add( - Object channelId, Object messageId, PartialEmoji emoji) async { + Object channelId, + Object messageId, + PartialEmoji emoji, + ) async { final value = emoji.id != null ? '${emoji.name}:${emoji.id}' : emoji.name; final req = Request.json( - endpoint: - '/channels/$channelId/messages/$messageId/reactions/$value/@me'); + endpoint: '/channels/$channelId/messages/$messageId/reactions/$value/@me', + ); await _dataStore.requestBucket .query>(req) .run(_dataStore.client.put); @@ -48,11 +56,14 @@ final class ReactionPart implements ReactionPartContract { @override Future remove( - Object channelId, Object messageId, PartialEmoji emoji) async { + Object channelId, + Object messageId, + PartialEmoji emoji, + ) async { final value = emoji.id != null ? '${emoji.name}:${emoji.id}' : emoji.name; final req = Request.json( - endpoint: - '/channels/$channelId/messages/$messageId/reactions/$value/@me'); + endpoint: '/channels/$channelId/messages/$messageId/reactions/$value/@me', + ); await _dataStore.requestBucket .query>(req) .run(_dataStore.client.delete); @@ -61,7 +72,8 @@ final class ReactionPart implements ReactionPartContract { @override Future removeAll(Object channelId, Object messageId) { final req = Request.json( - endpoint: '/channels/$channelId/messages/$messageId/reactions'); + endpoint: '/channels/$channelId/messages/$messageId/reactions', + ); return _dataStore.requestBucket .query>(req) .run(_dataStore.client.delete); @@ -69,22 +81,31 @@ final class ReactionPart implements ReactionPartContract { @override Future removeForEmoji( - Object channelId, Object messageId, PartialEmoji emoji) { + Object channelId, + Object messageId, + PartialEmoji emoji, + ) { final value = emoji.id != null ? '${emoji.name}:${emoji.id}' : emoji.name; final req = Request.json( - endpoint: '/channels/$channelId/messages/$messageId/reactions/$value'); + endpoint: '/channels/$channelId/messages/$messageId/reactions/$value', + ); return _dataStore.requestBucket .query>(req) .run(_dataStore.client.delete); } @override - Future removeForUser(Object userId, Object channelId, Object messageId, - PartialEmoji emoji) async { + Future removeForUser( + Object userId, + Object channelId, + Object messageId, + PartialEmoji emoji, + ) async { final value = emoji.id != null ? '${emoji.name}:${emoji.id}' : emoji.name; final req = Request.json( - endpoint: - '/channels/$channelId/messages/$messageId/reactions/$value/$userId'); + endpoint: + '/channels/$channelId/messages/$messageId/reactions/$value/$userId', + ); await _dataStore.requestBucket .query>(req) .run(_dataStore.client.delete); diff --git a/lib/src/infrastructure/internals/datastore/parts/role_part.dart b/lib/src/infrastructure/internals/datastore/parts/role_part.dart index dd3a3320..84f92f67 100644 --- a/lib/src/infrastructure/internals/datastore/parts/role_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/role_part.dart @@ -32,8 +32,9 @@ final class RolePart implements RolePartContract { return _marshaller.serializers.role.serialize(raw); }).wait; - completer - .complete(roles.asMap().map((_, value) => MapEntry(value.id, value))); + completer.complete( + roles.asMap().map((_, value) => MapEntry(value.id, value)), + ); return completer.future; } @@ -73,15 +74,17 @@ final class RolePart implements RolePartContract { String? reason) async { final completer = Completer(); - final req = Request.json(endpoint: '/guilds/$serverId/roles', body: { - 'name': name, - 'permissions': listToBitfield(permissions), - 'color': color.toInt(), - 'hoist': hoist, - 'mentionable': mentionable, - }, headers: { - DiscordHeader.auditLogReason(reason) - }); + final req = Request.json( + endpoint: '/guilds/$serverId/roles', + headers: {DiscordHeader.auditLogReason(reason)}, + body: { + 'name': name, + 'permissions': listToBitfield(permissions), + 'color': color.toInt(), + 'hoist': hoist, + 'mentionable': mentionable, + }, + ); final result = await _dataStore.requestBucket .query>(req) @@ -98,14 +101,16 @@ final class RolePart implements RolePartContract { } @override - Future add( - {required Object memberId, - required Object serverId, - required Object roleId, - required String? reason}) async { + Future add({ + required Object memberId, + required Object serverId, + required Object roleId, + required String? reason, + }) async { final req = Request.json( - endpoint: '/guilds/$serverId/members/$memberId/roles/$roleId', - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/members/$memberId/roles/$roleId', + headers: {DiscordHeader.auditLogReason(reason)}, + ); await _dataStore.requestBucket .query>(req) @@ -113,14 +118,16 @@ final class RolePart implements RolePartContract { } @override - Future remove( - {required Object memberId, - required Object serverId, - required Object roleId, - required String? reason}) async { + Future remove({ + required Object memberId, + required Object serverId, + required Object roleId, + required String? reason, + }) async { final req = Request.json( - endpoint: '/guilds/$serverId/members/$memberId/roles/$roleId', - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/members/$memberId/roles/$roleId', + headers: {DiscordHeader.auditLogReason(reason)}, + ); await _dataStore.requestBucket .query>(req) @@ -128,15 +135,17 @@ final class RolePart implements RolePartContract { } @override - Future sync( - {required Object memberId, - required Object serverId, - required List roleIds, - required String? reason}) async { + Future sync({ + required Object memberId, + required Object serverId, + required List roleIds, + required String? reason, + }) async { final req = Request.json( - endpoint: '/guilds/$serverId/members/$memberId', - body: {'roles': roleIds}, - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/members/$memberId', + headers: {DiscordHeader.auditLogReason(reason)}, + body: {'roles': roleIds}, + ); await _dataStore.requestBucket .query>(req) @@ -144,16 +153,18 @@ final class RolePart implements RolePartContract { } @override - Future update( - {required Object id, - required Object serverId, - required Map payload, - required String? reason}) async { + Future update({ + required Object id, + required Object serverId, + required Map payload, + required String? reason, + }) async { final completer = Completer(); final req = Request.json( - endpoint: '/guilds/$serverId/roles/$id', - body: payload, - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/roles/$id', + headers: {DiscordHeader.auditLogReason(reason)}, + body: payload, + ); final result = await _dataStore.requestBucket .query>(req) @@ -170,13 +181,15 @@ final class RolePart implements RolePartContract { } @override - Future delete( - {required Object id, - required Object guildId, - required String? reason}) async { + Future delete({ + required Object id, + required Object guildId, + required String? reason, + }) async { final req = Request.json( - endpoint: '/guilds/$guildId/roles/$id', - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$guildId/roles/$id', + headers: {DiscordHeader.auditLogReason(reason)}, + ); await _dataStore.requestBucket .query>(req) diff --git a/lib/src/infrastructure/internals/datastore/parts/rules_part.dart b/lib/src/infrastructure/internals/datastore/parts/rules_part.dart index f0f565c8..224c7e51 100644 --- a/lib/src/infrastructure/internals/datastore/parts/rules_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/rules_part.dart @@ -4,8 +4,6 @@ import 'package:mineral/api.dart'; import 'package:mineral/container.dart'; import 'package:mineral/contracts.dart'; import 'package:mineral/services.dart'; -import 'package:mineral/src/api/server/moderation/action.dart'; -import 'package:mineral/src/api/server/moderation/auto_moderation_rule.dart'; import 'package:mineral/src/api/server/moderation/enums/auto_moderation_event_type.dart'; import 'package:mineral/src/api/server/moderation/enums/trigger_type.dart'; import 'package:mineral/src/api/server/moderation/trigger_metadata.dart'; @@ -19,10 +17,15 @@ final class RulesPart implements RulesPartContract { HttpClientStatus get status => _dataStore.client.status; @override - Future> fetch(Object serverId, bool force) async { + Future> fetch( + Object serverId, + bool force, + ) async { final completer = Completer>(); - final req = Request.json(endpoint: '/guilds/$serverId/auto-moderation/rules'); + final req = Request.json( + endpoint: '/guilds/$serverId/auto-moderation/rules', + ); final result = await _dataStore.requestBucket .query>(req) .run(_dataStore.client.get); @@ -32,14 +35,19 @@ final class RulesPart implements RulesPartContract { return _marshaller.serializers.rules.serialize(raw); }).wait; - completer - .complete(rules.asMap().map((_, value) => MapEntry(value.id!, value))); + completer.complete( + rules.asMap().map((_, value) => MapEntry(value.id!, value)), + ); return completer.future; } @override - Future get(Object serverId, Object rulesId, bool force) async { + Future get( + Object serverId, + Object rulesId, + bool force, + ) async { final completer = Completer(); final String key = _marshaller.cacheKey.serverRules(serverId, rulesId); @@ -51,7 +59,9 @@ final class RulesPart implements RulesPartContract { return completer.future; } - final req = Request.json(endpoint: '/guilds/$serverId/auto-moderation/rules/$rulesId'); + final req = Request.json( + endpoint: '/guilds/$serverId/auto-moderation/rules/$rulesId', + ); final result = await _dataStore.requestBucket .query>(req) .run(_dataStore.client.get); @@ -76,31 +86,38 @@ final class RulesPart implements RulesPartContract { List exemptChannels = const [], bool enabled = true, String? reason, -}) async { + }) async { final completer = Completer(); - final req = Request.json(endpoint: '/guilds/$serverId/auto-moderation/rules', body: { - 'name': name, - 'event_type': eventType.value, - 'trigger_type': triggerType.value, - 'trigger_metadata': triggerMetadata != null ? { - 'keyword_filter': triggerMetadata.keywordFilter, - 'regex_patterns': triggerMetadata.regexPatterns, - 'presets': triggerMetadata.presets.map((e) => e.value).toList(), - 'allow_list': triggerMetadata.allowList, - 'mention_total_limit': triggerMetadata.mentionTotalLimit, - 'mention_raid_protection_enabled': triggerMetadata.mentionRaidProtectionEnabled, - } : null, - 'actions': actions.map((action) => { - 'type': action.type.value, - if (action.metadata != null) 'metadata': action.metadata, - }).toList(), - 'exempt_roles': exemptRoles.map((e) => e.toString()).toList(), - 'exempt_channels': exemptChannels.map((e) => e.toString()).toList(), - 'enabled': enabled, - }, headers: { - DiscordHeader.auditLogReason(reason) - }); + final req = Request.json( + endpoint: '/guilds/$serverId/auto-moderation/rules', + headers: {DiscordHeader.auditLogReason(reason)}, + body: { + 'name': name, + 'event_type': eventType.value, + 'trigger_type': triggerType.value, + 'trigger_metadata': triggerMetadata != null + ? { + 'keyword_filter': triggerMetadata.keywordFilter, + 'regex_patterns': triggerMetadata.regexPatterns, + 'presets': triggerMetadata.presets.map((e) => e.value).toList(), + 'allow_list': triggerMetadata.allowList, + 'mention_total_limit': triggerMetadata.mentionTotalLimit, + 'mention_raid_protection_enabled': + triggerMetadata.mentionRaidProtectionEnabled, + } + : null, + 'actions': actions + .map((action) => { + 'type': action.type.value, + if (action.metadata != null) 'metadata': action.metadata, + }) + .toList(), + 'exempt_roles': exemptRoles.map((e) => e.toString()).toList(), + 'exempt_channels': exemptChannels.map((e) => e.toString()).toList(), + 'enabled': enabled, + }, + ); final result = await _dataStore.requestBucket .query>(req) .run(_dataStore.client.post); @@ -117,17 +134,19 @@ final class RulesPart implements RulesPartContract { } @override - Future update( - {required Object id, - required Object serverId, - required Map payload, - required String? reason}) async { + Future update({ + required Object id, + required Object serverId, + required Map payload, + required String? reason, + }) async { final completer = Completer(); final req = Request.json( - endpoint: '/guilds/$serverId/auto-moderation/rules/$id', - body: payload, - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/auto-moderation/rules/$id', + headers: {DiscordHeader.auditLogReason(reason)}, + body: payload, + ); final result = await _dataStore.requestBucket .query>(req) @@ -146,8 +165,9 @@ final class RulesPart implements RulesPartContract { @override Future delete(Object serverId, Object ruleId, {String? reason}) async { final req = Request.json( - endpoint: '/guilds/$serverId/auto-moderation/rules/$ruleId', - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$serverId/auto-moderation/rules/$ruleId', + headers: {DiscordHeader.auditLogReason(reason)}, + ); await _dataStore.requestBucket .query>(req) diff --git a/lib/src/infrastructure/internals/datastore/parts/server_part.dart b/lib/src/infrastructure/internals/datastore/parts/server_part.dart index 7804f8a1..1abd40c3 100644 --- a/lib/src/infrastructure/internals/datastore/parts/server_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/server_part.dart @@ -20,8 +20,9 @@ final class ServerPart implements ServerPartContract { final cachedServer = await _marshaller.cache?.get(key); if (!force && cachedServer != null) { - final server = - await _marshaller.serializers.server.serialize(cachedServer); + final server = await _marshaller.serializers.server.serialize( + cachedServer, + ); completer.complete(server); return completer.future; @@ -41,24 +42,30 @@ final class ServerPart implements ServerPartContract { @override Future update( - Object id, Map payload, String? reason) async { + Object id, + Map payload, + String? reason, + ) async { final req = Request.json( - endpoint: '/guilds/$id', - body: payload, - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$id', + body: payload, + headers: {DiscordHeader.auditLogReason(reason)}, + ); final response = await _dataStore.client.patch(req); - final rawServer = - await _marshaller.serializers.server.normalize(response.body); + final rawServer = await _marshaller.serializers.server.normalize( + response.body, + ); return _marshaller.serializers.server.serialize(rawServer); } @override Future delete(Object id, String? reason) async { final req = Request.json( - endpoint: '/guilds/$id', - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/guilds/$id', + headers: {DiscordHeader.auditLogReason(reason)}, + ); await _dataStore.client.delete(req); } diff --git a/lib/src/infrastructure/internals/datastore/parts/sticker_part.dart b/lib/src/infrastructure/internals/datastore/parts/sticker_part.dart index 567b26b9..862c7424 100644 --- a/lib/src/infrastructure/internals/datastore/parts/sticker_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/sticker_part.dart @@ -28,7 +28,8 @@ final class StickerPart implements StickerPartContract { }).wait; completer.complete( - stickers.asMap().map((_, value) => MapEntry(value.id, value))); + stickers.asMap().map((_, value) => MapEntry(value.id, value)), + ); return completer.future; } @@ -39,8 +40,9 @@ final class StickerPart implements StickerPartContract { final cachedSticker = await _marshaller.cache?.get(key); if (!force && cachedSticker != null) { - final sticker = - await _marshaller.serializers.sticker.serialize(cachedSticker); + final sticker = await _marshaller.serializers.sticker.serialize( + cachedSticker, + ); completer.complete(sticker); return completer.future; diff --git a/lib/src/infrastructure/internals/datastore/parts/thread_part.dart b/lib/src/infrastructure/internals/datastore/parts/thread_part.dart index f79c7ff2..ba75e827 100644 --- a/lib/src/infrastructure/internals/datastore/parts/thread_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/thread_part.dart @@ -29,16 +29,21 @@ final class ThreadPart implements ThreadPartContract { return _marshaller.serializers.channels.serialize(raw); }).wait; - completer.complete(ThreadResult(channels - .asMap() - .map((key, value) => MapEntry(value.id, value as ServerChannel)))); + completer.complete( + ThreadResult( + channels + .asMap() + .map((key, value) => MapEntry(value.id, value as ServerChannel)), + ), + ); return completer.future; } @override Future> fetchPublicArchived( - Object channelId) async { + Object channelId, + ) async { final completer = Completer>(); final req = Request.json(endpoint: '/channels/$channelId/archived/public'); @@ -51,16 +56,19 @@ final class ThreadPart implements ThreadPartContract { return _marshaller.serializers.channels.serialize(raw); }).wait; - completer.complete(channels - .asMap() - .map((key, value) => MapEntry(value.id, value as PublicThreadChannel))); + completer.complete( + channels.asMap().map( + (key, value) => MapEntry(value.id, value as PublicThreadChannel), + ), + ); return completer.future; } @override Future> fetchPrivateArchived( - Object channelId) async { + Object channelId, + ) async { final completer = Completer>(); final req = Request.json(endpoint: '/channels/$channelId/archived/private'); @@ -73,22 +81,29 @@ final class ThreadPart implements ThreadPartContract { return _marshaller.serializers.channels.serialize(raw); }).wait; - completer.complete(channels.asMap().map( - (key, value) => MapEntry(value.id, value as PrivateThreadChannel))); + completer.complete( + channels.asMap().map( + (key, value) => MapEntry(value.id, value as PrivateThreadChannel), + ), + ); return completer.future; } @override Future createWithoutMessage( - Object? serverId, Object? channelId, ThreadChannelBuilder builder, - {String? reason}) async { + Object? serverId, + Object? channelId, + ThreadChannelBuilder builder, { + String? reason, + }) async { final completer = Completer(); final req = Request.json( - endpoint: '/channels/$channelId/threads', - body: builder.build(), - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/channels/$channelId/threads', + headers: {DiscordHeader.auditLogReason(reason)}, + body: builder.build(), + ); final result = await _dataStore.requestBucket .query>(req) @@ -105,15 +120,20 @@ final class ThreadPart implements ThreadPartContract { } @override - Future createFromMessage(Object? serverId, - Object? channelId, Object? messageId, ThreadChannelBuilder builder, - {String? reason}) async { + Future createFromMessage( + Object? serverId, + Object? channelId, + Object? messageId, + ThreadChannelBuilder builder, { + String? reason, + }) async { final completer = Completer(); final req = Request.json( - endpoint: '/channels/$channelId/messages/$messageId/threads', - body: builder.build(), - headers: {DiscordHeader.auditLogReason(reason)}); + endpoint: '/channels/$channelId/messages/$messageId/threads', + headers: {DiscordHeader.auditLogReason(reason)}, + body: builder.build(), + ); final result = await _dataStore.requestBucket .query>(req) diff --git a/lib/src/infrastructure/internals/datastore/parts/user_part.dart b/lib/src/infrastructure/internals/datastore/parts/user_part.dart index 8876f6f6..87b4851c 100644 --- a/lib/src/infrastructure/internals/datastore/parts/user_part.dart +++ b/lib/src/infrastructure/internals/datastore/parts/user_part.dart @@ -19,7 +19,9 @@ final class UserPart implements UserPartContract { final cachedUser = await _marshaller.cache?.get(key); if (!force && cachedUser != null) { - final user = await _marshaller.serializers.user.serialize(cachedUser); + final user = await _marshaller.serializers.user.serialize( + cachedUser, + ); completer.complete(user); return completer.future; From 6bc2291443c3ba69082761f866444408ca13cea2 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 12:13:44 +0100 Subject: [PATCH 75/93] style: improve code formatting and readability in request_bucket.dart --- .../internals/datastore/request_bucket.dart | 48 ++++++++++++++----- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/lib/src/infrastructure/internals/datastore/request_bucket.dart b/lib/src/infrastructure/internals/datastore/request_bucket.dart index 707fa609..23fd8419 100644 --- a/lib/src/infrastructure/internals/datastore/request_bucket.dart +++ b/lib/src/infrastructure/internals/datastore/request_bucket.dart @@ -6,9 +6,16 @@ import 'package:mineral/contracts.dart'; import 'package:mineral/services.dart'; typedef RequestAction = Future> Function( - RequestContract request); - -enum QueueableRequestStatus { init, success, error, rateLimit, pending } + RequestContract request, +); + +enum QueueableRequestStatus { + init, + success, + error, + rateLimit, + pending, +} final class QueueableRequest { LoggerContract get _logger => ioc.resolve(); @@ -25,12 +32,19 @@ final class QueueableRequest { DateTime? retryAt; QueueableRequestStatus status = QueueableRequestStatus.init; - final T Function(Response)? _onError; + final T Function(Response)? _onError; final Function(T)? _onSuccess; final Function(Duration)? _onRateLimit; - QueueableRequest(this.bucket, this.query, this.request, this.completer, - this._onError, this._onSuccess, this._onRateLimit); + QueueableRequest( + this.bucket, + this.query, + this.request, + this.completer, + this._onError, + this._onSuccess, + this._onRateLimit, + ); Future execute() async { status = QueueableRequestStatus.pending; @@ -69,7 +83,8 @@ final class QueueableRequest { bucket.queue.remove(this); _onError?.call(response); completer.completeError( - _onError?.call(response) ?? HttpException(response.bodyString)); + _onError?.call(response) ?? HttpException(response.bodyString), + ); } } } @@ -88,13 +103,22 @@ final class RequestHandler { RequestHandler(this._bucket, this._request); - Future run(Future> Function(RequestContract request) action, - {Function(T)? onSuccess, - T Function(Response)? onError, - Function(Duration)? onRateLimit}) async { + Future run( + Future> Function(RequestContract request) action, { + Function(T)? onSuccess, + T Function(Response)? onError, + Function(Duration)? onRateLimit, + }) async { final completer = Completer(); final request = QueueableRequest( - _bucket, _request, action, completer, onError, onSuccess, onRateLimit); + _bucket, + _request, + action, + completer, + onError, + onSuccess, + onRateLimit, + ); _bucket.queue.add(request); await request.execute(); From 763af076f1ec8f208dfebaaca136ee7ce186984d Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 12:13:50 +0100 Subject: [PATCH 76/93] style: improve code formatting and readability in HttpEndpoint and RequestExecutor constructors --- lib/src/infrastructure/internals/http/http_endpoint.dart | 6 ++++-- lib/src/infrastructure/internals/http/request_executor.dart | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/src/infrastructure/internals/http/http_endpoint.dart b/lib/src/infrastructure/internals/http/http_endpoint.dart index 36b8332a..bf41840d 100644 --- a/lib/src/infrastructure/internals/http/http_endpoint.dart +++ b/lib/src/infrastructure/internals/http/http_endpoint.dart @@ -7,8 +7,10 @@ class HttpEndpoint { factory HttpEndpoint.getServerChannelList({required String guildId}) => HttpEndpoint('GET', '/guilds/$guildId/channels'); - factory HttpEndpoint.getServerChannel( - {required String guildId, required String channelId}) => + factory HttpEndpoint.getServerChannel({ + required String guildId, + required String channelId, + }) => HttpEndpoint('GET', '/guilds/$guildId/channels/$channelId'); @override diff --git a/lib/src/infrastructure/internals/http/request_executor.dart b/lib/src/infrastructure/internals/http/request_executor.dart index 14d5d4f6..539fb725 100644 --- a/lib/src/infrastructure/internals/http/request_executor.dart +++ b/lib/src/infrastructure/internals/http/request_executor.dart @@ -8,7 +8,10 @@ final class RequestExecutor { final HttpClientContract client; final LoggerContract logger; - RequestExecutor({required this.client, required this.logger}); + RequestExecutor({ + required this.client, + required this.logger, + }); Future send(RequestContract request) async { final response = await client.send(request); From 863216fd53af9cf2cc666f7ebb25a7293cd4a41f Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 12:13:54 +0100 Subject: [PATCH 77/93] style: improve code formatting and readability in Interaction class methods --- .../internals/interactions/interaction.dart | 62 ++++++++++++------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/lib/src/infrastructure/internals/interactions/interaction.dart b/lib/src/infrastructure/internals/interactions/interaction.dart index 5b1c4071..544410ed 100644 --- a/lib/src/infrastructure/internals/interactions/interaction.dart +++ b/lib/src/infrastructure/internals/interactions/interaction.dart @@ -12,21 +12,30 @@ final class Interaction implements InteractionContract { Interaction(this._token, this._id); @override - Future reply( - {required MessageBuilder builder, - bool ephemeral = false}) async { - await _datastore.interaction - .replyInteraction(_id, _token, builder, ephemeral); - + Future reply({ + required MessageBuilder builder, + bool ephemeral = false, + }) async { + await _datastore.interaction.replyInteraction( + _id, + _token, + builder, + ephemeral, + ); return this; } @override - Future editReply( - {required MessageBuilder builder, - bool ephemeral = false}) async { - await _datastore.interaction - .editInteraction(_botId, _token, builder, ephemeral); + Future editReply({ + required MessageBuilder builder, + bool ephemeral = false, + }) async { + await _datastore.interaction.editInteraction( + _botId, + _token, + builder, + ephemeral, + ); return this; } @@ -41,20 +50,31 @@ final class Interaction implements InteractionContract { } @override - Future followup( - {required MessageBuilder builder, - bool ephemeral = false}) async { - await _datastore.interaction - .createFollowup(_botId, _token, builder, ephemeral); + Future followup({ + required MessageBuilder builder, + bool ephemeral = false, + }) async { + await _datastore.interaction.createFollowup( + _botId, + _token, + builder, + ephemeral, + ); return this; } @override - Future editFollowup( - {required MessageBuilder builder, - bool ephemeral = false}) async { - await _datastore.interaction - .editFollowup(_botId, _token, _id, builder, ephemeral); + Future editFollowup({ + required MessageBuilder builder, + bool ephemeral = false, + }) async { + await _datastore.interaction.editFollowup( + _botId, + _token, + _id, + builder, + ephemeral, + ); return this; } From 7cff7a9dd797914961b2a49e45cd92520bfbbf55 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 12:14:01 +0100 Subject: [PATCH 78/93] style: improve code formatting and readability in channel factory classes --- .../channels/private_channel_factory.dart | 12 ++++-- .../server_announcement_channel_factory.dart | 19 +++++++--- .../server_category_channel_factory.dart | 19 +++++++--- .../server_forum_channel_factory.dart | 37 +++++++++++++------ .../server_public_thread_channel_factory.dart | 12 ++++-- .../server_stage_channel_factory.dart | 19 +++++++--- .../channels/server_text_channel_factory.dart | 19 +++++++--- .../server_voice_channel_factory.dart | 19 +++++++--- .../channels/unknown_channel_factory.dart | 12 ++++-- 9 files changed, 123 insertions(+), 45 deletions(-) diff --git a/lib/src/infrastructure/internals/marshaller/factories/channels/private_channel_factory.dart b/lib/src/infrastructure/internals/marshaller/factories/channels/private_channel_factory.dart index ab67de4c..3a682634 100644 --- a/lib/src/infrastructure/internals/marshaller/factories/channels/private_channel_factory.dart +++ b/lib/src/infrastructure/internals/marshaller/factories/channels/private_channel_factory.dart @@ -11,14 +11,18 @@ final class PrivateChannelFactory @override Future serialize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final properties = await ChannelProperties.serializeCache(marshaller, json); return PrivateChannel(properties); } @override Future> normalize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final payload = { 'id': json['id'], 'type': json['type'], @@ -37,7 +41,9 @@ final class PrivateChannelFactory @override Map deserialize( - MarshallerContract marshaller, PrivateChannel channel) { + MarshallerContract marshaller, + PrivateChannel channel, + ) { return { 'id': channel.id.value, 'type': channel.type.value, diff --git a/lib/src/infrastructure/internals/marshaller/factories/channels/server_announcement_channel_factory.dart b/lib/src/infrastructure/internals/marshaller/factories/channels/server_announcement_channel_factory.dart index 8ad7f721..bfa8cd8c 100644 --- a/lib/src/infrastructure/internals/marshaller/factories/channels/server_announcement_channel_factory.dart +++ b/lib/src/infrastructure/internals/marshaller/factories/channels/server_announcement_channel_factory.dart @@ -13,7 +13,9 @@ final class ServerAnnouncementChannelFactory @override Future> normalize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final payload = { 'id': json['id'], 'type': json['type'], @@ -34,17 +36,24 @@ final class ServerAnnouncementChannelFactory @override Future serialize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final properties = await ChannelProperties.serializeCache(marshaller, json); return ServerAnnouncementChannel(properties); } @override Future> deserialize( - MarshallerContract marshaller, ServerAnnouncementChannel channel) async { - final permissions = await Future.wait(channel.permissions.map( + MarshallerContract marshaller, + ServerAnnouncementChannel channel, + ) async { + final permissions = await Future.wait( + channel.permissions.map( (element) async => marshaller.serializers.channelPermissionOverwrite - .deserialize(element))); + .deserialize(element), + ), + ); return { 'id': channel.id.value, diff --git a/lib/src/infrastructure/internals/marshaller/factories/channels/server_category_channel_factory.dart b/lib/src/infrastructure/internals/marshaller/factories/channels/server_category_channel_factory.dart index c6f2f4cd..625a2e1b 100644 --- a/lib/src/infrastructure/internals/marshaller/factories/channels/server_category_channel_factory.dart +++ b/lib/src/infrastructure/internals/marshaller/factories/channels/server_category_channel_factory.dart @@ -11,7 +11,9 @@ final class ServerCategoryChannelFactory @override Future> normalize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final payload = { 'id': json['id'], 'type': json['type'], @@ -31,17 +33,24 @@ final class ServerCategoryChannelFactory @override Future serialize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final properties = await ChannelProperties.serializeCache(marshaller, json); return ServerCategoryChannel(properties); } @override Future> deserialize( - MarshallerContract marshaller, ServerCategoryChannel channel) async { - final permissions = await Future.wait(channel.permissions.map( + MarshallerContract marshaller, + ServerCategoryChannel channel, + ) async { + final permissions = await Future.wait( + channel.permissions.map( (element) async => marshaller.serializers.channelPermissionOverwrite - .deserialize(element))); + .deserialize(element), + ), + ); return { 'id': channel.id.value, diff --git a/lib/src/infrastructure/internals/marshaller/factories/channels/server_forum_channel_factory.dart b/lib/src/infrastructure/internals/marshaller/factories/channels/server_forum_channel_factory.dart index 7ab3dab6..b566ae93 100644 --- a/lib/src/infrastructure/internals/marshaller/factories/channels/server_forum_channel_factory.dart +++ b/lib/src/infrastructure/internals/marshaller/factories/channels/server_forum_channel_factory.dart @@ -15,7 +15,9 @@ final class ServerForumChannelFactory @override Future> normalize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final payload = { 'id': json['id'], 'type': json['type'], @@ -35,27 +37,40 @@ final class ServerForumChannelFactory @override Future serialize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final properties = await ChannelProperties.serializeCache(marshaller, json); return ServerForumChannel( properties, sortOrder: Helper.createOrNull( - field: json['default_sort_order'], - fn: () => - findInEnum(SortOrderType.values, json['default_sort_order'])), + field: json['default_sort_order'], + fn: () => findInEnum( + SortOrderType.values, + json['default_sort_order'], + ), + ), layoutType: Helper.createOrNull( - field: json['default_forum_layout'], - fn: () => - findInEnum(ForumLayoutType.values, json['default_forum_layout'])), + field: json['default_forum_layout'], + fn: () => findInEnum( + ForumLayoutType.values, + json['default_forum_layout'], + ), + ), ); } @override Future> deserialize( - MarshallerContract marshaller, ServerForumChannel channel) async { - final permissions = await Future.wait(channel.permissions.map( + MarshallerContract marshaller, + ServerForumChannel channel, + ) async { + final permissions = await Future.wait( + channel.permissions.map( (element) async => marshaller.serializers.channelPermissionOverwrite - .deserialize(element))); + .deserialize(element), + ), + ); return { 'id': channel.id.value, diff --git a/lib/src/infrastructure/internals/marshaller/factories/channels/server_public_thread_channel_factory.dart b/lib/src/infrastructure/internals/marshaller/factories/channels/server_public_thread_channel_factory.dart index d832a432..f60aaa85 100644 --- a/lib/src/infrastructure/internals/marshaller/factories/channels/server_public_thread_channel_factory.dart +++ b/lib/src/infrastructure/internals/marshaller/factories/channels/server_public_thread_channel_factory.dart @@ -12,7 +12,9 @@ final class ServerPublicThreadChannelFactory @override Future> normalize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final payload = { 'id': json['id'], 'type': json['type'], @@ -46,7 +48,9 @@ final class ServerPublicThreadChannelFactory @override Future serialize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final properties = await ChannelProperties.serializeCache(marshaller, json); final metadata = ThreadMetadata.fromMap(json); @@ -55,7 +59,9 @@ final class ServerPublicThreadChannelFactory @override Future> deserialize( - MarshallerContract marshaller, PublicThreadChannel channel) async { + MarshallerContract marshaller, + PublicThreadChannel channel, + ) async { return { 'id': channel.id.value, 'type': channel.type.value, diff --git a/lib/src/infrastructure/internals/marshaller/factories/channels/server_stage_channel_factory.dart b/lib/src/infrastructure/internals/marshaller/factories/channels/server_stage_channel_factory.dart index 11ebc042..f2138ad3 100644 --- a/lib/src/infrastructure/internals/marshaller/factories/channels/server_stage_channel_factory.dart +++ b/lib/src/infrastructure/internals/marshaller/factories/channels/server_stage_channel_factory.dart @@ -11,7 +11,9 @@ final class ServerStageChannelFactory @override Future> normalize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final payload = { 'id': json['id'], 'type': json['type'], @@ -31,17 +33,24 @@ final class ServerStageChannelFactory @override Future serialize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final properties = await ChannelProperties.serializeCache(marshaller, json); return ServerStageChannel(properties); } @override Future> deserialize( - MarshallerContract marshaller, ServerStageChannel channel) async { - final permissions = await Future.wait(channel.permissions.map( + MarshallerContract marshaller, + ServerStageChannel channel, + ) async { + final permissions = await Future.wait( + channel.permissions.map( (element) async => marshaller.serializers.channelPermissionOverwrite - .deserialize(element))); + .deserialize(element), + ), + ); return { 'id': channel.id.value, diff --git a/lib/src/infrastructure/internals/marshaller/factories/channels/server_text_channel_factory.dart b/lib/src/infrastructure/internals/marshaller/factories/channels/server_text_channel_factory.dart index 302f7034..11fc1086 100644 --- a/lib/src/infrastructure/internals/marshaller/factories/channels/server_text_channel_factory.dart +++ b/lib/src/infrastructure/internals/marshaller/factories/channels/server_text_channel_factory.dart @@ -11,7 +11,9 @@ final class ServerTextChannelFactory @override Future> normalize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final payload = { 'id': json['id'], 'type': json['type'], @@ -31,17 +33,24 @@ final class ServerTextChannelFactory @override Future serialize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final properties = await ChannelProperties.serializeCache(marshaller, json); return ServerTextChannel(properties); } @override Future> deserialize( - MarshallerContract marshaller, ServerTextChannel channel) async { - final permissions = await Future.wait(channel.permissions.map( + MarshallerContract marshaller, + ServerTextChannel channel, + ) async { + final permissions = await Future.wait( + channel.permissions.map( (element) async => marshaller.serializers.channelPermissionOverwrite - .deserialize(element))); + .deserialize(element), + ), + ); return { 'id': channel.id.value, diff --git a/lib/src/infrastructure/internals/marshaller/factories/channels/server_voice_channel_factory.dart b/lib/src/infrastructure/internals/marshaller/factories/channels/server_voice_channel_factory.dart index 1a661ed1..8d34246b 100644 --- a/lib/src/infrastructure/internals/marshaller/factories/channels/server_voice_channel_factory.dart +++ b/lib/src/infrastructure/internals/marshaller/factories/channels/server_voice_channel_factory.dart @@ -11,7 +11,9 @@ final class ServerVoiceChannelFactory @override Future> normalize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final payload = { 'id': json['id'], 'type': json['type'], @@ -30,17 +32,24 @@ final class ServerVoiceChannelFactory @override Future serialize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final properties = await ChannelProperties.serializeCache(marshaller, json); return ServerVoiceChannel(properties); } @override Future> deserialize( - MarshallerContract marshaller, ServerVoiceChannel channel) async { - final permissions = await Future.wait(channel.permissions.map( + MarshallerContract marshaller, + ServerVoiceChannel channel, + ) async { + final permissions = await Future.wait( + channel.permissions.map( (element) async => marshaller.serializers.channelPermissionOverwrite - .deserialize(element))); + .deserialize(element), + ), + ); return { 'id': channel.id.value, diff --git a/lib/src/infrastructure/internals/marshaller/factories/channels/unknown_channel_factory.dart b/lib/src/infrastructure/internals/marshaller/factories/channels/unknown_channel_factory.dart index a478bc47..98ea79bb 100644 --- a/lib/src/infrastructure/internals/marshaller/factories/channels/unknown_channel_factory.dart +++ b/lib/src/infrastructure/internals/marshaller/factories/channels/unknown_channel_factory.dart @@ -9,7 +9,9 @@ final class UnknownChannelFactory @override Future> normalize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { final payload = { 'id': json['id'], 'type': json['type'], @@ -24,7 +26,9 @@ final class UnknownChannelFactory @override Future serialize( - MarshallerContract marshaller, Map json) async { + MarshallerContract marshaller, + Map json, + ) async { return UnknownChannel( id: Snowflake.parse(json['id']), name: json['name'], @@ -33,7 +37,9 @@ final class UnknownChannelFactory @override Future> deserialize( - MarshallerContract marshaller, UnknownChannel channel) async { + MarshallerContract marshaller, + UnknownChannel channel, + ) async { return { 'id': channel.id.value, 'type': channel.type.value, From d04fcd01dd0d61b2efd6e31e74b517e61c40a1df Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 12:14:10 +0100 Subject: [PATCH 79/93] style: improve code formatting and readability in various serializer classes --- ...annel_permission_overwrite_serializer.dart | 6 +- .../serializers/channel_serializer.dart | 18 +++-- .../serializers/embed_serializer.dart | 33 ++++---- .../serializers/emoji_serializer.dart | 18 +++-- .../serializers/invite_serializer.dart | 11 ++- .../serializers/member_serializer.dart | 71 ++++++++++------- .../message_reaction_serializer.dart | 21 ++--- .../serializers/message_serializer.dart | 6 +- .../poll_answer_vote_serializer.dart | 13 ++-- .../serializers/poll_serializer.dart | 21 +++-- .../serializers/role_serializer.dart | 6 +- .../serializers/rule_serializer.dart | 57 +++++++------- .../serializers/server_serializer.dart | 76 ++++++++++++------- .../serializers/sticker_serializer.dart | 14 ++-- .../serializers/user_serializer.dart | 37 ++++++--- .../serializers/voice_state_serializer.dart | 36 ++++----- 16 files changed, 273 insertions(+), 171 deletions(-) diff --git a/lib/src/infrastructure/internals/marshaller/serializers/channel_permission_overwrite_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/channel_permission_overwrite_serializer.dart index ba180129..5a2e4de0 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/channel_permission_overwrite_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/channel_permission_overwrite_serializer.dart @@ -17,8 +17,10 @@ final class ChannelPermissionOverwriteSerializer 'deny': json['deny'], }; - final cacheKey = _marshaller.cacheKey - .channelPermission(payload['id'], serverId: json['server_id']); + final cacheKey = _marshaller.cacheKey.channelPermission( + payload['id'], + serverId: json['server_id'], + ); await _marshaller.cache?.put(cacheKey, payload); return payload; diff --git a/lib/src/infrastructure/internals/marshaller/serializers/channel_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/channel_serializer.dart index fff05401..a1516bcf 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/channel_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/channel_serializer.dart @@ -34,8 +34,9 @@ final class ChannelSerializer @override Future> normalize(Map json) async { - final channelFactory = _factories - .firstWhereOrNull((element) => element.type.value == json['type']); + final channelFactory = _factories.firstWhereOrNull( + (element) => element.type.value == json['type'], + ); if (channelFactory == null) { _marshaller.logger.warn('Channel type not found ${json['type']}'); return json; @@ -47,9 +48,11 @@ final class ChannelSerializer @override Future serialize(Map json) { final channelFactory = _factories.firstWhere( - (element) => element.type.value == json['type'], - orElse: () => _factories - .firstWhere((element) => element.type == ChannelType.unknown)); + (element) => element.type.value == json['type'], + orElse: () => _factories.firstWhere( + (element) => element.type == ChannelType.unknown, + ), + ); if (channelFactory case UnknownChannelFactory()) { _marshaller.logger.warn('Channel type not found ${json['type']}'); @@ -60,8 +63,9 @@ final class ChannelSerializer @override Future> deserialize(Channel? channel) async { - final channelFactory = - _factories.firstWhereOrNull((element) => element.type == channel?.type); + final channelFactory = _factories.firstWhereOrNull( + (element) => element.type == channel?.type, + ); if (channelFactory != null) { return channelFactory.deserialize(_marshaller, channel!); } diff --git a/lib/src/infrastructure/internals/marshaller/serializers/embed_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/embed_serializer.dart index 54169d0a..116e8d1d 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/embed_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/embed_serializer.dart @@ -41,25 +41,32 @@ final class EmbedSerializer implements SerializerContract { title: json['title'], description: json['description'], type: Helper.createOrNull( - field: json['type'], - fn: () => findInEnum(MessageEmbedType.values, json['type'])), + field: json['type'], + fn: () => findInEnum(MessageEmbedType.values, json['type']), + ), url: json['url'], timestamp: Helper.createOrNull( - field: json['timestamp'], - fn: () => DateTime.tryParse(json['timestamp'])), + field: json['timestamp'], + fn: () => DateTime.tryParse(json['timestamp']), + ), assets: Helper.createOrNull( - field: json['assets'], - fn: () => MessageEmbedAssets.fromJson(json['assets'])), + field: json['assets'], + fn: () => MessageEmbedAssets.fromJson(json['assets']), + ), provider: Helper.createOrNull( - field: json['provider'], - fn: () => MessageEmbedProvider.fromJson(json['provider'])), + field: json['provider'], + fn: () => MessageEmbedProvider.fromJson(json['provider']), + ), fields: Helper.createOrNull( - field: json['fields'], - fn: () => List.from(json['fields']) - .map((element) => MessageEmbedField.fromJson(element)) - .toList()), + field: json['fields'], + fn: () => List.from(json['fields']) + .map((element) => MessageEmbedField.fromJson(element)) + .toList(), + ), color: Helper.createOrNull( - field: json['color'], fn: () => Color.of(json['color'])), + field: json['color'], + fn: () => Color.of(json['color']), + ), ); } diff --git a/lib/src/infrastructure/internals/marshaller/serializers/emoji_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/emoji_serializer.dart index c3e1ea22..61d409ed 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/emoji_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/emoji_serializer.dart @@ -19,15 +19,21 @@ final class EmojiSerializer implements SerializerContract { 'animated': json['animated'] ?? false, 'roles': json['roles'] != null ? List.from(json['roles']) - .map((element) => _marshaller.cacheKey - .serverEmoji(json['guild_id'], element['id'])) + .map( + (element) => _marshaller.cacheKey.serverEmoji( + json['guild_id'], + element['id'], + ), + ) .toList() : [], 'server_id': json['guild_id'], }; - final cacheKey = - _marshaller.cacheKey.serverEmoji(json['guild_id'], json['id']); + final cacheKey = _marshaller.cacheKey.serverEmoji( + json['guild_id'], + json['id'], + ); await _marshaller.cache?.put(cacheKey, payload); return payload; @@ -45,7 +51,9 @@ final class EmojiSerializer implements SerializerContract { id: Snowflake.parse(json['id']), name: json['name'], roles: roles?.fold( - {}, (value, element) => {...?value, element.id: element}) ?? + {}, + (value, element) => {...?value, element.id: element}, + ) ?? {}, managed: json['managed'], animated: json['animated'], diff --git a/lib/src/infrastructure/internals/marshaller/serializers/invite_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/invite_serializer.dart index 18d3ce57..e20f2b98 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/invite_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/invite_serializer.dart @@ -23,8 +23,10 @@ final class InviteSerializer implements SerializerContract { 'type': json['type'], }; - final cacheKey = _marshaller.cacheKey - .voiceState(json['guild_id'], json['inviter']['id']); + final cacheKey = _marshaller.cacheKey.voiceState( + json['guild_id'], + json['inviter']['id'], + ); await _marshaller.cache?.put(cacheKey, payload); return payload; @@ -43,8 +45,9 @@ final class InviteSerializer implements SerializerContract { serverId: Snowflake.parse(json['serverId']), createdAt: DateTime.parse(json['createdAt']), expiresAt: Helper.createOrNull( - field: json['expiresAt'], - fn: () => DateTime.parse(json['expiresAt'])), + field: json['expiresAt'], + fn: () => DateTime.parse(json['expiresAt']), + ), ); } diff --git a/lib/src/infrastructure/internals/marshaller/serializers/member_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/member_serializer.dart index fb766865..c0969235 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/member_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/member_serializer.dart @@ -18,13 +18,14 @@ final class MemberSerializer implements SerializerContract { final globalName = user?['global_name'] ?? json['global_name']; final discriminator = user?['discriminator'] ?? json['discriminator']; final avatar = user?['avatar'] ?? json['avatar']; - final avatarDecorationData = user?['avatar_decoration_data'] ?? json['avatar_decoration_data']; + final avatarDecorationData = + user?['avatar_decoration_data'] ?? json['avatar_decoration_data']; final publicFlags = user?['public_flags'] ?? json['public_flags']; final isBot = user?['bot'] ?? json['bot'] ?? false; final mfaEnabled = user?['mfa_enabled'] ?? json['mfa_enabled'] ?? false; final locale = user?['locale'] ?? json['locale']; final premiumType = user?['premium_type'] ?? json['premium_type']; - + final payload = { 'id': userId, 'username': username, @@ -54,8 +55,7 @@ final class MemberSerializer implements SerializerContract { 'server_id': json['guild_id'], }; - final cacheKey = - _marshaller.cacheKey.member(json['guild_id'], userId); + final cacheKey = _marshaller.cacheKey.member(json['guild_id'], userId); await _marshaller.cache?.put(cacheKey, payload); return payload; @@ -66,24 +66,33 @@ final class MemberSerializer implements SerializerContract { final assets = Map.from(json['assets']); final memberAsset = MemberAssets( avatar: Helper.createOrNull( - field: assets['avatar'], - fn: () => ImageAsset(['avatars', assets['member_id'].toString()], - assets['avatar'].toString())), + field: assets['avatar'], + fn: () => ImageAsset( + ['avatars', assets['member_id'].toString()], + assets['avatar'].toString(), + ), + ), avatarDecoration: Helper.createOrNull( - field: assets['avatar_decoration'], - fn: () => ImageAsset( - ['avatar-decorations', assets['member_id'].toString()], - assets['avatar_decoration'].toString())), + field: assets['avatar_decoration'], + fn: () => ImageAsset( + ['avatar-decorations', assets['member_id'].toString()], + assets['avatar_decoration'].toString(), + ), + ), banner: Helper.createOrNull( - field: assets['banner'], - fn: () => - ImageAsset(['banners', assets['member_id']], assets['banner'])), + field: assets['banner'], + fn: () => ImageAsset( + ['banners', assets['member_id']], + assets['banner'], + ), + ), ); final memberRoleManager = MemberRoleManager( - List.from(json['roles']).map(Snowflake.parse).toList(), - Snowflake.parse(json['server_id']), - Snowflake.parse(json['id'])); + List.from(json['roles']).map(Snowflake.parse).toList(), + Snowflake.parse(json['server_id']), + Snowflake.parse(json['id']), + ); return Member( id: Snowflake.parse(json['id']), @@ -93,27 +102,33 @@ final class MemberSerializer implements SerializerContract { globalName: json['global_name'], discriminator: json['discriminator'], assets: memberAsset, - flags: - MemberFlagsManager(bitfieldToList(MemberFlag.values, json['flags'])), + flags: MemberFlagsManager( + bitfieldToList(MemberFlag.values, json['flags']), + ), premiumSince: Helper.createOrNull( - field: json['premium_since'], - fn: () => DateTime.parse(json['premium_since'])), + field: json['premium_since'], + fn: () => DateTime.parse(json['premium_since']), + ), publicFlags: json['public_flags'], roles: memberRoleManager, isBot: json['is_bot'] ?? false, isPending: json['is_pending'] ?? false, timeout: MemberTimeout( - duration: Helper.createOrNull( - field: json['communication_disabled_until'], - fn: () => DateTime.parse(json['communication_disabled_until']))), + duration: Helper.createOrNull( + field: json['communication_disabled_until'], + fn: () => DateTime.parse(json['communication_disabled_until']), + ), + ), mfaEnabled: json['mfa_enabled'] ?? false, locale: json['locale'], premiumType: PremiumTier.values.firstWhere( - (e) => e == json['premium_type'], - orElse: () => PremiumTier.none), + (e) => e == json['premium_type'], + orElse: () => PremiumTier.none, + ), joinedAt: Helper.createOrNull( - field: json['joined_at'], - fn: () => DateTime.parse(json['joined_at'])), + field: json['joined_at'], + fn: () => DateTime.parse(json['joined_at']), + ), permissions: switch (json['permissions']) { int() => Permissions.fromInt(json['permissions']), String() => Permissions.fromInt(int.parse(json['permissions'])), diff --git a/lib/src/infrastructure/internals/marshaller/serializers/message_reaction_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/message_reaction_serializer.dart index 43231e46..575bb30f 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/message_reaction_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/message_reaction_serializer.dart @@ -3,7 +3,6 @@ import 'package:mineral/src/infrastructure/internals/marshaller/types/serializer final class MessageReactionSerializer implements SerializerContract { - @override Future> normalize(Map json) async { return { @@ -25,14 +24,18 @@ final class MessageReactionSerializer @override Future serialize(Map json) async { return MessageReaction( - serverId: Snowflake.nullable(json['server_id']), - channelId: Snowflake.parse(json['channel_id']), - userId: Snowflake.parse(json['author_id']), - messageId: Snowflake.parse(json['message_id']), - emoji: PartialEmoji(json['emoji']['id'], json['emoji']['name'], - json['emoji']['animated'] ?? false), - isBurst: json['is_burst'] ?? false, - type: MessageReactionType.values[json['type']]); + serverId: Snowflake.nullable(json['server_id']), + channelId: Snowflake.parse(json['channel_id']), + userId: Snowflake.parse(json['author_id']), + messageId: Snowflake.parse(json['message_id']), + emoji: PartialEmoji( + json['emoji']['id'], + json['emoji']['name'], + json['emoji']['animated'] ?? false, + ), + isBurst: json['is_burst'] ?? false, + type: MessageReactionType.values[json['type']], + ); } @override diff --git a/lib/src/infrastructure/internals/marshaller/serializers/message_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/message_serializer.dart index 4f27d039..b8efd232 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/message_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/message_serializer.dart @@ -21,8 +21,10 @@ final class MessageSerializer 'edited_timestamp': json['edited_timestamp'], }; - final cacheKey = - _marshaller.cacheKey.message(json['channel_id'], json['id']); + final cacheKey = _marshaller.cacheKey.message( + json['channel_id'], + json['id'], + ); await _marshaller.cache?.put(cacheKey, payload); return payload; diff --git a/lib/src/infrastructure/internals/marshaller/serializers/poll_answer_vote_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/poll_answer_vote_serializer.dart index ee747ab2..cbd01d0a 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/poll_answer_vote_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/poll_answer_vote_serializer.dart @@ -1,12 +1,11 @@ import 'package:mineral/api.dart'; import 'package:mineral/contracts.dart'; import 'package:mineral/src/api/common/polls/poll_answer_vote.dart'; -import 'package:mineral/src/api/common/snowflake.dart'; import 'package:mineral/src/domains/container/ioc_container.dart'; -import 'package:mineral/src/domains/services/marshaller/marshaller.dart'; import 'package:mineral/src/infrastructure/internals/marshaller/types/serializer.dart'; -final class PollAnswerVoteSerializer implements SerializerContract { +final class PollAnswerVoteSerializer + implements SerializerContract { MarshallerContract get _marshaller => ioc.resolve(); DataStoreContract get _datastore => ioc.resolve(); @@ -27,7 +26,11 @@ final class PollAnswerVoteSerializer implements SerializerContract serialize(Map json) async { final List voters = []; - final message = await _datastore.message.get(json['channel_id'], json['message_id'], false); + final message = await _datastore.message.get( + json['channel_id'], + json['message_id'], + false, + ); Server? server; for (final voter in json['users']) { final payload = await _marshaller.serializers.user.normalize(voter); @@ -39,7 +42,6 @@ final class PollAnswerVoteSerializer implements SerializerContract { final payload = { 'message_id': json['message_id'], 'question_text': json['question']['text'], - 'answers': - List.from(json['answers']).map((element) => element['text']).toList(), + 'answers': List.from( + json['answers'], + ).map((element) => element['text']).toList(), 'expiry': json['expiry'], 'allow_multiselect': json['allow_multiselect'], 'layout_type': json['layout_type'], @@ -37,16 +38,20 @@ final class PollSerializer implements SerializerContract { messageId: Snowflake.nullable(json['message_id']), question: PollQuestion(content: json['question_text']), answers: List.from(json['answers']) - .map((element) => PollAnswer( + .map( + (element) => PollAnswer( content: element['text'], emoji: Helper.createOrNull( - field: element['emoji'], - fn: () => PartialEmoji.fromUnicode(element['emoji'])))) + field: element['emoji'], + fn: () => PartialEmoji.fromUnicode(element['emoji']), + ), + ), + ) .toList(), expireAt: Helper.createOrNull( - field: json['expiry'], - fn: () => - DateTime.parse(json['expiry']).difference(DateTime.now())), + field: json['expiry'], + fn: () => DateTime.parse(json['expiry']).difference(DateTime.now()), + ), isAllowMultiple: json['allow_multiselect'], layout: findInEnum(PollLayout.values, json['layout_type'])); } diff --git a/lib/src/infrastructure/internals/marshaller/serializers/role_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/role_serializer.dart index 19a984d4..d2f8f74b 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/role_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/role_serializer.dart @@ -25,8 +25,10 @@ final class RoleSerializer implements SerializerContract { 'server_id': json['guild_id'], }; - final cacheKey = - _marshaller.cacheKey.serverRole(json['guild_id'], json['id']); + final cacheKey = _marshaller.cacheKey.serverRole( + json['guild_id'], + json['id'], + ); await _marshaller.cache?.put(cacheKey, payload); return payload; diff --git a/lib/src/infrastructure/internals/marshaller/serializers/rule_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/rule_serializer.dart index 463d03e4..d1d7bd29 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/rule_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/rule_serializer.dart @@ -1,6 +1,4 @@ import 'package:mineral/api.dart'; -import 'package:mineral/src/api/server/moderation/action.dart'; -import 'package:mineral/src/api/server/moderation/auto_moderation_rule.dart'; import 'package:mineral/src/api/server/moderation/enums/action_type.dart'; import 'package:mineral/src/api/server/moderation/enums/auto_moderation_event_type.dart'; import 'package:mineral/src/api/server/moderation/enums/trigger_type.dart'; @@ -26,13 +24,17 @@ final class RuleSerializer implements SerializerContract { 'actions': json['actions'], 'enabled': json['enabled'], 'exemptRoles': List.from( - (json['exempt_roles'] as List).map(Snowflake.parse)), + (json['exempt_roles'] as List).map(Snowflake.parse), + ), 'exemptChannels': List.from( - (json['exempt_channels'] as List).map(Snowflake.parse)), + (json['exempt_channels'] as List).map(Snowflake.parse), + ), }; - final cacheKey = _marshaller.cacheKey - .serverRules(json['guild_id'], json['id']); + final cacheKey = _marshaller.cacheKey.serverRules( + json['guild_id'], + json['id'], + ); await _marshaller.cache?.put(cacheKey, payload); return payload; @@ -41,28 +43,31 @@ final class RuleSerializer implements SerializerContract { @override Future serialize(Map json) async { return AutoModerationRule( - id: Snowflake.parse(json['id']), - serverId: Snowflake.parse(json['serverId']), - name: json['name'], - creatorId: Snowflake.parse(json['creatorId']), - eventTypes: findInEnum(AutoModerationEventType.values, json['eventType']), - triggerMetadata: TriggerMetadata.fromJson(json['triggerMetadata']), - action: (json['actions'] as List).map((action) { - final type = findInEnum(ActionType.values, action['type']); - return Action(type: type); - }).toList(), - enabled: json['enabled'] ?? true, - exemptRoles: List.from( - (json['exemptRoles'] as List).map(Snowflake.parse)), - exemptChannels: List.from((json['exemptChannels'] as List).map(Snowflake.parse)), - triggerTypes: findInEnum(TriggerType.values, json['triggerType']), - ); + id: Snowflake.parse(json['id']), + serverId: Snowflake.parse(json['serverId']), + name: json['name'], + creatorId: Snowflake.parse(json['creatorId']), + eventTypes: findInEnum(AutoModerationEventType.values, json['eventType']), + triggerMetadata: TriggerMetadata.fromJson(json['triggerMetadata']), + action: (json['actions'] as List).map((action) { + final type = findInEnum(ActionType.values, action['type']); + return Action(type: type); + }).toList(), + enabled: json['enabled'] ?? true, + exemptRoles: List.from( + (json['exemptRoles'] as List).map(Snowflake.parse), + ), + exemptChannels: List.from( + (json['exemptChannels'] as List).map(Snowflake.parse), + ), + triggerTypes: findInEnum(TriggerType.values, json['triggerType']), + ); } @override Map deserialize(AutoModerationRule rule) { return { - 'id': rule.id, + 'id': rule.id, 'server_id': rule.serverId.toString(), 'name': rule.name, 'creator_id': rule.creatorId.toString(), @@ -78,9 +83,9 @@ final class RuleSerializer implements SerializerContract { rule.triggerMetadata.mentionRaidProtectionEnabled, }, 'actions': rule.action - .map((action) => { - 'type': action.type.value, - }) + .map( + (action) => {'type': action.type.value}, + ) .toList(), 'enabled': rule.enabled, 'exempt_roles': rule.exemptRoles.map((e) => e.toString()).toList(), diff --git a/lib/src/infrastructure/internals/marshaller/serializers/server_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/server_serializer.dart index e755fb6f..7c5bd420 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/server_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/server_serializer.dart @@ -67,8 +67,10 @@ final class ServerSerializer implements SerializerContract { @override Future serialize(Map payload) async { - final channelManager = - ChannelManager.fromMap(payload['id'], payload['channel_settings']); + final channelManager = ChannelManager.fromMap( + payload['id'], + payload['channel_settings'], + ); final threadManager = ThreadsManager(Snowflake.parse(payload['id']), null); final roleManager = RoleManager(Snowflake.parse(payload['id'])); final memberManager = MemberManager(Snowflake.parse(payload['id'])); @@ -78,53 +80,75 @@ final class ServerSerializer implements SerializerContract { emojis: EmojiManager(Snowflake.parse(payload['id'])), stickers: StickerManager(Snowflake.parse(payload['id'])), icon: Helper.createOrNull( - field: payload['icon'], - fn: () => - ImageAsset(['icons', payload['server_id']], payload['icon'])), + field: payload['icon'], + fn: () => ImageAsset( + ['icons', payload['server_id']], + payload['icon'], + ), + ), splash: Helper.createOrNull( - field: payload['splash'], - fn: () => ImageAsset( - ['splashes', payload['server_id']], payload['splash'])), + field: payload['splash'], + fn: () => ImageAsset( + ['splashes', payload['server_id']], + payload['splash'], + ), + ), banner: Helper.createOrNull( - field: payload['banner'], - fn: () => - ImageAsset(['banners', payload['server_id']], payload['banner'])), + field: payload['banner'], + fn: () => ImageAsset( + ['banners', payload['server_id']], + payload['banner'], + ), + ), discoverySplash: Helper.createOrNull( - field: payload['discovery_splash'], - fn: () => ImageAsset(['discovery-splashes', payload['id']], - payload['discovery_splash'])), + field: payload['discovery_splash'], + fn: () => ImageAsset( + ['discovery-splashes', payload['id']], + payload['discovery_splash'], + ), + ), ); final serverSettings = ServerSettings( bitfieldPermission: payload['permissions'], afkTimeout: payload['afk_timeout'], hasWidgetEnabled: payload['widget_enabled'] ?? false, - explicitContentFilter: findInEnum(ExplicitContentFilter.values, - payload['settings']['explicit_content_filter']), - verificationLevel: findInEnum(VerificationLevel.values, - payload['settings']['verification_level']), + explicitContentFilter: findInEnum( + ExplicitContentFilter.values, + payload['settings']['explicit_content_filter'], + ), + verificationLevel: findInEnum( + VerificationLevel.values, + payload['settings']['verification_level'], + ), defaultMessageNotifications: findInEnum( - DefaultMessageNotification.values, - payload['settings']['default_message_notifications']), + DefaultMessageNotification.values, + payload['settings']['default_message_notifications'], + ), features: List.from(payload['settings']['features']), mfaLevel: findInEnum(MfaLevel.values, payload['settings']['mfa_level']), - systemChannelFlags: bitfieldToList(SystemChannelFlag.values, - payload['settings']['system_channel_flags']), + systemChannelFlags: bitfieldToList( + SystemChannelFlag.values, + payload['settings']['system_channel_flags'], + ), vanityUrlCode: payload['vanity_url_code'], subscription: ServerSubscription( tier: findInEnum( - PremiumTier.values, payload['settings']['premium_tier']), + PremiumTier.values, + payload['settings']['premium_tier'], + ), subscriptionCount: payload['settings']['premium_subscription_count'], hasEnabledProgressBar: payload['settings'] ['premium_progress_bar_enabled'], ), preferredLocale: payload['settings']['preferred_locale'], maxVideoChannelUsers: payload['max_video_channel_users'], - nsfwLevel: - findInEnum(NsfwLevel.values, payload['settings']['nsfw_level']), + nsfwLevel: findInEnum( + NsfwLevel.values, + payload['settings']['nsfw_level'], + ), rulesManager: RulesManager(Snowflake.parse(payload['id']))); - return Server( id: Snowflake.parse(payload['id']), name: payload['name'], diff --git a/lib/src/infrastructure/internals/marshaller/serializers/sticker_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/sticker_serializer.dart index b6bbad35..c752fb9c 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/sticker_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/sticker_serializer.dart @@ -36,17 +36,21 @@ final class StickerSerializer implements SerializerContract { return Sticker( id: Snowflake.parse(json['id']), name: json['name'], - type: StickerType.values - .firstWhere((element) => element.value == json['type']), + type: StickerType.values.firstWhere( + (element) => element.value == json['type'], + ), isAvailable: json['available'], packId: json['pack_id'], description: json['description'], tags: json['tags'], asset: json['asset'], - formatType: FormatType.values - .firstWhere((element) => element.value == json['format_type']), + formatType: FormatType.values.firstWhere( + (element) => element.value == json['format_type'], + ), sortValue: json['sort_value'], - serverId: Snowflake.parse(json['server_id']), + serverId: Snowflake.parse( + json['server_id'], + ), ); } diff --git a/lib/src/infrastructure/internals/marshaller/serializers/user_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/user_serializer.dart index c0f3e2ef..8257be84 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/user_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/user_serializer.dart @@ -42,15 +42,26 @@ final class UserSerializer implements SerializerContract { final userAssets = Map.from(json['assets']); final assets = UserAssets( avatar: Helper.createOrNull( - field: userAssets['avatar'], - fn: () => ImageAsset(['avatars', json['id']], userAssets['avatar'])), + field: userAssets['avatar'], + fn: () => ImageAsset( + ['avatars', json['id']], + userAssets['avatar'], + ), + ), avatarDecoration: Helper.createOrNull( - field: userAssets['avatar_decoration'], - fn: () => ImageAsset(['avatar-decorations', json['id']], - userAssets['avatar_decoration'])), + field: userAssets['avatar_decoration'], + fn: () => ImageAsset( + ['avatar-decorations', json['id']], + userAssets['avatar_decoration'], + ), + ), banner: Helper.createOrNull( - field: userAssets['banner'], - fn: () => ImageAsset(['banners', json['id']], userAssets['banner'])), + field: userAssets['banner'], + fn: () => ImageAsset( + ['banners', json['id']], + userAssets['banner'], + ), + ), ); return User( @@ -66,13 +77,17 @@ final class UserSerializer implements SerializerContract { email: json['email'], flags: json['flags'], premiumType: PremiumTier.values.firstWhere( - (e) => e == json['premium_type'], - orElse: () => PremiumTier.none), + (e) => e == json['premium_type'], + orElse: () => PremiumTier.none, + ), publicFlags: json['public_flags'], assets: assets, createdAt: Helper.createOrNull( - field: json['created_at'], - fn: () => DateTime.parse(json['created_at'])), + field: json['created_at'], + fn: () => DateTime.parse( + json['created_at'], + ), + ), presence: null, ); } diff --git a/lib/src/infrastructure/internals/marshaller/serializers/voice_state_serializer.dart b/lib/src/infrastructure/internals/marshaller/serializers/voice_state_serializer.dart index d6bebde6..d3540d3c 100644 --- a/lib/src/infrastructure/internals/marshaller/serializers/voice_state_serializer.dart +++ b/lib/src/infrastructure/internals/marshaller/serializers/voice_state_serializer.dart @@ -1,5 +1,4 @@ import 'package:mineral/api.dart'; -import 'package:mineral/src/api/server/voice_state.dart'; import 'package:mineral/src/domains/container/ioc_container.dart'; import 'package:mineral/src/domains/services/marshaller/marshaller.dart'; import 'package:mineral/src/infrastructure/internals/marshaller/types/serializer.dart'; @@ -24,8 +23,10 @@ final class VoiceStateSerializer implements SerializerContract { 'discoverable': json['discoverable'], }; - final cacheKey = - _marshaller.cacheKey.voiceState(json['guild_id'], json['user_id']); + final cacheKey = _marshaller.cacheKey.voiceState( + json['guild_id'], + json['user_id'], + ); await _marshaller.cache?.put(cacheKey, payload); return payload; @@ -34,20 +35,21 @@ final class VoiceStateSerializer implements SerializerContract { @override Future serialize(Map json) async { return VoiceState( - serverId: Snowflake.parse(json['server_id']), - channelId: Snowflake.nullable(json['channel_id']), - userId: Snowflake.parse(json['user_id']), - sessionId: json['session_id'], - isDeaf: json['deaf'], - isMute: json['mute'], - isSelfDeaf: json['self_deaf'], - isSelfMute: json['self_mute'], - hasSelfVideo: json['self_video'], - isSuppress: json['suppress'], - requestToSpeakTimestamp: json['request_to_speak_timestamp'] != null - ? DateTime.parse(json['request_to_speak_timestamp']) - : null, - isDiscoverable: json['discoverable']); + serverId: Snowflake.parse(json['server_id']), + channelId: Snowflake.nullable(json['channel_id']), + userId: Snowflake.parse(json['user_id']), + sessionId: json['session_id'], + isDeaf: json['deaf'], + isMute: json['mute'], + isSelfDeaf: json['self_deaf'], + isSelfMute: json['self_mute'], + hasSelfVideo: json['self_video'], + isSuppress: json['suppress'], + requestToSpeakTimestamp: json['request_to_speak_timestamp'] != null + ? DateTime.parse(json['request_to_speak_timestamp']) + : null, + isDiscoverable: json['discoverable'], + ); } @override From f35f12a4b13e3b6e8fd436f804ebb1c054ec72a4 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 12:14:16 +0100 Subject: [PATCH 80/93] style: improve code formatting and readability in ChannelFactoryContract methods --- .../internals/marshaller/types/channel_factory.dart | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/src/infrastructure/internals/marshaller/types/channel_factory.dart b/lib/src/infrastructure/internals/marshaller/types/channel_factory.dart index 68ff9a1b..d526e989 100644 --- a/lib/src/infrastructure/internals/marshaller/types/channel_factory.dart +++ b/lib/src/infrastructure/internals/marshaller/types/channel_factory.dart @@ -7,9 +7,15 @@ import 'package:mineral/src/domains/services/marshaller/marshaller.dart'; abstract interface class ChannelFactoryContract { ChannelType get type; FutureOr> normalize( - MarshallerContract marshaller, Map json); + MarshallerContract marshaller, + Map json, + ); FutureOr serialize( - MarshallerContract marshaller, Map json); + MarshallerContract marshaller, + Map json, + ); FutureOr> deserialize( - MarshallerContract marshaller, T channel); + MarshallerContract marshaller, + T channel, + ); } From 927594c482735e4e76513dc02e81d32f4476fe43 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 12:14:25 +0100 Subject: [PATCH 81/93] style: improve code formatting and readability in audit log handler methods --- .../listeners/audit_logs/_default.dart | 5 ++-- .../application_command_permission.dart | 3 ++- .../listeners/audit_logs/auto_moderation.dart | 18 ++++++++----- .../packets/listeners/audit_logs/channel.dart | 25 +++++++++-------- .../audit_logs/channel_overwrite.dart | 24 ++++++++++------- .../packets/listeners/audit_logs/emoji.dart | 23 +++++++++------- .../audit_logs/guild_scheduled_event.dart | 9 ++++--- .../listeners/audit_logs/integration.dart | 9 ++++--- .../packets/listeners/audit_logs/member.dart | 9 ++++--- .../packets/listeners/audit_logs/message.dart | 3 ++- .../packets/listeners/audit_logs/other.dart | 27 ++++++++++++------- .../packets/listeners/audit_logs/server.dart | 10 +++---- .../listeners/audit_logs/stage_instance.dart | 9 ++++--- .../packets/listeners/audit_logs/sticker.dart | 14 +++++++--- 14 files changed, 118 insertions(+), 70 deletions(-) diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/_default.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/_default.dart index 6ab60977..ebf25b6e 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/_default.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/_default.dart @@ -4,6 +4,7 @@ import 'package:mineral/src/api/server/audit_log/audit_log_action.dart'; Future unknownAuditLogHandler(Map json) async { return UnknownAuditLogAction( - serverId: Snowflake.parse(json['guild_id']), - userId: Snowflake.nullable(json['user_id'])); + serverId: Snowflake.parse(json['guild_id']), + userId: Snowflake.nullable(json['user_id']), + ); } diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/application_command_permission.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/application_command_permission.dart index 47ec8e8b..59f8c720 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/application_command_permission.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/application_command_permission.dart @@ -3,7 +3,8 @@ import 'package:mineral/src/api/server/audit_log/actions/application_command_per import 'package:mineral/src/api/server/audit_log/audit_log.dart'; Future applicationCommandPermissionUpdateAuditLogHandler( - Map json) async { + Map json, +) async { return ApplicationCommandPermissionUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/auto_moderation.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/auto_moderation.dart index ccb84a1f..6ae12836 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/auto_moderation.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/auto_moderation.dart @@ -3,7 +3,8 @@ import 'package:mineral/src/api/server/audit_log/actions/auto_moderation.dart'; import 'package:mineral/src/api/server/audit_log/audit_log.dart'; Future autoModerationRuleCreateAuditLogHandler( - Map json) async { + Map json, +) async { return AutoModerationRuleCreateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -12,7 +13,8 @@ Future autoModerationRuleCreateAuditLogHandler( } Future autoModerationRuleUpdateAuditLogHandler( - Map json) async { + Map json, +) async { return AutoModerationRuleUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -24,7 +26,8 @@ Future autoModerationRuleUpdateAuditLogHandler( } Future autoModerationRuleDeleteAuditLogHandler( - Map json) async { + Map json, +) async { return AutoModerationRuleDeleteAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -33,7 +36,8 @@ Future autoModerationRuleDeleteAuditLogHandler( } Future autoModerationBlockMessageAuditLogHandler( - Map json) async { + Map json, +) async { return AutoModerationBlockMessageAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -43,7 +47,8 @@ Future autoModerationBlockMessageAuditLogHandler( } Future autoModerationFlagToChannelAuditLogHandler( - Map json) async { + Map json, +) async { return AutoModerationFlagToChannelAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -55,7 +60,8 @@ Future autoModerationFlagToChannelAuditLogHandler( } Future autoModerationUserCommunicationDisabledAuditLogHandler( - Map json) async { + Map json, +) async { return AutoModerationUserCommunicationDisabledAuditLog( serverId: Snowflake.parse(json['guild_id']), moderatorId: Snowflake.parse(json['user_id']), diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/channel.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/channel.dart index 4b9e304d..98d9dc15 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/channel.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/channel.dart @@ -8,9 +8,10 @@ Future channelCreateAuditLogHandler(Map json) async { final channel = await datastore.channel.get(json['target_id'], false); return ChannelCreateAuditLogAction( - serverId: Snowflake.parse(json['guild_id']), - userId: Snowflake.parse(json['user_id']), - channel: channel!); + serverId: Snowflake.parse(json['guild_id']), + userId: Snowflake.parse(json['user_id']), + channel: channel!, + ); } Future channelUpdateAuditLogHandler(Map json) async { @@ -18,16 +19,18 @@ Future channelUpdateAuditLogHandler(Map json) async { final channel = await datastore.channel.get(json['target_id'], false); return ChannelUpdateAuditLogAction( - serverId: Snowflake.parse(json['guild_id']), - userId: Snowflake.parse(json['user_id']), - channel: channel!, - changes: List.from(json['changes'].map((e) => Change.fromJson(e)))); + serverId: Snowflake.parse(json['guild_id']), + userId: Snowflake.parse(json['user_id']), + channel: channel!, + changes: List.from(json['changes'].map((e) => Change.fromJson(e))), + ); } Future channelDeleteAuditLogHandler(Map json) async { return ChannelDeleteAuditLogAction( - serverId: Snowflake.parse(json['guild_id']), - userId: Snowflake.parse(json['user_id']), - channelId: Snowflake.parse(json['target_id']), - changes: List.from(json['changes'].map((e) => Change.fromJson(e)))); + serverId: Snowflake.parse(json['guild_id']), + userId: Snowflake.parse(json['user_id']), + channelId: Snowflake.parse(json['target_id']), + changes: List.from(json['changes'].map((e) => Change.fromJson(e))), + ); } diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/channel_overwrite.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/channel_overwrite.dart index 8ce964fd..623480df 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/channel_overwrite.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/channel_overwrite.dart @@ -3,12 +3,14 @@ import 'package:mineral/src/api/server/audit_log/actions/channel_overwrite.dart' import 'package:mineral/src/api/server/audit_log/audit_log.dart'; Future channelOverwriteCreateAuditLogHandler( - Map json) async { + Map json, +) async { return ChannelOverwriteCreateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), - channelId: - Snowflake.parse(json['options']?['channel_id'] ?? json['target_id']), + channelId: Snowflake.parse( + json['options']?['channel_id'] ?? json['target_id'], + ), overwriteId: Snowflake.parse(json['target_id']), overwriteType: json['options']?['type'] ?? 'role', changes: List>.from(json['changes']) @@ -18,12 +20,14 @@ Future channelOverwriteCreateAuditLogHandler( } Future channelOverwriteUpdateAuditLogHandler( - Map json) async { + Map json, +) async { return ChannelOverwriteUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), - channelId: - Snowflake.parse(json['options']?['channel_id'] ?? json['target_id']), + channelId: Snowflake.parse( + json['options']?['channel_id'] ?? json['target_id'], + ), overwriteId: Snowflake.parse(json['target_id']), overwriteType: json['options']?['type'] ?? 'role', changes: List>.from(json['changes']) @@ -33,12 +37,14 @@ Future channelOverwriteUpdateAuditLogHandler( } Future channelOverwriteDeleteAuditLogHandler( - Map json) async { + Map json, +) async { return ChannelOverwriteDeleteAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), - channelId: - Snowflake.parse(json['options']?['channel_id'] ?? json['target_id']), + channelId: Snowflake.parse( + json['options']?['channel_id'] ?? json['target_id'], + ), overwriteId: Snowflake.parse(json['target_id']), overwriteType: json['options']?['type'] ?? 'role', ); diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/emoji.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/emoji.dart index 96b2e864..88ff720a 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/emoji.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/emoji.dart @@ -3,22 +3,25 @@ import 'package:mineral/src/api/server/audit_log/audit_log.dart'; Future emojiCreateAuditLogHandler(Map json) async { return EmojiCreateAuditLog( - serverId: json['guild_id'], - emojiName: json['changes'][0]['new_value'], - userId: json['user_id']); + serverId: json['guild_id'], + emojiName: json['changes'][0]['new_value'], + userId: json['user_id'], + ); } Future emojiUpdateAuditLogHandler(Map json) async { return EmojiUpdateAuditLog( - serverId: json['guild_id'], - beforeEmojiName: json['changes'][0]['old_value'], - afterEmojiName: json['changes'][0]['new_value'], - userId: json['user_id']); + serverId: json['guild_id'], + beforeEmojiName: json['changes'][0]['old_value'], + afterEmojiName: json['changes'][0]['new_value'], + userId: json['user_id'], + ); } Future emojiDeleteAuditLogHandler(Map json) async { return EmojiDeleteAuditLog( - serverId: json['guild_id'], - emojiName: json['changes'][0]['old_value'], - userId: json['user_id']); + serverId: json['guild_id'], + emojiName: json['changes'][0]['old_value'], + userId: json['user_id'], + ); } diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/guild_scheduled_event.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/guild_scheduled_event.dart index 9abca822..39979129 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/guild_scheduled_event.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/guild_scheduled_event.dart @@ -3,7 +3,8 @@ import 'package:mineral/src/api/server/audit_log/actions/guild_scheduled_event.d import 'package:mineral/src/api/server/audit_log/audit_log.dart'; Future guildScheduledEventCreateAuditLogHandler( - Map json) async { + Map json, +) async { return GuildScheduledEventCreateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -12,7 +13,8 @@ Future guildScheduledEventCreateAuditLogHandler( } Future guildScheduledEventUpdateAuditLogHandler( - Map json) async { + Map json, +) async { return GuildScheduledEventUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -24,7 +26,8 @@ Future guildScheduledEventUpdateAuditLogHandler( } Future guildScheduledEventDeleteAuditLogHandler( - Map json) async { + Map json, +) async { return GuildScheduledEventDeleteAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/integration.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/integration.dart index 9a66476e..20a9e68b 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/integration.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/integration.dart @@ -3,7 +3,8 @@ import 'package:mineral/src/api/server/audit_log/actions/integration.dart'; import 'package:mineral/src/api/server/audit_log/audit_log.dart'; Future integrationCreateAuditLogHandler( - Map json) async { + Map json, +) async { return IntegrationCreateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -13,7 +14,8 @@ Future integrationCreateAuditLogHandler( } Future integrationUpdateAuditLogHandler( - Map json) async { + Map json, +) async { return IntegrationUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -25,7 +27,8 @@ Future integrationUpdateAuditLogHandler( } Future integrationDeleteAuditLogHandler( - Map json) async { + Map json, +) async { return IntegrationDeleteAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/member.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/member.dart index 089e97b7..7ba2ad91 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/member.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/member.dart @@ -30,7 +30,8 @@ Future memberBanAddAuditLogHandler(Map json) async { } Future memberBanRemoveAuditLogHandler( - Map json) async { + Map json, +) async { return MemberBanRemoveAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.nullable(json['user_id']), @@ -50,7 +51,8 @@ Future memberUpdateAuditLogHandler(Map json) async { } Future memberRoleUpdateAuditLogHandler( - Map json) async { + Map json, +) async { return MemberRoleUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.nullable(json['user_id']), @@ -71,7 +73,8 @@ Future memberMoveAuditLogHandler(Map json) async { } Future memberDisconnectAuditLogHandler( - Map json) async { + Map json, +) async { return MemberDisconnectAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.nullable(json['user_id']), diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/message.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/message.dart index 76f4d6b3..51dd680f 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/message.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/message.dart @@ -12,7 +12,8 @@ Future messageDeleteAuditLogHandler(Map json) async { } Future messageBulkDeleteAuditLogHandler( - Map json) async { + Map json, +) async { return MessageBulkDeleteAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/other.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/other.dart index b42a3f85..701a934d 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/other.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/other.dart @@ -3,7 +3,8 @@ import 'package:mineral/src/api/server/audit_log/actions/other.dart'; import 'package:mineral/src/api/server/audit_log/audit_log.dart'; Future creatorMonetizationRequestCreatedAuditLogHandler( - Map json) async { + Map json, +) async { return CreatorMonetizationRequestCreatedAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -12,7 +13,8 @@ Future creatorMonetizationRequestCreatedAuditLogHandler( } Future creatorMonetizationTermsAcceptedAuditLogHandler( - Map json) async { + Map json, +) async { return CreatorMonetizationTermsAcceptedAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -21,7 +23,8 @@ Future creatorMonetizationTermsAcceptedAuditLogHandler( } Future onboardingPromptCreateAuditLogHandler( - Map json) async { + Map json, +) async { return OnboardingPromptCreateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -31,7 +34,8 @@ Future onboardingPromptCreateAuditLogHandler( } Future onboardingPromptUpdateAuditLogHandler( - Map json) async { + Map json, +) async { return OnboardingPromptUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -43,7 +47,8 @@ Future onboardingPromptUpdateAuditLogHandler( } Future onboardingPromptDeleteAuditLogHandler( - Map json) async { + Map json, +) async { return OnboardingPromptDeleteAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -53,7 +58,8 @@ Future onboardingPromptDeleteAuditLogHandler( } Future onboardingCreateAuditLogHandler( - Map json) async { + Map json, +) async { return OnboardingCreateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -64,7 +70,8 @@ Future onboardingCreateAuditLogHandler( } Future onboardingUpdateAuditLogHandler( - Map json) async { + Map json, +) async { return OnboardingUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -75,7 +82,8 @@ Future onboardingUpdateAuditLogHandler( } Future homeSettingsCreateAuditLogHandler( - Map json) async { + Map json, +) async { return HomeSettingsCreateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -86,7 +94,8 @@ Future homeSettingsCreateAuditLogHandler( } Future homeSettingsUpdateAuditLogHandler( - Map json) async { + Map json, +) async { return HomeSettingsUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/server.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/server.dart index 8bf4e67e..9523a2f0 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/server.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/server.dart @@ -8,9 +8,9 @@ Future serverUpdateAuditLogHandler(Map json) async { final server = await datastore.server.get(json['guild_id'], true); return ServerUpdateAuditLogAction( - serverId: Snowflake.parse(json['guild_id']), - userId: Snowflake.parse(json['user_id']), - server: server, - changes: - List.from(json['changes'].map((e) => Change.fromJson(e)))); + serverId: Snowflake.parse(json['guild_id']), + userId: Snowflake.parse(json['user_id']), + server: server, + changes: List.from(json['changes'].map((e) => Change.fromJson(e))), + ); } diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/stage_instance.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/stage_instance.dart index 260ba9d0..97f7c734 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/stage_instance.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/stage_instance.dart @@ -3,7 +3,8 @@ import 'package:mineral/src/api/server/audit_log/actions/stage_instance.dart'; import 'package:mineral/src/api/server/audit_log/audit_log.dart'; Future stageInstanceCreateAuditLogHandler( - Map json) async { + Map json, +) async { return StageInstanceCreateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -14,7 +15,8 @@ Future stageInstanceCreateAuditLogHandler( } Future stageInstanceUpdateAuditLogHandler( - Map json) async { + Map json, +) async { return StageInstanceUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), @@ -26,7 +28,8 @@ Future stageInstanceUpdateAuditLogHandler( } Future stageInstanceDeleteAuditLogHandler( - Map json) async { + Map json, +) async { return StageInstanceDeleteAuditLog( serverId: Snowflake.parse(json['guild_id']), userId: Snowflake.parse(json['user_id']), diff --git a/lib/src/infrastructure/internals/packets/listeners/audit_logs/sticker.dart b/lib/src/infrastructure/internals/packets/listeners/audit_logs/sticker.dart index c6b2e9e7..eb5d7449 100644 --- a/lib/src/infrastructure/internals/packets/listeners/audit_logs/sticker.dart +++ b/lib/src/infrastructure/internals/packets/listeners/audit_logs/sticker.dart @@ -6,8 +6,11 @@ import 'package:mineral/src/api/server/audit_log/audit_log.dart'; Future stickerCreateAuditLogHandler(Map json) async { final datastore = ioc.resolve(); - final sticker = - await datastore.sticker.get(json['guild_id'], json['target_id'], false); + final sticker = await datastore.sticker.get( + json['guild_id'], + json['target_id'], + false, + ); return StickerCreateAuditLog( serverId: Snowflake.parse(json['guild_id']), @@ -19,8 +22,11 @@ Future stickerCreateAuditLogHandler(Map json) async { Future stickerUpdateAuditLogHandler(Map json) async { final datastore = ioc.resolve(); - final sticker = - await datastore.sticker.get(json['guild_id'], json['target_id'], false); + final sticker = await datastore.sticker.get( + json['guild_id'], + json['target_id'], + false, + ); return StickerUpdateAuditLog( serverId: Snowflake.parse(json['guild_id']), From 2ce2e94715765ce024cba16f3a947d3634e41ac5 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 12:14:35 +0100 Subject: [PATCH 82/93] style: improve code formatting and readability in interaction packet classes --- .../button_interaction_create_packet.dart | 52 ++++++---- .../modal_interaction_create_packet.dart | 46 +++++---- .../select_interaction_create_packet.dart | 97 +++++++++++++------ 3 files changed, 128 insertions(+), 67 deletions(-) diff --git a/lib/src/infrastructure/internals/packets/listeners/interactions/button_interaction_create_packet.dart b/lib/src/infrastructure/internals/packets/listeners/interactions/button_interaction_create_packet.dart index 2b0cf351..47aeb0bc 100644 --- a/lib/src/infrastructure/internals/packets/listeners/interactions/button_interaction_create_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/interactions/button_interaction_create_packet.dart @@ -20,22 +20,26 @@ final class ButtonInteractionCreatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final type = InteractionType.values - .firstWhereOrNull((e) => e.value == message.payload['type']); + final type = InteractionType.values.firstWhereOrNull( + (e) => e.value == message.payload['type'], + ); final componentType = ComponentType.values.firstWhereOrNull( - (e) => e.value == message.payload['data']['component_type']); + (e) => e.value == message.payload['data']['component_type'], + ); if (type == InteractionType.messageComponent && componentType == ComponentType.button) { final serverId = Snowflake.nullable(message.payload['guild']?['id']); final type = ComponentType.values.firstWhereOrNull( - (e) => e.value == message.payload['data']['component_type']); + (e) => e.value == message.payload['data']['component_type'], + ); if (type == null) { _logger.warn( - 'Component type ${message.payload['data']['component_type']} not found'); + 'Component type ${message.payload['data']['component_type']} not found', + ); return; } @@ -47,10 +51,14 @@ final class ButtonInteractionCreatePacket implements ListenablePacket { } Future _handleServerButton( - Map payload, DispatchEvent dispatch) async { + Map payload, + DispatchEvent dispatch, + ) async { final metadata = payload['message']['interaction_metadata']; - final targetButton = - await _findButtonByCustomId(payload, payload['data']['custom_id']); + final targetButton = await _findButtonByCustomId( + payload, + payload['data']['custom_id'], + ); final type = ButtonType.values .firstWhereOrNull((e) => e.value == targetButton?['type']); @@ -70,18 +78,23 @@ final class ButtonInteractionCreatePacket implements ListenablePacket { ); dispatch( - event: Event.serverButtonClick, - params: [ctx], - constraint: (String? customId) => customId == ctx.customId); + event: Event.serverButtonClick, + params: [ctx], + constraint: (String? customId) => customId == ctx.customId, + ); _interactiveComponentManager.dispatch(ctx.customId, [ctx]); } Future _handlePrivateButton( - Map payload, DispatchEvent dispatch) async { + Map payload, + DispatchEvent dispatch, + ) async { final metadata = payload['message']['interaction_metadata']; - final targetButton = - await _findButtonByCustomId(payload, payload['data']['custom_id']); + final targetButton = await _findButtonByCustomId( + payload, + payload['data']['custom_id'], + ); final type = ButtonType.values .firstWhereOrNull((e) => e.value == targetButton?['custom_id']); @@ -102,13 +115,16 @@ final class ButtonInteractionCreatePacket implements ListenablePacket { ); dispatch( - event: Event.serverButtonClick, - params: [ctx], - constraint: (String? customId) => customId == ctx.customId); + event: Event.serverButtonClick, + params: [ctx], + constraint: (String? customId) => customId == ctx.customId, + ); } Future?> _findButtonByCustomId( - Map payload, String customId) { + Map payload, + String customId, + ) { final completer = Completer?>(); final components = payload['message']['components'] as List?; diff --git a/lib/src/infrastructure/internals/packets/listeners/interactions/modal_interaction_create_packet.dart b/lib/src/infrastructure/internals/packets/listeners/interactions/modal_interaction_create_packet.dart index 0c39a630..5b95ad39 100644 --- a/lib/src/infrastructure/internals/packets/listeners/interactions/modal_interaction_create_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/interactions/modal_interaction_create_packet.dart @@ -50,11 +50,13 @@ final class ModalInteractionCreatePacket implements ListenablePacket { // Resolve User instances if (guildId != null) { // Resolve to Members in server context (match native select behavior) - parameters[customId] = await Future.wait(values - .map((id) => _dataStore.member.get(guildId, id, false))); + parameters[customId] = await Future.wait( + values.map((id) => _dataStore.member.get(guildId, id, false)), + ); } else { parameters[customId] = await Future.wait( - values.map((id) => _dataStore.user.get(id, false))); + values.map((id) => _dataStore.user.get(id, false)), + ); } } else if (customId.contains('role_select')) { parameters[customId] = await Future.wait( @@ -74,8 +76,11 @@ final class ModalInteractionCreatePacket implements ListenablePacket { if (isUser) { if (guildId != null) { - final member = - await _dataStore.member.get(guildId, id, false); + final member = await _dataStore.member.get( + guildId, + id, + false, + ); if (member != null) { mentionables.add(member); } @@ -96,7 +101,8 @@ final class ModalInteractionCreatePacket implements ListenablePacket { } else if (customId.contains('channel_select')) { // Resolve Channel instances parameters[customId] = await Future.wait( - values.map((id) => _dataStore.channel.get(id, false))); + values.map((id) => _dataStore.channel.get(id, false)), + ); } else { // Default: just pass IDs parameters[customId] = values; @@ -113,26 +119,32 @@ final class ModalInteractionCreatePacket implements ListenablePacket { }; final ctx = await switch (interactionContext) { - InteractionContextType.server => - ServerModalContext.fromMap(_dataStore, message.payload), - InteractionContextType.privateChannel => - PrivateModalContext.fromMap(_marshaller, message.payload), + InteractionContextType.server => ServerModalContext.fromMap( + _dataStore, + message.payload, + ), + InteractionContextType.privateChannel => PrivateModalContext.fromMap( + _marshaller, + message.payload, + ), _ => null }; if ([event, ctx].contains(null)) { _logger.warn( - 'Interaction context ${message.payload['context']} not found'); + 'Interaction context ${message.payload['context']} not found', + ); return; } dispatch( - event: event!, - params: [ctx, parameters], - constraint: (String? customId) => switch (customId) { - final String value => value == ctx!.customId, - _ => true - }); + event: event!, + params: [ctx, parameters], + constraint: (String? customId) => switch (customId) { + final String value => value == ctx!.customId, + _ => true + }, + ); _interactiveComponentManager.dispatch(ctx!.customId, [ctx, parameters]); } diff --git a/lib/src/infrastructure/internals/packets/listeners/interactions/select_interaction_create_packet.dart b/lib/src/infrastructure/internals/packets/listeners/interactions/select_interaction_create_packet.dart index b927f947..432a55d2 100644 --- a/lib/src/infrastructure/internals/packets/listeners/interactions/select_interaction_create_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/interactions/select_interaction_create_packet.dart @@ -26,18 +26,23 @@ final class SelectInteractionCreatePacket implements ListenablePacket { .firstWhereOrNull((e) => e.value == message.payload['type']); final componentType = ComponentType.values.firstWhereOrNull( - (e) => e.value == message.payload['data']['component_type']); + (e) => e.value == message.payload['data']['component_type'], + ); if (type == InteractionType.messageComponent && ComponentType.selectMenus.contains(componentType)) { final selectMenuType = ComponentType.values.firstWhereOrNull( - (e) => e.value == message.payload['data']['component_type']); + (e) => e.value == message.payload['data']['component_type'], + ); final serverId = Snowflake.nullable(message.payload['guild_id']); final ctx = await switch (serverId) { String() => ServerSelectContext.fromMap(_dataStore, message.payload), _ => PrivateSelectContext.fromMap( - _marshaller, _dataStore, message.payload), + _marshaller, + _dataStore, + message.payload, + ), }; switch (selectMenuType) { @@ -57,16 +62,24 @@ final class SelectInteractionCreatePacket implements ListenablePacket { } } - Future _dispatchChannelSelectMenu(SelectContext ctx, - Map payload, DispatchEvent dispatch) async { - final serverChannels = - await _dataStore.channel.fetch(payload['guild_id'], false); + Future _dispatchChannelSelectMenu( + SelectContext ctx, + Map payload, + DispatchEvent dispatch, + ) async { + final serverChannels = await _dataStore.channel.fetch( + payload['guild_id'], + false, + ); final resolvedData = payload['data']['resolved']; final channelIds = Map.from(resolvedData['channels']).keys; - final channels = - channelIds.map((id) => serverChannels[id]).whereType(); + final channels = channelIds + .map( + (id) => serverChannels[id], + ) + .whereType(); _interactiveComponentManager.dispatch(ctx.customId, [ctx, channels]); @@ -74,17 +87,22 @@ final class SelectInteractionCreatePacket implements ListenablePacket { ServerSelectContext() => dispatch( event: Event.serverChannelSelect, params: [ctx, channels.whereType()], - constraint: (String? customId) => customId == ctx.customId), + constraint: (String? customId) => customId == ctx.customId, + ), PrivateSelectContext() => dispatch( event: Event.serverChannelSelect, params: [ctx, channels.whereType()], - constraint: (String? customId) => customId == ctx.customId), + constraint: (String? customId) => customId == ctx.customId, + ), _ => _logger.warn('Select context $ctx not found'), }; } - Future _dispatchRoleSelectMenu(SelectContext ctx, - Map payload, DispatchEvent dispatch) async { + Future _dispatchRoleSelectMenu( + SelectContext ctx, + Map payload, + DispatchEvent dispatch, + ) async { final serverRoles = await _dataStore.role.fetch(payload['guild_id'], false); final resolvedData = payload['data']['resolved']; @@ -93,15 +111,19 @@ final class SelectInteractionCreatePacket implements ListenablePacket { final resolvedRoles = roleIds.map((id) => serverRoles[id]); dispatch( - event: Event.serverRoleSelect, - params: [ctx, resolvedRoles], - constraint: (String? customId) => customId == ctx.customId); + event: Event.serverRoleSelect, + params: [ctx, resolvedRoles], + constraint: (String? customId) => customId == ctx.customId, + ); _interactiveComponentManager.dispatch(ctx.customId, [ctx, resolvedRoles]); } - Future _dispatchUserSelectMenu(SelectContext ctx, - Map payload, DispatchEvent dispatch) async { + Future _dispatchUserSelectMenu( + SelectContext ctx, + Map payload, + DispatchEvent dispatch, + ) async { final resolvedData = payload['data']['resolved']; final userIds = Map.from(resolvedData['users']).keys; @@ -117,21 +139,27 @@ final class SelectInteractionCreatePacket implements ListenablePacket { } final resolvedResource = await switch (ctx) { - ServerSelectContext() => Future.wait(userIds.map((id) { - return _dataStore.member.get(payload['guild_id'], id, false); - })), - PrivateSelectContext() => - Future.wait(userIds.map((id) => _dataStore.user.get(id, false))), + ServerSelectContext() => Future.wait( + userIds.map((id) { + return _dataStore.member.get(payload['guild_id'], id, false); + }), + ), + PrivateSelectContext() => Future.wait( + userIds.map((id) => _dataStore.user.get(id, false)), + ), _ => Future.value([]), }; - _interactiveComponentManager - .dispatch(ctx.customId, [ctx, resolvedResource]); + _interactiveComponentManager.dispatch( + ctx.customId, + [ctx, resolvedResource], + ); dispatch( - event: event, - params: [ctx, resolvedResource], - constraint: (String? customId) => customId == ctx.customId); + event: event, + params: [ctx, resolvedResource], + constraint: (String? customId) => customId == ctx.customId, + ); } Future _dispatchMentionableSelectMenu( @@ -169,8 +197,11 @@ final class SelectInteractionCreatePacket implements ListenablePacket { ); } - Future _dispatchTextSelectMenu(SelectContext ctx, - Map payload, DispatchEvent dispatch) async { + Future _dispatchTextSelectMenu( + SelectContext ctx, + Map payload, + DispatchEvent dispatch, + ) async { final List resolvedText = List.from(payload['data']['values']); _interactiveComponentManager.dispatch(ctx.customId, [ctx, resolvedText]); @@ -179,11 +210,13 @@ final class SelectInteractionCreatePacket implements ListenablePacket { ServerSelectContext() => dispatch( event: Event.serverTextSelect, params: [ctx, resolvedText], - constraint: (String? customId) => customId == ctx.customId), + constraint: (String? customId) => customId == ctx.customId, + ), PrivateSelectContext() => dispatch( event: Event.privateTextSelect, params: [ctx, resolvedText], - constraint: (String? customId) => customId == ctx.customId), + constraint: (String? customId) => customId == ctx.customId, + ), _ => _logger.warn('Select context $ctx not found'), }; } From 40ddcbf98269ca99ebfcba2b6076ca238186dd75 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:19:47 +0100 Subject: [PATCH 83/93] style: improve code formatting and readability in packet listeners --- ...utomoderation_action_execution_packet.dart | 27 +- .../automoderation_rule_create_packet.dart | 4 +- .../automoderation_rule_delete_packet.dart | 4 +- .../automoderation_rule_update_packet.dart | 16 +- .../listeners/channel_create_packet.dart | 27 +- .../listeners/channel_delete_packet.dart | 10 +- .../listeners/channel_pins_update_packet.dart | 19 +- .../listeners/channel_update_packet.dart | 32 +- .../guild_audit_log_entry_create_packet.dart | 285 ++++++++++++------ .../listeners/guild_ban_add_packet.dart | 18 +- .../listeners/guild_ban_remove_packet.dart | 18 +- .../listeners/guild_create_packet.dart | 11 +- .../listeners/guild_delete_packet.dart | 2 +- .../listeners/guild_emojis_update_packet.dart | 22 +- .../listeners/guild_member_add_packet.dart | 6 +- .../listeners/guild_member_chunk_packet.dart | 23 +- .../listeners/guild_member_remove_packet.dart | 12 +- .../listeners/guild_member_update_packet.dart | 16 +- .../listeners/guild_role_create_packet.dart | 6 +- .../listeners/guild_role_delete_packet.dart | 12 +- .../listeners/guild_role_update_packet.dart | 12 +- .../guild_stickers_update_packet.dart | 22 +- .../listeners/guild_update_packet.dart | 11 +- .../listeners/invite_create_packet.dart | 9 +- .../listeners/invite_delete_packet.dart | 6 +- .../listeners/message_create_packet.dart | 10 +- .../message_poll_vote_add_packet.dart | 39 ++- .../message_poll_vote_remove_packet.dart | 39 ++- .../message_reaction_add_packet.dart | 5 +- .../message_reaction_remove_all_packet.dart | 37 ++- .../message_reaction_remove_packet.dart | 9 +- .../listeners/presence_update_packet.dart | 7 +- .../listeners/thread_list_sync_packet.dart | 5 +- .../thread_member_update_packet.dart | 23 +- .../thread_members_update_packet.dart | 53 ++-- .../packets/listeners/voice_join_packet.dart | 16 +- .../packets/listeners/voice_leave_packet.dart | 17 +- .../packets/listeners/voice_move_packet.dart | 19 +- 38 files changed, 630 insertions(+), 279 deletions(-) diff --git a/lib/src/infrastructure/internals/packets/listeners/automoderation_action_execution_packet.dart b/lib/src/infrastructure/internals/packets/listeners/automoderation_action_execution_packet.dart index 18f2b8a9..bf38106e 100644 --- a/lib/src/infrastructure/internals/packets/listeners/automoderation_action_execution_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/automoderation_action_execution_packet.dart @@ -20,14 +20,31 @@ final class AutomoderationActionExecutionPacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = await _dataStore.server.get(message.payload['guild_id'], false); - final member = await _dataStore.member.get(message.payload['guild_id'], message.payload['user_id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); + final member = await _dataStore.member.get( + message.payload['guild_id'], + message.payload['user_id'], + false, + ); - final triggerType = findInEnum(TriggerType.values, message.payload['rule_trigger_type']); + final triggerType = findInEnum( + TriggerType.values, + message.payload['rule_trigger_type'], + ); final action = Action( - type: findInEnum(ActionType.values, message.payload['action']['type']), - metadata: Helper.createOrNull(field: message.payload['metadata'], fn: () => ActionMetadata.fromJson(message.payload['metadata']))); + type: findInEnum( + ActionType.values, + message.payload['action']['type'], + ), + metadata: Helper.createOrNull( + field: message.payload['metadata'], + fn: () => ActionMetadata.fromJson(message.payload['metadata']), + ), + ); final ruleExecution = RuleExecution( ruleId: Snowflake.parse(message.payload['rule_id']), diff --git a/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_create_packet.dart b/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_create_packet.dart index 8992da04..f2311b58 100644 --- a/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_create_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_create_packet.dart @@ -13,7 +13,9 @@ final class AutomoderationRuleCreatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final rawRule = await _marshaller.serializers.rules.normalize(message.payload); + final rawRule = await _marshaller.serializers.rules.normalize( + message.payload, + ); final rule = await _marshaller.serializers.rules.serialize(rawRule); dispatch(event: Event.serverRuleCreate, params: [rule]); diff --git a/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_delete_packet.dart b/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_delete_packet.dart index 65d08826..eb9c66bd 100644 --- a/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_delete_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_delete_packet.dart @@ -13,7 +13,9 @@ final class AutomoderationRuleDeletePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final rawRule = await _marshaller.serializers.rules.normalize(message.payload); + final rawRule = await _marshaller.serializers.rules.normalize( + message.payload, + ); final rule = await _marshaller.serializers.rules.serialize(rawRule); dispatch(event: Event.serverRuleDelete, params: [rule]); diff --git a/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_update_packet.dart index 8a8530a3..4830cc79 100644 --- a/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/automoderation_rule_update_packet.dart @@ -16,11 +16,21 @@ final class AutoModerationRuleUpdatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { final ruleId = Snowflake.parse(message.payload['id']); - final ruleCacheKey = _marshaller.cacheKey.serverRules(message.payload['guild_id'], ruleId.value); + final ruleCacheKey = _marshaller.cacheKey.serverRules( + message.payload['guild_id'], + ruleId.value, + ); final rawBeforeRule = await _marshaller.cache?.get(ruleCacheKey); - final before = await Helper.createOrNullAsync(field: rawBeforeRule, fn: () async => await _marshaller.serializers.rules.serialize(rawBeforeRule!)); + final before = await Helper.createOrNullAsync( + field: rawBeforeRule, + fn: () async => await _marshaller.serializers.rules.serialize( + rawBeforeRule!, + ), + ); - final rawAfterRule = await _marshaller.serializers.rules.normalize(message.payload); + final rawAfterRule = await _marshaller.serializers.rules.normalize( + message.payload, + ); final after = await _marshaller.serializers.rules.serialize(rawAfterRule); dispatch(event: Event.serverRuleUpdate, params: [before, after]); diff --git a/lib/src/infrastructure/internals/packets/listeners/channel_create_packet.dart b/lib/src/infrastructure/internals/packets/listeners/channel_create_packet.dart index ca0f8d65..865f7816 100644 --- a/lib/src/infrastructure/internals/packets/listeners/channel_create_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/channel_create_packet.dart @@ -17,18 +17,25 @@ final class ChannelCreatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final rawChannel = - await _marshaller.serializers.channels.normalize(message.payload); - final channel = - await _marshaller.serializers.channels.serialize(rawChannel); + final rawChannel = await _marshaller.serializers.channels.normalize( + message.payload, + ); + final channel = await _marshaller.serializers.channels.serialize( + rawChannel, + ); return switch (channel) { - ServerChannel() => - dispatch(event: Event.serverChannelCreate, params: [channel]), - PrivateChannel() => - dispatch(event: Event.serverChannelCreate, params: [channel]), - _ => _logger - .warn("Unknown channel type: $channel contact Mineral's core team.") + ServerChannel() => dispatch( + event: Event.serverChannelCreate, + params: [channel], + ), + PrivateChannel() => dispatch( + event: Event.serverChannelCreate, + params: [channel], + ), + _ => _logger.warn( + "Unknown channel type: $channel contact Mineral's core team.", + ) }; } } diff --git a/lib/src/infrastructure/internals/packets/listeners/channel_delete_packet.dart b/lib/src/infrastructure/internals/packets/listeners/channel_delete_packet.dart index 6c87e9d7..c4c859dd 100644 --- a/lib/src/infrastructure/internals/packets/listeners/channel_delete_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/channel_delete_packet.dart @@ -13,10 +13,12 @@ final class ChannelDeletePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final rawChannel = - await _marshaller.serializers.channels.normalize(message.payload); - final channel = - await _marshaller.serializers.channels.serialize(rawChannel); + final rawChannel = await _marshaller.serializers.channels.normalize( + message.payload, + ); + final channel = await _marshaller.serializers.channels.serialize( + rawChannel, + ); final channelCacheKey = _marshaller.cacheKey.channel(channel.id.value); await _marshaller.cache?.remove(channelCacheKey); diff --git a/lib/src/infrastructure/internals/packets/listeners/channel_pins_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/channel_pins_update_packet.dart index 55dcfc6a..660914ed 100644 --- a/lib/src/infrastructure/internals/packets/listeners/channel_pins_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/channel_pins_update_packet.dart @@ -17,26 +17,33 @@ final class ChannelPinsUpdatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final channel = - await _dataStore.channel.get(message.payload['channel_id'], false); + final channel = await _dataStore.channel.get( + message.payload['channel_id'], + false, + ); return switch (channel) { ServerChannel() => registerServerChannelPins(channel, dispatch), PrivateChannel() => registerPrivateChannelPins(channel, dispatch), - _ => _logger - .warn("Unknown channel type: $channel contact Mineral's core team.") + _ => _logger.warn( + "Unknown channel type: $channel contact Mineral's core team.", + ) }; } Future registerServerChannelPins( - ServerChannel channel, DispatchEvent dispatch) async { + ServerChannel channel, + DispatchEvent dispatch, + ) async { final server = await _dataStore.server.get(channel.serverId.value, false); dispatch(event: Event.serverChannelPinsUpdate, params: [server, channel]); } Future registerPrivateChannelPins( - PrivateChannel channel, DispatchEvent dispatch) async { + PrivateChannel channel, + DispatchEvent dispatch, + ) async { dispatch(event: Event.privateChannelPinsUpdate, params: [channel]); } } diff --git a/lib/src/infrastructure/internals/packets/listeners/channel_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/channel_update_packet.dart index bdbb8a0d..3139f0b7 100644 --- a/lib/src/infrastructure/internals/packets/listeners/channel_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/channel_update_packet.dart @@ -17,24 +17,32 @@ final class ChannelUpdatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final rawBeforeChannel = - await _marshaller.cache?.get(message.payload['id']); + final rawBeforeChannel = await _marshaller.cache?.get( + message.payload['id'], + ); final before = rawBeforeChannel != null ? await _marshaller.serializers.channels.serialize(rawBeforeChannel) : null; - final rawChannel = - await _marshaller.serializers.channels.normalize(message.payload); - final channel = - await _marshaller.serializers.channels.serialize(rawChannel); + final rawChannel = await _marshaller.serializers.channels.normalize( + message.payload, + ); + final channel = await _marshaller.serializers.channels.serialize( + rawChannel, + ); return switch (channel) { - ServerChannel() => - dispatch(event: Event.serverChannelUpdate, params: [before, channel]), - PrivateChannel() => - dispatch(event: Event.privateChannelUpdate, params: [before, channel]), - _ => _logger - .warn("Unknown channel type: $channel contact Mineral's core team.") + ServerChannel() => dispatch( + event: Event.serverChannelUpdate, + params: [before, channel], + ), + PrivateChannel() => dispatch( + event: Event.privateChannelUpdate, + params: [before, channel], + ), + _ => _logger.warn( + "Unknown channel type: $channel contact Mineral's core team.", + ) }; } } diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_audit_log_entry_create_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_audit_log_entry_create_packet.dart index 9f83d310..c63531f6 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_audit_log_entry_create_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_audit_log_entry_create_packet.dart @@ -34,153 +34,258 @@ final class GuildAuditLogEntryCreatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { final auditLogType = AuditLogType.values.firstWhere( - (element) => element.value == message.payload['action_type'], - orElse: () => AuditLogType.unknown); + (element) => element.value == message.payload['action_type'], + orElse: () => AuditLogType.unknown, + ); final auditLog = await switch (auditLogType) { // Emoji - AuditLogType.emojiCreate => emojiCreateAuditLogHandler(message.payload), - AuditLogType.emojiUpdate => emojiUpdateAuditLogHandler(message.payload), - AuditLogType.emojiDelete => emojiDeleteAuditLogHandler(message.payload), + AuditLogType.emojiCreate => emojiCreateAuditLogHandler( + message.payload, + ), + AuditLogType.emojiUpdate => emojiUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.emojiDelete => emojiDeleteAuditLogHandler( + message.payload, + ), // Role - AuditLogType.roleCreate => roleCreateAuditLogHandler(message.payload), - AuditLogType.roleUpdate => roleUpdateAuditLogHandler(message.payload), - AuditLogType.roleDelete => roleDeleteAuditLogHandler(message.payload), + AuditLogType.roleCreate => roleCreateAuditLogHandler( + message.payload, + ), + AuditLogType.roleUpdate => roleUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.roleDelete => roleDeleteAuditLogHandler( + message.payload, + ), // Server - AuditLogType.guildUpdate => serverUpdateAuditLogHandler(message.payload), + AuditLogType.guildUpdate => serverUpdateAuditLogHandler( + message.payload, + ), // Channel - AuditLogType.channelCreate => - channelCreateAuditLogHandler(message.payload), - AuditLogType.channelUpdate => - channelUpdateAuditLogHandler(message.payload), - AuditLogType.channelDelete => - channelDeleteAuditLogHandler(message.payload), + AuditLogType.channelCreate => channelCreateAuditLogHandler( + message.payload, + ), + AuditLogType.channelUpdate => channelUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.channelDelete => channelDeleteAuditLogHandler( + message.payload, + ), // Channel Overwrite AuditLogType.channelOverwriteCreate => - channelOverwriteCreateAuditLogHandler(message.payload), + channelOverwriteCreateAuditLogHandler( + message.payload, + ), AuditLogType.channelOverwriteUpdate => - channelOverwriteUpdateAuditLogHandler(message.payload), + channelOverwriteUpdateAuditLogHandler( + message.payload, + ), AuditLogType.channelOverwriteDelete => - channelOverwriteDeleteAuditLogHandler(message.payload), + channelOverwriteDeleteAuditLogHandler( + message.payload, + ), // Member - AuditLogType.memberKick => memberKickAuditLogHandler(message.payload), - AuditLogType.memberPrune => memberPruneAuditLogHandler(message.payload), - AuditLogType.memberBanAdd => memberBanAddAuditLogHandler(message.payload), - AuditLogType.memberBanRemove => - memberBanRemoveAuditLogHandler(message.payload), - AuditLogType.memberUpdate => memberUpdateAuditLogHandler(message.payload), - AuditLogType.memberRoleUpdate => - memberRoleUpdateAuditLogHandler(message.payload), - AuditLogType.memberMove => memberMoveAuditLogHandler(message.payload), - AuditLogType.memberDisconnect => - memberDisconnectAuditLogHandler(message.payload), - AuditLogType.botAdd => botAddAuditLogHandler(message.payload), + AuditLogType.memberKick => memberKickAuditLogHandler( + message.payload, + ), + AuditLogType.memberPrune => memberPruneAuditLogHandler( + message.payload, + ), + AuditLogType.memberBanAdd => memberBanAddAuditLogHandler( + message.payload, + ), + AuditLogType.memberBanRemove => memberBanRemoveAuditLogHandler( + message.payload, + ), + AuditLogType.memberUpdate => memberUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.memberRoleUpdate => memberRoleUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.memberMove => memberMoveAuditLogHandler( + message.payload, + ), + AuditLogType.memberDisconnect => memberDisconnectAuditLogHandler( + message.payload, + ), + AuditLogType.botAdd => botAddAuditLogHandler( + message.payload, + ), // Invite - AuditLogType.inviteCreate => inviteCreateAuditLogHandler(message.payload), - AuditLogType.inviteUpdate => inviteUpdateAuditLogHandler(message.payload), - AuditLogType.inviteDelete => inviteDeleteAuditLogHandler(message.payload), + AuditLogType.inviteCreate => inviteCreateAuditLogHandler( + message.payload, + ), + AuditLogType.inviteUpdate => inviteUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.inviteDelete => inviteDeleteAuditLogHandler( + message.payload, + ), // Webhook - AuditLogType.webhookCreate => - webhookCreateAuditLogHandler(message.payload), - AuditLogType.webhookUpdate => - webhookUpdateAuditLogHandler(message.payload), - AuditLogType.webhookDelete => - webhookDeleteAuditLogHandler(message.payload), + AuditLogType.webhookCreate => webhookCreateAuditLogHandler( + message.payload, + ), + AuditLogType.webhookUpdate => webhookUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.webhookDelete => webhookDeleteAuditLogHandler( + message.payload, + ), // Message - AuditLogType.messageDelete => - messageDeleteAuditLogHandler(message.payload), - AuditLogType.messageBulkDelete => - messageBulkDeleteAuditLogHandler(message.payload), - AuditLogType.messagePin => messagePinAuditLogHandler(message.payload), - AuditLogType.messageUnpin => messageUnpinAuditLogHandler(message.payload), + AuditLogType.messageDelete => messageDeleteAuditLogHandler( + message.payload, + ), + AuditLogType.messageBulkDelete => messageBulkDeleteAuditLogHandler( + message.payload, + ), + AuditLogType.messagePin => messagePinAuditLogHandler( + message.payload, + ), + AuditLogType.messageUnpin => messageUnpinAuditLogHandler( + message.payload, + ), // Integration - AuditLogType.integrationCreate => - integrationCreateAuditLogHandler(message.payload), - AuditLogType.integrationUpdate => - integrationUpdateAuditLogHandler(message.payload), - AuditLogType.integrationDelete => - integrationDeleteAuditLogHandler(message.payload), + AuditLogType.integrationCreate => integrationCreateAuditLogHandler( + message.payload, + ), + AuditLogType.integrationUpdate => integrationUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.integrationDelete => integrationDeleteAuditLogHandler( + message.payload, + ), // Stage Instance - AuditLogType.stageInstanceCreate => - stageInstanceCreateAuditLogHandler(message.payload), - AuditLogType.stageInstanceUpdate => - stageInstanceUpdateAuditLogHandler(message.payload), - AuditLogType.stageInstanceDelete => - stageInstanceDeleteAuditLogHandler(message.payload), + AuditLogType.stageInstanceCreate => stageInstanceCreateAuditLogHandler( + message.payload, + ), + AuditLogType.stageInstanceUpdate => stageInstanceUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.stageInstanceDelete => stageInstanceDeleteAuditLogHandler( + message.payload, + ), // Sticker - AuditLogType.stickerCreate => - stickerCreateAuditLogHandler(message.payload), - AuditLogType.stickerUpdate => - stickerUpdateAuditLogHandler(message.payload), - AuditLogType.stickerDelete => - stickerDeleteAuditLogHandler(message.payload), + AuditLogType.stickerCreate => stickerCreateAuditLogHandler( + message.payload, + ), + AuditLogType.stickerUpdate => stickerUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.stickerDelete => stickerDeleteAuditLogHandler( + message.payload, + ), // Guild Scheduled Event AuditLogType.guildScheduledEventCreate => - guildScheduledEventCreateAuditLogHandler(message.payload), + guildScheduledEventCreateAuditLogHandler( + message.payload, + ), AuditLogType.guildScheduledEventUpdate => - guildScheduledEventUpdateAuditLogHandler(message.payload), + guildScheduledEventUpdateAuditLogHandler( + message.payload, + ), AuditLogType.guildScheduledEventDelete => - guildScheduledEventDeleteAuditLogHandler(message.payload), + guildScheduledEventDeleteAuditLogHandler( + message.payload, + ), // Thread - AuditLogType.threadCreate => threadCreateAuditLogHandler(message.payload), - AuditLogType.threadUpdate => threadUpdateAuditLogHandler(message.payload), - AuditLogType.threadDelete => threadDeleteAuditLogHandler(message.payload), + AuditLogType.threadCreate => threadCreateAuditLogHandler( + message.payload, + ), + AuditLogType.threadUpdate => threadUpdateAuditLogHandler( + message.payload, + ), + AuditLogType.threadDelete => threadDeleteAuditLogHandler( + message.payload, + ), // Application Command Permission AuditLogType.applicationCommandPermissionUpdate => - applicationCommandPermissionUpdateAuditLogHandler(message.payload), + applicationCommandPermissionUpdateAuditLogHandler( + message.payload, + ), // Auto Moderation AuditLogType.autoModerationRuleCreate => - autoModerationRuleCreateAuditLogHandler(message.payload), + autoModerationRuleCreateAuditLogHandler( + message.payload, + ), AuditLogType.autoModerationRuleUpdate => - autoModerationRuleUpdateAuditLogHandler(message.payload), + autoModerationRuleUpdateAuditLogHandler( + message.payload, + ), AuditLogType.autoModerationRuleDelete => - autoModerationRuleDeleteAuditLogHandler(message.payload), + autoModerationRuleDeleteAuditLogHandler( + message.payload, + ), AuditLogType.autoModerationBlockMessage => - autoModerationBlockMessageAuditLogHandler(message.payload), + autoModerationBlockMessageAuditLogHandler( + message.payload, + ), AuditLogType.autoModerationFlagToChannel => - autoModerationFlagToChannelAuditLogHandler(message.payload), + autoModerationFlagToChannelAuditLogHandler( + message.payload, + ), AuditLogType.autoModerationUserCommunicationDisabled => - autoModerationUserCommunicationDisabledAuditLogHandler(message.payload), + autoModerationUserCommunicationDisabledAuditLogHandler( + message.payload, + ), // Creator Monetization AuditLogType.creatorMonetizationRequestCreated => - creatorMonetizationRequestCreatedAuditLogHandler(message.payload), + creatorMonetizationRequestCreatedAuditLogHandler( + message.payload, + ), AuditLogType.creatorMonetizationTermsAccepted => - creatorMonetizationTermsAcceptedAuditLogHandler(message.payload), + creatorMonetizationTermsAcceptedAuditLogHandler( + message.payload, + ), // Onboarding AuditLogType.onboardingPromptCreate => - onboardingPromptCreateAuditLogHandler(message.payload), + onboardingPromptCreateAuditLogHandler( + message.payload, + ), AuditLogType.onboardingPromptUpdate => - onboardingPromptUpdateAuditLogHandler(message.payload), + onboardingPromptUpdateAuditLogHandler( + message.payload, + ), AuditLogType.onboardingPromptDelete => - onboardingPromptDeleteAuditLogHandler(message.payload), - AuditLogType.onboardingCreate => - onboardingCreateAuditLogHandler(message.payload), - AuditLogType.onboardingUpdate => - onboardingUpdateAuditLogHandler(message.payload), + onboardingPromptDeleteAuditLogHandler( + message.payload, + ), + AuditLogType.onboardingCreate => onboardingCreateAuditLogHandler( + message.payload, + ), + AuditLogType.onboardingUpdate => onboardingUpdateAuditLogHandler( + message.payload, + ), // Home Settings - AuditLogType.homeSettingsCreate => - homeSettingsCreateAuditLogHandler(message.payload), - AuditLogType.homeSettingsUpdate => - homeSettingsUpdateAuditLogHandler(message.payload), - _ => unknownAuditLogHandler(message.payload), + AuditLogType.homeSettingsCreate => homeSettingsCreateAuditLogHandler( + message.payload, + ), + AuditLogType.homeSettingsUpdate => homeSettingsUpdateAuditLogHandler( + message.payload, + ), + _ => unknownAuditLogHandler( + message.payload, + ), }; if (auditLog case final UnknownAuditLogAction action) { diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_ban_add_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_ban_add_packet.dart index 1f797654..7999b450 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_ban_add_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_ban_add_packet.dart @@ -16,14 +16,20 @@ final class GuildBanAddPacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); - final user = - await _dataStore.user.get(message.payload['user']['id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); + final user = await _dataStore.user.get( + message.payload['user']['id'], + false, + ); if (user case User(:final id)) { - final memberCacheKey = - _marshaller.cacheKey.member(server.id.value, id.value); + final memberCacheKey = _marshaller.cacheKey.member( + server.id.value, + id.value, + ); await _marshaller.cache?.remove(memberCacheKey); dispatch(event: Event.serverBanAdd, params: [server, user]); diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_ban_remove_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_ban_remove_packet.dart index 0f7810e7..0b34ced3 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_ban_remove_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_ban_remove_packet.dart @@ -15,14 +15,20 @@ final class GuildBanRemovePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); - final user = - await _dataStore.user.get(message.payload['user']['id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); + final user = await _dataStore.user.get( + message.payload['user']['id'], + false, + ); if (user case User(:final id)) { - final memberCacheKey = - _marshaller.cacheKey.member(server.id.value, id.value); + final memberCacheKey = _marshaller.cacheKey.member( + server.id.value, + id.value, + ); await _marshaller.cache?.remove(memberCacheKey); dispatch(event: Event.serverBanRemove, params: [server, user]); diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_create_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_create_packet.dart index 35b22e1e..e51af70f 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_create_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_create_packet.dart @@ -1,8 +1,8 @@ import 'package:mineral/container.dart'; import 'package:mineral/src/api/common/bot/bot.dart'; import 'package:mineral/src/domains/commands/command_interaction_manager.dart'; -import 'package:mineral/src/domains/services/marshaller/marshaller.dart'; import 'package:mineral/src/domains/events/event.dart'; +import 'package:mineral/src/domains/services/marshaller/marshaller.dart'; import 'package:mineral/src/infrastructure/internals/packets/listenable_packet.dart'; import 'package:mineral/src/infrastructure/internals/packets/packet_type.dart'; import 'package:mineral/src/infrastructure/internals/wss/shard_message.dart'; @@ -50,9 +50,12 @@ final class GuildCreatePacket implements ListenablePacket { }); }).wait; - final rawServer = - await _marshaller.serializers.server.normalize(message.payload); - final server = await _marshaller.serializers.server.serialize(rawServer); + final rawServer = await _marshaller.serializers.server.normalize( + message.payload, + ); + final server = await _marshaller.serializers.server.serialize( + rawServer, + ); final bot = ioc.resolve(); diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_delete_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_delete_packet.dart index 5cb451a9..305be583 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_delete_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_delete_packet.dart @@ -1,6 +1,6 @@ import 'package:mineral/src/domains/container/ioc_container.dart'; -import 'package:mineral/src/domains/services/marshaller/marshaller.dart'; import 'package:mineral/src/domains/events/event.dart'; +import 'package:mineral/src/domains/services/marshaller/marshaller.dart'; import 'package:mineral/src/infrastructure/internals/packets/listenable_packet.dart'; import 'package:mineral/src/infrastructure/internals/packets/packet_type.dart'; import 'package:mineral/src/infrastructure/internals/wss/shard_message.dart'; diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_emojis_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_emojis_update_packet.dart index 91e90b29..3d59d8c4 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_emojis_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_emojis_update_packet.dart @@ -15,11 +15,14 @@ final class GuildEmojisUpdatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); - final emojis = - await List.from(message.payload['emojis']).map((element) async { + final emojis = await List.from( + message.payload['emojis'], + ).map((element) async { final raw = await _marshaller.serializers.emojis.normalize({ ...element, 'guild_id': server.id.value, @@ -27,9 +30,12 @@ final class GuildEmojisUpdatePacket implements ListenablePacket { return _marshaller.serializers.emojis.serialize(raw); }).wait; - dispatch(event: Event.serverEmojisUpdate, params: [ - emojis.asMap().map((_, element) => MapEntry(element.id, element)), - server - ]); + dispatch( + event: Event.serverEmojisUpdate, + params: [ + emojis.asMap().map((_, element) => MapEntry(element.id, element)), + server + ], + ); } } diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_member_add_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_member_add_packet.dart index a2067bff..dceb2708 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_member_add_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_member_add_packet.dart @@ -15,8 +15,10 @@ final class GuildMemberAddPacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); final rawMember = await _marshaller.serializers.member.normalize({ 'server_id': server.id, diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_member_chunk_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_member_chunk_packet.dart index 9fd01a5d..d8bc4509 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_member_chunk_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_member_chunk_packet.dart @@ -22,11 +22,14 @@ final class GuildMemberChunkPacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); - final members = - await List.from(message.payload['members']).map((element) async { + final members = await List.from( + message.payload['members'], + ).map((element) async { final raw = await _marshaller.serializers.member.normalize({ ...element, 'guild_id': server.id.value, @@ -35,13 +38,13 @@ final class GuildMemberChunkPacket implements ListenablePacket { return _marshaller.serializers.member.serialize(raw); }).wait; - final presences = - List>.from(message.payload['presences']) - .map(Presence.fromJson) - .toList(); + final presences = List>.from( + message.payload['presences'], + ).map(Presence.fromJson).toList(); - final resolver = _wss.requestQueue - .firstWhereOrNull((element) => element.uid == message.payload['nonce']); + final resolver = _wss.requestQueue.firstWhereOrNull( + (element) => element.uid == message.payload['nonce'], + ); if (resolver != null && !resolver.completer.isCompleted) { if (resolver.targetKeys.length == 1 && resolver.targetKeys.contains('presences')) { diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_member_remove_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_member_remove_packet.dart index a2703ea3..d4d032c4 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_member_remove_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_member_remove_packet.dart @@ -13,10 +13,14 @@ final class GuildMemberRemovePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); - final user = - await _dataStore.user.get(message.payload['user']['id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); + final user = await _dataStore.user.get( + message.payload['user']['id'], + false, + ); dispatch(event: Event.serverMemberRemove, params: [server, user]); } diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_member_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_member_update_packet.dart index cd0416a9..677e069f 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_member_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_member_update_packet.dart @@ -18,11 +18,17 @@ final class GuildMemberUpdatePacket implements ListenablePacket { final serverId = message.payload['guild_id']; final server = await _dataStore.server.get(serverId, false); - final before = - _dataStore.member.get(serverId, message.payload['user']['id'], false); - final rawMember = - await _marshaller.serializers.member.normalize(message.payload); - final member = await _marshaller.serializers.member.serialize(rawMember); + final before = _dataStore.member.get( + serverId, + message.payload['user']['id'], + false, + ); + final rawMember = await _marshaller.serializers.member.normalize( + message.payload, + ); + final member = await _marshaller.serializers.member.serialize( + rawMember, + ); final cacheKey = _marshaller.cacheKey.member(serverId, member.id.value); await _marshaller.cache?.put(cacheKey, member); diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_role_create_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_role_create_packet.dart index 7dd518e2..5c5688d4 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_role_create_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_role_create_packet.dart @@ -15,8 +15,10 @@ final class GuildRoleCreatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); final rawRole = await _marshaller.serializers.role.normalize({ ...message.payload['role'], 'guild_id': server.id, diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_role_delete_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_role_delete_packet.dart index 5c2600db..09ce9a17 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_role_delete_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_role_delete_packet.dart @@ -15,13 +15,17 @@ final class GuildRoleDeletePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); final roleId = message.payload['role_id']; - final roleCacheKey = - _marshaller.cacheKey.serverRole(server.id.value, roleId); + final roleCacheKey = _marshaller.cacheKey.serverRole( + server.id.value, + roleId, + ); final rawRole = await _marshaller.cache?.get(roleCacheKey); final role = rawRole != null ? await _marshaller.serializers.role.serialize(rawRole) diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_role_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_role_update_packet.dart index 66613e6d..e5f73038 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_role_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_role_update_packet.dart @@ -15,10 +15,14 @@ final class GuildRoleUpdatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); - final roleCacheKey = _marshaller.cacheKey - .serverRole(server.id.value, message.payload['role']['id']); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); + final roleCacheKey = _marshaller.cacheKey.serverRole( + server.id.value, + message.payload['role']['id'], + ); final rawBefore = await _marshaller.cache?.get(roleCacheKey); final before = rawBefore != null diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_stickers_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_stickers_update_packet.dart index 50a7d176..ac1d2671 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_stickers_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_stickers_update_packet.dart @@ -15,11 +15,14 @@ final class GuildStickersUpdatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); - final stickers = - await List.from(message.payload['stickers']).map((element) async { + final stickers = await List.from( + message.payload['stickers'], + ).map((element) async { final raw = await _marshaller.serializers.sticker.normalize({ 'server_id': server.id, ...element, @@ -28,9 +31,12 @@ final class GuildStickersUpdatePacket implements ListenablePacket { return _marshaller.serializers.sticker.serialize(raw); }).wait; - dispatch(event: Event.serverStickersUpdate, params: [ - server, - stickers.asMap().map((_, value) => MapEntry(value.id, value)) - ]); + dispatch( + event: Event.serverStickersUpdate, + params: [ + server, + stickers.asMap().map((_, value) => MapEntry(value.id, value)) + ], + ); } } diff --git a/lib/src/infrastructure/internals/packets/listeners/guild_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/guild_update_packet.dart index 4cebde44..9cf55fbe 100644 --- a/lib/src/infrastructure/internals/packets/listeners/guild_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/guild_update_packet.dart @@ -1,6 +1,6 @@ import 'package:mineral/src/domains/container/ioc_container.dart'; -import 'package:mineral/src/domains/services/marshaller/marshaller.dart'; import 'package:mineral/src/domains/events/event.dart'; +import 'package:mineral/src/domains/services/marshaller/marshaller.dart'; import 'package:mineral/src/infrastructure/internals/packets/listenable_packet.dart'; import 'package:mineral/src/infrastructure/internals/packets/packet_type.dart'; import 'package:mineral/src/infrastructure/internals/wss/shard_message.dart'; @@ -19,9 +19,12 @@ final class GuildUpdatePacket implements ListenablePacket { ? await _marshaller.serializers.server.serialize(rawServer) : null; - final rawAfter = - await _marshaller.serializers.server.normalize(message.payload); - final after = await _marshaller.serializers.server.serialize(rawAfter); + final rawAfter = await _marshaller.serializers.server.normalize( + message.payload, + ); + final after = await _marshaller.serializers.server.serialize( + rawAfter, + ); dispatch(event: Event.serverUpdate, params: [before, after]); } diff --git a/lib/src/infrastructure/internals/packets/listeners/invite_create_packet.dart b/lib/src/infrastructure/internals/packets/listeners/invite_create_packet.dart index dd6de81c..e7612eb6 100644 --- a/lib/src/infrastructure/internals/packets/listeners/invite_create_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/invite_create_packet.dart @@ -13,9 +13,12 @@ final class InviteCreatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final normalized = - await _marshaller.serializers.invite.normalize(message.payload); - final invite = await _marshaller.serializers.invite.serialize(normalized); + final normalized = await _marshaller.serializers.invite.normalize( + message.payload, + ); + final invite = await _marshaller.serializers.invite.serialize( + normalized, + ); dispatch(event: Event.inviteCreate, params: [invite]); } diff --git a/lib/src/infrastructure/internals/packets/listeners/invite_delete_packet.dart b/lib/src/infrastructure/internals/packets/listeners/invite_delete_packet.dart index 92237c19..de145429 100644 --- a/lib/src/infrastructure/internals/packets/listeners/invite_delete_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/invite_delete_packet.dart @@ -14,8 +14,10 @@ final class InviteDeletePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { final code = message.payload['code']; - final channel = - await _datastore.channel.get(message.payload['channel_id'], false); + final channel = await _datastore.channel.get( + message.payload['channel_id'], + false, + ); dispatch(event: Event.inviteDelete, params: [code, channel]); } diff --git a/lib/src/infrastructure/internals/packets/listeners/message_create_packet.dart b/lib/src/infrastructure/internals/packets/listeners/message_create_packet.dart index f7408c9b..3e500c61 100644 --- a/lib/src/infrastructure/internals/packets/listeners/message_create_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/message_create_packet.dart @@ -14,13 +14,15 @@ final class MessageCreatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - if (![MessageType.initial.value, MessageType.reply.value] - .contains(message.payload['type'])) { + if (![MessageType.initial.value, MessageType.reply.value].contains( + message.payload['type'], + )) { return; } - final payload = - await _marshaller.serializers.message.normalize(message.payload); + final payload = await _marshaller.serializers.message.normalize( + message.payload, + ); final serializedMessage = await _marshaller.serializers.message.serialize(payload); diff --git a/lib/src/infrastructure/internals/packets/listeners/message_poll_vote_add_packet.dart b/lib/src/infrastructure/internals/packets/listeners/message_poll_vote_add_packet.dart index dfb84863..e3ccd455 100644 --- a/lib/src/infrastructure/internals/packets/listeners/message_poll_vote_add_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/message_poll_vote_add_packet.dart @@ -24,18 +24,43 @@ final class MessagePollVoteAddPacket implements ListenablePacket { } } - - Future _server(Map payload, User user, DispatchEvent dispatch) async { + Future _server( + Map payload, + User user, + DispatchEvent dispatch, + ) async { final server = await _dataStore.server.get(payload['guild_id'], false); - final message = await _dataStore.message.get(payload['channel_id'], payload['message_id'], false); - final answer = await _dataStore.message.getPollVotes(server.id, Snowflake.parse(payload['channel_id']), message!.id, payload['answer_id']); + final message = await _dataStore.message.get( + payload['channel_id'], + payload['message_id'], + false, + ); + final answer = await _dataStore.message.getPollVotes( + server.id, + Snowflake.parse(payload['channel_id']), + message!.id, + payload['answer_id'], + ); dispatch(event: Event.serverPollVoteAdd, params: [answer, user]); } - Future _private(Map payload, User user, DispatchEvent dispatch) async { - final message = await _dataStore.message.get(payload['channel_id'], payload['message_id'], false); - final answer = await _dataStore.message.getPollVotes(null, Snowflake.parse(payload['channel_id']), message!.id, payload['answer_id']); + Future _private( + Map payload, + User user, + DispatchEvent dispatch, + ) async { + final message = await _dataStore.message.get( + payload['channel_id'], + payload['message_id'], + false, + ); + final answer = await _dataStore.message.getPollVotes( + null, + Snowflake.parse(payload['channel_id']), + message!.id, + payload['answer_id'], + ); dispatch(event: Event.privatePollVoteAdd, params: [answer, user]); } diff --git a/lib/src/infrastructure/internals/packets/listeners/message_poll_vote_remove_packet.dart b/lib/src/infrastructure/internals/packets/listeners/message_poll_vote_remove_packet.dart index 99b2b1fe..74d62809 100644 --- a/lib/src/infrastructure/internals/packets/listeners/message_poll_vote_remove_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/message_poll_vote_remove_packet.dart @@ -24,18 +24,43 @@ final class MessagePollVoteRemovePacket implements ListenablePacket { } } - - Future _server(Map payload, User user, DispatchEvent dispatch) async { + Future _server( + Map payload, + User user, + DispatchEvent dispatch, + ) async { final server = await _dataStore.server.get(payload['guild_id'], false); - final message = await _dataStore.message.get(payload['channel_id'], payload['message_id'], false); - final answer = await _dataStore.message.getPollVotes(server.id, Snowflake.parse(payload['channel_id']), message!.id, payload['answer_id']); + final message = await _dataStore.message.get( + payload['channel_id'], + payload['message_id'], + false, + ); + final answer = await _dataStore.message.getPollVotes( + server.id, + Snowflake.parse(payload['channel_id']), + message!.id, + payload['answer_id'], + ); dispatch(event: Event.serverPollVoteRemove, params: [answer, user]); } - Future _private(Map payload, User user, DispatchEvent dispatch) async { - final message = await _dataStore.message.get(payload['channel_id'], payload['message_id'], false); - final answer = await _dataStore.message.getPollVotes(null, Snowflake.parse(payload['channel_id']), message!.id, payload['answer_id']); + Future _private( + Map payload, + User user, + DispatchEvent dispatch, + ) async { + final message = await _dataStore.message.get( + payload['channel_id'], + payload['message_id'], + false, + ); + final answer = await _dataStore.message.getPollVotes( + null, + Snowflake.parse(payload['channel_id']), + message!.id, + payload['answer_id'], + ); dispatch(event: Event.privatePollVoteRemove, params: [answer, user]); } diff --git a/lib/src/infrastructure/internals/packets/listeners/message_reaction_add_packet.dart b/lib/src/infrastructure/internals/packets/listeners/message_reaction_add_packet.dart index 814b7bb8..e9140ff0 100644 --- a/lib/src/infrastructure/internals/packets/listeners/message_reaction_add_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/message_reaction_add_packet.dart @@ -14,8 +14,9 @@ final class MessageReactionAddPacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final raw = - await _marshaller.serializers.reaction.normalize(message.payload); + final raw = await _marshaller.serializers.reaction.normalize( + message.payload, + ); final reaction = await _marshaller.serializers.reaction.serialize(raw); final serverId = Snowflake.nullable(message.payload['guild_id']); diff --git a/lib/src/infrastructure/internals/packets/listeners/message_reaction_remove_all_packet.dart b/lib/src/infrastructure/internals/packets/listeners/message_reaction_remove_all_packet.dart index 3da655d5..52472fae 100644 --- a/lib/src/infrastructure/internals/packets/listeners/message_reaction_remove_all_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/message_reaction_remove_all_packet.dart @@ -25,18 +25,41 @@ final class MessageReactionRemoveAllPacket implements ListenablePacket { } } - Future _server(DispatchEvent dispatch, Snowflake serverId, Snowflake channelId, Snowflake messageId) async { - final channel = await _dataStore.channel.get(channelId.value, false); + Future _server( + DispatchEvent dispatch, + Snowflake serverId, + Snowflake channelId, + Snowflake messageId, + ) async { + final channel = await _dataStore.channel.get( + channelId.value, + false, + ); final message = await channel?.messages.get(messageId); final server = await _dataStore.server.get(serverId.value, false); - dispatch(event: Event.serverMessageReactionRemoveAll, params: [server, channel, message]); + dispatch( + event: Event.serverMessageReactionRemoveAll, + params: [server, channel, message], + ); } - Future _private(DispatchEvent dispatch, Snowflake channelId, Snowflake messageId) async { - final channel = await _dataStore.channel.get(channelId.value, false); - final message = await channel?.messages.get(messageId); + Future _private( + DispatchEvent dispatch, + Snowflake channelId, + Snowflake messageId, + ) async { + final channel = await _dataStore.channel.get( + channelId.value, + false, + ); + final message = await channel?.messages.get( + messageId, + ); - dispatch(event: Event.privateMessageReactionRemoveAll, params: [channel, message]); + dispatch( + event: Event.privateMessageReactionRemoveAll, + params: [channel, message], + ); } } diff --git a/lib/src/infrastructure/internals/packets/listeners/message_reaction_remove_packet.dart b/lib/src/infrastructure/internals/packets/listeners/message_reaction_remove_packet.dart index 654cbb13..be7f557b 100644 --- a/lib/src/infrastructure/internals/packets/listeners/message_reaction_remove_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/message_reaction_remove_packet.dart @@ -14,9 +14,12 @@ final class MessageReactionRemovePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final raw = - await _marshaller.serializers.reaction.normalize(message.payload); - final reaction = await _marshaller.serializers.reaction.serialize(raw); + final raw = await _marshaller.serializers.reaction.normalize( + message.payload, + ); + final reaction = await _marshaller.serializers.reaction.serialize( + raw, + ); final serverId = Snowflake.nullable(message.payload['guild_id']); final event = switch (serverId) { diff --git a/lib/src/infrastructure/internals/packets/listeners/presence_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/presence_update_packet.dart index 02a66120..3a7944be 100644 --- a/lib/src/infrastructure/internals/packets/listeners/presence_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/presence_update_packet.dart @@ -14,8 +14,11 @@ final class PresenceUpdatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final member = await _dataStore.member - .get(message.payload['guild_id'], message.payload['user']['id'], false); + final member = await _dataStore.member.get( + message.payload['guild_id'], + message.payload['user']['id'], + false, + ); final presence = Presence.fromJson(message.payload); dispatch(event: Event.serverPresenceUpdate, params: [member, presence]); diff --git a/lib/src/infrastructure/internals/packets/listeners/thread_list_sync_packet.dart b/lib/src/infrastructure/internals/packets/listeners/thread_list_sync_packet.dart index 4f53e2c0..d73e3eb4 100644 --- a/lib/src/infrastructure/internals/packets/listeners/thread_list_sync_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/thread_list_sync_packet.dart @@ -21,8 +21,9 @@ final class ThreadListSyncPacket implements ListenablePacket { final threadChannels = payload['threads'] as List>; final threads = await threadChannels.map((element) async { - final threadRaw = - await _marshaller.serializers.channels.normalize(element); + final threadRaw = await _marshaller.serializers.channels.normalize( + element, + ); return _marshaller.serializers.channels.serialize(threadRaw); }).wait; diff --git a/lib/src/infrastructure/internals/packets/listeners/thread_member_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/thread_member_update_packet.dart index 739bcb29..a74cc12a 100644 --- a/lib/src/infrastructure/internals/packets/listeners/thread_member_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/thread_member_update_packet.dart @@ -13,15 +13,24 @@ final class ThreadMemberUpdatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); - final thread = await _dataStore.channel.get(message.payload['id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); + final thread = await _dataStore.channel.get( + message.payload['id'], + false, + ); - final member = await _dataStore.member - .get(server.id.value, message.payload['user_id'], false); + final member = await _dataStore.member.get( + server.id.value, + message.payload['user_id'], + false, + ); dispatch( - event: Event.serverThreadMemberUpdate, - params: [server, thread, member]); + event: Event.serverThreadMemberUpdate, + params: [server, thread, member], + ); } } diff --git a/lib/src/infrastructure/internals/packets/listeners/thread_members_update_packet.dart b/lib/src/infrastructure/internals/packets/listeners/thread_members_update_packet.dart index a7c3fbeb..82ab50da 100644 --- a/lib/src/infrastructure/internals/packets/listeners/thread_members_update_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/thread_members_update_packet.dart @@ -16,40 +16,59 @@ final class ThreadMembersUpdatePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final server = - await _dataStore.server.get(message.payload['guild_id'], false); - final thread = await _dataStore.channel - .get(message.payload['id'], false); + final server = await _dataStore.server.get( + message.payload['guild_id'], + false, + ); + final thread = await _dataStore.channel.get( + message.payload['id'], + false, + ); await List.from(message.payload['added_members']).map((element) async { Member? member; if (element['member'] != null) { - member = await _dataStore.member - .get(message.payload['guild_id'], element['user_id'], false); + member = await _dataStore.member.get( + message.payload['guild_id'], + element['user_id'], + false, + ); } else { - final rawMember = - await _marshaller.serializers.member.normalize(element); - member = await _marshaller.serializers.member.serialize(rawMember); + final rawMember = await _marshaller.serializers.member.normalize( + element, + ); + member = await _marshaller.serializers.member.serialize( + rawMember, + ); } dispatch( - event: Event.serverThreadMemberAdd, params: [server, thread, member]); + event: Event.serverThreadMemberAdd, + params: [server, thread, member], + ); }).wait; await List.from(message.payload['removed_member_ids']).map((element) async { Member? member; if (element['member'] != null) { - member = await _dataStore.member - .get(message.payload['guild_id'], element['user_id'], false); + member = await _dataStore.member.get( + message.payload['guild_id'], + element['user_id'], + false, + ); } else { - final rawMember = - await _marshaller.serializers.member.normalize(element); - member = await _marshaller.serializers.member.serialize(rawMember); + final rawMember = await _marshaller.serializers.member.normalize( + element, + ); + member = await _marshaller.serializers.member.serialize( + rawMember, + ); } dispatch( - event: Event.serverThreadMemberRemove, - params: [server, thread, member]); + event: Event.serverThreadMemberRemove, + params: [server, thread, member], + ); }).wait; } } diff --git a/lib/src/infrastructure/internals/packets/listeners/voice_join_packet.dart b/lib/src/infrastructure/internals/packets/listeners/voice_join_packet.dart index 63bc3d1f..ec88928a 100644 --- a/lib/src/infrastructure/internals/packets/listeners/voice_join_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/voice_join_packet.dart @@ -13,14 +13,18 @@ final class VoiceJoinPacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final cacheKey = _marshaller.cacheKey - .voiceState(message.payload['guild_id'], message.payload['user_id']); + final cacheKey = _marshaller.cacheKey.voiceState( + message.payload['guild_id'], + message.payload['user_id'], + ); final before = await _marshaller.cache?.get(cacheKey); - final rawVoiceState = - await _marshaller.serializers.voice.normalize(message.payload); - final voiceState = - await _marshaller.serializers.voice.serialize(rawVoiceState); + final rawVoiceState = await _marshaller.serializers.voice.normalize( + message.payload, + ); + final voiceState = await _marshaller.serializers.voice.serialize( + rawVoiceState, + ); if (before == null && message.payload['channel_id'] != null) { dispatch(event: Event.voiceJoin, params: [voiceState]); diff --git a/lib/src/infrastructure/internals/packets/listeners/voice_leave_packet.dart b/lib/src/infrastructure/internals/packets/listeners/voice_leave_packet.dart index f2114e5e..e2c20005 100644 --- a/lib/src/infrastructure/internals/packets/listeners/voice_leave_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/voice_leave_packet.dart @@ -14,13 +14,22 @@ final class VoiceLeavePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { if (message.payload['channel_id'] == null) { - final cacheKey = _marshaller.cacheKey.voiceState(message.payload['guild_id'], message.payload['user_id']); + final cacheKey = _marshaller.cacheKey.voiceState( + message.payload['guild_id'], + message.payload['user_id'], + ); final beforeRaw = await _marshaller.cache?.get(cacheKey); - final before = beforeRaw != null ? await _marshaller.serializers.voice.serialize(beforeRaw) : null; + final before = beforeRaw != null + ? await _marshaller.serializers.voice.serialize(beforeRaw) + : null; - final afterRaw = await _marshaller.serializers.voice.normalize(message.payload); - final after = await _marshaller.serializers.voice.serialize(afterRaw); + final afterRaw = await _marshaller.serializers.voice.normalize( + message.payload, + ); + final after = await _marshaller.serializers.voice.serialize( + afterRaw, + ); await _marshaller.cache?.remove(cacheKey); diff --git a/lib/src/infrastructure/internals/packets/listeners/voice_move_packet.dart b/lib/src/infrastructure/internals/packets/listeners/voice_move_packet.dart index 2add6361..758a3851 100644 --- a/lib/src/infrastructure/internals/packets/listeners/voice_move_packet.dart +++ b/lib/src/infrastructure/internals/packets/listeners/voice_move_packet.dart @@ -13,15 +13,22 @@ final class VoiceMovePacket implements ListenablePacket { @override Future listen(ShardMessage message, DispatchEvent dispatch) async { - final cacheKey = _marshaller.cacheKey - .voiceState(message.payload['guild_id'], message.payload['user_id']); + final cacheKey = _marshaller.cacheKey.voiceState( + message.payload['guild_id'], + message.payload['user_id'], + ); final rawBefore = await _marshaller.cache?.get(cacheKey); - final rawVoiceState = await _marshaller.serializers.voice.normalize(message.payload); - final voiceState = - await _marshaller.serializers.voice.serialize(rawVoiceState); + final rawVoiceState = await _marshaller.serializers.voice.normalize( + message.payload, + ); + final voiceState = await _marshaller.serializers.voice.serialize( + rawVoiceState, + ); - if (rawBefore != null && rawBefore['channel_id'] != null && voiceState.channelId != null) { + if (rawBefore != null && + rawBefore['channel_id'] != null && + voiceState.channelId != null) { final before = await _marshaller.serializers.voice.serialize(rawBefore); dispatch(event: Event.voiceMove, params: [before, voiceState]); } From 5c28084adde670852b7921396df86661c63a24e6 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:19:57 +0100 Subject: [PATCH 84/93] style: improve code formatting and readability in listenable_packet and packet_dispatcher methods --- .../internals/packets/listenable_packet.dart | 9 +++++---- .../internals/packets/packet_dispatcher.dart | 12 ++++++++---- .../internals/packets/packet_listener.dart | 1 - 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/src/infrastructure/internals/packets/listenable_packet.dart b/lib/src/infrastructure/internals/packets/listenable_packet.dart index 5a8fb198..85ab8074 100644 --- a/lib/src/infrastructure/internals/packets/listenable_packet.dart +++ b/lib/src/infrastructure/internals/packets/listenable_packet.dart @@ -4,10 +4,11 @@ import 'package:mineral/src/domains/events/event.dart'; import 'package:mineral/src/infrastructure/internals/packets/packet_type.dart'; import 'package:mineral/src/infrastructure/internals/wss/shard_message.dart'; -typedef DispatchEvent = Function( - {required Event event, - required List params, - bool Function(String?)? constraint}); +typedef DispatchEvent = Function({ + required Event event, + required List params, + bool Function(String?)? constraint, +}); abstract interface class ListenablePacket { PacketType get packetType; diff --git a/lib/src/infrastructure/internals/packets/packet_dispatcher.dart b/lib/src/infrastructure/internals/packets/packet_dispatcher.dart index d7c38a0b..7c7a8842 100644 --- a/lib/src/infrastructure/internals/packets/packet_dispatcher.dart +++ b/lib/src/infrastructure/internals/packets/packet_dispatcher.dart @@ -12,13 +12,17 @@ final class PacketDispatcher implements PacketDispatcherContract { PacketDispatcher(this._kernel); @override - void listen(PacketTypeContract packet, - Function(ShardMessage, DispatchEvent) listener) { + void listen( + PacketTypeContract packet, + Function(ShardMessage, DispatchEvent) listener, + ) { _packets.stream .where((event) => event.type == packet.name) .listen((ShardMessage message) { - Function.apply( - listener, [message, _kernel.eventListener.dispatcher.dispatch]); + Function.apply(listener, [ + message, + _kernel.eventListener.dispatcher.dispatch, + ]); }); } diff --git a/lib/src/infrastructure/internals/packets/packet_listener.dart b/lib/src/infrastructure/internals/packets/packet_listener.dart index d5b0c6c3..c88fb2cc 100644 --- a/lib/src/infrastructure/internals/packets/packet_listener.dart +++ b/lib/src/infrastructure/internals/packets/packet_listener.dart @@ -50,7 +50,6 @@ import 'package:mineral/src/infrastructure/internals/packets/listeners/voice_mov import 'package:mineral/src/infrastructure/internals/packets/packet_dispatcher.dart'; final class PacketListener implements PacketListenerContract { - @override late final PacketDispatcherContract dispatcher; From 1acfbf1d4d27ae073fb5058c4fe749425ebc3b69 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:20:03 +0100 Subject: [PATCH 85/93] style: improve code formatting and readability in JsonEncoderStrategy class --- .../internals/wss/encoding_strategies/json_encoder.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/src/infrastructure/internals/wss/encoding_strategies/json_encoder.dart b/lib/src/infrastructure/internals/wss/encoding_strategies/json_encoder.dart index e0ec7ae9..cb7e7a44 100644 --- a/lib/src/infrastructure/internals/wss/encoding_strategies/json_encoder.dart +++ b/lib/src/infrastructure/internals/wss/encoding_strategies/json_encoder.dart @@ -11,9 +11,13 @@ final class JsonEncoderStrategy implements EncodingStrategy { @override WebsocketMessage decode(WebsocketMessage message) { - return message..content = ShardMessage.of(json.decode(message.originalContent)); + return message + ..content = ShardMessage.of( + json.decode(message.originalContent), + ); } @override - WebsocketRequestedMessage encode(WebsocketRequestedMessage message) => message; + WebsocketRequestedMessage encode(WebsocketRequestedMessage message) => + message; } From f4886ce2abcaa4f21d6503186746f56ba0c8232e Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:20:08 +0100 Subject: [PATCH 86/93] style: improve code formatting and readability in HmrRunningStrategy class --- .../hmr_running_strategy.dart | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/lib/src/infrastructure/internals/wss/running_strategies/hmr_running_strategy.dart b/lib/src/infrastructure/internals/wss/running_strategies/hmr_running_strategy.dart index 02f2138c..0c322eba 100644 --- a/lib/src/infrastructure/internals/wss/running_strategies/hmr_running_strategy.dart +++ b/lib/src/infrastructure/internals/wss/running_strategies/hmr_running_strategy.dart @@ -30,23 +30,28 @@ final class HmrRunningStrategy implements RunningStrategy { @override Future init(RunningStrategyFactory createShards) async { if (Isolate.current.debugName == 'main') { - final mainFile = - File(path.joinAll([Directory.current.path, 'bin', 'main.dart'])); + final mainFile = File( + path.joinAll([Directory.current.path, 'bin', 'main.dart']), + ); final tempDirectory = await Directory.systemTemp.createTemp(); _runner = Runner( - entrypoint: mainFile, - tempDirectory: tempDirectory, - isolateName: 'development'); + entrypoint: mainFile, + tempDirectory: tempDirectory, + isolateName: 'development', + ); final dateTime = DateTime.now(); - Watcher(middlewares: [ - IgnoreMiddleware(['~', '.dart_tool', '.git', '.idea', '.vscode']), - IncludeMiddleware([Glob('**.dart'), ..._watchedFiles]), - DebounceMiddleware(Duration(milliseconds: 50), dateTime), - ], onStart: handleStart, onFileChange: handleModify) - .watch(); + Watcher( + middlewares: [ + IgnoreMiddleware(['~', '.dart_tool', '.git', '.idea', '.vscode']), + IncludeMiddleware([Glob('**.dart'), ..._watchedFiles]), + DebounceMiddleware(Duration(milliseconds: 50), dateTime), + ], + onStart: handleStart, + onFileChange: handleModify, + ).watch(); await _runner.run(); From e7b060f2362afbb3ebad34ee1d1fc01e5d0e5e6c Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:20:13 +0100 Subject: [PATCH 87/93] style: improve code formatting and readability in Shard, ShardMessage, WebsocketIsolateMessageTransfert, and WebsocketOrchestrator classes --- .../infrastructure/internals/wss/shard.dart | 36 ++++++++++--------- .../internals/wss/shard_message.dart | 23 +++++++----- .../websocket_isolate_message_transfert.dart | 16 ++++++--- .../internals/wss/websocket_orchestrator.dart | 35 +++++++++++------- 4 files changed, 67 insertions(+), 43 deletions(-) diff --git a/lib/src/infrastructure/internals/wss/shard.dart b/lib/src/infrastructure/internals/wss/shard.dart index 929f313d..adf384e5 100644 --- a/lib/src/infrastructure/internals/wss/shard.dart +++ b/lib/src/infrastructure/internals/wss/shard.dart @@ -35,11 +35,12 @@ final class Shard implements ShardContract { late final ShardNetworkError networkError; - Shard( - {required this.shardName, - required this.url, - required this.wss, - required RunningStrategy strategy}) { + Shard({ + required this.shardName, + required this.url, + required this.wss, + required RunningStrategy strategy, + }) { authentication = ShardAuthentication(this); networkError = ShardNetworkError(this); dispatchEvent = ShardData(this, strategy); @@ -49,18 +50,19 @@ final class Shard implements ShardContract { Future init() async { final logger = ioc.resolve(); client = WebsocketClientImpl( - name: shardName, - url: url, - onError: (error) { - print('error $error'); - networkError.dispatch(error); - }, - onClose: networkError.dispatch, - onOpen: (message) { - if (message.content case ShardMessage(:final payload)) { - logger.trace(jsonEncode(payload)); - } - }); + name: shardName, + url: url, + onError: (error) { + print('error $error'); + networkError.dispatch(error); + }, + onClose: networkError.dispatch, + onOpen: (message) { + if (message.content case ShardMessage(:final payload)) { + logger.trace(jsonEncode(payload)); + } + }, + ); client.interceptor.message ..add(wss.config.encoding.decode) diff --git a/lib/src/infrastructure/internals/wss/shard_message.dart b/lib/src/infrastructure/internals/wss/shard_message.dart index ca6ba3d8..21c54ade 100644 --- a/lib/src/infrastructure/internals/wss/shard_message.dart +++ b/lib/src/infrastructure/internals/wss/shard_message.dart @@ -14,18 +14,23 @@ final class ShardMessage implements ShardMessageContract { @override final T payload; - ShardMessage( - {required this.type, - required this.opCode, - required this.sequence, - required this.payload}); + ShardMessage({ + required this.type, + required this.opCode, + required this.sequence, + required this.payload, + }); - factory ShardMessage.of(Map message) => ShardMessage( + factory ShardMessage.of(Map message) { + return ShardMessage( type: message['t'], - opCode: - OpCode.values.firstWhere((element) => element.value == message['op']), + opCode: OpCode.values.firstWhere( + (element) => element.value == message['op'], + ), sequence: message['s'], - payload: message['d']); + payload: message['d'], + ); + } @override Object serialize() { diff --git a/lib/src/infrastructure/internals/wss/websocket_isolate_message_transfert.dart b/lib/src/infrastructure/internals/wss/websocket_isolate_message_transfert.dart index 9bbe0f76..fe96a817 100644 --- a/lib/src/infrastructure/internals/wss/websocket_isolate_message_transfert.dart +++ b/lib/src/infrastructure/internals/wss/websocket_isolate_message_transfert.dart @@ -19,7 +19,12 @@ final class WebsocketIsolateMessageTransfert { final Completer? completer; WebsocketIsolateMessageTransfert( - this.type, this.payload, this.uid, this.targetKeys, this.completer); + this.type, + this.payload, + this.uid, + this.targetKeys, + this.completer, + ); const WebsocketIsolateMessageTransfert.send(this.payload) : type = MessageTransfertType.send, @@ -27,9 +32,12 @@ final class WebsocketIsolateMessageTransfert { targetKeys = const [], completer = null; - const WebsocketIsolateMessageTransfert.request( - {required this.uid, this.payload, this.targetKeys = const [], this.completer}) - : type = MessageTransfertType.request; + const WebsocketIsolateMessageTransfert.request({ + required this.uid, + this.payload, + this.targetKeys = const [], + this.completer, + }) : type = MessageTransfertType.request; factory WebsocketIsolateMessageTransfert.fromJson(Map json) { return WebsocketIsolateMessageTransfert( diff --git a/lib/src/infrastructure/internals/wss/websocket_orchestrator.dart b/lib/src/infrastructure/internals/wss/websocket_orchestrator.dart index b67cefb1..aa5e6a09 100644 --- a/lib/src/infrastructure/internals/wss/websocket_orchestrator.dart +++ b/lib/src/infrastructure/internals/wss/websocket_orchestrator.dart @@ -58,8 +58,9 @@ final class WebsocketOrchestrator implements WebsocketOrchestratorContract { } void _sendToShards(WebsocketIsolateMessageTransfert message) { - shards - .forEach((_, shard) => shard.client.send(json.encode(message.payload))); + shards.forEach( + (_, shard) => shard.client.send(json.encode(message.payload)), + ); } void _requestMessage(WebsocketIsolateMessageTransfert message) { @@ -82,12 +83,15 @@ final class WebsocketOrchestrator implements WebsocketOrchestratorContract { ..setOpCode(OpCode.presenceUpdate) ..append('since', DateTime.now().millisecond) ..append( - 'activities', - activities != null - ? activities.map((element) => element.toJson()).toList() - : []) - ..append('status', - status != null ? status.toString() : StatusType.online.toString()) + 'activities', + activities != null + ? activities.map((element) => element.toJson()).toList() + : [], + ) + ..append( + 'status', + status != null ? status.toString() : StatusType.online.toString(), + ) ..append('afk', afk ?? false); send(WebsocketIsolateMessageTransfert.send(message.toJson())); @@ -105,10 +109,11 @@ final class WebsocketOrchestrator implements WebsocketOrchestratorContract { ..append('nonce', timestamp.toString()); final messageTransfert = WebsocketIsolateMessageTransfert.request( - payload: message.toJson(), - uid: timestamp.toString(), - completer: completer, - targetKeys: ['presences']); + payload: message.toJson(), + uid: timestamp.toString(), + completer: completer, + targetKeys: ['presences'], + ); send(messageTransfert); @@ -139,7 +144,11 @@ final class WebsocketOrchestrator implements WebsocketOrchestratorContract { '$endpoint/?v=${config.version}&encoding=${config.encoding.encoder.value}'; final shard = Shard( - shardName: 'shard #$i', url: url, wss: this, strategy: strategy); + shardName: 'shard #$i', + url: url, + wss: this, + strategy: strategy, + ); shards.putIfAbsent(i, () => shard); From 41e51864610833551883888d5cd62a327ed5e28a Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:20:20 +0100 Subject: [PATCH 88/93] style: improve code formatting and readability in ResponseCode enum --- .../services/http/type/response_code.dart | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/src/infrastructure/services/http/type/response_code.dart b/lib/src/infrastructure/services/http/type/response_code.dart index dbce7c48..09f7861f 100644 --- a/lib/src/infrastructure/services/http/type/response_code.dart +++ b/lib/src/infrastructure/services/http/type/response_code.dart @@ -39,8 +39,14 @@ enum ResponseCode { unknown ]; - static List get successCodes => - [success, created, accepted, noContent]; + static List get successCodes => [ + success, + created, + accepted, + noContent, + ]; - static List get rateLimitCodes => [rateLimit]; + static List get rateLimitCodes => [ + rateLimit, + ]; } From 2f88bad9f9470a011f5c3851353d63473681dab3 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:20:26 +0100 Subject: [PATCH 89/93] style: improve code formatting and readability in HttpClient, HttpInterceptor, HttpRequestOption, Request, and Response classes --- .../services/http/http_client.dart | 9 ++-- .../services/http/http_interceptor.dart | 9 ++-- .../services/http/http_request_option.dart | 6 ++- .../infrastructure/services/http/request.dart | 13 +++--- .../services/http/response.dart | 43 ++++++++++--------- 5 files changed, 46 insertions(+), 34 deletions(-) diff --git a/lib/src/infrastructure/services/http/http_client.dart b/lib/src/infrastructure/services/http/http_client.dart index ef85838e..84d447db 100644 --- a/lib/src/infrastructure/services/http/http_client.dart +++ b/lib/src/infrastructure/services/http/http_client.dart @@ -90,8 +90,11 @@ class HttpClient implements HttpClientContract { Map _serializeHeaders(Set
headers) { return headers.fold( - {}, - (previousValue, element) => - {...previousValue, element.key: element.value}); + {}, + (previousValue, element) => { + ...previousValue, + element.key: element.value, + }, + ); } } diff --git a/lib/src/infrastructure/services/http/http_interceptor.dart b/lib/src/infrastructure/services/http/http_interceptor.dart index b28b2691..47030315 100644 --- a/lib/src/infrastructure/services/http/http_interceptor.dart +++ b/lib/src/infrastructure/services/http/http_interceptor.dart @@ -3,12 +3,15 @@ import 'dart:async'; import 'package:mineral/services.dart'; typedef RequestInterceptor = FutureOr Function( - RequestContract); -typedef ResponseInterceptor = FutureOr Function(Response); + RequestContract, +); + +typedef ResponseInterceptor = FutureOr Function( + Response, +); abstract interface class HttpInterceptor { List get request; - List get response; } diff --git a/lib/src/infrastructure/services/http/http_request_option.dart b/lib/src/infrastructure/services/http/http_request_option.dart index 6f06817d..1003af5b 100644 --- a/lib/src/infrastructure/services/http/http_request_option.dart +++ b/lib/src/infrastructure/services/http/http_request_option.dart @@ -13,6 +13,8 @@ final class HttpRequestOptionImpl implements HttpRequestOption { @override final Map queryParameters; - HttpRequestOptionImpl( - {required this.headers, this.queryParameters = const {}}); + HttpRequestOptionImpl({ + required this.headers, + this.queryParameters = const {}, + }); } diff --git a/lib/src/infrastructure/services/http/request.dart b/lib/src/infrastructure/services/http/request.dart index 1c09f834..dcca54dd 100644 --- a/lib/src/infrastructure/services/http/request.dart +++ b/lib/src/infrastructure/services/http/request.dart @@ -33,12 +33,13 @@ final class Request implements RequestContract { required this.files, }); - static Request json( - {required String endpoint, - String? method, - Set
? headers, - dynamic body, - Map? queryParameters}) { + static Request json({ + required String endpoint, + String? method, + Set
? headers, + dynamic body, + Map? queryParameters, + }) { return Request>( type: RequestType.json, method: method, diff --git a/lib/src/infrastructure/services/http/response.dart b/lib/src/infrastructure/services/http/response.dart index 65f16b96..a2f5a47e 100644 --- a/lib/src/infrastructure/services/http/response.dart +++ b/lib/src/infrastructure/services/http/response.dart @@ -38,34 +38,37 @@ final class ResponseImpl implements Response { @override final String method; - ResponseImpl._( - {required this.statusCode, - required this.headers, - required this.bodyString, - required this.body, - required this.uri, - required this.reasonPhrase, - required this.method}); + ResponseImpl._({ + required this.statusCode, + required this.headers, + required this.bodyString, + required this.body, + required this.uri, + required this.reasonPhrase, + required this.method, + }); static ResponseImpl fromHttpResponse(http.Response response) { - final dynamic decodedBody = response.body.isNotEmpty ? jsonDecode(response.body) : {}; + final dynamic decodedBody = + response.body.isNotEmpty ? jsonDecode(response.body) : {}; final T body; - + if (decodedBody is List) { body = decodedBody.cast>() as T; } else { body = decodedBody as T; } - + return ResponseImpl._( - statusCode: response.statusCode, - headers: response.headers.entries - .map((entry) => Header(entry.key, entry.value)) - .toSet(), - bodyString: response.body, - body: body, - uri: response.request!.url, - reasonPhrase: response.reasonPhrase, - method: response.request!.method); + statusCode: response.statusCode, + headers: response.headers.entries + .map((entry) => Header(entry.key, entry.value)) + .toSet(), + bodyString: response.body, + body: body, + uri: response.request!.url, + reasonPhrase: response.reasonPhrase, + method: response.request!.method, + ); } } From 507cd90b877bbf4d08b6cb6092cea9b3ff1b0e1a Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:20:31 +0100 Subject: [PATCH 90/93] style: improve code formatting and readability in Logger class --- lib/src/infrastructure/services/logger/logger.dart | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/src/infrastructure/services/logger/logger.dart b/lib/src/infrastructure/services/logger/logger.dart index 888e4bae..01a0565d 100644 --- a/lib/src/infrastructure/services/logger/logger.dart +++ b/lib/src/infrastructure/services/logger/logger.dart @@ -23,7 +23,10 @@ final class Logger implements LoggerContract { final time = '[${DateFormat.Hms().format(record.time)}]'; List makeMessage( - String messageType, Color messageColor, List message) { + String messageType, + Color messageColor, + List message, + ) { return [ SetStyles(Style.foreground(Color.brightBlack)), Print(time), @@ -49,7 +52,10 @@ final class Logger implements LoggerContract { logging.Level.WARNING => makeMessage('warn', Color.yellow, [Print(record.message)]), logging.Level.INFO => makeMessage( - 'info', Color.fromRGB(140, 169, 238), [Print(record.message)]), + 'info', + Color.fromRGB(140, 169, 238), + [Print(record.message)], + ), _ => makeMessage('unknown', Color.blue, [Print(record.message)]), }; From 9b7b06421442c955cebca1bfc2f2817912598c07 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:20:37 +0100 Subject: [PATCH 91/93] style: improve code formatting and readability in EnvPlaceholder and Placeholder classes --- .../services/placeholder/env_placeholder.dart | 35 +++++++----- .../services/placeholder/placeholder.dart | 56 +++++++++++-------- 2 files changed, 52 insertions(+), 39 deletions(-) diff --git a/lib/src/infrastructure/services/placeholder/env_placeholder.dart b/lib/src/infrastructure/services/placeholder/env_placeholder.dart index 808619e0..b8e0d550 100644 --- a/lib/src/infrastructure/services/placeholder/env_placeholder.dart +++ b/lib/src/infrastructure/services/placeholder/env_placeholder.dart @@ -16,26 +16,31 @@ final class EnvPlaceholder implements PlaceholderContract { } void _injectEntryMap(String identifier, Map values) { - final mapEntry = Map.from(values.map((key, value) { - final currentKey = key.snakeCase.toUpperCase(); - return MapEntry('$identifier.$currentKey', value); - })); + final mapEntry = Map.from( + values.map((key, value) { + final currentKey = key.snakeCase.toUpperCase(); + return MapEntry('$identifier.$currentKey', value); + }), + ); _values.addAll(mapEntry); } @override String apply(String value) { - return values.entries.fold(value, (acc, element) { - final finalValue = switch (element.value) { - String() => element.value, - int() => element.value.toString(), - _ => throw Exception('Invalid type') - }; - - return acc - .replaceAll('{${element.key}}', finalValue) - .replaceAll('{{ ${element.key} }}', finalValue); - }); + return values.entries.fold( + value, + (acc, element) { + final finalValue = switch (element.value) { + String() => element.value, + int() => element.value.toString(), + _ => throw Exception('Invalid type') + }; + + return acc + .replaceAll('{${element.key}}', finalValue) + .replaceAll('{{ ${element.key} }}', finalValue); + }, + ); } } diff --git a/lib/src/infrastructure/services/placeholder/placeholder.dart b/lib/src/infrastructure/services/placeholder/placeholder.dart index cf8f5395..9bd26b77 100644 --- a/lib/src/infrastructure/services/placeholder/placeholder.dart +++ b/lib/src/infrastructure/services/placeholder/placeholder.dart @@ -21,16 +21,18 @@ class Placeholder implements PlaceholderContract { } void _injectEntryMap(String? identifier, Map values) { - final mapEntry = Map.from(values.map((key, value) { - final hasIdentifier = key.contains('.'); - final finalKey = !hasIdentifier - ? identifier != null - ? '$identifier.$key' - : key - : key; + final mapEntry = Map.from( + values.map((key, value) { + final hasIdentifier = key.contains('.'); + final finalKey = !hasIdentifier + ? identifier != null + ? '$identifier.$key' + : key + : key; - return MapEntry(finalKey, value); - })); + return MapEntry(finalKey, value); + }), + ); _values.addAll(mapEntry); } @@ -43,10 +45,11 @@ class Placeholder implements PlaceholderContract { String apply(String value, {Map? values}) { String finalValue = value; if (values != null) { - final currentValues = Map.from(values.map((key, value) => - identifier != null - ? MapEntry('$identifier.$key', value) - : MapEntry(key, value))); + final currentValues = Map.from( + values.map((key, value) => identifier != null + ? MapEntry('$identifier.$key', value) + : MapEntry(key, value)), + ); finalValue = _replace(value, currentValues); } @@ -55,17 +58,22 @@ class Placeholder implements PlaceholderContract { } String _replace(String value, Map map) { - return map.entries.fold(value, (acc, element) { - final finalValue = switch (element.value) { - String() => element.value, - int() => element.value.toString(), - _ => throw Exception('Invalid type') - }; + return map.entries.fold( + value, + (acc, element) { + final finalValue = switch (element.value) { + String() => element.value, + int() => element.value.toString(), + _ => throw Exception('Invalid type') + }; - return acc - .replaceAllMapped(RegExp(r'\{\{\s*([^}]*)\s*\}\}'), - (Match m) => '{{${m[1]?.trim()}}}') - .replaceAll('{{${element.key}}}', finalValue); - }); + return acc + .replaceAllMapped( + RegExp(r'\{\{\s*([^}]*)\s*\}\}'), + (Match m) => '{{${m[1]?.trim()}}}', + ) + .replaceAll('{{${element.key}}}', finalValue); + }, + ); } } From fd30205fe254cfbc165034a217aed7222e5e2aae Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:20:42 +0100 Subject: [PATCH 92/93] style: improve code formatting and readability in Interceptor, WebsocketClient, WebsocketMessage, and WebsocketRequestedMessage classes --- .../services/wss/interceptor.dart | 7 +++- .../services/wss/websocket_client.dart | 40 +++++++++---------- .../services/wss/websocket_message.dart | 12 +++--- .../wss/websocket_requested_message.dart | 8 ++-- 4 files changed, 33 insertions(+), 34 deletions(-) diff --git a/lib/src/infrastructure/services/wss/interceptor.dart b/lib/src/infrastructure/services/wss/interceptor.dart index 9358883a..5e37958f 100644 --- a/lib/src/infrastructure/services/wss/interceptor.dart +++ b/lib/src/infrastructure/services/wss/interceptor.dart @@ -4,9 +4,12 @@ import 'package:mineral/src/infrastructure/services/wss/websocket_message.dart'; import 'package:mineral/src/infrastructure/services/wss/websocket_requested_message.dart'; typedef MessageInterceptor = FutureOr Function( - WebsocketMessage); + WebsocketMessage, +); + typedef RequestInterceptor = FutureOr Function( - WebsocketRequestedMessage); + WebsocketRequestedMessage, +); abstract interface class Interceptor { List get message; diff --git a/lib/src/infrastructure/services/wss/websocket_client.dart b/lib/src/infrastructure/services/wss/websocket_client.dart index 5ef45c4e..801f81b1 100644 --- a/lib/src/infrastructure/services/wss/websocket_client.dart +++ b/lib/src/infrastructure/services/wss/websocket_client.dart @@ -7,19 +7,12 @@ import 'package:mineral/src/infrastructure/services/wss/websocket_requested_mess abstract interface class WebsocketClient { String get name; - String get url; - Stream? get stream; - Interceptor get interceptor; - Future connect(); - void disconnect({int? code, String? reason}); - Future send(String message); - Future listen(void Function(WebsocketMessage) callback); } @@ -43,13 +36,13 @@ final class WebsocketClientImpl implements WebsocketClient { @override Stream? stream; - WebsocketClientImpl( - {required this.url, - this.name = 'default', - void Function(Object payload)? onError, - void Function(int? exitCode)? onClose, - void Function(WebsocketMessage)? onOpen}) - : _onError = onError, + WebsocketClientImpl({ + required this.url, + this.name = 'default', + void Function(Object payload)? onError, + void Function(int? exitCode)? onClose, + void Function(WebsocketMessage)? onOpen, + }) : _onError = onError, _onClose = onClose, _onOpen = onOpen; @@ -103,10 +96,12 @@ final class WebsocketClientImpl implements WebsocketClient { Future _handleMessage(callback, dynamic message) async { final interceptedMessage = await _handleMessageInterceptors( - WebsocketMessageImpl( - channelName: name, - originalContent: message, - content: message)); + WebsocketMessageImpl( + channelName: name, + originalContent: message, + content: message, + ), + ); callback(interceptedMessage); } @@ -114,7 +109,8 @@ final class WebsocketClientImpl implements WebsocketClient { @override Future send(String message) async { final interceptedMessage = await _handleRequestedMessageInterceptors( - WebsocketRequestedMessageImpl(channelName: name, content: message)); + WebsocketRequestedMessageImpl(channelName: name, content: message), + ); switch (_channel?.readyState) { case io.WebSocket.open: @@ -125,7 +121,8 @@ final class WebsocketClientImpl implements WebsocketClient { } Future _handleMessageInterceptors( - WebsocketMessage message) async { + WebsocketMessage message, + ) async { for (final interceptor in interceptor.message) { message = await interceptor(message); } @@ -134,7 +131,8 @@ final class WebsocketClientImpl implements WebsocketClient { } Future _handleRequestedMessageInterceptors( - WebsocketRequestedMessage message) async { + WebsocketRequestedMessage message, + ) async { for (final interceptor in interceptor.request) { message = await interceptor(message); } diff --git a/lib/src/infrastructure/services/wss/websocket_message.dart b/lib/src/infrastructure/services/wss/websocket_message.dart index f5233c34..9bc10c0a 100644 --- a/lib/src/infrastructure/services/wss/websocket_message.dart +++ b/lib/src/infrastructure/services/wss/websocket_message.dart @@ -1,10 +1,7 @@ abstract interface class WebsocketMessage { String get channelName; - DateTime get createdAt; - dynamic get originalContent; - abstract T content; } @@ -21,8 +18,9 @@ final class WebsocketMessageImpl implements WebsocketMessage { @override T content; - WebsocketMessageImpl( - {required this.channelName, - required this.originalContent, - required this.content}); + WebsocketMessageImpl({ + required this.channelName, + required this.originalContent, + required this.content, + }); } diff --git a/lib/src/infrastructure/services/wss/websocket_requested_message.dart b/lib/src/infrastructure/services/wss/websocket_requested_message.dart index 30e5fdba..5de55226 100644 --- a/lib/src/infrastructure/services/wss/websocket_requested_message.dart +++ b/lib/src/infrastructure/services/wss/websocket_requested_message.dart @@ -1,8 +1,6 @@ abstract interface class WebsocketRequestedMessage { DateTime get createdAt; - String get channelName; - dynamic content; } @@ -16,6 +14,8 @@ final class WebsocketRequestedMessageImpl implements WebsocketRequestedMessage { @override dynamic content; - WebsocketRequestedMessageImpl( - {required this.channelName, required this.content}); + WebsocketRequestedMessageImpl({ + required this.channelName, + required this.content, + }); } From 09121a690533a1a8eee47d46cba518642b236378 Mon Sep 17 00:00:00 2001 From: DCodeProg Date: Fri, 31 Oct 2025 22:28:48 +0100 Subject: [PATCH 93/93] style: fix formatting in PollAnswerVote constructor parameters --- lib/src/api/common/polls/poll_answer_vote.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/api/common/polls/poll_answer_vote.dart b/lib/src/api/common/polls/poll_answer_vote.dart index 5961ad85..03e037d0 100644 --- a/lib/src/api/common/polls/poll_answer_vote.dart +++ b/lib/src/api/common/polls/poll_answer_vote.dart @@ -10,6 +10,6 @@ final class PollAnswerVote { required this.id, required this.voters, required this.message, - this.server + this.server, }); }