stream-chat-react-native-core 5.27.0-beta.8 → 5.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Gallery.js +4 -4
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js +100 -37
- package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js +3 -1
- package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +39 -21
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +22 -21
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/i18n/es.json +17 -17
- package/lib/commonjs/i18n/fr.json +17 -17
- package/lib/commonjs/i18n/he.json +17 -17
- package/lib/commonjs/i18n/hi.json +17 -17
- package/lib/commonjs/i18n/it.json +17 -17
- package/lib/commonjs/i18n/ja.json +17 -17
- package/lib/commonjs/i18n/ko.json +17 -17
- package/lib/commonjs/i18n/nl.json +17 -17
- package/lib/commonjs/i18n/pt-BR.json +17 -17
- package/lib/commonjs/i18n/ru.json +17 -17
- package/lib/commonjs/i18n/tr.json +17 -17
- package/lib/commonjs/store/apis/upsertChannelDataFromChannel.js +21 -0
- package/lib/commonjs/store/apis/upsertChannelDataFromChannel.js.map +1 -0
- package/lib/commonjs/store/mappers/mapChannelToStorable.js +63 -0
- package/lib/commonjs/store/mappers/mapChannelToStorable.js.map +1 -0
- package/lib/commonjs/utils/DBSyncManager.js +73 -68
- package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Gallery.js +4 -4
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/Chat/hooks/handleEventToSyncDB.js +100 -37
- package/lib/module/components/Chat/hooks/handleEventToSyncDB.js.map +1 -1
- package/lib/module/components/Chat/hooks/useSyncDatabase.js +3 -1
- package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +39 -21
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +22 -21
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/i18n/es.json +17 -17
- package/lib/module/i18n/fr.json +17 -17
- package/lib/module/i18n/he.json +17 -17
- package/lib/module/i18n/hi.json +17 -17
- package/lib/module/i18n/it.json +17 -17
- package/lib/module/i18n/ja.json +17 -17
- package/lib/module/i18n/ko.json +17 -17
- package/lib/module/i18n/nl.json +17 -17
- package/lib/module/i18n/pt-BR.json +17 -17
- package/lib/module/i18n/ru.json +17 -17
- package/lib/module/i18n/tr.json +17 -17
- package/lib/module/store/apis/upsertChannelDataFromChannel.js +21 -0
- package/lib/module/store/apis/upsertChannelDataFromChannel.js.map +1 -0
- package/lib/module/store/mappers/mapChannelToStorable.js +63 -0
- package/lib/module/store/mappers/mapChannelToStorable.js.map +1 -0
- package/lib/module/utils/DBSyncManager.js +73 -68
- package/lib/module/utils/DBSyncManager.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Chat/hooks/handleEventToSyncDB.d.ts +4 -2
- package/lib/typescript/i18n/es.json +17 -17
- package/lib/typescript/i18n/fr.json +17 -17
- package/lib/typescript/i18n/he.json +17 -17
- package/lib/typescript/i18n/hi.json +17 -17
- package/lib/typescript/i18n/it.json +17 -17
- package/lib/typescript/i18n/ja.json +17 -17
- package/lib/typescript/i18n/ko.json +17 -17
- package/lib/typescript/i18n/nl.json +17 -17
- package/lib/typescript/i18n/pt-BR.json +17 -17
- package/lib/typescript/i18n/ru.json +17 -17
- package/lib/typescript/i18n/tr.json +17 -17
- package/lib/typescript/store/apis/upsertChannelDataFromChannel.d.ts +6 -0
- package/lib/typescript/store/mappers/mapChannelToStorable.d.ts +4 -0
- package/lib/typescript/utils/DBSyncManager.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/Attachment/Gallery.tsx +5 -5
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +1 -1
- package/src/components/Chat/hooks/handleEventToSyncDB.ts +132 -46
- package/src/components/Chat/hooks/useSyncDatabase.ts +1 -1
- package/src/components/ImageGallery/ImageGallery.tsx +25 -2
- package/src/components/MessageList/MessageList.tsx +4 -2
- package/src/i18n/es.json +17 -17
- package/src/i18n/fr.json +17 -17
- package/src/i18n/he.json +17 -17
- package/src/i18n/hi.json +17 -17
- package/src/i18n/it.json +17 -17
- package/src/i18n/ja.json +17 -17
- package/src/i18n/ko.json +17 -17
- package/src/i18n/nl.json +17 -17
- package/src/i18n/pt-BR.json +17 -17
- package/src/i18n/ru.json +17 -17
- package/src/i18n/tr.json +17 -17
- package/src/store/apis/upsertChannelDataFromChannel.ts +25 -0
- package/src/store/mappers/mapChannelToStorable.ts +68 -0
- package/src/utils/DBSyncManager.ts +7 -3
- package/src/version.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"1 Reply": "1 Resposta",
|
|
3
|
-
"1 Thread Reply": "",
|
|
4
|
-
"Allow access to your Gallery": "",
|
|
5
|
-
"Allow camera access in device settings": "",
|
|
3
|
+
"1 Thread Reply": "1 Resposta de Thread",
|
|
4
|
+
"Allow access to your Gallery": "Permitir acesso à sua Galeria",
|
|
5
|
+
"Allow camera access in device settings": "Permitir acesso à câmera nas configurações do dispositivo",
|
|
6
6
|
"Also send to channel": "Também enviar para o canal",
|
|
7
7
|
"Are you sure you want to permanently delete this message?": "Tem certeza de que deseja excluir esta mensagem permanentemente?",
|
|
8
8
|
"Are you sure?": "Tem certeza?",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"Copy Message": "Copiar Mensagem",
|
|
14
14
|
"Delete": "Excluir",
|
|
15
15
|
"Delete Message": "Excluir Mensagem",
|
|
16
|
-
"Device camera is used to take photos or videos.": "",
|
|
16
|
+
"Device camera is used to take photos or videos.": "A câmera do dispositivo é usada para tirar fotos ou vídeos.",
|
|
17
17
|
"Do you want to send a copy of this message to a moderator for further investigation?": "Deseja enviar uma cópia desta mensagem para um moderador para investigação adicional?",
|
|
18
18
|
"Edit Message": "Editar Mensagem",
|
|
19
|
-
"Editing Message": "",
|
|
19
|
+
"Editing Message": "Editando Mensagem",
|
|
20
20
|
"Emoji matching": "Correspondência de Emoji",
|
|
21
21
|
"Empty message...": "Mensagem vazia...",
|
|
22
22
|
"Error loading": "Erro ao carregar",
|
|
@@ -39,23 +39,23 @@
|
|
|
39
39
|
"Message deleted": "Mensagem excluída",
|
|
40
40
|
"Message flagged": "Mensagem sinalizada",
|
|
41
41
|
"Mute User": "Silenciar Usuário",
|
|
42
|
-
"Not supported": "",
|
|
42
|
+
"Not supported": "Não suportado",
|
|
43
43
|
"Nothing yet...": "Nada ainda...",
|
|
44
44
|
"Ok": "Ok",
|
|
45
|
-
"Only visible to you": "",
|
|
46
|
-
"Open Settings": "",
|
|
45
|
+
"Only visible to you": "Apenas visível para você",
|
|
46
|
+
"Open Settings": "Abrir Configurações",
|
|
47
47
|
"Photo": "Foto",
|
|
48
|
-
"Photos and Videos": "",
|
|
48
|
+
"Photos and Videos": "Fotos e Vídeos",
|
|
49
49
|
"Pin to Conversation": "Fixar na Conversa",
|
|
50
|
-
"Pinned by": "",
|
|
51
|
-
"Please enable access to your photos and videos so you can share them.": "",
|
|
50
|
+
"Pinned by": "Fixado por",
|
|
51
|
+
"Please enable access to your photos and videos so you can share them.": "Por favor, habilite o acesso às suas fotos e vídeos para poder compartilhá-los.",
|
|
52
52
|
"Please select a channel first": "Por favor, selecione um canal primeiro",
|
|
53
53
|
"Reconnecting...": "Reconectando...",
|
|
54
54
|
"Reply": "Responder",
|
|
55
55
|
"Reply to Message": "Responder à Mensagem",
|
|
56
56
|
"Resend": "Reenviar",
|
|
57
57
|
"Search GIFs": "Pesquisar GIFs",
|
|
58
|
-
"Select More Photos": "",
|
|
58
|
+
"Select More Photos": "Selecionar Mais Fotos",
|
|
59
59
|
"Send Anyway": "Enviar de qualquer maneira",
|
|
60
60
|
"Send a message": "Enviar uma mensagem",
|
|
61
61
|
"Sending links is not allowed in this conversation": "Não é permitido enviar links nesta conversa",
|
|
@@ -63,17 +63,17 @@
|
|
|
63
63
|
"The message has been reported to a moderator.": "A mensagem foi relatada a um moderador.",
|
|
64
64
|
"Thread Reply": "Respostas de Tópico",
|
|
65
65
|
"Unblock User": "Desbloquear Usuário",
|
|
66
|
-
"Unknown User": "",
|
|
66
|
+
"Unknown User": "Usuário Desconhecido",
|
|
67
67
|
"Unmute User": "Remover usuário do modo silencioso",
|
|
68
68
|
"Unpin from Conversation": "Desmarcar como fixado na conversa",
|
|
69
69
|
"Unread Messages": "Mensagens não lidas",
|
|
70
70
|
"Video": "Vídeo",
|
|
71
71
|
"You": "Você",
|
|
72
72
|
"You can't send messages in this channel": "Você não pode enviar mensagens neste canal",
|
|
73
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
74
|
-
"{{ index }} of {{ photoLength }}": "",
|
|
73
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} e mais {{ nonSelfUserLength }} pessoa(s) estão digitando",
|
|
74
|
+
"{{ index }} of {{ photoLength }}": "{{ index }} de {{ photoLength }}",
|
|
75
75
|
"{{ replyCount }} Replies": "{{ replyCount }} Respostas",
|
|
76
|
-
"{{ replyCount }} Thread Replies": "",
|
|
77
|
-
"{{ user }} is typing": "",
|
|
76
|
+
"{{ replyCount }} Thread Replies": "{{ replyCount }} Respostas de Thread",
|
|
77
|
+
"{{ user }} is typing": "{{ user }} está digitando",
|
|
78
78
|
"🏙 Attachment...": "🏙 Anexo..."
|
|
79
79
|
}
|
package/lib/module/i18n/ru.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"1 Reply": "1 Ответ",
|
|
3
|
-
"1 Thread Reply": "",
|
|
4
|
-
"Allow access to your Gallery": "",
|
|
5
|
-
"Allow camera access in device settings": "",
|
|
3
|
+
"1 Thread Reply": "1 тема Ответить",
|
|
4
|
+
"Allow access to your Gallery": "Разрешить доступ к вашей галерее",
|
|
5
|
+
"Allow camera access in device settings": "Разрешите доступ к камере в настройках устройства.",
|
|
6
6
|
"Also send to channel": "Также отправить на канал",
|
|
7
7
|
"Are you sure you want to permanently delete this message?": "Вы действительно хотите удалить это сообщение без возможности восстановления?",
|
|
8
8
|
"Are you sure?": "Вы уверены?",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"Copy Message": "Копировать сообщение",
|
|
14
14
|
"Delete": "удалять",
|
|
15
15
|
"Delete Message": "Удалить сообщение",
|
|
16
|
-
"Device camera is used to take photos or videos.": "",
|
|
16
|
+
"Device camera is used to take photos or videos.": "Камера устройства используется для съемки фотографий или видео.",
|
|
17
17
|
"Do you want to send a copy of this message to a moderator for further investigation?": "Вы хотите отправить копию этого сообщения модератору для дальнейшего изучения?",
|
|
18
18
|
"Edit Message": "Редактировать сообщение",
|
|
19
|
-
"Editing Message": "",
|
|
19
|
+
"Editing Message": "Редактирование сообщения",
|
|
20
20
|
"Emoji matching": "Соответствие эмодзи",
|
|
21
21
|
"Empty message...": "Пустое сообщение...",
|
|
22
22
|
"Error loading": "Ошибка при загрузке",
|
|
@@ -39,23 +39,23 @@
|
|
|
39
39
|
"Message deleted": "Сообщение удалено",
|
|
40
40
|
"Message flagged": "Сообщение отмечено",
|
|
41
41
|
"Mute User": "Отключить пользователя",
|
|
42
|
-
"Not supported": "",
|
|
42
|
+
"Not supported": "не поддерживается",
|
|
43
43
|
"Nothing yet...": "Пока ничего нет...",
|
|
44
44
|
"Ok": "Oк",
|
|
45
|
-
"Only visible to you": "",
|
|
46
|
-
"Open Settings": "",
|
|
45
|
+
"Only visible to you": "Видно только вам",
|
|
46
|
+
"Open Settings": "Открыть настройки",
|
|
47
47
|
"Photo": "Фото",
|
|
48
|
-
"Photos and Videos": "",
|
|
48
|
+
"Photos and Videos": "Фото и видео",
|
|
49
49
|
"Pin to Conversation": "Закрепить к беседе",
|
|
50
|
-
"Pinned by": "",
|
|
51
|
-
"Please enable access to your photos and videos so you can share them.": "",
|
|
50
|
+
"Pinned by": "Закреплено пользователем",
|
|
51
|
+
"Please enable access to your photos and videos so you can share them.": "Разрешите доступ к своим фотографиям и видео, чтобы вы могли ими поделиться.",
|
|
52
52
|
"Please select a channel first": "Пожалуйста, сначала выберите канал",
|
|
53
53
|
"Reconnecting...": "Переподключение...",
|
|
54
54
|
"Reply": "Ответить",
|
|
55
55
|
"Reply to Message": "Ответить на сообщение",
|
|
56
56
|
"Resend": "Отправить",
|
|
57
57
|
"Search GIFs": "Поиск GIF",
|
|
58
|
-
"Select More Photos": "",
|
|
58
|
+
"Select More Photos": "Выбрать больше фотографий",
|
|
59
59
|
"Send Anyway": "Всё равно отправить",
|
|
60
60
|
"Send a message": "Отправить сообщение",
|
|
61
61
|
"Sending links is not allowed in this conversation": "Отправка ссылок недоступна в этом чате",
|
|
@@ -63,17 +63,17 @@
|
|
|
63
63
|
"The message has been reported to a moderator.": "Сообщение отправлено модератору.",
|
|
64
64
|
"Thread Reply": "Тема Ответить",
|
|
65
65
|
"Unblock User": "Разблокировать пользователя",
|
|
66
|
-
"Unknown User": "",
|
|
66
|
+
"Unknown User": "Неизвестный пользователь",
|
|
67
67
|
"Unmute User": "Включить микрофон",
|
|
68
68
|
"Unpin from Conversation": "Открепить от беседы",
|
|
69
69
|
"Unread Messages": "Непрочитанные Сообщения",
|
|
70
70
|
"Video": "видео",
|
|
71
71
|
"You": "Вы",
|
|
72
72
|
"You can't send messages in this channel": "Вы не можете отправлять сообщения в этот канал",
|
|
73
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
74
|
-
"{{ index }} of {{ photoLength }}": "",
|
|
73
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} и еще {{ nonSelfUserLength }} пишут",
|
|
74
|
+
"{{ index }} of {{ photoLength }}": "{{ index }} из {{ photoLength }}",
|
|
75
75
|
"{{ replyCount }} Replies": "{{ replyCount }} Ответов",
|
|
76
|
-
"{{ replyCount }} Thread Replies": "",
|
|
77
|
-
"{{ user }} is typing": "",
|
|
76
|
+
"{{ replyCount }} Thread Replies": "{{replyCount}} Ответы в темах",
|
|
77
|
+
"{{ user }} is typing": "{{ user }} пишет",
|
|
78
78
|
"🏙 Attachment...": "🏙 Вложение..."
|
|
79
79
|
}
|
package/lib/module/i18n/tr.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"1 Reply": "1 Cevap",
|
|
3
|
-
"1 Thread Reply": "",
|
|
4
|
-
"Allow access to your Gallery": "",
|
|
5
|
-
"Allow camera access in device settings": "",
|
|
3
|
+
"1 Thread Reply": "1 Konu Yanıtı",
|
|
4
|
+
"Allow access to your Gallery": "Galerinize erişime izin verin",
|
|
5
|
+
"Allow camera access in device settings": "Cihaz ayarlarında kamera erişimine izin ver",
|
|
6
6
|
"Also send to channel": "Kanala da gönder",
|
|
7
7
|
"Are you sure you want to permanently delete this message?": "Bu mesajı kalıcı olarak silmek istediğinizden emin misiniz?",
|
|
8
8
|
"Are you sure?": "Emin misiniz?",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"Copy Message": "Mesajı Kopyala",
|
|
14
14
|
"Delete": "Sil",
|
|
15
15
|
"Delete Message": "Mesajı Sil",
|
|
16
|
-
"Device camera is used to take photos or videos.": "",
|
|
16
|
+
"Device camera is used to take photos or videos.": "Cihaz kamerası fotoğraf veya video çekmek için kullanılır.",
|
|
17
17
|
"Do you want to send a copy of this message to a moderator for further investigation?": "Detaylı inceleme için bu mesajın kopyasını moderatöre göndermek istiyor musunuz?",
|
|
18
18
|
"Edit Message": "Mesajı Düzenle",
|
|
19
|
-
"Editing Message": "",
|
|
19
|
+
"Editing Message": "Mesaj Düzenleniyor",
|
|
20
20
|
"Emoji matching": "Emoji eşleştirme",
|
|
21
21
|
"Empty message...": "Boş mesaj...",
|
|
22
22
|
"Error loading": "Yükleme hatası",
|
|
@@ -39,23 +39,23 @@
|
|
|
39
39
|
"Message deleted": "Mesaj silindi",
|
|
40
40
|
"Message flagged": "Mesaj işaretlendi",
|
|
41
41
|
"Mute User": "Kullanıcıyı sessize al",
|
|
42
|
-
"Not supported": "",
|
|
42
|
+
"Not supported": "Desteklenmiyor",
|
|
43
43
|
"Nothing yet...": "Henüz değil...",
|
|
44
44
|
"Ok": "Tamam",
|
|
45
|
-
"Only visible to you": "",
|
|
46
|
-
"Open Settings": "",
|
|
45
|
+
"Only visible to you": "Sadece siz görebilirsiniz",
|
|
46
|
+
"Open Settings": "Ayarları aç",
|
|
47
47
|
"Photo": "Fotoğraf",
|
|
48
|
-
"Photos and Videos": "",
|
|
48
|
+
"Photos and Videos": "Fotoğraflar ve Videolar",
|
|
49
49
|
"Pin to Conversation": "Konuşmaya sabitle",
|
|
50
|
-
"Pinned by": "",
|
|
51
|
-
"Please enable access to your photos and videos so you can share them.": "",
|
|
50
|
+
"Pinned by": "Tarafından sabitlendi",
|
|
51
|
+
"Please enable access to your photos and videos so you can share them.": "Paylaşım yapabilmek için lutfen fotoğraflarınıza ve videolarınıza erişimi etkinleştirin.",
|
|
52
52
|
"Please select a channel first": "Lütfen önce bir kanal seçiniz",
|
|
53
53
|
"Reconnecting...": "Yeniden Bağlanılıyor...",
|
|
54
54
|
"Reply": "Yanıtla",
|
|
55
55
|
"Reply to Message": "Mesajı Yanıtla",
|
|
56
56
|
"Resend": "Yeniden gönder",
|
|
57
57
|
"Search GIFs": "GIF Ara",
|
|
58
|
-
"Select More Photos": "",
|
|
58
|
+
"Select More Photos": "Daha Fazla Fotoğraf Seçin",
|
|
59
59
|
"Send Anyway": "Yine de Gönder",
|
|
60
60
|
"Send a message": "Mesaj gönder",
|
|
61
61
|
"Sending links is not allowed in this conversation": "Bu konuşmada bağlantı göndermek desteklenmiyor",
|
|
@@ -63,17 +63,17 @@
|
|
|
63
63
|
"The message has been reported to a moderator.": "Mesaj moderatöre bildirildi.",
|
|
64
64
|
"Thread Reply": "Konu Yanıtı",
|
|
65
65
|
"Unblock User": "Kullanıcının engelini kaldır",
|
|
66
|
-
"Unknown User": "",
|
|
66
|
+
"Unknown User": "Bilinmeyen kullanıcı",
|
|
67
67
|
"Unmute User": "Kullanıcının sesini aç",
|
|
68
68
|
"Unpin from Conversation": "Sabitlemeyi kaldır",
|
|
69
69
|
"Unread Messages": "Okunmamış Mesajlar",
|
|
70
70
|
"Video": "Video",
|
|
71
71
|
"You": "Sen",
|
|
72
72
|
"You can't send messages in this channel": "Bu konuşmaya mesaj gönderemezsiniz",
|
|
73
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
74
|
-
"{{ index }} of {{ photoLength }}": "",
|
|
73
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ve {{ nonSelfUserLength }} kişi daha yazıyor",
|
|
74
|
+
"{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
|
|
75
75
|
"{{ replyCount }} Replies": "{{ replyCount }} Cevap",
|
|
76
|
-
"{{ replyCount }} Thread Replies": "",
|
|
77
|
-
"{{ user }} is typing": "",
|
|
76
|
+
"{{ replyCount }} Thread Replies": "{{responseCount}} Konu Cevapı",
|
|
77
|
+
"{{ user }} is typing": "{{ user }} yazıyor",
|
|
78
78
|
"🏙 Attachment...": "🏙 Ek..."
|
|
79
79
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.upsertChannelDataFromChannel = void 0;
|
|
5
|
+
var _mapChannelToStorable = require("../mappers/mapChannelToStorable");
|
|
6
|
+
var _QuickSqliteClient = require("../QuickSqliteClient");
|
|
7
|
+
var _createUpsertQuery = require("../sqlite-utils/createUpsertQuery");
|
|
8
|
+
var upsertChannelDataFromChannel = function upsertChannelDataFromChannel(_ref) {
|
|
9
|
+
var channel = _ref.channel,
|
|
10
|
+
_ref$flush = _ref.flush,
|
|
11
|
+
flush = _ref$flush === void 0 ? true : _ref$flush;
|
|
12
|
+
var storableChannel = (0, _mapChannelToStorable.mapChannelToStorable)(channel);
|
|
13
|
+
if (!storableChannel) return;
|
|
14
|
+
var query = (0, _createUpsertQuery.createUpsertQuery)('channels', storableChannel);
|
|
15
|
+
if (flush) {
|
|
16
|
+
_QuickSqliteClient.QuickSqliteClient.executeSqlBatch([query]);
|
|
17
|
+
}
|
|
18
|
+
return [query];
|
|
19
|
+
};
|
|
20
|
+
exports.upsertChannelDataFromChannel = upsertChannelDataFromChannel;
|
|
21
|
+
//# sourceMappingURL=upsertChannelDataFromChannel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_mapChannelToStorable","require","_QuickSqliteClient","_createUpsertQuery","upsertChannelDataFromChannel","_ref","channel","_ref$flush","flush","storableChannel","mapChannelToStorable","query","createUpsertQuery","QuickSqliteClient","executeSqlBatch","exports"],"sources":["upsertChannelDataFromChannel.ts"],"sourcesContent":["import { DefaultStreamChatGenerics } from 'src/types/types';\nimport type { Channel } from 'stream-chat';\n\nimport { mapChannelToStorable } from '../mappers/mapChannelToStorable';\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\n\nexport const upsertChannelDataFromChannel = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n flush = true,\n}: {\n channel: Channel<StreamChatGenerics>;\n flush?: boolean;\n}) => {\n const storableChannel = mapChannelToStorable(channel);\n if (!storableChannel) return;\n const query = createUpsertQuery('channels', storableChannel);\n if (flush) {\n QuickSqliteClient.executeSqlBatch([query]);\n }\n\n return [query];\n};\n"],"mappings":";;;;AAGA,IAAAA,qBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAEO,IAAMG,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAAC,IAAA,EAQnC;EAAA,IALJC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAAC,UAAA,GAAAF,IAAA,CACPG,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,IAAI,GAAAA,UAAA;EAKZ,IAAME,eAAe,GAAG,IAAAC,0CAAoB,EAACJ,OAAO,CAAC;EACrD,IAAI,CAACG,eAAe,EAAE;EACtB,IAAME,KAAK,GAAG,IAAAC,oCAAiB,EAAC,UAAU,EAAEH,eAAe,CAAC;EAC5D,IAAID,KAAK,EAAE;IACTK,oCAAiB,CAACC,eAAe,CAAC,CAACH,KAAK,CAAC,CAAC;EAC5C;EAEA,OAAO,CAACA,KAAK,CAAC;AAChB,CAAC;AAACI,OAAA,CAAAX,4BAAA,GAAAA,4BAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.mapChannelToStorable = void 0;
|
|
6
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
7
|
+
var _mapDateTimeToStorable = require("./mapDateTimeToStorable");
|
|
8
|
+
var _excluded = ["auto_translation_enabled", "auto_translation_language", "cid", "config", "cooldown", "created_at", "deleted_at", "disabled", "frozen", "hidden", "id", "invites", "last_message_at", "member_count", "members", "muted", "own_capabilities", "team", "truncated_at", "truncated_by", "truncated_by_id", "type", "updated_at"];
|
|
9
|
+
var mapChannelToStorable = function mapChannelToStorable(channel) {
|
|
10
|
+
if (!channel.data) return;
|
|
11
|
+
var _ref = channel.data,
|
|
12
|
+
auto_translation_enabled = _ref.auto_translation_enabled,
|
|
13
|
+
auto_translation_language = _ref.auto_translation_language,
|
|
14
|
+
cid = _ref.cid,
|
|
15
|
+
config = _ref.config,
|
|
16
|
+
cooldown = _ref.cooldown,
|
|
17
|
+
created_at = _ref.created_at,
|
|
18
|
+
deleted_at = _ref.deleted_at,
|
|
19
|
+
disabled = _ref.disabled,
|
|
20
|
+
frozen = _ref.frozen,
|
|
21
|
+
hidden = _ref.hidden,
|
|
22
|
+
id = _ref.id,
|
|
23
|
+
invites = _ref.invites,
|
|
24
|
+
last_message_at = _ref.last_message_at,
|
|
25
|
+
member_count = _ref.member_count,
|
|
26
|
+
members = _ref.members,
|
|
27
|
+
muted = _ref.muted,
|
|
28
|
+
own_capabilities = _ref.own_capabilities,
|
|
29
|
+
team = _ref.team,
|
|
30
|
+
truncated_at = _ref.truncated_at,
|
|
31
|
+
truncated_by = _ref.truncated_by,
|
|
32
|
+
truncated_by_id = _ref.truncated_by_id,
|
|
33
|
+
type = _ref.type,
|
|
34
|
+
updated_at = _ref.updated_at,
|
|
35
|
+
extraData = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
36
|
+
return {
|
|
37
|
+
autoTranslationEnabled: auto_translation_enabled,
|
|
38
|
+
autoTranslationLanguage: auto_translation_language,
|
|
39
|
+
cid: cid,
|
|
40
|
+
config: config && JSON.stringify(config),
|
|
41
|
+
cooldown: cooldown,
|
|
42
|
+
createdAt: (0, _mapDateTimeToStorable.mapDateTimeToStorable)(created_at),
|
|
43
|
+
deletedAt: (0, _mapDateTimeToStorable.mapDateTimeToStorable)(deleted_at),
|
|
44
|
+
disabled: disabled,
|
|
45
|
+
extraData: JSON.stringify(extraData),
|
|
46
|
+
frozen: frozen,
|
|
47
|
+
hidden: hidden,
|
|
48
|
+
id: id,
|
|
49
|
+
invites: invites && JSON.stringify(invites),
|
|
50
|
+
lastMessageAt: (0, _mapDateTimeToStorable.mapDateTimeToStorable)(last_message_at),
|
|
51
|
+
memberCount: member_count,
|
|
52
|
+
muted: muted,
|
|
53
|
+
ownCapabilities: own_capabilities && JSON.stringify(own_capabilities),
|
|
54
|
+
team: team,
|
|
55
|
+
truncatedAt: truncated_at,
|
|
56
|
+
truncatedBy: truncated_by && JSON.stringify(truncated_by),
|
|
57
|
+
truncatedById: truncated_by_id,
|
|
58
|
+
type: type,
|
|
59
|
+
updatedAt: updated_at
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
exports.mapChannelToStorable = mapChannelToStorable;
|
|
63
|
+
//# sourceMappingURL=mapChannelToStorable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_mapDateTimeToStorable","require","_excluded","mapChannelToStorable","channel","data","_ref","auto_translation_enabled","auto_translation_language","cid","config","cooldown","created_at","deleted_at","disabled","frozen","hidden","id","invites","last_message_at","member_count","members","muted","own_capabilities","team","truncated_at","truncated_by","truncated_by_id","type","updated_at","extraData","_objectWithoutProperties2","autoTranslationEnabled","autoTranslationLanguage","JSON","stringify","createdAt","mapDateTimeToStorable","deletedAt","lastMessageAt","memberCount","ownCapabilities","truncatedAt","truncatedBy","truncatedById","updatedAt","exports"],"sources":["mapChannelToStorable.ts"],"sourcesContent":["import type { Channel, ChannelResponse } from 'stream-chat';\n\nimport { mapDateTimeToStorable } from './mapDateTimeToStorable';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nimport type { TableRow } from '../types';\n\nexport const mapChannelToStorable = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n): TableRow<'channels'> | undefined => {\n if (!channel.data) return;\n const {\n auto_translation_enabled,\n auto_translation_language,\n cid,\n config,\n cooldown,\n created_at,\n deleted_at,\n disabled,\n frozen,\n hidden,\n id,\n invites,\n last_message_at,\n member_count,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n members,\n muted,\n own_capabilities,\n team,\n truncated_at,\n truncated_by,\n truncated_by_id,\n type,\n updated_at,\n ...extraData\n } = channel.data as unknown as ChannelResponse<StreamChatGenerics>;\n\n return {\n autoTranslationEnabled: auto_translation_enabled,\n autoTranslationLanguage: auto_translation_language,\n cid,\n config: config && JSON.stringify(config),\n cooldown,\n createdAt: mapDateTimeToStorable(created_at),\n deletedAt: mapDateTimeToStorable(deleted_at),\n disabled,\n extraData: JSON.stringify(extraData),\n frozen,\n hidden,\n id,\n invites: invites && JSON.stringify(invites),\n lastMessageAt: mapDateTimeToStorable(last_message_at),\n memberCount: member_count,\n muted,\n ownCapabilities: own_capabilities && JSON.stringify(own_capabilities),\n team,\n truncatedAt: truncated_at,\n truncatedBy: truncated_by && JSON.stringify(truncated_by),\n truncatedById: truncated_by_id,\n type,\n updatedAt: updated_at,\n };\n};\n"],"mappings":";;;;;;AAEA,IAAAA,sBAAA,GAAAC,OAAA;AAAgE,IAAAC,SAAA;AAMzD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAG/BC,OAAoC,EACC;EACrC,IAAI,CAACA,OAAO,CAACC,IAAI,EAAE;EACnB,IAAAC,IAAA,GA0BIF,OAAO,CAACC,IAAI;IAzBdE,wBAAwB,GAAAD,IAAA,CAAxBC,wBAAwB;IACxBC,yBAAyB,GAAAF,IAAA,CAAzBE,yBAAyB;IACzBC,GAAG,GAAAH,IAAA,CAAHG,GAAG;IACHC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,UAAU,GAAAN,IAAA,CAAVM,UAAU;IACVC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,QAAQ,GAAAR,IAAA,CAARQ,QAAQ;IACRC,MAAM,GAAAT,IAAA,CAANS,MAAM;IACNC,MAAM,GAAAV,IAAA,CAANU,MAAM;IACNC,EAAE,GAAAX,IAAA,CAAFW,EAAE;IACFC,OAAO,GAAAZ,IAAA,CAAPY,OAAO;IACPC,eAAe,GAAAb,IAAA,CAAfa,eAAe;IACfC,YAAY,GAAAd,IAAA,CAAZc,YAAY;IAEZC,OAAO,GAAAf,IAAA,CAAPe,OAAO;IACPC,KAAK,GAAAhB,IAAA,CAALgB,KAAK;IACLC,gBAAgB,GAAAjB,IAAA,CAAhBiB,gBAAgB;IAChBC,IAAI,GAAAlB,IAAA,CAAJkB,IAAI;IACJC,YAAY,GAAAnB,IAAA,CAAZmB,YAAY;IACZC,YAAY,GAAApB,IAAA,CAAZoB,YAAY;IACZC,eAAe,GAAArB,IAAA,CAAfqB,eAAe;IACfC,IAAI,GAAAtB,IAAA,CAAJsB,IAAI;IACJC,UAAU,GAAAvB,IAAA,CAAVuB,UAAU;IACPC,SAAS,OAAAC,yBAAA,aAAAzB,IAAA,EAAAJ,SAAA;EAGd,OAAO;IACL8B,sBAAsB,EAAEzB,wBAAwB;IAChD0B,uBAAuB,EAAEzB,yBAAyB;IAClDC,GAAG,EAAHA,GAAG;IACHC,MAAM,EAAEA,MAAM,IAAIwB,IAAI,CAACC,SAAS,CAACzB,MAAM,CAAC;IACxCC,QAAQ,EAARA,QAAQ;IACRyB,SAAS,EAAE,IAAAC,4CAAqB,EAACzB,UAAU,CAAC;IAC5C0B,SAAS,EAAE,IAAAD,4CAAqB,EAACxB,UAAU,CAAC;IAC5CC,QAAQ,EAARA,QAAQ;IACRgB,SAAS,EAAEI,IAAI,CAACC,SAAS,CAACL,SAAS,CAAC;IACpCf,MAAM,EAANA,MAAM;IACNC,MAAM,EAANA,MAAM;IACNC,EAAE,EAAFA,EAAE;IACFC,OAAO,EAAEA,OAAO,IAAIgB,IAAI,CAACC,SAAS,CAACjB,OAAO,CAAC;IAC3CqB,aAAa,EAAE,IAAAF,4CAAqB,EAAClB,eAAe,CAAC;IACrDqB,WAAW,EAAEpB,YAAY;IACzBE,KAAK,EAALA,KAAK;IACLmB,eAAe,EAAElB,gBAAgB,IAAIW,IAAI,CAACC,SAAS,CAACZ,gBAAgB,CAAC;IACrEC,IAAI,EAAJA,IAAI;IACJkB,WAAW,EAAEjB,YAAY;IACzBkB,WAAW,EAAEjB,YAAY,IAAIQ,IAAI,CAACC,SAAS,CAACT,YAAY,CAAC;IACzDkB,aAAa,EAAEjB,eAAe;IAC9BC,IAAI,EAAJA,IAAI;IACJiB,SAAS,EAAEhB;EACb,CAAC;AACH,CAAC;AAACiB,OAAA,CAAA3C,oBAAA,GAAAA,oBAAA"}
|
|
@@ -105,73 +105,78 @@ DBSyncManager.onSyncStatusChange = function (listener) {
|
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
107
|
};
|
|
108
|
-
DBSyncManager.sync =
|
|
109
|
-
var
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
108
|
+
DBSyncManager.sync = function () {
|
|
109
|
+
var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(client) {
|
|
110
|
+
var _DBSyncManager$client;
|
|
111
|
+
var cids, lastSyncedAt, lastSyncedAtDate, lastSyncedAtDayJs, nowDayJs, diff, result, queries;
|
|
112
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
113
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
114
|
+
case 0:
|
|
115
|
+
if ((_DBSyncManager$client = DBSyncManager.client) != null && _DBSyncManager$client.user) {
|
|
116
|
+
_context3.next = 2;
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
return _context3.abrupt("return");
|
|
120
|
+
case 2:
|
|
121
|
+
cids = (0, _apis.getAllChannelIds)();
|
|
122
|
+
if (!(cids.length === 0)) {
|
|
123
|
+
_context3.next = 5;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
return _context3.abrupt("return");
|
|
127
|
+
case 5:
|
|
128
|
+
lastSyncedAt = (0, _apis.getLastSyncedAt)({
|
|
129
|
+
currentUserId: DBSyncManager.client.user.id
|
|
130
|
+
});
|
|
131
|
+
if (!lastSyncedAt) {
|
|
132
|
+
_context3.next = 26;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
lastSyncedAtDate = new Date(lastSyncedAt);
|
|
136
|
+
lastSyncedAtDayJs = (0, _dayjs["default"])(lastSyncedAtDate);
|
|
137
|
+
nowDayJs = (0, _dayjs["default"])();
|
|
138
|
+
diff = nowDayJs.diff(lastSyncedAtDayJs, 'days');
|
|
139
|
+
if (!(diff > 30)) {
|
|
140
|
+
_context3.next = 15;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
_QuickSqliteClient.QuickSqliteClient.resetDB();
|
|
131
144
|
_context3.next = 26;
|
|
132
145
|
break;
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
146
|
+
case 15:
|
|
147
|
+
_context3.prev = 15;
|
|
148
|
+
_context3.next = 18;
|
|
149
|
+
return DBSyncManager.client.sync(cids, lastSyncedAtDate.toISOString());
|
|
150
|
+
case 18:
|
|
151
|
+
result = _context3.sent;
|
|
152
|
+
queries = result.events.reduce(function (queries, event) {
|
|
153
|
+
queries = queries.concat((0, _handleEventToSyncDB.handleEventToSyncDB)(event, client, false));
|
|
154
|
+
return queries;
|
|
155
|
+
}, []);
|
|
156
|
+
if (queries.length) {
|
|
157
|
+
_QuickSqliteClient.QuickSqliteClient.executeSqlBatch(queries);
|
|
158
|
+
}
|
|
159
|
+
_context3.next = 26;
|
|
140
160
|
break;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
case 23:
|
|
161
|
-
_context3.prev = 23;
|
|
162
|
-
_context3.t0 = _context3["catch"](15);
|
|
163
|
-
_QuickSqliteClient.QuickSqliteClient.resetDB();
|
|
164
|
-
case 26:
|
|
165
|
-
(0, _apis.upsertUserSyncStatus)({
|
|
166
|
-
currentUserId: DBSyncManager.client.user.id,
|
|
167
|
-
lastSyncedAt: new Date().toString()
|
|
168
|
-
});
|
|
169
|
-
case 27:
|
|
170
|
-
case "end":
|
|
171
|
-
return _context3.stop();
|
|
172
|
-
}
|
|
173
|
-
}, _callee3, null, [[15, 23]]);
|
|
174
|
-
}));
|
|
161
|
+
case 23:
|
|
162
|
+
_context3.prev = 23;
|
|
163
|
+
_context3.t0 = _context3["catch"](15);
|
|
164
|
+
_QuickSqliteClient.QuickSqliteClient.resetDB();
|
|
165
|
+
case 26:
|
|
166
|
+
(0, _apis.upsertUserSyncStatus)({
|
|
167
|
+
currentUserId: DBSyncManager.client.user.id,
|
|
168
|
+
lastSyncedAt: new Date().toString()
|
|
169
|
+
});
|
|
170
|
+
case 27:
|
|
171
|
+
case "end":
|
|
172
|
+
return _context3.stop();
|
|
173
|
+
}
|
|
174
|
+
}, _callee3, null, [[15, 23]]);
|
|
175
|
+
}));
|
|
176
|
+
return function (_x3) {
|
|
177
|
+
return _ref3.apply(this, arguments);
|
|
178
|
+
};
|
|
179
|
+
}();
|
|
175
180
|
DBSyncManager.syncAndExecutePendingTasks = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
|
|
176
181
|
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
177
182
|
while (1) switch (_context4.prev = _context4.next) {
|
|
@@ -186,7 +191,7 @@ DBSyncManager.syncAndExecutePendingTasks = (0, _asyncToGenerator2["default"])(_r
|
|
|
186
191
|
return DBSyncManager.executePendingTasks(DBSyncManager.client);
|
|
187
192
|
case 4:
|
|
188
193
|
_context4.next = 6;
|
|
189
|
-
return DBSyncManager.sync();
|
|
194
|
+
return DBSyncManager.sync(DBSyncManager.client);
|
|
190
195
|
case 6:
|
|
191
196
|
case "end":
|
|
192
197
|
return _context4.stop();
|
|
@@ -231,7 +236,7 @@ DBSyncManager.queueTask = function () {
|
|
|
231
236
|
}
|
|
232
237
|
}, _callee5, null, [[2, 8]]);
|
|
233
238
|
}));
|
|
234
|
-
return function (
|
|
239
|
+
return function (_x4) {
|
|
235
240
|
return _ref6.apply(this, arguments);
|
|
236
241
|
};
|
|
237
242
|
}();
|
|
@@ -277,7 +282,7 @@ DBSyncManager.executeTask = function () {
|
|
|
277
282
|
}
|
|
278
283
|
}, _callee6);
|
|
279
284
|
}));
|
|
280
|
-
return function (
|
|
285
|
+
return function (_x5) {
|
|
281
286
|
return _ref8.apply(this, arguments);
|
|
282
287
|
};
|
|
283
288
|
}();
|
|
@@ -336,7 +341,7 @@ DBSyncManager.executePendingTasks = function () {
|
|
|
336
341
|
}
|
|
337
342
|
}, _callee7, null, [[6, 11]]);
|
|
338
343
|
}));
|
|
339
|
-
return function (
|
|
344
|
+
return function (_x6) {
|
|
340
345
|
return _ref9.apply(this, arguments);
|
|
341
346
|
};
|
|
342
347
|
}();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dayjs","_interopRequireDefault","require","_handleEventToSyncDB","_apis","_addPendingTask","_deletePendingTask","_getPendingTasks","_QuickSqliteClient","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","restBeforeNextTask","Promise","resolve","setTimeout","DBSyncManager","_createClass2","_classCallCheck2","exports","syncStatus","listeners","client","getSyncStatus","init","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","_client$user","_client$wsConnection","wrap","_callee2$","_context2","prev","user","id","wsConnection","isHealthy","syncAndExecutePendingTasks","forEach","l","on","_ref2","_callee","event","_callee$","_context","online","stop","_x2","apply","arguments","_x","onSyncStatusChange","listener","push","unsubscribe","filter","el","sync","_callee3","_DBSyncManager$client","cids","lastSyncedAt","lastSyncedAtDate","lastSyncedAtDayJs","nowDayJs","diff","result","queries","_callee3$","_context3","abrupt","getAllChannelIds","getLastSyncedAt","currentUserId","Date","dayjs","QuickSqliteClient","resetDB","toISOString","sent","events","reduce","concat","handleEventToSyncDB","executeSqlBatch","t0","upsertUserSyncStatus","_callee4","_callee4$","_context4","executePendingTasks","queueTask","_ref6","_callee5","_ref5","task","removeFromApi","response","_response","_response$data","_callee5$","_context5","addPendingTask","executeTask","data","code","_x3","_ref8","_callee6","_ref7","channel","_callee6$","_context6","channelType","channelId","type","sendReaction","_toConsumableArray2","payload","deleteReaction","deleteMessage","Error","_x4","_ref9","_callee7","queue","_iterator","_step","_response2","_response2$data","_callee7$","_context7","getPendingTasks","deletePendingTask","_x5","dropPendingTasks","conditions","tasks","_iterator2","_step2"],"sources":["DBSyncManager.ts"],"sourcesContent":["import type { AxiosError } from 'axios';\nimport dayjs from 'dayjs';\nimport type { APIErrorResponse, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from '../components/Chat/hooks/handleEventToSyncDB';\nimport { getAllChannelIds, getLastSyncedAt, upsertUserSyncStatus } from '../store/apis';\n\nimport { addPendingTask } from '../store/apis/addPendingTask';\n\nimport { deletePendingTask } from '../store/apis/deletePendingTask';\nimport { getPendingTasks } from '../store/apis/getPendingTasks';\nimport { QuickSqliteClient } from '../store/QuickSqliteClient';\nimport type { PendingTask, PreparedQueries } from '../store/types';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n\n/**\n * DBSyncManager has the responsibility to sync the channel states\n * within local database whenever possible.\n *\n * Components can get the current sync status using DBSyncManager.getCurrentStatus().\n * Or components can attach a listener for status change as following:\n *\n * ```tsx\n * useEffect(() => {\n * const unsubscribe = DBSyncManager.onSyncStatusChange((syncStatus) => {\n * if (syncStatus) {\n * doSomething();\n * }\n * })\n *\n * return () => unsubscribe();\n * })\n * ```\n */\nconst restBeforeNextTask = () => new Promise((resolve) => setTimeout(resolve, 500));\n\nexport class DBSyncManager {\n static syncStatus = false;\n static listeners: Array<(status: boolean) => void> = [];\n static client: StreamChat | null = null;\n\n /**\n * Returns weather channel states in local DB are synced with backend or not.\n * @returns boolean\n */\n static getSyncStatus = () => this.syncStatus;\n\n /**\n * Initializes the DBSyncManager. This function should be called only once\n * throughout the lifetime of SDK.\n *\n * @param client\n */\n static init = async (client: StreamChat) => {\n this.client = client;\n // If the websocket connection is already active, then straightaway\n // call the sync api and also execute pending api calls.\n // Otherwise wait for `connection.changed` event.\n if (client.user?.id && client.wsConnection?.isHealthy) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n }\n\n this.client.on('connection.changed', async (event) => {\n if (event.online) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n } else {\n this.syncStatus = false;\n this.listeners.forEach((l) => l(false));\n }\n });\n };\n\n /**\n * Subscribes a listener for sync status change.\n *\n * @param listener {function}\n * @returns {function} to unsubscribe the listener.\n */\n static onSyncStatusChange = (listener: (status: boolean) => void) => {\n this.listeners.push(listener);\n\n return {\n unsubscribe: () => {\n this.listeners = this.listeners.filter((el) => el !== listener);\n },\n };\n };\n\n static sync = async () => {\n if (!this.client?.user) return;\n const cids = getAllChannelIds();\n // If there are no channels, then there is no need to sync.\n if (cids.length === 0) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: this.client.user.id,\n });\n\n if (lastSyncedAt) {\n const lastSyncedAtDate = new Date(lastSyncedAt);\n const lastSyncedAtDayJs = dayjs(lastSyncedAtDate);\n const nowDayJs = dayjs();\n const diff = nowDayJs.diff(lastSyncedAtDayJs, 'days');\n if (diff > 30) {\n // stream backend will send an error if we try to sync after 30 days.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n } else {\n try {\n const result = await this.client.sync(cids, lastSyncedAtDate.toISOString());\n const queries = result.events.reduce<PreparedQueries[]>((queries, event) => {\n queries = queries.concat(handleEventToSyncDB(event, false));\n return queries;\n }, []);\n\n if (queries.length) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n } catch (e) {\n // Error will be raised by the sync API if there are too many events.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n }\n }\n }\n upsertUserSyncStatus({\n currentUserId: this.client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n static syncAndExecutePendingTasks = async () => {\n if (!this.client) return;\n\n await this.executePendingTasks(this.client);\n await this.sync();\n };\n\n static queueTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const removeFromApi = addPendingTask(task);\n\n let response;\n try {\n response = await this.executeTask<StreamChatGenerics>({ client, task });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n removeFromApi();\n\n return response;\n };\n\n static executeTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const channel = client.channel(task.channelType, task.channelId);\n\n if (task.type === 'send-reaction') {\n return await channel.sendReaction(...task.payload);\n }\n\n if (task.type === 'delete-reaction') {\n return await channel.deleteReaction(...task.payload);\n }\n\n if (task.type === 'delete-message') {\n return await client.deleteMessage(...task.payload);\n }\n\n throw new Error('Invalid task type');\n };\n\n static executePendingTasks = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n const queue = getPendingTasks();\n for (const task of queue) {\n if (!task.id) continue;\n\n try {\n await this.executeTask<StreamChatGenerics>({\n client,\n task,\n });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n deletePendingTask({\n id: task.id,\n });\n await restBeforeNextTask();\n }\n };\n\n static dropPendingTasks = (conditions: { messageId: string }) => {\n const tasks = getPendingTasks(conditions);\n\n for (const task of tasks) {\n if (!task.id) continue;\n\n deletePendingTask({\n id: task.id,\n });\n }\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_dayjs","_interopRequireDefault","require","_handleEventToSyncDB","_apis","_addPendingTask","_deletePendingTask","_getPendingTasks","_QuickSqliteClient","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","restBeforeNextTask","Promise","resolve","setTimeout","DBSyncManager","_createClass2","_classCallCheck2","exports","syncStatus","listeners","client","getSyncStatus","init","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","_client$user","_client$wsConnection","wrap","_callee2$","_context2","prev","user","id","wsConnection","isHealthy","syncAndExecutePendingTasks","forEach","l","on","_ref2","_callee","event","_callee$","_context","online","stop","_x2","apply","arguments","_x","onSyncStatusChange","listener","push","unsubscribe","filter","el","sync","_ref3","_callee3","_DBSyncManager$client","cids","lastSyncedAt","lastSyncedAtDate","lastSyncedAtDayJs","nowDayJs","diff","result","queries","_callee3$","_context3","abrupt","getAllChannelIds","getLastSyncedAt","currentUserId","Date","dayjs","QuickSqliteClient","resetDB","toISOString","sent","events","reduce","concat","handleEventToSyncDB","executeSqlBatch","t0","upsertUserSyncStatus","_x3","_callee4","_callee4$","_context4","executePendingTasks","queueTask","_ref6","_callee5","_ref5","task","removeFromApi","response","_response","_response$data","_callee5$","_context5","addPendingTask","executeTask","data","code","_x4","_ref8","_callee6","_ref7","channel","_callee6$","_context6","channelType","channelId","type","sendReaction","_toConsumableArray2","payload","deleteReaction","deleteMessage","Error","_x5","_ref9","_callee7","queue","_iterator","_step","_response2","_response2$data","_callee7$","_context7","getPendingTasks","deletePendingTask","_x6","dropPendingTasks","conditions","tasks","_iterator2","_step2"],"sources":["DBSyncManager.ts"],"sourcesContent":["import type { AxiosError } from 'axios';\nimport dayjs from 'dayjs';\nimport type { APIErrorResponse, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from '../components/Chat/hooks/handleEventToSyncDB';\nimport { getAllChannelIds, getLastSyncedAt, upsertUserSyncStatus } from '../store/apis';\n\nimport { addPendingTask } from '../store/apis/addPendingTask';\n\nimport { deletePendingTask } from '../store/apis/deletePendingTask';\nimport { getPendingTasks } from '../store/apis/getPendingTasks';\nimport { QuickSqliteClient } from '../store/QuickSqliteClient';\nimport type { PendingTask, PreparedQueries } from '../store/types';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n\n/**\n * DBSyncManager has the responsibility to sync the channel states\n * within local database whenever possible.\n *\n * Components can get the current sync status using DBSyncManager.getCurrentStatus().\n * Or components can attach a listener for status change as following:\n *\n * ```tsx\n * useEffect(() => {\n * const unsubscribe = DBSyncManager.onSyncStatusChange((syncStatus) => {\n * if (syncStatus) {\n * doSomething();\n * }\n * })\n *\n * return () => unsubscribe();\n * })\n * ```\n */\nconst restBeforeNextTask = () => new Promise((resolve) => setTimeout(resolve, 500));\n\nexport class DBSyncManager {\n static syncStatus = false;\n static listeners: Array<(status: boolean) => void> = [];\n static client: StreamChat | null = null;\n\n /**\n * Returns weather channel states in local DB are synced with backend or not.\n * @returns boolean\n */\n static getSyncStatus = () => this.syncStatus;\n\n /**\n * Initializes the DBSyncManager. This function should be called only once\n * throughout the lifetime of SDK.\n *\n * @param client\n */\n static init = async (client: StreamChat) => {\n this.client = client;\n // If the websocket connection is already active, then straightaway\n // call the sync api and also execute pending api calls.\n // Otherwise wait for `connection.changed` event.\n if (client.user?.id && client.wsConnection?.isHealthy) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n }\n\n this.client.on('connection.changed', async (event) => {\n if (event.online) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n } else {\n this.syncStatus = false;\n this.listeners.forEach((l) => l(false));\n }\n });\n };\n\n /**\n * Subscribes a listener for sync status change.\n *\n * @param listener {function}\n * @returns {function} to unsubscribe the listener.\n */\n static onSyncStatusChange = (listener: (status: boolean) => void) => {\n this.listeners.push(listener);\n\n return {\n unsubscribe: () => {\n this.listeners = this.listeners.filter((el) => el !== listener);\n },\n };\n };\n\n static sync = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n if (!this.client?.user) return;\n const cids = getAllChannelIds();\n // If there are no channels, then there is no need to sync.\n if (cids.length === 0) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: this.client.user.id,\n });\n\n if (lastSyncedAt) {\n const lastSyncedAtDate = new Date(lastSyncedAt);\n const lastSyncedAtDayJs = dayjs(lastSyncedAtDate);\n const nowDayJs = dayjs();\n const diff = nowDayJs.diff(lastSyncedAtDayJs, 'days');\n if (diff > 30) {\n // stream backend will send an error if we try to sync after 30 days.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n } else {\n try {\n const result = await this.client.sync(cids, lastSyncedAtDate.toISOString());\n const queries = result.events.reduce<PreparedQueries[]>((queries, event) => {\n queries = queries.concat(handleEventToSyncDB(event, client, false));\n return queries;\n }, []);\n\n if (queries.length) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n } catch (e) {\n // Error will be raised by the sync API if there are too many events.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n }\n }\n }\n upsertUserSyncStatus({\n currentUserId: this.client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n static syncAndExecutePendingTasks = async () => {\n if (!this.client) return;\n\n await this.executePendingTasks(this.client);\n await this.sync(this.client);\n };\n\n static queueTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const removeFromApi = addPendingTask(task);\n\n let response;\n try {\n response = await this.executeTask<StreamChatGenerics>({ client, task });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n removeFromApi();\n\n return response;\n };\n\n static executeTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const channel = client.channel(task.channelType, task.channelId);\n\n if (task.type === 'send-reaction') {\n return await channel.sendReaction(...task.payload);\n }\n\n if (task.type === 'delete-reaction') {\n return await channel.deleteReaction(...task.payload);\n }\n\n if (task.type === 'delete-message') {\n return await client.deleteMessage(...task.payload);\n }\n\n throw new Error('Invalid task type');\n };\n\n static executePendingTasks = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n const queue = getPendingTasks();\n for (const task of queue) {\n if (!task.id) continue;\n\n try {\n await this.executeTask<StreamChatGenerics>({\n client,\n task,\n });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n deletePendingTask({\n id: task.id,\n });\n await restBeforeNextTask();\n }\n };\n\n static dropPendingTasks = (conditions: { messageId: string }) => {\n const tasks = getPendingTasks(conditions);\n\n for (const task of tasks) {\n if (!task.id) continue;\n\n deletePendingTask({\n id: task.id,\n });\n }\n };\n}\n"],"mappings":"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"}
|
package/lib/module/version.json
CHANGED