stream-chat-react-native-core 5.5.1 → 5.6.0-beta.1

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 (321) hide show
  1. package/lib/commonjs/components/Attachment/Gallery.js +21 -16
  2. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/GalleryImage.js +19 -3
  4. package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
  5. package/lib/commonjs/components/Channel/Channel.js +535 -149
  6. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  7. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +6 -0
  8. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  9. package/lib/commonjs/components/ChannelList/ChannelList.js +4 -15
  10. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  11. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +112 -38
  12. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  13. package/lib/commonjs/components/Chat/Chat.js +16 -20
  14. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  15. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +2 -4
  16. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  17. package/lib/commonjs/components/Message/Message.js +21 -10
  18. package/lib/commonjs/components/Message/Message.js.map +1 -1
  19. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +14 -12
  20. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  21. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +9 -30
  22. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  23. package/lib/commonjs/components/Message/hooks/useMessageActions.js +21 -19
  24. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
  25. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +28 -21
  26. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  27. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +23 -16
  28. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  29. package/lib/commonjs/components/MessageInput/MessageInput.js +39 -27
  30. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  31. package/lib/commonjs/components/MessageInput/SendButton.js +1 -1
  32. package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
  33. package/lib/commonjs/components/index.js +1 -14
  34. package/lib/commonjs/components/index.js.map +1 -1
  35. package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
  36. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  37. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +134 -86
  38. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  39. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
  40. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  41. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  42. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  43. package/lib/commonjs/hooks/useTranslatedMessage.js +1 -1
  44. package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
  45. package/lib/commonjs/mock-builders/DB/mock.js +2 -2
  46. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  47. package/lib/commonjs/mock-builders/api/deleteMessage.js +20 -0
  48. package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -0
  49. package/lib/commonjs/mock-builders/api/deleteReaction.js +21 -0
  50. package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -0
  51. package/lib/commonjs/mock-builders/api/sendReaction.js +21 -0
  52. package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -0
  53. package/lib/commonjs/mock-builders/event/connectionChanged.js +2 -0
  54. package/lib/commonjs/mock-builders/event/connectionChanged.js.map +1 -1
  55. package/lib/commonjs/store/QuickSqliteClient.js +40 -51
  56. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
  57. package/lib/commonjs/store/apis/addPendingTask.js +37 -0
  58. package/lib/commonjs/store/apis/addPendingTask.js.map +1 -0
  59. package/lib/commonjs/store/apis/deleteMessage.js +26 -0
  60. package/lib/commonjs/store/apis/deleteMessage.js.map +1 -0
  61. package/lib/commonjs/store/apis/deletePendingTask.js +22 -0
  62. package/lib/commonjs/store/apis/deletePendingTask.js.map +1 -0
  63. package/lib/commonjs/store/apis/deleteReaction.js +30 -0
  64. package/lib/commonjs/store/apis/deleteReaction.js.map +1 -0
  65. package/lib/commonjs/store/apis/getChannelMessages.js +3 -3
  66. package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -1
  67. package/lib/commonjs/store/apis/getChannels.js +1 -1
  68. package/lib/commonjs/store/apis/getChannels.js.map +1 -1
  69. package/lib/commonjs/store/apis/getPendingTasks.js +26 -0
  70. package/lib/commonjs/store/apis/getPendingTasks.js.map +1 -0
  71. package/lib/commonjs/store/apis/index.js +13 -0
  72. package/lib/commonjs/store/apis/index.js.map +1 -1
  73. package/lib/commonjs/store/apis/insertReaction.js +28 -0
  74. package/lib/commonjs/store/apis/insertReaction.js.map +1 -0
  75. package/lib/commonjs/store/apis/updateMessage.js.map +1 -1
  76. package/lib/commonjs/store/apis/updateReaction.js.map +1 -1
  77. package/lib/commonjs/store/mappers/mapDateTimeToStorable.js.map +1 -1
  78. package/lib/commonjs/store/mappers/mapMessageToStorable.js +3 -1
  79. package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -1
  80. package/lib/commonjs/store/mappers/mapStorableToTask.js +23 -0
  81. package/lib/commonjs/store/mappers/mapStorableToTask.js.map +1 -0
  82. package/lib/commonjs/store/mappers/mapTaskToStorable.js +18 -0
  83. package/lib/commonjs/store/mappers/mapTaskToStorable.js.map +1 -0
  84. package/lib/commonjs/store/schema.js +11 -0
  85. package/lib/commonjs/store/schema.js.map +1 -1
  86. package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js +24 -0
  87. package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -0
  88. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js +1 -1
  89. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  90. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js +8 -1
  91. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js.map +1 -1
  92. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js +2 -2
  93. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js.map +1 -1
  94. package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js +1 -1
  95. package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js.map +1 -1
  96. package/lib/commonjs/utils/DBSyncManager.js +436 -0
  97. package/lib/commonjs/utils/DBSyncManager.js.map +1 -0
  98. package/lib/commonjs/utils/addReactionToLocalState.js +92 -0
  99. package/lib/commonjs/utils/addReactionToLocalState.js.map +1 -0
  100. package/lib/commonjs/utils/removeReactionFromLocalState.js +39 -0
  101. package/lib/commonjs/utils/removeReactionFromLocalState.js.map +1 -0
  102. package/lib/{module/components/Message → commonjs}/utils/removeReservedFields.js +1 -1
  103. package/lib/commonjs/utils/removeReservedFields.js.map +1 -0
  104. package/lib/commonjs/utils/utils.js +9 -3
  105. package/lib/commonjs/utils/utils.js.map +1 -1
  106. package/lib/commonjs/version.json +1 -1
  107. package/lib/module/components/Attachment/Gallery.js +21 -16
  108. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  109. package/lib/module/components/Attachment/GalleryImage.js +19 -3
  110. package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
  111. package/lib/module/components/Channel/Channel.js +535 -149
  112. package/lib/module/components/Channel/Channel.js.map +1 -1
  113. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +6 -0
  114. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  115. package/lib/module/components/ChannelList/ChannelList.js +4 -15
  116. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  117. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +112 -38
  118. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  119. package/lib/module/components/Chat/Chat.js +16 -20
  120. package/lib/module/components/Chat/Chat.js.map +1 -1
  121. package/lib/module/components/Chat/hooks/useCreateChatContext.js +2 -4
  122. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  123. package/lib/module/components/Message/Message.js +21 -10
  124. package/lib/module/components/Message/Message.js.map +1 -1
  125. package/lib/module/components/Message/MessageSimple/MessageFooter.js +14 -12
  126. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  127. package/lib/module/components/Message/hooks/useMessageActionHandlers.js +9 -30
  128. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  129. package/lib/module/components/Message/hooks/useMessageActions.js +21 -19
  130. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
  131. package/lib/module/components/MessageInput/FileUploadPreview.js +28 -21
  132. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  133. package/lib/module/components/MessageInput/ImageUploadPreview.js +23 -16
  134. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  135. package/lib/module/components/MessageInput/MessageInput.js +39 -27
  136. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  137. package/lib/module/components/MessageInput/SendButton.js +1 -1
  138. package/lib/module/components/MessageInput/SendButton.js.map +1 -1
  139. package/lib/module/components/index.js +1 -14
  140. package/lib/module/components/index.js.map +1 -1
  141. package/lib/module/contexts/chatContext/ChatContext.js +2 -2
  142. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  143. package/lib/module/contexts/messageInputContext/MessageInputContext.js +134 -86
  144. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  145. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
  146. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  147. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  148. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  149. package/lib/module/hooks/useTranslatedMessage.js +1 -1
  150. package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
  151. package/lib/module/mock-builders/DB/mock.js +2 -2
  152. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  153. package/lib/module/mock-builders/api/deleteMessage.js +20 -0
  154. package/lib/module/mock-builders/api/deleteMessage.js.map +1 -0
  155. package/lib/module/mock-builders/api/deleteReaction.js +21 -0
  156. package/lib/module/mock-builders/api/deleteReaction.js.map +1 -0
  157. package/lib/module/mock-builders/api/sendReaction.js +21 -0
  158. package/lib/module/mock-builders/api/sendReaction.js.map +1 -0
  159. package/lib/module/mock-builders/event/connectionChanged.js +2 -0
  160. package/lib/module/mock-builders/event/connectionChanged.js.map +1 -1
  161. package/lib/module/store/QuickSqliteClient.js +40 -51
  162. package/lib/module/store/QuickSqliteClient.js.map +1 -1
  163. package/lib/module/store/apis/addPendingTask.js +37 -0
  164. package/lib/module/store/apis/addPendingTask.js.map +1 -0
  165. package/lib/module/store/apis/deleteMessage.js +26 -0
  166. package/lib/module/store/apis/deleteMessage.js.map +1 -0
  167. package/lib/module/store/apis/deletePendingTask.js +22 -0
  168. package/lib/module/store/apis/deletePendingTask.js.map +1 -0
  169. package/lib/module/store/apis/deleteReaction.js +30 -0
  170. package/lib/module/store/apis/deleteReaction.js.map +1 -0
  171. package/lib/module/store/apis/getChannelMessages.js +3 -3
  172. package/lib/module/store/apis/getChannelMessages.js.map +1 -1
  173. package/lib/module/store/apis/getChannels.js +1 -1
  174. package/lib/module/store/apis/getChannels.js.map +1 -1
  175. package/lib/module/store/apis/getPendingTasks.js +26 -0
  176. package/lib/module/store/apis/getPendingTasks.js.map +1 -0
  177. package/lib/module/store/apis/index.js +13 -0
  178. package/lib/module/store/apis/index.js.map +1 -1
  179. package/lib/module/store/apis/insertReaction.js +28 -0
  180. package/lib/module/store/apis/insertReaction.js.map +1 -0
  181. package/lib/module/store/apis/updateMessage.js.map +1 -1
  182. package/lib/module/store/apis/updateReaction.js.map +1 -1
  183. package/lib/module/store/mappers/mapDateTimeToStorable.js.map +1 -1
  184. package/lib/module/store/mappers/mapMessageToStorable.js +3 -1
  185. package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -1
  186. package/lib/module/store/mappers/mapStorableToTask.js +23 -0
  187. package/lib/module/store/mappers/mapStorableToTask.js.map +1 -0
  188. package/lib/module/store/mappers/mapTaskToStorable.js +18 -0
  189. package/lib/module/store/mappers/mapTaskToStorable.js.map +1 -0
  190. package/lib/module/store/schema.js +11 -0
  191. package/lib/module/store/schema.js.map +1 -1
  192. package/lib/module/store/sqlite-utils/appendOrderByClause.js +24 -0
  193. package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -0
  194. package/lib/module/store/sqlite-utils/createCreateTableQuery.js +1 -1
  195. package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  196. package/lib/module/store/sqlite-utils/createSelectQuery.js +8 -1
  197. package/lib/module/store/sqlite-utils/createSelectQuery.js.map +1 -1
  198. package/lib/module/store/sqlite-utils/createUpdateQuery.js +2 -2
  199. package/lib/module/store/sqlite-utils/createUpdateQuery.js.map +1 -1
  200. package/lib/module/store/sqlite-utils/createUpsertQuery.js +1 -1
  201. package/lib/module/store/sqlite-utils/createUpsertQuery.js.map +1 -1
  202. package/lib/module/utils/DBSyncManager.js +436 -0
  203. package/lib/module/utils/DBSyncManager.js.map +1 -0
  204. package/lib/module/utils/addReactionToLocalState.js +92 -0
  205. package/lib/module/utils/addReactionToLocalState.js.map +1 -0
  206. package/lib/module/utils/removeReactionFromLocalState.js +39 -0
  207. package/lib/module/utils/removeReactionFromLocalState.js.map +1 -0
  208. package/lib/{commonjs/components/Message → module}/utils/removeReservedFields.js +1 -1
  209. package/lib/module/utils/removeReservedFields.js.map +1 -0
  210. package/lib/module/utils/utils.js +9 -3
  211. package/lib/module/utils/utils.js.map +1 -1
  212. package/lib/module/version.json +1 -1
  213. package/lib/typescript/components/Channel/Channel.d.ts +1 -1
  214. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  215. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +2 -1
  216. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
  217. package/lib/typescript/components/Message/Message.d.ts +1 -1
  218. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
  219. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
  220. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +2 -1
  221. package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +2 -1
  222. package/lib/typescript/components/MessageInput/MessageInput.d.ts +2 -1
  223. package/lib/typescript/components/index.d.ts +1 -2
  224. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -2
  225. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
  226. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -0
  227. package/lib/typescript/store/apis/addPendingTask.d.ts +2 -0
  228. package/lib/typescript/store/apis/deleteMessage.d.ts +4 -0
  229. package/lib/typescript/store/apis/deletePendingTask.d.ts +3 -0
  230. package/lib/typescript/store/apis/deleteReaction.d.ts +6 -0
  231. package/lib/typescript/store/apis/getChannelMessages.d.ts +1 -1
  232. package/lib/typescript/store/apis/getPendingTasks.d.ts +3 -0
  233. package/lib/typescript/store/apis/index.d.ts +1 -0
  234. package/lib/typescript/store/apis/insertReaction.d.ts +6 -0
  235. package/lib/typescript/store/apis/updateMessage.d.ts +2 -2
  236. package/lib/typescript/store/apis/updateReaction.d.ts +2 -2
  237. package/lib/typescript/store/mappers/mapDateTimeToStorable.d.ts +1 -1
  238. package/lib/typescript/store/mappers/mapMessageToStorable.d.ts +2 -2
  239. package/lib/typescript/store/mappers/mapStorableToTask.d.ts +2 -0
  240. package/lib/typescript/store/mappers/mapTaskToStorable.d.ts +26 -0
  241. package/lib/typescript/store/schema.d.ts +12 -1
  242. package/lib/typescript/store/sqlite-utils/appendOrderByClause.d.ts +3 -0
  243. package/lib/typescript/store/sqlite-utils/createSelectQuery.d.ts +1 -1
  244. package/lib/typescript/store/types.d.ts +21 -0
  245. package/lib/typescript/types/types.d.ts +3 -1
  246. package/lib/typescript/utils/DBSyncManager.d.ts +47 -0
  247. package/lib/typescript/utils/addReactionToLocalState.d.ts +9 -0
  248. package/lib/typescript/utils/removeReactionFromLocalState.d.ts +8 -0
  249. package/lib/typescript/{components/Message/utils → utils}/removeReservedFields.d.ts +2 -2
  250. package/lib/typescript/utils/utils.d.ts +3 -3
  251. package/package.json +4 -3
  252. package/src/__tests__/offline-feature.test.js +19 -2
  253. package/src/__tests__/optimistic-update.test.js +368 -0
  254. package/src/components/Attachment/Gallery.tsx +5 -1
  255. package/src/components/Attachment/GalleryImage.tsx +16 -2
  256. package/src/components/Channel/Channel.tsx +266 -57
  257. package/src/components/Channel/hooks/useCreateMessagesContext.ts +6 -0
  258. package/src/components/ChannelList/ChannelList.tsx +2 -10
  259. package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +0 -1
  260. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +76 -26
  261. package/src/components/Chat/Chat.tsx +5 -9
  262. package/src/components/Chat/__tests__/Chat.test.js +1 -1
  263. package/src/components/Chat/hooks/useCreateChatContext.ts +0 -2
  264. package/src/components/Message/Message.tsx +18 -2
  265. package/src/components/Message/MessageSimple/MessageFooter.tsx +2 -1
  266. package/src/components/Message/hooks/useMessageActionHandlers.ts +10 -21
  267. package/src/components/Message/hooks/useMessageActions.tsx +10 -5
  268. package/src/components/MessageInput/FileUploadPreview.tsx +7 -2
  269. package/src/components/MessageInput/ImageUploadPreview.tsx +7 -3
  270. package/src/components/MessageInput/MessageInput.tsx +17 -3
  271. package/src/components/MessageInput/SendButton.tsx +1 -1
  272. package/src/components/index.ts +1 -2
  273. package/src/contexts/chatContext/ChatContext.tsx +1 -2
  274. package/src/contexts/messageInputContext/MessageInputContext.tsx +95 -57
  275. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +29 -3
  276. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +1 -0
  277. package/src/contexts/messagesContext/MessagesContext.tsx +4 -1
  278. package/src/hooks/useTranslatedMessage.ts +1 -1
  279. package/src/mock-builders/DB/mock.ts +2 -2
  280. package/src/mock-builders/api/deleteMessage.js +18 -0
  281. package/src/mock-builders/api/deleteReaction.js +19 -0
  282. package/src/mock-builders/api/sendReaction.tsx +19 -0
  283. package/src/mock-builders/event/connectionChanged.js +2 -1
  284. package/src/store/QuickSqliteClient.ts +39 -37
  285. package/src/store/apis/addPendingTask.ts +24 -0
  286. package/src/store/apis/deleteMessage.ts +13 -0
  287. package/src/store/apis/deletePendingTask.ts +12 -0
  288. package/src/store/apis/deleteReaction.ts +26 -0
  289. package/src/store/apis/getChannelMessages.ts +1 -1
  290. package/src/store/apis/getChannels.ts +2 -2
  291. package/src/store/apis/getPendingTasks.ts +13 -0
  292. package/src/store/apis/index.ts +1 -0
  293. package/src/store/apis/insertReaction.ts +29 -0
  294. package/src/store/apis/updateMessage.ts +2 -2
  295. package/src/store/apis/updateReaction.ts +2 -2
  296. package/src/store/mappers/mapDateTimeToStorable.ts +1 -1
  297. package/src/store/mappers/mapMessageToStorable.ts +8 -2
  298. package/src/store/mappers/mapStorableToTask.ts +13 -0
  299. package/src/store/mappers/mapTaskToStorable.ts +7 -0
  300. package/src/store/schema.ts +25 -1
  301. package/src/store/sqlite-utils/appendOrderByClause.ts +24 -0
  302. package/src/store/sqlite-utils/createCreateTableQuery.ts +2 -2
  303. package/src/store/sqlite-utils/createSelectQuery.ts +4 -1
  304. package/src/store/sqlite-utils/createUpdateQuery.ts +3 -2
  305. package/src/store/sqlite-utils/createUpsertQuery.ts +1 -1
  306. package/src/store/types.ts +28 -0
  307. package/src/types/types.ts +4 -1
  308. package/src/utils/DBSyncManager.ts +222 -0
  309. package/src/utils/addReactionToLocalState.ts +87 -0
  310. package/src/utils/removeReactionFromLocalState.ts +39 -0
  311. package/src/{components/Message/utils → utils}/removeReservedFields.ts +7 -3
  312. package/src/utils/utils.ts +14 -5
  313. package/src/version.json +1 -1
  314. package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js +0 -171
  315. package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js.map +0 -1
  316. package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +0 -1
  317. package/lib/module/components/Chat/hooks/useConnectionRecovered.js +0 -171
  318. package/lib/module/components/Chat/hooks/useConnectionRecovered.js.map +0 -1
  319. package/lib/module/components/Message/utils/removeReservedFields.js.map +0 -1
  320. package/lib/typescript/components/Chat/hooks/useConnectionRecovered.d.ts +0 -10
  321. package/src/components/Chat/hooks/useConnectionRecovered.ts +0 -92
@@ -28,6 +28,19 @@ Object.keys(_deleteMember).forEach(function (key) {
28
28
  });
29
29
  });
30
30
 
31
+ var _deleteMessage = require("./deleteMessage");
32
+
33
+ Object.keys(_deleteMessage).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ if (key in exports && exports[key] === _deleteMessage[key]) return;
36
+ Object.defineProperty(exports, key, {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _deleteMessage[key];
40
+ }
41
+ });
42
+ });
43
+
31
44
  var _deleteMessagesForChannel = require("./deleteMessagesForChannel");
32
45
 
33
46
  Object.keys(_deleteMessagesForChannel).forEach(function (key) {
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './deleteChannel';\nexport * from './deleteMember';\nexport * from './deleteMessagesForChannel';\nexport * from './deleteReactions';\nexport * from './getAllChannelIds';\nexport * from './getChannelMessages';\nexport * from './getChannels';\nexport * from './getChannelsForFilterSort';\nexport * from './getLastSyncedAt';\nexport * from './getMembers';\nexport * from './getReads';\nexport * from './updateMessage';\nexport * from './updateReaction';\nexport * from './upsertChannelData';\nexport * from './upsertChannels';\nexport * from './upsertCidsForQuery';\nexport * from './upsertLastSyncedAt';\nexport * from './upsertMembers';\nexport * from './upsertMessages';\nexport * from './upsertReads';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './deleteChannel';\nexport * from './deleteMember';\nexport * from './deleteMessage';\nexport * from './deleteMessagesForChannel';\nexport * from './deleteReactions';\nexport * from './getAllChannelIds';\nexport * from './getChannelMessages';\nexport * from './getChannels';\nexport * from './getChannelsForFilterSort';\nexport * from './getLastSyncedAt';\nexport * from './getMembers';\nexport * from './getReads';\nexport * from './updateMessage';\nexport * from './updateReaction';\nexport * from './upsertChannelData';\nexport * from './upsertChannels';\nexport * from './upsertCidsForQuery';\nexport * from './upsertLastSyncedAt';\nexport * from './upsertMembers';\nexport * from './upsertMessages';\nexport * from './upsertReads';\n"]}
@@ -0,0 +1,28 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.insertReaction = void 0;
5
+
6
+ var _mapReactionToStorable = require("../mappers/mapReactionToStorable");
7
+
8
+ var _QuickSqliteClient = require("../QuickSqliteClient");
9
+
10
+ var _createUpsertQuery = require("../sqlite-utils/createUpsertQuery");
11
+
12
+ var insertReaction = function insertReaction(_ref) {
13
+ var _ref$flush = _ref.flush,
14
+ flush = _ref$flush === void 0 ? true : _ref$flush,
15
+ reaction = _ref.reaction;
16
+ var queries = [];
17
+ queries.push((0, _createUpsertQuery.createUpsertQuery)('reactions', (0, _mapReactionToStorable.mapReactionToStorable)(reaction)));
18
+ queries.push(['UPDATE messages SET reactionCounts = reactionCounts + 1 WHERE id = ?', [reaction.message_id]]);
19
+
20
+ if (flush) {
21
+ _QuickSqliteClient.QuickSqliteClient.executeSqlBatch(queries);
22
+ }
23
+
24
+ return queries;
25
+ };
26
+
27
+ exports.insertReaction = insertReaction;
28
+ //# sourceMappingURL=insertReaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["insertReaction.ts"],"names":["insertReaction","flush","reaction","queries","push","message_id","QuickSqliteClient","executeSqlBatch"],"mappings":";;;;;AAEA;;AACA;;AACA;;AAGO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAMxB;AAAA,wBALJC,KAKI;AAAA,MALJA,KAKI,2BALI,IAKJ;AAAA,MAJJC,QAII,QAJJA,QAII;AACJ,MAAMC,OAA0B,GAAG,EAAnC;AAEAA,EAAAA,OAAO,CAACC,IAAR,CAAa,0CAAkB,WAAlB,EAA+B,kDAAsBF,QAAtB,CAA/B,CAAb;AAEAC,EAAAA,OAAO,CAACC,IAAR,CAAa,CACX,sEADW,EAEX,CAACF,QAAQ,CAACG,UAAV,CAFW,CAAb;;AAKA,MAAIJ,KAAJ,EAAW;AACTK,yCAAkBC,eAAlB,CAAkCJ,OAAlC;AACD;;AAED,SAAOA,OAAP;AACD,CArBM","sourcesContent":["import type { ReactionResponse } from 'stream-chat';\n\nimport { mapReactionToStorable } from '../mappers/mapReactionToStorable';\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\nimport type { PreparedQueries } from '../types';\n\nexport const insertReaction = ({\n flush = true,\n reaction,\n}: {\n reaction: ReactionResponse;\n flush?: boolean;\n}) => {\n const queries: PreparedQueries[] = [];\n\n queries.push(createUpsertQuery('reactions', mapReactionToStorable(reaction)));\n\n queries.push([\n 'UPDATE messages SET reactionCounts = reactionCounts + 1 WHERE id = ?',\n [reaction.message_id],\n ]);\n\n if (flush) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n\n return queries;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["updateMessage.ts"],"names":["updateMessage","flush","message","queries","messages","QuickSqliteClient","executeSql","apply","id","length","push","user","messageId","latestReactions","latest_reactions","ownReactions","own_reactions","forEach","r","executeSqlBatch"],"mappings":";;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,OAMvB;AAAA,wBALJC,KAKI;AAAA,MALJA,KAKI,2BALI,IAKJ;AAAA,MAJJC,OAII,QAJJA,OAII;AACJ,MAAMC,OAA0B,GAAG,EAAnC;;AAEA,MAAMC,QAAQ,GAAGC,qCAAkBC,UAAlB,CAA6BC,KAA7B,CACf,IADe,EAEf,0CAAkB,UAAlB,EAA8B,CAAC,GAAD,CAA9B,EAAqC;AACnCC,IAAAA,EAAE,EAAEN,OAAO,CAACM;AADuB,GAArC,CAFe,CAAjB;;AAOA,MAAIJ,QAAQ,CAACK,MAAT,KAAoB,CAAxB,EAA2B;AACzB,WAAON,OAAP;AACD;;AAEDA,EAAAA,OAAO,CAACO,IAAR,CACE,0CAAkB,UAAlB,EAA8B,gDAAqBR,OAArB,CAA9B,EAA6D;AAC3DM,IAAAA,EAAE,EAAEN,OAAO,CAACM;AAD+C,GAA7D,CADF;;AAMA,MAAIN,OAAO,CAACS,IAAZ,EAAkB;AAChBR,IAAAA,OAAO,CAACO,IAAR,CAAa,0CAAkB,OAAlB,EAA2B,0CAAkBR,OAAO,CAACS,IAA1B,CAA3B,CAAb;AACD;;AAEDR,EAAAA,OAAO,CAACO,IAAR,CACE,0CAAkB,WAAlB,EAA+B;AAC7BE,IAAAA,SAAS,EAAEV,OAAO,CAACM;AADU,GAA/B,CADF;AAMA,MAAMK,eAAe,GAAGX,OAAO,CAACY,gBAAR,IAA4B,EAApD;AACA,MAAMC,YAAY,GAAGb,OAAO,CAACc,aAAR,IAAyB,EAA9C;AAEA,gDAAIH,eAAJ,uCAAwBE,YAAxB,GAAsCE,OAAtC,CAA8C,UAACC,CAAD,EAAO;AACnD,QAAIA,CAAC,CAACP,IAAN,EAAY;AACVR,MAAAA,OAAO,CAACO,IAAR,CAAa,0CAAkB,OAAlB,EAA2B,0CAAkBQ,CAAC,CAACP,IAApB,CAA3B,CAAb;AACD;;AAEDR,IAAAA,OAAO,CAACO,IAAR,CAAa,0CAAkB,WAAlB,EAA+B,kDAAsBQ,CAAtB,CAA/B,CAAb;AACD,GAND;;AAQA,MAAIjB,KAAJ,EAAW;AACTI,yCAAkBc,eAAlB,CAAkChB,OAAlC;AACD;;AAED,SAAOA,OAAP;AACD,CApDM","sourcesContent":["import type { MessageResponse } from 'stream-chat';\n\nimport { mapMessageToStorable } from '../mappers/mapMessageToStorable';\nimport { mapReactionToStorable } from '../mappers/mapReactionToStorable';\nimport { mapUserToStorable } from '../mappers/mapUserToStorable';\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createDeleteQuery } from '../sqlite-utils/createDeleteQuery';\nimport { createSelectQuery } from '../sqlite-utils/createSelectQuery';\nimport { createUpdateQuery } from '../sqlite-utils/createUpdateQuery';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\nimport type { PreparedQueries } from '../types';\n\nexport const updateMessage = ({\n flush = true,\n message,\n}: {\n message: MessageResponse;\n flush?: boolean;\n}) => {\n const queries: PreparedQueries[] = [];\n\n const messages = QuickSqliteClient.executeSql.apply(\n null,\n createSelectQuery('messages', ['*'], {\n id: message.id,\n }),\n );\n\n if (messages.length === 0) {\n return queries;\n }\n\n queries.push(\n createUpdateQuery('messages', mapMessageToStorable(message), {\n id: message.id,\n }),\n );\n\n if (message.user) {\n queries.push(createUpsertQuery('users', mapUserToStorable(message.user)));\n }\n\n queries.push(\n createDeleteQuery('reactions', {\n messageId: message.id,\n }),\n );\n\n const latestReactions = message.latest_reactions || [];\n const ownReactions = message.own_reactions || [];\n\n [...latestReactions, ...ownReactions].forEach((r) => {\n if (r.user) {\n queries.push(createUpsertQuery('users', mapUserToStorable(r.user)));\n }\n\n queries.push(createUpsertQuery('reactions', mapReactionToStorable(r)));\n });\n\n if (flush) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n\n return queries;\n};\n"]}
1
+ {"version":3,"sources":["updateMessage.ts"],"names":["updateMessage","flush","message","queries","messages","QuickSqliteClient","executeSql","apply","id","length","push","user","messageId","latestReactions","latest_reactions","ownReactions","own_reactions","forEach","r","executeSqlBatch"],"mappings":";;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,OAMvB;AAAA,wBALJC,KAKI;AAAA,MALJA,KAKI,2BALI,IAKJ;AAAA,MAJJC,OAII,QAJJA,OAII;AACJ,MAAMC,OAA0B,GAAG,EAAnC;;AAEA,MAAMC,QAAQ,GAAGC,qCAAkBC,UAAlB,CAA6BC,KAA7B,CACf,IADe,EAEf,0CAAkB,UAAlB,EAA8B,CAAC,GAAD,CAA9B,EAAqC;AACnCC,IAAAA,EAAE,EAAEN,OAAO,CAACM;AADuB,GAArC,CAFe,CAAjB;;AAOA,MAAIJ,QAAQ,CAACK,MAAT,KAAoB,CAAxB,EAA2B;AACzB,WAAON,OAAP;AACD;;AAEDA,EAAAA,OAAO,CAACO,IAAR,CACE,0CAAkB,UAAlB,EAA8B,gDAAqBR,OAArB,CAA9B,EAA6D;AAC3DM,IAAAA,EAAE,EAAEN,OAAO,CAACM;AAD+C,GAA7D,CADF;;AAMA,MAAIN,OAAO,CAACS,IAAZ,EAAkB;AAChBR,IAAAA,OAAO,CAACO,IAAR,CAAa,0CAAkB,OAAlB,EAA2B,0CAAkBR,OAAO,CAACS,IAA1B,CAA3B,CAAb;AACD;;AAEDR,EAAAA,OAAO,CAACO,IAAR,CACE,0CAAkB,WAAlB,EAA+B;AAC7BE,IAAAA,SAAS,EAAEV,OAAO,CAACM;AADU,GAA/B,CADF;AAMA,MAAMK,eAAe,GAAGX,OAAO,CAACY,gBAAR,IAA4B,EAApD;AACA,MAAMC,YAAY,GAAGb,OAAO,CAACc,aAAR,IAAyB,EAA9C;AAEA,gDAAIH,eAAJ,uCAAwBE,YAAxB,GAAsCE,OAAtC,CAA8C,UAACC,CAAD,EAAO;AACnD,QAAIA,CAAC,CAACP,IAAN,EAAY;AACVR,MAAAA,OAAO,CAACO,IAAR,CAAa,0CAAkB,OAAlB,EAA2B,0CAAkBQ,CAAC,CAACP,IAApB,CAA3B,CAAb;AACD;;AAEDR,IAAAA,OAAO,CAACO,IAAR,CAAa,0CAAkB,WAAlB,EAA+B,kDAAsBQ,CAAtB,CAA/B,CAAb;AACD,GAND;;AAQA,MAAIjB,KAAJ,EAAW;AACTI,yCAAkBc,eAAlB,CAAkChB,OAAlC;AACD;;AAED,SAAOA,OAAP;AACD,CApDM","sourcesContent":["import type { FormatMessageResponse, MessageResponse } from 'stream-chat';\n\nimport { mapMessageToStorable } from '../mappers/mapMessageToStorable';\nimport { mapReactionToStorable } from '../mappers/mapReactionToStorable';\nimport { mapUserToStorable } from '../mappers/mapUserToStorable';\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createDeleteQuery } from '../sqlite-utils/createDeleteQuery';\nimport { createSelectQuery } from '../sqlite-utils/createSelectQuery';\nimport { createUpdateQuery } from '../sqlite-utils/createUpdateQuery';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\nimport type { PreparedQueries } from '../types';\n\nexport const updateMessage = ({\n flush = true,\n message,\n}: {\n message: MessageResponse | FormatMessageResponse;\n flush?: boolean;\n}) => {\n const queries: PreparedQueries[] = [];\n\n const messages = QuickSqliteClient.executeSql.apply(\n null,\n createSelectQuery('messages', ['*'], {\n id: message.id,\n }),\n );\n\n if (messages.length === 0) {\n return queries;\n }\n\n queries.push(\n createUpdateQuery('messages', mapMessageToStorable(message), {\n id: message.id,\n }),\n );\n\n if (message.user) {\n queries.push(createUpsertQuery('users', mapUserToStorable(message.user)));\n }\n\n queries.push(\n createDeleteQuery('reactions', {\n messageId: message.id,\n }),\n );\n\n const latestReactions = message.latest_reactions || [];\n const ownReactions = message.own_reactions || [];\n\n [...latestReactions, ...ownReactions].forEach((r) => {\n if (r.user) {\n queries.push(createUpsertQuery('users', mapUserToStorable(r.user)));\n }\n\n queries.push(createUpsertQuery('reactions', mapReactionToStorable(r)));\n });\n\n if (flush) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n\n return queries;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["updateReaction.ts"],"names":["updateReaction","flush","message","reaction","queries","user","push","messageId","message_id","userId","user_id","reaction_counts","reactionCounts","id","QuickSqliteClient","executeSqlBatch"],"mappings":";;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAQxB;AAAA,wBAPJC,KAOI;AAAA,MAPJA,KAOI,2BAPI,IAOJ;AAAA,MANJC,OAMI,QANJA,OAMI;AAAA,MALJC,QAKI,QALJA,QAKI;AACJ,MAAMC,OAA0B,GAAG,EAAnC;;AAEA,MAAID,QAAQ,CAACE,IAAb,EAAmB;AACjBD,IAAAA,OAAO,CAACE,IAAR,CAAa,0CAAkB,OAAlB,EAA2B,0CAAkBH,QAAQ,CAACE,IAA3B,CAA3B,CAAb;AACD;;AAEDD,EAAAA,OAAO,CAACE,IAAR,CACE,0CAAkB,WAAlB,EAA+B,kDAAsBH,QAAtB,CAA/B,EAAgE;AAC9DI,IAAAA,SAAS,EAAEJ,QAAQ,CAACK,UAD0C;AAE9DC,IAAAA,MAAM,EAAEN,QAAQ,CAACO;AAF6C,GAAhE,CADF;;AAOA,MAAIR,OAAO,CAACS,eAAZ,EAA6B;AAC3B,gCAA2B,iDAAqBT,OAArB,CAA3B;AAAA,QAAQU,cAAR,yBAAQA,cAAR;;AAEAR,IAAAA,OAAO,CAACE,IAAR,CACE,0CACE,UADF,EAEE;AACEM,MAAAA,cAAc,EAAdA;AADF,KAFF,EAKE;AACEC,MAAAA,EAAE,EAAEX,OAAO,CAACW;AADd,KALF,CADF;AAWD;;AAED,MAAIZ,KAAJ,EAAW;AACTa,yCAAkBC,eAAlB,CAAkCX,OAAlC;AACD;;AAED,SAAOA,OAAP;AACD,CA3CM","sourcesContent":["import type { MessageResponse, ReactionResponse } from 'stream-chat';\n\nimport { mapMessageToStorable } from '../mappers/mapMessageToStorable';\nimport { mapReactionToStorable } from '../mappers/mapReactionToStorable';\nimport { mapUserToStorable } from '../mappers/mapUserToStorable';\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createUpdateQuery } from '../sqlite-utils/createUpdateQuery';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\nimport type { PreparedQueries } from '../types';\n\nexport const updateReaction = ({\n flush = true,\n message,\n reaction,\n}: {\n message: MessageResponse;\n reaction: ReactionResponse;\n flush?: boolean;\n}) => {\n const queries: PreparedQueries[] = [];\n\n if (reaction.user) {\n queries.push(createUpsertQuery('users', mapUserToStorable(reaction.user)));\n }\n\n queries.push(\n createUpdateQuery('reactions', mapReactionToStorable(reaction), {\n messageId: reaction.message_id,\n userId: reaction.user_id,\n }),\n );\n\n if (message.reaction_counts) {\n const { reactionCounts } = mapMessageToStorable(message);\n\n queries.push(\n createUpdateQuery(\n 'messages',\n {\n reactionCounts,\n },\n {\n id: message.id,\n },\n ),\n );\n }\n\n if (flush) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n\n return queries;\n};\n"]}
1
+ {"version":3,"sources":["updateReaction.ts"],"names":["updateReaction","flush","message","reaction","queries","user","push","messageId","message_id","userId","user_id","reaction_counts","reactionCounts","id","QuickSqliteClient","executeSqlBatch"],"mappings":";;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAQxB;AAAA,wBAPJC,KAOI;AAAA,MAPJA,KAOI,2BAPI,IAOJ;AAAA,MANJC,OAMI,QANJA,OAMI;AAAA,MALJC,QAKI,QALJA,QAKI;AACJ,MAAMC,OAA0B,GAAG,EAAnC;;AAEA,MAAID,QAAQ,CAACE,IAAb,EAAmB;AACjBD,IAAAA,OAAO,CAACE,IAAR,CAAa,0CAAkB,OAAlB,EAA2B,0CAAkBH,QAAQ,CAACE,IAA3B,CAA3B,CAAb;AACD;;AAEDD,EAAAA,OAAO,CAACE,IAAR,CACE,0CAAkB,WAAlB,EAA+B,kDAAsBH,QAAtB,CAA/B,EAAgE;AAC9DI,IAAAA,SAAS,EAAEJ,QAAQ,CAACK,UAD0C;AAE9DC,IAAAA,MAAM,EAAEN,QAAQ,CAACO;AAF6C,GAAhE,CADF;;AAOA,MAAIR,OAAO,CAACS,eAAZ,EAA6B;AAC3B,gCAA2B,iDAAqBT,OAArB,CAA3B;AAAA,QAAQU,cAAR,yBAAQA,cAAR;;AAEAR,IAAAA,OAAO,CAACE,IAAR,CACE,0CACE,UADF,EAEE;AACEM,MAAAA,cAAc,EAAdA;AADF,KAFF,EAKE;AACEC,MAAAA,EAAE,EAAEX,OAAO,CAACW;AADd,KALF,CADF;AAWD;;AAED,MAAIZ,KAAJ,EAAW;AACTa,yCAAkBC,eAAlB,CAAkCX,OAAlC;AACD;;AAED,SAAOA,OAAP;AACD,CA3CM","sourcesContent":["import type { FormatMessageResponse, MessageResponse, ReactionResponse } from 'stream-chat';\n\nimport { mapMessageToStorable } from '../mappers/mapMessageToStorable';\nimport { mapReactionToStorable } from '../mappers/mapReactionToStorable';\nimport { mapUserToStorable } from '../mappers/mapUserToStorable';\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createUpdateQuery } from '../sqlite-utils/createUpdateQuery';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\nimport type { PreparedQueries } from '../types';\n\nexport const updateReaction = ({\n flush = true,\n message,\n reaction,\n}: {\n message: MessageResponse | FormatMessageResponse;\n reaction: ReactionResponse;\n flush?: boolean;\n}) => {\n const queries: PreparedQueries[] = [];\n\n if (reaction.user) {\n queries.push(createUpsertQuery('users', mapUserToStorable(reaction.user)));\n }\n\n queries.push(\n createUpdateQuery('reactions', mapReactionToStorable(reaction), {\n messageId: reaction.message_id,\n userId: reaction.user_id,\n }),\n );\n\n if (message.reaction_counts) {\n const { reactionCounts } = mapMessageToStorable(message);\n\n queries.push(\n createUpdateQuery(\n 'messages',\n {\n reactionCounts,\n },\n {\n id: message.id,\n },\n ),\n );\n }\n\n if (flush) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n\n return queries;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["mapDateTimeToStorable.ts"],"names":["mapDateTimeToStorable","datetime","Date","toISOString"],"mappings":";;;;;AAAO,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,QAAD,EAAuB;AAC1D,MAAI,CAACA,QAAL,EAAe,OAAO,EAAP;AAEf,SAAO,IAAIC,IAAJ,CAASD,QAAT,EAAmBE,WAAnB,EAAP;AACD,CAJM","sourcesContent":["export const mapDateTimeToStorable = (datetime?: string) => {\n if (!datetime) return '';\n\n return new Date(datetime).toISOString();\n};\n"]}
1
+ {"version":3,"sources":["mapDateTimeToStorable.ts"],"names":["mapDateTimeToStorable","datetime","Date","toISOString"],"mappings":";;;;;AAAO,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,QAAD,EAA8B;AACjE,MAAI,CAACA,QAAL,EAAe,OAAO,EAAP;AAEf,SAAO,IAAIC,IAAJ,CAASD,QAAT,EAAmBE,WAAnB,EAAP;AACD,CAJM","sourcesContent":["export const mapDateTimeToStorable = (datetime?: string | Date) => {\n if (!datetime) return '';\n\n return new Date(datetime).toISOString();\n};\n"]}
@@ -9,7 +9,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
9
9
 
10
10
  var _mapDateTimeToStorable = require("./mapDateTimeToStorable");
11
11
 
12
- var _excluded = ["attachments", "cid", "created_at", "deleted_at", "id", "reaction_counts", "text", "type", "updated_at", "user"];
12
+ var _excluded = ["attachments", "cid", "created_at", "deleted_at", "id", "latest_reactions", "own_reactions", "reaction_counts", "text", "type", "updated_at", "user"];
13
13
 
14
14
  var mapMessageToStorable = function mapMessageToStorable(message) {
15
15
  var attachments = message.attachments,
@@ -17,6 +17,8 @@ var mapMessageToStorable = function mapMessageToStorable(message) {
17
17
  created_at = message.created_at,
18
18
  deleted_at = message.deleted_at,
19
19
  id = message.id,
20
+ latest_reactions = message.latest_reactions,
21
+ own_reactions = message.own_reactions,
20
22
  reaction_counts = message.reaction_counts,
21
23
  text = message.text,
22
24
  type = message.type,
@@ -1 +1 @@
1
- {"version":3,"sources":["mapMessageToStorable.ts"],"names":["mapMessageToStorable","message","attachments","cid","created_at","deleted_at","id","reaction_counts","text","type","updated_at","user","extraData","JSON","stringify","createdAt","deletedAt","reactionCounts","updatedAt","userId"],"mappings":";;;;;;;;;AAEA;;;;AAIO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,OAAD,EAAoD;AACtF,MACEC,WADF,GAYID,OAZJ,CACEC,WADF;AAAA,MAEEC,GAFF,GAYIF,OAZJ,CAEEE,GAFF;AAAA,MAGEC,UAHF,GAYIH,OAZJ,CAGEG,UAHF;AAAA,MAIEC,UAJF,GAYIJ,OAZJ,CAIEI,UAJF;AAAA,MAKEC,EALF,GAYIL,OAZJ,CAKEK,EALF;AAAA,MAMEC,eANF,GAYIN,OAZJ,CAMEM,eANF;AAAA,MAOEC,IAPF,GAYIP,OAZJ,CAOEO,IAPF;AAAA,MAQEC,IARF,GAYIR,OAZJ,CAQEQ,IARF;AAAA,MASEC,UATF,GAYIT,OAZJ,CASES,UATF;AAAA,MAUEC,IAVF,GAYIV,OAZJ,CAUEU,IAVF;AAAA,MAWKC,SAXL,6CAYIX,OAZJ;AAcA,SAAO;AACLC,IAAAA,WAAW,EAAEW,IAAI,CAACC,SAAL,CAAeZ,WAAf,CADR;AAELC,IAAAA,GAAG,EAAEA,GAAG,IAAI,EAFP;AAGLY,IAAAA,SAAS,EAAE,kDAAsBX,UAAtB,CAHN;AAILY,IAAAA,SAAS,EAAE,kDAAsBX,UAAtB,CAJN;AAKLO,IAAAA,SAAS,EAAEC,IAAI,CAACC,SAAL,CAAeF,SAAf,CALN;AAMLN,IAAAA,EAAE,EAAFA,EANK;AAOLW,IAAAA,cAAc,EAAEJ,IAAI,CAACC,SAAL,CAAeP,eAAf,CAPX;AAQLC,IAAAA,IAAI,EAAJA,IARK;AASLC,IAAAA,IAAI,EAAJA,IATK;AAULS,IAAAA,SAAS,EAAE,kDAAsBR,UAAtB,CAVN;AAWLS,IAAAA,MAAM,EAAER,IAAF,oBAAEA,IAAI,CAAEL;AAXT,GAAP;AAaD,CA5BM","sourcesContent":["import type { MessageResponse } from 'stream-chat';\n\nimport { mapDateTimeToStorable } from './mapDateTimeToStorable';\n\nimport type { TableRow } from '../types';\n\nexport const mapMessageToStorable = (message: MessageResponse): TableRow<'messages'> => {\n const {\n attachments,\n cid,\n created_at,\n deleted_at,\n id,\n reaction_counts,\n text,\n type,\n updated_at,\n user,\n ...extraData\n } = message;\n\n return {\n attachments: JSON.stringify(attachments),\n cid: cid || '',\n createdAt: mapDateTimeToStorable(created_at),\n deletedAt: mapDateTimeToStorable(deleted_at),\n extraData: JSON.stringify(extraData),\n id,\n reactionCounts: JSON.stringify(reaction_counts),\n text,\n type,\n updatedAt: mapDateTimeToStorable(updated_at),\n userId: user?.id,\n };\n};\n"]}
1
+ {"version":3,"sources":["mapMessageToStorable.ts"],"names":["mapMessageToStorable","message","attachments","cid","created_at","deleted_at","id","latest_reactions","own_reactions","reaction_counts","text","type","updated_at","user","extraData","JSON","stringify","createdAt","deletedAt","reactionCounts","updatedAt","userId"],"mappings":";;;;;;;;;AAEA;;;;AAIO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAClCC,OADkC,EAET;AACzB,MACEC,WADF,GAgBID,OAhBJ,CACEC,WADF;AAAA,MAEEC,GAFF,GAgBIF,OAhBJ,CAEEE,GAFF;AAAA,MAGEC,UAHF,GAgBIH,OAhBJ,CAGEG,UAHF;AAAA,MAIEC,UAJF,GAgBIJ,OAhBJ,CAIEI,UAJF;AAAA,MAKEC,EALF,GAgBIL,OAhBJ,CAKEK,EALF;AAAA,MAOEC,gBAPF,GAgBIN,OAhBJ,CAOEM,gBAPF;AAAA,MASEC,aATF,GAgBIP,OAhBJ,CASEO,aATF;AAAA,MAUEC,eAVF,GAgBIR,OAhBJ,CAUEQ,eAVF;AAAA,MAWEC,IAXF,GAgBIT,OAhBJ,CAWES,IAXF;AAAA,MAYEC,IAZF,GAgBIV,OAhBJ,CAYEU,IAZF;AAAA,MAaEC,UAbF,GAgBIX,OAhBJ,CAaEW,UAbF;AAAA,MAcEC,IAdF,GAgBIZ,OAhBJ,CAcEY,IAdF;AAAA,MAeKC,SAfL,6CAgBIb,OAhBJ;AAkBA,SAAO;AACLC,IAAAA,WAAW,EAAEa,IAAI,CAACC,SAAL,CAAed,WAAf,CADR;AAELC,IAAAA,GAAG,EAAEA,GAAG,IAAI,EAFP;AAGLc,IAAAA,SAAS,EAAE,kDAAsBb,UAAtB,CAHN;AAILc,IAAAA,SAAS,EAAE,kDAAsBb,UAAtB,CAJN;AAKLS,IAAAA,SAAS,EAAEC,IAAI,CAACC,SAAL,CAAeF,SAAf,CALN;AAMLR,IAAAA,EAAE,EAAFA,EANK;AAOLa,IAAAA,cAAc,EAAEJ,IAAI,CAACC,SAAL,CAAeP,eAAf,CAPX;AAQLC,IAAAA,IAAI,EAAJA,IARK;AASLC,IAAAA,IAAI,EAAJA,IATK;AAULS,IAAAA,SAAS,EAAE,kDAAsBR,UAAtB,CAVN;AAWLS,IAAAA,MAAM,EAAER,IAAF,oBAAEA,IAAI,CAAEP;AAXT,GAAP;AAaD,CAlCM","sourcesContent":["import type { FormatMessageResponse, MessageResponse } from 'stream-chat';\n\nimport { mapDateTimeToStorable } from './mapDateTimeToStorable';\n\nimport type { TableRow } from '../types';\n\nexport const mapMessageToStorable = (\n message: MessageResponse | FormatMessageResponse,\n): TableRow<'messages'> => {\n const {\n attachments,\n cid,\n created_at,\n deleted_at,\n id,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n latest_reactions,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n own_reactions,\n reaction_counts,\n text,\n type,\n updated_at,\n user,\n ...extraData\n } = message;\n\n return {\n attachments: JSON.stringify(attachments),\n cid: cid || '',\n createdAt: mapDateTimeToStorable(created_at),\n deletedAt: mapDateTimeToStorable(deleted_at),\n extraData: JSON.stringify(extraData),\n id,\n reactionCounts: JSON.stringify(reaction_counts),\n text,\n type,\n updatedAt: mapDateTimeToStorable(updated_at),\n userId: user?.id,\n };\n};\n"]}
@@ -0,0 +1,23 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.mapStorableToTask = void 0;
5
+
6
+ var mapStorableToTask = function mapStorableToTask(row) {
7
+ var channelId = row.channelId,
8
+ channelType = row.channelType,
9
+ id = row.id,
10
+ messageId = row.messageId,
11
+ type = row.type;
12
+ return {
13
+ channelId: channelId,
14
+ channelType: channelType,
15
+ id: id,
16
+ messageId: messageId,
17
+ payload: JSON.parse(row.payload),
18
+ type: type
19
+ };
20
+ };
21
+
22
+ exports.mapStorableToTask = mapStorableToTask;
23
+ //# sourceMappingURL=mapStorableToTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["mapStorableToTask.ts"],"names":["mapStorableToTask","row","channelId","channelType","id","messageId","type","payload","JSON","parse"],"mappings":";;;;;AAEO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,GAAD,EAA0D;AACzF,MAAQC,SAAR,GAAwDD,GAAxD,CAAQC,SAAR;AAAA,MAAmBC,WAAnB,GAAwDF,GAAxD,CAAmBE,WAAnB;AAAA,MAAgCC,EAAhC,GAAwDH,GAAxD,CAAgCG,EAAhC;AAAA,MAAoCC,SAApC,GAAwDJ,GAAxD,CAAoCI,SAApC;AAAA,MAA+CC,IAA/C,GAAwDL,GAAxD,CAA+CK,IAA/C;AACA,SAAO;AACLJ,IAAAA,SAAS,EAATA,SADK;AAELC,IAAAA,WAAW,EAAXA,WAFK;AAGLC,IAAAA,EAAE,EAAFA,EAHK;AAILC,IAAAA,SAAS,EAATA,SAJK;AAKLE,IAAAA,OAAO,EAAEC,IAAI,CAACC,KAAL,CAAWR,GAAG,CAACM,OAAf,CALJ;AAMLD,IAAAA,IAAI,EAAJA;AANK,GAAP;AAQD,CAVM","sourcesContent":["import type { PendingTask, TableRowJoinedUser } from '../types';\n\nexport const mapStorableToTask = (row: TableRowJoinedUser<'pendingTasks'>): PendingTask => {\n const { channelId, channelType, id, messageId, type } = row;\n return {\n channelId,\n channelType,\n id,\n messageId,\n payload: JSON.parse(row.payload),\n type,\n };\n};\n"]}
@@ -0,0 +1,18 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mapTaskToStorable = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var mapTaskToStorable = function mapTaskToStorable(task) {
11
+ return (0, _extends2["default"])({}, task, {
12
+ createdAt: new Date().toISOString(),
13
+ payload: JSON.stringify(task.payload)
14
+ });
15
+ };
16
+
17
+ exports.mapTaskToStorable = mapTaskToStorable;
18
+ //# sourceMappingURL=mapTaskToStorable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["mapTaskToStorable.ts"],"names":["mapTaskToStorable","task","createdAt","Date","toISOString","payload","JSON","stringify"],"mappings":";;;;;;;;;AAEO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,IAAD;AAAA,uCAC5BA,IAD4B;AAE/BC,IAAAA,SAAS,EAAE,IAAIC,IAAJ,GAAWC,WAAX,EAFoB;AAG/BC,IAAAA,OAAO,EAAEC,IAAI,CAACC,SAAL,CAAeN,IAAI,CAACI,OAApB;AAHsB;AAAA,CAA1B","sourcesContent":["import type { PendingTask } from '../types';\n\nexport const mapTaskToStorable = (task: PendingTask) => ({\n ...task,\n createdAt: new Date().toISOString(),\n payload: JSON.stringify(task.payload),\n});\n"]}
@@ -94,6 +94,17 @@ var tables = {
94
94
  }],
95
95
  primaryKey: ['id']
96
96
  },
97
+ pendingTasks: {
98
+ columns: {
99
+ channelId: 'TEXT',
100
+ channelType: 'TEXT',
101
+ createdAt: 'TEXT',
102
+ id: 'INTEGER PRIMARY KEY AUTOINCREMENT',
103
+ messageId: 'TEXT',
104
+ payload: 'TEXT',
105
+ type: 'TEXT'
106
+ }
107
+ },
97
108
  reactions: {
98
109
  columns: {
99
110
  createdAt: 'TEXT',
@@ -1 +1 @@
1
- {"version":3,"sources":["schema.ts"],"names":["tables","channelQueries","columns","cids","id","primaryKey","channels","autoTranslationEnabled","autoTranslationLanguage","cid","config","cooldown","createdAt","createdById","deletedAt","disabled","extraData","frozen","hidden","invites","lastMessageAt","memberCount","muted","ownCapabilities","team","truncatedAt","truncatedBy","truncatedById","type","updatedAt","members","banned","channelRole","inviteAcceptedAt","invited","inviteRejectedAt","isModerator","role","shadowBanned","userId","foreignKeys","column","onDeleteAction","referenceTable","referenceTableColumn","indexes","name","unique","messages","attachments","reactionCounts","text","reactions","messageId","score","reads","lastRead","unreadMessages","users","lastActive","online","userSyncStatus","lastSyncedAt"],"mappings":"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","sourcesContent":["import type { MessageLabel, Role } from 'stream-chat';\n\ntype Tables = {\n [P in keyof Schema]: {\n columns: {\n [K in keyof Schema[P]]: string;\n };\n primaryKey: Array<keyof Schema[P]>;\n foreignKeys?: Array<{\n column: `${Exclude<keyof Schema[P], symbol>}`;\n referenceTable: `${keyof Schema}`;\n referenceTableColumn: string;\n // https://www.sqlite.org/foreignkeys.html#fk_actions\n onDeleteAction?: 'NO ACTION' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT' | 'CASCADE';\n }>;\n indexes?: Array<{\n columns: Array<keyof Schema[P]>;\n name: string;\n unique: boolean;\n }>;\n };\n};\n\nexport const tables: Tables = {\n channelQueries: {\n columns: {\n cids: 'TEXT',\n id: 'TEXT',\n },\n primaryKey: ['id'],\n },\n channels: {\n columns: {\n autoTranslationEnabled: 'BOOLEAN',\n autoTranslationLanguage: 'TEXT',\n cid: 'TEXT',\n config: 'TEXT',\n cooldown: 'BOOLEAN',\n createdAt: 'TEXT',\n createdById: 'TEXT',\n deletedAt: 'TEXT',\n disabled: 'BOOLEAN DEFAULT FALSE',\n extraData: 'TEXT',\n frozen: 'BOOLEAN',\n hidden: 'BOOLEAN',\n id: 'TEXT',\n invites: 'TEXT',\n lastMessageAt: 'TEXT',\n memberCount: 'INTEGER',\n muted: 'BOOLEAN DEFAULT FALSE',\n ownCapabilities: 'TEXT',\n team: 'TEXT',\n truncatedAt: 'TEXT',\n truncatedBy: 'TEXT',\n truncatedById: 'TEXT',\n type: 'TEXT',\n updatedAt: 'TEXT',\n },\n primaryKey: ['cid'],\n },\n members: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n channelRole: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n inviteAcceptedAt: 'TEXT',\n invited: 'BOOLEAN',\n inviteRejectedAt: 'TEXT',\n isModerator: 'BOOLEAN',\n role: 'TEXT',\n shadowBanned: 'BOOLEAN DEFAULT FALSE',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_members',\n unique: false,\n },\n ],\n primaryKey: ['cid', 'userId'],\n },\n messages: {\n columns: {\n attachments: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n deletedAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n reactionCounts: 'TEXT',\n text: \"TEXT DEFAULT ''\",\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_messages',\n unique: false,\n },\n ],\n primaryKey: ['id'],\n },\n reactions: {\n columns: {\n createdAt: 'TEXT',\n extraData: 'TEXT',\n messageId: 'TEXT',\n score: 'INTEGER DEFAULT 0',\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'messageId',\n onDeleteAction: 'CASCADE',\n referenceTable: 'messages',\n referenceTableColumn: 'id',\n },\n ],\n indexes: [\n {\n columns: ['messageId', 'userId'],\n name: 'index_reaction',\n unique: false,\n },\n ],\n primaryKey: ['messageId', 'userId', 'type'],\n },\n reads: {\n columns: {\n cid: 'TEXT NOT NULL',\n lastRead: 'TEXT NOT NULL',\n unreadMessages: 'INTEGER DEFAULT 0',\n userId: 'TEXT',\n },\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_reads_cid',\n unique: false,\n },\n ],\n primaryKey: ['userId', 'cid'],\n },\n users: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n createdAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n lastActive: 'TEXT',\n online: 'INTEGER',\n role: 'TEXT',\n updatedAt: 'TEXT',\n },\n indexes: [\n {\n columns: ['id'],\n name: 'index_users_id',\n unique: true,\n },\n ],\n primaryKey: ['id'],\n },\n userSyncStatus: {\n columns: {\n lastSyncedAt: 'TEXT',\n userId: 'TEXT',\n },\n primaryKey: ['userId'],\n },\n};\n\n// TODO: Checking the optionality of columns\nexport type Schema = {\n channelQueries: {\n cids: string;\n id: string;\n };\n channels: {\n cid: string;\n extraData: string;\n id: string;\n type: string;\n autoTranslationEnabled?: boolean;\n autoTranslationLanguage?: string;\n config?: string;\n cooldown?: number;\n createdAt?: string;\n createdById?: string;\n deletedAt?: string;\n disabled?: boolean;\n frozen?: boolean;\n hidden?: boolean;\n invites?: string;\n lastMessageAt?: string;\n memberCount?: number;\n muted?: boolean;\n ownCapabilities?: string;\n team?: string;\n truncatedAt?: string;\n truncatedBy?: string;\n truncatedById?: string;\n updatedAt?: string;\n };\n members: {\n cid: string;\n banned?: boolean;\n channelRole?: Role;\n createdAt?: string;\n inviteAcceptedAt?: string;\n invited?: boolean;\n inviteRejectedAt?: string;\n isModerator?: boolean;\n role?: string;\n shadowBanned?: boolean;\n updatedAt?: string;\n userId?: string;\n };\n messages: {\n attachments: string;\n cid: string;\n createdAt: string;\n deletedAt: string;\n extraData: string;\n id: string;\n reactionCounts: string;\n type: MessageLabel;\n updatedAt: string;\n text?: string;\n userId?: string;\n };\n reactions: {\n createdAt: string;\n messageId: string;\n type: string;\n updatedAt: string;\n extraData?: string;\n score?: number;\n userId?: string;\n };\n reads: {\n cid: string;\n lastRead: string;\n unreadMessages?: number;\n userId?: string;\n };\n users: {\n id: string;\n banned?: boolean;\n createdAt?: string;\n extraData?: string;\n lastActive?: string;\n online?: boolean;\n role?: string;\n updatedAt?: string;\n };\n userSyncStatus: {\n lastSyncedAt: string;\n userId: string;\n };\n};\n"]}
1
+ {"version":3,"sources":["schema.ts"],"names":["tables","channelQueries","columns","cids","id","primaryKey","channels","autoTranslationEnabled","autoTranslationLanguage","cid","config","cooldown","createdAt","createdById","deletedAt","disabled","extraData","frozen","hidden","invites","lastMessageAt","memberCount","muted","ownCapabilities","team","truncatedAt","truncatedBy","truncatedById","type","updatedAt","members","banned","channelRole","inviteAcceptedAt","invited","inviteRejectedAt","isModerator","role","shadowBanned","userId","foreignKeys","column","onDeleteAction","referenceTable","referenceTableColumn","indexes","name","unique","messages","attachments","reactionCounts","text","pendingTasks","channelId","channelType","messageId","payload","reactions","score","reads","lastRead","unreadMessages","users","lastActive","online","userSyncStatus","lastSyncedAt"],"mappings":"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","sourcesContent":["import type { MessageLabel, Role } from 'stream-chat';\n\nimport type { PendingTaskTypes } from './types';\n\nimport type { ValueOf } from '../types/types';\n\ntype Tables = {\n [P in keyof Schema]: {\n columns: {\n [K in keyof Schema[P]]: string;\n };\n foreignKeys?: Array<{\n column: `${Exclude<keyof Schema[P], symbol>}`;\n referenceTable: `${keyof Schema}`;\n referenceTableColumn: string;\n // https://www.sqlite.org/foreignkeys.html#fk_actions\n onDeleteAction?: 'NO ACTION' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT' | 'CASCADE';\n }>;\n indexes?: Array<{\n columns: Array<keyof Schema[P]>;\n name: string;\n unique: boolean;\n }>;\n primaryKey?: Array<keyof Schema[P]>;\n };\n};\n\nexport const tables: Tables = {\n channelQueries: {\n columns: {\n cids: 'TEXT',\n id: 'TEXT',\n },\n primaryKey: ['id'],\n },\n channels: {\n columns: {\n autoTranslationEnabled: 'BOOLEAN',\n autoTranslationLanguage: 'TEXT',\n cid: 'TEXT',\n config: 'TEXT',\n cooldown: 'BOOLEAN',\n createdAt: 'TEXT',\n createdById: 'TEXT',\n deletedAt: 'TEXT',\n disabled: 'BOOLEAN DEFAULT FALSE',\n extraData: 'TEXT',\n frozen: 'BOOLEAN',\n hidden: 'BOOLEAN',\n id: 'TEXT',\n invites: 'TEXT',\n lastMessageAt: 'TEXT',\n memberCount: 'INTEGER',\n muted: 'BOOLEAN DEFAULT FALSE',\n ownCapabilities: 'TEXT',\n team: 'TEXT',\n truncatedAt: 'TEXT',\n truncatedBy: 'TEXT',\n truncatedById: 'TEXT',\n type: 'TEXT',\n updatedAt: 'TEXT',\n },\n primaryKey: ['cid'],\n },\n members: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n channelRole: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n inviteAcceptedAt: 'TEXT',\n invited: 'BOOLEAN',\n inviteRejectedAt: 'TEXT',\n isModerator: 'BOOLEAN',\n role: 'TEXT',\n shadowBanned: 'BOOLEAN DEFAULT FALSE',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_members',\n unique: false,\n },\n ],\n primaryKey: ['cid', 'userId'],\n },\n messages: {\n columns: {\n attachments: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n deletedAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n reactionCounts: 'TEXT',\n text: \"TEXT DEFAULT ''\",\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_messages',\n unique: false,\n },\n ],\n primaryKey: ['id'],\n },\n pendingTasks: {\n columns: {\n channelId: 'TEXT',\n channelType: 'TEXT',\n createdAt: 'TEXT',\n id: 'INTEGER PRIMARY KEY AUTOINCREMENT',\n messageId: 'TEXT',\n payload: 'TEXT',\n type: 'TEXT',\n },\n },\n reactions: {\n columns: {\n createdAt: 'TEXT',\n extraData: 'TEXT',\n messageId: 'TEXT',\n score: 'INTEGER DEFAULT 0',\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'messageId',\n onDeleteAction: 'CASCADE',\n referenceTable: 'messages',\n referenceTableColumn: 'id',\n },\n ],\n indexes: [\n {\n columns: ['messageId', 'userId'],\n name: 'index_reaction',\n unique: false,\n },\n ],\n primaryKey: ['messageId', 'userId', 'type'],\n },\n reads: {\n columns: {\n cid: 'TEXT NOT NULL',\n lastRead: 'TEXT NOT NULL',\n unreadMessages: 'INTEGER DEFAULT 0',\n userId: 'TEXT',\n },\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_reads_cid',\n unique: false,\n },\n ],\n primaryKey: ['userId', 'cid'],\n },\n users: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n createdAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n lastActive: 'TEXT',\n online: 'INTEGER',\n role: 'TEXT',\n updatedAt: 'TEXT',\n },\n indexes: [\n {\n columns: ['id'],\n name: 'index_users_id',\n unique: true,\n },\n ],\n primaryKey: ['id'],\n },\n userSyncStatus: {\n columns: {\n lastSyncedAt: 'TEXT',\n userId: 'TEXT',\n },\n primaryKey: ['userId'],\n },\n};\n\n// TODO: Checking the optionality of columns\nexport type Schema = {\n channelQueries: {\n cids: string;\n id: string;\n };\n channels: {\n cid: string;\n extraData: string;\n id: string;\n type: string;\n autoTranslationEnabled?: boolean;\n autoTranslationLanguage?: string;\n config?: string;\n cooldown?: number;\n createdAt?: string;\n createdById?: string;\n deletedAt?: string;\n disabled?: boolean;\n frozen?: boolean;\n hidden?: boolean;\n invites?: string;\n lastMessageAt?: string;\n memberCount?: number;\n muted?: boolean;\n ownCapabilities?: string;\n team?: string;\n truncatedAt?: string;\n truncatedBy?: string;\n truncatedById?: string;\n updatedAt?: string;\n };\n members: {\n cid: string;\n banned?: boolean;\n channelRole?: Role;\n createdAt?: string;\n inviteAcceptedAt?: string;\n invited?: boolean;\n inviteRejectedAt?: string;\n isModerator?: boolean;\n role?: string;\n shadowBanned?: boolean;\n updatedAt?: string;\n userId?: string;\n };\n messages: {\n attachments: string;\n cid: string;\n createdAt: string;\n deletedAt: string;\n extraData: string;\n id: string;\n reactionCounts: string;\n type: MessageLabel;\n updatedAt: string;\n text?: string;\n userId?: string;\n };\n pendingTasks: {\n channelId: string;\n channelType: string;\n createdAt: string;\n id: number;\n messageId: string;\n payload: string;\n type: ValueOf<PendingTaskTypes>;\n };\n reactions: {\n createdAt: string;\n messageId: string;\n type: string;\n updatedAt: string;\n extraData?: string;\n score?: number;\n userId?: string;\n };\n reads: {\n cid: string;\n lastRead: string;\n unreadMessages?: number;\n userId?: string;\n };\n users: {\n id: string;\n banned?: boolean;\n createdAt?: string;\n extraData?: string;\n lastActive?: string;\n online?: boolean;\n role?: string;\n updatedAt?: string;\n };\n userSyncStatus: {\n lastSyncedAt: string;\n userId: string;\n };\n};\n"]}
@@ -0,0 +1,24 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.appendOrderByClause = void 0;
5
+
6
+ var appendOrderByClause = function appendOrderByClause(selectQuery, orderBy) {
7
+ if (!orderBy) return [selectQuery, []];
8
+ var orderByClause = [];
9
+
10
+ for (var key in orderBy) {
11
+ var order = orderBy[key];
12
+ if (order === undefined) continue;
13
+ orderByClause.push(key + " " + (order === 1 ? 'ASC' : 'DESC'));
14
+ }
15
+
16
+ if (!orderByClause.length) {
17
+ return [selectQuery, []];
18
+ }
19
+
20
+ return [selectQuery + " ORDER BY " + orderByClause.join(', ')];
21
+ };
22
+
23
+ exports.appendOrderByClause = appendOrderByClause;
24
+ //# sourceMappingURL=appendOrderByClause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["appendOrderByClause.ts"],"names":["appendOrderByClause","selectQuery","orderBy","orderByClause","key","order","undefined","push","length","join"],"mappings":";;;;;AAGO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CACjCC,WADiC,EAEjCC,OAFiC,EAGb;AACpB,MAAI,CAACA,OAAL,EAAc,OAAO,CAACD,WAAD,EAAc,EAAd,CAAP;AAEd,MAAME,aAAa,GAAG,EAAtB;;AAEA,OAAK,IAAMC,GAAX,IAAkBF,OAAlB,EAA2B;AACzB,QAAMG,KAAK,GAAGH,OAAO,CAACE,GAAD,CAArB;AACA,QAAIC,KAAK,KAAKC,SAAd,EAAyB;AAEzBH,IAAAA,aAAa,CAACI,IAAd,CAAsBH,GAAtB,UAA6BC,KAAK,KAAK,CAAV,GAAc,KAAd,GAAsB,MAAnD;AACD;;AAED,MAAI,CAACF,aAAa,CAACK,MAAnB,EAA2B;AACzB,WAAO,CAACP,WAAD,EAAc,EAAd,CAAP;AACD;;AAED,SAAO,CAAIA,WAAJ,kBAA4BE,aAAa,CAACM,IAAd,CAAmB,IAAnB,CAA5B,CAAP;AACD,CApBM","sourcesContent":["import type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\nexport const appendOrderByClause = <T extends keyof Schema>(\n selectQuery: string,\n orderBy?: Partial<{ [k in TableColumnNames<T>]: 1 | -1 }>,\n): PreparedQueries => {\n if (!orderBy) return [selectQuery, []];\n\n const orderByClause = [];\n\n for (const key in orderBy) {\n const order = orderBy[key];\n if (order === undefined) continue;\n\n orderByClause.push(`${key} ${order === 1 ? 'ASC' : 'DESC'}`);\n }\n\n if (!orderByClause.length) {\n return [selectQuery, []];\n }\n\n return [`${selectQuery} ORDER BY ${orderByClause.join(', ')}`];\n};\n"]}
@@ -21,7 +21,7 @@ var createCreateTableQuery = function createCreateTableQuery(tableName) {
21
21
 
22
22
  return key + " " + value;
23
23
  });
24
- var primaryKeyConstraints = _schema.tables[tableName].primaryKey.length > 0 ? ["PRIMARY KEY (" + _schema.tables[tableName].primaryKey.join(', ') + ")"] : [];
24
+ var primaryKeyConstraints = (_schema.tables[tableName].primaryKey || []).length > 0 ? ["PRIMARY KEY (" + (_schema.tables[tableName].primaryKey || []).join(', ') + ")"] : [];
25
25
  var foreignKeysConstraints = ((_tables$tableName$for = _schema.tables[tableName].foreignKeys) == null ? void 0 : _tables$tableName$for.map(function (k) {
26
26
  return "FOREIGN KEY (" + k.column + ") REFERENCES " + k.referenceTable + "(" + k.referenceTableColumn + ") ON DELETE " + (k.onDeleteAction || 'NO ACTION');
27
27
  })) || [];
@@ -1 +1 @@
1
- {"version":3,"sources":["createCreateTableQuery.ts"],"names":["createCreateTableQuery","tableName","columnsWithDescriptors","Object","entries","tables","columns","map","entry","key","value","primaryKeyConstraints","primaryKey","length","join","foreignKeysConstraints","foreignKeys","k","column","referenceTable","referenceTableColumn","onDeleteAction","indexQueries","indexes","index","unique","name"],"mappings":";;;;;;;;;;;AAAA;;AAGO,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,SAAD,EAAyC;AAAA;;AAC7E,MAAMC,sBAAsB,GAAGC,MAAM,CAACC,OAAP,CAAeC,eAAOJ,SAAP,EAAkBK,OAAjC,EAA0CC,GAA1C,CAA8C,UAACC,KAAD,EAAW;AACtF,iDAAqBA,KAArB;AAAA,QAAOC,GAAP;AAAA,QAAYC,KAAZ;;AACA,WAAUD,GAAV,SAAiBC,KAAjB;AACD,GAH8B,CAA/B;AAKA,MAAMC,qBAAqB,GACzBN,eAAOJ,SAAP,EAAkBW,UAAlB,CAA6BC,MAA7B,GAAsC,CAAtC,GACI,mBAAiBR,eAAOJ,SAAP,EAAkBW,UAAlB,CAA6BE,IAA7B,CAAkC,IAAlC,CAAjB,OADJ,GAEI,EAHN;AAIA,MAAMC,sBAAsB,GAC1B,yCAAOd,SAAP,EAAkBe,WAAlB,2CAA+BT,GAA/B,CACE,UAACU,CAAD;AAAA,6BACkBA,CAAC,CAACC,MADpB,qBAC0CD,CAAC,CAACE,cAD5C,SAEIF,CAAC,CAACG,oBAFN,qBAGiBH,CAAC,CAACI,cAAF,IAAoB,WAHrC;AAAA,GADF,MAKK,EANP;AAQA,MAAMC,YAA+B,GACnC,yCAAOrB,SAAP,EAAkBsB,OAAlB,2CAA2BhB,GAA3B,CAA+B,UAACiB,KAAD;AAAA,WAAW,cAC9BA,KAAK,CAACC,MAAN,GAAe,QAAf,GAA0B,EADI,8BAEtCD,KAAK,CAACE,IAFgC,YAGjCzB,SAHiC,SAGpBuB,KAAK,CAAClB,OAAN,CAAcQ,IAAd,CAAmB,GAAnB,CAHoB,OAAX;AAAA,GAA/B,MAIM,EALR;AAOA,UACE,iCACgCb,SADhC,qBAEQ,8CAAIC,sBAAJ,GAA+BS,qBAA/B,sCAAyDI,sBAAzD,GAAiFD,IAAjF,CACA,KADA,CAFR,kBADF,6CAQKQ,YARL;AAUD,CAnCM","sourcesContent":["import { tables } from '../schema';\nimport type { PreparedQueries, Table } from '../types';\n\nexport const createCreateTableQuery = (tableName: Table): PreparedQueries[] => {\n const columnsWithDescriptors = Object.entries(tables[tableName].columns).map((entry) => {\n const [key, value] = entry;\n return `${key} ${value}`;\n });\n\n const primaryKeyConstraints =\n tables[tableName].primaryKey.length > 0\n ? [`PRIMARY KEY (${tables[tableName].primaryKey.join(', ')})`]\n : [];\n const foreignKeysConstraints =\n tables[tableName].foreignKeys?.map(\n (k) =>\n `FOREIGN KEY (${k.column}) REFERENCES ${k.referenceTable}(${\n k.referenceTableColumn\n }) ON DELETE ${k.onDeleteAction || 'NO ACTION'}`,\n ) || [];\n\n const indexQueries: PreparedQueries[] =\n tables[tableName].indexes?.map((index) => [\n `CREATE ${index.unique ? 'UNIQUE' : ''} INDEX IF NOT EXISTS ${\n index.name\n } ON ${tableName}(${index.columns.join(',')})`,\n ]) || [];\n\n return [\n [\n `CREATE TABLE IF NOT EXISTS ${tableName}(\n ${[...columnsWithDescriptors, ...primaryKeyConstraints, ...foreignKeysConstraints].join(\n ',\\n',\n )}\n );`,\n ],\n ...indexQueries,\n ];\n};\n"]}
1
+ {"version":3,"sources":["createCreateTableQuery.ts"],"names":["createCreateTableQuery","tableName","columnsWithDescriptors","Object","entries","tables","columns","map","entry","key","value","primaryKeyConstraints","primaryKey","length","join","foreignKeysConstraints","foreignKeys","k","column","referenceTable","referenceTableColumn","onDeleteAction","indexQueries","indexes","index","unique","name"],"mappings":";;;;;;;;;;;AAAA;;AAGO,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,SAAD,EAAyC;AAAA;;AAC7E,MAAMC,sBAAsB,GAAGC,MAAM,CAACC,OAAP,CAAeC,eAAOJ,SAAP,EAAkBK,OAAjC,EAA0CC,GAA1C,CAA8C,UAACC,KAAD,EAAW;AACtF,iDAAqBA,KAArB;AAAA,QAAOC,GAAP;AAAA,QAAYC,KAAZ;;AACA,WAAUD,GAAV,SAAiBC,KAAjB;AACD,GAH8B,CAA/B;AAKA,MAAMC,qBAAqB,GACzB,CAACN,eAAOJ,SAAP,EAAkBW,UAAlB,IAAgC,EAAjC,EAAqCC,MAArC,GAA8C,CAA9C,GACI,mBAAiB,CAACR,eAAOJ,SAAP,EAAkBW,UAAlB,IAAgC,EAAjC,EAAqCE,IAArC,CAA0C,IAA1C,CAAjB,OADJ,GAEI,EAHN;AAIA,MAAMC,sBAAsB,GAC1B,yCAAOd,SAAP,EAAkBe,WAAlB,2CAA+BT,GAA/B,CACE,UAACU,CAAD;AAAA,6BACkBA,CAAC,CAACC,MADpB,qBAC0CD,CAAC,CAACE,cAD5C,SAEIF,CAAC,CAACG,oBAFN,qBAGiBH,CAAC,CAACI,cAAF,IAAoB,WAHrC;AAAA,GADF,MAKK,EANP;AAQA,MAAMC,YAA+B,GACnC,yCAAOrB,SAAP,EAAkBsB,OAAlB,2CAA2BhB,GAA3B,CAA+B,UAACiB,KAAD;AAAA,WAAW,cAC9BA,KAAK,CAACC,MAAN,GAAe,QAAf,GAA0B,EADI,8BAEtCD,KAAK,CAACE,IAFgC,YAGjCzB,SAHiC,SAGpBuB,KAAK,CAAClB,OAAN,CAAcQ,IAAd,CAAmB,GAAnB,CAHoB,OAAX;AAAA,GAA/B,MAIM,EALR;AAOA,UACE,iCACgCb,SADhC,qBAEQ,8CAAIC,sBAAJ,GAA+BS,qBAA/B,sCAAyDI,sBAAzD,GAAiFD,IAAjF,CACA,KADA,CAFR,kBADF,6CAQKQ,YARL;AAUD,CAnCM","sourcesContent":["import { tables } from '../schema';\nimport type { PreparedQueries, Table } from '../types';\n\nexport const createCreateTableQuery = (tableName: Table): PreparedQueries[] => {\n const columnsWithDescriptors = Object.entries(tables[tableName].columns).map((entry) => {\n const [key, value] = entry;\n return `${key} ${value}`;\n });\n\n const primaryKeyConstraints =\n (tables[tableName].primaryKey || []).length > 0\n ? [`PRIMARY KEY (${(tables[tableName].primaryKey || []).join(', ')})`]\n : [];\n const foreignKeysConstraints =\n tables[tableName].foreignKeys?.map(\n (k) =>\n `FOREIGN KEY (${k.column}) REFERENCES ${k.referenceTable}(${\n k.referenceTableColumn\n }) ON DELETE ${k.onDeleteAction || 'NO ACTION'}`,\n ) || [];\n\n const indexQueries: PreparedQueries[] =\n tables[tableName].indexes?.map((index) => [\n `CREATE ${index.unique ? 'UNIQUE' : ''} INDEX IF NOT EXISTS ${\n index.name\n } ON ${tableName}(${index.columns.join(',')})`,\n ]) || [];\n\n return [\n [\n `CREATE TABLE IF NOT EXISTS ${tableName}(\n ${[...columnsWithDescriptors, ...primaryKeyConstraints, ...foreignKeysConstraints].join(\n ',\\n',\n )}\n );`,\n ],\n ...indexQueries,\n ];\n};\n"]}
@@ -7,11 +7,14 @@ exports.createSelectQuery = void 0;
7
7
 
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
 
10
+ var _appendOrderByClause3 = require("./appendOrderByClause");
11
+
10
12
  var _appendWhereCluase = require("./appendWhereCluase");
11
13
 
12
14
  var createSelectQuery = function createSelectQuery(table) {
13
15
  var fields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['*'];
14
16
  var whereCondition = arguments.length > 2 ? arguments[2] : undefined;
17
+ var orderBy = arguments.length > 3 ? arguments[3] : undefined;
15
18
  var selectQuery = "SELECT " + fields.join(', ') + " FROM " + table;
16
19
 
17
20
  var _appendWhereClause = (0, _appendWhereCluase.appendWhereClause)(selectQuery, whereCondition),
@@ -19,7 +22,11 @@ var createSelectQuery = function createSelectQuery(table) {
19
22
  selectQueryWithWhere = _appendWhereClause2[0],
20
23
  whereParams = _appendWhereClause2[1];
21
24
 
22
- return ["" + selectQueryWithWhere, whereParams || []];
25
+ var _appendOrderByClause = (0, _appendOrderByClause3.appendOrderByClause)(selectQueryWithWhere, orderBy),
26
+ _appendOrderByClause2 = (0, _slicedToArray2["default"])(_appendOrderByClause, 1),
27
+ selectQueryWithOrderBy = _appendOrderByClause2[0];
28
+
29
+ return ["" + selectQueryWithOrderBy, whereParams || []];
23
30
  };
24
31
 
25
32
  exports.createSelectQuery = createSelectQuery;
@@ -1 +1 @@
1
- {"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","selectQuery","join","selectQueryWithWhere","whereParams"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAIX;AAAA,MAFpBC,MAEoB,uEAF8B,CAAC,GAAD,CAE9B;AAAA,MADpBC,cACoB;AACpB,MAAMC,WAAW,eAAaF,MAAM,CAACG,IAAP,CAAY,IAAZ,CAAb,cAAuCJ,KAAxD;;AACA,2BAA4C,0CAAkBG,WAAlB,EAA+BD,cAA/B,CAA5C;AAAA;AAAA,MAAOG,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,EAA4BC,WAAW,IAAI,EAA3C,CAAP;AACD,CATM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;\n const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);\n\n return [`${selectQueryWithWhere}`, whereParams || []];\n};\n"]}
1
+ {"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","orderBy","selectQuery","join","selectQueryWithWhere","whereParams","selectQueryWithOrderBy"],"mappings":";;;;;;;;;AAAA;;AACA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAKX;AAAA,MAHpBC,MAGoB,uEAH8B,CAAC,GAAD,CAG9B;AAAA,MAFpBC,cAEoB;AAAA,MADpBC,OACoB;AACpB,MAAMC,WAAW,eAAaH,MAAM,CAACI,IAAP,CAAY,IAAZ,CAAb,cAAuCL,KAAxD;;AACA,2BAA4C,0CAAkBI,WAAlB,EAA+BF,cAA/B,CAA5C;AAAA;AAAA,MAAOI,oBAAP;AAAA,MAA6BC,WAA7B;;AACA,6BAAiC,+CAAoBD,oBAApB,EAA0CH,OAA1C,CAAjC;AAAA;AAAA,MAAOK,sBAAP;;AAEA,SAAO,MAAIA,sBAAJ,EAA8BD,WAAW,IAAI,EAA7C,CAAP;AACD,CAXM","sourcesContent":["import { appendOrderByClause } from './appendOrderByClause';\nimport { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n orderBy?: Partial<{ [k in TableColumnNames<T>]: 1 | -1 }>,\n): PreparedQueries => {\n const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;\n const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);\n const [selectQueryWithOrderBy] = appendOrderByClause(selectQueryWithWhere, orderBy);\n\n return [`${selectQueryWithOrderBy}`, whereParams || []];\n};\n"]}
@@ -15,14 +15,14 @@ var createUpdateQuery = function createUpdateQuery(table, set, whereCondition) {
15
15
  var fields = Object.keys(set).map(function (key) {
16
16
  return key + " = ?";
17
17
  });
18
- var updateQuery = "UPDATE " + table + " SET " + fields.join(',');
18
+ var updateQuery = "UPDATE OR IGNORE " + table + " SET " + fields.join(',');
19
19
 
20
20
  var _appendWhereClause = (0, _appendWhereCluase.appendWhereClause)(updateQuery, whereCondition),
21
21
  _appendWhereClause2 = (0, _slicedToArray2["default"])(_appendWhereClause, 2),
22
22
  updateQueryWithWhere = _appendWhereClause2[0],
23
23
  whereParams = _appendWhereClause2[1];
24
24
 
25
- return [updateQueryWithWhere, [].concat((0, _toConsumableArray2["default"])(Object.values(set)), (0, _toConsumableArray2["default"])(whereParams || []))];
25
+ return ["" + updateQueryWithWhere, [].concat((0, _toConsumableArray2["default"])(Object.values(set)), (0, _toConsumableArray2["default"])(whereParams || []))];
26
26
  };
27
27
 
28
28
  exports.createUpdateQuery = createUpdateQuery;
@@ -1 +1 @@
1
- {"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AACA,MAAMC,WAAW,eAAaR,KAAb,aAA0BG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAA3C;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,CAACD,oBAAD,gDAA2BN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAA3B,uCAAmDU,WAAW,IAAI,EAAlE,GAAP;AACD,CAXM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<TableRow<T>>,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const fields = Object.keys(set).map((key) => `${key} = ?`);\n const updateQuery = `UPDATE ${table} SET ${fields.join(',')}`;\n\n const [updateQueryWithWhere, whereParams] = appendWhereClause(updateQuery, whereCondition);\n\n return [updateQueryWithWhere, [...Object.values(set), ...(whereParams || [])]];\n};\n"]}
1
+ {"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AAEA,MAAMC,WAAW,yBAAuBR,KAAvB,aAAoCG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAArD;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,gDAAgCN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAAhC,uCAAwDU,WAAW,IAAI,EAAvE,GAAP;AACD,CAZM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<TableRow<T>>,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const fields = Object.keys(set).map((key) => `${key} = ?`);\n\n const updateQuery = `UPDATE OR IGNORE ${table} SET ${fields.join(',')}`;\n\n const [updateQueryWithWhere, whereParams] = appendWhereClause(updateQuery, whereCondition);\n\n return [`${updateQueryWithWhere}`, [...Object.values(set), ...(whereParams || [])]];\n};\n"]}
@@ -16,7 +16,7 @@ var createUpsertQuery = function createUpsertQuery(table, row, conflictCheckKeys
16
16
 
17
17
  var fields = Object.keys(filteredRow);
18
18
  var questionMarks = Array(Object.keys(fields).length).fill('?').join(',');
19
- var conflictKeys = conflictCheckKeys || _schema.tables[table].primaryKey;
19
+ var conflictKeys = conflictCheckKeys || _schema.tables[table].primaryKey || [];
20
20
  var conflictMatchersWithoutPK = fields.filter(function (f) {
21
21
  return !conflictKeys.includes(f);
22
22
  }).map(function (f) {
@@ -1 +1 @@
1
- {"version":3,"sources":["createUpsertQuery.ts"],"names":["createUpsertQuery","table","row","conflictCheckKeys","filteredRow","key","undefined","fields","Object","keys","questionMarks","Array","length","fill","join","conflictKeys","tables","primaryKey","conflictMatchersWithoutPK","filter","f","includes","map","conflictConstraint","values"],"mappings":";;;;;AAAA;;AAWO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,iBAH+B,EAIX;AACpB,MAAMC,WAAuB,GAAG,EAAhC;;AAQA,OAAK,IAAMC,GAAX,IAAkBH,GAAlB,EAAuB;AACrB,QAAIA,GAAG,CAACG,GAAD,CAAH,KAAaC,SAAjB,EAA4B;AAC1BF,MAAAA,WAAW,CAACC,GAAD,CAAX,GAAmBH,GAAG,CAACG,GAAD,CAAtB;AACD;AACF;;AACD,MAAME,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYL,WAAZ,CAAf;AAEA,MAAMM,aAAa,GAAGC,KAAK,CAACH,MAAM,CAACC,IAAP,CAAYF,MAAZ,EAAoBK,MAArB,CAAL,CAAkCC,IAAlC,CAAuC,GAAvC,EAA4CC,IAA5C,CAAiD,GAAjD,CAAtB;AACA,MAAMC,YAAY,GAAGZ,iBAAiB,IAAIa,eAAOf,KAAP,EAAcgB,UAAxD;AACA,MAAMC,yBAAmC,GAAIX,MAAD,CACzCY,MADyC,CAClC,UAACC,CAAD;AAAA,WAAO,CAAEL,YAAD,CAA2BM,QAA3B,CAAoCD,CAApC,CAAR;AAAA,GADkC,EAEzCE,GAFyC,CAErC,UAACF,CAAD;AAAA,WAAUA,CAAV,kBAAwBA,CAAxB;AAAA,GAFqC,CAA5C;AAIA,MAAMG,kBAAkB,GACtBR,YAAY,CAACH,MAAb,GAAsB,CAAtB,oBACmBG,YAAY,CAACD,IAAb,CAAkB,GAAlB,CADnB,2BAEAI,yBAAyB,CAACJ,IAA1B,CAA+B,GAA/B,CAFA,GAGI,EAJN;AAMA,SAAO,kBACUb,KADV,UACoBM,MAAM,CAACO,IAAP,CAAY,GAAZ,CADpB,kBACiDJ,aADjD,UACmEa,kBADnE,EAELf,MAAM,CAACgB,MAAP,CAAcpB,WAAd,CAFK,CAAP;AAID,CApCM","sourcesContent":["import { Schema, tables } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableRow } from '../types';\n\n/**\n * Creates a simple upsert query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} row Table row to insert or update.\n * @param {Array} conflictCheckKeys Custom list of columns to check conflicts for - https://www.sqlite.org/lang_UPSERT.html. By default conflicts are checked on primary keys.\n * @returns {string} Final upsert query for sqlite\n */\nexport const createUpsertQuery = <T extends keyof Schema>(\n table: T,\n row: Partial<TableRow<T>>,\n conflictCheckKeys?: Array<TableColumnNames<T>>,\n): PreparedQueries => {\n const filteredRow: typeof row = {};\n\n // In case of \"DO UPDATE SET\", we only want to update the properties which\n // are provided, and not set undefined properties in database.\n // E.g., channel date such as `own_capabilities` is only available in response of client.queryChannels or channel.query.\n // But its not available in `event.channel`. And our mapper functions such as mapChannelToStorable will set fields which are not available as undefined.\n // So when you execute upsert query for storable value of `event.channel` in `channels` table, it will\n // unset ownCapabilities field for that channel in `channels` table.\n for (const key in row) {\n if (row[key] !== undefined) {\n filteredRow[key] = row[key];\n }\n }\n const fields = Object.keys(filteredRow) as (keyof typeof row)[];\n\n const questionMarks = Array(Object.keys(fields).length).fill('?').join(',');\n const conflictKeys = conflictCheckKeys || tables[table].primaryKey;\n const conflictMatchersWithoutPK: string[] = (fields as string[])\n .filter((f) => !(conflictKeys as string[]).includes(f))\n .map((f) => `${f}=excluded.${f}`);\n\n const conflictConstraint =\n conflictKeys.length > 0\n ? `ON CONFLICT(${conflictKeys.join(',')}) DO UPDATE SET\n ${conflictMatchersWithoutPK.join(',')}`\n : '';\n\n return [\n `INSERT INTO ${table} (${fields.join(',')}) VALUES (${questionMarks}) ${conflictConstraint}`,\n Object.values(filteredRow),\n ];\n};\n"]}
1
+ {"version":3,"sources":["createUpsertQuery.ts"],"names":["createUpsertQuery","table","row","conflictCheckKeys","filteredRow","key","undefined","fields","Object","keys","questionMarks","Array","length","fill","join","conflictKeys","tables","primaryKey","conflictMatchersWithoutPK","filter","f","includes","map","conflictConstraint","values"],"mappings":";;;;;AAAA;;AAWO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,iBAH+B,EAIX;AACpB,MAAMC,WAAuB,GAAG,EAAhC;;AAQA,OAAK,IAAMC,GAAX,IAAkBH,GAAlB,EAAuB;AACrB,QAAIA,GAAG,CAACG,GAAD,CAAH,KAAaC,SAAjB,EAA4B;AAC1BF,MAAAA,WAAW,CAACC,GAAD,CAAX,GAAmBH,GAAG,CAACG,GAAD,CAAtB;AACD;AACF;;AACD,MAAME,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYL,WAAZ,CAAf;AAEA,MAAMM,aAAa,GAAGC,KAAK,CAACH,MAAM,CAACC,IAAP,CAAYF,MAAZ,EAAoBK,MAArB,CAAL,CAAkCC,IAAlC,CAAuC,GAAvC,EAA4CC,IAA5C,CAAiD,GAAjD,CAAtB;AACA,MAAMC,YAAY,GAAGZ,iBAAiB,IAAIa,eAAOf,KAAP,EAAcgB,UAAnC,IAAiD,EAAtE;AACA,MAAMC,yBAAmC,GAAIX,MAAD,CACzCY,MADyC,CAClC,UAACC,CAAD;AAAA,WAAO,CAAEL,YAAD,CAA2BM,QAA3B,CAAoCD,CAApC,CAAR;AAAA,GADkC,EAEzCE,GAFyC,CAErC,UAACF,CAAD;AAAA,WAAUA,CAAV,kBAAwBA,CAAxB;AAAA,GAFqC,CAA5C;AAIA,MAAMG,kBAAkB,GACtBR,YAAY,CAACH,MAAb,GAAsB,CAAtB,oBACmBG,YAAY,CAACD,IAAb,CAAkB,GAAlB,CADnB,2BAEAI,yBAAyB,CAACJ,IAA1B,CAA+B,GAA/B,CAFA,GAGI,EAJN;AAMA,SAAO,kBACUb,KADV,UACoBM,MAAM,CAACO,IAAP,CAAY,GAAZ,CADpB,kBACiDJ,aADjD,UACmEa,kBADnE,EAELf,MAAM,CAACgB,MAAP,CAAcpB,WAAd,CAFK,CAAP;AAID,CApCM","sourcesContent":["import { Schema, tables } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableRow } from '../types';\n\n/**\n * Creates a simple upsert query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} row Table row to insert or update.\n * @param {Array} conflictCheckKeys Custom list of columns to check conflicts for - https://www.sqlite.org/lang_UPSERT.html. By default conflicts are checked on primary keys.\n * @returns {string} Final upsert query for sqlite\n */\nexport const createUpsertQuery = <T extends keyof Schema>(\n table: T,\n row: Partial<TableRow<T>>,\n conflictCheckKeys?: Array<TableColumnNames<T>>,\n): PreparedQueries => {\n const filteredRow: typeof row = {};\n\n // In case of \"DO UPDATE SET\", we only want to update the properties which\n // are provided, and not set undefined properties in database.\n // E.g., channel date such as `own_capabilities` is only available in response of client.queryChannels or channel.query.\n // But its not available in `event.channel`. And our mapper functions such as mapChannelToStorable will set fields which are not available as undefined.\n // So when you execute upsert query for storable value of `event.channel` in `channels` table, it will\n // unset ownCapabilities field for that channel in `channels` table.\n for (const key in row) {\n if (row[key] !== undefined) {\n filteredRow[key] = row[key];\n }\n }\n const fields = Object.keys(filteredRow) as (keyof typeof row)[];\n\n const questionMarks = Array(Object.keys(fields).length).fill('?').join(',');\n const conflictKeys = conflictCheckKeys || tables[table].primaryKey || [];\n const conflictMatchersWithoutPK: string[] = (fields as string[])\n .filter((f) => !(conflictKeys as string[]).includes(f))\n .map((f) => `${f}=excluded.${f}`);\n\n const conflictConstraint =\n conflictKeys.length > 0\n ? `ON CONFLICT(${conflictKeys.join(',')}) DO UPDATE SET\n ${conflictMatchersWithoutPK.join(',')}`\n : '';\n\n return [\n `INSERT INTO ${table} (${fields.join(',')}) VALUES (${questionMarks}) ${conflictConstraint}`,\n Object.values(filteredRow),\n ];\n};\n"]}