@amityco/ts-sdk 0.0.1-beta.31 → 0.0.1-beta.32

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 (74) hide show
  1. package/dist/cache/api/backupCache.d.ts.map +1 -1
  2. package/dist/cache/api/tests/pushToCache.test.d.ts +2 -0
  3. package/dist/cache/api/tests/pushToCache.test.d.ts.map +1 -0
  4. package/dist/channel/api/addChannelMembers.d.ts.map +1 -1
  5. package/dist/channel/api/getChannel.d.ts.map +1 -1
  6. package/dist/channel/api/tests/addChannelMembers.test.d.ts +2 -0
  7. package/dist/channel/api/tests/addChannelMembers.test.d.ts.map +1 -0
  8. package/dist/channel/api/tests/getChannel.test.d.ts +2 -0
  9. package/dist/channel/api/tests/getChannel.test.d.ts.map +1 -0
  10. package/dist/channel/events/onChannelMemberAdded.d.ts.map +1 -1
  11. package/dist/core/events.d.ts +1 -1
  12. package/dist/core/events.d.ts.map +1 -1
  13. package/dist/core/transports/http.d.ts +5 -0
  14. package/dist/core/transports/http.d.ts.map +1 -1
  15. package/dist/core/transports/test/http.test.d.ts +2 -0
  16. package/dist/core/transports/test/http.test.d.ts.map +1 -0
  17. package/dist/index.cjs.js +35 -45
  18. package/dist/index.esm.js +34 -45
  19. package/dist/index.umd.js +4 -4
  20. package/dist/message/api/deleteMessage.d.ts.map +1 -1
  21. package/dist/message/api/tests/deleteMessage.test.d.ts +2 -0
  22. package/dist/message/api/tests/deleteMessage.test.d.ts.map +1 -0
  23. package/dist/message/{tests/api → api/tests}/getMessage.test.d.ts +0 -0
  24. package/dist/message/api/tests/getMessage.test.d.ts.map +1 -0
  25. package/dist/message/api/tests/getMessages.test.d.ts +2 -0
  26. package/dist/message/api/tests/getMessages.test.d.ts.map +1 -0
  27. package/dist/message/api/tests/queryMessages.test.d.ts +2 -0
  28. package/dist/message/api/tests/queryMessages.test.d.ts.map +1 -0
  29. package/dist/message/api/tests/updateMessage.test.d.ts +2 -0
  30. package/dist/message/api/tests/updateMessage.test.d.ts.map +1 -0
  31. package/dist/reaction/api/addReaction.d.ts.map +1 -1
  32. package/dist/reaction/api/removeReaction.d.ts.map +1 -1
  33. package/dist/reaction/api/tests/addReaction.test.d.ts +2 -0
  34. package/dist/reaction/api/tests/addReaction.test.d.ts.map +1 -0
  35. package/dist/reaction/api/tests/removeReaction.test.d.ts +2 -0
  36. package/dist/reaction/api/tests/removeReaction.test.d.ts.map +1 -0
  37. package/dist/user/api/getUser.d.ts.map +1 -1
  38. package/dist/user/api/queryUsers.d.ts.map +1 -1
  39. package/dist/user/api/tests/queryUsers.test.d.ts +2 -0
  40. package/dist/user/api/tests/queryUsers.test.d.ts.map +1 -0
  41. package/dist/utils/tests/dummy/post.d.ts +12 -1
  42. package/dist/utils/tests/dummy/post.d.ts.map +1 -1
  43. package/package.json +2 -1
  44. package/src/cache/api/backupCache.ts +0 -1
  45. package/src/cache/api/tests/pushToCache.test.ts +57 -0
  46. package/src/channel/api/addChannelMembers.ts +9 -1
  47. package/src/channel/api/getChannel.ts +20 -5
  48. package/src/channel/api/tests/addChannelMembers.test.ts +95 -0
  49. package/src/channel/api/tests/getChannel.test.ts +108 -0
  50. package/src/channel/api/tests/queryChannels.test.ts +20 -0
  51. package/src/channel/events/onChannelMemberAdded.ts +1 -1
  52. package/src/channel/observers/tests/liveChannels.test.ts +0 -1
  53. package/src/core/events.ts +1 -1
  54. package/src/core/transports/http.ts +3 -17
  55. package/src/core/transports/test/http.test.ts +83 -0
  56. package/src/message/api/deleteMessage.ts +2 -3
  57. package/src/message/api/tests/createMessage.test.ts +74 -51
  58. package/src/message/api/tests/deleteMessage.test.ts +110 -0
  59. package/src/message/api/tests/getMessage.test.ts +121 -0
  60. package/src/message/api/tests/getMessages.test.ts +108 -0
  61. package/src/message/api/tests/queryMessages.test.ts +115 -0
  62. package/src/message/api/tests/updateMessage.test.ts +100 -0
  63. package/src/post/tests/api/queryPosts.test.ts +117 -18
  64. package/src/reaction/api/addReaction.ts +1 -4
  65. package/src/reaction/api/removeReaction.ts +1 -4
  66. package/src/reaction/api/tests/addReaction.test.ts +37 -0
  67. package/src/reaction/api/tests/removeReaction.test.ts +43 -0
  68. package/src/user/api/getUser.ts +1 -2
  69. package/src/user/api/queryUsers.ts +24 -5
  70. package/src/user/api/tests/queryUsers.test.ts +124 -0
  71. package/src/utils/tests/dummy/post.ts +26 -3
  72. package/src/utils/tests/dummy/user.ts +1 -1
  73. package/dist/message/tests/api/getMessage.test.d.ts.map +0 -1
  74. package/src/message/tests/api/getMessage.test.ts +0 -96
@@ -1 +1 @@
1
- {"version":3,"file":"backupCache.d.ts","sourceRoot":"","sources":["../../../src/cache/api/backupCache.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,4CAEF,MAAM,UAAU,6BACnC,QAAQ,OAAO,CAkBjB,CAAC"}
1
+ {"version":3,"file":"backupCache.d.ts","sourceRoot":"","sources":["../../../src/cache/api/backupCache.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,4CAEF,MAAM,UAAU,6BACnC,QAAQ,OAAO,CAkBjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pushToCache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pushToCache.test.d.ts","sourceRoot":"","sources":["../../../../src/cache/api/tests/pushToCache.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"addChannelMembers.d.ts","sourceRoot":"","sources":["../../../src/channel/api/addChannelMembers.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,cACjB,MAAM,OAAO,CAAC,WAAW,CAAC,WAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,KAC9B,QAAQ,OAAO,CAmBjB,CAAC"}
1
+ {"version":3,"file":"addChannelMembers.d.ts","sourceRoot":"","sources":["../../../src/channel/api/addChannelMembers.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,cACjB,MAAM,OAAO,CAAC,WAAW,CAAC,WAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,KAC9B,QAAQ,OAAO,CA2BjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getChannel.d.ts","sourceRoot":"","sources":["../../../src/channel/api/getChannel.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU;gBACV,MAAM,OAAO,CAAC,WAAW,CAAC,GACpC,QAAQ,MAAM,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC;IAsBvC;;;;;;;;;;;;OAYG;uBAEU,MAAM,OAAO,CAAC,WAAW,CAAC,GACpC,MAAM,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS;CAjBzC,CAAC"}
1
+ {"version":3,"file":"getChannel.d.ts","sourceRoot":"","sources":["../../../src/channel/api/getChannel.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU;gBACV,MAAM,OAAO,CAAC,WAAW,CAAC,GACpC,QAAQ,MAAM,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC;IAiCvC;;;;;;;;;;;;OAYG;uBAEU,MAAM,OAAO,CAAC,WAAW,CAAC,GACpC,MAAM,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS;CAjBzC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=addChannelMembers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addChannelMembers.test.d.ts","sourceRoot":"","sources":["../../../../src/channel/api/tests/addChannelMembers.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getChannel.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getChannel.test.d.ts","sourceRoot":"","sources":["../../../../src/channel/api/tests/getChannel.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"onChannelMemberAdded.d.ts","sourceRoot":"","sources":["../../../src/channel/events/onChannelMemberAdded.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,uBACX,MAAM,OAAO,UAAU,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,uBAYhF,CAAC"}
1
+ {"version":3,"file":"onChannelMemberAdded.d.ts","sourceRoot":"","sources":["../../../src/channel/events/onChannelMemberAdded.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,uBACX,MAAM,OAAO,UAAU,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,KAC9E,MAAM,YAWR,CAAC"}
@@ -25,7 +25,7 @@ export declare const proxyMqttEvents: (mqttClient: Amity.Client['mqtt'], emitter
25
25
  * @hidden
26
26
  */
27
27
  export declare const createEventSubscriber: <T extends "disconnected" | "error" | "connect_error" | "reconnect_error" | "reconnect_failed" | "v3.channel.didCreate" | "v3.channel.didUpdate" | "v3.channel.didDelete" | "v3.channel.didJoin" | "v3.channel.didLeave" | "v3.channel.didAddUsers" | "v3.channel.didRemoveUsers" | "v3.channel.didBan" | "v3.channel.didUnban" | "v3.message.didFetch" | "v3.message.didCreate" | "v3.message.didUpdate" | "v3.message.didDelete" | "connect" | "message" | "disconnect" | "close" | "end" | "reconnect" | "video-streaming.didRecord" | "video-streaming.didStart" | "video-streaming.didStop" | "community.created" | "community.updated" | "community.deleted" | "community.joined" | "community.left" | "community.userAdded" | "community.userRemoved" | "community.userBanned" | "community.userUnbanned" | "post.created" | "post.updated" | "post.deleted" | "post.approved" | "post.declined" | "post.flagged" | "post.unflagged" | "post.addReaction" | "post.removeReaction" | "comment.created" | "comment.updated" | "comment.deleted" | "comment.flagged" | "comment.unflagged" | "comment.addReaction" | "comment.removeReaction" | "user.fetched" | "user.updated" | "user.deleted" | "user.flagged" | "user.unflagged" | "user.flagCleared" | "follow.created" | "follow.requested" | "follow.accepted" | "follow.unfollowed" | "follow.requestCanceled" | "follow.requestDeclined" | "follow.followerDeleted" | "poll.updated" | "poll.deleted">(client: Amity.Client, namespace: string, event: T, fn: Amity.Listener<Amity.Events[T]>) => Amity.Unsubscriber;
28
- export declare const createMqttMessageSubscriber: <T extends "disconnected" | "error" | "connect_error" | "reconnect_error" | "reconnect_failed" | "v3.channel.didCreate" | "v3.channel.didUpdate" | "v3.channel.didDelete" | "v3.channel.didJoin" | "v3.channel.didLeave" | "v3.channel.didAddUsers" | "v3.channel.didRemoveUsers" | "v3.channel.didBan" | "v3.channel.didUnban" | "v3.message.didFetch" | "v3.message.didCreate" | "v3.message.didUpdate" | "v3.message.didDelete" | "connect" | "message" | "disconnect" | "close" | "end" | "reconnect" | "video-streaming.didRecord" | "video-streaming.didStart" | "video-streaming.didStop" | "community.created" | "community.updated" | "community.deleted" | "community.joined" | "community.left" | "community.userAdded" | "community.userRemoved" | "community.userBanned" | "community.userUnbanned" | "post.created" | "post.updated" | "post.deleted" | "post.approved" | "post.declined" | "post.flagged" | "post.unflagged" | "post.addReaction" | "post.removeReaction" | "comment.created" | "comment.updated" | "comment.deleted" | "comment.flagged" | "comment.unflagged" | "comment.addReaction" | "comment.removeReaction" | "user.fetched" | "user.updated" | "user.deleted" | "user.flagged" | "user.unflagged" | "user.flagCleared" | "follow.created" | "follow.requested" | "follow.accepted" | "follow.unfollowed" | "follow.requestCanceled" | "follow.requestDeclined" | "follow.followerDeleted" | "poll.updated" | "poll.deleted">(client: Amity.Client, namespace: string, event: string, fn: (params: Record<string, unknown>) => void) => Amity.Unsubscriber;
28
+ export declare const createMqttMessageSubscriber: <T extends "disconnected" | "error" | "connect_error" | "reconnect_error" | "reconnect_failed" | "v3.channel.didCreate" | "v3.channel.didUpdate" | "v3.channel.didDelete" | "v3.channel.didJoin" | "v3.channel.didLeave" | "v3.channel.didAddUsers" | "v3.channel.didRemoveUsers" | "v3.channel.didBan" | "v3.channel.didUnban" | "v3.message.didFetch" | "v3.message.didCreate" | "v3.message.didUpdate" | "v3.message.didDelete" | "connect" | "message" | "disconnect" | "close" | "end" | "reconnect" | "video-streaming.didRecord" | "video-streaming.didStart" | "video-streaming.didStop" | "community.created" | "community.updated" | "community.deleted" | "community.joined" | "community.left" | "community.userAdded" | "community.userRemoved" | "community.userBanned" | "community.userUnbanned" | "post.created" | "post.updated" | "post.deleted" | "post.approved" | "post.declined" | "post.flagged" | "post.unflagged" | "post.addReaction" | "post.removeReaction" | "comment.created" | "comment.updated" | "comment.deleted" | "comment.flagged" | "comment.unflagged" | "comment.addReaction" | "comment.removeReaction" | "user.fetched" | "user.updated" | "user.deleted" | "user.flagged" | "user.unflagged" | "user.flagCleared" | "follow.created" | "follow.requested" | "follow.accepted" | "follow.unfollowed" | "follow.requestCanceled" | "follow.requestDeclined" | "follow.followerDeleted" | "poll.updated" | "poll.deleted">(client: Amity.Client, namespace: string, event: T, fn: (params: Record<string, unknown>) => void) => Amity.Unsubscriber;
29
29
  /**
30
30
  * Wrapper around dispatch event
31
31
  *
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"AAyCA,cAAc;AACd,eAAO,MAAM,kBAAkB,4CAE9B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,OAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,MAAM,CAAC,SAAS,CAAC,SAI5F,CAAC;AAEF,eAAO,MAAM,eAAe,eACd,MAAM,MAAM,CAAC,MAAM,CAAC,WACvB,MAAM,MAAM,CAAC,SAAS,CAAC,SAcjC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,84CACxB,MAAM,MAAM,aACT,MAAM,oDAGhB,MAAM,YAiBR,CAAC;AAEF,eAAO,MAAM,2BAA2B,84CAC9B,MAAM,MAAM,aACT,MAAM,SACV,MAAM,eACA,OAAO,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,KAC5C,MAAM,YAQR,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,i7CAKrB,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"AAyCA,cAAc;AACd,eAAO,MAAM,kBAAkB,4CAE9B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,OAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,MAAM,CAAC,SAAS,CAAC,SAI5F,CAAC;AAEF,eAAO,MAAM,eAAe,eACd,MAAM,MAAM,CAAC,MAAM,CAAC,WACvB,MAAM,MAAM,CAAC,SAAS,CAAC,SAcjC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,84CACxB,MAAM,MAAM,aACT,MAAM,oDAGhB,MAAM,YAiBR,CAAC;AAEF,eAAO,MAAM,2BAA2B,84CAC9B,MAAM,MAAM,aACT,MAAM,yBAEJ,OAAO,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,KAC5C,MAAM,YAQR,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,i7CAKrB,CAAC"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Axios param serializer (for querystring)
3
+ * @hidden
4
+ */
5
+ export declare const stringify: (params: Record<string, unknown>) => string;
1
6
  /**
2
7
  * Creates a pre-configured axios instance
3
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/transports/http.ts"],"names":[],"mappings":"AA4BA;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,aAAc,MAAM,kCA2BnD,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/transports/http.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,SAAS,WAAY,OAAO,MAAM,EAAE,OAAO,CAAC,KAAG,MAE3D,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,aAAc,MAAM,kCA2BnD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=http.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.test.d.ts","sourceRoot":"","sources":["../../../../src/core/transports/test/http.test.ts"],"names":[],"mappings":""}
package/dist/index.cjs.js CHANGED
@@ -7,6 +7,7 @@ var AsyncStorage = require('@react-native-async-storage/async-storage');
7
7
  var mitt = require('mitt');
8
8
  var debug = require('debug');
9
9
  var axios = require('axios');
10
+ var qs = require('qs');
10
11
  var HttpAgent = require('agentkeepalive');
11
12
  var io = require('socket.io-client');
12
13
  var nativeIdGenerator = require('react-native-uuid');
@@ -17,6 +18,7 @@ var AsyncStorage__default = /*#__PURE__*/_interopDefaultLegacy(AsyncStorage);
17
18
  var mitt__default = /*#__PURE__*/_interopDefaultLegacy(mitt);
18
19
  var debug__default = /*#__PURE__*/_interopDefaultLegacy(debug);
19
20
  var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
21
+ var qs__default = /*#__PURE__*/_interopDefaultLegacy(qs);
20
22
  var HttpAgent__default = /*#__PURE__*/_interopDefaultLegacy(HttpAgent);
21
23
  var io__default = /*#__PURE__*/_interopDefaultLegacy(io);
22
24
  var nativeIdGenerator__default = /*#__PURE__*/_interopDefaultLegacy(nativeIdGenerator);
@@ -809,7 +811,6 @@ const restoreCache = async (storageKey = 'amitySdk') => {
809
811
  return true;
810
812
  };
811
813
 
812
- /* eslint-disable @typescript-eslint/no-unused-vars */
813
814
  /**
814
815
  * ```js
815
816
  * import { backupCache } from '@amityco/ts-sdk'
@@ -1396,21 +1397,8 @@ const unwrapPayload = (response) => {
1396
1397
  * Axios param serializer (for querystring)
1397
1398
  * @hidden
1398
1399
  */
1399
- const stringify = (params, prefix) => {
1400
- return Object.entries(params)
1401
- .filter(([, value]) => value !== undefined)
1402
- .map(([name, value]) => {
1403
- const key = prefix ? `${prefix}[${name}]` : name;
1404
- if (Array.isArray(value)) {
1405
- return value.map(item => `${key}[]=${item}`).join('&');
1406
- }
1407
- if (typeof value !== 'object') {
1408
- return `${key}=${value}`;
1409
- }
1410
- // @ts-ignore
1411
- return stringify(value, prefix !== null && prefix !== void 0 ? prefix : name);
1412
- })
1413
- .join('&');
1400
+ const stringify = (params) => {
1401
+ return qs__default["default"].stringify(params, { arrayFormat: 'brackets' });
1414
1402
  };
1415
1403
  /**
1416
1404
  * Creates a pre-configured axios instance
@@ -20728,7 +20716,6 @@ const getUser = async (userId, isLive = false) => {
20728
20716
  isInTombstone('user', userId);
20729
20717
  let data;
20730
20718
  try {
20731
- // API-FIX: endpoint should not be /list, parameters should be querystring.
20732
20719
  const response = await client.http.get(`/api/v3/users/${encodeURIComponent(userId)}`);
20733
20720
  data = response.data;
20734
20721
  }
@@ -20875,8 +20862,7 @@ function __rest(s, e) {
20875
20862
  const queryUsers = async (query = {}) => {
20876
20863
  const client = getActiveClient();
20877
20864
  client.log('user/queryUsers', query);
20878
- const { page, displayName, filter = 'all', sortBy = 'displayName' } = query, params = __rest(query, ["page", "displayName", "filter", "sortBy"]);
20879
- // API-FIX: parameters should be querystring.
20865
+ const { page = { limit: 10 }, displayName, filter = 'all', sortBy = 'displayName' } = query, params = __rest(query, ["page", "displayName", "filter", "sortBy"]);
20880
20866
  const { data } = await client.http.get(`/api/v3/users`, {
20881
20867
  params: Object.assign(Object.assign({}, params), { keyword: displayName, filter,
20882
20868
  sortBy, options: {
@@ -20889,7 +20875,11 @@ const queryUsers = async (query = {}) => {
20889
20875
  const cachedAt = client.cache && Date.now();
20890
20876
  if (client.cache) {
20891
20877
  ingestInCache(payload, { cachedAt });
20892
- const cacheKey = ['user', 'query', query];
20878
+ /*
20879
+ * using query as cache key over params because if the keyword, filter, sort
20880
+ * change the API will NOT cache results, when it should
20881
+ */
20882
+ const cacheKey = ['user', 'query', Object.assign(Object.assign({}, query), { options: Object.assign({}, page) })];
20893
20883
  pushToCache(cacheKey, { users: users.map(getResolver('user')), paging });
20894
20884
  }
20895
20885
  fireEvent('user.fetched', data);
@@ -20917,8 +20907,13 @@ queryUsers.locally = (query = {}) => {
20917
20907
  client.log('user/queryUsers.locally', query);
20918
20908
  if (!client.cache)
20919
20909
  return;
20920
- const queryKey = ['user', 'query', query];
20921
- const { data, cachedAt } = (_a = pullFromCache(queryKey)) !== null && _a !== void 0 ? _a : {};
20910
+ const { page = { limit: 10 } } = query !== null && query !== void 0 ? query : {};
20911
+ const cacheKey = [
20912
+ 'user',
20913
+ 'query',
20914
+ Object.assign(Object.assign({}, query), { options: Object.assign({}, page) }),
20915
+ ];
20916
+ const { data, cachedAt } = (_a = pullFromCache(cacheKey)) !== null && _a !== void 0 ? _a : {};
20922
20917
  const users = (_b = data === null || data === void 0 ? void 0 : data.users.map(userId => pullFromCache(['user', 'get', userId])).filter(Boolean).map(({ data }) => data)) !== null && _b !== void 0 ? _b : [];
20923
20918
  const prevPage = toPage(data === null || data === void 0 ? void 0 : data.paging.previous);
20924
20919
  const nextPage = toPage(data === null || data === void 0 ? void 0 : data.paging.next);
@@ -23274,17 +23269,6 @@ const deleteComment = async (commentId, permanent = false) => {
23274
23269
  return deleted;
23275
23270
  };
23276
23271
 
23277
- /** @hidden */
23278
- const fetchReference = async (referenceType, referenceId) => {
23279
- if (referenceType === 'message')
23280
- return getMessage(referenceId);
23281
- if (referenceType === 'post')
23282
- return getPost(referenceId);
23283
- if (referenceType === 'comment')
23284
- return getComment(referenceId);
23285
- throw new Error(`Incorrect referenceType: ${referenceType}`);
23286
- };
23287
-
23288
23272
  /** @hidden */
23289
23273
  const preparePayloadForCache = (event, payload) => {
23290
23274
  var _a, _b;
@@ -23372,7 +23356,6 @@ const prepareMessagePayloadForCache = (payload) => {
23372
23356
  * @async
23373
23357
  * */
23374
23358
  const addReaction = async (referenceType, referenceId, reactionName) => {
23375
- var _a, _b;
23376
23359
  const client = getActiveClient();
23377
23360
  client.log('reaction/createReaction', {
23378
23361
  referenceId,
@@ -23384,9 +23367,7 @@ const addReaction = async (referenceType, referenceId, reactionName) => {
23384
23367
  referenceType,
23385
23368
  reactionName,
23386
23369
  });
23387
- const model = await fetchReference(referenceType, referenceId);
23388
- dispatchReactable(referenceType, model.data);
23389
- return (_b = (_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName)) !== null && _b !== void 0 ? _b : false;
23370
+ return true;
23390
23371
  };
23391
23372
  /**
23392
23373
  * ```js
@@ -23443,7 +23424,6 @@ addReaction.optimistically = (referenceType, referenceId, reactionName) => {
23443
23424
  * @async
23444
23425
  * */
23445
23426
  const removeReaction = async (referenceType, referenceId, reactionName) => {
23446
- var _a, _b;
23447
23427
  const client = getActiveClient();
23448
23428
  client.log('reaction/removeReaction', {
23449
23429
  referenceId,
@@ -23453,9 +23433,7 @@ const removeReaction = async (referenceType, referenceId, reactionName) => {
23453
23433
  await client.http.delete(`/api/v2/reactions`, {
23454
23434
  data: { referenceId, referenceType, reactionName },
23455
23435
  });
23456
- const model = await fetchReference(referenceType, referenceId);
23457
- dispatchReactable(referenceType, model.data);
23458
- return (_b = !((_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName))) !== null && _b !== void 0 ? _b : false;
23436
+ return true;
23459
23437
  };
23460
23438
  /**
23461
23439
  * ```js
@@ -24508,9 +24486,18 @@ getChannels.locally = (channelIds) => {
24508
24486
  const getChannel = async (channelId) => {
24509
24487
  const client = getActiveClient();
24510
24488
  client.log('channel/getChannel', channelId);
24511
- // API-FIX: endpoint should not be /list, parameters should be querystring.
24512
- const { data: payload } = await client.http.get(`/api/v3/channels/${encodeURIComponent(channelId)}`);
24513
- const data = prepareChannelPayload(payload);
24489
+ isInTombstone('channel', channelId);
24490
+ let data;
24491
+ try {
24492
+ const { data: payload } = await client.http.get(`/api/v3/channels/${encodeURIComponent(channelId)}`);
24493
+ data = prepareChannelPayload(payload);
24494
+ }
24495
+ catch (error) {
24496
+ if (checkIfShouldGoesToTombstone(error === null || error === void 0 ? void 0 : error.code)) {
24497
+ pushToTombstone('channel', channelId);
24498
+ }
24499
+ throw error;
24500
+ }
24514
24501
  const cachedAt = client.cache && Date.now();
24515
24502
  if (client.cache)
24516
24503
  ingestInCache(data, { cachedAt });
@@ -24790,7 +24777,10 @@ const addChannelMembers = async (channelId, userIds) => {
24790
24777
  const data = prepareChannelPayload(payload);
24791
24778
  if (client.cache)
24792
24779
  ingestInCache(data);
24793
- fireEvent('v3.channel.didAddUsers', data);
24780
+ /*
24781
+ * should fire event for each user that was added
24782
+ */
24783
+ userIds.forEach(id => fireEvent('v3.channel.didAddUsers', Object.assign(Object.assign({}, data), { channelUsers: data.channelUsers.filter(u => u.userId === id) })));
24794
24784
  const { channelUsers } = data;
24795
24785
  return !!channelUsers.find(channelUser => channelUser.channelId === channelId && channelUser.membership === 'member');
24796
24786
  };
package/dist/index.esm.js CHANGED
@@ -3,6 +3,7 @@ import AsyncStorage from '@react-native-async-storage/async-storage';
3
3
  import mitt from 'mitt';
4
4
  import debug from 'debug';
5
5
  import axios from 'axios';
6
+ import qs from 'qs';
6
7
  import HttpAgent, { HttpsAgent } from 'agentkeepalive';
7
8
  import io from 'socket.io-client';
8
9
  import nativeIdGenerator from 'react-native-uuid';
@@ -795,7 +796,6 @@ const restoreCache = async (storageKey = 'amitySdk') => {
795
796
  return true;
796
797
  };
797
798
 
798
- /* eslint-disable @typescript-eslint/no-unused-vars */
799
799
  /**
800
800
  * ```js
801
801
  * import { backupCache } from '@amityco/ts-sdk'
@@ -1382,21 +1382,8 @@ const unwrapPayload = (response) => {
1382
1382
  * Axios param serializer (for querystring)
1383
1383
  * @hidden
1384
1384
  */
1385
- const stringify = (params, prefix) => {
1386
- return Object.entries(params)
1387
- .filter(([, value]) => value !== undefined)
1388
- .map(([name, value]) => {
1389
- const key = prefix ? `${prefix}[${name}]` : name;
1390
- if (Array.isArray(value)) {
1391
- return value.map(item => `${key}[]=${item}`).join('&');
1392
- }
1393
- if (typeof value !== 'object') {
1394
- return `${key}=${value}`;
1395
- }
1396
- // @ts-ignore
1397
- return stringify(value, prefix !== null && prefix !== void 0 ? prefix : name);
1398
- })
1399
- .join('&');
1385
+ const stringify = (params) => {
1386
+ return qs.stringify(params, { arrayFormat: 'brackets' });
1400
1387
  };
1401
1388
  /**
1402
1389
  * Creates a pre-configured axios instance
@@ -20714,7 +20701,6 @@ const getUser = async (userId, isLive = false) => {
20714
20701
  isInTombstone('user', userId);
20715
20702
  let data;
20716
20703
  try {
20717
- // API-FIX: endpoint should not be /list, parameters should be querystring.
20718
20704
  const response = await client.http.get(`/api/v3/users/${encodeURIComponent(userId)}`);
20719
20705
  data = response.data;
20720
20706
  }
@@ -20861,8 +20847,7 @@ function __rest(s, e) {
20861
20847
  const queryUsers = async (query = {}) => {
20862
20848
  const client = getActiveClient();
20863
20849
  client.log('user/queryUsers', query);
20864
- const { page, displayName, filter = 'all', sortBy = 'displayName' } = query, params = __rest(query, ["page", "displayName", "filter", "sortBy"]);
20865
- // API-FIX: parameters should be querystring.
20850
+ const { page = { limit: 10 }, displayName, filter = 'all', sortBy = 'displayName' } = query, params = __rest(query, ["page", "displayName", "filter", "sortBy"]);
20866
20851
  const { data } = await client.http.get(`/api/v3/users`, {
20867
20852
  params: Object.assign(Object.assign({}, params), { keyword: displayName, filter,
20868
20853
  sortBy, options: {
@@ -20875,7 +20860,11 @@ const queryUsers = async (query = {}) => {
20875
20860
  const cachedAt = client.cache && Date.now();
20876
20861
  if (client.cache) {
20877
20862
  ingestInCache(payload, { cachedAt });
20878
- const cacheKey = ['user', 'query', query];
20863
+ /*
20864
+ * using query as cache key over params because if the keyword, filter, sort
20865
+ * change the API will NOT cache results, when it should
20866
+ */
20867
+ const cacheKey = ['user', 'query', Object.assign(Object.assign({}, query), { options: Object.assign({}, page) })];
20879
20868
  pushToCache(cacheKey, { users: users.map(getResolver('user')), paging });
20880
20869
  }
20881
20870
  fireEvent('user.fetched', data);
@@ -20903,8 +20892,13 @@ queryUsers.locally = (query = {}) => {
20903
20892
  client.log('user/queryUsers.locally', query);
20904
20893
  if (!client.cache)
20905
20894
  return;
20906
- const queryKey = ['user', 'query', query];
20907
- const { data, cachedAt } = (_a = pullFromCache(queryKey)) !== null && _a !== void 0 ? _a : {};
20895
+ const { page = { limit: 10 } } = query !== null && query !== void 0 ? query : {};
20896
+ const cacheKey = [
20897
+ 'user',
20898
+ 'query',
20899
+ Object.assign(Object.assign({}, query), { options: Object.assign({}, page) }),
20900
+ ];
20901
+ const { data, cachedAt } = (_a = pullFromCache(cacheKey)) !== null && _a !== void 0 ? _a : {};
20908
20902
  const users = (_b = data === null || data === void 0 ? void 0 : data.users.map(userId => pullFromCache(['user', 'get', userId])).filter(Boolean).map(({ data }) => data)) !== null && _b !== void 0 ? _b : [];
20909
20903
  const prevPage = toPage(data === null || data === void 0 ? void 0 : data.paging.previous);
20910
20904
  const nextPage = toPage(data === null || data === void 0 ? void 0 : data.paging.next);
@@ -23260,17 +23254,6 @@ const deleteComment = async (commentId, permanent = false) => {
23260
23254
  return deleted;
23261
23255
  };
23262
23256
 
23263
- /** @hidden */
23264
- const fetchReference = async (referenceType, referenceId) => {
23265
- if (referenceType === 'message')
23266
- return getMessage(referenceId);
23267
- if (referenceType === 'post')
23268
- return getPost(referenceId);
23269
- if (referenceType === 'comment')
23270
- return getComment(referenceId);
23271
- throw new Error(`Incorrect referenceType: ${referenceType}`);
23272
- };
23273
-
23274
23257
  /** @hidden */
23275
23258
  const preparePayloadForCache = (event, payload) => {
23276
23259
  var _a, _b;
@@ -23358,7 +23341,6 @@ const prepareMessagePayloadForCache = (payload) => {
23358
23341
  * @async
23359
23342
  * */
23360
23343
  const addReaction = async (referenceType, referenceId, reactionName) => {
23361
- var _a, _b;
23362
23344
  const client = getActiveClient();
23363
23345
  client.log('reaction/createReaction', {
23364
23346
  referenceId,
@@ -23370,9 +23352,7 @@ const addReaction = async (referenceType, referenceId, reactionName) => {
23370
23352
  referenceType,
23371
23353
  reactionName,
23372
23354
  });
23373
- const model = await fetchReference(referenceType, referenceId);
23374
- dispatchReactable(referenceType, model.data);
23375
- return (_b = (_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName)) !== null && _b !== void 0 ? _b : false;
23355
+ return true;
23376
23356
  };
23377
23357
  /**
23378
23358
  * ```js
@@ -23429,7 +23409,6 @@ addReaction.optimistically = (referenceType, referenceId, reactionName) => {
23429
23409
  * @async
23430
23410
  * */
23431
23411
  const removeReaction = async (referenceType, referenceId, reactionName) => {
23432
- var _a, _b;
23433
23412
  const client = getActiveClient();
23434
23413
  client.log('reaction/removeReaction', {
23435
23414
  referenceId,
@@ -23439,9 +23418,7 @@ const removeReaction = async (referenceType, referenceId, reactionName) => {
23439
23418
  await client.http.delete(`/api/v2/reactions`, {
23440
23419
  data: { referenceId, referenceType, reactionName },
23441
23420
  });
23442
- const model = await fetchReference(referenceType, referenceId);
23443
- dispatchReactable(referenceType, model.data);
23444
- return (_b = !((_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName))) !== null && _b !== void 0 ? _b : false;
23421
+ return true;
23445
23422
  };
23446
23423
  /**
23447
23424
  * ```js
@@ -24494,9 +24471,18 @@ getChannels.locally = (channelIds) => {
24494
24471
  const getChannel = async (channelId) => {
24495
24472
  const client = getActiveClient();
24496
24473
  client.log('channel/getChannel', channelId);
24497
- // API-FIX: endpoint should not be /list, parameters should be querystring.
24498
- const { data: payload } = await client.http.get(`/api/v3/channels/${encodeURIComponent(channelId)}`);
24499
- const data = prepareChannelPayload(payload);
24474
+ isInTombstone('channel', channelId);
24475
+ let data;
24476
+ try {
24477
+ const { data: payload } = await client.http.get(`/api/v3/channels/${encodeURIComponent(channelId)}`);
24478
+ data = prepareChannelPayload(payload);
24479
+ }
24480
+ catch (error) {
24481
+ if (checkIfShouldGoesToTombstone(error === null || error === void 0 ? void 0 : error.code)) {
24482
+ pushToTombstone('channel', channelId);
24483
+ }
24484
+ throw error;
24485
+ }
24500
24486
  const cachedAt = client.cache && Date.now();
24501
24487
  if (client.cache)
24502
24488
  ingestInCache(data, { cachedAt });
@@ -24776,7 +24762,10 @@ const addChannelMembers = async (channelId, userIds) => {
24776
24762
  const data = prepareChannelPayload(payload);
24777
24763
  if (client.cache)
24778
24764
  ingestInCache(data);
24779
- fireEvent('v3.channel.didAddUsers', data);
24765
+ /*
24766
+ * should fire event for each user that was added
24767
+ */
24768
+ userIds.forEach(id => fireEvent('v3.channel.didAddUsers', Object.assign(Object.assign({}, data), { channelUsers: data.channelUsers.filter(u => u.userId === id) })));
24780
24769
  const { channelUsers } = data;
24781
24770
  return !!channelUsers.find(channelUser => channelUser.channelId === channelId && channelUser.membership === 'member');
24782
24771
  };