@amityco/ts-sdk 7.9.3-8cb8198.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 (179) hide show
  1. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/errors.d.ts +3 -1
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/errors.d.ts.map +1 -1
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/errors.js.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.d.ts +1 -0
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.d.ts.map +1 -1
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.js.map +1 -1
  7. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts +11 -0
  8. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts.map +1 -1
  9. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.js.map +1 -1
  10. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.d.ts +6 -0
  11. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.d.ts.map +1 -1
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.js +6 -1
  13. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.js.map +1 -1
  14. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts +1 -0
  15. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts.map +1 -1
  16. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js +1 -0
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js.map +1 -1
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/categoryRepository/api/getCategory.d.ts.map +1 -1
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/categoryRepository/api/getCategory.js +1 -1
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/categoryRepository/api/getCategory.js.map +1 -1
  21. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.d.ts +0 -14
  22. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.d.ts.map +1 -1
  23. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.js +2 -6
  24. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.js.map +1 -1
  25. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.d.ts +16 -0
  26. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.d.ts.map +1 -0
  27. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.js +20 -0
  28. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.js.map +1 -0
  29. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.d.ts +8 -0
  30. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.d.ts.map +1 -0
  31. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.js +58 -0
  32. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.js.map +1 -0
  33. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.d.ts +1 -0
  34. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.d.ts.map +1 -1
  35. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.js +1 -0
  36. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.js.map +1 -1
  37. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/createClient.d.ts.map +1 -1
  38. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/createClient.js +3 -1
  39. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/createClient.js.map +1 -1
  40. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.d.ts +21 -0
  41. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.d.ts.map +1 -0
  42. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.js +27 -0
  43. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.js.map +1 -0
  44. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.d.ts +2 -0
  45. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.d.ts.map +1 -0
  46. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.js +21 -0
  47. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.js.map +1 -0
  48. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.d.ts +3 -0
  49. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.d.ts.map +1 -0
  50. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.js +16 -0
  51. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.js.map +1 -0
  52. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.d.ts +1 -3
  53. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.d.ts.map +1 -1
  54. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.js.map +1 -1
  55. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.d.ts +24 -0
  56. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.d.ts.map +1 -0
  57. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.js +30 -0
  58. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.js.map +1 -0
  59. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts +4 -0
  60. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts.map +1 -1
  61. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js +4 -0
  62. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js.map +1 -1
  63. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.d.ts.map +1 -1
  64. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.js +4 -4
  65. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.js.map +1 -1
  66. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.d.ts +24 -0
  67. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.d.ts.map +1 -0
  68. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.js +95 -0
  69. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.js.map +1 -0
  70. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.d.ts +26 -0
  71. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.d.ts.map +1 -0
  72. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.js +92 -0
  73. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.js.map +1 -0
  74. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.d.ts.map +1 -1
  75. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.js +35 -2
  76. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.js.map +1 -1
  77. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.d.ts +16 -0
  78. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.d.ts.map +1 -0
  79. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.js +29 -0
  80. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.js.map +1 -0
  81. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.d.ts +2 -1
  82. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.d.ts.map +1 -1
  83. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.js +2 -2
  84. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.js.map +1 -1
  85. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.d.ts +5 -0
  86. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.d.ts.map +1 -0
  87. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.js +9 -0
  88. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.js.map +1 -0
  89. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.d.ts +21 -0
  90. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.d.ts.map +1 -0
  91. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.js +34 -0
  92. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.js.map +1 -0
  93. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.d.ts.map +1 -1
  94. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.js +4 -4
  95. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.js.map +1 -1
  96. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
  97. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js +8 -0
  98. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js.map +1 -1
  99. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  100. package/dist/@types/core/errors.d.ts +3 -1
  101. package/dist/@types/core/errors.d.ts.map +1 -1
  102. package/dist/@types/domains/channel.d.ts +1 -0
  103. package/dist/@types/domains/channel.d.ts.map +1 -1
  104. package/dist/@types/domains/client.d.ts +11 -0
  105. package/dist/@types/domains/client.d.ts.map +1 -1
  106. package/dist/@types/domains/user.d.ts +6 -0
  107. package/dist/@types/domains/user.d.ts.map +1 -1
  108. package/dist/@types/index.d.ts +1 -0
  109. package/dist/@types/index.d.ts.map +1 -1
  110. package/dist/categoryRepository/api/getCategory.d.ts.map +1 -1
  111. package/dist/channelRepository/api/unmuteChannel.d.ts +0 -14
  112. package/dist/channelRepository/api/unmuteChannel.d.ts.map +1 -1
  113. package/dist/channelRepository/internalApi/getMembership.d.ts +16 -0
  114. package/dist/channelRepository/internalApi/getMembership.d.ts.map +1 -0
  115. package/dist/channelRepository/observers/getMembership.d.ts +8 -0
  116. package/dist/channelRepository/observers/getMembership.d.ts.map +1 -0
  117. package/dist/client/api/activeUser.d.ts +1 -0
  118. package/dist/client/api/activeUser.d.ts.map +1 -1
  119. package/dist/client/api/createClient.d.ts.map +1 -1
  120. package/dist/client/api/getBotToken.d.ts +21 -0
  121. package/dist/client/api/getBotToken.d.ts.map +1 -0
  122. package/dist/client/api/getCurrentUser.d.ts +2 -0
  123. package/dist/client/api/getCurrentUser.d.ts.map +1 -0
  124. package/dist/client/api/getCurrentUserType.d.ts +3 -0
  125. package/dist/client/api/getCurrentUserType.d.ts.map +1 -0
  126. package/dist/client/api/getToken.d.ts +1 -3
  127. package/dist/client/api/getToken.d.ts.map +1 -1
  128. package/dist/client/api/getVisitorToken.d.ts +24 -0
  129. package/dist/client/api/getVisitorToken.d.ts.map +1 -0
  130. package/dist/client/api/index.d.ts +4 -0
  131. package/dist/client/api/index.d.ts.map +1 -1
  132. package/dist/client/api/login.d.ts.map +1 -1
  133. package/dist/client/api/loginAsBot.d.ts +24 -0
  134. package/dist/client/api/loginAsBot.d.ts.map +1 -0
  135. package/dist/client/api/loginAsVisitor.d.ts +26 -0
  136. package/dist/client/api/loginAsVisitor.d.ts.map +1 -0
  137. package/dist/client/api/renewal.d.ts.map +1 -1
  138. package/dist/client/utils/setBotClientToken.d.ts +16 -0
  139. package/dist/client/utils/setBotClientToken.d.ts.map +1 -0
  140. package/dist/client/utils/setClientToken.d.ts +2 -1
  141. package/dist/client/utils/setClientToken.d.ts.map +1 -1
  142. package/dist/client/utils/setCurrentUser.d.ts +5 -0
  143. package/dist/client/utils/setCurrentUser.d.ts.map +1 -0
  144. package/dist/client/utils/setVisitorClientToken.d.ts +21 -0
  145. package/dist/client/utils/setVisitorClientToken.d.ts.map +1 -0
  146. package/dist/core/transports/http.d.ts.map +1 -1
  147. package/dist/index.cjs.js +466 -43
  148. package/dist/index.esm.js +467 -44
  149. package/dist/index.umd.js +3 -3
  150. package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
  151. package/package.json +1 -1
  152. package/src/@types/core/errors.ts +2 -0
  153. package/src/@types/domains/channel.ts +4 -0
  154. package/src/@types/domains/client.ts +17 -0
  155. package/src/@types/domains/user.ts +8 -0
  156. package/src/@types/index.ts +1 -0
  157. package/src/categoryRepository/api/getCategory.ts +3 -1
  158. package/src/channelRepository/api/unmuteChannel.ts +2 -4
  159. package/src/channelRepository/internalApi/getMembership.ts +45 -0
  160. package/src/channelRepository/observers/getMembership.ts +89 -0
  161. package/src/client/api/activeUser.ts +1 -0
  162. package/src/client/api/createClient.ts +3 -5
  163. package/src/client/api/getBotToken.ts +44 -0
  164. package/src/client/api/getCurrentUser.ts +32 -0
  165. package/src/client/api/getCurrentUserType.ts +23 -0
  166. package/src/client/api/getToken.ts +1 -1
  167. package/src/client/api/getVisitorToken.ts +47 -0
  168. package/src/client/api/index.ts +6 -0
  169. package/src/client/api/login.ts +5 -4
  170. package/src/client/api/loginAsBot.ts +125 -0
  171. package/src/client/api/loginAsVisitor.ts +129 -0
  172. package/src/client/api/renewal.ts +42 -2
  173. package/src/client/utils/setBotClientToken.ts +35 -0
  174. package/src/client/utils/setClientToken.ts +2 -2
  175. package/src/client/utils/setCurrentUser.ts +15 -0
  176. package/src/client/utils/setVisitorClientToken.ts +40 -0
  177. package/src/core/transports/http.ts +5 -4
  178. package/src/utils/linkedObject/channelLinkedObject.ts +11 -0
  179. package/tsconfig.tsbuildinfo +1 -1
package/dist/index.esm.js CHANGED
@@ -14,6 +14,13 @@ var MembershipAcceptanceTypeEnum;
14
14
  MembershipAcceptanceTypeEnum["INVITATION"] = "invitation";
15
15
  })(MembershipAcceptanceTypeEnum || (MembershipAcceptanceTypeEnum = {}));
16
16
 
17
+ var UserTypeEnum;
18
+ (function (UserTypeEnum) {
19
+ UserTypeEnum["SIGNED_IN"] = "signed-in";
20
+ UserTypeEnum["VISITOR"] = "visitor";
21
+ UserTypeEnum["BOT"] = "bot";
22
+ })(UserTypeEnum || (UserTypeEnum = {}));
23
+
17
24
  const FileType = Object.freeze({
18
25
  FILE: 'file',
19
26
  IMAGE: 'image',
@@ -1333,6 +1340,7 @@ let activeUser = null;
1333
1340
  */
1334
1341
  /**
1335
1342
  * for internal use
1343
+ * @deprecated please use getCurrentUser api instead.
1336
1344
  */
1337
1345
  const getActiveUser = () => {
1338
1346
  if (!activeUser) {
@@ -1766,12 +1774,6 @@ const createHttpTransport = (endpoint) => {
1766
1774
  controller.abort();
1767
1775
  handleRequestCancelation(RequestCancelation.UserDeleted);
1768
1776
  }
1769
- if (tokenExpiry) {
1770
- if (Date.now() >= Date.parse(tokenExpiry)) {
1771
- controller.abort(RequestCancelation.UserDeleted);
1772
- handleRequestCancelation(RequestCancelation.TokenExpired);
1773
- }
1774
- }
1775
1777
  }
1776
1778
  return config;
1777
1779
  });
@@ -22710,6 +22712,72 @@ const getMyMembership = (channelId, callback) => {
22710
22712
  };
22711
22713
  };
22712
22714
 
22715
+ const getMembership$1 = ({ channelId, userId, }) => {
22716
+ const client = getActiveClient();
22717
+ client.log('channel/getMembership.locally');
22718
+ const cacheChannelUser = pullFromCache([
22719
+ 'channelUsers',
22720
+ 'get',
22721
+ `${channelId}#${userId}`,
22722
+ ]);
22723
+ if (!cacheChannelUser) {
22724
+ throw new ASCApiError('Item not found!', 400400 /* Amity.ServerError.ITEM_NOT_FOUND */, "error" /* Amity.ErrorLevel.ERROR */);
22725
+ }
22726
+ return {
22727
+ data: cacheChannelUser.data,
22728
+ cachedAt: cacheChannelUser.cachedAt,
22729
+ };
22730
+ };
22731
+
22732
+ const getMembership = ({ channelId, userId, callback, }) => {
22733
+ const { log, cache } = getActiveClient();
22734
+ if (!cache) {
22735
+ console.log('This observable object need the cache data!');
22736
+ }
22737
+ const timestamp = Date.now();
22738
+ log(`liveMembership(tmpid: ${timestamp}) > listen`);
22739
+ const disposers = [];
22740
+ let isUnsyncedModel = false;
22741
+ let model;
22742
+ const dispatcher = (data) => {
22743
+ callback(Object.assign(Object.assign({}, data), { data: data.data ? channelMemberLinkedObject(data.data) : data.data }));
22744
+ };
22745
+ const realtimeRouter = (_, __) => {
22746
+ const { data } = getMembership$1({ channelId, userId });
22747
+ if (isEqual(model, data))
22748
+ return;
22749
+ dispatcher({ loading: false, data });
22750
+ };
22751
+ const onFetch = () => {
22752
+ const query = createQuery(async () => getMembership$1({ channelId, userId }));
22753
+ runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
22754
+ if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
22755
+ dispatcher({
22756
+ data,
22757
+ origin,
22758
+ loading: false,
22759
+ error: new ASCApiError(UNSYNCED_OBJECT_CACHED_AT_MESSAGE, 800800 /* Amity.ClientError.DISALOOW_UNSYNCED_OBJECT */, "error" /* Amity.ErrorLevel.ERROR */),
22760
+ });
22761
+ isUnsyncedModel = true;
22762
+ disposers.forEach(fn => fn());
22763
+ }
22764
+ else if (!isUnsyncedModel) {
22765
+ dispatcher({ loading, data, origin, error });
22766
+ }
22767
+ if (error) {
22768
+ disposers.forEach(fn => fn());
22769
+ }
22770
+ });
22771
+ };
22772
+ disposers.push(onChannelMemberBanned(realtimeRouter));
22773
+ disposers.push(onChannelMemberUnbanned(realtimeRouter));
22774
+ disposers.push(onChannelSetUserMuted(realtimeRouter));
22775
+ onFetch();
22776
+ return () => {
22777
+ disposers.forEach(fn => fn());
22778
+ };
22779
+ };
22780
+
22713
22781
  const channelLinkedObject = (channel) => {
22714
22782
  var _a;
22715
22783
  let previewMembers = [];
@@ -22728,6 +22796,13 @@ const channelLinkedObject = (channel) => {
22728
22796
  markAsRead: () => markAsRead(channel.channelInternalId),
22729
22797
  previewMembers,
22730
22798
  myMembership: (callback) => getMyMembership(channel.channelId, callback),
22799
+ getMembership: (userId, callback) => {
22800
+ getMembership({
22801
+ channelId: channel.channelId,
22802
+ userId,
22803
+ callback,
22804
+ });
22805
+ },
22731
22806
  });
22732
22807
  };
22733
22808
 
@@ -23332,7 +23407,7 @@ const setClientToken = async (params) => {
23332
23407
  const client = getActiveClient();
23333
23408
  // begin establishing session
23334
23409
  setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
23335
- const { accessToken, users, expiresAt, issuedAt } = await getToken(params);
23410
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getToken(params);
23336
23411
  // manually setup the token for http transport
23337
23412
  client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
23338
23413
  client.http.defaults.metadata = {
@@ -23348,7 +23423,66 @@ const setClientToken = async (params) => {
23348
23423
  };
23349
23424
  client.token = { accessToken, issuedAt, expiresAt };
23350
23425
  setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
23351
- return { accessToken, users };
23426
+ return { accessToken, users, userType };
23427
+ };
23428
+
23429
+ /**
23430
+ * Retrieves a pair of {@link Amity.Tokens} necessary for connection
23431
+ *
23432
+ * @param params get visitor token param
23433
+ * @param params.deviceId The user's device Id (can be manually set for native users)
23434
+ * @param params.authSignature The authenitcation signature - necessary when network option is set to secure
23435
+ * @param params.authSignatureExpiresAt Expire time of the authenitcation signature
23436
+ * @param options get bot token options
23437
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
23438
+ * @return The accessToken for the given userId
23439
+ *
23440
+ *
23441
+ * @category Client API
23442
+ * @hidden
23443
+ */
23444
+ const getVisitorToken = async ({ params, options, }) => {
23445
+ const client = getActiveClient();
23446
+ client.log('client/api/getVisitorToken', params);
23447
+ const deviceInfo = getDeviceInfo();
23448
+ const { data } = await client.http.post('/api/v5/sessions/visitor', Object.assign(Object.assign({}, params), { deviceInfo }), {
23449
+ headers: {
23450
+ 'X-API-Key': client.apiKey,
23451
+ 'set-access-token-cookie': (options === null || options === void 0 ? void 0 : options.setAccessTokenCookie) || false,
23452
+ },
23453
+ });
23454
+ return data;
23455
+ };
23456
+
23457
+ /**
23458
+ * A util to set or refresh client token
23459
+ *
23460
+ * @param params.userId the user ID for the current session
23461
+ * @param params.displayName the user's displayName for the current session
23462
+ * @param params.deviceId Manual override of the user's device id (for device management)
23463
+ * @param params.authToken The authentication token - necessary when network option is set to secure
23464
+ * @param options get bot token options
23465
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
23466
+ * @returns token & user info
23467
+ *
23468
+ * @category private
23469
+ * @async
23470
+ */
23471
+ const setVisitorClientToken = async (params) => {
23472
+ const client = getActiveClient();
23473
+ // begin establishing session
23474
+ setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
23475
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getVisitorToken(params);
23476
+ // manually setup the token for http transport
23477
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
23478
+ client.http.defaults.metadata = {
23479
+ tokenExpiry: expiresAt,
23480
+ isGlobalBanned: false,
23481
+ isUserDeleted: false,
23482
+ };
23483
+ client.token = { accessToken, issuedAt, expiresAt };
23484
+ setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
23485
+ return { accessToken, users, userType };
23352
23486
  };
23353
23487
 
23354
23488
  function prepareUserPayload(response) {
@@ -24808,13 +24942,34 @@ const removeChannelMarkerCache = (channel) => {
24808
24942
  dropFromCache(['channelMarker', 'get', id], true);
24809
24943
  };
24810
24944
 
24945
+ let currentUserType = null;
24946
+ /* begin_public_function
24947
+ id: client.get_current_user_type
24948
+ */
24949
+ const getCurrentUserType = () => {
24950
+ if (!currentUserType) {
24951
+ throw new ASCError('Connect client first', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "fatal" /* Amity.ErrorLevel.FATAL */);
24952
+ }
24953
+ return currentUserType;
24954
+ };
24955
+ /* end_public_function */
24956
+ const setCurrentUserType = (userType) => {
24957
+ currentUserType = userType;
24958
+ };
24959
+
24960
+ const setCurrentUser = ({ user, userType, }) => {
24961
+ setActiveUser(user);
24962
+ setCurrentUserType(userType);
24963
+ pushToCache(['user', 'get', user.userId], user);
24964
+ };
24965
+
24811
24966
  /* eslint-disable no-param-reassign */
24812
24967
  /*
24813
24968
  * declared earlier to accomodate case when logging in with a different user
24814
24969
  * than the one already connected, in which case the existing subscriptions need
24815
24970
  * to be cleared
24816
24971
  */
24817
- let subscriptions$1 = [];
24972
+ let subscriptions$3 = [];
24818
24973
  async function runMqtt$1() {
24819
24974
  await modifyMqttConnection();
24820
24975
  }
@@ -24849,13 +25004,13 @@ const login = async (params, sessionHandler, config) => {
24849
25004
  if (client.userId && client.userId !== params.userId) {
24850
25005
  await logout();
24851
25006
  // Remove subscription to ban and delete
24852
- subscriptions$1.forEach(fn => fn());
24853
- subscriptions$1 = [];
25007
+ subscriptions$3.forEach(fn => fn());
25008
+ subscriptions$3 = [];
24854
25009
  }
24855
25010
  // default values
24856
25011
  const defaultDeviceId = await getDeviceId();
24857
25012
  try {
24858
- const { users } = await setClientToken({
25013
+ const { users, userType } = await setClientToken({
24859
25014
  params: Object.assign(Object.assign({}, params), { displayName: params === null || params === void 0 ? void 0 : params.displayName, deviceId: (params === null || params === void 0 ? void 0 : params.deviceId) || defaultDeviceId }),
24860
25015
  options: {
24861
25016
  setAccessTokenCookie: true,
@@ -24869,7 +25024,7 @@ const login = async (params, sessionHandler, config) => {
24869
25024
  terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
24870
25025
  return false;
24871
25026
  }
24872
- if (user.isGlobalBanned) {
25027
+ if (user.isGlobalBan) {
24873
25028
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
24874
25029
  return false;
24875
25030
  }
@@ -24880,7 +25035,7 @@ const login = async (params, sessionHandler, config) => {
24880
25035
  * token expires
24881
25036
  */
24882
25037
  unsubWatcher = client.accessTokenExpiryWatcher(sessionHandler);
24883
- setActiveUser(user);
25038
+ setCurrentUser({ user, userType });
24884
25039
  }
24885
25040
  catch (error) {
24886
25041
  /*
@@ -24895,42 +25050,141 @@ const login = async (params, sessionHandler, config) => {
24895
25050
  runMqtt$1();
24896
25051
  }
24897
25052
  await initializeMessagePreviewSetting();
24898
- if (subscriptions$1.length === 0) {
24899
- subscriptions$1.push(
25053
+ if (subscriptions$3.length === 0) {
25054
+ subscriptions$3.push(
24900
25055
  // GLOBAL_BAN
24901
25056
  onClientBanned((_) => {
24902
25057
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
24903
- subscriptions$1.forEach(fn => fn());
25058
+ subscriptions$3.forEach(fn => fn());
24904
25059
  unsubWatcher();
24905
25060
  }), onTokenTerminated(_ => {
24906
25061
  terminateClient();
24907
- subscriptions$1.forEach(fn => fn());
25062
+ subscriptions$3.forEach(fn => fn());
24908
25063
  unsubWatcher();
24909
25064
  }), onUserDeleted$2((user) => {
24910
25065
  if (user.userId === client.userId) {
24911
25066
  terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
24912
- subscriptions$1.forEach(fn => fn());
25067
+ subscriptions$3.forEach(fn => fn());
24913
25068
  unsubWatcher();
24914
25069
  }
24915
25070
  }), onTokenExpired(state => {
24916
25071
  SessionWatcher$1.getInstance().setSessionState(state);
24917
25072
  logout();
24918
- subscriptions$1.forEach(fn => fn());
25073
+ subscriptions$3.forEach(fn => fn());
24919
25074
  }),
24920
25075
  // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave
24921
25076
  // the channel because currently backend can't handle this, so every time a user is banned from
24922
25077
  // a channel or the channel is deleted the channel's unread count will not be reset to zero
24923
25078
  onChannelDeleted(removeChannelMarkerCache), onChannelMemberBanned(removeChannelMarkerCache), markReadEngineOnLoginHandler(), analyticsEngineOnLoginHandler(), objectResolverEngineOnLoginHandler(), reactionSyncEngineOnLoginHandler());
24924
25079
  if (client.useLegacyUnreadCount) {
24925
- subscriptions$1.push(readReceiptSyncEngineOnLoginHandler());
25080
+ subscriptions$3.push(readReceiptSyncEngineOnLoginHandler());
24926
25081
  }
24927
25082
  else
24928
- subscriptions$1.push(legacyReadReceiptSyncEngineOnLoginHandler());
25083
+ subscriptions$3.push(legacyReadReceiptSyncEngineOnLoginHandler());
25084
+ }
25085
+ return true;
25086
+ };
25087
+ /* end_public_function */
25088
+
25089
+ /* eslint-disable require-atomic-updates */
25090
+ /*
25091
+ * declared earlier to accomodate case when logging in with a different user
25092
+ * than the one already connected, in which case the existing subscriptions need
25093
+ * to be cleared
25094
+ */
25095
+ const subscriptions$2 = [];
25096
+ /* begin_public_function
25097
+ id: client.loginAsVisitor
25098
+ */
25099
+ /**
25100
+ * ```js
25101
+ * import { loginAsVisitor } from '@amityco/ts-sdk/client/api'
25102
+ * const success = await loginAsVisitor({
25103
+ sessionHandler: {
25104
+ sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
25105
+ ...
25106
+ }
25107
+ * })
25108
+ * ```
25109
+ *
25110
+ * Connects an {@link Amity.Client} instance to ASC servers
25111
+ *
25112
+ * @param params. the connect parameters
25113
+ * @param params.authSignature The authenitcation signature - necessary when network option is set to secure
25114
+ * @param params.authSignatureExpiresAt Expire time of the authenitcation signature
25115
+ * @param params.sessionHandler
25116
+ * @returns a success boolean if connected
25117
+ *
25118
+ * @category Client API
25119
+ * @async
25120
+ */
25121
+ const loginAsVisitor = async (params) => {
25122
+ const client = getActiveClient();
25123
+ let unsubWatcher;
25124
+ client.log('client/api/connectClient', Object.assign({ apiKey: client.apiKey, sessionState: client.sessionState }, params));
25125
+ // generate deviceId
25126
+ const deviceId = await getDeviceId();
25127
+ let user;
25128
+ try {
25129
+ const { users, userType } = await setVisitorClientToken({
25130
+ params: Object.assign(Object.assign({}, params), { deviceId }),
25131
+ options: {
25132
+ setAccessTokenCookie: true,
25133
+ },
25134
+ });
25135
+ [user] = users;
25136
+ client.userId = user.userId;
25137
+ client.sessionHandler = params.sessionHandler;
25138
+ /*
25139
+ * Cannot push to subscriptions as watcher needs to continue working even if
25140
+ * token expires
25141
+ */
25142
+ unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);
25143
+ setCurrentUser({ user, userType });
25144
+ }
25145
+ catch (error) {
25146
+ /*
25147
+ * if getting token failed session state reverts to initial state when app
25148
+ * is first launched
25149
+ */
25150
+ SessionWatcher$1.getInstance().setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
25151
+ // pass error down tree so the calling function handle it
25152
+ throw error;
25153
+ }
25154
+ await initializeMessagePreviewSetting();
25155
+ if (subscriptions$2.length === 0) {
25156
+ // handling internal SDK events
25157
+ subscriptions$2.push(onTokenTerminated(_ => {
25158
+ terminateClient();
25159
+ subscriptions$2.forEach(fn => fn());
25160
+ unsubWatcher();
25161
+ }), onTokenExpired(state => {
25162
+ SessionWatcher$1.getInstance().setSessionState(state);
25163
+ logout();
25164
+ subscriptions$2.forEach(fn => fn());
25165
+ }));
24929
25166
  }
24930
25167
  return true;
24931
25168
  };
24932
25169
  /* end_public_function */
24933
25170
 
25171
+ /* begin_public_function
25172
+ id: client.get_current_user
25173
+ */
25174
+ const getCurrentUser = () => {
25175
+ var _a;
25176
+ const client = getActiveClient();
25177
+ if (!client) {
25178
+ throw new ASCError('Connect client first', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "fatal" /* Amity.ErrorLevel.FATAL */);
25179
+ }
25180
+ const cache = (_a = pullFromCache(['user', 'get', client.userId])) === null || _a === void 0 ? void 0 : _a.data;
25181
+ if (!cache) {
25182
+ throw new ASCError('Connect client first', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "fatal" /* Amity.ErrorLevel.FATAL */);
25183
+ }
25184
+ return userLinkedObject(cache);
25185
+ };
25186
+ /* end_public_function */
25187
+
24934
25188
  /* begin_public_function
24935
25189
  id: client.renew_access_token
24936
25190
  */
@@ -24953,7 +25207,7 @@ const renewal = () => {
24953
25207
  * Per instance of Renewal, only one renewal is allowed
24954
25208
  */
24955
25209
  const renewToken = async (authToken) => {
24956
- const { userId, displayName } = getActiveUser();
25210
+ const { userId, displayName } = getCurrentUser();
24957
25211
  const deviceId = await getDeviceId();
24958
25212
  const params = { userId, displayName, authToken, deviceId };
24959
25213
  if (client.sessionState === "tokenExpired" /* Amity.SessionStates.TOKEN_EXPIRED */ && client.sessionHandler) {
@@ -24972,6 +25226,24 @@ const renewal = () => {
24972
25226
  if (renewTimeoutId)
24973
25227
  clearTimeout(renewTimeoutId);
24974
25228
  };
25229
+ const renewVisitorToken = async ({ authSignature, authSignatureExpiresAt, }) => {
25230
+ const deviceId = await getDeviceId();
25231
+ if (client.sessionState === "tokenExpired" /* Amity.SessionStates.TOKEN_EXPIRED */ && client.sessionHandler) {
25232
+ await loginAsVisitor({ sessionHandler: client.sessionHandler });
25233
+ }
25234
+ else {
25235
+ // about to expire
25236
+ await setVisitorClientToken({
25237
+ params: { authSignature, authSignatureExpiresAt, deviceId },
25238
+ options: {
25239
+ setAccessTokenCookie: true,
25240
+ },
25241
+ });
25242
+ }
25243
+ tokenRenewed = true;
25244
+ if (renewTimeoutId)
25245
+ clearTimeout(renewTimeoutId);
25246
+ };
24975
25247
  return {
24976
25248
  renew: () => {
24977
25249
  if (tokenRenewed) {
@@ -24993,6 +25265,19 @@ const renewal = () => {
24993
25265
  (_a = client.sessionHandler) === null || _a === void 0 ? void 0 : _a.sessionWillRenewAccessToken(renewal());
24994
25266
  }, ACCESS_TOKEN_WATCHER_INTERVAL);
24995
25267
  },
25268
+ renewWithAuthSignature: (params) => {
25269
+ if (tokenRenewed) {
25270
+ console.log("'renew' method can be called only once per renewal instance");
25271
+ return;
25272
+ }
25273
+ renewVisitorToken(params);
25274
+ },
25275
+ unableToRetrieveAuthSignature: () => {
25276
+ renewTimeoutId = setTimeout(() => {
25277
+ var _a;
25278
+ (_a = client.sessionHandler) === null || _a === void 0 ? void 0 : _a.sessionWillRenewAccessToken(renewal());
25279
+ }, ACCESS_TOKEN_WATCHER_INTERVAL);
25280
+ },
24996
25281
  };
24997
25282
  };
24998
25283
  /* end_public_function */
@@ -25539,6 +25824,7 @@ const createClient = (apiKey, apiRegion = API_REGIONS.SG, { debugSession = DEFAU
25539
25824
  validateTexts,
25540
25825
  getFeedSettings,
25541
25826
  getSocialSettings,
25827
+ getVisitorDeviceId: getDeviceId,
25542
25828
  getMessagePreviewSetting,
25543
25829
  use: () => setActiveClient(client),
25544
25830
  isUnreadCountEnabled,
@@ -25594,7 +25880,7 @@ const secureLogout = async () => {
25594
25880
  * than the one already connected, in which case the existing subscriptions need
25595
25881
  * to be cleared
25596
25882
  */
25597
- let subscriptions = [];
25883
+ let subscriptions$1 = [];
25598
25884
  async function runMqtt() {
25599
25885
  await modifyMqttConnection();
25600
25886
  }
@@ -25666,15 +25952,15 @@ const resumeSession = async (params, sessionHandler, config) => {
25666
25952
  client.mqtt.disconnect();
25667
25953
  }
25668
25954
  // Clear existing subscriptions
25669
- subscriptions.forEach(fn => fn());
25670
- subscriptions = [];
25955
+ subscriptions$1.forEach(fn => fn());
25956
+ subscriptions$1 = [];
25671
25957
  }
25672
25958
  else {
25673
25959
  // Different user - do full logout
25674
25960
  await logout();
25675
25961
  // Remove subscription to ban and delete
25676
- subscriptions.forEach(fn => fn());
25677
- subscriptions = [];
25962
+ subscriptions$1.forEach(fn => fn());
25963
+ subscriptions$1 = [];
25678
25964
  }
25679
25965
  }
25680
25966
  try {
@@ -25712,37 +25998,37 @@ const resumeSession = async (params, sessionHandler, config) => {
25712
25998
  runMqtt();
25713
25999
  }
25714
26000
  await initializeMessagePreviewSetting();
25715
- if (subscriptions.length === 0) {
25716
- subscriptions.push(
26001
+ if (subscriptions$1.length === 0) {
26002
+ subscriptions$1.push(
25717
26003
  // GLOBAL_BAN
25718
26004
  onClientBanned((_) => {
25719
26005
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
25720
- subscriptions.forEach(fn => fn());
26006
+ subscriptions$1.forEach(fn => fn());
25721
26007
  unsubWatcher();
25722
26008
  }), onTokenTerminated(_ => {
25723
26009
  terminateClient();
25724
- subscriptions.forEach(fn => fn());
26010
+ subscriptions$1.forEach(fn => fn());
25725
26011
  unsubWatcher();
25726
26012
  }), onUserDeleted$2((user) => {
25727
26013
  if (user.userId === client.userId) {
25728
26014
  terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
25729
- subscriptions.forEach(fn => fn());
26015
+ subscriptions$1.forEach(fn => fn());
25730
26016
  unsubWatcher();
25731
26017
  }
25732
26018
  }), onTokenExpired(state => {
25733
26019
  SessionWatcher$1.getInstance().setSessionState(state);
25734
26020
  logout();
25735
- subscriptions.forEach(fn => fn());
26021
+ subscriptions$1.forEach(fn => fn());
25736
26022
  }),
25737
26023
  // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave
25738
26024
  // the channel because currently backend can't handle this, so every time a user is banned from
25739
26025
  // a channel or the channel is deleted the channel's unread count will not be reset to zero
25740
26026
  onChannelDeleted(removeChannelMarkerCache), onChannelMemberBanned(removeChannelMarkerCache), markReadEngineOnLoginHandler(), analyticsEngineOnLoginHandler(), objectResolverEngineOnLoginHandler());
25741
26027
  if (client.useLegacyUnreadCount) {
25742
- subscriptions.push(readReceiptSyncEngineOnLoginHandler());
26028
+ subscriptions$1.push(readReceiptSyncEngineOnLoginHandler());
25743
26029
  }
25744
26030
  else
25745
- subscriptions.push(legacyReadReceiptSyncEngineOnLoginHandler());
26031
+ subscriptions$1.push(legacyReadReceiptSyncEngineOnLoginHandler());
25746
26032
  }
25747
26033
  return true;
25748
26034
  };
@@ -25840,6 +26126,142 @@ const getShareableLinkConfiguration = async () => {
25840
26126
  return data;
25841
26127
  };
25842
26128
 
26129
+ /**
26130
+ * Retrieves a pair of {@link Amity.Tokens} necessary for connection
26131
+ *
26132
+ * @param param get bot token param
26133
+ * @param params.deviceId The user's device Id (can be manually set for native users)
26134
+ * @param options get bot token options
26135
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
26136
+ * @return The accessToken for the given userId
26137
+ *
26138
+ * @category Client API
26139
+ * @hidden
26140
+ */
26141
+ const getBotToken = async ({ params, options, }) => {
26142
+ const client = getActiveClient();
26143
+ client.log('client/api/getBotToken');
26144
+ const deviceInfo = getDeviceInfo();
26145
+ const { data } = await client.http.post('/api/v5/sessions/bot', Object.assign(Object.assign({}, params), { deviceInfo }), {
26146
+ headers: {
26147
+ 'X-API-Key': client.apiKey,
26148
+ 'set-access-token-cookie': (options === null || options === void 0 ? void 0 : options.setAccessTokenCookie) || false,
26149
+ },
26150
+ });
26151
+ return data;
26152
+ };
26153
+
26154
+ /**
26155
+ * A util to set or refresh client token
26156
+ * @param options get bot token options
26157
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
26158
+ * @returns token & user info
26159
+ *
26160
+ * @category private
26161
+ * @async
26162
+ */
26163
+ const setBotClientToken = async (params) => {
26164
+ const client = getActiveClient();
26165
+ // begin establishing session
26166
+ setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
26167
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getBotToken(params);
26168
+ // manually setup the token for http transport
26169
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
26170
+ client.http.defaults.metadata = {
26171
+ tokenExpiry: expiresAt,
26172
+ isGlobalBanned: false,
26173
+ isUserDeleted: false,
26174
+ };
26175
+ client.token = { accessToken, issuedAt, expiresAt };
26176
+ setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
26177
+ return { accessToken, users, userType };
26178
+ };
26179
+
26180
+ /* eslint-disable require-atomic-updates */
26181
+ /*
26182
+ * declared earlier to accomodate case when logging in with a different user
26183
+ * than the one already connected, in which case the existing subscriptions need
26184
+ * to be cleared
26185
+ */
26186
+ const subscriptions = [];
26187
+ /* begin_public_function
26188
+ id: client.loginAsBot
26189
+ */
26190
+ /**
26191
+ * ```js
26192
+ * import { loginAsBot } from '@amityco/ts-sdk/client/api'
26193
+ * const success = await loginAsBot({
26194
+ sessionHandler: {
26195
+ sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
26196
+ ...
26197
+ }
26198
+ * })
26199
+ * ```
26200
+ *
26201
+ * Connects an {@link Amity.Client} instance to ASC servers
26202
+ *
26203
+ * @param params. the connect parameters
26204
+ * @param params.sessionHandler
26205
+ * @returns a success boolean if connected
26206
+ *
26207
+ * @category Client API
26208
+ * @async
26209
+ */
26210
+ const loginAsBot = async (params) => {
26211
+ const client = getActiveClient();
26212
+ let unsubWatcher;
26213
+ client.log('client/api/connectClient', {
26214
+ apiKey: client.apiKey,
26215
+ sessionState: client.sessionState,
26216
+ });
26217
+ // generate deviceId
26218
+ const deviceId = await getDeviceId();
26219
+ let user;
26220
+ try {
26221
+ const { users, userType } = await setBotClientToken({
26222
+ params: {
26223
+ deviceId,
26224
+ },
26225
+ options: {
26226
+ setAccessTokenCookie: true,
26227
+ },
26228
+ });
26229
+ [user] = users;
26230
+ client.userId = user.userId;
26231
+ client.sessionHandler = params.sessionHandler;
26232
+ /*
26233
+ * Cannot push to subscriptions as watcher needs to continue working even if
26234
+ * token expires
26235
+ */
26236
+ unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);
26237
+ setCurrentUser({ user, userType });
26238
+ }
26239
+ catch (error) {
26240
+ /*
26241
+ * if getting token failed session state reverts to initial state when app
26242
+ * is first launched
26243
+ */
26244
+ SessionWatcher$1.getInstance().setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
26245
+ // pass error down tree so the calling function handle it
26246
+ throw error;
26247
+ }
26248
+ await initializeMessagePreviewSetting();
26249
+ if (subscriptions.length === 0) {
26250
+ // handling internal SDK events
26251
+ subscriptions.push(onTokenTerminated(_ => {
26252
+ terminateClient();
26253
+ subscriptions.forEach(fn => fn());
26254
+ unsubWatcher();
26255
+ }), onTokenExpired(state => {
26256
+ SessionWatcher$1.getInstance().setSessionState(state);
26257
+ logout();
26258
+ subscriptions.forEach(fn => fn());
26259
+ }));
26260
+ }
26261
+ return true;
26262
+ };
26263
+ /* end_public_function */
26264
+
25843
26265
  /**
25844
26266
  * ```js
25845
26267
  * import { onChannelMarkerFetched } from '@amityco/ts-sdk'
@@ -26211,6 +26633,11 @@ var index$o = /*#__PURE__*/Object.freeze({
26211
26633
  fetchLinkPreview: fetchLinkPreview,
26212
26634
  getSocialSettings: getSocialSettings,
26213
26635
  getShareableLinkConfiguration: getShareableLinkConfiguration,
26636
+ loginAsVisitor: loginAsVisitor,
26637
+ loginAsBot: loginAsBot,
26638
+ getCurrentUser: getCurrentUser,
26639
+ getCurrentUserType: getCurrentUserType,
26640
+ setCurrentUserType: setCurrentUserType,
26214
26641
  onConnectionError: onConnectionError,
26215
26642
  onClientDisconnected: onClientDisconnected,
26216
26643
  onClientBanned: onClientBanned,
@@ -32912,7 +33339,6 @@ const muteChannel = async (channelId, mutePeriod = MUTE_FOREVER$1) => {
32912
33339
  /* begin_public_function
32913
33340
  id: channel.unmute
32914
33341
  */
32915
- const CHANNEL_UNMUTE_PERIOD = 0;
32916
33342
  /**
32917
33343
  * ```js
32918
33344
  * import { ChannelRepository } from '@amityco/ts-sdk'
@@ -32927,14 +33353,11 @@ const CHANNEL_UNMUTE_PERIOD = 0;
32927
33353
  * @category Channel API
32928
33354
  * @async
32929
33355
  */
33356
+ const CHANNEL_UNMUTE_PERIOD = 0; // Setting mute period as 0 is the same as unmuting the channel
32930
33357
  const unmuteChannel = async (channelId) => {
32931
33358
  const client = getActiveClient();
32932
33359
  client.log('channel/unmuteChannel', channelId);
32933
- const { data } = await client.http.put(`/api/v2/channel/${encodeURIComponent(channelId)}/mute`,
32934
- /*
32935
- * Setting mute period as 0 is the same as unmuting the channel
32936
- */
32937
- { mutePeriod: CHANNEL_UNMUTE_PERIOD });
33360
+ const { data } = await client.http.put(`/api/v2/channel/${encodeURIComponent(channelId)}/mute`, { mutePeriod: CHANNEL_UNMUTE_PERIOD });
32938
33361
  const { success } = data;
32939
33362
  return success;
32940
33363
  };
@@ -39105,7 +39528,7 @@ const getCategory = async (categoryId) => {
39105
39528
  ingestInCache(data, { cachedAt });
39106
39529
  const { categories } = data;
39107
39530
  return {
39108
- data: LinkedObject.category(categories.find(category => category.categoryId === categoryId)),
39531
+ data: LinkedObject.category((categories !== null && categories !== void 0 ? categories : []).find(category => category.categoryId === categoryId)),
39109
39532
  cachedAt,
39110
39533
  };
39111
39534
  };
@@ -45869,4 +46292,4 @@ var index = /*#__PURE__*/Object.freeze({
45869
46292
  getReactions: getReactions
45870
46293
  });
45871
46294
 
45872
- export { API_REGIONS, index$3 as AdRepository, index$b as CategoryRepository, index$f as ChannelRepository, index$o as Client, index$a as CommentRepository, CommunityPostSettingMaps, CommunityPostSettings, index$c as CommunityRepository, ContentFeedType, ContentFlagReasonEnum, DefaultCommunityPostSetting, FeedDataTypeEnum, index$9 as FeedRepository, FeedSortByEnum, FeedSourceEnum, FileAccessTypeEnum, index$l as FileRepository, FileType, GET_WATCHER_URLS, index$1 as InvitationRepository, InvitationSortByEnum, InvitationStatusEnum, InvitationTypeEnum, JoinRequestStatusEnum, JoinResultStatusEnum, index as LiveReactionRepository, index$5 as LiveStreamPlayer, MembershipAcceptanceTypeEnum, MessageContentType, index$j as MessageRepository, index$6 as PollRepository, PostContentType, index$8 as PostRepository, index$k as ReactionRepository, index$4 as StoryRepository, index$7 as StreamRepository, index$i as SubChannelRepository, SubscriptionLevels, index$m as UserRepository, VERSION, VideoResolution, VideoSize, VideoTranscodingStatus, backupCache, createQuery, createReport, createUserToken, deleteReport, disableCache, dropFromCache, enableCache, filterByChannelMembership, filterByCommunityMembership, filterByFeedType, filterByPostDataTypes, filterByPropEquality, filterByPropInclusion, filterByPropIntersection, filterBySearchTerm, filterByStringComparePartially, getChannelTopic, getCommentTopic, getCommunityStoriesTopic, getCommunityTopic, getLiveReactionTopic, getLiveStreamTopic, getMarkedMessageTopic, getMarkerUserFeedTopic, getMessageTopic, getMyFollowersTopic, getMyFollowingsTopic, getNetworkTopic, getPostTopic, getRole, getSmartFeedChannelTopic, getSmartFeedMessageTopic, getSmartFeedSubChannelTopic, getStoryTopic, getSubChannelTopic, getUserTopic, isAfterBefore, isAfterBeforeRaw, isCachable, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkip, mergeInCache, index$2 as notificationTray, onChannelMarkerFetched, onFeedMarkerFetched, onFeedMarkerUpdated, onMessageMarked, onMessageMarkerFetched, onSubChannelMarkerFetched, onSubChannelMarkerUpdated, onUserMarkerFetched, onUserMarkerFetchedLegacy, pullFromCache, pushToCache, queryCache, queryOptions, queryRoles, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByFirstUpdated, sortByLastActivity, sortByLastCreated, sortByLastUpdated, sortByLocalSortingDate, sortByName, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, upsertInCache, wipeCache };
46295
+ export { API_REGIONS, index$3 as AdRepository, index$b as CategoryRepository, index$f as ChannelRepository, index$o as Client, index$a as CommentRepository, CommunityPostSettingMaps, CommunityPostSettings, index$c as CommunityRepository, ContentFeedType, ContentFlagReasonEnum, DefaultCommunityPostSetting, FeedDataTypeEnum, index$9 as FeedRepository, FeedSortByEnum, FeedSourceEnum, FileAccessTypeEnum, index$l as FileRepository, FileType, GET_WATCHER_URLS, index$1 as InvitationRepository, InvitationSortByEnum, InvitationStatusEnum, InvitationTypeEnum, JoinRequestStatusEnum, JoinResultStatusEnum, index as LiveReactionRepository, index$5 as LiveStreamPlayer, MembershipAcceptanceTypeEnum, MessageContentType, index$j as MessageRepository, index$6 as PollRepository, PostContentType, index$8 as PostRepository, index$k as ReactionRepository, index$4 as StoryRepository, index$7 as StreamRepository, index$i as SubChannelRepository, SubscriptionLevels, index$m as UserRepository, UserTypeEnum, VERSION, VideoResolution, VideoSize, VideoTranscodingStatus, backupCache, createQuery, createReport, createUserToken, deleteReport, disableCache, dropFromCache, enableCache, filterByChannelMembership, filterByCommunityMembership, filterByFeedType, filterByPostDataTypes, filterByPropEquality, filterByPropInclusion, filterByPropIntersection, filterBySearchTerm, filterByStringComparePartially, getChannelTopic, getCommentTopic, getCommunityStoriesTopic, getCommunityTopic, getLiveReactionTopic, getLiveStreamTopic, getMarkedMessageTopic, getMarkerUserFeedTopic, getMessageTopic, getMyFollowersTopic, getMyFollowingsTopic, getNetworkTopic, getPostTopic, getRole, getSmartFeedChannelTopic, getSmartFeedMessageTopic, getSmartFeedSubChannelTopic, getStoryTopic, getSubChannelTopic, getUserTopic, isAfterBefore, isAfterBeforeRaw, isCachable, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkip, mergeInCache, index$2 as notificationTray, onChannelMarkerFetched, onFeedMarkerFetched, onFeedMarkerUpdated, onMessageMarked, onMessageMarkerFetched, onSubChannelMarkerFetched, onSubChannelMarkerUpdated, onUserMarkerFetched, onUserMarkerFetchedLegacy, pullFromCache, pushToCache, queryCache, queryOptions, queryRoles, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByFirstUpdated, sortByLastActivity, sortByLastCreated, sortByLastUpdated, sortByLocalSortingDate, sortByName, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, upsertInCache, wipeCache };