stream-chat-react-native-core 5.27.0-beta.11 → 5.27.0-beta.12

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.
Files changed (81) hide show
  1. package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js +100 -37
  2. package/lib/commonjs/components/Chat/hooks/handleEventToSyncDB.js.map +1 -1
  3. package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js +3 -1
  4. package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -1
  5. package/lib/commonjs/i18n/en.json +1 -1
  6. package/lib/commonjs/i18n/es.json +43 -43
  7. package/lib/commonjs/i18n/fr.json +43 -43
  8. package/lib/commonjs/i18n/he.json +43 -43
  9. package/lib/commonjs/i18n/hi.json +43 -43
  10. package/lib/commonjs/i18n/it.json +43 -43
  11. package/lib/commonjs/i18n/ja.json +42 -42
  12. package/lib/commonjs/i18n/ko.json +42 -42
  13. package/lib/commonjs/i18n/nl.json +42 -42
  14. package/lib/commonjs/i18n/pt-BR.json +42 -42
  15. package/lib/commonjs/i18n/ru.json +42 -42
  16. package/lib/commonjs/i18n/tr.json +42 -42
  17. package/lib/commonjs/store/apis/upsertChannelDataFromChannel.js +21 -0
  18. package/lib/commonjs/store/apis/upsertChannelDataFromChannel.js.map +1 -0
  19. package/lib/commonjs/store/mappers/mapChannelToStorable.js +63 -0
  20. package/lib/commonjs/store/mappers/mapChannelToStorable.js.map +1 -0
  21. package/lib/commonjs/utils/DBSyncManager.js +73 -68
  22. package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
  23. package/lib/commonjs/version.json +1 -1
  24. package/lib/module/components/Chat/hooks/handleEventToSyncDB.js +100 -37
  25. package/lib/module/components/Chat/hooks/handleEventToSyncDB.js.map +1 -1
  26. package/lib/module/components/Chat/hooks/useSyncDatabase.js +3 -1
  27. package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -1
  28. package/lib/module/i18n/en.json +1 -1
  29. package/lib/module/i18n/es.json +43 -43
  30. package/lib/module/i18n/fr.json +43 -43
  31. package/lib/module/i18n/he.json +43 -43
  32. package/lib/module/i18n/hi.json +43 -43
  33. package/lib/module/i18n/it.json +43 -43
  34. package/lib/module/i18n/ja.json +42 -42
  35. package/lib/module/i18n/ko.json +42 -42
  36. package/lib/module/i18n/nl.json +42 -42
  37. package/lib/module/i18n/pt-BR.json +42 -42
  38. package/lib/module/i18n/ru.json +42 -42
  39. package/lib/module/i18n/tr.json +42 -42
  40. package/lib/module/store/apis/upsertChannelDataFromChannel.js +21 -0
  41. package/lib/module/store/apis/upsertChannelDataFromChannel.js.map +1 -0
  42. package/lib/module/store/mappers/mapChannelToStorable.js +63 -0
  43. package/lib/module/store/mappers/mapChannelToStorable.js.map +1 -0
  44. package/lib/module/utils/DBSyncManager.js +73 -68
  45. package/lib/module/utils/DBSyncManager.js.map +1 -1
  46. package/lib/module/version.json +1 -1
  47. package/lib/typescript/components/Chat/hooks/handleEventToSyncDB.d.ts +4 -2
  48. package/lib/typescript/i18n/en.json +1 -1
  49. package/lib/typescript/i18n/es.json +43 -43
  50. package/lib/typescript/i18n/fr.json +43 -43
  51. package/lib/typescript/i18n/he.json +43 -43
  52. package/lib/typescript/i18n/hi.json +43 -43
  53. package/lib/typescript/i18n/it.json +43 -43
  54. package/lib/typescript/i18n/ja.json +42 -42
  55. package/lib/typescript/i18n/ko.json +42 -42
  56. package/lib/typescript/i18n/nl.json +42 -42
  57. package/lib/typescript/i18n/pt-BR.json +42 -42
  58. package/lib/typescript/i18n/ru.json +42 -42
  59. package/lib/typescript/i18n/tr.json +42 -42
  60. package/lib/typescript/store/apis/upsertChannelDataFromChannel.d.ts +6 -0
  61. package/lib/typescript/store/mappers/mapChannelToStorable.d.ts +4 -0
  62. package/lib/typescript/utils/DBSyncManager.d.ts +1 -1
  63. package/package.json +1 -1
  64. package/src/components/Chat/hooks/handleEventToSyncDB.ts +132 -46
  65. package/src/components/Chat/hooks/useSyncDatabase.ts +1 -1
  66. package/src/i18n/en.json +1 -1
  67. package/src/i18n/es.json +43 -43
  68. package/src/i18n/fr.json +43 -43
  69. package/src/i18n/he.json +43 -43
  70. package/src/i18n/hi.json +43 -43
  71. package/src/i18n/it.json +43 -43
  72. package/src/i18n/ja.json +42 -42
  73. package/src/i18n/ko.json +42 -42
  74. package/src/i18n/nl.json +42 -42
  75. package/src/i18n/pt-BR.json +42 -42
  76. package/src/i18n/ru.json +42 -42
  77. package/src/i18n/tr.json +42 -42
  78. package/src/store/apis/upsertChannelDataFromChannel.ts +25 -0
  79. package/src/store/mappers/mapChannelToStorable.ts +68 -0
  80. package/src/utils/DBSyncManager.ts +7 -3
  81. package/src/version.json +1 -1
@@ -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":";;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AAEA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AAA+D,SAAAO,gCAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,oBAAAE,EAAA,UAAAA,EAAA,GAAAA,EAAA,CAAAG,IAAA,CAAAL,CAAA,GAAAM,IAAA,CAAAC,IAAA,CAAAL,EAAA,OAAAM,KAAA,CAAAC,OAAA,CAAAT,CAAA,MAAAE,EAAA,GAAAQ,2BAAA,CAAAV,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAW,MAAA,qBAAAT,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAU,CAAA,+BAAAA,CAAA,IAAAZ,CAAA,CAAAW,MAAA,WAAAE,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAd,CAAA,CAAAY,CAAA,sBAAAG,SAAA;AAAA,SAAAL,4BAAAV,CAAA,EAAAgB,MAAA,SAAAhB,CAAA,qBAAAA,CAAA,sBAAAiB,iBAAA,CAAAjB,CAAA,EAAAgB,MAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAhB,IAAA,CAAAL,CAAA,EAAAsB,KAAA,aAAAJ,CAAA,iBAAAlB,CAAA,CAAAuB,WAAA,EAAAL,CAAA,GAAAlB,CAAA,CAAAuB,WAAA,CAAAC,IAAA,MAAAN,CAAA,cAAAA,CAAA,mBAAAV,KAAA,CAAAiB,IAAA,CAAAzB,CAAA,OAAAkB,CAAA,+DAAAQ,IAAA,CAAAR,CAAA,UAAAD,iBAAA,CAAAjB,CAAA,EAAAgB,MAAA;AAAA,SAAAC,kBAAAU,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAAhB,MAAA,EAAAiB,GAAA,GAAAD,GAAA,CAAAhB,MAAA,WAAAC,CAAA,MAAAiB,IAAA,OAAArB,KAAA,CAAAoB,GAAA,GAAAhB,CAAA,GAAAgB,GAAA,EAAAhB,CAAA,IAAAiB,IAAA,CAAAjB,CAAA,IAAAe,GAAA,CAAAf,CAAA,UAAAiB,IAAA;AAuB/D,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA;EAAA,OAAS,IAAIC,OAAO,CAAC,UAACC,OAAO;IAAA,OAAKC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC;EAAA,EAAC;AAAA;AAAC,IAEvEE,aAAa,OAAAC,aAAA,sBAAAD,cAAA;EAAA,IAAAE,gBAAA,mBAAAF,aAAA;AAAA;AAAAG,OAAA,CAAAH,aAAA,GAAAA,aAAA;AAAbA,aAAa,CACjBI,UAAU,GAAG,KAAK;AADdJ,aAAa,CAEjBK,SAAS,GAAqC,EAAE;AAF5CL,aAAa,CAGjBM,MAAM,GAAsB,IAAI;AAH5BN,aAAa,CASjBO,aAAa,GAAG;EAAA,OATZP,aAAa,CASUI,UAAU;AAAA;AATjCJ,aAAa,CAiBjBQ,IAAI;EAAA,IAAAC,IAAA,OAAAC,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,SAAOP,MAAkB;IAAA,IAAAQ,YAAA,EAAAC,oBAAA;IAAA,OAAAJ,YAAA,YAAAK,IAAA,UAAAC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAA9C,IAAA;QAAA;UAjB5B4B,aAAa,CAkBjBM,MAAM,GAAGA,MAAM;UAAC,MAIjB,CAAAQ,YAAA,GAAAR,MAAM,CAACc,IAAI,aAAXN,YAAA,CAAaO,EAAE,KAAAN,oBAAA,GAAIT,MAAM,CAACgB,YAAY,aAAnBP,oBAAA,CAAqBQ,SAAS;YAAAL,SAAA,CAAA9C,IAAA;YAAA;UAAA;UAAA8C,SAAA,CAAA9C,IAAA;UAAA,OAtB5C4B,aAAa,CAuBTwB,0BAA0B,CAAC,CAAC;QAAA;UAvBhCxB,aAAa,CAwBfI,UAAU,GAAG,IAAI;UAxBfJ,aAAa,CAyBfK,SAAS,CAACoB,OAAO,CAAC,UAACC,CAAC;YAAA,OAAKA,CAAC,CAAC,IAAI,CAAC;UAAA,EAAC;QAAC;UAzBhC1B,aAAa,CA4BjBM,MAAM,CAACqB,EAAE,CAAC,oBAAoB;YAAA,IAAAC,KAAA,OAAAlB,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAE,SAAAiB,QAAOC,KAAK;cAAA,OAAAnB,YAAA,YAAAK,IAAA,UAAAe,SAAAC,QAAA;gBAAA,kBAAAA,QAAA,CAAAb,IAAA,GAAAa,QAAA,CAAA5D,IAAA;kBAAA;oBAAA,KAC3C0D,KAAK,CAACG,MAAM;sBAAAD,QAAA,CAAA5D,IAAA;sBAAA;oBAAA;oBAAA4D,QAAA,CAAA5D,IAAA;oBAAA,OA7BT4B,aAAa,CA8BPwB,0BAA0B,CAAC,CAAC;kBAAA;oBA9BlCxB,aAAa,CA+BbI,UAAU,GAAG,IAAI;oBA/BjBJ,aAAa,CAgCbK,SAAS,CAACoB,OAAO,CAAC,UAACC,CAAC;sBAAA,OAAKA,CAAC,CAAC,IAAI,CAAC;oBAAA,EAAC;oBAACM,QAAA,CAAA5D,IAAA;oBAAA;kBAAA;oBAhClC4B,aAAa,CAkCbI,UAAU,GAAG,KAAK;oBAlClBJ,aAAa,CAmCbK,SAAS,CAACoB,OAAO,CAAC,UAACC,CAAC;sBAAA,OAAKA,CAAC,CAAC,KAAK,CAAC;oBAAA,EAAC;kBAAC;kBAAA;oBAAA,OAAAM,QAAA,CAAAE,IAAA;gBAAA;cAAA,GAAAL,OAAA;YAAA,CAE3C;YAAA,iBAAAM,GAAA;cAAA,OAAAP,KAAA,CAAAQ,KAAA,OAAAC,SAAA;YAAA;UAAA,IAAC;QAAC;QAAA;UAAA,OAAAnB,SAAA,CAAAgB,IAAA;MAAA;IAAA,GAAArB,QAAA;EAAA,CACJ;EAAA,iBAAAyB,EAAA;IAAA,OAAA7B,IAAA,CAAA2B,KAAA,OAAAC,SAAA;EAAA;AAAA;AAtCUrC,aAAa,CA8CjBuC,kBAAkB,GAAG,UAACC,QAAmC,EAAK;EA9C1DxC,aAAa,CA+CjBK,SAAS,CAACoC,IAAI,CAACD,QAAQ,CAAC;EAE7B,OAAO;IACLE,WAAW,EAAE,SAAAA,YAAA,EAAM;MAlDZ1C,aAAa,CAmDbK,SAAS,GAnDTL,aAAa,CAmDIK,SAAS,CAACsC,MAAM,CAAC,UAACC,EAAE;QAAA,OAAKA,EAAE,KAAKJ,QAAQ;MAAA,EAAC;IACjE;EACF,CAAC;AACH,CAAC;AAtDUxC,aAAa,CAwDjB6C,IAAI;EAAA,IAAAC,KAAA,OAAApC,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAmC,SAGZzC,MAAsC;IAAA,IAAA0C,qBAAA;IAAA,IAAAC,IAAA,EAAAC,YAAA,EAAAC,gBAAA,EAAAC,iBAAA,EAAAC,QAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,OAAA;IAAA,OAAA7C,YAAA,YAAAK,IAAA,UAAAyC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAvC,IAAA,GAAAuC,SAAA,CAAAtF,IAAA;QAAA;UAAA,KAAA4E,qBAAA,GA3D7BhD,aAAa,CA6DZM,MAAM,aAAX0C,qBAAA,CAAa5B,IAAI;YAAAsC,SAAA,CAAAtF,IAAA;YAAA;UAAA;UAAA,OAAAsF,SAAA,CAAAC,MAAA;QAAA;UAChBV,IAAI,GAAG,IAAAW,sBAAgB,EAAC,CAAC;UAAA,MAE3BX,IAAI,CAACxE,MAAM,KAAK,CAAC;YAAAiF,SAAA,CAAAtF,IAAA;YAAA;UAAA;UAAA,OAAAsF,SAAA,CAAAC,MAAA;QAAA;UAEfT,YAAY,GAAG,IAAAW,qBAAe,EAAC;YACnCC,aAAa,EAnEN9D,aAAa,CAmEAM,MAAM,CAACc,IAAI,CAACC;UAClC,CAAC,CAAC;UAAA,KAEE6B,YAAY;YAAAQ,SAAA,CAAAtF,IAAA;YAAA;UAAA;UACR+E,gBAAgB,GAAG,IAAIY,IAAI,CAACb,YAAY,CAAC;UACzCE,iBAAiB,GAAG,IAAAY,iBAAK,EAACb,gBAAgB,CAAC;UAC3CE,QAAQ,GAAG,IAAAW,iBAAK,EAAC,CAAC;UAClBV,IAAI,GAAGD,QAAQ,CAACC,IAAI,CAACF,iBAAiB,EAAE,MAAM,CAAC;UAAA,MACjDE,IAAI,GAAG,EAAE;YAAAI,SAAA,CAAAtF,IAAA;YAAA;UAAA;UAGX6F,oCAAiB,CAACC,OAAO,CAAC,CAAC;UAACR,SAAA,CAAAtF,IAAA;UAAA;QAAA;UAAAsF,SAAA,CAAAvC,IAAA;UAAAuC,SAAA,CAAAtF,IAAA;UAAA,OA9EvB4B,aAAa,CAiFUM,MAAM,CAACuC,IAAI,CAACI,IAAI,EAAEE,gBAAgB,CAACgB,WAAW,CAAC,CAAC,CAAC;QAAA;UAArEZ,MAAM,GAAAG,SAAA,CAAAU,IAAA;UACNZ,OAAO,GAAGD,MAAM,CAACc,MAAM,CAACC,MAAM,CAAoB,UAACd,OAAO,EAAE1B,KAAK,EAAK;YAC1E0B,OAAO,GAAGA,OAAO,CAACe,MAAM,CAAC,IAAAC,wCAAmB,EAAC1C,KAAK,EAAExB,MAAM,EAAE,KAAK,CAAC,CAAC;YACnE,OAAOkD,OAAO;UAChB,CAAC,EAAE,EAAE,CAAC;UAEN,IAAIA,OAAO,CAAC/E,MAAM,EAAE;YAClBwF,oCAAiB,CAACQ,eAAe,CAACjB,OAAO,CAAC;UAC5C;UAACE,SAAA,CAAAtF,IAAA;UAAA;QAAA;UAAAsF,SAAA,CAAAvC,IAAA;UAAAuC,SAAA,CAAAgB,EAAA,GAAAhB,SAAA;UAIDO,oCAAiB,CAACC,OAAO,CAAC,CAAC;QAAC;UAIlC,IAAAS,0BAAoB,EAAC;YACnBb,aAAa,EAlGN9D,aAAa,CAkGAM,MAAM,CAACc,IAAI,CAACC,EAAE;YAClC6B,YAAY,EAAE,IAAIa,IAAI,CAAC,CAAC,CAAC5E,QAAQ,CAAC;UACpC,CAAC,CAAC;QAAC;QAAA;UAAA,OAAAuE,SAAA,CAAAxB,IAAA;MAAA;IAAA,GAAAa,QAAA;EAAA,CACJ;EAAA,iBAAA6B,GAAA;IAAA,OAAA9B,KAAA,CAAAV,KAAA,OAAAC,SAAA;EAAA;AAAA;AArGUrC,aAAa,CAuGjBwB,0BAA0B,OAAAd,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAiE,SAAA;EAAA,OAAAlE,YAAA,YAAAK,IAAA,UAAA8D,UAAAC,SAAA;IAAA,kBAAAA,SAAA,CAAA5D,IAAA,GAAA4D,SAAA,CAAA3G,IAAA;MAAA;QAAA,IAvGzB4B,aAAa,CAwGZM,MAAM;UAAAyE,SAAA,CAAA3G,IAAA;UAAA;QAAA;QAAA,OAAA2G,SAAA,CAAApB,MAAA;MAAA;QAAAoB,SAAA,CAAA3G,IAAA;QAAA,OAxGP4B,aAAa,CA0GXgF,mBAAmB,CA1GrBhF,aAAa,CA0GcM,MAAM,CAAC;MAAA;QAAAyE,SAAA,CAAA3G,IAAA;QAAA,OA1GlC4B,aAAa,CA2GX6C,IAAI,CA3GN7C,aAAa,CA2GDM,MAAM,CAAC;MAAA;MAAA;QAAA,OAAAyE,SAAA,CAAA7C,IAAA;IAAA;EAAA,GAAA2C,QAAA;AAAA,CAC7B;AA5GU7E,aAAa,CA8GjBiF,SAAS;EAAA,IAAAC,KAAA,OAAAxE,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAuE,SAAAC,KAAA;IAAA,IAAA9E,MAAA,EAAA+E,IAAA,EAAAC,aAAA,EAAAC,QAAA,EAAAC,SAAA,EAAAC,cAAA;IAAA,OAAA9E,YAAA,YAAAK,IAAA,UAAA0E,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAxE,IAAA,GAAAwE,SAAA,CAAAvH,IAAA;QAAA;UAGjBkC,MAAM,GAAA8E,KAAA,CAAN9E,MAAM,EACN+E,IAAI,GAAAD,KAAA,CAAJC,IAAI;UAKEC,aAAa,GAAG,IAAAM,8BAAc,EAACP,IAAI,CAAC;UAAAM,SAAA,CAAAxE,IAAA;UAAAwE,SAAA,CAAAvH,IAAA;UAAA,OAvHjC4B,aAAa,CA2HE6F,WAAW,CAAqB;YAAEvF,MAAM,EAANA,MAAM;YAAE+E,IAAI,EAAJA;UAAK,CAAC,CAAC;QAAA;UAAvEE,QAAQ,GAAAI,SAAA,CAAAvB,IAAA;UAAAuB,SAAA,CAAAvH,IAAA;UAAA;QAAA;UAAAuH,SAAA,CAAAxE,IAAA;UAAAwE,SAAA,CAAAjB,EAAA,GAAAiB,SAAA;UAAA,MAEJ,CAAAA,SAAA,CAAAjB,EAAA,qBAAAc,SAAA,GAAAG,SAAA,CAAAjB,EAAA,CAAqCa,QAAQ,sBAAAE,cAAA,GAA7CD,SAAA,CAA+CM,IAAI,qBAAnDL,cAAA,CAAqDM,IAAI,MAAK,CAAC;YAAAJ,SAAA,CAAAvH,IAAA;YAAA;UAAA;UAAAuH,SAAA,CAAAvH,IAAA;UAAA;QAAA;UAAA,MAAAuH,SAAA,CAAAjB,EAAA;QAAA;UAQrEY,aAAa,CAAC,CAAC;UAAC,OAAAK,SAAA,CAAAhC,MAAA,WAET4B,QAAQ;QAAA;QAAA;UAAA,OAAAI,SAAA,CAAAzD,IAAA;MAAA;IAAA,GAAAiD,QAAA;EAAA,CAChB;EAAA,iBAAAa,GAAA;IAAA,OAAAd,KAAA,CAAA9C,KAAA,OAAAC,SAAA;EAAA;AAAA;AAxIUrC,aAAa,CA0IjB6F,WAAW;EAAA,IAAAI,KAAA,OAAAvF,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAsF,SAAAC,KAAA;IAAA,IAAA7F,MAAA,EAAA+E,IAAA,EAAAe,OAAA;IAAA,OAAAzF,YAAA,YAAAK,IAAA,UAAAqF,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAnF,IAAA,GAAAmF,SAAA,CAAAlI,IAAA;QAAA;UAGnBkC,MAAM,GAAA6F,KAAA,CAAN7F,MAAM,EACN+E,IAAI,GAAAc,KAAA,CAAJd,IAAI;UAKEe,OAAO,GAAG9F,MAAM,CAAC8F,OAAO,CAACf,IAAI,CAACkB,WAAW,EAAElB,IAAI,CAACmB,SAAS,CAAC;UAAA,MAE5DnB,IAAI,CAACoB,IAAI,KAAK,eAAe;YAAAH,SAAA,CAAAlI,IAAA;YAAA;UAAA;UAAAkI,SAAA,CAAAlI,IAAA;UAAA,OAClBgI,OAAO,CAACM,YAAY,CAAAtE,KAAA,CAApBgE,OAAO,MAAAO,mBAAA,aAAiBtB,IAAI,CAACuB,OAAO,EAAC;QAAA;UAAA,OAAAN,SAAA,CAAA3C,MAAA,WAAA2C,SAAA,CAAAlC,IAAA;QAAA;UAAA,MAGhDiB,IAAI,CAACoB,IAAI,KAAK,iBAAiB;YAAAH,SAAA,CAAAlI,IAAA;YAAA;UAAA;UAAAkI,SAAA,CAAAlI,IAAA;UAAA,OACpBgI,OAAO,CAACS,cAAc,CAAAzE,KAAA,CAAtBgE,OAAO,MAAAO,mBAAA,aAAmBtB,IAAI,CAACuB,OAAO,EAAC;QAAA;UAAA,OAAAN,SAAA,CAAA3C,MAAA,WAAA2C,SAAA,CAAAlC,IAAA;QAAA;UAAA,MAGlDiB,IAAI,CAACoB,IAAI,KAAK,gBAAgB;YAAAH,SAAA,CAAAlI,IAAA;YAAA;UAAA;UAAAkI,SAAA,CAAAlI,IAAA;UAAA,OACnBkC,MAAM,CAACwG,aAAa,CAAA1E,KAAA,CAApB9B,MAAM,MAAAqG,mBAAA,aAAkBtB,IAAI,CAACuB,OAAO,EAAC;QAAA;UAAA,OAAAN,SAAA,CAAA3C,MAAA,WAAA2C,SAAA,CAAAlC,IAAA;QAAA;UAAA,MAG9C,IAAI2C,KAAK,CAAC,mBAAmB,CAAC;QAAA;QAAA;UAAA,OAAAT,SAAA,CAAApE,IAAA;MAAA;IAAA,GAAAgE,QAAA;EAAA,CACrC;EAAA,iBAAAc,GAAA;IAAA,OAAAf,KAAA,CAAA7D,KAAA,OAAAC,SAAA;EAAA;AAAA;AAlKUrC,aAAa,CAoKjBgF,mBAAmB;EAAA,IAAAiC,KAAA,OAAAvG,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAsG,SAG3B5G,MAAsC;IAAA,IAAA6G,KAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAhC,IAAA,EAAAiC,UAAA,EAAAC,eAAA;IAAA,OAAA5G,YAAA,YAAAK,IAAA,UAAAwG,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAtG,IAAA,GAAAsG,SAAA,CAAArJ,IAAA;QAAA;UAEhC+I,KAAK,GAAG,IAAAO,gCAAe,EAAC,CAAC;UAAAN,SAAA,GAAAvJ,+BAAA,CACZsJ,KAAK;QAAA;UAAA,KAAAE,KAAA,GAAAD,SAAA,IAAAzI,IAAA;YAAA8I,SAAA,CAAArJ,IAAA;YAAA;UAAA;UAAbiH,IAAI,GAAAgC,KAAA,CAAAzI,KAAA;UAAA,IACRyG,IAAI,CAAChE,EAAE;YAAAoG,SAAA,CAAArJ,IAAA;YAAA;UAAA;UAAA,OAAAqJ,SAAA,CAAA9D,MAAA;QAAA;UAAA8D,SAAA,CAAAtG,IAAA;UAAAsG,SAAA,CAAArJ,IAAA;UAAA,OA3KL4B,aAAa,CA8KP6F,WAAW,CAAqB;YACzCvF,MAAM,EAANA,MAAM;YACN+E,IAAI,EAAJA;UACF,CAAC,CAAC;QAAA;UAAAoC,SAAA,CAAArJ,IAAA;UAAA;QAAA;UAAAqJ,SAAA,CAAAtG,IAAA;UAAAsG,SAAA,CAAA/C,EAAA,GAAA+C,SAAA;UAAA,MAEE,CAAAA,SAAA,CAAA/C,EAAA,qBAAA4C,UAAA,GAAAG,SAAA,CAAA/C,EAAA,CAAqCa,QAAQ,sBAAAgC,eAAA,GAA7CD,UAAA,CAA+CxB,IAAI,qBAAnDyB,eAAA,CAAqDxB,IAAI,MAAK,CAAC;YAAA0B,SAAA,CAAArJ,IAAA;YAAA;UAAA;UAAAqJ,SAAA,CAAArJ,IAAA;UAAA;QAAA;UAAA,MAAAqJ,SAAA,CAAA/C,EAAA;QAAA;UAQrE,IAAAiD,oCAAiB,EAAC;YAChBtG,EAAE,EAAEgE,IAAI,CAAChE;UACX,CAAC,CAAC;UAACoG,SAAA,CAAArJ,IAAA;UAAA,OACGwB,kBAAkB,CAAC,CAAC;QAAA;UAAA6H,SAAA,CAAArJ,IAAA;UAAA;QAAA;QAAA;UAAA,OAAAqJ,SAAA,CAAAvF,IAAA;MAAA;IAAA,GAAAgF,QAAA;EAAA,CAE7B;EAAA,iBAAAU,GAAA;IAAA,OAAAX,KAAA,CAAA7E,KAAA,OAAAC,SAAA;EAAA;AAAA;AAhMUrC,aAAa,CAkMjB6H,gBAAgB,GAAG,UAACC,UAAiC,EAAK;EAC/D,IAAMC,KAAK,GAAG,IAAAL,gCAAe,EAACI,UAAU,CAAC;EAEzC,SAAAE,UAAA,GAAAnK,+BAAA,CAAmBkK,KAAK,GAAAE,MAAA,IAAAA,MAAA,GAAAD,UAAA,IAAArJ,IAAA,GAAE;IAAA,IAAf0G,IAAI,GAAA4C,MAAA,CAAArJ,KAAA;IACb,IAAI,CAACyG,IAAI,CAAChE,EAAE,EAAE;IAEd,IAAAsG,oCAAiB,EAAC;MAChBtG,EAAE,EAAEgE,IAAI,CAAChE;IACX,CAAC,CAAC;EACJ;AACF,CAAC"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.27.0-beta.11"
2
+ "version": "5.27.0-beta.12"
3
3
  }
@@ -1,2 +1,4 @@
1
- import type { Event } from 'stream-chat';
2
- export declare const handleEventToSyncDB: (event: Event, flush?: boolean) => import("../../../store/types").PreparedQueries[];
1
+ import { DefaultStreamChatGenerics } from 'src/types/types';
2
+ import type { Event, StreamChat } from 'stream-chat';
3
+ import { PreparedQueries } from '../../../store/types';
4
+ export declare const handleEventToSyncDB: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(event: Event, client: StreamChat<StreamChatGenerics>, flush?: boolean) => PreparedQueries[];
@@ -26,7 +26,7 @@
26
26
  "File type not supported": "File type not supported",
27
27
  "Flag": "Flag",
28
28
  "Flag Message": "Flag Message",
29
- "Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged",
29
+ "Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged.",
30
30
  "How about sending your first message to a friend?": "How about sending your first message to a friend?",
31
31
  "Instant Commands": "Instant Commands",
32
32
  "Let's start chatting!": "Let's start chatting!",
@@ -1,79 +1,79 @@
1
1
  {
2
2
  "1 Reply": "1 respuesta",
3
- "1 Thread Reply": "1 respuesta de hilo",
3
+ "1 Thread Reply": "",
4
4
  "Allow access to your Gallery": "",
5
5
  "Allow camera access in device settings": "",
6
6
  "Also send to channel": "",
7
- "Are you sure you want to permanently delete this message?": "",
8
- "Are you sure?": "¿Estás seguro?",
9
- "Block User": "",
10
- "Cancel": "",
11
- "Cannot Flag Message": "",
12
- "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "Considera cómo tu comentario podría hacer sentir a los demás y asegúrate de seguir nuestras Normas de la Comunidad",
13
- "Copy Message": "",
14
- "Delete": "",
15
- "Delete Message": "",
7
+ "Are you sure you want to permanently delete this message?": "¿Estás seguro de que deseas eliminar permanentemente este mensaje?",
8
+ "Are you sure?": "",
9
+ "Block User": "Bloquear usuario",
10
+ "Cancel": "Cancelar",
11
+ "Cannot Flag Message": "No se puede reportar el mensaje",
12
+ "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "",
13
+ "Copy Message": "Copiar mensaje",
14
+ "Delete": "Eliminar",
15
+ "Delete Message": "Eliminar mensaje",
16
16
  "Device camera is used to take photos or videos.": "",
17
- "Do you want to send a copy of this message to a moderator for further investigation?": "",
18
- "Edit Message": "",
19
- "Editing Message": "Editando mensaje",
20
- "Emoji matching": "Coincidencia de emoji",
17
+ "Do you want to send a copy of this message to a moderator for further investigation?": "¿Deseas enviar una copia de este mensaje a un moderador para una investigación adicional?",
18
+ "Edit Message": "Editar mensaje",
19
+ "Editing Message": "",
20
+ "Emoji matching": "",
21
21
  "Empty message...": "Mensaje vacío...",
22
- "Error loading": "Error al cargar",
22
+ "Error loading": "",
23
23
  "Error loading channel list...": "Error al cargar la lista de canales...",
24
24
  "Error loading messages for this channel...": "Error al cargar los mensajes de este canal...",
25
25
  "Error while loading, please reload/refresh": "Error al cargar, por favor recarga/actualiza",
26
26
  "File type not supported": "",
27
- "Flag": "",
28
- "Flag Message": "",
29
- "Flag action failed either due to a network issue or the message is already flagged": "",
27
+ "Flag": "Reportar",
28
+ "Flag Message": "Reportar mensaje",
29
+ "Flag action failed either due to a network issue or the message is already flagged": "El reporte falló debido a un problema de red o el mensaje ya fue reportado.",
30
30
  "How about sending your first message to a friend?": "¿Qué tal enviar tu primer mensaje a un amigo?",
31
- "Instant Commands": "Comandos instantáneos",
31
+ "Instant Commands": "",
32
32
  "Let's start chatting!": "¡Empecemos a charlar!",
33
33
  "Links are disabled": "Los enlaces están desactivados",
34
- "Loading channels...": "",
35
- "Loading messages...": "",
36
- "Loading...": "",
34
+ "Loading channels...": "Cargando canales...",
35
+ "Loading messages...": "Cargando mensajes...",
36
+ "Loading...": "Cargando...",
37
37
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "El archivo supera el tamaño máximo permitido. Por favor, selecciona un archivo menor a {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.",
38
- "Message Reactions": "",
38
+ "Message Reactions": "Reacciones al mensaje",
39
39
  "Message deleted": "Mensaje eliminado",
40
- "Message flagged": "",
41
- "Mute User": "",
40
+ "Message flagged": "Mensaje reportado",
41
+ "Mute User": "Silenciar usuario",
42
42
  "Not supported": "",
43
43
  "Nothing yet...": "Aún no hay nada...",
44
- "Ok": "",
45
- "Only visible to you": "Solo visible para ti",
44
+ "Ok": "Aceptar",
45
+ "Only visible to you": "",
46
46
  "Open Settings": "",
47
47
  "Photo": "Foto",
48
48
  "Photos and Videos": "",
49
- "Pin to Conversation": "",
50
- "Pinned by": "Fijado por",
49
+ "Pin to Conversation": "Fijar a la conversación",
50
+ "Pinned by": "",
51
51
  "Please enable access to your photos and videos so you can share them.": "",
52
- "Please select a channel first": "",
52
+ "Please select a channel first": "Por favor, selecciona primero un canal",
53
53
  "Reconnecting...": "Reconectando...",
54
- "Reply": "",
54
+ "Reply": "Responder",
55
55
  "Reply to Message": "",
56
- "Resend": "",
57
- "Search GIFs": "",
56
+ "Resend": "Reenviar",
57
+ "Search GIFs": "Buscar GIFs",
58
58
  "Select More Photos": "",
59
- "Send Anyway": "Enviar de todos modos",
60
- "Send a message": "",
59
+ "Send Anyway": "",
60
+ "Send a message": "Enviar un mensaje",
61
61
  "Sending links is not allowed in this conversation": "No está permitido enviar enlaces en esta conversación",
62
- "Slow mode ON": "",
63
- "The message has been reported to a moderator.": "",
64
- "Thread Reply": "",
65
- "Unblock User": "",
62
+ "Slow mode ON": "Modo lento ACTIVADO",
63
+ "The message has been reported to a moderator.": "El mensaje ha sido reportado a un moderador.",
64
+ "Thread Reply": "Respuesta de hilo",
65
+ "Unblock User": "Desbloquear usuario",
66
66
  "Unknown User": "",
67
- "Unmute User": "",
68
- "Unpin from Conversation": "",
69
- "Unread Messages": "",
67
+ "Unmute User": "Activar sonido del usuario",
68
+ "Unpin from Conversation": "Desmarcar de la conversación",
69
+ "Unread Messages": "Mensajes no leídos",
70
70
  "Video": "Video",
71
71
  "You": "Tú",
72
72
  "You can't send messages in this channel": "",
73
73
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} y {{ nonSelfUserLength }} más están escribiendo",
74
74
  "{{ index }} of {{ photoLength }}": "",
75
75
  "{{ replyCount }} Replies": "{{ replyCount }} Respuestas",
76
- "{{ replyCount }} Thread Replies": "{{ replyCount }} respuestas de hilo",
76
+ "{{ replyCount }} Thread Replies": "",
77
77
  "{{ user }} is typing": "{{ user }} está escribiendo",
78
78
  "🏙 Attachment...": "🏙 Adjunto..."
79
79
  }
@@ -1,79 +1,79 @@
1
1
  {
2
2
  "1 Reply": "1 Réponse",
3
- "1 Thread Reply": "Réponse à 1 fil",
3
+ "1 Thread Reply": "",
4
4
  "Allow access to your Gallery": "",
5
5
  "Allow camera access in device settings": "",
6
6
  "Also send to channel": "",
7
- "Are you sure you want to permanently delete this message?": "",
8
- "Are you sure?": "Es-tu sûr ?",
9
- "Block User": "",
10
- "Cancel": "",
11
- "Cannot Flag Message": "",
12
- "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "Considérez comment votre commentaire pourrait faire sentir les autres et assurez-vous de suivre nos directives communautaires",
13
- "Copy Message": "",
14
- "Delete": "",
15
- "Delete Message": "",
7
+ "Are you sure you want to permanently delete this message?": "Êtes-vous sûr de vouloir supprimer définitivement ce message?",
8
+ "Are you sure?": "",
9
+ "Block User": "Bloquer un utilisateur",
10
+ "Cancel": "Annuler",
11
+ "Cannot Flag Message": "Impossible de signaler le message",
12
+ "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "",
13
+ "Copy Message": "Copier le message",
14
+ "Delete": "Supprimer",
15
+ "Delete Message": "Supprimer un message",
16
16
  "Device camera is used to take photos or videos.": "",
17
- "Do you want to send a copy of this message to a moderator for further investigation?": "",
18
- "Edit Message": "",
19
- "Editing Message": "Édite un message",
20
- "Emoji matching": "Correspondance Emoji",
17
+ "Do you want to send a copy of this message to a moderator for further investigation?": "Voulez-vous envoyer une copie de ce message à un modérateur pour une enquête plus approfondie?",
18
+ "Edit Message": "Éditer un message",
19
+ "Editing Message": "",
20
+ "Emoji matching": "",
21
21
  "Empty message...": "Message vide...",
22
- "Error loading": "Erreur lors du chargement",
22
+ "Error loading": "",
23
23
  "Error loading channel list...": "Erreur lors du chargement de la liste de canaux...",
24
24
  "Error loading messages for this channel...": "Erreur lors du chargement des messages de ce canal...",
25
25
  "Error while loading, please reload/refresh": "Erreur lors du chargement, veuillez recharger/rafraîchir",
26
26
  "File type not supported": "",
27
- "Flag": "",
28
- "Flag Message": "",
29
- "Flag action failed either due to a network issue or the message is already flagged": "",
27
+ "Flag": "Signaler",
28
+ "Flag Message": "Signaler le message",
29
+ "Flag action failed either due to a network issue or the message is already flagged": "L'action de signalisation a échoué en raison d'un problème de réseau ou le message est déjà signalé.",
30
30
  "How about sending your first message to a friend?": "Et si vous envoyiez votre premier message à un ami ?",
31
- "Instant Commands": "Commandes Instantanées",
31
+ "Instant Commands": "",
32
32
  "Let's start chatting!": "Commençons à discuter !",
33
33
  "Links are disabled": "Links are disabled",
34
- "Loading channels...": "",
35
- "Loading messages...": "",
36
- "Loading...": "",
34
+ "Loading channels...": "Chargement des canaux...",
35
+ "Loading messages...": "Chargement des messages...",
36
+ "Loading...": "Chargement...",
37
37
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Taille maximale de téléchargement de fichier atteinte. Veuillez télécharger un fichier inférieur à {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} Mo.",
38
- "Message Reactions": "",
38
+ "Message Reactions": "Réactions aux messages",
39
39
  "Message deleted": "Message supprimé",
40
- "Message flagged": "",
41
- "Mute User": "",
40
+ "Message flagged": "Message signalé",
41
+ "Mute User": "Utilisateur muet",
42
42
  "Not supported": "",
43
43
  "Nothing yet...": "Aucun message...",
44
- "Ok": "",
45
- "Only visible to you": "Seulement visible par vous",
44
+ "Ok": "Ok",
45
+ "Only visible to you": "",
46
46
  "Open Settings": "",
47
47
  "Photo": "Photo",
48
48
  "Photos and Videos": "",
49
- "Pin to Conversation": "",
50
- "Pinned by": "Épinglé par",
49
+ "Pin to Conversation": "Épingler à la conversation",
50
+ "Pinned by": "",
51
51
  "Please enable access to your photos and videos so you can share them.": "",
52
- "Please select a channel first": "",
52
+ "Please select a channel first": "Veuillez d'abord selectionnez un canal",
53
53
  "Reconnecting...": "Se Reconnecter...",
54
- "Reply": "",
54
+ "Reply": "Répondre",
55
55
  "Reply to Message": "",
56
- "Resend": "",
57
- "Search GIFs": "",
56
+ "Resend": "Renvoyer",
57
+ "Search GIFs": "Rechercher des GIF",
58
58
  "Select More Photos": "",
59
- "Send Anyway": "Envoyer quand même",
60
- "Send a message": "",
59
+ "Send Anyway": "",
60
+ "Send a message": "Envoyer un message",
61
61
  "Sending links is not allowed in this conversation": "Sending links is not allowed in this conversation",
62
- "Slow mode ON": "",
63
- "The message has been reported to a moderator.": "",
64
- "Thread Reply": "",
65
- "Unblock User": "",
62
+ "Slow mode ON": "Mode lent activé",
63
+ "The message has been reported to a moderator.": "Le message a été signalé à un modérateur.",
64
+ "Thread Reply": "Réponse à la discussion",
65
+ "Unblock User": "Débloquer Utilisateur",
66
66
  "Unknown User": "",
67
- "Unmute User": "",
68
- "Unpin from Conversation": "",
69
- "Unread Messages": "",
67
+ "Unmute User": "Activer le son de Utilisateur",
68
+ "Unpin from Conversation": "Décrocher de la conversation",
69
+ "Unread Messages": "Messages non lus",
70
70
  "Video": "Vidéo",
71
71
  "You": "Toi",
72
72
  "You can't send messages in this channel": "",
73
73
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} et {{ nonSelfUserLength }} autres sont en train d'écrire",
74
74
  "{{ index }} of {{ photoLength }}": "",
75
75
  "{{ replyCount }} Replies": "{{ replyCount }} Réponses",
76
- "{{ replyCount }} Thread Replies": "{{replyCount}} Réponses à la discussion",
76
+ "{{ replyCount }} Thread Replies": "",
77
77
  "{{ user }} is typing": "{{ user }} est en train d'écrire",
78
78
  "🏙 Attachment...": "🏙 Pièce jointe..."
79
79
  }
@@ -1,79 +1,79 @@
1
1
  {
2
2
  "1 Reply": "תגובה אחת",
3
- "1 Thread Reply": "תגובה אחת לשרשור",
3
+ "1 Thread Reply": "",
4
4
  "Allow access to your Gallery": "",
5
5
  "Allow camera access in device settings": "",
6
6
  "Also send to channel": "",
7
- "Are you sure you want to permanently delete this message?": "",
8
- "Are you sure?": "האם אתה בטוח?",
9
- "Block User": "",
10
- "Cancel": "",
11
- "Cannot Flag Message": "",
12
- "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "שקול איך התגובה שלך עשויה להשפיע על אחרים ווודא שאתה עוקב אחר ההנחיות של הקהילה שלנו",
13
- "Copy Message": "",
14
- "Delete": "",
15
- "Delete Message": "",
7
+ "Are you sure you want to permanently delete this message?": "האם את/ה בטוח/ה שאת/ה רוצה למחוק את ההודעה הזו לצמיתות?",
8
+ "Are you sure?": "",
9
+ "Block User": "חסום משתמש",
10
+ "Cancel": "ביטול",
11
+ "Cannot Flag Message": "סימון הודעה לא אפשרי",
12
+ "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "",
13
+ "Copy Message": "העתק/י הודעה",
14
+ "Delete": "מחק",
15
+ "Delete Message": "מחק/י הודעה",
16
16
  "Device camera is used to take photos or videos.": "",
17
- "Do you want to send a copy of this message to a moderator for further investigation?": "",
18
- "Edit Message": "",
19
- "Editing Message": "הודעה בעריכה",
20
- "Emoji matching": "התאמת אמוג'י",
17
+ "Do you want to send a copy of this message to a moderator for further investigation?": "האם את/ה רוצה לשלוח עותק של הודעה זו למנחה להמשך חקירה?",
18
+ "Edit Message": "ערוך הודעה",
19
+ "Editing Message": "",
20
+ "Emoji matching": "",
21
21
  "Empty message...": "הודעה ריקה...",
22
- "Error loading": "שגיאה ארעה בעת הטעינה",
22
+ "Error loading": "",
23
23
  "Error loading channel list...": "שגיאה ארעה בטעינת השיחות...",
24
24
  "Error loading messages for this channel...": "שגיאה ארעה בטעינת הודעות עבור שיחה זאת...",
25
25
  "Error while loading, please reload/refresh": "שגיאה ארעה בזמן הטעינה, אנא טען מחדש/רענן",
26
26
  "File type not supported": "",
27
- "Flag": "",
28
- "Flag Message": "",
29
- "Flag action failed either due to a network issue or the message is already flagged": "",
27
+ "Flag": "סמן",
28
+ "Flag Message": "סמן הודעה",
29
+ "Flag action failed either due to a network issue or the message is already flagged": "פעולת הסימון נכשלה בגלל בעיית רשת או שההודעה כבר סומנה.",
30
30
  "How about sending your first message to a friend?": "מה דעתך לשלוח את ההודעה הראשונה שלך לחבר?",
31
- "Instant Commands": "פעולות מיידיות",
31
+ "Instant Commands": "",
32
32
  "Let's start chatting!": "בואו נתחיל לשוחח!",
33
33
  "Links are disabled": "הקישורים מבוטלים",
34
- "Loading channels...": "",
35
- "Loading messages...": "",
36
- "Loading...": "",
34
+ "Loading channels...": "השיחות בטעינה...",
35
+ "Loading messages...": "ההודעות בטעינה..",
36
+ "Loading...": "טוען...",
37
37
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "הגעת למגבלת העלאת גודל הקובץ המקסימלית. אנא העלה קובץ מתחת ל-{{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB",
38
- "Message Reactions": "",
38
+ "Message Reactions": "תגובות להודעה",
39
39
  "Message deleted": "ההודעה נמחקה",
40
- "Message flagged": "",
41
- "Mute User": "",
40
+ "Message flagged": "ההודעה סומנה",
41
+ "Mute User": "השתק/י משתמש",
42
42
  "Not supported": "",
43
43
  "Nothing yet...": "אינפורמציה תתקבל בהמשך...",
44
- "Ok": "",
45
- "Only visible to you": "גלוי רק לך",
44
+ "Ok": "אוקיי",
45
+ "Only visible to you": "",
46
46
  "Open Settings": "",
47
47
  "Photo": "תמונה",
48
48
  "Photos and Videos": "",
49
- "Pin to Conversation": "",
50
- "Pinned by": " - הוצמד לשיחה",
49
+ "Pin to Conversation": "הצמד/י לשיחה",
50
+ "Pinned by": "",
51
51
  "Please enable access to your photos and videos so you can share them.": "",
52
- "Please select a channel first": "",
52
+ "Please select a channel first": "אנא בחר/י שיחה תחילה",
53
53
  "Reconnecting...": "מתחבר מחדש...",
54
- "Reply": "",
54
+ "Reply": "השב/י",
55
55
  "Reply to Message": "",
56
- "Resend": "",
57
- "Search GIFs": "",
56
+ "Resend": "שלח/י שוב",
57
+ "Search GIFs": "חפש/י GIFs",
58
58
  "Select More Photos": "",
59
- "Send Anyway": "שלח בכל זאת",
60
- "Send a message": "",
59
+ "Send Anyway": "",
60
+ "Send a message": "שלח/י הודעה",
61
61
  "Sending links is not allowed in this conversation": "שליחת קישורים אינה מותרת בשיחה זו",
62
- "Slow mode ON": "",
63
- "The message has been reported to a moderator.": "",
64
- "Thread Reply": "",
65
- "Unblock User": "",
62
+ "Slow mode ON": "מצב איטי מופעל",
63
+ "The message has been reported to a moderator.": "ההודעה דווחה למנהל",
64
+ "Thread Reply": "הגב/י בשרשור",
65
+ "Unblock User": "בטל/י חסימת משתמש",
66
66
  "Unknown User": "",
67
- "Unmute User": "",
68
- "Unpin from Conversation": "",
69
- "Unread Messages": "",
67
+ "Unmute User": "בטל/י השתקת משתמש",
68
+ "Unpin from Conversation": "בטל/י הצמדה לשיחה",
69
+ "Unread Messages": "הודעות שטרם נקרו",
70
70
  "Video": "וִידֵאוֹ",
71
71
  "You": "את/ה",
72
72
  "You can't send messages in this channel": "",
73
73
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ו-{{ nonSelfUserLength }} משתמש/ים אחר/ים מקלידים",
74
74
  "{{ index }} of {{ photoLength }}": "",
75
75
  "{{ replyCount }} Replies": "{{ replyCount }} תגובות",
76
- "{{ replyCount }} Thread Replies": "{{ replyCount }} תגובות שרשור",
76
+ "{{ replyCount }} Thread Replies": "",
77
77
  "{{ user }} is typing": "{{ user }} מקליד/ה",
78
78
  "🏙 Attachment...": "🏙 קובץ מצורף..."
79
79
  }