@amityco/ts-sdk 7.9.3-3043b851.0 → 7.9.3-9d4caef6.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 (50) hide show
  1. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.d.ts +1 -0
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.d.ts.map +1 -1
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.js.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.d.ts +0 -14
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.d.ts.map +1 -1
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.js +2 -6
  7. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.js.map +1 -1
  8. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.d.ts +16 -0
  9. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.d.ts.map +1 -0
  10. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.js +20 -0
  11. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.js.map +1 -0
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.d.ts +8 -0
  13. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.d.ts.map +1 -0
  14. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.js +58 -0
  15. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.js.map +1 -0
  16. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.d.ts.map +1 -1
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.js.map +1 -1
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.d.ts.map +1 -1
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.js.map +1 -1
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.d.ts.map +1 -1
  21. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.js.map +1 -1
  22. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
  23. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js +8 -0
  24. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js.map +1 -1
  25. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  26. package/dist/@types/domains/channel.d.ts +1 -0
  27. package/dist/@types/domains/channel.d.ts.map +1 -1
  28. package/dist/channelRepository/api/unmuteChannel.d.ts +0 -14
  29. package/dist/channelRepository/api/unmuteChannel.d.ts.map +1 -1
  30. package/dist/channelRepository/internalApi/getMembership.d.ts +16 -0
  31. package/dist/channelRepository/internalApi/getMembership.d.ts.map +1 -0
  32. package/dist/channelRepository/observers/getMembership.d.ts +8 -0
  33. package/dist/channelRepository/observers/getMembership.d.ts.map +1 -0
  34. package/dist/client/api/loginAsBot.d.ts.map +1 -1
  35. package/dist/client/api/loginAsVisitor.d.ts.map +1 -1
  36. package/dist/client/utils/setVisitorClientToken.d.ts.map +1 -1
  37. package/dist/index.cjs.js +75 -6
  38. package/dist/index.esm.js +75 -6
  39. package/dist/index.umd.js +1 -1
  40. package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/@types/domains/channel.ts +4 -0
  43. package/src/channelRepository/api/unmuteChannel.ts +2 -4
  44. package/src/channelRepository/internalApi/getMembership.ts +45 -0
  45. package/src/channelRepository/observers/getMembership.ts +89 -0
  46. package/src/client/api/loginAsBot.ts +0 -1
  47. package/src/client/api/loginAsVisitor.ts +0 -2
  48. package/src/client/utils/setVisitorClientToken.ts +0 -1
  49. package/src/utils/linkedObject/channelLinkedObject.ts +11 -0
  50. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,OAyB1E,CAAC"}
1
+ {"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,OAmC1E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk",
3
- "version": "7.9.3-3043b851.0",
3
+ "version": "7.9.3-9d4caef6.0",
4
4
  "license": "CC-BY-ND-4.0",
5
5
  "author": "amity.co <developers@amity.co> (https://amity.co)",
6
6
  "description": "Amity Social Cloud Typescript SDK",
@@ -103,6 +103,10 @@ declare global {
103
103
  myMembership: (
104
104
  callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,
105
105
  ) => Amity.Unsubscriber;
106
+ getMembership: (
107
+ userId: Amity.User['userId'],
108
+ callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,
109
+ ) => Amity.Unsubscriber;
106
110
  };
107
111
 
108
112
  type QueryChannels = {
@@ -3,7 +3,6 @@ import { getActiveClient } from '~/client/api';
3
3
  /* begin_public_function
4
4
  id: channel.unmute
5
5
  */
6
- const CHANNEL_UNMUTE_PERIOD = 0;
7
6
  /**
8
7
  * ```js
9
8
  * import { ChannelRepository } from '@amityco/ts-sdk'
@@ -18,15 +17,14 @@ const CHANNEL_UNMUTE_PERIOD = 0;
18
17
  * @category Channel API
19
18
  * @async
20
19
  */
20
+ const CHANNEL_UNMUTE_PERIOD = 0; // Setting mute period as 0 is the same as unmuting the channel
21
+
21
22
  export const unmuteChannel = async (channelId: Amity.Channel['channelId']): Promise<boolean> => {
22
23
  const client = getActiveClient();
23
24
  client.log('channel/unmuteChannel', channelId);
24
25
 
25
26
  const { data } = await client.http.put<{ success: boolean }>(
26
27
  `/api/v2/channel/${encodeURIComponent(channelId)}/mute`,
27
- /*
28
- * Setting mute period as 0 is the same as unmuting the channel
29
- */
30
28
  { mutePeriod: CHANNEL_UNMUTE_PERIOD },
31
29
  );
32
30
 
@@ -0,0 +1,45 @@
1
+ import { ASCApiError } from '~/core/errors';
2
+ import { pullFromCache } from '~/cache/api/pullFromCache';
3
+ import { getActiveClient } from '~/client/api/activeClient';
4
+
5
+ /**
6
+ *
7
+ * get membership of user in a channel from cache
8
+ *
9
+ * @returns the {@link Amity.Membership<'channel'>} objects
10
+ *
11
+ * @category Channel API
12
+ * @async
13
+ */
14
+
15
+ type GetMembershipParams = {
16
+ channelId: string;
17
+ userId: Amity.User['userId'];
18
+ };
19
+
20
+ export const getMembership = ({
21
+ channelId,
22
+ userId,
23
+ }: GetMembershipParams): Amity.Cached<Amity.Membership<'channel'>> => {
24
+ const client = getActiveClient();
25
+ client.log('channel/getMembership.locally');
26
+
27
+ const cacheChannelUser = pullFromCache<Amity.Membership<'channel'>>([
28
+ 'channelUsers',
29
+ 'get',
30
+ `${channelId}#${userId}`,
31
+ ]);
32
+
33
+ if (!cacheChannelUser) {
34
+ throw new ASCApiError(
35
+ 'Item not found!',
36
+ Amity.ServerError.ITEM_NOT_FOUND,
37
+ Amity.ErrorLevel.ERROR,
38
+ );
39
+ }
40
+
41
+ return {
42
+ data: cacheChannelUser.data,
43
+ cachedAt: cacheChannelUser.cachedAt,
44
+ };
45
+ };
@@ -0,0 +1,89 @@
1
+ import { getMembership as _getMembership } from '../internalApi/getMembership';
2
+ import { ASCApiError } from '~/core/errors';
3
+ import { getActiveClient } from '~/client/api/activeClient';
4
+ import { isEqual } from '~/utils/isEqual';
5
+ import { createQuery, runQuery } from '~/core/query';
6
+ import {
7
+ UNSYNCED_OBJECT_CACHED_AT_MESSAGE,
8
+ UNSYNCED_OBJECT_CACHED_AT_VALUE,
9
+ } from '~/utils/constants';
10
+ import { channelMemberLinkedObject } from '~/utils/linkedObject/channelMemberLinkedObject';
11
+ import { onChannelMemberBanned, onChannelMemberUnbanned } from '../events';
12
+ import { onChannelSetUserMuted } from '../events/onChannelSetUserMuted';
13
+
14
+ type GetMembership = {
15
+ channelId: string;
16
+ userId: Amity.User['userId'];
17
+ callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>;
18
+ };
19
+
20
+ export const getMembership = ({
21
+ channelId,
22
+ userId,
23
+ callback,
24
+ }: GetMembership): Amity.Unsubscriber => {
25
+ const { log, cache } = getActiveClient();
26
+
27
+ if (!cache) {
28
+ console.log('This observable object need the cache data!');
29
+ }
30
+
31
+ const timestamp = Date.now();
32
+ log(`liveMembership(tmpid: ${timestamp}) > listen`);
33
+
34
+ const disposers: Amity.Unsubscriber[] = [];
35
+
36
+ let isUnsyncedModel = false;
37
+
38
+ let model: Amity.Membership<'channel'> | undefined;
39
+
40
+ const dispatcher = (data: Amity.LiveObject<Amity.Membership<'channel'> | undefined>) => {
41
+ callback({ ...data, data: data.data ? channelMemberLinkedObject(data.data) : data.data });
42
+ };
43
+
44
+ const realtimeRouter = (_: Amity.StaticInternalChannel, __: Amity.RawMembership<'channel'>) => {
45
+ const { data } = _getMembership({ channelId, userId });
46
+
47
+ if (isEqual(model, data)) return;
48
+
49
+ dispatcher({ loading: false, data });
50
+ };
51
+
52
+ const onFetch = () => {
53
+ const query = createQuery(async () => _getMembership({ channelId, userId }));
54
+
55
+ runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
56
+ if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
57
+ dispatcher({
58
+ data,
59
+ origin,
60
+ loading: false,
61
+ error: new ASCApiError(
62
+ UNSYNCED_OBJECT_CACHED_AT_MESSAGE,
63
+ Amity.ClientError.DISALOOW_UNSYNCED_OBJECT,
64
+ Amity.ErrorLevel.ERROR,
65
+ ),
66
+ });
67
+
68
+ isUnsyncedModel = true;
69
+ disposers.forEach(fn => fn());
70
+ } else if (!isUnsyncedModel) {
71
+ dispatcher({ loading, data, origin, error });
72
+ }
73
+
74
+ if (error) {
75
+ disposers.forEach(fn => fn());
76
+ }
77
+ });
78
+ };
79
+
80
+ disposers.push(onChannelMemberBanned(realtimeRouter));
81
+ disposers.push(onChannelMemberUnbanned(realtimeRouter));
82
+ disposers.push(onChannelSetUserMuted(realtimeRouter));
83
+
84
+ onFetch();
85
+
86
+ return () => {
87
+ disposers.forEach(fn => fn());
88
+ };
89
+ };
@@ -14,7 +14,6 @@ import { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';
14
14
 
15
15
  import SessionWatcher from '../utils/SessionWatcher';
16
16
  import { setBotClientToken } from '../utils/setBotClientToken';
17
- import { setCurrentUserType } from './getCurrentUserType';
18
17
  import { setCurrentUser } from '../utils/setCurrentUser';
19
18
 
20
19
  /*
@@ -6,7 +6,6 @@ import { logout } from './logout';
6
6
 
7
7
  import { getActiveClient } from './activeClient';
8
8
  import { terminateClient } from './terminateClient';
9
- import { setActiveUser } from './activeUser';
10
9
 
11
10
  import { onTokenExpired } from '../events/onTokenExpired';
12
11
  import { onTokenTerminated } from '../events/onTokenTerminated';
@@ -14,7 +13,6 @@ import { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';
14
13
 
15
14
  import SessionWatcher from '../utils/SessionWatcher';
16
15
  import { setVisitorClientToken } from '../utils/setVisitorClientToken';
17
- import { setCurrentUserType } from './getCurrentUserType';
18
16
  import { setCurrentUser } from '../utils/setCurrentUser';
19
17
 
20
18
  /*
@@ -1,6 +1,5 @@
1
1
  import { getActiveClient } from '../api/activeClient';
2
2
  import { setSessionState } from '../api/setSessionState';
3
- import { getToken } from '../api/getToken';
4
3
  import { getVisitorToken } from '../api/getVisitorToken';
5
4
 
6
5
  /**
@@ -3,6 +3,7 @@ import { shallowClone } from '../shallowClone';
3
3
  import { queryCache } from '~/cache/api';
4
4
  import { channelMemberLinkedObject } from './channelMemberLinkedObject';
5
5
  import { getMyMembership } from '~/channelRepository/observers/getMyMembership';
6
+ import { getMembership } from '~/channelRepository/observers/getMembership';
6
7
 
7
8
  export const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Channel => {
8
9
  let previewMembers: Amity.Membership<'channel'>[] = [];
@@ -28,5 +29,15 @@ export const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Chann
28
29
  previewMembers,
29
30
  myMembership: (callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>) =>
30
31
  getMyMembership(channel.channelId, callback),
32
+ getMembership: (
33
+ userId: Amity.User['userId'],
34
+ callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,
35
+ ) => {
36
+ getMembership({
37
+ channelId: channel.channelId,
38
+ userId,
39
+ callback,
40
+ });
41
+ },
31
42
  });
32
43
  };