@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
@@ -0,0 +1,129 @@
1
+ /* eslint-disable no-param-reassign */
2
+ import { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';
3
+ /* eslint-disable require-atomic-updates */
4
+ import { getDeviceId } from '~/core/device';
5
+ import { logout } from './logout';
6
+
7
+ import { getActiveClient } from './activeClient';
8
+ import { terminateClient } from './terminateClient';
9
+
10
+ import { onTokenExpired } from '../events/onTokenExpired';
11
+ import { onTokenTerminated } from '../events/onTokenTerminated';
12
+ import { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';
13
+
14
+ import SessionWatcher from '../utils/SessionWatcher';
15
+ import { setVisitorClientToken } from '../utils/setVisitorClientToken';
16
+ import { setCurrentUser } from '../utils/setCurrentUser';
17
+
18
+ /*
19
+ * declared earlier to accomodate case when logging in with a different user
20
+ * than the one already connected, in which case the existing subscriptions need
21
+ * to be cleared
22
+ */
23
+ const subscriptions: Amity.Unsubscriber[] = [];
24
+
25
+ /* begin_public_function
26
+ id: client.loginAsVisitor
27
+ */
28
+ /**
29
+ * ```js
30
+ * import { loginAsVisitor } from '@amityco/ts-sdk/client/api'
31
+ * const success = await loginAsVisitor({
32
+ sessionHandler: {
33
+ sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
34
+ ...
35
+ }
36
+ * })
37
+ * ```
38
+ *
39
+ * Connects an {@link Amity.Client} instance to ASC servers
40
+ *
41
+ * @param params. the connect parameters
42
+ * @param params.authSignature The authenitcation signature - necessary when network option is set to secure
43
+ * @param params.authSignatureExpiresAt Expire time of the authenitcation signature
44
+ * @param params.sessionHandler
45
+ * @returns a success boolean if connected
46
+ *
47
+ * @category Client API
48
+ * @async
49
+ */
50
+
51
+ export const loginAsVisitor = async (
52
+ params: Amity.ConnectClientAsVisitorParams & {
53
+ sessionHandler: Amity.SessionHandler;
54
+ },
55
+ ): Promise<boolean> => {
56
+ const client = getActiveClient();
57
+ let unsubWatcher: Amity.Unsubscriber;
58
+ client.log('client/api/connectClient', {
59
+ apiKey: client.apiKey,
60
+ sessionState: client.sessionState,
61
+ ...params,
62
+ });
63
+
64
+ // generate deviceId
65
+ const deviceId = await getDeviceId();
66
+ let user: Amity.RawUser;
67
+
68
+ try {
69
+ const { users, userType } = await setVisitorClientToken({
70
+ params: {
71
+ ...params,
72
+ deviceId,
73
+ },
74
+ options: {
75
+ setAccessTokenCookie: true,
76
+ },
77
+ });
78
+
79
+ [user] = users;
80
+
81
+ client.userId = user.userId;
82
+
83
+ client.sessionHandler = params.sessionHandler;
84
+
85
+ /*
86
+ * Cannot push to subscriptions as watcher needs to continue working even if
87
+ * token expires
88
+ */
89
+ unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);
90
+
91
+ setCurrentUser({ user, userType });
92
+ } catch (error) {
93
+ /*
94
+ * if getting token failed session state reverts to initial state when app
95
+ * is first launched
96
+ */
97
+ SessionWatcher.getInstance().setSessionState(Amity.SessionStates.NOT_LOGGED_IN);
98
+
99
+ // pass error down tree so the calling function handle it
100
+ throw error;
101
+ }
102
+
103
+ await initializeMessagePreviewSetting();
104
+
105
+ if (subscriptions.length === 0) {
106
+ // handling internal SDK events
107
+ subscriptions.push(
108
+ onTokenTerminated(_ => {
109
+ terminateClient();
110
+
111
+ subscriptions.forEach(fn => fn());
112
+
113
+ unsubWatcher();
114
+ }),
115
+
116
+ onTokenExpired(state => {
117
+ SessionWatcher.getInstance().setSessionState(state);
118
+
119
+ logout();
120
+
121
+ subscriptions.forEach(fn => fn());
122
+ }),
123
+ );
124
+ }
125
+
126
+ return true;
127
+ };
128
+
129
+ /* end_public_function */
@@ -1,10 +1,12 @@
1
1
  import { getDeviceId } from '~/core/device';
2
2
  import { ACCESS_TOKEN_WATCHER_INTERVAL } from '~/utils/constants';
3
3
 
4
- import { getActiveUser } from './activeUser';
5
4
  import { setClientToken as refreshToken } from '../utils/setClientToken';
5
+ import { setVisitorClientToken as refreshVisitorToken } from '../utils/setVisitorClientToken';
6
6
  import { getActiveClient } from './activeClient';
7
7
  import { login } from './login';
8
+ import { loginAsVisitor } from './loginAsVisitor';
9
+ import { getCurrentUser } from './getCurrentUser';
8
10
 
9
11
  /* begin_public_function
10
12
  id: client.renew_access_token
@@ -30,7 +32,7 @@ export const renewal = (): Amity.AccessTokenRenewal => {
30
32
  * Per instance of Renewal, only one renewal is allowed
31
33
  */
32
34
  const renewToken = async (authToken?: Amity.ConnectClientParams['authToken']): Promise<void> => {
33
- const { userId, displayName } = getActiveUser();
35
+ const { userId, displayName } = getCurrentUser();
34
36
  const deviceId = await getDeviceId();
35
37
 
36
38
  const params = { userId, displayName, authToken, deviceId };
@@ -53,6 +55,30 @@ export const renewal = (): Amity.AccessTokenRenewal => {
53
55
  if (renewTimeoutId) clearTimeout(renewTimeoutId);
54
56
  };
55
57
 
58
+ const renewVisitorToken = async ({
59
+ authSignature,
60
+ authSignatureExpiresAt,
61
+ }: Amity.ConnectClientAsVisitorParams): Promise<void> => {
62
+ const deviceId = await getDeviceId();
63
+
64
+ if (client.sessionState === Amity.SessionStates.TOKEN_EXPIRED && client.sessionHandler) {
65
+ await loginAsVisitor({ sessionHandler: client.sessionHandler });
66
+ } else {
67
+ // about to expire
68
+
69
+ await refreshVisitorToken({
70
+ params: { authSignature, authSignatureExpiresAt, deviceId },
71
+ options: {
72
+ setAccessTokenCookie: true,
73
+ },
74
+ });
75
+ }
76
+
77
+ tokenRenewed = true;
78
+
79
+ if (renewTimeoutId) clearTimeout(renewTimeoutId);
80
+ };
81
+
56
82
  return {
57
83
  renew: () => {
58
84
  if (tokenRenewed) {
@@ -75,6 +101,20 @@ export const renewal = (): Amity.AccessTokenRenewal => {
75
101
  client.sessionHandler?.sessionWillRenewAccessToken(renewal());
76
102
  }, ACCESS_TOKEN_WATCHER_INTERVAL);
77
103
  },
104
+
105
+ renewWithAuthSignature: (params: Amity.ConnectClientAsVisitorParams) => {
106
+ if (tokenRenewed) {
107
+ console.log("'renew' method can be called only once per renewal instance");
108
+ return;
109
+ }
110
+ renewVisitorToken(params);
111
+ },
112
+
113
+ unableToRetrieveAuthSignature: () => {
114
+ renewTimeoutId = setTimeout(() => {
115
+ client.sessionHandler?.sessionWillRenewAccessToken(renewal());
116
+ }, ACCESS_TOKEN_WATCHER_INTERVAL);
117
+ },
78
118
  };
79
119
  };
80
120
  /* end_public_function */
@@ -0,0 +1,35 @@
1
+ import { getActiveClient } from '../api/activeClient';
2
+ import { setSessionState } from '../api/setSessionState';
3
+ import { getBotToken } from '../api/getBotToken';
4
+
5
+ /**
6
+ * A util to set or refresh client token
7
+ * @param options get bot token options
8
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
9
+ * @returns token & user info
10
+ *
11
+ * @category private
12
+ * @async
13
+ */
14
+ export const setBotClientToken = async (params: Parameters<typeof getBotToken>[0]) => {
15
+ const client = getActiveClient();
16
+ // begin establishing session
17
+ setSessionState(Amity.SessionStates.ESTABLISHING);
18
+
19
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getBotToken(params);
20
+
21
+ // manually setup the token for http transport
22
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
23
+
24
+ client.http.defaults.metadata = {
25
+ tokenExpiry: expiresAt,
26
+ isGlobalBanned: false,
27
+ isUserDeleted: false,
28
+ };
29
+
30
+ client.token = { accessToken, issuedAt, expiresAt };
31
+
32
+ setSessionState(Amity.SessionStates.ESTABLISHED);
33
+
34
+ return { accessToken, users, userType };
35
+ };
@@ -19,7 +19,7 @@ export const setClientToken = async (params: Parameters<typeof getToken>[0]) =>
19
19
  // begin establishing session
20
20
  setSessionState(Amity.SessionStates.ESTABLISHING);
21
21
 
22
- const { accessToken, users, expiresAt, issuedAt } = await getToken(params);
22
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getToken(params);
23
23
 
24
24
  // manually setup the token for http transport
25
25
  client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
@@ -42,5 +42,5 @@ export const setClientToken = async (params: Parameters<typeof getToken>[0]) =>
42
42
 
43
43
  setSessionState(Amity.SessionStates.ESTABLISHED);
44
44
 
45
- return { accessToken, users };
45
+ return { accessToken, users, userType };
46
46
  };
@@ -0,0 +1,15 @@
1
+ import { setActiveUser } from '../api/activeUser';
2
+ import { setCurrentUserType } from '../api/getCurrentUserType';
3
+ import { pushToCache } from '~/cache/api/pushToCache';
4
+
5
+ export const setCurrentUser = ({
6
+ user,
7
+ userType,
8
+ }: {
9
+ user: Amity.RawUser;
10
+ userType: Amity.UserType;
11
+ }) => {
12
+ setActiveUser(user);
13
+ setCurrentUserType(userType);
14
+ pushToCache(['user', 'get', user.userId], user);
15
+ };
@@ -0,0 +1,40 @@
1
+ import { getActiveClient } from '../api/activeClient';
2
+ import { setSessionState } from '../api/setSessionState';
3
+ import { getVisitorToken } from '../api/getVisitorToken';
4
+
5
+ /**
6
+ * A util to set or refresh client token
7
+ *
8
+ * @param params.userId the user ID for the current session
9
+ * @param params.displayName the user's displayName for the current session
10
+ * @param params.deviceId Manual override of the user's device id (for device management)
11
+ * @param params.authToken The authentication token - necessary when network option is set to secure
12
+ * @param options get bot token options
13
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
14
+ * @returns token & user info
15
+ *
16
+ * @category private
17
+ * @async
18
+ */
19
+ export const setVisitorClientToken = async (params: Parameters<typeof getVisitorToken>[0]) => {
20
+ const client = getActiveClient();
21
+ // begin establishing session
22
+ setSessionState(Amity.SessionStates.ESTABLISHING);
23
+
24
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getVisitorToken(params);
25
+
26
+ // manually setup the token for http transport
27
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
28
+
29
+ client.http.defaults.metadata = {
30
+ tokenExpiry: expiresAt,
31
+ isGlobalBanned: false,
32
+ isUserDeleted: false,
33
+ };
34
+
35
+ client.token = { accessToken, issuedAt, expiresAt };
36
+
37
+ setSessionState(Amity.SessionStates.ESTABLISHED);
38
+
39
+ return { accessToken, users, userType };
40
+ };
@@ -104,6 +104,7 @@ export const createHttpTransport = (endpoint: string) => {
104
104
 
105
105
  instance.interceptors.request.use(config => {
106
106
  // do not check expiration for token creation url
107
+
107
108
  if (config.url === '/api/v5/sessions') {
108
109
  return config;
109
110
  }
@@ -123,10 +124,10 @@ export const createHttpTransport = (endpoint: string) => {
123
124
  }
124
125
 
125
126
  if (tokenExpiry) {
126
- if (Date.now() >= Date.parse(tokenExpiry)) {
127
- controller.abort(RequestCancelation.UserDeleted);
128
- handleRequestCancelation(RequestCancelation.TokenExpired);
129
- }
127
+ // if (Date.now() >= Date.parse(tokenExpiry)) {
128
+ // controller.abort(RequestCancelation.UserDeleted);
129
+ // handleRequestCancelation(RequestCancelation.TokenExpired);
130
+ // }
130
131
  }
131
132
  }
132
133
 
@@ -3,6 +3,7 @@ import { shallowClone } from '../shallowClone';
3
3
  import { queryCache } from '~/cache/api';
4
4
  import { channelMemberLinkedObject } from './channelMemberLinkedObject';
5
5
  import { getMyMembership } from '~/channelRepository/observers/getMyMembership';
6
+ import { getMembership } from '~/channelRepository/observers/getMembership';
6
7
 
7
8
  export const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Channel => {
8
9
  let previewMembers: Amity.Membership<'channel'>[] = [];
@@ -28,5 +29,15 @@ export const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Chann
28
29
  previewMembers,
29
30
  myMembership: (callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>) =>
30
31
  getMyMembership(channel.channelId, callback),
32
+ getMembership: (
33
+ userId: Amity.User['userId'],
34
+ callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,
35
+ ) => {
36
+ getMembership({
37
+ channelId: channel.channelId,
38
+ userId,
39
+ callback,
40
+ });
41
+ },
31
42
  });
32
43
  };