@amityco/ts-sdk 6.17.1-e9b6af1.0 → 6.17.2-ea577e1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/@types/core/payload.d.ts +1 -0
  2. package/dist/@types/core/payload.d.ts.map +1 -1
  3. package/dist/@types/core/permissions.d.ts +5 -0
  4. package/dist/@types/core/permissions.d.ts.map +1 -1
  5. package/dist/@types/domains/client.d.ts +1 -0
  6. package/dist/@types/domains/client.d.ts.map +1 -1
  7. package/dist/@types/domains/story.d.ts +4 -0
  8. package/dist/@types/domains/story.d.ts.map +1 -1
  9. package/dist/channelRepository/observers/getChannel.d.ts.map +1 -1
  10. package/dist/channelRepository/observers/getChannels/ChannelLiveCollectionController.d.ts.map +1 -1
  11. package/dist/client/api/createClient.d.ts.map +1 -1
  12. package/dist/client/observers/getTotalUnreadCount.d.ts.map +1 -1
  13. package/dist/client/observers/getUserUnread.d.ts.map +1 -1
  14. package/dist/client/utils/hasPermission/checkChannelPermission.d.ts +2 -0
  15. package/dist/client/utils/hasPermission/checkChannelPermission.d.ts.map +1 -0
  16. package/dist/client/utils/hasPermission/checkCommunityPermission.d.ts +2 -0
  17. package/dist/client/utils/hasPermission/checkCommunityPermission.d.ts.map +1 -0
  18. package/dist/client/utils/hasPermission/checkUserPermission.d.ts +2 -0
  19. package/dist/client/utils/hasPermission/checkUserPermission.d.ts.map +1 -0
  20. package/dist/client/utils/hasPermission/hasPermission.d.ts +6 -0
  21. package/dist/client/utils/hasPermission/hasPermission.d.ts.map +1 -0
  22. package/dist/client/utils/hasPermission/index.d.ts +2 -0
  23. package/dist/client/utils/hasPermission/index.d.ts.map +1 -0
  24. package/dist/client/utils/markerSyncEngine.d.ts.map +1 -1
  25. package/dist/index.cjs.js +510 -70
  26. package/dist/index.esm.js +510 -71
  27. package/dist/index.umd.js +4 -4
  28. package/dist/marker/api/getUserMarker.d.ts +1 -1
  29. package/dist/marker/api/getUserMarker.d.ts.map +1 -1
  30. package/dist/marker/events/onChannelMarkerFetched.d.ts.map +1 -1
  31. package/dist/marker/events/onUserMarkerFetched.d.ts +2 -1
  32. package/dist/marker/events/onUserMarkerFetched.d.ts.map +1 -1
  33. package/dist/messageRepository/events/onMessageCreated.d.ts +2 -1
  34. package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
  35. package/dist/messageRepository/observers/observeMessages.d.ts.map +1 -1
  36. package/dist/messageRepository/utils/prepareMessagePayload.d.ts.map +1 -1
  37. package/dist/storyRepository/constants.d.ts +1 -0
  38. package/dist/storyRepository/constants.d.ts.map +1 -1
  39. package/dist/storyRepository/observers/getStoriesByTargetIds/StoryLiveCollectionController.d.ts +14 -0
  40. package/dist/storyRepository/observers/getStoriesByTargetIds/StoryLiveCollectionController.d.ts.map +1 -0
  41. package/dist/storyRepository/observers/getStoriesByTargetIds/StoryPaginationNoPageController.d.ts +5 -0
  42. package/dist/storyRepository/observers/getStoriesByTargetIds/StoryPaginationNoPageController.d.ts.map +1 -0
  43. package/dist/storyRepository/observers/getStoriesByTargetIds/StoryQueryStreamController.d.ts +16 -0
  44. package/dist/storyRepository/observers/getStoriesByTargetIds/StoryQueryStreamController.d.ts.map +1 -0
  45. package/dist/storyRepository/observers/getStoriesByTargetIds/getStoriesByTargetIds.d.ts +5 -0
  46. package/dist/storyRepository/observers/getStoriesByTargetIds/getStoriesByTargetIds.d.ts.map +1 -0
  47. package/dist/storyRepository/observers/getStoriesByTargetIds/index.d.ts +2 -0
  48. package/dist/storyRepository/observers/getStoriesByTargetIds/index.d.ts.map +1 -0
  49. package/dist/storyRepository/observers/index.d.ts +1 -0
  50. package/dist/storyRepository/observers/index.d.ts.map +1 -1
  51. package/dist/subChannelRepository/observers/getSubChannel.d.ts.map +1 -1
  52. package/dist/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/src/@types/core/payload.ts +1 -0
  55. package/src/@types/core/permissions.ts +6 -0
  56. package/src/@types/domains/client.ts +2 -0
  57. package/src/@types/domains/story.ts +5 -0
  58. package/src/channelRepository/observers/getChannel.ts +30 -2
  59. package/src/channelRepository/observers/getChannels/ChannelLiveCollectionController.ts +65 -3
  60. package/src/client/api/createClient.ts +3 -1
  61. package/src/client/observers/getTotalUnreadCount.ts +14 -4
  62. package/src/client/observers/getUserUnread.ts +95 -11
  63. package/src/client/utils/hasPermission/checkChannelPermission.ts +22 -0
  64. package/src/client/utils/hasPermission/checkCommunityPermission.ts +22 -0
  65. package/src/client/utils/hasPermission/checkUserPermission.ts +12 -0
  66. package/src/client/utils/hasPermission/hasPermission.ts +18 -0
  67. package/src/client/utils/hasPermission/index.ts +1 -0
  68. package/src/client/utils/markerSyncEngine.ts +46 -32
  69. package/src/marker/api/getUserMarker.ts +15 -4
  70. package/src/marker/events/onChannelMarkerFetched.ts +3 -1
  71. package/src/marker/events/onUserMarkerFetched.ts +17 -0
  72. package/src/messageRepository/api/tests/createMessage.test.ts +4 -4
  73. package/src/messageRepository/events/onMessageCreated.ts +20 -8
  74. package/src/messageRepository/events/tests/events.test.ts +2 -2
  75. package/src/messageRepository/observers/getMessages/MessageLiveCollectionController.ts +2 -2
  76. package/src/messageRepository/observers/observeMessages.ts +8 -2
  77. package/src/messageRepository/utils/prepareMessagePayload.ts +14 -4
  78. package/src/storyRepository/constants.ts +1 -0
  79. package/src/storyRepository/observers/getStoriesByTargetIds/StoryLiveCollectionController.ts +113 -0
  80. package/src/storyRepository/observers/getStoriesByTargetIds/StoryPaginationNoPageController.ts +18 -0
  81. package/src/storyRepository/observers/getStoriesByTargetIds/StoryQueryStreamController.ts +97 -0
  82. package/src/storyRepository/observers/getStoriesByTargetIds/getStoriesByTargetIds.ts +32 -0
  83. package/src/storyRepository/observers/getStoriesByTargetIds/index.ts +1 -0
  84. package/src/storyRepository/observers/index.ts +1 -0
  85. package/src/subChannelRepository/observers/getSubChannel.ts +35 -2
  86. package/src/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.ts +53 -2
@@ -5,7 +5,12 @@ import { getSubChannel as _getSubChannel } from '../api/getSubChannel';
5
5
  import { onSubChannelDeleted, onSubChannelUpdated } from '../events';
6
6
  import { onSubChannelFetched } from '../events/onSubChannelFetched';
7
7
  import { pullFromCache, pushToCache } from '~/cache/api';
8
- import { onMessageCreated, onMessageDeleted, onMessageUpdated } from '~/messageRepository';
8
+ import {
9
+ onMessageCreatedLocal,
10
+ onMessageCreatedMqtt,
11
+ onMessageDeleted,
12
+ onMessageUpdated,
13
+ } from '~/messageRepository';
9
14
  import {
10
15
  handleMessageCreated,
11
16
  handleMessageUpdated,
@@ -132,7 +137,35 @@ export const getSubChannel = (
132
137
 
133
138
  callback(message);
134
139
  };
135
- return onMessageCreated(updateMessagePreview);
140
+ return onMessageCreatedMqtt(updateMessagePreview);
141
+ },
142
+ 'subChannelId',
143
+ 'subChannel',
144
+ ),
145
+ convertEventPayload(
146
+ (callback: Amity.Listener<Amity.Message>) => {
147
+ const updateMessagePreview = async (message: Amity.Message) => {
148
+ const messagePreviewSetting = await client.getMessagePreviewSetting(false);
149
+ if (messagePreviewSetting === Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW) return;
150
+
151
+ await handleMessageCreated(message);
152
+
153
+ if (message.subChannelId !== subChannelId) return;
154
+
155
+ const subChannel = pullFromCache<Amity.SubChannel>([
156
+ 'subChannel',
157
+ 'get',
158
+ subChannelId,
159
+ ])?.data;
160
+ if (!subChannel) return;
161
+
162
+ updateSubChannelCache(message.subChannelId, subChannel, {
163
+ messagePreviewId: message.messageId,
164
+ });
165
+
166
+ callback(message);
167
+ };
168
+ return onMessageCreatedLocal(updateMessagePreview);
136
169
  },
137
170
  'subChannelId',
138
171
  'subChannel',
@@ -9,7 +9,12 @@ import {
9
9
  onSubChannelDeleted,
10
10
  onSubChannelUpdated,
11
11
  } from '~/subChannelRepository/events';
12
- import { onMessageCreated, onMessageUpdated, onMessageDeleted } from '~/messageRepository/events';
12
+ import {
13
+ onMessageUpdated,
14
+ onMessageDeleted,
15
+ onMessageCreatedMqtt,
16
+ onMessageCreatedLocal,
17
+ } from '~/messageRepository/events';
13
18
  import { onSubChannelMarkerFetched, onSubChannelMarkerUpdated } from '~/marker/events';
14
19
  import { convertEventPayload } from '~/utils/event';
15
20
  import { filterByPropEquality, sortByLastActivity } from '~/core/query';
@@ -113,7 +118,53 @@ export class SubChannelLiveCollectionController extends LiveCollectionController
113
118
  },
114
119
  {
115
120
  fn: callback => {
116
- return onMessageCreated(async message => {
121
+ return onMessageCreatedMqtt(async message => {
122
+ const cacheData = pullFromCache<Amity.SubChannel>([
123
+ 'subChannel',
124
+ 'get',
125
+ message.subChannelId,
126
+ ]);
127
+
128
+ if (!cacheData) return;
129
+
130
+ const collection = pullFromCache<Amity.SubChannelLiveCollectionCache>(
131
+ this.cacheKey,
132
+ )?.data;
133
+
134
+ if (!collection || !collection.data.includes(message.subChannelId)) return;
135
+
136
+ const client = getActiveClient();
137
+ const messagePreviewSetting = await client.getMessagePreviewSetting(false);
138
+
139
+ if (messagePreviewSetting === Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW) return;
140
+
141
+ handleMessageCreated(message);
142
+
143
+ const subChannelCache = pullFromCache<Amity.SubChannel>([
144
+ 'subChannel',
145
+ 'get',
146
+ message.subChannelId,
147
+ ])?.data;
148
+ if (!subChannelCache) return;
149
+
150
+ updateSubChannelCache(message.subChannelId, subChannelCache, {
151
+ lastActivity: message.createdAt,
152
+ messagePreviewId: message.messageId,
153
+ });
154
+
155
+ callback({
156
+ ...cacheData.data,
157
+ messagePreviewId: message.messageId,
158
+ subChannelId: message.subChannelId,
159
+ lastActivity: message.createdAt,
160
+ });
161
+ });
162
+ },
163
+ action: 'onUpdate',
164
+ },
165
+ {
166
+ fn: callback => {
167
+ return onMessageCreatedLocal(async message => {
117
168
  const cacheData = pullFromCache<Amity.SubChannel>([
118
169
  'subChannel',
119
170
  'get',