@social.dev/server-sdk 0.0.1-alpha.8 → 0.0.1-alpha.80

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 (345) hide show
  1. package/README.md +696 -40
  2. package/dist/__mocks__/kafka.mock.d.ts +11 -0
  3. package/dist/__mocks__/kafka.mock.js +15 -0
  4. package/dist/__mocks__/kafka.mock.js.map +1 -0
  5. package/dist/app.module.d.ts +4 -4
  6. package/dist/app.module.js +17 -7
  7. package/dist/app.module.js.map +1 -1
  8. package/dist/auth/auth.controller.d.ts +7 -1
  9. package/dist/auth/auth.controller.js +28 -3
  10. package/dist/auth/auth.controller.js.map +1 -1
  11. package/dist/auth/auth.middleware.d.ts +3 -5
  12. package/dist/auth/auth.middleware.js +7 -15
  13. package/dist/auth/auth.middleware.js.map +1 -1
  14. package/dist/auth/auth.module.js +4 -1
  15. package/dist/auth/auth.module.js.map +1 -1
  16. package/dist/auth/auth.service.d.ts +9 -1
  17. package/dist/auth/auth.service.js +34 -2
  18. package/dist/auth/auth.service.js.map +1 -1
  19. package/dist/auth/constants.js +2 -1
  20. package/dist/auth/constants.js.map +1 -1
  21. package/dist/auth/dto/login-success.dto.d.ts +1 -1
  22. package/dist/auth/dto/login-success.dto.js +6 -3
  23. package/dist/auth/dto/login-success.dto.js.map +1 -1
  24. package/dist/auth/dto/register-success.dto.d.ts +3 -0
  25. package/dist/auth/dto/register-success.dto.js +12 -0
  26. package/dist/auth/dto/register-success.dto.js.map +1 -0
  27. package/dist/auth/dto/register.dto.d.ts +6 -0
  28. package/dist/auth/dto/register.dto.js +45 -0
  29. package/dist/auth/dto/register.dto.js.map +1 -0
  30. package/dist/auth/oidc/dto/requests.d.ts +6 -0
  31. package/dist/auth/oidc/dto/requests.js +47 -0
  32. package/dist/auth/oidc/dto/requests.js.map +1 -0
  33. package/dist/auth/oidc/dto/responses.js +1 -1
  34. package/dist/auth/oidc/oidc.controller.d.ts +7 -2
  35. package/dist/auth/oidc/oidc.controller.js +31 -17
  36. package/dist/auth/oidc/oidc.controller.js.map +1 -1
  37. package/dist/auth/oidc/oidc.service.d.ts +9 -4
  38. package/dist/auth/oidc/oidc.service.js +64 -38
  39. package/dist/auth/oidc/oidc.service.js.map +1 -1
  40. package/dist/auth/session/session.controller.js +8 -3
  41. package/dist/auth/session/session.controller.js.map +1 -1
  42. package/dist/auth/session/session.service.d.ts +2 -2
  43. package/dist/auth/session/session.service.js +14 -7
  44. package/dist/auth/session/session.service.js.map +1 -1
  45. package/dist/bootstrap.d.ts +2 -1
  46. package/dist/bootstrap.js +7 -1
  47. package/dist/bootstrap.js.map +1 -1
  48. package/dist/chat/chat.acl.d.ts +3 -0
  49. package/dist/chat/chat.acl.js +50 -0
  50. package/dist/chat/chat.acl.js.map +1 -0
  51. package/dist/chat/chat.controller.d.ts +15 -6
  52. package/dist/chat/chat.controller.js +153 -14
  53. package/dist/chat/chat.controller.js.map +1 -1
  54. package/dist/chat/chat.module.d.ts +3 -0
  55. package/dist/chat/chat.module.js +30 -4
  56. package/dist/chat/chat.module.js.map +1 -1
  57. package/dist/chat/chat.service.d.ts +63 -12
  58. package/dist/chat/chat.service.js +468 -36
  59. package/dist/chat/chat.service.js.map +1 -1
  60. package/dist/chat/dto/add-reaction.dto.d.ts +5 -0
  61. package/dist/chat/dto/add-reaction.dto.js +42 -0
  62. package/dist/chat/dto/add-reaction.dto.js.map +1 -0
  63. package/dist/chat/dto/create-message.dto.d.ts +4 -1
  64. package/dist/chat/dto/create-message.dto.js +23 -1
  65. package/dist/chat/dto/create-message.dto.js.map +1 -1
  66. package/dist/chat/dto/edit-message.dto.d.ts +5 -0
  67. package/dist/chat/dto/edit-message.dto.js +31 -0
  68. package/dist/chat/dto/edit-message.dto.js.map +1 -0
  69. package/dist/chat/dto/responses.dto.d.ts +27 -5
  70. package/dist/chat/dto/responses.dto.js +177 -18
  71. package/dist/chat/dto/responses.dto.js.map +1 -1
  72. package/dist/chat/dto/update-cursor.dto.d.ts +5 -0
  73. package/dist/chat/dto/update-cursor.dto.js +36 -0
  74. package/dist/chat/dto/update-cursor.dto.js.map +1 -0
  75. package/dist/chat/entities/conversation-member.entity.js +1 -1
  76. package/dist/chat/entities/conversation-member.entity.js.map +1 -1
  77. package/dist/chat/entities/conversation.entity.d.ts +4 -0
  78. package/dist/chat/entities/conversation.entity.js +13 -1
  79. package/dist/chat/entities/conversation.entity.js.map +1 -1
  80. package/dist/chat/entities/message.entity.d.ts +8 -0
  81. package/dist/chat/entities/message.entity.js +32 -2
  82. package/dist/chat/entities/message.entity.js.map +1 -1
  83. package/dist/chat/entities/reaction.entity.d.ts +10 -0
  84. package/dist/chat/entities/reaction.entity.js +62 -0
  85. package/dist/chat/entities/reaction.entity.js.map +1 -0
  86. package/dist/chat/entities/read-cursor.entity.d.ts +10 -0
  87. package/dist/chat/entities/read-cursor.entity.js +64 -0
  88. package/dist/chat/entities/read-cursor.entity.js.map +1 -0
  89. package/dist/chat/enums/conversation-type.enum.d.ts +2 -1
  90. package/dist/chat/enums/conversation-type.enum.js +1 -0
  91. package/dist/chat/enums/conversation-type.enum.js.map +1 -1
  92. package/dist/common/decorators/api-paginated-response.d.ts +1 -1
  93. package/dist/common/decorators/api-paginated-response.js +2 -2
  94. package/dist/common/decorators/api-paginated-response.js.map +1 -1
  95. package/dist/common/dto/paginated-response.dto.d.ts +2 -0
  96. package/dist/common/dto/paginated-response.dto.js +14 -3
  97. package/dist/common/dto/paginated-response.dto.js.map +1 -1
  98. package/dist/common/injection-tokens.d.ts +2 -0
  99. package/dist/common/injection-tokens.js +3 -1
  100. package/dist/common/injection-tokens.js.map +1 -1
  101. package/dist/common/utils/cursor.d.ts +2 -0
  102. package/dist/common/utils/cursor.js +12 -0
  103. package/dist/common/utils/cursor.js.map +1 -0
  104. package/dist/community/avatar/avatar.controller.d.ts +11 -0
  105. package/dist/community/avatar/avatar.controller.js +90 -0
  106. package/dist/community/avatar/avatar.controller.js.map +1 -0
  107. package/dist/community/avatar/avatar.service.d.ts +13 -0
  108. package/dist/community/avatar/avatar.service.js +78 -0
  109. package/dist/community/avatar/avatar.service.js.map +1 -0
  110. package/dist/community/community.acl.d.ts +6 -3
  111. package/dist/community/community.acl.js +58 -35
  112. package/dist/community/community.acl.js.map +1 -1
  113. package/dist/community/community.controller.d.ts +8 -5
  114. package/dist/community/community.controller.js +102 -17
  115. package/dist/community/community.controller.js.map +1 -1
  116. package/dist/community/community.module.d.ts +3 -0
  117. package/dist/community/community.module.js +17 -7
  118. package/dist/community/community.module.js.map +1 -1
  119. package/dist/community/community.service.d.ts +26 -6
  120. package/dist/community/community.service.js +152 -23
  121. package/dist/community/community.service.js.map +1 -1
  122. package/dist/community/dto/community-response.dto.d.ts +5 -1
  123. package/dist/community/dto/community-response.dto.js +30 -1
  124. package/dist/community/dto/community-response.dto.js.map +1 -1
  125. package/dist/community/dto/create-community.dto.d.ts +2 -0
  126. package/dist/community/dto/create-community.dto.js +14 -2
  127. package/dist/community/dto/create-community.dto.js.map +1 -1
  128. package/dist/community/dto/update-community.dto.d.ts +2 -0
  129. package/dist/community/dto/update-community.dto.js +15 -1
  130. package/dist/community/dto/update-community.dto.js.map +1 -1
  131. package/dist/community/entities/community-member.entity.js +1 -0
  132. package/dist/community/entities/community-member.entity.js.map +1 -1
  133. package/dist/community/entities/community.entity.d.ts +2 -0
  134. package/dist/community/entities/community.entity.js +11 -1
  135. package/dist/community/entities/community.entity.js.map +1 -1
  136. package/dist/configs/configs.service.d.ts +12 -2
  137. package/dist/configs/configs.service.js.map +1 -1
  138. package/dist/core/context/context.d.ts +3 -0
  139. package/dist/core/context/context.js +15 -0
  140. package/dist/core/context/context.js.map +1 -1
  141. package/dist/core/context/context.store.d.ts +2 -0
  142. package/dist/core/core.module.js +2 -1
  143. package/dist/core/core.module.js.map +1 -1
  144. package/dist/core/event-stream/event-stream-processor.interface.d.ts +8 -0
  145. package/dist/core/event-stream/event-stream-processor.interface.js +3 -0
  146. package/dist/core/event-stream/event-stream-processor.interface.js.map +1 -0
  147. package/dist/core/event-stream/event-stream-processor.service.d.ts +13 -0
  148. package/dist/core/event-stream/event-stream-processor.service.js +60 -0
  149. package/dist/core/event-stream/event-stream-processor.service.js.map +1 -0
  150. package/dist/core/event-stream/event-stream.module.d.ts +11 -0
  151. package/dist/core/event-stream/event-stream.module.js +49 -0
  152. package/dist/core/event-stream/event-stream.module.js.map +1 -0
  153. package/dist/core/event-stream/event-stream.service.d.ts +18 -0
  154. package/dist/core/event-stream/event-stream.service.js +107 -0
  155. package/dist/core/event-stream/event-stream.service.js.map +1 -0
  156. package/dist/core/event-stream/types.d.ts +3 -0
  157. package/dist/core/event-stream/types.js +3 -0
  158. package/dist/core/event-stream/types.js.map +1 -0
  159. package/dist/core/hook/hook.module.d.ts +4 -0
  160. package/dist/core/hook/hook.module.js +30 -0
  161. package/dist/core/hook/hook.module.js.map +1 -0
  162. package/dist/core/hook/hook.service.d.ts +7 -0
  163. package/dist/core/{plugin/plugin-hook.service.js → hook/hook.service.js} +10 -10
  164. package/dist/core/hook/hook.service.js.map +1 -0
  165. package/dist/core/plugin/plugin.module.js +5 -6
  166. package/dist/core/plugin/plugin.module.js.map +1 -1
  167. package/dist/core/websocket/gateway.service.d.ts +24 -0
  168. package/dist/core/websocket/gateway.service.js +150 -0
  169. package/dist/core/websocket/gateway.service.js.map +1 -0
  170. package/dist/core/websocket/websocket.module.d.ts +2 -0
  171. package/dist/core/websocket/websocket.module.js +24 -0
  172. package/dist/core/websocket/websocket.module.js.map +1 -0
  173. package/dist/db.js +2 -1
  174. package/dist/db.js.map +1 -1
  175. package/dist/file-storage/file-storage.service.d.ts +1 -1
  176. package/dist/file-storage/file-storage.service.js +6 -6
  177. package/dist/file-storage/file-storage.service.js.map +1 -1
  178. package/dist/file-storage/utils.d.ts +2 -0
  179. package/dist/file-storage/utils.js +9 -2
  180. package/dist/file-storage/utils.js.map +1 -1
  181. package/dist/index.d.ts +0 -1
  182. package/dist/index.js +1 -3
  183. package/dist/index.js.map +1 -1
  184. package/dist/manage-db.d.ts +1 -0
  185. package/dist/manage-db.js +10 -0
  186. package/dist/manage-db.js.map +1 -0
  187. package/dist/media/dto/media-response.dto.d.ts +2 -0
  188. package/dist/media/dto/media-response.dto.js +15 -2
  189. package/dist/media/dto/media-response.dto.js.map +1 -1
  190. package/dist/media/entities/audio.entity.d.ts +2 -2
  191. package/dist/media/entities/audio.entity.js +2 -2
  192. package/dist/media/entities/audio.entity.js.map +1 -1
  193. package/dist/media/entities/image.entity.d.ts +5 -0
  194. package/dist/media/entities/{post-media.entity.js → image.entity.js} +16 -12
  195. package/dist/media/entities/image.entity.js.map +1 -0
  196. package/dist/media/entities/media.entity.d.ts +6 -0
  197. package/dist/media/entities/media.entity.js +25 -2
  198. package/dist/media/entities/media.entity.js.map +1 -1
  199. package/dist/media/media.acl.d.ts +2 -4
  200. package/dist/media/media.acl.js +22 -1
  201. package/dist/media/media.acl.js.map +1 -1
  202. package/dist/media/media.controller.d.ts +2 -0
  203. package/dist/media/media.controller.js +58 -0
  204. package/dist/media/media.controller.js.map +1 -1
  205. package/dist/media/media.module.js +2 -1
  206. package/dist/media/media.module.js.map +1 -1
  207. package/dist/media/media.service.d.ts +6 -3
  208. package/dist/media/media.service.js +118 -19
  209. package/dist/media/media.service.js.map +1 -1
  210. package/dist/migrations/1757061785934-PushNotificationTokens.d.ts +6 -0
  211. package/dist/migrations/1757061785934-PushNotificationTokens.js +20 -0
  212. package/dist/migrations/1757061785934-PushNotificationTokens.js.map +1 -0
  213. package/dist/migrations/1758623241397-AddUserTimestamps.d.ts +6 -0
  214. package/dist/migrations/1758623241397-AddUserTimestamps.js +16 -0
  215. package/dist/migrations/1758623241397-AddUserTimestamps.js.map +1 -0
  216. package/dist/migrations/1758704603161-UserFollows.d.ts +6 -0
  217. package/dist/migrations/1758704603161-UserFollows.js +18 -0
  218. package/dist/migrations/1758704603161-UserFollows.js.map +1 -0
  219. package/dist/migrations/1759757532702-UpdateCommunityCascades.d.ts +6 -0
  220. package/dist/migrations/1759757532702-UpdateCommunityCascades.js +20 -0
  221. package/dist/migrations/1759757532702-UpdateCommunityCascades.js.map +1 -0
  222. package/dist/migrations/1759766474808-UpdateCommunityTimestamps.d.ts +6 -0
  223. package/dist/migrations/1759766474808-UpdateCommunityTimestamps.js +16 -0
  224. package/dist/migrations/1759766474808-UpdateCommunityTimestamps.js.map +1 -0
  225. package/dist/migrations/1759919335188-CommunityChats.d.ts +6 -0
  226. package/dist/migrations/1759919335188-CommunityChats.js +28 -0
  227. package/dist/migrations/1759919335188-CommunityChats.js.map +1 -0
  228. package/dist/migrations/1760363804673-ChatVoiceNotes.d.ts +6 -0
  229. package/dist/migrations/1760363804673-ChatVoiceNotes.js +24 -0
  230. package/dist/migrations/1760363804673-ChatVoiceNotes.js.map +1 -0
  231. package/dist/migrations/1760444646328-ChatReadCursor.d.ts +6 -0
  232. package/dist/migrations/1760444646328-ChatReadCursor.js +18 -0
  233. package/dist/migrations/1760444646328-ChatReadCursor.js.map +1 -0
  234. package/dist/migrations/1761598291629-AddChatImages.d.ts +6 -0
  235. package/dist/migrations/1761598291629-AddChatImages.js +16 -0
  236. package/dist/migrations/1761598291629-AddChatImages.js.map +1 -0
  237. package/dist/migrations/1761648419807-ChatReactions.d.ts +6 -0
  238. package/dist/migrations/1761648419807-ChatReactions.js +18 -0
  239. package/dist/migrations/1761648419807-ChatReactions.js.map +1 -0
  240. package/dist/migrations/1762953835109-AddChatReplies.d.ts +6 -0
  241. package/dist/migrations/1762953835109-AddChatReplies.js +22 -0
  242. package/dist/migrations/1762953835109-AddChatReplies.js.map +1 -0
  243. package/dist/network/entities/network.entity.js +1 -3
  244. package/dist/network/entities/network.entity.js.map +1 -1
  245. package/dist/network/network.middleware.d.ts +3 -1
  246. package/dist/network/network.middleware.js +12 -4
  247. package/dist/network/network.middleware.js.map +1 -1
  248. package/dist/network/network.module.js +2 -1
  249. package/dist/network/network.module.js.map +1 -1
  250. package/dist/network/network.service.d.ts +4 -2
  251. package/dist/network/network.service.js +16 -6
  252. package/dist/network/network.service.js.map +1 -1
  253. package/dist/notification/dto/delete-push-token.dto.d.ts +3 -0
  254. package/dist/notification/dto/delete-push-token.dto.js +26 -0
  255. package/dist/notification/dto/delete-push-token.dto.js.map +1 -0
  256. package/dist/notification/dto/register-push-token.dto.d.ts +5 -0
  257. package/dist/notification/dto/register-push-token.dto.js +38 -0
  258. package/dist/notification/dto/register-push-token.dto.js.map +1 -0
  259. package/dist/notification/entities/push-token.entity.d.ts +11 -0
  260. package/dist/notification/entities/push-token.entity.js +60 -0
  261. package/dist/notification/entities/push-token.entity.js.map +1 -0
  262. package/dist/notification/enums/push-service.enum.d.ts +6 -0
  263. package/dist/notification/enums/push-service.enum.js +11 -0
  264. package/dist/notification/enums/push-service.enum.js.map +1 -0
  265. package/dist/notification/hook-listener.service.d.ts +13 -0
  266. package/dist/notification/hook-listener.service.js +58 -0
  267. package/dist/notification/hook-listener.service.js.map +1 -0
  268. package/dist/notification/notification.module.d.ts +2 -0
  269. package/dist/notification/notification.module.js +24 -0
  270. package/dist/notification/notification.module.js.map +1 -0
  271. package/dist/notification/push-notification.controller.d.ts +9 -0
  272. package/dist/notification/push-notification.controller.js +69 -0
  273. package/dist/notification/push-notification.controller.js.map +1 -0
  274. package/dist/notification/push-notification.module.d.ts +2 -0
  275. package/dist/notification/push-notification.module.js +27 -0
  276. package/dist/notification/push-notification.module.js.map +1 -0
  277. package/dist/notification/push-notification.service.d.ts +23 -0
  278. package/dist/notification/push-notification.service.js +89 -0
  279. package/dist/notification/push-notification.service.js.map +1 -0
  280. package/dist/post/entities/post.entity.js +3 -3
  281. package/dist/post/entities/post.entity.js.map +1 -1
  282. package/dist/post/post.controller.d.ts +3 -2
  283. package/dist/post/post.controller.js +28 -8
  284. package/dist/post/post.controller.js.map +1 -1
  285. package/dist/post/post.module.js +2 -0
  286. package/dist/post/post.module.js.map +1 -1
  287. package/dist/post/post.service.d.ts +7 -3
  288. package/dist/post/post.service.js +18 -8
  289. package/dist/post/post.service.js.map +1 -1
  290. package/dist/tsconfig.build.tsbuildinfo +1 -1
  291. package/dist/user/avatar/avatar.controller.d.ts +10 -0
  292. package/dist/user/avatar/avatar.controller.js +89 -0
  293. package/dist/user/avatar/avatar.controller.js.map +1 -0
  294. package/dist/user/avatar/avatar.service.d.ts +12 -0
  295. package/dist/user/avatar/avatar.service.js +72 -0
  296. package/dist/user/avatar/avatar.service.js.map +1 -0
  297. package/dist/user/constants.d.ts +1 -0
  298. package/dist/user/constants.js +5 -0
  299. package/dist/user/constants.js.map +1 -0
  300. package/dist/user/dto/update-profile.dto.d.ts +3 -0
  301. package/dist/user/dto/update-profile.dto.js +26 -0
  302. package/dist/user/dto/update-profile.dto.js.map +1 -0
  303. package/dist/user/dto/user-response.dto.d.ts +6 -0
  304. package/dist/user/dto/user-response.dto.js +37 -1
  305. package/dist/user/dto/user-response.dto.js.map +1 -1
  306. package/dist/user/dto/user.dto.d.ts +8 -0
  307. package/dist/user/dto/user.dto.js +21 -0
  308. package/dist/user/dto/user.dto.js.map +1 -0
  309. package/dist/user/entities/user.entity.d.ts +4 -0
  310. package/dist/user/entities/user.entity.js +19 -1
  311. package/dist/user/entities/user.entity.js.map +1 -1
  312. package/dist/user/follow/dto/follow-response.dto.d.ts +4 -0
  313. package/dist/user/follow/dto/follow-response.dto.js +38 -0
  314. package/dist/user/follow/dto/follow-response.dto.js.map +1 -0
  315. package/dist/user/follow/dto/follow.dto.d.ts +4 -0
  316. package/dist/user/follow/dto/follow.dto.js +26 -0
  317. package/dist/user/follow/dto/follow.dto.js.map +1 -0
  318. package/dist/user/follow/entities/follow.entity.d.ts +10 -0
  319. package/dist/user/follow/entities/follow.entity.js +60 -0
  320. package/dist/user/follow/entities/follow.entity.js.map +1 -0
  321. package/dist/user/follow/follow.controller.d.ts +9 -0
  322. package/dist/user/follow/follow.controller.js +56 -0
  323. package/dist/user/follow/follow.controller.js.map +1 -0
  324. package/dist/user/follow/follow.module.d.ts +2 -0
  325. package/dist/user/follow/follow.module.js +26 -0
  326. package/dist/user/follow/follow.module.js.map +1 -0
  327. package/dist/user/follow/follow.service.d.ts +11 -0
  328. package/dist/user/follow/follow.service.js +56 -0
  329. package/dist/user/follow/follow.service.js.map +1 -0
  330. package/dist/user/user.controller.d.ts +4 -1
  331. package/dist/user/user.controller.js +38 -4
  332. package/dist/user/user.controller.js.map +1 -1
  333. package/dist/user/user.module.js +12 -3
  334. package/dist/user/user.module.js.map +1 -1
  335. package/dist/user/user.service.d.ts +12 -5
  336. package/dist/user/user.service.js +49 -11
  337. package/dist/user/user.service.js.map +1 -1
  338. package/package.json +16 -5
  339. package/dist/core/plugin/plugin-hook.service.d.ts +0 -7
  340. package/dist/core/plugin/plugin-hook.service.js.map +0 -1
  341. package/dist/media/entities/post-media.entity.d.ts +0 -5
  342. package/dist/media/entities/post-media.entity.js.map +0 -1
  343. package/dist/user/dto/update-user.dto.d.ts +0 -5
  344. package/dist/user/dto/update-user.dto.js +0 -13
  345. package/dist/user/dto/update-user.dto.js.map +0 -1
@@ -20,26 +20,37 @@ const common_1 = require("@nestjs/common");
20
20
  const typeorm_1 = require("@nestjs/typeorm");
21
21
  const typeorm_2 = require("typeorm");
22
22
  const audio_entity_1 = require("./entities/audio.entity");
23
+ const image_entity_1 = require("./entities/image.entity");
23
24
  const file_storage_service_1 = require("../file-storage/file-storage.service");
24
25
  const node_fs_1 = __importDefault(require("node:fs"));
25
26
  const ffprobe_1 = require("../common/utils/ffprobe");
26
27
  const fs_1 = require("../common/utils/fs");
27
28
  const ffmpeg_1 = require("../common/utils/ffmpeg");
28
29
  const utils_1 = require("../file-storage/utils");
29
- const node_path_1 = __importDefault(require("node:path"));
30
30
  const context_1 = require("../core/context/context");
31
31
  const acl_factory_1 = require("../core/acl/acl.factory");
32
+ const sharp_1 = __importDefault(require("sharp"));
32
33
  let MediaService = class MediaService {
33
34
  audioRepository;
35
+ imageRepository;
34
36
  fileStorage;
35
37
  aclFactory;
36
- constructor(audioRepository, fileStorage, aclFactory) {
38
+ constructor(audioRepository, imageRepository, fileStorage, aclFactory) {
37
39
  this.audioRepository = audioRepository;
40
+ this.imageRepository = imageRepository;
38
41
  this.fileStorage = fileStorage;
39
42
  this.aclFactory = aclFactory;
40
43
  }
41
44
  async uploadAudioFile(file, owner) {
42
- this.fileStorage.putFile(file.buffer, 'test.webm', 'audio/webm');
45
+ const ownerDir = (0, utils_1.getUserDir)(owner) + 'audio';
46
+ const entity = this.audioRepository.create({
47
+ network: { id: context_1.Context.getNetwork().id },
48
+ owner: owner,
49
+ durationSecs: 0,
50
+ sizeBytes: 0,
51
+ });
52
+ const { id } = await this.audioRepository.save(entity);
53
+ await this.fileStorage.putFile(file.buffer, ownerDir + `/${id}/input.mp3`, 'audio/mp3');
43
54
  const input = (0, fs_1.tmpFile)() + '.webm';
44
55
  const output = (0, fs_1.tmpFile)() + '.mp3';
45
56
  try {
@@ -61,22 +72,18 @@ let MediaService = class MediaService {
61
72
  console.error(err);
62
73
  throw new common_1.InternalServerErrorException(500, 'Unable to convert the uploaded file');
63
74
  }
64
- const ownerDir = node_path_1.default.resolve((0, utils_1.getUserDir)(owner), 'audio');
65
- const entity = this.audioRepository.create({
66
- network: owner.network,
67
- owner: owner,
68
- durationSecs,
69
- sizeBytes,
70
- });
71
- const { id } = await this.audioRepository.save(entity);
72
75
  try {
73
- this.fileStorage.putFile(await node_fs_1.default.promises.readFile(output), ownerDir + `/${id}.mp3`, 'audio/mp3');
76
+ await this.fileStorage.putFile(await node_fs_1.default.promises.readFile(output), ownerDir + `/${id}/output.mp3`, 'audio/mp3');
74
77
  }
75
78
  catch (err) {
76
79
  console.error(err);
77
80
  throw new common_1.InternalServerErrorException(500, 'Unable to upload the converted file to the file storage service');
78
81
  }
79
- this.audioRepository.update(id, { pathname: ownerDir + `/${id}.mp3` });
82
+ await this.audioRepository.update(id, {
83
+ pathname: ownerDir + `/${id}/output.mp3`,
84
+ durationSecs,
85
+ sizeBytes,
86
+ });
80
87
  return { ...entity, id };
81
88
  }
82
89
  catch (err) {
@@ -87,6 +94,66 @@ let MediaService = class MediaService {
87
94
  await node_fs_1.default.promises.unlink(output);
88
95
  }
89
96
  }
97
+ async uploadImageFile(file, owner) {
98
+ const ownerDir = (0, utils_1.getUserDir)(owner) + 'images';
99
+ const entity = this.imageRepository.create({
100
+ network: { id: context_1.Context.getNetwork().id },
101
+ owner: owner,
102
+ sizeBytes: 0,
103
+ widthPx: 0,
104
+ heightPx: 0,
105
+ });
106
+ const input = (0, fs_1.tmpFile)();
107
+ const output = (0, fs_1.tmpFile)() + '.jpg';
108
+ try {
109
+ await node_fs_1.default.promises.writeFile(input, file.buffer);
110
+ let widthPx = 0;
111
+ let heightPx = 0;
112
+ let sizeBytes = file.size;
113
+ try {
114
+ const metadata = await (0, sharp_1.default)(input).rotate().metadata();
115
+ widthPx = metadata.width || 0;
116
+ heightPx = metadata.height || 0;
117
+ }
118
+ catch (err) {
119
+ console.error(err);
120
+ throw new common_1.InternalServerErrorException(500, 'Unable to get information about the uploaded file');
121
+ }
122
+ try {
123
+ await (0, sharp_1.default)(input)
124
+ .resize(2000, 2000, { fit: 'inside', withoutEnlargement: true })
125
+ .rotate()
126
+ .jpeg({ quality: 85 })
127
+ .toFile(output);
128
+ }
129
+ catch (err) {
130
+ console.error(err);
131
+ throw new common_1.InternalServerErrorException(500, 'Unable to process the uploaded file');
132
+ }
133
+ const { id } = await this.imageRepository.save(entity);
134
+ try {
135
+ await this.fileStorage.putFile(await node_fs_1.default.promises.readFile(output), ownerDir + `/${id}/image.jpg`, 'image/jpeg');
136
+ }
137
+ catch (err) {
138
+ console.error(err);
139
+ throw new common_1.InternalServerErrorException(500, 'Unable to upload the processed file to the file storage service');
140
+ }
141
+ await this.imageRepository.update(id, {
142
+ pathname: ownerDir + `/${id}/image.jpg`,
143
+ sizeBytes,
144
+ widthPx,
145
+ heightPx,
146
+ });
147
+ return { ...entity, id };
148
+ }
149
+ catch (err) {
150
+ throw err;
151
+ }
152
+ finally {
153
+ await node_fs_1.default.promises.unlink(input).catch(() => { });
154
+ await node_fs_1.default.promises.unlink(output).catch(() => { });
155
+ }
156
+ }
90
157
  downloadFile(media) {
91
158
  return this.fileStorage.getFile(media.pathname);
92
159
  }
@@ -101,17 +168,47 @@ let MediaService = class MediaService {
101
168
  async findOne(id, type) {
102
169
  switch (type) {
103
170
  case audio_entity_1.Audio:
104
- const audio = await this.audioRepository.findOneBy({
105
- id: id,
106
- network: { id: context_1.Context.getNetwork().id },
171
+ const audio = await this.audioRepository.findOne({
172
+ where: {
173
+ id: id,
174
+ network: { id: context_1.Context.getNetwork().id },
175
+ },
176
+ relations: [
177
+ 'chatMessage',
178
+ 'chatMessage.conversation',
179
+ 'chatMessage.conversation.members',
180
+ 'chatMessage.conversation.community',
181
+ ],
107
182
  });
108
- if (this.aclFactory
109
- .withUser(context_1.Context.getUser())
110
- .can(acl_factory_1.Action.Read, audio)) {
183
+ if (audio &&
184
+ this.aclFactory
185
+ .withUser(context_1.Context.getUser())
186
+ .can(acl_factory_1.Action.Read, audio)) {
111
187
  return audio;
112
188
  }
113
189
  break;
190
+ case image_entity_1.Image:
191
+ const image = await this.imageRepository.findOne({
192
+ where: {
193
+ id: id,
194
+ network: { id: context_1.Context.getNetwork().id },
195
+ },
196
+ relations: [
197
+ 'chatMessage',
198
+ 'chatMessage.conversation',
199
+ 'chatMessage.conversation.members',
200
+ 'chatMessage.conversation.community',
201
+ ],
202
+ });
203
+ if (image &&
204
+ this.aclFactory
205
+ .withUser(context_1.Context.getUser())
206
+ .can(acl_factory_1.Action.Read, image)) {
207
+ return image;
208
+ }
209
+ break;
114
210
  }
211
+ return null;
115
212
  }
116
213
  update(id) {
117
214
  return `This action updates a #${id} media`;
@@ -124,7 +221,9 @@ exports.MediaService = MediaService;
124
221
  exports.MediaService = MediaService = __decorate([
125
222
  (0, common_1.Injectable)(),
126
223
  __param(0, (0, typeorm_1.InjectRepository)(audio_entity_1.Audio)),
224
+ __param(1, (0, typeorm_1.InjectRepository)(image_entity_1.Image)),
127
225
  __metadata("design:paramtypes", [typeorm_2.Repository,
226
+ typeorm_2.Repository,
128
227
  file_storage_service_1.FileStorageService,
129
228
  acl_factory_1.AclFactory])
130
229
  ], MediaService);
@@ -1 +1 @@
1
- {"version":3,"file":"media.service.js","sourceRoot":"","sources":["../../src/media/media.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.service.js","sourceRoot":"","sources":["../../src/media/media.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class PushNotificationTokens1757061785934 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PushNotificationTokens1757061785934 = void 0;
4
+ class PushNotificationTokens1757061785934 {
5
+ name = 'PushNotificationTokens1757061785934';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`CREATE TYPE "public"."push_notification_token_service_enum" AS ENUM('EXPO', 'FCM', 'APNS')`);
8
+ await queryRunner.query(`CREATE TABLE "push_notification_token" ("service" "public"."push_notification_token_service_enum" NOT NULL, "token" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "networkId" integer NOT NULL, "userId" integer NOT NULL, CONSTRAINT "PK_0ea253e8437482d1858c6bdc4d0" PRIMARY KEY ("token"))`);
9
+ await queryRunner.query(`ALTER TABLE "push_notification_token" ADD CONSTRAINT "FK_93311d0f1b246e7d6aa7a35623f" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
10
+ await queryRunner.query(`ALTER TABLE "push_notification_token" ADD CONSTRAINT "FK_6ff0b307da861bb462b7f9843ce" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
11
+ }
12
+ async down(queryRunner) {
13
+ await queryRunner.query(`ALTER TABLE "push_notification_token" DROP CONSTRAINT "FK_6ff0b307da861bb462b7f9843ce"`);
14
+ await queryRunner.query(`ALTER TABLE "push_notification_token" DROP CONSTRAINT "FK_93311d0f1b246e7d6aa7a35623f"`);
15
+ await queryRunner.query(`DROP TABLE "push_notification_token"`);
16
+ await queryRunner.query(`DROP TYPE "public"."push_notification_token_service_enum"`);
17
+ }
18
+ }
19
+ exports.PushNotificationTokens1757061785934 = PushNotificationTokens1757061785934;
20
+ //# sourceMappingURL=1757061785934-PushNotificationTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1757061785934-PushNotificationTokens.js","sourceRoot":"","sources":["../../src/migrations/1757061785934-PushNotificationTokens.ts"],"names":[],"mappings":";;;AAEA,MAAa,mCAAmC;IAC9C,IAAI,GAAG,qCAAqC,CAAC;IAEtC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,4FAA4F,CAC7F,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,yWAAyW,CAC1W,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,kLAAkL,CACnL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,4KAA4K,CAC7K,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,wFAAwF,CACzF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,wFAAwF,CACzF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAChE,MAAM,WAAW,CAAC,KAAK,CACrB,2DAA2D,CAC5D,CAAC;IACJ,CAAC;CACF;AA9BD,kFA8BC"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class AddUserTimestamps1758623241397 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddUserTimestamps1758623241397 = void 0;
4
+ class AddUserTimestamps1758623241397 {
5
+ name = 'AddUserTimestamps1758623241397';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`ALTER TABLE "user" ADD "createdAt" TIMESTAMP NOT NULL DEFAULT now()`);
8
+ await queryRunner.query(`ALTER TABLE "user" ADD "updatedAt" TIMESTAMP NOT NULL DEFAULT now()`);
9
+ }
10
+ async down(queryRunner) {
11
+ await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "updatedAt"`);
12
+ await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "createdAt"`);
13
+ }
14
+ }
15
+ exports.AddUserTimestamps1758623241397 = AddUserTimestamps1758623241397;
16
+ //# sourceMappingURL=1758623241397-AddUserTimestamps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1758623241397-AddUserTimestamps.js","sourceRoot":"","sources":["../../src/migrations/1758623241397-AddUserTimestamps.ts"],"names":[],"mappings":";;;AAEA,MAAa,8BAA8B;IACzC,IAAI,GAAG,gCAAgC,CAAC;IAEjC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,qEAAqE,CACtE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,qEAAqE,CACtE,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACtE,MAAM,WAAW,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACxE,CAAC;CACF;AAhBD,wEAgBC"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class UserFollows1758704603161 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserFollows1758704603161 = void 0;
4
+ class UserFollows1758704603161 {
5
+ name = 'UserFollows1758704603161';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`CREATE TABLE "follow" ("userId" integer NOT NULL, "targetUserId" integer NOT NULL, "approved" boolean NOT NULL DEFAULT true, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_fcd3874488c0ff498c55880383f" PRIMARY KEY ("userId", "targetUserId"))`);
8
+ await queryRunner.query(`ALTER TABLE "follow" ADD CONSTRAINT "FK_af9f90ce5e8f66f845ebbcc6f15" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
9
+ await queryRunner.query(`ALTER TABLE "follow" ADD CONSTRAINT "FK_5ed78f6c3c3c2b51e98f6121691" FOREIGN KEY ("targetUserId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
10
+ }
11
+ async down(queryRunner) {
12
+ await queryRunner.query(`ALTER TABLE "follow" DROP CONSTRAINT "FK_5ed78f6c3c3c2b51e98f6121691"`);
13
+ await queryRunner.query(`ALTER TABLE "follow" DROP CONSTRAINT "FK_af9f90ce5e8f66f845ebbcc6f15"`);
14
+ await queryRunner.query(`DROP TABLE "follow"`);
15
+ }
16
+ }
17
+ exports.UserFollows1758704603161 = UserFollows1758704603161;
18
+ //# sourceMappingURL=1758704603161-UserFollows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1758704603161-UserFollows.js","sourceRoot":"","sources":["../../src/migrations/1758704603161-UserFollows.ts"],"names":[],"mappings":";;;AAEA,MAAa,wBAAwB;IACnC,IAAI,GAAG,0BAA0B,CAAC;IAE3B,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,8SAA8S,CAC/S,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,6JAA6J,CAC9J,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mKAAmK,CACpK,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,uEAAuE,CACxE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,uEAAuE,CACxE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjD,CAAC;CACF;AAxBD,4DAwBC"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class UpdateCommunityCascades1759757532702 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateCommunityCascades1759757532702 = void 0;
4
+ class UpdateCommunityCascades1759757532702 {
5
+ name = 'UpdateCommunityCascades1759757532702';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`ALTER TABLE "community_member" DROP CONSTRAINT "FK_2951a66589069ef105a6784b494"`);
8
+ await queryRunner.query(`ALTER TABLE "post" DROP CONSTRAINT "FK_eff802f635e95c8aef1998b4843"`);
9
+ await queryRunner.query(`ALTER TABLE "community_member" ADD CONSTRAINT "FK_2951a66589069ef105a6784b494" FOREIGN KEY ("communityId") REFERENCES "community"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
10
+ await queryRunner.query(`ALTER TABLE "post" ADD CONSTRAINT "FK_eff802f635e95c8aef1998b4843" FOREIGN KEY ("communityId") REFERENCES "community"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
11
+ }
12
+ async down(queryRunner) {
13
+ await queryRunner.query(`ALTER TABLE "post" DROP CONSTRAINT "FK_eff802f635e95c8aef1998b4843"`);
14
+ await queryRunner.query(`ALTER TABLE "community_member" DROP CONSTRAINT "FK_2951a66589069ef105a6784b494"`);
15
+ await queryRunner.query(`ALTER TABLE "post" ADD CONSTRAINT "FK_eff802f635e95c8aef1998b4843" FOREIGN KEY ("communityId") REFERENCES "community"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
16
+ await queryRunner.query(`ALTER TABLE "community_member" ADD CONSTRAINT "FK_2951a66589069ef105a6784b494" FOREIGN KEY ("communityId") REFERENCES "community"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
17
+ }
18
+ }
19
+ exports.UpdateCommunityCascades1759757532702 = UpdateCommunityCascades1759757532702;
20
+ //# sourceMappingURL=1759757532702-UpdateCommunityCascades.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1759757532702-UpdateCommunityCascades.js","sourceRoot":"","sources":["../../src/migrations/1759757532702-UpdateCommunityCascades.ts"],"names":[],"mappings":";;;AAEA,MAAa,oCAAoC;IAG/C,IAAI,GAAG,sCAAsC,CAAC;IAEvC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,iFAAiF,CAClF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,qEAAqE,CACtE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+KAA+K,CAChL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mKAAmK,CACpK,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,qEAAqE,CACtE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,iFAAiF,CAClF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,qKAAqK,CACtK,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,iLAAiL,CAClL,CAAC;IACJ,CAAC;CACF;AAlCD,oFAkCC"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class UpdateCommunityTimestamps1759766474808 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateCommunityTimestamps1759766474808 = void 0;
4
+ class UpdateCommunityTimestamps1759766474808 {
5
+ name = 'UpdateCommunityTimestamps1759766474808';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`ALTER TABLE "community" ADD "createdAt" TIMESTAMP NOT NULL DEFAULT now()`);
8
+ await queryRunner.query(`ALTER TABLE "community" ADD "updatedAt" TIMESTAMP NOT NULL DEFAULT now()`);
9
+ }
10
+ async down(queryRunner) {
11
+ await queryRunner.query(`ALTER TABLE "community" DROP COLUMN "updatedAt"`);
12
+ await queryRunner.query(`ALTER TABLE "community" DROP COLUMN "createdAt"`);
13
+ }
14
+ }
15
+ exports.UpdateCommunityTimestamps1759766474808 = UpdateCommunityTimestamps1759766474808;
16
+ //# sourceMappingURL=1759766474808-UpdateCommunityTimestamps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1759766474808-UpdateCommunityTimestamps.js","sourceRoot":"","sources":["../../src/migrations/1759766474808-UpdateCommunityTimestamps.ts"],"names":[],"mappings":";;;AAEA,MAAa,sCAAsC;IAGjD,IAAI,GAAG,wCAAwC,CAAC;IAEzC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,0EAA0E,CAC3E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC3E,MAAM,WAAW,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC7E,CAAC;CACF;AAlBD,wFAkBC"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class CommunityChats1759919335188 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommunityChats1759919335188 = void 0;
4
+ class CommunityChats1759919335188 {
5
+ name = 'CommunityChats1759919335188';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`ALTER TABLE "chat_conversation" ADD "communityId" integer`);
8
+ await queryRunner.query(`ALTER TYPE "public"."chat_conversation_type_enum" RENAME TO "chat_conversation_type_enum_old"`);
9
+ await queryRunner.query(`CREATE TYPE "public"."chat_conversation_type_enum" AS ENUM('ONE_ON_ONE', 'COMMUNITY')`);
10
+ await queryRunner.query(`ALTER TABLE "chat_conversation" ALTER COLUMN "type" DROP DEFAULT`);
11
+ await queryRunner.query(`ALTER TABLE "chat_conversation" ALTER COLUMN "type" TYPE "public"."chat_conversation_type_enum" USING "type"::"text"::"public"."chat_conversation_type_enum"`);
12
+ await queryRunner.query(`ALTER TABLE "chat_conversation" ALTER COLUMN "type" SET DEFAULT 'ONE_ON_ONE'`);
13
+ await queryRunner.query(`DROP TYPE "public"."chat_conversation_type_enum_old"`);
14
+ await queryRunner.query(`ALTER TABLE "chat_conversation" ADD CONSTRAINT "FK_6fa33056ebb6a63d576e0fc10c9" FOREIGN KEY ("communityId") REFERENCES "community"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
15
+ }
16
+ async down(queryRunner) {
17
+ await queryRunner.query(`ALTER TABLE "chat_conversation" DROP CONSTRAINT "FK_6fa33056ebb6a63d576e0fc10c9"`);
18
+ await queryRunner.query(`CREATE TYPE "public"."chat_conversation_type_enum_old" AS ENUM('ONE_ON_ONE')`);
19
+ await queryRunner.query(`ALTER TABLE "chat_conversation" ALTER COLUMN "type" DROP DEFAULT`);
20
+ await queryRunner.query(`ALTER TABLE "chat_conversation" ALTER COLUMN "type" TYPE "public"."chat_conversation_type_enum_old" USING "type"::"text"::"public"."chat_conversation_type_enum_old"`);
21
+ await queryRunner.query(`ALTER TABLE "chat_conversation" ALTER COLUMN "type" SET DEFAULT 'ONE_ON_ONE'`);
22
+ await queryRunner.query(`DROP TYPE "public"."chat_conversation_type_enum"`);
23
+ await queryRunner.query(`ALTER TYPE "public"."chat_conversation_type_enum_old" RENAME TO "chat_conversation_type_enum"`);
24
+ await queryRunner.query(`ALTER TABLE "chat_conversation" DROP COLUMN "communityId"`);
25
+ }
26
+ }
27
+ exports.CommunityChats1759919335188 = CommunityChats1759919335188;
28
+ //# sourceMappingURL=1759919335188-CommunityChats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1759919335188-CommunityChats.js","sourceRoot":"","sources":["../../src/migrations/1759919335188-CommunityChats.ts"],"names":[],"mappings":";;;AAEA,MAAa,2BAA2B;IACtC,IAAI,GAAG,6BAA6B,CAAC;IAE9B,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,2DAA2D,CAC5D,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+FAA+F,CAChG,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,uFAAuF,CACxF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,kEAAkE,CACnE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,8JAA8J,CAC/J,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,8EAA8E,CAC/E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,gLAAgL,CACjL,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,kFAAkF,CACnF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,8EAA8E,CAC/E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,kEAAkE,CACnE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sKAAsK,CACvK,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,8EAA8E,CAC/E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC5E,MAAM,WAAW,CAAC,KAAK,CACrB,+FAA+F,CAChG,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,2DAA2D,CAC5D,CAAC;IACJ,CAAC;CACF;AAtDD,kEAsDC"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class ChatVoiceNotes1760363804673 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatVoiceNotes1760363804673 = void 0;
4
+ class ChatVoiceNotes1760363804673 {
5
+ name = 'ChatVoiceNotes1760363804673';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`ALTER TABLE "media" ADD "createdAt" TIMESTAMP NOT NULL DEFAULT now()`);
8
+ await queryRunner.query(`ALTER TABLE "media" ADD "updatedAt" TIMESTAMP NOT NULL DEFAULT now()`);
9
+ await queryRunner.query(`ALTER TABLE "media" ADD "chatMessageId" integer`);
10
+ await queryRunner.query(`ALTER TABLE "media" ADD CONSTRAINT "UQ_6b5dfbf8fb61239998a67057687" UNIQUE ("chatMessageId")`);
11
+ await queryRunner.query(`ALTER TABLE "chat_message" ALTER COLUMN "text" DROP NOT NULL`);
12
+ await queryRunner.query(`ALTER TABLE "media" ADD CONSTRAINT "FK_6b5dfbf8fb61239998a67057687" FOREIGN KEY ("chatMessageId") REFERENCES "chat_message"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
13
+ }
14
+ async down(queryRunner) {
15
+ await queryRunner.query(`ALTER TABLE "media" DROP CONSTRAINT "FK_6b5dfbf8fb61239998a67057687"`);
16
+ await queryRunner.query(`ALTER TABLE "chat_message" ALTER COLUMN "text" SET NOT NULL`);
17
+ await queryRunner.query(`ALTER TABLE "media" DROP CONSTRAINT "UQ_6b5dfbf8fb61239998a67057687"`);
18
+ await queryRunner.query(`ALTER TABLE "media" DROP COLUMN "chatMessageId"`);
19
+ await queryRunner.query(`ALTER TABLE "media" DROP COLUMN "updatedAt"`);
20
+ await queryRunner.query(`ALTER TABLE "media" DROP COLUMN "createdAt"`);
21
+ }
22
+ }
23
+ exports.ChatVoiceNotes1760363804673 = ChatVoiceNotes1760363804673;
24
+ //# sourceMappingURL=1760363804673-ChatVoiceNotes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1760363804673-ChatVoiceNotes.js","sourceRoot":"","sources":["../../src/migrations/1760363804673-ChatVoiceNotes.ts"],"names":[],"mappings":";;;AAEA,MAAa,2BAA2B;IACtC,IAAI,GAAG,6BAA6B,CAAC;IAE9B,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,sEAAsE,CACvE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sEAAsE,CACvE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC3E,MAAM,WAAW,CAAC,KAAK,CACrB,8FAA8F,CAC/F,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,8DAA8D,CAC/D,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,2KAA2K,CAC5K,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,sEAAsE,CACvE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,6DAA6D,CAC9D,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sEAAsE,CACvE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC3E,MAAM,WAAW,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACvE,MAAM,WAAW,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACzE,CAAC;CACF;AApCD,kEAoCC"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class ChatReadCursor1760444646328 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatReadCursor1760444646328 = void 0;
4
+ class ChatReadCursor1760444646328 {
5
+ name = 'ChatReadCursor1760444646328';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`CREATE TABLE "chat_read_cursor" ("conversationId" integer NOT NULL, "userId" integer NOT NULL, "ts" TIMESTAMP NOT NULL, "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_1a8a46f2037a2855419b177b5c4" PRIMARY KEY ("conversationId", "userId"))`);
8
+ await queryRunner.query(`ALTER TABLE "chat_read_cursor" ADD CONSTRAINT "FK_8ceddfc4c2260367933ca36cacf" FOREIGN KEY ("conversationId") REFERENCES "chat_conversation"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
9
+ await queryRunner.query(`ALTER TABLE "chat_read_cursor" ADD CONSTRAINT "FK_7e7a9e30b62cdb02ed03ab44211" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
10
+ }
11
+ async down(queryRunner) {
12
+ await queryRunner.query(`ALTER TABLE "chat_read_cursor" DROP CONSTRAINT "FK_7e7a9e30b62cdb02ed03ab44211"`);
13
+ await queryRunner.query(`ALTER TABLE "chat_read_cursor" DROP CONSTRAINT "FK_8ceddfc4c2260367933ca36cacf"`);
14
+ await queryRunner.query(`DROP TABLE "chat_read_cursor"`);
15
+ }
16
+ }
17
+ exports.ChatReadCursor1760444646328 = ChatReadCursor1760444646328;
18
+ //# sourceMappingURL=1760444646328-ChatReadCursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1760444646328-ChatReadCursor.js","sourceRoot":"","sources":["../../src/migrations/1760444646328-ChatReadCursor.ts"],"names":[],"mappings":";;;AAEA,MAAa,2BAA2B;IACtC,IAAI,GAAG,6BAA6B,CAAC;IAE9B,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,6PAA6P,CAC9P,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,4LAA4L,CAC7L,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,uKAAuK,CACxK,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,iFAAiF,CAClF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,iFAAiF,CAClF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC3D,CAAC;CACF;AAxBD,kEAwBC"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class AddChatImages1761598291629 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddChatImages1761598291629 = void 0;
4
+ class AddChatImages1761598291629 {
5
+ name = 'AddChatImages1761598291629';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`ALTER TABLE "media" ADD "widthPx" integer`);
8
+ await queryRunner.query(`ALTER TABLE "media" ADD "heightPx" integer`);
9
+ }
10
+ async down(queryRunner) {
11
+ await queryRunner.query(`ALTER TABLE "media" DROP COLUMN "heightPx"`);
12
+ await queryRunner.query(`ALTER TABLE "media" DROP COLUMN "widthPx"`);
13
+ }
14
+ }
15
+ exports.AddChatImages1761598291629 = AddChatImages1761598291629;
16
+ //# sourceMappingURL=1761598291629-AddChatImages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1761598291629-AddChatImages.js","sourceRoot":"","sources":["../../src/migrations/1761598291629-AddChatImages.ts"],"names":[],"mappings":";;;AAEA,MAAa,0BAA0B;IACrC,IAAI,GAAG,4BAA4B,CAAC;IAE7B,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACrE,MAAM,WAAW,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACtE,MAAM,WAAW,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACvE,CAAC;CACF;AAZD,gEAYC"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class ChatReactions1761648419807 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatReactions1761648419807 = void 0;
4
+ class ChatReactions1761648419807 {
5
+ name = 'ChatReactions1761648419807';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`CREATE TABLE "chat_message_reaction" ("messageId" integer NOT NULL, "userId" integer NOT NULL, "emoji" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_c8bf43e9893486c3a8d4517299d" PRIMARY KEY ("messageId", "userId"))`);
8
+ await queryRunner.query(`ALTER TABLE "chat_message_reaction" ADD CONSTRAINT "FK_b67a6e324959998a190a06e1ec2" FOREIGN KEY ("messageId") REFERENCES "chat_message"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
9
+ await queryRunner.query(`ALTER TABLE "chat_message_reaction" ADD CONSTRAINT "FK_6a90ba8298795ca6bd8d7e765a1" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
10
+ }
11
+ async down(queryRunner) {
12
+ await queryRunner.query(`ALTER TABLE "chat_message_reaction" DROP CONSTRAINT "FK_6a90ba8298795ca6bd8d7e765a1"`);
13
+ await queryRunner.query(`ALTER TABLE "chat_message_reaction" DROP CONSTRAINT "FK_b67a6e324959998a190a06e1ec2"`);
14
+ await queryRunner.query(`DROP TABLE "chat_message_reaction"`);
15
+ }
16
+ }
17
+ exports.ChatReactions1761648419807 = ChatReactions1761648419807;
18
+ //# sourceMappingURL=1761648419807-ChatReactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1761648419807-ChatReactions.js","sourceRoot":"","sources":["../../src/migrations/1761648419807-ChatReactions.ts"],"names":[],"mappings":";;;AAEA,MAAa,0BAA0B;IACrC,IAAI,GAAG,4BAA4B,CAAC;IAE7B,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,mQAAmQ,CACpQ,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,uLAAuL,CACxL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,4KAA4K,CAC7K,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,sFAAsF,CACvF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sFAAsF,CACvF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAChE,CAAC;CACF;AAxBD,gEAwBC"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class AddChatReplies1762953835109 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddChatReplies1762953835109 = void 0;
4
+ class AddChatReplies1762953835109 {
5
+ name = 'AddChatReplies1762953835109';
6
+ async up(queryRunner) {
7
+ await queryRunner.query(`ALTER TABLE "chat_message" ADD "replyToId" integer`);
8
+ await queryRunner.query(`ALTER TABLE "chat_message" DROP CONSTRAINT "FK_71d77a16df3f16e830d645f31f6"`);
9
+ await queryRunner.query(`ALTER TABLE "chat_message" ALTER COLUMN "conversationId" SET NOT NULL`);
10
+ await queryRunner.query(`ALTER TABLE "chat_message" ADD CONSTRAINT "FK_71d77a16df3f16e830d645f31f6" FOREIGN KEY ("conversationId") REFERENCES "chat_conversation"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
11
+ await queryRunner.query(`ALTER TABLE "chat_message" ADD CONSTRAINT "FK_e87f74fc2f41b80635e686ec4fa" FOREIGN KEY ("replyToId") REFERENCES "chat_message"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
12
+ }
13
+ async down(queryRunner) {
14
+ await queryRunner.query(`ALTER TABLE "chat_message" DROP CONSTRAINT "FK_e87f74fc2f41b80635e686ec4fa"`);
15
+ await queryRunner.query(`ALTER TABLE "chat_message" DROP CONSTRAINT "FK_71d77a16df3f16e830d645f31f6"`);
16
+ await queryRunner.query(`ALTER TABLE "chat_message" ALTER COLUMN "conversationId" DROP NOT NULL`);
17
+ await queryRunner.query(`ALTER TABLE "chat_message" ADD CONSTRAINT "FK_71d77a16df3f16e830d645f31f6" FOREIGN KEY ("conversationId") REFERENCES "chat_conversation"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
18
+ await queryRunner.query(`ALTER TABLE "chat_message" DROP COLUMN "replyToId"`);
19
+ }
20
+ }
21
+ exports.AddChatReplies1762953835109 = AddChatReplies1762953835109;
22
+ //# sourceMappingURL=1762953835109-AddChatReplies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1762953835109-AddChatReplies.js","sourceRoot":"","sources":["../../src/migrations/1762953835109-AddChatReplies.ts"],"names":[],"mappings":";;;AAEA,MAAa,2BAA2B;IACtC,IAAI,GAAG,6BAA6B,CAAC;IAE9B,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,oDAAoD,CACrD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,6EAA6E,CAC9E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,uEAAuE,CACxE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sLAAsL,CACvL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,8KAA8K,CAC/K,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,6EAA6E,CAC9E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,6EAA6E,CAC9E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,wEAAwE,CACzE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sLAAsL,CACvL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,oDAAoD,CACrD,CAAC;IACJ,CAAC;CACF;AAtCD,kEAsCC"}