diff --git a/.gitignore b/.gitignore index a78e06a..cb55d25 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ .buildlog/ .history .svn/ -*.g.dart +# *.g.dart *.mocks.dart applicationDocumentsPath hive_testing_path diff --git a/example/ios/Flutter/ephemeral/flutter_lldb_helper.py b/example/ios/Flutter/ephemeral/flutter_lldb_helper.py new file mode 100644 index 0000000..a88caf9 --- /dev/null +++ b/example/ios/Flutter/ephemeral/flutter_lldb_helper.py @@ -0,0 +1,32 @@ +# +# Generated file, do not edit. +# + +import lldb + +def handle_new_rx_page(frame: lldb.SBFrame, bp_loc, extra_args, intern_dict): + """Intercept NOTIFY_DEBUGGER_ABOUT_RX_PAGES and touch the pages.""" + base = frame.register["x0"].GetValueAsAddress() + page_len = frame.register["x1"].GetValueAsUnsigned() + + # Note: NOTIFY_DEBUGGER_ABOUT_RX_PAGES will check contents of the + # first page to see if handled it correctly. This makes diagnosing + # misconfiguration (e.g. missing breakpoint) easier. + data = bytearray(page_len) + data[0:8] = b'IHELPED!' + + error = lldb.SBError() + frame.GetThread().GetProcess().WriteMemory(base, data, error) + if not error.Success(): + print(f'Failed to write into {base}[+{page_len}]', error) + return + +def __lldb_init_module(debugger: lldb.SBDebugger, _): + target = debugger.GetDummyTarget() + # Caveat: must use BreakpointCreateByRegEx here and not + # BreakpointCreateByName. For some reasons callback function does not + # get carried over from dummy target for the later. + bp = target.BreakpointCreateByRegex("^NOTIFY_DEBUGGER_ABOUT_RX_PAGES$") + bp.SetScriptCallbackFunction('{}.handle_new_rx_page'.format(__name__)) + bp.SetAutoContinue(True) + print("-- LLDB integration loaded --") diff --git a/example/ios/Flutter/ephemeral/flutter_lldbinit b/example/ios/Flutter/ephemeral/flutter_lldbinit new file mode 100644 index 0000000..e3ba6fb --- /dev/null +++ b/example/ios/Flutter/ephemeral/flutter_lldbinit @@ -0,0 +1,5 @@ +# +# Generated file, do not edit. +# + +command script import --relative-to-command-file flutter_lldb_helper.py diff --git a/example/pubspec.lock b/example/pubspec.lock index 48a15be..c85c0f5 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -13,26 +13,26 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.13.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" characters: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" chatwoot_sdk: dependency: "direct main" description: @@ -44,18 +44,18 @@ packages: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" collection: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.1" cross_file: dependency: transitive description: @@ -124,10 +124,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.3" ffi: dependency: transitive description: @@ -427,18 +427,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -459,10 +459,10 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -475,10 +475,10 @@ packages: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.16.0" mime: dependency: transitive description: @@ -491,10 +491,10 @@ packages: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" path_provider: dependency: "direct main" description: @@ -595,15 +595,15 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_span: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" sprintf: dependency: transitive description: @@ -616,10 +616,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.1" state_notifier: dependency: transitive description: @@ -632,18 +632,18 @@ packages: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" string_scanner: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.4.1" synchronized: dependency: transitive description: @@ -656,18 +656,18 @@ packages: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.4" typed_data: dependency: transitive description: @@ -768,10 +768,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "15.0.0" web: dependency: transitive description: @@ -853,5 +853,5 @@ packages: source: hosted version: "6.5.0" sdks: - dart: ">=3.5.3 <4.0.0" + dart: ">=3.7.0-0 <4.0.0" flutter: ">=3.24.0" diff --git a/lib/data/local/entity/chatwoot_contact.g.dart b/lib/data/local/entity/chatwoot_contact.g.dart new file mode 100644 index 0000000..ba86e0d --- /dev/null +++ b/lib/data/local/entity/chatwoot_contact.g.dart @@ -0,0 +1,75 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'chatwoot_contact.dart'; + +// ************************************************************************** +// TypeAdapterGenerator +// ************************************************************************** + +class ChatwootContactAdapter extends TypeAdapter { + @override + final int typeId = 0; + + @override + ChatwootContact read(BinaryReader reader) { + final numOfFields = reader.readByte(); + final fields = { + for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), + }; + return ChatwootContact( + id: fields[0] as int, + contactIdentifier: fields[1] as String?, + pubsubToken: fields[2] as String?, + name: fields[3] as String, + email: fields[4] as String, + ); + } + + @override + void write(BinaryWriter writer, ChatwootContact obj) { + writer + ..writeByte(5) + ..writeByte(0) + ..write(obj.id) + ..writeByte(1) + ..write(obj.contactIdentifier) + ..writeByte(2) + ..write(obj.pubsubToken) + ..writeByte(3) + ..write(obj.name) + ..writeByte(4) + ..write(obj.email); + } + + @override + int get hashCode => typeId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is ChatwootContactAdapter && + runtimeType == other.runtimeType && + typeId == other.typeId; +} + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ChatwootContact _$ChatwootContactFromJson(Map json) => + ChatwootContact( + id: (json['id'] as num).toInt(), + contactIdentifier: json['source_id'] as String?, + pubsubToken: json['pubsub_token'] as String?, + name: json['name'] as String, + email: json['email'] as String, + ); + +Map _$ChatwootContactToJson(ChatwootContact instance) => + { + 'id': instance.id, + 'source_id': instance.contactIdentifier, + 'pubsub_token': instance.pubsubToken, + 'name': instance.name, + 'email': instance.email, + }; diff --git a/lib/data/local/entity/chatwoot_conversation.g.dart b/lib/data/local/entity/chatwoot_conversation.g.dart new file mode 100644 index 0000000..ab4ed2e --- /dev/null +++ b/lib/data/local/entity/chatwoot_conversation.g.dart @@ -0,0 +1,75 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'chatwoot_conversation.dart'; + +// ************************************************************************** +// TypeAdapterGenerator +// ************************************************************************** + +class ChatwootConversationAdapter extends TypeAdapter { + @override + final int typeId = 1; + + @override + ChatwootConversation read(BinaryReader reader) { + final numOfFields = reader.readByte(); + final fields = { + for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), + }; + return ChatwootConversation( + id: fields[0] as int, + inboxId: fields[1] as int, + messages: (fields[2] as List).cast(), + contact: fields[3] as ChatwootContact, + ); + } + + @override + void write(BinaryWriter writer, ChatwootConversation obj) { + writer + ..writeByte(4) + ..writeByte(0) + ..write(obj.id) + ..writeByte(1) + ..write(obj.inboxId) + ..writeByte(2) + ..write(obj.messages) + ..writeByte(3) + ..write(obj.contact); + } + + @override + int get hashCode => typeId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is ChatwootConversationAdapter && + runtimeType == other.runtimeType && + typeId == other.typeId; +} + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ChatwootConversation _$ChatwootConversationFromJson( + Map json) => + ChatwootConversation( + id: (json['id'] as num).toInt(), + inboxId: (json['inbox_id'] as num).toInt(), + messages: (json['messages'] as List) + .map((e) => ChatwootMessage.fromJson(e as Map)) + .toList(), + contact: + ChatwootContact.fromJson(json['contact'] as Map), + ); + +Map _$ChatwootConversationToJson( + ChatwootConversation instance) => + { + 'id': instance.id, + 'inbox_id': instance.inboxId, + 'messages': instance.messages.map((e) => e.toJson()).toList(), + 'contact': instance.contact.toJson(), + }; diff --git a/lib/data/local/entity/chatwoot_message.g.dart b/lib/data/local/entity/chatwoot_message.g.dart new file mode 100644 index 0000000..c963e75 --- /dev/null +++ b/lib/data/local/entity/chatwoot_message.g.dart @@ -0,0 +1,98 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'chatwoot_message.dart'; + +// ************************************************************************** +// TypeAdapterGenerator +// ************************************************************************** + +class ChatwootMessageAdapter extends TypeAdapter { + @override + final int typeId = 2; + + @override + ChatwootMessage read(BinaryReader reader) { + final numOfFields = reader.readByte(); + final fields = { + for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), + }; + return ChatwootMessage( + id: fields[0] as int, + content: fields[1] as String?, + messageType: fields[2] as int?, + contentType: fields[3] as String?, + contentAttributes: fields[4] as dynamic, + createdAt: fields[5] as String, + conversationId: fields[6] as int?, + attachments: (fields[7] as List?)?.cast(), + sender: fields[8] as ChatwootEventMessageUser?, + ); + } + + @override + void write(BinaryWriter writer, ChatwootMessage obj) { + writer + ..writeByte(9) + ..writeByte(0) + ..write(obj.id) + ..writeByte(1) + ..write(obj.content) + ..writeByte(2) + ..write(obj.messageType) + ..writeByte(3) + ..write(obj.contentType) + ..writeByte(4) + ..write(obj.contentAttributes) + ..writeByte(5) + ..write(obj.createdAt) + ..writeByte(6) + ..write(obj.conversationId) + ..writeByte(7) + ..write(obj.attachments) + ..writeByte(8) + ..write(obj.sender); + } + + @override + int get hashCode => typeId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is ChatwootMessageAdapter && + runtimeType == other.runtimeType && + typeId == other.typeId; +} + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ChatwootMessage _$ChatwootMessageFromJson(Map json) => + ChatwootMessage( + id: idFromJson(json['id']), + content: json['content'] as String?, + messageType: messageTypeFromJson(json['message_type']), + contentType: json['content_type'] as String?, + contentAttributes: json['content_attributes'], + createdAt: createdAtFromJson(json['created_at']), + conversationId: idFromJson(json['conversation_id']), + attachments: json['attachments'] as List?, + sender: json['sender'] == null + ? null + : ChatwootEventMessageUser.fromJson( + json['sender'] as Map), + ); + +Map _$ChatwootMessageToJson(ChatwootMessage instance) => + { + 'id': instance.id, + 'content': instance.content, + 'message_type': instance.messageType, + 'content_type': instance.contentType, + 'content_attributes': instance.contentAttributes, + 'created_at': instance.createdAt, + 'conversation_id': instance.conversationId, + 'attachments': instance.attachments, + 'sender': instance.sender?.toJson(), + }; diff --git a/lib/data/local/entity/chatwoot_user.g.dart b/lib/data/local/entity/chatwoot_user.g.dart new file mode 100644 index 0000000..39bc12a --- /dev/null +++ b/lib/data/local/entity/chatwoot_user.g.dart @@ -0,0 +1,79 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'chatwoot_user.dart'; + +// ************************************************************************** +// TypeAdapterGenerator +// ************************************************************************** + +class ChatwootUserAdapter extends TypeAdapter { + @override + final int typeId = 3; + + @override + ChatwootUser read(BinaryReader reader) { + final numOfFields = reader.readByte(); + final fields = { + for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), + }; + return ChatwootUser( + identifier: fields[0] as String?, + identifierHash: fields[1] as String?, + name: fields[2] as String?, + email: fields[3] as String?, + avatarUrl: fields[4] as String?, + customAttributes: fields[5] as dynamic, + ); + } + + @override + void write(BinaryWriter writer, ChatwootUser obj) { + writer + ..writeByte(6) + ..writeByte(0) + ..write(obj.identifier) + ..writeByte(1) + ..write(obj.identifierHash) + ..writeByte(2) + ..write(obj.name) + ..writeByte(3) + ..write(obj.email) + ..writeByte(4) + ..write(obj.avatarUrl) + ..writeByte(5) + ..write(obj.customAttributes); + } + + @override + int get hashCode => typeId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is ChatwootUserAdapter && + runtimeType == other.runtimeType && + typeId == other.typeId; +} + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ChatwootUser _$ChatwootUserFromJson(Map json) => ChatwootUser( + identifier: json['identifier'] as String?, + identifierHash: json['identifier_hash'] as String?, + name: json['name'] as String?, + email: json['email'] as String?, + avatarUrl: json['avatar_url'] as String?, + customAttributes: json['custom_attributes'], + ); + +Map _$ChatwootUserToJson(ChatwootUser instance) => + { + 'identifier': instance.identifier, + 'identifier_hash': instance.identifierHash, + 'name': instance.name, + 'email': instance.email, + 'avatar_url': instance.avatarUrl, + 'custom_attributes': instance.customAttributes, + }; diff --git a/lib/data/remote/requests/chatwoot_action.g.dart b/lib/data/remote/requests/chatwoot_action.g.dart new file mode 100644 index 0000000..8761cf0 --- /dev/null +++ b/lib/data/remote/requests/chatwoot_action.g.dart @@ -0,0 +1,23 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'chatwoot_action.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ChatwootAction _$ChatwootActionFromJson(Map json) => + ChatwootAction( + identifier: json['identifier'] as String, + data: json['data'] == null + ? null + : ChatwootActionData.fromJson(json['data'] as Map), + command: json['command'] as String, + ); + +Map _$ChatwootActionToJson(ChatwootAction instance) => + { + 'identifier': instance.identifier, + 'command': instance.command, + 'data': instance.data?.toJson(), + }; diff --git a/lib/data/remote/requests/chatwoot_action_data.g.dart b/lib/data/remote/requests/chatwoot_action_data.g.dart new file mode 100644 index 0000000..adef2a0 --- /dev/null +++ b/lib/data/remote/requests/chatwoot_action_data.g.dart @@ -0,0 +1,17 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'chatwoot_action_data.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ChatwootActionData _$ChatwootActionDataFromJson(Map json) => + ChatwootActionData( + action: actionTypeFromJson(json['action'] as String?), + ); + +Map _$ChatwootActionDataToJson(ChatwootActionData instance) => + { + 'action': actionTypeToJson(instance.action), + }; diff --git a/lib/data/remote/requests/chatwoot_new_message_request.g.dart b/lib/data/remote/requests/chatwoot_new_message_request.g.dart new file mode 100644 index 0000000..015bcd2 --- /dev/null +++ b/lib/data/remote/requests/chatwoot_new_message_request.g.dart @@ -0,0 +1,21 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'chatwoot_new_message_request.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ChatwootNewMessageRequest _$ChatwootNewMessageRequestFromJson( + Map json) => + ChatwootNewMessageRequest( + content: json['content'] as String, + echoId: json['echo_id'] as String, + ); + +Map _$ChatwootNewMessageRequestToJson( + ChatwootNewMessageRequest instance) => + { + 'content': instance.content, + 'echo_id': instance.echoId, + }; diff --git a/lib/data/remote/responses/chatwoot_event.g.dart b/lib/data/remote/responses/chatwoot_event.g.dart new file mode 100644 index 0000000..606610f --- /dev/null +++ b/lib/data/remote/responses/chatwoot_event.g.dart @@ -0,0 +1,160 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'chatwoot_event.dart'; + +// ************************************************************************** +// TypeAdapterGenerator +// ************************************************************************** + +class ChatwootEventMessageUserAdapter + extends TypeAdapter { + @override + final int typeId = 4; + + @override + ChatwootEventMessageUser read(BinaryReader reader) { + final numOfFields = reader.readByte(); + final fields = { + for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), + }; + return ChatwootEventMessageUser( + id: fields[1] as int?, + avatarUrl: fields[0] as String?, + name: fields[2] as String?, + thumbnail: fields[3] as String?, + ); + } + + @override + void write(BinaryWriter writer, ChatwootEventMessageUser obj) { + writer + ..writeByte(4) + ..writeByte(0) + ..write(obj.avatarUrl) + ..writeByte(1) + ..write(obj.id) + ..writeByte(2) + ..write(obj.name) + ..writeByte(3) + ..write(obj.thumbnail); + } + + @override + int get hashCode => typeId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is ChatwootEventMessageUserAdapter && + runtimeType == other.runtimeType && + typeId == other.typeId; +} + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ChatwootEvent _$ChatwootEventFromJson(Map json) => + ChatwootEvent( + type: eventTypeFromJson(json['type'] as String?), + message: eventMessageFromJson(json['message']), + identifier: json['identifier'] as String?, + ); + +Map _$ChatwootEventToJson(ChatwootEvent instance) => + { + 'type': eventTypeToJson(instance.type), + 'identifier': instance.identifier, + 'message': instance.message?.toJson(), + }; + +ChatwootEventMessage _$ChatwootEventMessageFromJson( + Map json) => + ChatwootEventMessage( + data: json['data'] == null + ? null + : ChatwootEventMessageData.fromJson( + json['data'] as Map), + event: eventMessageTypeFromJson(json['event'] as String?), + ); + +Map _$ChatwootEventMessageToJson( + ChatwootEventMessage instance) => + { + 'data': instance.data?.toJson(), + 'event': eventMessageTypeToJson(instance.event), + }; + +ChatwootEventMessageData _$ChatwootEventMessageDataFromJson( + Map json) => + ChatwootEventMessageData( + id: (json['id'] as num?)?.toInt(), + user: json['user'] == null + ? null + : ChatwootEventMessageUser.fromJson( + json['user'] as Map), + conversation: json['conversation'], + echoId: json['echo_id'] as String?, + sender: json['sender'] == null + ? null + : ChatwootEventMessageUser.fromJson( + json['sender'] as Map), + conversationId: (json['conversation_id'] as num?)?.toInt(), + createdAt: json['created_at'], + contentAttributes: json['content_attributes'], + contentType: json['content_type'] as String?, + messageType: (json['message_type'] as num?)?.toInt(), + content: json['content'] as String?, + inboxId: (json['inbox_id'] as num?)?.toInt(), + sourceId: json['source_id'] as String?, + updatedAt: json['updated_at'], + status: json['status'] as String?, + accountId: (json['account_id'] as num?)?.toInt(), + externalSourceIds: json['external_source_ids'], + private: json['private'] as bool?, + senderId: (json['sender_id'] as num?)?.toInt(), + users: json['users'], + ); + +Map _$ChatwootEventMessageDataToJson( + ChatwootEventMessageData instance) => + { + 'account_id': instance.accountId, + 'content': instance.content, + 'content_attributes': instance.contentAttributes, + 'content_type': instance.contentType, + 'conversation_id': instance.conversationId, + 'created_at': instance.createdAt, + 'echo_id': instance.echoId, + 'external_source_ids': instance.externalSourceIds, + 'id': instance.id, + 'inbox_id': instance.inboxId, + 'message_type': instance.messageType, + 'private': instance.private, + 'sender': instance.sender?.toJson(), + 'sender_id': instance.senderId, + 'source_id': instance.sourceId, + 'status': instance.status, + 'updated_at': instance.updatedAt, + 'conversation': instance.conversation, + 'user': instance.user?.toJson(), + 'users': instance.users, + }; + +ChatwootEventMessageUser _$ChatwootEventMessageUserFromJson( + Map json) => + ChatwootEventMessageUser( + id: (json['id'] as num?)?.toInt(), + avatarUrl: json['avatar_url'] as String?, + name: json['name'] as String?, + thumbnail: json['thumbnail'] as String?, + ); + +Map _$ChatwootEventMessageUserToJson( + ChatwootEventMessageUser instance) => + { + 'avatar_url': instance.avatarUrl, + 'id': instance.id, + 'name': instance.name, + 'thumbnail': instance.thumbnail, + }; diff --git a/pubspec.lock b/pubspec.lock index 85ec771..fb18d0f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,23 +5,23 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "72.0.0" + version: "76.0.0" _macros: dependency: transitive description: dart source: sdk - version: "0.3.2" + version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "6.11.0" args: dependency: transitive description: @@ -34,18 +34,18 @@ packages: dependency: "direct main" description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.13.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" build: dependency: transitive description: @@ -114,10 +114,10 @@ packages: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" checked_yaml: dependency: transitive description: @@ -130,10 +130,10 @@ packages: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" code_builder: dependency: transitive description: @@ -146,10 +146,10 @@ packages: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.1" convert: dependency: transitive description: @@ -218,10 +218,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.3" ffi: dependency: transitive description: @@ -481,18 +481,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -529,18 +529,18 @@ packages: dependency: transitive description: name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" url: "https://pub.dev" source: hosted - version: "0.1.2-main.4" + version: "0.1.3-main.0" matcher: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -553,10 +553,10 @@ packages: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.16.0" mime: dependency: transitive description: @@ -585,10 +585,10 @@ packages: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" path_provider: dependency: "direct main" description: @@ -721,7 +721,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_gen: dependency: transitive description: @@ -742,10 +742,10 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" sprintf: dependency: transitive description: @@ -758,10 +758,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.1" state_notifier: dependency: transitive description: @@ -774,10 +774,10 @@ packages: dependency: "direct main" description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" stream_transform: dependency: transitive description: @@ -790,10 +790,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.4.1" synchronized: dependency: "direct main" description: @@ -806,18 +806,18 @@ packages: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.4" timing: dependency: transitive description: @@ -926,10 +926,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "15.0.0" watcher: dependency: transitive description: @@ -1019,5 +1019,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.5.3 <4.0.0" + dart: ">=3.7.0-0 <4.0.0" flutter: ">=3.24.0"