@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,92 @@
1
+ /* eslint-disable require-atomic-updates */
2
+ import { getDeviceId } from '~/core/device';
3
+ import { logout } from './logout';
4
+ import { getActiveClient } from './activeClient';
5
+ import { terminateClient } from './terminateClient';
6
+ import { onTokenExpired } from '../events/onTokenExpired';
7
+ import { onTokenTerminated } from '../events/onTokenTerminated';
8
+ import { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';
9
+ import SessionWatcher from '../utils/SessionWatcher';
10
+ import { setVisitorClientToken } from '../utils/setVisitorClientToken';
11
+ import { setCurrentUser } from '../utils/setCurrentUser';
12
+ /*
13
+ * declared earlier to accomodate case when logging in with a different user
14
+ * than the one already connected, in which case the existing subscriptions need
15
+ * to be cleared
16
+ */
17
+ const subscriptions = [];
18
+ /* begin_public_function
19
+ id: client.loginAsVisitor
20
+ */
21
+ /**
22
+ * ```js
23
+ * import { loginAsVisitor } from '@amityco/ts-sdk/client/api'
24
+ * const success = await loginAsVisitor({
25
+ sessionHandler: {
26
+ sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
27
+ ...
28
+ }
29
+ * })
30
+ * ```
31
+ *
32
+ * Connects an {@link Amity.Client} instance to ASC servers
33
+ *
34
+ * @param params. the connect parameters
35
+ * @param params.authSignature The authenitcation signature - necessary when network option is set to secure
36
+ * @param params.authSignatureExpiresAt Expire time of the authenitcation signature
37
+ * @param params.sessionHandler
38
+ * @returns a success boolean if connected
39
+ *
40
+ * @category Client API
41
+ * @async
42
+ */
43
+ export const loginAsVisitor = async (params) => {
44
+ const client = getActiveClient();
45
+ let unsubWatcher;
46
+ client.log('client/api/connectClient', Object.assign({ apiKey: client.apiKey, sessionState: client.sessionState }, params));
47
+ // generate deviceId
48
+ const deviceId = await getDeviceId();
49
+ let user;
50
+ try {
51
+ const { users, userType } = await setVisitorClientToken({
52
+ params: Object.assign(Object.assign({}, params), { deviceId }),
53
+ options: {
54
+ setAccessTokenCookie: true,
55
+ },
56
+ });
57
+ [user] = users;
58
+ client.userId = user.userId;
59
+ client.sessionHandler = params.sessionHandler;
60
+ /*
61
+ * Cannot push to subscriptions as watcher needs to continue working even if
62
+ * token expires
63
+ */
64
+ unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);
65
+ setCurrentUser({ user, userType });
66
+ }
67
+ catch (error) {
68
+ /*
69
+ * if getting token failed session state reverts to initial state when app
70
+ * is first launched
71
+ */
72
+ SessionWatcher.getInstance().setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
73
+ // pass error down tree so the calling function handle it
74
+ throw error;
75
+ }
76
+ await initializeMessagePreviewSetting();
77
+ if (subscriptions.length === 0) {
78
+ // handling internal SDK events
79
+ subscriptions.push(onTokenTerminated(_ => {
80
+ terminateClient();
81
+ subscriptions.forEach(fn => fn());
82
+ unsubWatcher();
83
+ }), onTokenExpired(state => {
84
+ SessionWatcher.getInstance().setSessionState(state);
85
+ logout();
86
+ subscriptions.forEach(fn => fn());
87
+ }));
88
+ }
89
+ return true;
90
+ };
91
+ /* end_public_function */
92
+ //# sourceMappingURL=loginAsVisitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginAsVisitor.js","sourceRoot":"","sources":["../../../src/client/api/loginAsVisitor.ts"],"names":[],"mappings":"AAEA,2CAA2C;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,aAAa,GAAyB,EAAE,CAAC;AAE/C;;EAEE;AACF;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,MAEC,EACiB,EAAE;IACpB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,YAAgC,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,0BAA0B,kBACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,YAAY,EAAE,MAAM,CAAC,YAAY,IAC9B,MAAM,EACT,CAAC;IAEH,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,IAAI,IAAmB,CAAC;IAExB,IAAI;QACF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,qBAAqB,CAAC;YACtD,MAAM,kCACD,MAAM,KACT,QAAQ,GACT;YACD,OAAO,EAAE;gBACP,oBAAoB,EAAE,IAAI;aAC3B;SACF,CAAC,CAAC;QAEH,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAEf,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE5B,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAE9C;;;WAGG;QACH,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAEtE,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;KACpC;IAAC,OAAO,KAAK,EAAE;QACd;;;WAGG;QACH,cAAc,CAAC,WAAW,EAAE,CAAC,eAAe,uDAAmC,CAAC;QAEhF,yDAAyD;QACzD,MAAM,KAAK,CAAC;KACb;IAED,MAAM,+BAA+B,EAAE,CAAC;IAExC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,+BAA+B;QAC/B,aAAa,CAAC,IAAI,CAChB,iBAAiB,CAAC,CAAC,CAAC,EAAE;YACpB,eAAe,EAAE,CAAC;YAElB,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAElC,YAAY,EAAE,CAAC;QACjB,CAAC,CAAC,EAEF,cAAc,CAAC,KAAK,CAAC,EAAE;YACrB,cAAc,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAEpD,MAAM,EAAE,CAAC;YAET,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CACH,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,yBAAyB","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';\n/* eslint-disable require-atomic-updates */\nimport { getDeviceId } from '~/core/device';\nimport { logout } from './logout';\n\nimport { getActiveClient } from './activeClient';\nimport { terminateClient } from './terminateClient';\n\nimport { onTokenExpired } from '../events/onTokenExpired';\nimport { onTokenTerminated } from '../events/onTokenTerminated';\nimport { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';\n\nimport SessionWatcher from '../utils/SessionWatcher';\nimport { setVisitorClientToken } from '../utils/setVisitorClientToken';\nimport { setCurrentUser } from '../utils/setCurrentUser';\n\n/*\n * declared earlier to accomodate case when logging in with a different user\n * than the one already connected, in which case the existing subscriptions need\n * to be cleared\n */\nconst subscriptions: Amity.Unsubscriber[] = [];\n\n/* begin_public_function\n id: client.loginAsVisitor\n*/\n/**\n * ```js\n * import { loginAsVisitor } from '@amityco/ts-sdk/client/api'\n * const success = await loginAsVisitor({\n sessionHandler: {\n sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {\n ...\n }\n * })\n * ```\n *\n * Connects an {@link Amity.Client} instance to ASC servers\n *\n * @param params. the connect parameters\n * @param params.authSignature The authenitcation signature - necessary when network option is set to secure\n * @param params.authSignatureExpiresAt Expire time of the authenitcation signature\n * @param params.sessionHandler\n * @returns a success boolean if connected\n *\n * @category Client API\n * @async\n */\n\nexport const loginAsVisitor = async (\n params: Amity.ConnectClientAsVisitorParams & {\n sessionHandler: Amity.SessionHandler;\n },\n): Promise<boolean> => {\n const client = getActiveClient();\n let unsubWatcher: Amity.Unsubscriber;\n client.log('client/api/connectClient', {\n apiKey: client.apiKey,\n sessionState: client.sessionState,\n ...params,\n });\n\n // generate deviceId\n const deviceId = await getDeviceId();\n let user: Amity.RawUser;\n\n try {\n const { users, userType } = await setVisitorClientToken({\n params: {\n ...params,\n deviceId,\n },\n options: {\n setAccessTokenCookie: true,\n },\n });\n\n [user] = users;\n\n client.userId = user.userId;\n\n client.sessionHandler = params.sessionHandler;\n\n /*\n * Cannot push to subscriptions as watcher needs to continue working even if\n * token expires\n */\n unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);\n\n setCurrentUser({ user, userType });\n } catch (error) {\n /*\n * if getting token failed session state reverts to initial state when app\n * is first launched\n */\n SessionWatcher.getInstance().setSessionState(Amity.SessionStates.NOT_LOGGED_IN);\n\n // pass error down tree so the calling function handle it\n throw error;\n }\n\n await initializeMessagePreviewSetting();\n\n if (subscriptions.length === 0) {\n // handling internal SDK events\n subscriptions.push(\n onTokenTerminated(_ => {\n terminateClient();\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }),\n\n onTokenExpired(state => {\n SessionWatcher.getInstance().setSessionState(state);\n\n logout();\n\n subscriptions.forEach(fn => fn());\n }),\n );\n }\n\n return true;\n};\n\n/* end_public_function */\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"renewal.d.ts","sourceRoot":"","sources":["../../../src/client/api/renewal.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,OAAO,QAAO,MAAM,kBA2DhC,CAAC"}
1
+ {"version":3,"file":"renewal.d.ts","sourceRoot":"","sources":["../../../src/client/api/renewal.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,OAAO,QAAO,MAAM,kBAiGhC,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { getDeviceId } from '~/core/device';
2
2
  import { ACCESS_TOKEN_WATCHER_INTERVAL } from '~/utils/constants';
3
- import { getActiveUser } from './activeUser';
4
3
  import { setClientToken as refreshToken } from '../utils/setClientToken';
4
+ import { setVisitorClientToken as refreshVisitorToken } from '../utils/setVisitorClientToken';
5
5
  import { getActiveClient } from './activeClient';
6
6
  import { login } from './login';
7
+ import { loginAsVisitor } from './loginAsVisitor';
8
+ import { getCurrentUser } from './getCurrentUser';
7
9
  /* begin_public_function
8
10
  id: client.renew_access_token
9
11
  */
@@ -26,7 +28,7 @@ export const renewal = () => {
26
28
  * Per instance of Renewal, only one renewal is allowed
27
29
  */
28
30
  const renewToken = async (authToken) => {
29
- const { userId, displayName } = getActiveUser();
31
+ const { userId, displayName } = getCurrentUser();
30
32
  const deviceId = await getDeviceId();
31
33
  const params = { userId, displayName, authToken, deviceId };
32
34
  if (client.sessionState === "tokenExpired" /* Amity.SessionStates.TOKEN_EXPIRED */ && client.sessionHandler) {
@@ -45,6 +47,24 @@ export const renewal = () => {
45
47
  if (renewTimeoutId)
46
48
  clearTimeout(renewTimeoutId);
47
49
  };
50
+ const renewVisitorToken = async ({ authSignature, authSignatureExpiresAt, }) => {
51
+ const deviceId = await getDeviceId();
52
+ if (client.sessionState === "tokenExpired" /* Amity.SessionStates.TOKEN_EXPIRED */ && client.sessionHandler) {
53
+ await loginAsVisitor({ sessionHandler: client.sessionHandler });
54
+ }
55
+ else {
56
+ // about to expire
57
+ await refreshVisitorToken({
58
+ params: { authSignature, authSignatureExpiresAt, deviceId },
59
+ options: {
60
+ setAccessTokenCookie: true,
61
+ },
62
+ });
63
+ }
64
+ tokenRenewed = true;
65
+ if (renewTimeoutId)
66
+ clearTimeout(renewTimeoutId);
67
+ };
48
68
  return {
49
69
  renew: () => {
50
70
  if (tokenRenewed) {
@@ -66,6 +86,19 @@ export const renewal = () => {
66
86
  (_a = client.sessionHandler) === null || _a === void 0 ? void 0 : _a.sessionWillRenewAccessToken(renewal());
67
87
  }, ACCESS_TOKEN_WATCHER_INTERVAL);
68
88
  },
89
+ renewWithAuthSignature: (params) => {
90
+ if (tokenRenewed) {
91
+ console.log("'renew' method can be called only once per renewal instance");
92
+ return;
93
+ }
94
+ renewVisitorToken(params);
95
+ },
96
+ unableToRetrieveAuthSignature: () => {
97
+ renewTimeoutId = setTimeout(() => {
98
+ var _a;
99
+ (_a = client.sessionHandler) === null || _a === void 0 ? void 0 : _a.sessionWillRenewAccessToken(renewal());
100
+ }, ACCESS_TOKEN_WATCHER_INTERVAL);
101
+ },
69
102
  };
70
103
  };
71
104
  /* end_public_function */
@@ -1 +1 @@
1
- {"version":3,"file":"renewal.js","sourceRoot":"","sources":["../../../src/client/api/renewal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;EAEE;AACF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAA6B,EAAE;IACpD,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,cAA6C,CAAC;IAElD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC9C;;;;OAIG;IACH,MAAM,UAAU,GAAG,KAAK,EAAE,SAAkD,EAAiB,EAAE;QAC7F,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QAErC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAE5D,IAAI,MAAM,CAAC,YAAY,2DAAsC,IAAI,MAAM,CAAC,cAAc,EAAE;YACtF,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;SAC5C;aAAM;YACL,kBAAkB;YAElB,MAAM,YAAY,CAAC;gBACjB,MAAM;gBACN,OAAO,EAAE;oBACP,oBAAoB,EAAE,IAAI;iBAC3B;aACF,CAAC,CAAC;SACJ;QAED,YAAY,GAAG,IAAI,CAAC;QAEpB,IAAI,cAAc;YAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;gBAC3E,OAAO;aACR;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QAED,kBAAkB,EAAE,CAAC,SAAiB,EAAE,EAAE;YACxC,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;gBACxF,OAAO;aACR;YACD,UAAU,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;QAED,yBAAyB,EAAE,GAAG,EAAE;YAC9B,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;;gBAC/B,MAAA,MAAM,CAAC,cAAc,0CAAE,2BAA2B,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC,EAAE,6BAA6B,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AACF,yBAAyB","sourcesContent":["import { getDeviceId } from '~/core/device';\nimport { ACCESS_TOKEN_WATCHER_INTERVAL } from '~/utils/constants';\n\nimport { getActiveUser } from './activeUser';\nimport { setClientToken as refreshToken } from '../utils/setClientToken';\nimport { getActiveClient } from './activeClient';\nimport { login } from './login';\n\n/* begin_public_function\n id: client.renew_access_token\n*/\n/*\n * Renewal defintion accepted by SessionHandler interface\n *\n * Tech Spec:\n * https://ekoapp.atlassian.net/wiki/spaces/UP/pages/2082537485/ASC+Core+-+Session+Management+3.0#Session-Handler\n *\n * @category private\n */\nexport const renewal = (): Amity.AccessTokenRenewal => {\n let tokenRenewed = false;\n let renewTimeoutId: ReturnType<typeof setTimeout>;\n\n const client = getActiveClient();\n\n client.log('initiating access token renewal');\n /*\n * Renews a token if it is hasn't been renewed before. Also marks token as\n * renewed once done\n * Per instance of Renewal, only one renewal is allowed\n */\n const renewToken = async (authToken?: Amity.ConnectClientParams['authToken']): Promise<void> => {\n const { userId, displayName } = getActiveUser();\n const deviceId = await getDeviceId();\n\n const params = { userId, displayName, authToken, deviceId };\n\n if (client.sessionState === Amity.SessionStates.TOKEN_EXPIRED && client.sessionHandler) {\n await login(params, client.sessionHandler);\n } else {\n // about to expire\n\n await refreshToken({\n params,\n options: {\n setAccessTokenCookie: true,\n },\n });\n }\n\n tokenRenewed = true;\n\n if (renewTimeoutId) clearTimeout(renewTimeoutId);\n };\n\n return {\n renew: () => {\n if (tokenRenewed) {\n console.log(\"'renew' method can be called only once per renewal instance\");\n return;\n }\n renewToken();\n },\n\n renewWithAuthToken: (authToken: string) => {\n if (tokenRenewed) {\n console.log(\"'renewWithAuthToken' method can be called only once per renewal instance\");\n return;\n }\n renewToken(authToken);\n },\n\n unableToRetrieveAuthToken: () => {\n renewTimeoutId = setTimeout(() => {\n client.sessionHandler?.sessionWillRenewAccessToken(renewal());\n }, ACCESS_TOKEN_WATCHER_INTERVAL);\n },\n };\n};\n/* end_public_function */\n"]}
1
+ {"version":3,"file":"renewal.js","sourceRoot":"","sources":["../../../src/client/api/renewal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,qBAAqB,IAAI,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;EAEE;AACF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAA6B,EAAE;IACpD,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,cAA6C,CAAC;IAElD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC9C;;;;OAIG;IACH,MAAM,UAAU,GAAG,KAAK,EAAE,SAAkD,EAAiB,EAAE;QAC7F,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QAErC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAE5D,IAAI,MAAM,CAAC,YAAY,2DAAsC,IAAI,MAAM,CAAC,cAAc,EAAE;YACtF,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;SAC5C;aAAM;YACL,kBAAkB;YAElB,MAAM,YAAY,CAAC;gBACjB,MAAM;gBACN,OAAO,EAAE;oBACP,oBAAoB,EAAE,IAAI;iBAC3B;aACF,CAAC,CAAC;SACJ;QAED,YAAY,GAAG,IAAI,CAAC;QAEpB,IAAI,cAAc;YAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,EAC/B,aAAa,EACb,sBAAsB,GACa,EAAiB,EAAE;QACtD,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,YAAY,2DAAsC,IAAI,MAAM,CAAC,cAAc,EAAE;YACtF,MAAM,cAAc,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;SACjE;aAAM;YACL,kBAAkB;YAElB,MAAM,mBAAmB,CAAC;gBACxB,MAAM,EAAE,EAAE,aAAa,EAAE,sBAAsB,EAAE,QAAQ,EAAE;gBAC3D,OAAO,EAAE;oBACP,oBAAoB,EAAE,IAAI;iBAC3B;aACF,CAAC,CAAC;SACJ;QAED,YAAY,GAAG,IAAI,CAAC;QAEpB,IAAI,cAAc;YAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;gBAC3E,OAAO;aACR;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QAED,kBAAkB,EAAE,CAAC,SAAiB,EAAE,EAAE;YACxC,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;gBACxF,OAAO;aACR;YACD,UAAU,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;QAED,yBAAyB,EAAE,GAAG,EAAE;YAC9B,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;;gBAC/B,MAAA,MAAM,CAAC,cAAc,0CAAE,2BAA2B,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC,EAAE,6BAA6B,CAAC,CAAC;QACpC,CAAC;QAED,sBAAsB,EAAE,CAAC,MAA0C,EAAE,EAAE;YACrE,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;gBAC3E,OAAO;aACR;YACD,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,6BAA6B,EAAE,GAAG,EAAE;YAClC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;;gBAC/B,MAAA,MAAM,CAAC,cAAc,0CAAE,2BAA2B,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC,EAAE,6BAA6B,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AACF,yBAAyB","sourcesContent":["import { getDeviceId } from '~/core/device';\nimport { ACCESS_TOKEN_WATCHER_INTERVAL } from '~/utils/constants';\n\nimport { setClientToken as refreshToken } from '../utils/setClientToken';\nimport { setVisitorClientToken as refreshVisitorToken } from '../utils/setVisitorClientToken';\nimport { getActiveClient } from './activeClient';\nimport { login } from './login';\nimport { loginAsVisitor } from './loginAsVisitor';\nimport { getCurrentUser } from './getCurrentUser';\n\n/* begin_public_function\n id: client.renew_access_token\n*/\n/*\n * Renewal defintion accepted by SessionHandler interface\n *\n * Tech Spec:\n * https://ekoapp.atlassian.net/wiki/spaces/UP/pages/2082537485/ASC+Core+-+Session+Management+3.0#Session-Handler\n *\n * @category private\n */\nexport const renewal = (): Amity.AccessTokenRenewal => {\n let tokenRenewed = false;\n let renewTimeoutId: ReturnType<typeof setTimeout>;\n\n const client = getActiveClient();\n\n client.log('initiating access token renewal');\n /*\n * Renews a token if it is hasn't been renewed before. Also marks token as\n * renewed once done\n * Per instance of Renewal, only one renewal is allowed\n */\n const renewToken = async (authToken?: Amity.ConnectClientParams['authToken']): Promise<void> => {\n const { userId, displayName } = getCurrentUser();\n const deviceId = await getDeviceId();\n\n const params = { userId, displayName, authToken, deviceId };\n\n if (client.sessionState === Amity.SessionStates.TOKEN_EXPIRED && client.sessionHandler) {\n await login(params, client.sessionHandler);\n } else {\n // about to expire\n\n await refreshToken({\n params,\n options: {\n setAccessTokenCookie: true,\n },\n });\n }\n\n tokenRenewed = true;\n\n if (renewTimeoutId) clearTimeout(renewTimeoutId);\n };\n\n const renewVisitorToken = async ({\n authSignature,\n authSignatureExpiresAt,\n }: Amity.ConnectClientAsVisitorParams): Promise<void> => {\n const deviceId = await getDeviceId();\n\n if (client.sessionState === Amity.SessionStates.TOKEN_EXPIRED && client.sessionHandler) {\n await loginAsVisitor({ sessionHandler: client.sessionHandler });\n } else {\n // about to expire\n\n await refreshVisitorToken({\n params: { authSignature, authSignatureExpiresAt, deviceId },\n options: {\n setAccessTokenCookie: true,\n },\n });\n }\n\n tokenRenewed = true;\n\n if (renewTimeoutId) clearTimeout(renewTimeoutId);\n };\n\n return {\n renew: () => {\n if (tokenRenewed) {\n console.log(\"'renew' method can be called only once per renewal instance\");\n return;\n }\n renewToken();\n },\n\n renewWithAuthToken: (authToken: string) => {\n if (tokenRenewed) {\n console.log(\"'renewWithAuthToken' method can be called only once per renewal instance\");\n return;\n }\n renewToken(authToken);\n },\n\n unableToRetrieveAuthToken: () => {\n renewTimeoutId = setTimeout(() => {\n client.sessionHandler?.sessionWillRenewAccessToken(renewal());\n }, ACCESS_TOKEN_WATCHER_INTERVAL);\n },\n\n renewWithAuthSignature: (params: Amity.ConnectClientAsVisitorParams) => {\n if (tokenRenewed) {\n console.log(\"'renew' method can be called only once per renewal instance\");\n return;\n }\n renewVisitorToken(params);\n },\n\n unableToRetrieveAuthSignature: () => {\n renewTimeoutId = setTimeout(() => {\n client.sessionHandler?.sessionWillRenewAccessToken(renewal());\n }, ACCESS_TOKEN_WATCHER_INTERVAL);\n },\n };\n};\n/* end_public_function */\n"]}
@@ -0,0 +1,16 @@
1
+ import { getBotToken } from '../api/getBotToken';
2
+ /**
3
+ * A util to set or refresh client token
4
+ * @param options get bot token options
5
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
6
+ * @returns token & user info
7
+ *
8
+ * @category private
9
+ * @async
10
+ */
11
+ export declare const setBotClientToken: (params: Parameters<typeof getBotToken>[0]) => Promise<{
12
+ accessToken: string;
13
+ users: Amity.RawUser[];
14
+ userType: "signed-in" | "visitor" | "bot";
15
+ }>;
16
+ //# sourceMappingURL=setBotClientToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setBotClientToken.d.ts","sourceRoot":"","sources":["../../../src/client/utils/setBotClientToken.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,WAAkB,WAAW,kBAAkB,CAAC,CAAC,CAAC,CAAC;;;;EAqBhF,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { getActiveClient } from '../api/activeClient';
2
+ import { setSessionState } from '../api/setSessionState';
3
+ import { getBotToken } from '../api/getBotToken';
4
+ /**
5
+ * A util to set or refresh client token
6
+ * @param options get bot token options
7
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
8
+ * @returns token & user info
9
+ *
10
+ * @category private
11
+ * @async
12
+ */
13
+ export const setBotClientToken = async (params) => {
14
+ const client = getActiveClient();
15
+ // begin establishing session
16
+ setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
17
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getBotToken(params);
18
+ // manually setup the token for http transport
19
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
20
+ client.http.defaults.metadata = {
21
+ tokenExpiry: expiresAt,
22
+ isGlobalBanned: false,
23
+ isUserDeleted: false,
24
+ };
25
+ client.token = { accessToken, issuedAt, expiresAt };
26
+ setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
27
+ return { accessToken, users, userType };
28
+ };
29
+ //# sourceMappingURL=setBotClientToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setBotClientToken.js","sourceRoot":"","sources":["../../../src/client/utils/setBotClientToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,MAAyC,EAAE,EAAE;IACnF,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,6BAA6B;IAC7B,eAAe,uDAAkC,CAAC;IAElD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAExF,8CAA8C;IAC9C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,UAAU,WAAW,EAAE,CAAC;IAE5E,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG;QAC9B,WAAW,EAAE,SAAS;QACtB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEpD,eAAe,qDAAiC,CAAC;IAEjD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC,CAAC","sourcesContent":["import { getActiveClient } from '../api/activeClient';\nimport { setSessionState } from '../api/setSessionState';\nimport { getBotToken } from '../api/getBotToken';\n\n/**\n * A util to set or refresh client token\n * @param options get bot token options\n * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure\n * @returns token & user info\n *\n * @category private\n * @async\n */\nexport const setBotClientToken = async (params: Parameters<typeof getBotToken>[0]) => {\n const client = getActiveClient();\n // begin establishing session\n setSessionState(Amity.SessionStates.ESTABLISHING);\n\n const { accessToken, users, expiresAt, issuedAt, userType } = await getBotToken(params);\n\n // manually setup the token for http transport\n client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\n\n client.http.defaults.metadata = {\n tokenExpiry: expiresAt,\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n client.token = { accessToken, issuedAt, expiresAt };\n\n setSessionState(Amity.SessionStates.ESTABLISHED);\n\n return { accessToken, users, userType };\n};\n"]}
@@ -13,6 +13,7 @@ import { getToken } from '../api/getToken';
13
13
  */
14
14
  export declare const setClientToken: (params: Parameters<typeof getToken>[0]) => Promise<{
15
15
  accessToken: string;
16
- users: Amity.InternalUser[];
16
+ users: Amity.RawUser[];
17
+ userType: "signed-in" | "visitor" | "bot";
17
18
  }>;
18
19
  //# sourceMappingURL=setClientToken.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setClientToken.d.ts","sourceRoot":"","sources":["../../../src/client/utils/setClientToken.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,WAAkB,WAAW,eAAe,CAAC,CAAC,CAAC,CAAC;;;EA6B1E,CAAC"}
1
+ {"version":3,"file":"setClientToken.d.ts","sourceRoot":"","sources":["../../../src/client/utils/setClientToken.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,WAAkB,WAAW,eAAe,CAAC,CAAC,CAAC,CAAC;;;;EA6B1E,CAAC"}
@@ -17,7 +17,7 @@ export const setClientToken = async (params) => {
17
17
  const client = getActiveClient();
18
18
  // begin establishing session
19
19
  setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
20
- const { accessToken, users, expiresAt, issuedAt } = await getToken(params);
20
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getToken(params);
21
21
  // manually setup the token for http transport
22
22
  client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
23
23
  client.http.defaults.metadata = {
@@ -33,6 +33,6 @@ export const setClientToken = async (params) => {
33
33
  };
34
34
  client.token = { accessToken, issuedAt, expiresAt };
35
35
  setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
36
- return { accessToken, users };
36
+ return { accessToken, users, userType };
37
37
  };
38
38
  //# sourceMappingURL=setClientToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setClientToken.js","sourceRoot":"","sources":["../../../src/client/utils/setClientToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,MAAsC,EAAE,EAAE;IAC7E,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,6BAA6B;IAC7B,eAAe,uDAAkC,CAAC;IAElD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE3E,8CAA8C;IAC9C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,UAAU,WAAW,EAAE,CAAC;IAE5E,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG;QAC9B,WAAW,EAAE,SAAS;QACtB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,UAAU,WAAW,EAAE,CAAC;IAE9E,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG;QAChC,WAAW,EAAE,SAAS;QACtB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEpD,eAAe,qDAAiC,CAAC;IAEjD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC,CAAC","sourcesContent":["import { getActiveClient } from '../api/activeClient';\nimport { setSessionState } from '../api/setSessionState';\nimport { getToken } from '../api/getToken';\n\n/**\n * A util to set or refresh client token\n *\n * @param params.userId the user ID for the current session\n * @param params.displayName the user's displayName for the current session\n * @param params.deviceId Manual override of the user's device id (for device management)\n * @param params.authToken The authentication token - necessary when network option is set to secure\n * @returns token & user info\n *\n * @category private\n * @async\n */\nexport const setClientToken = async (params: Parameters<typeof getToken>[0]) => {\n const client = getActiveClient();\n // begin establishing session\n setSessionState(Amity.SessionStates.ESTABLISHING);\n\n const { accessToken, users, expiresAt, issuedAt } = await getToken(params);\n\n // manually setup the token for http transport\n client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\n\n client.http.defaults.metadata = {\n tokenExpiry: expiresAt,\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n client.upload.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\n\n client.upload.defaults.metadata = {\n tokenExpiry: expiresAt,\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n client.token = { accessToken, issuedAt, expiresAt };\n\n setSessionState(Amity.SessionStates.ESTABLISHED);\n\n return { accessToken, users };\n};\n"]}
1
+ {"version":3,"file":"setClientToken.js","sourceRoot":"","sources":["../../../src/client/utils/setClientToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,MAAsC,EAAE,EAAE;IAC7E,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,6BAA6B;IAC7B,eAAe,uDAAkC,CAAC;IAElD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IAErF,8CAA8C;IAC9C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,UAAU,WAAW,EAAE,CAAC;IAE5E,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG;QAC9B,WAAW,EAAE,SAAS;QACtB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,UAAU,WAAW,EAAE,CAAC;IAE9E,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG;QAChC,WAAW,EAAE,SAAS;QACtB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEpD,eAAe,qDAAiC,CAAC;IAEjD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC,CAAC","sourcesContent":["import { getActiveClient } from '../api/activeClient';\nimport { setSessionState } from '../api/setSessionState';\nimport { getToken } from '../api/getToken';\n\n/**\n * A util to set or refresh client token\n *\n * @param params.userId the user ID for the current session\n * @param params.displayName the user's displayName for the current session\n * @param params.deviceId Manual override of the user's device id (for device management)\n * @param params.authToken The authentication token - necessary when network option is set to secure\n * @returns token & user info\n *\n * @category private\n * @async\n */\nexport const setClientToken = async (params: Parameters<typeof getToken>[0]) => {\n const client = getActiveClient();\n // begin establishing session\n setSessionState(Amity.SessionStates.ESTABLISHING);\n\n const { accessToken, users, expiresAt, issuedAt, userType } = await getToken(params);\n\n // manually setup the token for http transport\n client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\n\n client.http.defaults.metadata = {\n tokenExpiry: expiresAt,\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n client.upload.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\n\n client.upload.defaults.metadata = {\n tokenExpiry: expiresAt,\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n client.token = { accessToken, issuedAt, expiresAt };\n\n setSessionState(Amity.SessionStates.ESTABLISHED);\n\n return { accessToken, users, userType };\n};\n"]}
@@ -0,0 +1,5 @@
1
+ export declare const setCurrentUser: ({ user, userType, }: {
2
+ user: Amity.RawUser;
3
+ userType: Amity.UserType;
4
+ }) => void;
5
+ //# sourceMappingURL=setCurrentUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setCurrentUser.d.ts","sourceRoot":"","sources":["../../../src/client/utils/setCurrentUser.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc;UAInB,MAAM,OAAO;cACT,MAAM,QAAQ;UAKzB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { setActiveUser } from '../api/activeUser';
2
+ import { setCurrentUserType } from '../api/getCurrentUserType';
3
+ import { pushToCache } from '~/cache/api/pushToCache';
4
+ export const setCurrentUser = ({ user, userType, }) => {
5
+ setActiveUser(user);
6
+ setCurrentUserType(userType);
7
+ pushToCache(['user', 'get', user.userId], user);
8
+ };
9
+ //# sourceMappingURL=setCurrentUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setCurrentUser.js","sourceRoot":"","sources":["../../../src/client/utils/setCurrentUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,IAAI,EACJ,QAAQ,GAIT,EAAE,EAAE;IACH,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC7B,WAAW,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC","sourcesContent":["import { setActiveUser } from '../api/activeUser';\nimport { setCurrentUserType } from '../api/getCurrentUserType';\nimport { pushToCache } from '~/cache/api/pushToCache';\n\nexport const setCurrentUser = ({\n user,\n userType,\n}: {\n user: Amity.RawUser;\n userType: Amity.UserType;\n}) => {\n setActiveUser(user);\n setCurrentUserType(userType);\n pushToCache(['user', 'get', user.userId], user);\n};\n"]}
@@ -0,0 +1,21 @@
1
+ import { getVisitorToken } from '../api/getVisitorToken';
2
+ /**
3
+ * A util to set or refresh client token
4
+ *
5
+ * @param params.userId the user ID for the current session
6
+ * @param params.displayName the user's displayName for the current session
7
+ * @param params.deviceId Manual override of the user's device id (for device management)
8
+ * @param params.authToken The authentication token - necessary when network option is set to secure
9
+ * @param options get bot token options
10
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
11
+ * @returns token & user info
12
+ *
13
+ * @category private
14
+ * @async
15
+ */
16
+ export declare const setVisitorClientToken: (params: Parameters<typeof getVisitorToken>[0]) => Promise<{
17
+ accessToken: string;
18
+ users: Amity.RawUser[];
19
+ userType: "signed-in" | "visitor" | "bot";
20
+ }>;
21
+ //# sourceMappingURL=setVisitorClientToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setVisitorClientToken.d.ts","sourceRoot":"","sources":["../../../src/client/utils/setVisitorClientToken.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,WAAkB,WAAW,sBAAsB,CAAC,CAAC,CAAC,CAAC;;;;EAqBxF,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { getActiveClient } from '../api/activeClient';
2
+ import { setSessionState } from '../api/setSessionState';
3
+ import { getVisitorToken } from '../api/getVisitorToken';
4
+ /**
5
+ * A util to set or refresh client token
6
+ *
7
+ * @param params.userId the user ID for the current session
8
+ * @param params.displayName the user's displayName for the current session
9
+ * @param params.deviceId Manual override of the user's device id (for device management)
10
+ * @param params.authToken The authentication token - necessary when network option is set to secure
11
+ * @param options get bot token options
12
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
13
+ * @returns token & user info
14
+ *
15
+ * @category private
16
+ * @async
17
+ */
18
+ export const setVisitorClientToken = async (params) => {
19
+ const client = getActiveClient();
20
+ // begin establishing session
21
+ setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
22
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getVisitorToken(params);
23
+ // manually setup the token for http transport
24
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
25
+ client.http.defaults.metadata = {
26
+ tokenExpiry: expiresAt,
27
+ isGlobalBanned: false,
28
+ isUserDeleted: false,
29
+ };
30
+ client.token = { accessToken, issuedAt, expiresAt };
31
+ setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
32
+ return { accessToken, users, userType };
33
+ };
34
+ //# sourceMappingURL=setVisitorClientToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setVisitorClientToken.js","sourceRoot":"","sources":["../../../src/client/utils/setVisitorClientToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,MAA6C,EAAE,EAAE;IAC3F,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,6BAA6B;IAC7B,eAAe,uDAAkC,CAAC;IAElD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAE5F,8CAA8C;IAC9C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,UAAU,WAAW,EAAE,CAAC;IAE5E,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG;QAC9B,WAAW,EAAE,SAAS;QACtB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEpD,eAAe,qDAAiC,CAAC;IAEjD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC,CAAC","sourcesContent":["import { getActiveClient } from '../api/activeClient';\nimport { setSessionState } from '../api/setSessionState';\nimport { getVisitorToken } from '../api/getVisitorToken';\n\n/**\n * A util to set or refresh client token\n *\n * @param params.userId the user ID for the current session\n * @param params.displayName the user's displayName for the current session\n * @param params.deviceId Manual override of the user's device id (for device management)\n * @param params.authToken The authentication token - necessary when network option is set to secure\n * @param options get bot token options\n * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure\n * @returns token & user info\n *\n * @category private\n * @async\n */\nexport const setVisitorClientToken = async (params: Parameters<typeof getVisitorToken>[0]) => {\n const client = getActiveClient();\n // begin establishing session\n setSessionState(Amity.SessionStates.ESTABLISHING);\n\n const { accessToken, users, expiresAt, issuedAt, userType } = await getVisitorToken(params);\n\n // manually setup the token for http transport\n client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\n\n client.http.defaults.metadata = {\n tokenExpiry: expiresAt,\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n client.token = { accessToken, issuedAt, expiresAt };\n\n setSessionState(Amity.SessionStates.ESTABLISHED);\n\n return { accessToken, users, userType };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/transports/http.ts"],"names":[],"mappings":"AAeA,oBAAY,kBAAkB;IAC5B,WAAW,iBAAiB;IAC5B,gBAAgB,uBAAuB;IACvC,YAAY,kBAAkB;CAC/B;AAmDD;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,aAAc,MAAM,kCAoHnD,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/transports/http.ts"],"names":[],"mappings":"AAeA,oBAAY,kBAAkB;IAC5B,WAAW,iBAAiB;IAC5B,gBAAgB,uBAAuB;IACvC,YAAY,kBAAkB;CAC/B;AAmDD;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,aAAc,MAAM,kCAqHnD,CAAC"}
@@ -104,10 +104,10 @@ export const createHttpTransport = (endpoint) => {
104
104
  handleRequestCancelation(RequestCancelation.UserDeleted);
105
105
  }
106
106
  if (tokenExpiry) {
107
- if (Date.now() >= Date.parse(tokenExpiry)) {
108
- controller.abort(RequestCancelation.UserDeleted);
109
- handleRequestCancelation(RequestCancelation.TokenExpired);
110
- }
107
+ // if (Date.now() >= Date.parse(tokenExpiry)) {
108
+ // controller.abort(RequestCancelation.UserDeleted);
109
+ // handleRequestCancelation(RequestCancelation.TokenExpired);
110
+ // }
111
111
  }
112
112
  }
113
113
  return config;
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/transports/http.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, { AxiosResponse } from 'axios';\nimport HttpAgent, { HttpsAgent } from 'agentkeepalive';\n\nimport { ASCError } from '~/core/errors';\n\nimport { fireEvent } from '../events';\nimport { unwrapPayload } from './utils';\nimport NetworkActivitiesWatcher from '~/client/utils/NetworkActivitiesWatcher';\n\n/*\n * Defined here as transport is a private module. Also, outside of this module\n * this enum holds no meaning.\n *\n * @private (exported for testing)\n */\nexport enum RequestCancelation {\n UserDeleted = 'User Deleted',\n UserGlobalBanned = 'User Global Banned',\n TokenExpired = 'Token Expired',\n}\n/*\n * Axios no longer supports `cancelToken`, since v0.22.0, and is marked as\n * deprecated. The doc asks to use the abort controller that fetch uses instead\n *\n * More Info:\n * https://axios-http.com/docs/cancellation\n */\nconst controller = new AbortController();\n\n/**\n * Handle Request Cancellation\n *\n * @param cancel Reason for cancelation\n *\n * @category Transport Util\n * @hidden\n */\nconst handleRequestCancelation = (cancel: RequestCancelation) => {\n switch (cancel) {\n case RequestCancelation.UserGlobalBanned:\n /*\n * Note:\n * Firing a virtual event (fireEvent) is not required as the metadata in\n * the request (isGlobalBanned) is only true once the user has been banned\n * and the SDK has recieved a global ban event\n */\n throw new ASCError(cancel, Amity.ServerError.GLOBAL_BAN, Amity.ErrorLevel.FATAL);\n\n case RequestCancelation.UserDeleted:\n /*\n * Note:\n * Firing a virtual event (fireEvent) is not required. For same reason as\n * above. Only difference is that the event recieved is user deleted\n */\n throw new ASCError(cancel, Amity.ServerError.UNAUTHORIZED, Amity.ErrorLevel.FATAL);\n\n case RequestCancelation.TokenExpired:\n fireEvent('tokenExpired', Amity.SessionStates.TOKEN_EXPIRED);\n\n throw new ASCError(cancel, Amity.ClientError.TOKEN_EXPIRED, Amity.ErrorLevel.FATAL);\n\n default:\n throw new ASCError(\n 'Request Aborted',\n Amity.ClientError.UNKNOWN_ERROR,\n Amity.ErrorLevel.ERROR,\n );\n }\n};\n\n/**\n * Creates a pre-configured axios instance\n *\n * @param endpoint The ASC rest api server's URL\n * @returns A pre-configured axios instance\n *\n * @category Transport\n * @hidden\n */\nexport const createHttpTransport = (endpoint: string) => {\n const options = {\n maxSockets: 100,\n maxFreeSockets: 10,\n timeout: 60000,\n freeSocketTimeout: 30000,\n };\n\n const instance = axios.create({\n baseURL: endpoint,\n httpAgent: new HttpAgent(options),\n httpsAgent: new HttpsAgent(options),\n signal: controller.signal,\n /*\n * If paramSerializer is required, use the serialize option to stringify\n * params. The encode option will pass complex params as string only whereas\n * the serialize option will pass params in the format Record<string, any>\n *\n * For more details:\n * https://github.com/axios/axios#request-config\n */\n });\n\n instance.defaults.withCredentials = false;\n\n instance.interceptors.request.use(config => {\n // do not check expiration for token creation url\n if (config.url === '/api/v5/sessions') {\n return config;\n }\n\n // check global.ts for the extension of AxiosRequestConfig\n if (config.metadata) {\n const { tokenExpiry, isGlobalBanned, isUserDeleted } = config.metadata;\n\n if (isGlobalBanned) {\n controller.abort();\n handleRequestCancelation(RequestCancelation.UserGlobalBanned);\n }\n\n if (isUserDeleted) {\n controller.abort();\n handleRequestCancelation(RequestCancelation.UserDeleted);\n }\n\n if (tokenExpiry) {\n if (Date.now() >= Date.parse(tokenExpiry)) {\n controller.abort(RequestCancelation.UserDeleted);\n handleRequestCancelation(RequestCancelation.TokenExpired);\n }\n }\n }\n\n return config;\n });\n\n instance.interceptors.response.use(\n response => {\n const responseHeaders = new Headers();\n\n Object.entries(response.headers).forEach(([key, value]) => {\n if (typeof value === 'string') {\n responseHeaders.append(key, value);\n }\n });\n\n const url = (response.config.baseURL || '') + (response.config.url || '');\n const method = response.config.method?.toUpperCase();\n\n const requestInit: RequestInit = {\n method,\n headers: response.config.headers,\n };\n\n if (method !== 'GET' && method !== 'HEAD') {\n requestInit.body = response.config.data;\n }\n\n NetworkActivitiesWatcher.getInstance().setNetworkActivities(new Request(url, requestInit), {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: responseHeaders,\n });\n\n return response;\n },\n error => {\n const { response } = error;\n\n // handle unauthorized request\n if (response?.data.code === Amity.ServerError.UNAUTHORIZED) {\n fireEvent('tokenTerminated', Amity.SessionStates.TERMINATED);\n }\n\n // if it's an error with status in the response payload,\n // then it's an expected error.\n if (response?.data?.status) {\n unwrapPayload(response?.data);\n }\n\n // as on request cancellation error is returned\n if (controller.signal.aborted) {\n throw error;\n }\n // unexpected error.\n\n throw new Error(response?.data ?? error);\n },\n );\n\n instance.defaults.paramsSerializer = {\n encode: params => encodeURIComponent(params),\n };\n\n return instance;\n};\n"]}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/transports/http.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, { AxiosResponse } from 'axios';\nimport HttpAgent, { HttpsAgent } from 'agentkeepalive';\n\nimport { ASCError } from '~/core/errors';\n\nimport { fireEvent } from '../events';\nimport { unwrapPayload } from './utils';\nimport NetworkActivitiesWatcher from '~/client/utils/NetworkActivitiesWatcher';\n\n/*\n * Defined here as transport is a private module. Also, outside of this module\n * this enum holds no meaning.\n *\n * @private (exported for testing)\n */\nexport enum RequestCancelation {\n UserDeleted = 'User Deleted',\n UserGlobalBanned = 'User Global Banned',\n TokenExpired = 'Token Expired',\n}\n/*\n * Axios no longer supports `cancelToken`, since v0.22.0, and is marked as\n * deprecated. The doc asks to use the abort controller that fetch uses instead\n *\n * More Info:\n * https://axios-http.com/docs/cancellation\n */\nconst controller = new AbortController();\n\n/**\n * Handle Request Cancellation\n *\n * @param cancel Reason for cancelation\n *\n * @category Transport Util\n * @hidden\n */\nconst handleRequestCancelation = (cancel: RequestCancelation) => {\n switch (cancel) {\n case RequestCancelation.UserGlobalBanned:\n /*\n * Note:\n * Firing a virtual event (fireEvent) is not required as the metadata in\n * the request (isGlobalBanned) is only true once the user has been banned\n * and the SDK has recieved a global ban event\n */\n throw new ASCError(cancel, Amity.ServerError.GLOBAL_BAN, Amity.ErrorLevel.FATAL);\n\n case RequestCancelation.UserDeleted:\n /*\n * Note:\n * Firing a virtual event (fireEvent) is not required. For same reason as\n * above. Only difference is that the event recieved is user deleted\n */\n throw new ASCError(cancel, Amity.ServerError.UNAUTHORIZED, Amity.ErrorLevel.FATAL);\n\n case RequestCancelation.TokenExpired:\n fireEvent('tokenExpired', Amity.SessionStates.TOKEN_EXPIRED);\n\n throw new ASCError(cancel, Amity.ClientError.TOKEN_EXPIRED, Amity.ErrorLevel.FATAL);\n\n default:\n throw new ASCError(\n 'Request Aborted',\n Amity.ClientError.UNKNOWN_ERROR,\n Amity.ErrorLevel.ERROR,\n );\n }\n};\n\n/**\n * Creates a pre-configured axios instance\n *\n * @param endpoint The ASC rest api server's URL\n * @returns A pre-configured axios instance\n *\n * @category Transport\n * @hidden\n */\nexport const createHttpTransport = (endpoint: string) => {\n const options = {\n maxSockets: 100,\n maxFreeSockets: 10,\n timeout: 60000,\n freeSocketTimeout: 30000,\n };\n\n const instance = axios.create({\n baseURL: endpoint,\n httpAgent: new HttpAgent(options),\n httpsAgent: new HttpsAgent(options),\n signal: controller.signal,\n /*\n * If paramSerializer is required, use the serialize option to stringify\n * params. The encode option will pass complex params as string only whereas\n * the serialize option will pass params in the format Record<string, any>\n *\n * For more details:\n * https://github.com/axios/axios#request-config\n */\n });\n\n instance.defaults.withCredentials = false;\n\n instance.interceptors.request.use(config => {\n // do not check expiration for token creation url\n\n if (config.url === '/api/v5/sessions') {\n return config;\n }\n\n // check global.ts for the extension of AxiosRequestConfig\n if (config.metadata) {\n const { tokenExpiry, isGlobalBanned, isUserDeleted } = config.metadata;\n\n if (isGlobalBanned) {\n controller.abort();\n handleRequestCancelation(RequestCancelation.UserGlobalBanned);\n }\n\n if (isUserDeleted) {\n controller.abort();\n handleRequestCancelation(RequestCancelation.UserDeleted);\n }\n\n if (tokenExpiry) {\n // if (Date.now() >= Date.parse(tokenExpiry)) {\n // controller.abort(RequestCancelation.UserDeleted);\n // handleRequestCancelation(RequestCancelation.TokenExpired);\n // }\n }\n }\n\n return config;\n });\n\n instance.interceptors.response.use(\n response => {\n const responseHeaders = new Headers();\n\n Object.entries(response.headers).forEach(([key, value]) => {\n if (typeof value === 'string') {\n responseHeaders.append(key, value);\n }\n });\n\n const url = (response.config.baseURL || '') + (response.config.url || '');\n const method = response.config.method?.toUpperCase();\n\n const requestInit: RequestInit = {\n method,\n headers: response.config.headers,\n };\n\n if (method !== 'GET' && method !== 'HEAD') {\n requestInit.body = response.config.data;\n }\n\n NetworkActivitiesWatcher.getInstance().setNetworkActivities(new Request(url, requestInit), {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: responseHeaders,\n });\n\n return response;\n },\n error => {\n const { response } = error;\n\n // handle unauthorized request\n if (response?.data.code === Amity.ServerError.UNAUTHORIZED) {\n fireEvent('tokenTerminated', Amity.SessionStates.TERMINATED);\n }\n\n // if it's an error with status in the response payload,\n // then it's an expected error.\n if (response?.data?.status) {\n unwrapPayload(response?.data);\n }\n\n // as on request cancellation error is returned\n if (controller.signal.aborted) {\n throw error;\n }\n // unexpected error.\n\n throw new Error(response?.data ?? error);\n },\n );\n\n instance.defaults.paramsSerializer = {\n encode: params => encodeURIComponent(params),\n };\n\n return instance;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,OAyB1E,CAAC"}
1
+ {"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,OAmC1E,CAAC"}
@@ -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
  export const channelLinkedObject = (channel) => {
7
8
  var _a;
8
9
  let previewMembers = [];
@@ -21,6 +22,13 @@ export const channelLinkedObject = (channel) => {
21
22
  markAsRead: () => markAsRead(channel.channelInternalId),
22
23
  previewMembers,
23
24
  myMembership: (callback) => getMyMembership(channel.channelId, callback),
25
+ getMembership: (userId, callback) => {
26
+ getMembership({
27
+ channelId: channel.channelId,
28
+ userId,
29
+ callback,
30
+ });
31
+ },
24
32
  });
25
33
  };
26
34
  //# sourceMappingURL=channelLinkedObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"channelLinkedObject.js","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAEhF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA8B,EAAiB,EAAE;;IACnF,IAAI,cAAc,GAAkC,EAAE,CAAC;IAEvD,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxD,MAAM,YAAY,GAAG,UAAU,CAA8B,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,IAAI,YAAY,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,IAAG,CAAC,EAAE;YAC5C,cAAc,GAAG,CACf,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAClB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CACjF,mCAAI,EAAE,CACR;gBACC,4CAA4C;iBAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3E,8BAA8B;iBAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;SACvD;KACF;IAED,OAAO,YAAY,CAAC,OAAO,EAAE;QAC3B,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACvD,cAAc;QACd,YAAY,EAAE,CAAC,QAA2E,EAAE,EAAE,CAC5F,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { markAsRead } from '~/channelRepository/internalApi/markAsRead';\nimport { shallowClone } from '../shallowClone';\nimport { queryCache } from '~/cache/api';\nimport { channelMemberLinkedObject } from './channelMemberLinkedObject';\nimport { getMyMembership } from '~/channelRepository/observers/getMyMembership';\n\nexport const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Channel => {\n let previewMembers: Amity.Membership<'channel'>[] = [];\n\n if (['conversation', 'community'].includes(channel.type)) {\n const channelUsers = queryCache<Amity.Membership<'channel'>>(['channelUsers', 'get']);\n if (channelUsers && channelUsers?.length > 0) {\n previewMembers = (\n channelUsers?.filter(\n ({ data }) => data.channelId === channel.channelId && data.membership !== 'none',\n ) ?? []\n )\n // sort in ascending order by userInternalId\n .sort((a, b) => a.data.userInternalId.localeCompare(b.data.userInternalId))\n // Select only first 4 members\n .slice(0, 4)\n .map(({ data }) => channelMemberLinkedObject(data));\n }\n }\n\n return shallowClone(channel, {\n markAsRead: () => markAsRead(channel.channelInternalId),\n previewMembers,\n myMembership: (callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>) =>\n getMyMembership(channel.channelId, callback),\n });\n};\n"]}
1
+ {"version":3,"file":"channelLinkedObject.js","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA8B,EAAiB,EAAE;;IACnF,IAAI,cAAc,GAAkC,EAAE,CAAC;IAEvD,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxD,MAAM,YAAY,GAAG,UAAU,CAA8B,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,IAAI,YAAY,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,IAAG,CAAC,EAAE;YAC5C,cAAc,GAAG,CACf,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAClB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CACjF,mCAAI,EAAE,CACR;gBACC,4CAA4C;iBAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3E,8BAA8B;iBAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;SACvD;KACF;IAED,OAAO,YAAY,CAAC,OAAO,EAAE;QAC3B,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACvD,cAAc;QACd,YAAY,EAAE,CAAC,QAA2E,EAAE,EAAE,CAC5F,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC9C,aAAa,EAAE,CACb,MAA4B,EAC5B,QAA2E,EAC3E,EAAE;YACF,aAAa,CAAC;gBACZ,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM;gBACN,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { markAsRead } from '~/channelRepository/internalApi/markAsRead';\nimport { shallowClone } from '../shallowClone';\nimport { queryCache } from '~/cache/api';\nimport { channelMemberLinkedObject } from './channelMemberLinkedObject';\nimport { getMyMembership } from '~/channelRepository/observers/getMyMembership';\nimport { getMembership } from '~/channelRepository/observers/getMembership';\n\nexport const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Channel => {\n let previewMembers: Amity.Membership<'channel'>[] = [];\n\n if (['conversation', 'community'].includes(channel.type)) {\n const channelUsers = queryCache<Amity.Membership<'channel'>>(['channelUsers', 'get']);\n if (channelUsers && channelUsers?.length > 0) {\n previewMembers = (\n channelUsers?.filter(\n ({ data }) => data.channelId === channel.channelId && data.membership !== 'none',\n ) ?? []\n )\n // sort in ascending order by userInternalId\n .sort((a, b) => a.data.userInternalId.localeCompare(b.data.userInternalId))\n // Select only first 4 members\n .slice(0, 4)\n .map(({ data }) => channelMemberLinkedObject(data));\n }\n }\n\n return shallowClone(channel, {\n markAsRead: () => markAsRead(channel.channelInternalId),\n previewMembers,\n myMembership: (callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>) =>\n getMyMembership(channel.channelId, callback),\n getMembership: (\n userId: Amity.User['userId'],\n callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,\n ) => {\n getMembership({\n channelId: channel.channelId,\n userId,\n callback,\n });\n },\n });\n};\n"]}