@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.cjs.js CHANGED
@@ -29,6 +29,13 @@ exports.MembershipAcceptanceTypeEnum = void 0;
29
29
  MembershipAcceptanceTypeEnum["INVITATION"] = "invitation";
30
30
  })(exports.MembershipAcceptanceTypeEnum || (exports.MembershipAcceptanceTypeEnum = {}));
31
31
 
32
+ exports.UserTypeEnum = void 0;
33
+ (function (UserTypeEnum) {
34
+ UserTypeEnum["SIGNED_IN"] = "signed-in";
35
+ UserTypeEnum["VISITOR"] = "visitor";
36
+ UserTypeEnum["BOT"] = "bot";
37
+ })(exports.UserTypeEnum || (exports.UserTypeEnum = {}));
38
+
32
39
  const FileType = Object.freeze({
33
40
  FILE: 'file',
34
41
  IMAGE: 'image',
@@ -1348,6 +1355,7 @@ let activeUser = null;
1348
1355
  */
1349
1356
  /**
1350
1357
  * for internal use
1358
+ * @deprecated please use getCurrentUser api instead.
1351
1359
  */
1352
1360
  const getActiveUser = () => {
1353
1361
  if (!activeUser) {
@@ -1781,12 +1789,6 @@ const createHttpTransport = (endpoint) => {
1781
1789
  controller.abort();
1782
1790
  handleRequestCancelation(RequestCancelation.UserDeleted);
1783
1791
  }
1784
- if (tokenExpiry) {
1785
- if (Date.now() >= Date.parse(tokenExpiry)) {
1786
- controller.abort(RequestCancelation.UserDeleted);
1787
- handleRequestCancelation(RequestCancelation.TokenExpired);
1788
- }
1789
- }
1790
1792
  }
1791
1793
  return config;
1792
1794
  });
@@ -6618,6 +6620,72 @@ const getMyMembership = (channelId, callback) => {
6618
6620
  };
6619
6621
  };
6620
6622
 
6623
+ const getMembership$1 = ({ channelId, userId, }) => {
6624
+ const client = getActiveClient();
6625
+ client.log('channel/getMembership.locally');
6626
+ const cacheChannelUser = pullFromCache([
6627
+ 'channelUsers',
6628
+ 'get',
6629
+ `${channelId}#${userId}`,
6630
+ ]);
6631
+ if (!cacheChannelUser) {
6632
+ throw new ASCApiError('Item not found!', 400400 /* Amity.ServerError.ITEM_NOT_FOUND */, "error" /* Amity.ErrorLevel.ERROR */);
6633
+ }
6634
+ return {
6635
+ data: cacheChannelUser.data,
6636
+ cachedAt: cacheChannelUser.cachedAt,
6637
+ };
6638
+ };
6639
+
6640
+ const getMembership = ({ channelId, userId, callback, }) => {
6641
+ const { log, cache } = getActiveClient();
6642
+ if (!cache) {
6643
+ console.log('This observable object need the cache data!');
6644
+ }
6645
+ const timestamp = Date.now();
6646
+ log(`liveMembership(tmpid: ${timestamp}) > listen`);
6647
+ const disposers = [];
6648
+ let isUnsyncedModel = false;
6649
+ let model;
6650
+ const dispatcher = (data) => {
6651
+ callback(Object.assign(Object.assign({}, data), { data: data.data ? channelMemberLinkedObject(data.data) : data.data }));
6652
+ };
6653
+ const realtimeRouter = (_, __) => {
6654
+ const { data } = getMembership$1({ channelId, userId });
6655
+ if (isEqual(model, data))
6656
+ return;
6657
+ dispatcher({ loading: false, data });
6658
+ };
6659
+ const onFetch = () => {
6660
+ const query = createQuery(async () => getMembership$1({ channelId, userId }));
6661
+ runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
6662
+ if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
6663
+ dispatcher({
6664
+ data,
6665
+ origin,
6666
+ loading: false,
6667
+ error: new ASCApiError(UNSYNCED_OBJECT_CACHED_AT_MESSAGE, 800800 /* Amity.ClientError.DISALOOW_UNSYNCED_OBJECT */, "error" /* Amity.ErrorLevel.ERROR */),
6668
+ });
6669
+ isUnsyncedModel = true;
6670
+ disposers.forEach(fn => fn());
6671
+ }
6672
+ else if (!isUnsyncedModel) {
6673
+ dispatcher({ loading, data, origin, error });
6674
+ }
6675
+ if (error) {
6676
+ disposers.forEach(fn => fn());
6677
+ }
6678
+ });
6679
+ };
6680
+ disposers.push(onChannelMemberBanned(realtimeRouter));
6681
+ disposers.push(onChannelMemberUnbanned(realtimeRouter));
6682
+ disposers.push(onChannelSetUserMuted(realtimeRouter));
6683
+ onFetch();
6684
+ return () => {
6685
+ disposers.forEach(fn => fn());
6686
+ };
6687
+ };
6688
+
6621
6689
  const channelLinkedObject = (channel) => {
6622
6690
  var _a;
6623
6691
  let previewMembers = [];
@@ -6636,6 +6704,13 @@ const channelLinkedObject = (channel) => {
6636
6704
  markAsRead: () => markAsRead(channel.channelInternalId),
6637
6705
  previewMembers,
6638
6706
  myMembership: (callback) => getMyMembership(channel.channelId, callback),
6707
+ getMembership: (userId, callback) => {
6708
+ getMembership({
6709
+ channelId: channel.channelId,
6710
+ userId,
6711
+ callback,
6712
+ });
6713
+ },
6639
6714
  });
6640
6715
  };
6641
6716
 
@@ -7240,7 +7315,7 @@ const setClientToken = async (params) => {
7240
7315
  const client = getActiveClient();
7241
7316
  // begin establishing session
7242
7317
  setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
7243
- const { accessToken, users, expiresAt, issuedAt } = await getToken(params);
7318
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getToken(params);
7244
7319
  // manually setup the token for http transport
7245
7320
  client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
7246
7321
  client.http.defaults.metadata = {
@@ -7256,7 +7331,66 @@ const setClientToken = async (params) => {
7256
7331
  };
7257
7332
  client.token = { accessToken, issuedAt, expiresAt };
7258
7333
  setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
7259
- return { accessToken, users };
7334
+ return { accessToken, users, userType };
7335
+ };
7336
+
7337
+ /**
7338
+ * Retrieves a pair of {@link Amity.Tokens} necessary for connection
7339
+ *
7340
+ * @param params get visitor token param
7341
+ * @param params.deviceId The user's device Id (can be manually set for native users)
7342
+ * @param params.authSignature The authenitcation signature - necessary when network option is set to secure
7343
+ * @param params.authSignatureExpiresAt Expire time of the authenitcation signature
7344
+ * @param options get bot token options
7345
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
7346
+ * @return The accessToken for the given userId
7347
+ *
7348
+ *
7349
+ * @category Client API
7350
+ * @hidden
7351
+ */
7352
+ const getVisitorToken = async ({ params, options, }) => {
7353
+ const client = getActiveClient();
7354
+ client.log('client/api/getVisitorToken', params);
7355
+ const deviceInfo = getDeviceInfo();
7356
+ const { data } = await client.http.post('/api/v5/sessions/visitor', Object.assign(Object.assign({}, params), { deviceInfo }), {
7357
+ headers: {
7358
+ 'X-API-Key': client.apiKey,
7359
+ 'set-access-token-cookie': (options === null || options === void 0 ? void 0 : options.setAccessTokenCookie) || false,
7360
+ },
7361
+ });
7362
+ return data;
7363
+ };
7364
+
7365
+ /**
7366
+ * A util to set or refresh client token
7367
+ *
7368
+ * @param params.userId the user ID for the current session
7369
+ * @param params.displayName the user's displayName for the current session
7370
+ * @param params.deviceId Manual override of the user's device id (for device management)
7371
+ * @param params.authToken The authentication token - necessary when network option is set to secure
7372
+ * @param options get bot token options
7373
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
7374
+ * @returns token & user info
7375
+ *
7376
+ * @category private
7377
+ * @async
7378
+ */
7379
+ const setVisitorClientToken = async (params) => {
7380
+ const client = getActiveClient();
7381
+ // begin establishing session
7382
+ setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
7383
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getVisitorToken(params);
7384
+ // manually setup the token for http transport
7385
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
7386
+ client.http.defaults.metadata = {
7387
+ tokenExpiry: expiresAt,
7388
+ isGlobalBanned: false,
7389
+ isUserDeleted: false,
7390
+ };
7391
+ client.token = { accessToken, issuedAt, expiresAt };
7392
+ setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
7393
+ return { accessToken, users, userType };
7260
7394
  };
7261
7395
 
7262
7396
  function prepareUserPayload(response) {
@@ -8716,13 +8850,34 @@ const removeChannelMarkerCache = (channel) => {
8716
8850
  dropFromCache(['channelMarker', 'get', id], true);
8717
8851
  };
8718
8852
 
8853
+ let currentUserType = null;
8854
+ /* begin_public_function
8855
+ id: client.get_current_user_type
8856
+ */
8857
+ const getCurrentUserType = () => {
8858
+ if (!currentUserType) {
8859
+ throw new ASCError('Connect client first', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "fatal" /* Amity.ErrorLevel.FATAL */);
8860
+ }
8861
+ return currentUserType;
8862
+ };
8863
+ /* end_public_function */
8864
+ const setCurrentUserType = (userType) => {
8865
+ currentUserType = userType;
8866
+ };
8867
+
8868
+ const setCurrentUser = ({ user, userType, }) => {
8869
+ setActiveUser(user);
8870
+ setCurrentUserType(userType);
8871
+ pushToCache(['user', 'get', user.userId], user);
8872
+ };
8873
+
8719
8874
  /* eslint-disable no-param-reassign */
8720
8875
  /*
8721
8876
  * declared earlier to accomodate case when logging in with a different user
8722
8877
  * than the one already connected, in which case the existing subscriptions need
8723
8878
  * to be cleared
8724
8879
  */
8725
- let subscriptions$1 = [];
8880
+ let subscriptions$3 = [];
8726
8881
  async function runMqtt$1() {
8727
8882
  await modifyMqttConnection();
8728
8883
  }
@@ -8757,13 +8912,13 @@ const login = async (params, sessionHandler, config) => {
8757
8912
  if (client.userId && client.userId !== params.userId) {
8758
8913
  await logout();
8759
8914
  // Remove subscription to ban and delete
8760
- subscriptions$1.forEach(fn => fn());
8761
- subscriptions$1 = [];
8915
+ subscriptions$3.forEach(fn => fn());
8916
+ subscriptions$3 = [];
8762
8917
  }
8763
8918
  // default values
8764
8919
  const defaultDeviceId = await getDeviceId();
8765
8920
  try {
8766
- const { users } = await setClientToken({
8921
+ const { users, userType } = await setClientToken({
8767
8922
  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 }),
8768
8923
  options: {
8769
8924
  setAccessTokenCookie: true,
@@ -8777,7 +8932,7 @@ const login = async (params, sessionHandler, config) => {
8777
8932
  terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
8778
8933
  return false;
8779
8934
  }
8780
- if (user.isGlobalBanned) {
8935
+ if (user.isGlobalBan) {
8781
8936
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
8782
8937
  return false;
8783
8938
  }
@@ -8788,7 +8943,7 @@ const login = async (params, sessionHandler, config) => {
8788
8943
  * token expires
8789
8944
  */
8790
8945
  unsubWatcher = client.accessTokenExpiryWatcher(sessionHandler);
8791
- setActiveUser(user);
8946
+ setCurrentUser({ user, userType });
8792
8947
  }
8793
8948
  catch (error) {
8794
8949
  /*
@@ -8803,42 +8958,141 @@ const login = async (params, sessionHandler, config) => {
8803
8958
  runMqtt$1();
8804
8959
  }
8805
8960
  await initializeMessagePreviewSetting();
8806
- if (subscriptions$1.length === 0) {
8807
- subscriptions$1.push(
8961
+ if (subscriptions$3.length === 0) {
8962
+ subscriptions$3.push(
8808
8963
  // GLOBAL_BAN
8809
8964
  onClientBanned((_) => {
8810
8965
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
8811
- subscriptions$1.forEach(fn => fn());
8966
+ subscriptions$3.forEach(fn => fn());
8812
8967
  unsubWatcher();
8813
8968
  }), onTokenTerminated(_ => {
8814
8969
  terminateClient();
8815
- subscriptions$1.forEach(fn => fn());
8970
+ subscriptions$3.forEach(fn => fn());
8816
8971
  unsubWatcher();
8817
8972
  }), onUserDeleted$2((user) => {
8818
8973
  if (user.userId === client.userId) {
8819
8974
  terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
8820
- subscriptions$1.forEach(fn => fn());
8975
+ subscriptions$3.forEach(fn => fn());
8821
8976
  unsubWatcher();
8822
8977
  }
8823
8978
  }), onTokenExpired(state => {
8824
8979
  SessionWatcher$1.getInstance().setSessionState(state);
8825
8980
  logout();
8826
- subscriptions$1.forEach(fn => fn());
8981
+ subscriptions$3.forEach(fn => fn());
8827
8982
  }),
8828
8983
  // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave
8829
8984
  // the channel because currently backend can't handle this, so every time a user is banned from
8830
8985
  // a channel or the channel is deleted the channel's unread count will not be reset to zero
8831
8986
  onChannelDeleted(removeChannelMarkerCache), onChannelMemberBanned(removeChannelMarkerCache), markReadEngineOnLoginHandler(), analyticsEngineOnLoginHandler(), objectResolverEngineOnLoginHandler(), reactionSyncEngineOnLoginHandler());
8832
8987
  if (client.useLegacyUnreadCount) {
8833
- subscriptions$1.push(readReceiptSyncEngineOnLoginHandler());
8988
+ subscriptions$3.push(readReceiptSyncEngineOnLoginHandler());
8834
8989
  }
8835
8990
  else
8836
- subscriptions$1.push(legacyReadReceiptSyncEngineOnLoginHandler());
8991
+ subscriptions$3.push(legacyReadReceiptSyncEngineOnLoginHandler());
8992
+ }
8993
+ return true;
8994
+ };
8995
+ /* end_public_function */
8996
+
8997
+ /* eslint-disable require-atomic-updates */
8998
+ /*
8999
+ * declared earlier to accomodate case when logging in with a different user
9000
+ * than the one already connected, in which case the existing subscriptions need
9001
+ * to be cleared
9002
+ */
9003
+ const subscriptions$2 = [];
9004
+ /* begin_public_function
9005
+ id: client.loginAsVisitor
9006
+ */
9007
+ /**
9008
+ * ```js
9009
+ * import { loginAsVisitor } from '@amityco/ts-sdk/client/api'
9010
+ * const success = await loginAsVisitor({
9011
+ sessionHandler: {
9012
+ sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
9013
+ ...
9014
+ }
9015
+ * })
9016
+ * ```
9017
+ *
9018
+ * Connects an {@link Amity.Client} instance to ASC servers
9019
+ *
9020
+ * @param params. the connect parameters
9021
+ * @param params.authSignature The authenitcation signature - necessary when network option is set to secure
9022
+ * @param params.authSignatureExpiresAt Expire time of the authenitcation signature
9023
+ * @param params.sessionHandler
9024
+ * @returns a success boolean if connected
9025
+ *
9026
+ * @category Client API
9027
+ * @async
9028
+ */
9029
+ const loginAsVisitor = async (params) => {
9030
+ const client = getActiveClient();
9031
+ let unsubWatcher;
9032
+ client.log('client/api/connectClient', Object.assign({ apiKey: client.apiKey, sessionState: client.sessionState }, params));
9033
+ // generate deviceId
9034
+ const deviceId = await getDeviceId();
9035
+ let user;
9036
+ try {
9037
+ const { users, userType } = await setVisitorClientToken({
9038
+ params: Object.assign(Object.assign({}, params), { deviceId }),
9039
+ options: {
9040
+ setAccessTokenCookie: true,
9041
+ },
9042
+ });
9043
+ [user] = users;
9044
+ client.userId = user.userId;
9045
+ client.sessionHandler = params.sessionHandler;
9046
+ /*
9047
+ * Cannot push to subscriptions as watcher needs to continue working even if
9048
+ * token expires
9049
+ */
9050
+ unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);
9051
+ setCurrentUser({ user, userType });
9052
+ }
9053
+ catch (error) {
9054
+ /*
9055
+ * if getting token failed session state reverts to initial state when app
9056
+ * is first launched
9057
+ */
9058
+ SessionWatcher$1.getInstance().setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
9059
+ // pass error down tree so the calling function handle it
9060
+ throw error;
9061
+ }
9062
+ await initializeMessagePreviewSetting();
9063
+ if (subscriptions$2.length === 0) {
9064
+ // handling internal SDK events
9065
+ subscriptions$2.push(onTokenTerminated(_ => {
9066
+ terminateClient();
9067
+ subscriptions$2.forEach(fn => fn());
9068
+ unsubWatcher();
9069
+ }), onTokenExpired(state => {
9070
+ SessionWatcher$1.getInstance().setSessionState(state);
9071
+ logout();
9072
+ subscriptions$2.forEach(fn => fn());
9073
+ }));
8837
9074
  }
8838
9075
  return true;
8839
9076
  };
8840
9077
  /* end_public_function */
8841
9078
 
9079
+ /* begin_public_function
9080
+ id: client.get_current_user
9081
+ */
9082
+ const getCurrentUser = () => {
9083
+ var _a;
9084
+ const client = getActiveClient();
9085
+ if (!client) {
9086
+ throw new ASCError('Connect client first', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "fatal" /* Amity.ErrorLevel.FATAL */);
9087
+ }
9088
+ const cache = (_a = pullFromCache(['user', 'get', client.userId])) === null || _a === void 0 ? void 0 : _a.data;
9089
+ if (!cache) {
9090
+ throw new ASCError('Connect client first', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "fatal" /* Amity.ErrorLevel.FATAL */);
9091
+ }
9092
+ return userLinkedObject(cache);
9093
+ };
9094
+ /* end_public_function */
9095
+
8842
9096
  /* begin_public_function
8843
9097
  id: client.renew_access_token
8844
9098
  */
@@ -8861,7 +9115,7 @@ const renewal = () => {
8861
9115
  * Per instance of Renewal, only one renewal is allowed
8862
9116
  */
8863
9117
  const renewToken = async (authToken) => {
8864
- const { userId, displayName } = getActiveUser();
9118
+ const { userId, displayName } = getCurrentUser();
8865
9119
  const deviceId = await getDeviceId();
8866
9120
  const params = { userId, displayName, authToken, deviceId };
8867
9121
  if (client.sessionState === "tokenExpired" /* Amity.SessionStates.TOKEN_EXPIRED */ && client.sessionHandler) {
@@ -8880,6 +9134,24 @@ const renewal = () => {
8880
9134
  if (renewTimeoutId)
8881
9135
  clearTimeout(renewTimeoutId);
8882
9136
  };
9137
+ const renewVisitorToken = async ({ authSignature, authSignatureExpiresAt, }) => {
9138
+ const deviceId = await getDeviceId();
9139
+ if (client.sessionState === "tokenExpired" /* Amity.SessionStates.TOKEN_EXPIRED */ && client.sessionHandler) {
9140
+ await loginAsVisitor({ sessionHandler: client.sessionHandler });
9141
+ }
9142
+ else {
9143
+ // about to expire
9144
+ await setVisitorClientToken({
9145
+ params: { authSignature, authSignatureExpiresAt, deviceId },
9146
+ options: {
9147
+ setAccessTokenCookie: true,
9148
+ },
9149
+ });
9150
+ }
9151
+ tokenRenewed = true;
9152
+ if (renewTimeoutId)
9153
+ clearTimeout(renewTimeoutId);
9154
+ };
8883
9155
  return {
8884
9156
  renew: () => {
8885
9157
  if (tokenRenewed) {
@@ -8901,6 +9173,19 @@ const renewal = () => {
8901
9173
  (_a = client.sessionHandler) === null || _a === void 0 ? void 0 : _a.sessionWillRenewAccessToken(renewal());
8902
9174
  }, ACCESS_TOKEN_WATCHER_INTERVAL);
8903
9175
  },
9176
+ renewWithAuthSignature: (params) => {
9177
+ if (tokenRenewed) {
9178
+ console.log("'renew' method can be called only once per renewal instance");
9179
+ return;
9180
+ }
9181
+ renewVisitorToken(params);
9182
+ },
9183
+ unableToRetrieveAuthSignature: () => {
9184
+ renewTimeoutId = setTimeout(() => {
9185
+ var _a;
9186
+ (_a = client.sessionHandler) === null || _a === void 0 ? void 0 : _a.sessionWillRenewAccessToken(renewal());
9187
+ }, ACCESS_TOKEN_WATCHER_INTERVAL);
9188
+ },
8904
9189
  };
8905
9190
  };
8906
9191
  /* end_public_function */
@@ -9447,6 +9732,7 @@ const createClient = (apiKey, apiRegion = API_REGIONS.SG, { debugSession = DEFAU
9447
9732
  validateTexts,
9448
9733
  getFeedSettings,
9449
9734
  getSocialSettings,
9735
+ getVisitorDeviceId: getDeviceId,
9450
9736
  getMessagePreviewSetting,
9451
9737
  use: () => setActiveClient(client),
9452
9738
  isUnreadCountEnabled,
@@ -9502,7 +9788,7 @@ const secureLogout = async () => {
9502
9788
  * than the one already connected, in which case the existing subscriptions need
9503
9789
  * to be cleared
9504
9790
  */
9505
- let subscriptions = [];
9791
+ let subscriptions$1 = [];
9506
9792
  async function runMqtt() {
9507
9793
  await modifyMqttConnection();
9508
9794
  }
@@ -9574,15 +9860,15 @@ const resumeSession = async (params, sessionHandler, config) => {
9574
9860
  client.mqtt.disconnect();
9575
9861
  }
9576
9862
  // Clear existing subscriptions
9577
- subscriptions.forEach(fn => fn());
9578
- subscriptions = [];
9863
+ subscriptions$1.forEach(fn => fn());
9864
+ subscriptions$1 = [];
9579
9865
  }
9580
9866
  else {
9581
9867
  // Different user - do full logout
9582
9868
  await logout();
9583
9869
  // Remove subscription to ban and delete
9584
- subscriptions.forEach(fn => fn());
9585
- subscriptions = [];
9870
+ subscriptions$1.forEach(fn => fn());
9871
+ subscriptions$1 = [];
9586
9872
  }
9587
9873
  }
9588
9874
  try {
@@ -9620,37 +9906,37 @@ const resumeSession = async (params, sessionHandler, config) => {
9620
9906
  runMqtt();
9621
9907
  }
9622
9908
  await initializeMessagePreviewSetting();
9623
- if (subscriptions.length === 0) {
9624
- subscriptions.push(
9909
+ if (subscriptions$1.length === 0) {
9910
+ subscriptions$1.push(
9625
9911
  // GLOBAL_BAN
9626
9912
  onClientBanned((_) => {
9627
9913
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
9628
- subscriptions.forEach(fn => fn());
9914
+ subscriptions$1.forEach(fn => fn());
9629
9915
  unsubWatcher();
9630
9916
  }), onTokenTerminated(_ => {
9631
9917
  terminateClient();
9632
- subscriptions.forEach(fn => fn());
9918
+ subscriptions$1.forEach(fn => fn());
9633
9919
  unsubWatcher();
9634
9920
  }), onUserDeleted$2((user) => {
9635
9921
  if (user.userId === client.userId) {
9636
9922
  terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
9637
- subscriptions.forEach(fn => fn());
9923
+ subscriptions$1.forEach(fn => fn());
9638
9924
  unsubWatcher();
9639
9925
  }
9640
9926
  }), onTokenExpired(state => {
9641
9927
  SessionWatcher$1.getInstance().setSessionState(state);
9642
9928
  logout();
9643
- subscriptions.forEach(fn => fn());
9929
+ subscriptions$1.forEach(fn => fn());
9644
9930
  }),
9645
9931
  // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave
9646
9932
  // the channel because currently backend can't handle this, so every time a user is banned from
9647
9933
  // a channel or the channel is deleted the channel's unread count will not be reset to zero
9648
9934
  onChannelDeleted(removeChannelMarkerCache), onChannelMemberBanned(removeChannelMarkerCache), markReadEngineOnLoginHandler(), analyticsEngineOnLoginHandler(), objectResolverEngineOnLoginHandler());
9649
9935
  if (client.useLegacyUnreadCount) {
9650
- subscriptions.push(readReceiptSyncEngineOnLoginHandler());
9936
+ subscriptions$1.push(readReceiptSyncEngineOnLoginHandler());
9651
9937
  }
9652
9938
  else
9653
- subscriptions.push(legacyReadReceiptSyncEngineOnLoginHandler());
9939
+ subscriptions$1.push(legacyReadReceiptSyncEngineOnLoginHandler());
9654
9940
  }
9655
9941
  return true;
9656
9942
  };
@@ -9748,6 +10034,142 @@ const getShareableLinkConfiguration = async () => {
9748
10034
  return data;
9749
10035
  };
9750
10036
 
10037
+ /**
10038
+ * Retrieves a pair of {@link Amity.Tokens} necessary for connection
10039
+ *
10040
+ * @param param get bot token param
10041
+ * @param params.deviceId The user's device Id (can be manually set for native users)
10042
+ * @param options get bot token options
10043
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
10044
+ * @return The accessToken for the given userId
10045
+ *
10046
+ * @category Client API
10047
+ * @hidden
10048
+ */
10049
+ const getBotToken = async ({ params, options, }) => {
10050
+ const client = getActiveClient();
10051
+ client.log('client/api/getBotToken');
10052
+ const deviceInfo = getDeviceInfo();
10053
+ const { data } = await client.http.post('/api/v5/sessions/bot', Object.assign(Object.assign({}, params), { deviceInfo }), {
10054
+ headers: {
10055
+ 'X-API-Key': client.apiKey,
10056
+ 'set-access-token-cookie': (options === null || options === void 0 ? void 0 : options.setAccessTokenCookie) || false,
10057
+ },
10058
+ });
10059
+ return data;
10060
+ };
10061
+
10062
+ /**
10063
+ * A util to set or refresh client token
10064
+ * @param options get bot token options
10065
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
10066
+ * @returns token & user info
10067
+ *
10068
+ * @category private
10069
+ * @async
10070
+ */
10071
+ const setBotClientToken = async (params) => {
10072
+ const client = getActiveClient();
10073
+ // begin establishing session
10074
+ setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
10075
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getBotToken(params);
10076
+ // manually setup the token for http transport
10077
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
10078
+ client.http.defaults.metadata = {
10079
+ tokenExpiry: expiresAt,
10080
+ isGlobalBanned: false,
10081
+ isUserDeleted: false,
10082
+ };
10083
+ client.token = { accessToken, issuedAt, expiresAt };
10084
+ setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
10085
+ return { accessToken, users, userType };
10086
+ };
10087
+
10088
+ /* eslint-disable require-atomic-updates */
10089
+ /*
10090
+ * declared earlier to accomodate case when logging in with a different user
10091
+ * than the one already connected, in which case the existing subscriptions need
10092
+ * to be cleared
10093
+ */
10094
+ const subscriptions = [];
10095
+ /* begin_public_function
10096
+ id: client.loginAsBot
10097
+ */
10098
+ /**
10099
+ * ```js
10100
+ * import { loginAsBot } from '@amityco/ts-sdk/client/api'
10101
+ * const success = await loginAsBot({
10102
+ sessionHandler: {
10103
+ sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
10104
+ ...
10105
+ }
10106
+ * })
10107
+ * ```
10108
+ *
10109
+ * Connects an {@link Amity.Client} instance to ASC servers
10110
+ *
10111
+ * @param params. the connect parameters
10112
+ * @param params.sessionHandler
10113
+ * @returns a success boolean if connected
10114
+ *
10115
+ * @category Client API
10116
+ * @async
10117
+ */
10118
+ const loginAsBot = async (params) => {
10119
+ const client = getActiveClient();
10120
+ let unsubWatcher;
10121
+ client.log('client/api/connectClient', {
10122
+ apiKey: client.apiKey,
10123
+ sessionState: client.sessionState,
10124
+ });
10125
+ // generate deviceId
10126
+ const deviceId = await getDeviceId();
10127
+ let user;
10128
+ try {
10129
+ const { users, userType } = await setBotClientToken({
10130
+ params: {
10131
+ deviceId,
10132
+ },
10133
+ options: {
10134
+ setAccessTokenCookie: true,
10135
+ },
10136
+ });
10137
+ [user] = users;
10138
+ client.userId = user.userId;
10139
+ client.sessionHandler = params.sessionHandler;
10140
+ /*
10141
+ * Cannot push to subscriptions as watcher needs to continue working even if
10142
+ * token expires
10143
+ */
10144
+ unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);
10145
+ setCurrentUser({ user, userType });
10146
+ }
10147
+ catch (error) {
10148
+ /*
10149
+ * if getting token failed session state reverts to initial state when app
10150
+ * is first launched
10151
+ */
10152
+ SessionWatcher$1.getInstance().setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
10153
+ // pass error down tree so the calling function handle it
10154
+ throw error;
10155
+ }
10156
+ await initializeMessagePreviewSetting();
10157
+ if (subscriptions.length === 0) {
10158
+ // handling internal SDK events
10159
+ subscriptions.push(onTokenTerminated(_ => {
10160
+ terminateClient();
10161
+ subscriptions.forEach(fn => fn());
10162
+ unsubWatcher();
10163
+ }), onTokenExpired(state => {
10164
+ SessionWatcher$1.getInstance().setSessionState(state);
10165
+ logout();
10166
+ subscriptions.forEach(fn => fn());
10167
+ }));
10168
+ }
10169
+ return true;
10170
+ };
10171
+ /* end_public_function */
10172
+
9751
10173
  /**
9752
10174
  * ```js
9753
10175
  * import { onChannelMarkerFetched } from '@amityco/ts-sdk'
@@ -10119,6 +10541,11 @@ var index$o = /*#__PURE__*/Object.freeze({
10119
10541
  fetchLinkPreview: fetchLinkPreview,
10120
10542
  getSocialSettings: getSocialSettings,
10121
10543
  getShareableLinkConfiguration: getShareableLinkConfiguration,
10544
+ loginAsVisitor: loginAsVisitor,
10545
+ loginAsBot: loginAsBot,
10546
+ getCurrentUser: getCurrentUser,
10547
+ getCurrentUserType: getCurrentUserType,
10548
+ setCurrentUserType: setCurrentUserType,
10122
10549
  onConnectionError: onConnectionError,
10123
10550
  onClientDisconnected: onClientDisconnected,
10124
10551
  onClientBanned: onClientBanned,
@@ -16820,7 +17247,6 @@ const muteChannel = async (channelId, mutePeriod = MUTE_FOREVER$1) => {
16820
17247
  /* begin_public_function
16821
17248
  id: channel.unmute
16822
17249
  */
16823
- const CHANNEL_UNMUTE_PERIOD = 0;
16824
17250
  /**
16825
17251
  * ```js
16826
17252
  * import { ChannelRepository } from '@amityco/ts-sdk'
@@ -16835,14 +17261,11 @@ const CHANNEL_UNMUTE_PERIOD = 0;
16835
17261
  * @category Channel API
16836
17262
  * @async
16837
17263
  */
17264
+ const CHANNEL_UNMUTE_PERIOD = 0; // Setting mute period as 0 is the same as unmuting the channel
16838
17265
  const unmuteChannel = async (channelId) => {
16839
17266
  const client = getActiveClient();
16840
17267
  client.log('channel/unmuteChannel', channelId);
16841
- const { data } = await client.http.put(`/api/v2/channel/${encodeURIComponent(channelId)}/mute`,
16842
- /*
16843
- * Setting mute period as 0 is the same as unmuting the channel
16844
- */
16845
- { mutePeriod: CHANNEL_UNMUTE_PERIOD });
17268
+ const { data } = await client.http.put(`/api/v2/channel/${encodeURIComponent(channelId)}/mute`, { mutePeriod: CHANNEL_UNMUTE_PERIOD });
16846
17269
  const { success } = data;
16847
17270
  return success;
16848
17271
  };
@@ -23013,7 +23436,7 @@ const getCategory = async (categoryId) => {
23013
23436
  ingestInCache(data, { cachedAt });
23014
23437
  const { categories } = data;
23015
23438
  return {
23016
- data: LinkedObject.category(categories.find(category => category.categoryId === categoryId)),
23439
+ data: LinkedObject.category((categories !== null && categories !== void 0 ? categories : []).find(category => category.categoryId === categoryId)),
23017
23440
  cachedAt,
23018
23441
  };
23019
23442
  };