@amityco/ts-sdk 7.9.2 → 7.9.3-230c53f4.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 (148) hide show
  1. package/.env +26 -26
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/errors.d.ts +3 -1
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/errors.d.ts.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/errors.js.map +1 -1
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts +11 -0
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts.map +1 -1
  7. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.js.map +1 -1
  8. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.d.ts +6 -0
  9. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.d.ts.map +1 -1
  10. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.js +6 -1
  11. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.js.map +1 -1
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts +1 -0
  13. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts.map +1 -1
  14. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js +1 -0
  15. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js.map +1 -1
  16. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/categoryRepository/api/getCategory.d.ts.map +1 -1
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/categoryRepository/api/getCategory.js +1 -1
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/categoryRepository/api/getCategory.js.map +1 -1
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.d.ts +1 -0
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.d.ts.map +1 -1
  21. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.js +1 -0
  22. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.js.map +1 -1
  23. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/createClient.d.ts.map +1 -1
  24. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/createClient.js +3 -1
  25. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/createClient.js.map +1 -1
  26. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.d.ts +21 -0
  27. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.d.ts.map +1 -0
  28. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.js +27 -0
  29. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.js.map +1 -0
  30. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.d.ts +2 -0
  31. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.d.ts.map +1 -0
  32. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.js +21 -0
  33. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.js.map +1 -0
  34. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.d.ts +3 -0
  35. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.d.ts.map +1 -0
  36. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.js +16 -0
  37. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.js.map +1 -0
  38. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.d.ts +1 -3
  39. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.d.ts.map +1 -1
  40. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.js.map +1 -1
  41. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.d.ts +24 -0
  42. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.d.ts.map +1 -0
  43. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.js +30 -0
  44. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.js.map +1 -0
  45. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts +4 -0
  46. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts.map +1 -1
  47. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js +4 -0
  48. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js.map +1 -1
  49. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.d.ts.map +1 -1
  50. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.js +4 -4
  51. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.js.map +1 -1
  52. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.d.ts +24 -0
  53. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.d.ts.map +1 -0
  54. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.js +95 -0
  55. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.js.map +1 -0
  56. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.d.ts +26 -0
  57. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.d.ts.map +1 -0
  58. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.js +92 -0
  59. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.js.map +1 -0
  60. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.d.ts.map +1 -1
  61. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.js +35 -2
  62. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.js.map +1 -1
  63. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.d.ts +16 -0
  64. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.d.ts.map +1 -0
  65. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.js +29 -0
  66. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.js.map +1 -0
  67. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.d.ts +2 -1
  68. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.d.ts.map +1 -1
  69. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.js +2 -2
  70. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.js.map +1 -1
  71. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.d.ts +5 -0
  72. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.d.ts.map +1 -0
  73. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.js +9 -0
  74. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.js.map +1 -0
  75. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.d.ts +21 -0
  76. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.d.ts.map +1 -0
  77. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.js +34 -0
  78. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.js.map +1 -0
  79. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.d.ts.map +1 -1
  80. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.js +4 -4
  81. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.js.map +1 -1
  82. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  83. package/dist/@types/core/errors.d.ts +3 -1
  84. package/dist/@types/core/errors.d.ts.map +1 -1
  85. package/dist/@types/domains/client.d.ts +11 -0
  86. package/dist/@types/domains/client.d.ts.map +1 -1
  87. package/dist/@types/domains/user.d.ts +6 -0
  88. package/dist/@types/domains/user.d.ts.map +1 -1
  89. package/dist/@types/index.d.ts +1 -0
  90. package/dist/@types/index.d.ts.map +1 -1
  91. package/dist/categoryRepository/api/getCategory.d.ts.map +1 -1
  92. package/dist/client/api/activeUser.d.ts +1 -0
  93. package/dist/client/api/activeUser.d.ts.map +1 -1
  94. package/dist/client/api/createClient.d.ts.map +1 -1
  95. package/dist/client/api/getBotToken.d.ts +21 -0
  96. package/dist/client/api/getBotToken.d.ts.map +1 -0
  97. package/dist/client/api/getCurrentUser.d.ts +2 -0
  98. package/dist/client/api/getCurrentUser.d.ts.map +1 -0
  99. package/dist/client/api/getCurrentUserType.d.ts +3 -0
  100. package/dist/client/api/getCurrentUserType.d.ts.map +1 -0
  101. package/dist/client/api/getToken.d.ts +1 -3
  102. package/dist/client/api/getToken.d.ts.map +1 -1
  103. package/dist/client/api/getVisitorToken.d.ts +24 -0
  104. package/dist/client/api/getVisitorToken.d.ts.map +1 -0
  105. package/dist/client/api/index.d.ts +4 -0
  106. package/dist/client/api/index.d.ts.map +1 -1
  107. package/dist/client/api/login.d.ts.map +1 -1
  108. package/dist/client/api/loginAsBot.d.ts +24 -0
  109. package/dist/client/api/loginAsBot.d.ts.map +1 -0
  110. package/dist/client/api/loginAsVisitor.d.ts +26 -0
  111. package/dist/client/api/loginAsVisitor.d.ts.map +1 -0
  112. package/dist/client/api/renewal.d.ts.map +1 -1
  113. package/dist/client/utils/setBotClientToken.d.ts +16 -0
  114. package/dist/client/utils/setBotClientToken.d.ts.map +1 -0
  115. package/dist/client/utils/setClientToken.d.ts +2 -1
  116. package/dist/client/utils/setClientToken.d.ts.map +1 -1
  117. package/dist/client/utils/setCurrentUser.d.ts +5 -0
  118. package/dist/client/utils/setCurrentUser.d.ts.map +1 -0
  119. package/dist/client/utils/setVisitorClientToken.d.ts +21 -0
  120. package/dist/client/utils/setVisitorClientToken.d.ts.map +1 -0
  121. package/dist/core/transports/http.d.ts.map +1 -1
  122. package/dist/index.cjs.js +392 -38
  123. package/dist/index.esm.js +393 -39
  124. package/dist/index.umd.js +3 -3
  125. package/package.json +1 -1
  126. package/src/@types/core/errors.ts +2 -0
  127. package/src/@types/domains/client.ts +17 -0
  128. package/src/@types/domains/user.ts +8 -0
  129. package/src/@types/index.ts +1 -0
  130. package/src/categoryRepository/api/getCategory.ts +3 -1
  131. package/src/client/api/activeUser.ts +1 -0
  132. package/src/client/api/createClient.ts +3 -5
  133. package/src/client/api/getBotToken.ts +44 -0
  134. package/src/client/api/getCurrentUser.ts +32 -0
  135. package/src/client/api/getCurrentUserType.ts +23 -0
  136. package/src/client/api/getToken.ts +1 -1
  137. package/src/client/api/getVisitorToken.ts +47 -0
  138. package/src/client/api/index.ts +6 -0
  139. package/src/client/api/login.ts +5 -4
  140. package/src/client/api/loginAsBot.ts +125 -0
  141. package/src/client/api/loginAsVisitor.ts +129 -0
  142. package/src/client/api/renewal.ts +42 -2
  143. package/src/client/utils/setBotClientToken.ts +35 -0
  144. package/src/client/utils/setClientToken.ts +2 -2
  145. package/src/client/utils/setCurrentUser.ts +15 -0
  146. package/src/client/utils/setVisitorClientToken.ts +40 -0
  147. package/src/core/transports/http.ts +5 -4
  148. package/tsconfig.tsbuildinfo +1 -1
package/dist/index.cjs.js CHANGED
@@ -29,6 +29,13 @@ exports.MembershipAcceptanceTypeEnum = void 0;
29
29
  MembershipAcceptanceTypeEnum["INVITATION"] = "invitation";
30
30
  })(exports.MembershipAcceptanceTypeEnum || (exports.MembershipAcceptanceTypeEnum = {}));
31
31
 
32
+ exports.UserTypeEnum = void 0;
33
+ (function (UserTypeEnum) {
34
+ UserTypeEnum["SIGNED_IN"] = "signed-in";
35
+ UserTypeEnum["VISITOR"] = "visitor";
36
+ UserTypeEnum["BOT"] = "bot";
37
+ })(exports.UserTypeEnum || (exports.UserTypeEnum = {}));
38
+
32
39
  const FileType = Object.freeze({
33
40
  FILE: 'file',
34
41
  IMAGE: 'image',
@@ -1348,6 +1355,7 @@ let activeUser = null;
1348
1355
  */
1349
1356
  /**
1350
1357
  * for internal use
1358
+ * @deprecated please use getCurrentUser api instead.
1351
1359
  */
1352
1360
  const getActiveUser = () => {
1353
1361
  if (!activeUser) {
@@ -1781,12 +1789,6 @@ const createHttpTransport = (endpoint) => {
1781
1789
  controller.abort();
1782
1790
  handleRequestCancelation(RequestCancelation.UserDeleted);
1783
1791
  }
1784
- if (tokenExpiry) {
1785
- if (Date.now() >= Date.parse(tokenExpiry)) {
1786
- controller.abort(RequestCancelation.UserDeleted);
1787
- handleRequestCancelation(RequestCancelation.TokenExpired);
1788
- }
1789
- }
1790
1792
  }
1791
1793
  return config;
1792
1794
  });
@@ -7240,7 +7242,7 @@ const setClientToken = async (params) => {
7240
7242
  const client = getActiveClient();
7241
7243
  // begin establishing session
7242
7244
  setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
7243
- const { accessToken, users, expiresAt, issuedAt } = await getToken(params);
7245
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getToken(params);
7244
7246
  // manually setup the token for http transport
7245
7247
  client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
7246
7248
  client.http.defaults.metadata = {
@@ -7256,7 +7258,66 @@ const setClientToken = async (params) => {
7256
7258
  };
7257
7259
  client.token = { accessToken, issuedAt, expiresAt };
7258
7260
  setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
7259
- return { accessToken, users };
7261
+ return { accessToken, users, userType };
7262
+ };
7263
+
7264
+ /**
7265
+ * Retrieves a pair of {@link Amity.Tokens} necessary for connection
7266
+ *
7267
+ * @param params get visitor token param
7268
+ * @param params.deviceId The user's device Id (can be manually set for native users)
7269
+ * @param params.authSignature The authenitcation signature - necessary when network option is set to secure
7270
+ * @param params.authSignatureExpiresAt Expire time of the authenitcation signature
7271
+ * @param options get bot token options
7272
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
7273
+ * @return The accessToken for the given userId
7274
+ *
7275
+ *
7276
+ * @category Client API
7277
+ * @hidden
7278
+ */
7279
+ const getVisitorToken = async ({ params, options, }) => {
7280
+ const client = getActiveClient();
7281
+ client.log('client/api/getVisitorToken', params);
7282
+ const deviceInfo = getDeviceInfo();
7283
+ const { data } = await client.http.post('/api/v5/sessions/visitor', Object.assign(Object.assign({}, params), { deviceInfo }), {
7284
+ headers: {
7285
+ 'X-API-Key': client.apiKey,
7286
+ 'set-access-token-cookie': (options === null || options === void 0 ? void 0 : options.setAccessTokenCookie) || false,
7287
+ },
7288
+ });
7289
+ return data;
7290
+ };
7291
+
7292
+ /**
7293
+ * A util to set or refresh client token
7294
+ *
7295
+ * @param params.userId the user ID for the current session
7296
+ * @param params.displayName the user's displayName for the current session
7297
+ * @param params.deviceId Manual override of the user's device id (for device management)
7298
+ * @param params.authToken The authentication token - necessary when network option is set to secure
7299
+ * @param options get bot token options
7300
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
7301
+ * @returns token & user info
7302
+ *
7303
+ * @category private
7304
+ * @async
7305
+ */
7306
+ const setVisitorClientToken = async (params) => {
7307
+ const client = getActiveClient();
7308
+ // begin establishing session
7309
+ setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
7310
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getVisitorToken(params);
7311
+ // manually setup the token for http transport
7312
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
7313
+ client.http.defaults.metadata = {
7314
+ tokenExpiry: expiresAt,
7315
+ isGlobalBanned: false,
7316
+ isUserDeleted: false,
7317
+ };
7318
+ client.token = { accessToken, issuedAt, expiresAt };
7319
+ setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
7320
+ return { accessToken, users, userType };
7260
7321
  };
7261
7322
 
7262
7323
  function prepareUserPayload(response) {
@@ -8716,13 +8777,34 @@ const removeChannelMarkerCache = (channel) => {
8716
8777
  dropFromCache(['channelMarker', 'get', id], true);
8717
8778
  };
8718
8779
 
8780
+ let currentUserType = null;
8781
+ /* begin_public_function
8782
+ id: client.get_current_user_type
8783
+ */
8784
+ const getCurrentUserType = () => {
8785
+ if (!currentUserType) {
8786
+ throw new ASCError('Connect client first', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "fatal" /* Amity.ErrorLevel.FATAL */);
8787
+ }
8788
+ return currentUserType;
8789
+ };
8790
+ /* end_public_function */
8791
+ const setCurrentUserType = (userType) => {
8792
+ currentUserType = userType;
8793
+ };
8794
+
8795
+ const setCurrentUser = ({ user, userType, }) => {
8796
+ setActiveUser(user);
8797
+ setCurrentUserType(userType);
8798
+ pushToCache(['user', 'get', user.userId], user);
8799
+ };
8800
+
8719
8801
  /* eslint-disable no-param-reassign */
8720
8802
  /*
8721
8803
  * declared earlier to accomodate case when logging in with a different user
8722
8804
  * than the one already connected, in which case the existing subscriptions need
8723
8805
  * to be cleared
8724
8806
  */
8725
- let subscriptions$1 = [];
8807
+ let subscriptions$3 = [];
8726
8808
  async function runMqtt$1() {
8727
8809
  await modifyMqttConnection();
8728
8810
  }
@@ -8757,13 +8839,13 @@ const login = async (params, sessionHandler, config) => {
8757
8839
  if (client.userId && client.userId !== params.userId) {
8758
8840
  await logout();
8759
8841
  // Remove subscription to ban and delete
8760
- subscriptions$1.forEach(fn => fn());
8761
- subscriptions$1 = [];
8842
+ subscriptions$3.forEach(fn => fn());
8843
+ subscriptions$3 = [];
8762
8844
  }
8763
8845
  // default values
8764
8846
  const defaultDeviceId = await getDeviceId();
8765
8847
  try {
8766
- const { users } = await setClientToken({
8848
+ const { users, userType } = await setClientToken({
8767
8849
  params: Object.assign(Object.assign({}, params), { displayName: params === null || params === void 0 ? void 0 : params.displayName, deviceId: (params === null || params === void 0 ? void 0 : params.deviceId) || defaultDeviceId }),
8768
8850
  options: {
8769
8851
  setAccessTokenCookie: true,
@@ -8777,7 +8859,7 @@ const login = async (params, sessionHandler, config) => {
8777
8859
  terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
8778
8860
  return false;
8779
8861
  }
8780
- if (user.isGlobalBanned) {
8862
+ if (user.isGlobalBan) {
8781
8863
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
8782
8864
  return false;
8783
8865
  }
@@ -8788,7 +8870,7 @@ const login = async (params, sessionHandler, config) => {
8788
8870
  * token expires
8789
8871
  */
8790
8872
  unsubWatcher = client.accessTokenExpiryWatcher(sessionHandler);
8791
- setActiveUser(user);
8873
+ setCurrentUser({ user, userType });
8792
8874
  }
8793
8875
  catch (error) {
8794
8876
  /*
@@ -8803,42 +8885,141 @@ const login = async (params, sessionHandler, config) => {
8803
8885
  runMqtt$1();
8804
8886
  }
8805
8887
  await initializeMessagePreviewSetting();
8806
- if (subscriptions$1.length === 0) {
8807
- subscriptions$1.push(
8888
+ if (subscriptions$3.length === 0) {
8889
+ subscriptions$3.push(
8808
8890
  // GLOBAL_BAN
8809
8891
  onClientBanned((_) => {
8810
8892
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
8811
- subscriptions$1.forEach(fn => fn());
8893
+ subscriptions$3.forEach(fn => fn());
8812
8894
  unsubWatcher();
8813
8895
  }), onTokenTerminated(_ => {
8814
8896
  terminateClient();
8815
- subscriptions$1.forEach(fn => fn());
8897
+ subscriptions$3.forEach(fn => fn());
8816
8898
  unsubWatcher();
8817
8899
  }), onUserDeleted$2((user) => {
8818
8900
  if (user.userId === client.userId) {
8819
8901
  terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
8820
- subscriptions$1.forEach(fn => fn());
8902
+ subscriptions$3.forEach(fn => fn());
8821
8903
  unsubWatcher();
8822
8904
  }
8823
8905
  }), onTokenExpired(state => {
8824
8906
  SessionWatcher$1.getInstance().setSessionState(state);
8825
8907
  logout();
8826
- subscriptions$1.forEach(fn => fn());
8908
+ subscriptions$3.forEach(fn => fn());
8827
8909
  }),
8828
8910
  // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave
8829
8911
  // the channel because currently backend can't handle this, so every time a user is banned from
8830
8912
  // a channel or the channel is deleted the channel's unread count will not be reset to zero
8831
8913
  onChannelDeleted(removeChannelMarkerCache), onChannelMemberBanned(removeChannelMarkerCache), markReadEngineOnLoginHandler(), analyticsEngineOnLoginHandler(), objectResolverEngineOnLoginHandler(), reactionSyncEngineOnLoginHandler());
8832
8914
  if (client.useLegacyUnreadCount) {
8833
- subscriptions$1.push(readReceiptSyncEngineOnLoginHandler());
8915
+ subscriptions$3.push(readReceiptSyncEngineOnLoginHandler());
8834
8916
  }
8835
8917
  else
8836
- subscriptions$1.push(legacyReadReceiptSyncEngineOnLoginHandler());
8918
+ subscriptions$3.push(legacyReadReceiptSyncEngineOnLoginHandler());
8919
+ }
8920
+ return true;
8921
+ };
8922
+ /* end_public_function */
8923
+
8924
+ /* eslint-disable require-atomic-updates */
8925
+ /*
8926
+ * declared earlier to accomodate case when logging in with a different user
8927
+ * than the one already connected, in which case the existing subscriptions need
8928
+ * to be cleared
8929
+ */
8930
+ const subscriptions$2 = [];
8931
+ /* begin_public_function
8932
+ id: client.loginAsVisitor
8933
+ */
8934
+ /**
8935
+ * ```js
8936
+ * import { loginAsVisitor } from '@amityco/ts-sdk/client/api'
8937
+ * const success = await loginAsVisitor({
8938
+ sessionHandler: {
8939
+ sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
8940
+ ...
8941
+ }
8942
+ * })
8943
+ * ```
8944
+ *
8945
+ * Connects an {@link Amity.Client} instance to ASC servers
8946
+ *
8947
+ * @param params. the connect parameters
8948
+ * @param params.authSignature The authenitcation signature - necessary when network option is set to secure
8949
+ * @param params.authSignatureExpiresAt Expire time of the authenitcation signature
8950
+ * @param params.sessionHandler
8951
+ * @returns a success boolean if connected
8952
+ *
8953
+ * @category Client API
8954
+ * @async
8955
+ */
8956
+ const loginAsVisitor = async (params) => {
8957
+ const client = getActiveClient();
8958
+ let unsubWatcher;
8959
+ client.log('client/api/connectClient', Object.assign({ apiKey: client.apiKey, sessionState: client.sessionState }, params));
8960
+ // generate deviceId
8961
+ const deviceId = await getDeviceId();
8962
+ let user;
8963
+ try {
8964
+ const { users, userType } = await setVisitorClientToken({
8965
+ params: Object.assign(Object.assign({}, params), { deviceId }),
8966
+ options: {
8967
+ setAccessTokenCookie: true,
8968
+ },
8969
+ });
8970
+ [user] = users;
8971
+ client.userId = user.userId;
8972
+ client.sessionHandler = params.sessionHandler;
8973
+ /*
8974
+ * Cannot push to subscriptions as watcher needs to continue working even if
8975
+ * token expires
8976
+ */
8977
+ unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);
8978
+ setCurrentUser({ user, userType });
8979
+ }
8980
+ catch (error) {
8981
+ /*
8982
+ * if getting token failed session state reverts to initial state when app
8983
+ * is first launched
8984
+ */
8985
+ SessionWatcher$1.getInstance().setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
8986
+ // pass error down tree so the calling function handle it
8987
+ throw error;
8988
+ }
8989
+ await initializeMessagePreviewSetting();
8990
+ if (subscriptions$2.length === 0) {
8991
+ // handling internal SDK events
8992
+ subscriptions$2.push(onTokenTerminated(_ => {
8993
+ terminateClient();
8994
+ subscriptions$2.forEach(fn => fn());
8995
+ unsubWatcher();
8996
+ }), onTokenExpired(state => {
8997
+ SessionWatcher$1.getInstance().setSessionState(state);
8998
+ logout();
8999
+ subscriptions$2.forEach(fn => fn());
9000
+ }));
8837
9001
  }
8838
9002
  return true;
8839
9003
  };
8840
9004
  /* end_public_function */
8841
9005
 
9006
+ /* begin_public_function
9007
+ id: client.get_current_user
9008
+ */
9009
+ const getCurrentUser = () => {
9010
+ var _a;
9011
+ const client = getActiveClient();
9012
+ if (!client) {
9013
+ throw new ASCError('Connect client first', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "fatal" /* Amity.ErrorLevel.FATAL */);
9014
+ }
9015
+ const cache = (_a = pullFromCache(['user', 'get', client.userId])) === null || _a === void 0 ? void 0 : _a.data;
9016
+ if (!cache) {
9017
+ throw new ASCError('Connect client first', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "fatal" /* Amity.ErrorLevel.FATAL */);
9018
+ }
9019
+ return userLinkedObject(cache);
9020
+ };
9021
+ /* end_public_function */
9022
+
8842
9023
  /* begin_public_function
8843
9024
  id: client.renew_access_token
8844
9025
  */
@@ -8861,7 +9042,7 @@ const renewal = () => {
8861
9042
  * Per instance of Renewal, only one renewal is allowed
8862
9043
  */
8863
9044
  const renewToken = async (authToken) => {
8864
- const { userId, displayName } = getActiveUser();
9045
+ const { userId, displayName } = getCurrentUser();
8865
9046
  const deviceId = await getDeviceId();
8866
9047
  const params = { userId, displayName, authToken, deviceId };
8867
9048
  if (client.sessionState === "tokenExpired" /* Amity.SessionStates.TOKEN_EXPIRED */ && client.sessionHandler) {
@@ -8880,6 +9061,24 @@ const renewal = () => {
8880
9061
  if (renewTimeoutId)
8881
9062
  clearTimeout(renewTimeoutId);
8882
9063
  };
9064
+ const renewVisitorToken = async ({ authSignature, authSignatureExpiresAt, }) => {
9065
+ const deviceId = await getDeviceId();
9066
+ if (client.sessionState === "tokenExpired" /* Amity.SessionStates.TOKEN_EXPIRED */ && client.sessionHandler) {
9067
+ await loginAsVisitor({ sessionHandler: client.sessionHandler });
9068
+ }
9069
+ else {
9070
+ // about to expire
9071
+ await setVisitorClientToken({
9072
+ params: { authSignature, authSignatureExpiresAt, deviceId },
9073
+ options: {
9074
+ setAccessTokenCookie: true,
9075
+ },
9076
+ });
9077
+ }
9078
+ tokenRenewed = true;
9079
+ if (renewTimeoutId)
9080
+ clearTimeout(renewTimeoutId);
9081
+ };
8883
9082
  return {
8884
9083
  renew: () => {
8885
9084
  if (tokenRenewed) {
@@ -8901,6 +9100,19 @@ const renewal = () => {
8901
9100
  (_a = client.sessionHandler) === null || _a === void 0 ? void 0 : _a.sessionWillRenewAccessToken(renewal());
8902
9101
  }, ACCESS_TOKEN_WATCHER_INTERVAL);
8903
9102
  },
9103
+ renewWithAuthSignature: (params) => {
9104
+ if (tokenRenewed) {
9105
+ console.log("'renew' method can be called only once per renewal instance");
9106
+ return;
9107
+ }
9108
+ renewVisitorToken(params);
9109
+ },
9110
+ unableToRetrieveAuthSignature: () => {
9111
+ renewTimeoutId = setTimeout(() => {
9112
+ var _a;
9113
+ (_a = client.sessionHandler) === null || _a === void 0 ? void 0 : _a.sessionWillRenewAccessToken(renewal());
9114
+ }, ACCESS_TOKEN_WATCHER_INTERVAL);
9115
+ },
8904
9116
  };
8905
9117
  };
8906
9118
  /* end_public_function */
@@ -9447,6 +9659,7 @@ const createClient = (apiKey, apiRegion = API_REGIONS.SG, { debugSession = DEFAU
9447
9659
  validateTexts,
9448
9660
  getFeedSettings,
9449
9661
  getSocialSettings,
9662
+ getVisitorDeviceId: getDeviceId,
9450
9663
  getMessagePreviewSetting,
9451
9664
  use: () => setActiveClient(client),
9452
9665
  isUnreadCountEnabled,
@@ -9502,7 +9715,7 @@ const secureLogout = async () => {
9502
9715
  * than the one already connected, in which case the existing subscriptions need
9503
9716
  * to be cleared
9504
9717
  */
9505
- let subscriptions = [];
9718
+ let subscriptions$1 = [];
9506
9719
  async function runMqtt() {
9507
9720
  await modifyMqttConnection();
9508
9721
  }
@@ -9574,15 +9787,15 @@ const resumeSession = async (params, sessionHandler, config) => {
9574
9787
  client.mqtt.disconnect();
9575
9788
  }
9576
9789
  // Clear existing subscriptions
9577
- subscriptions.forEach(fn => fn());
9578
- subscriptions = [];
9790
+ subscriptions$1.forEach(fn => fn());
9791
+ subscriptions$1 = [];
9579
9792
  }
9580
9793
  else {
9581
9794
  // Different user - do full logout
9582
9795
  await logout();
9583
9796
  // Remove subscription to ban and delete
9584
- subscriptions.forEach(fn => fn());
9585
- subscriptions = [];
9797
+ subscriptions$1.forEach(fn => fn());
9798
+ subscriptions$1 = [];
9586
9799
  }
9587
9800
  }
9588
9801
  try {
@@ -9620,37 +9833,37 @@ const resumeSession = async (params, sessionHandler, config) => {
9620
9833
  runMqtt();
9621
9834
  }
9622
9835
  await initializeMessagePreviewSetting();
9623
- if (subscriptions.length === 0) {
9624
- subscriptions.push(
9836
+ if (subscriptions$1.length === 0) {
9837
+ subscriptions$1.push(
9625
9838
  // GLOBAL_BAN
9626
9839
  onClientBanned((_) => {
9627
9840
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
9628
- subscriptions.forEach(fn => fn());
9841
+ subscriptions$1.forEach(fn => fn());
9629
9842
  unsubWatcher();
9630
9843
  }), onTokenTerminated(_ => {
9631
9844
  terminateClient();
9632
- subscriptions.forEach(fn => fn());
9845
+ subscriptions$1.forEach(fn => fn());
9633
9846
  unsubWatcher();
9634
9847
  }), onUserDeleted$2((user) => {
9635
9848
  if (user.userId === client.userId) {
9636
9849
  terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
9637
- subscriptions.forEach(fn => fn());
9850
+ subscriptions$1.forEach(fn => fn());
9638
9851
  unsubWatcher();
9639
9852
  }
9640
9853
  }), onTokenExpired(state => {
9641
9854
  SessionWatcher$1.getInstance().setSessionState(state);
9642
9855
  logout();
9643
- subscriptions.forEach(fn => fn());
9856
+ subscriptions$1.forEach(fn => fn());
9644
9857
  }),
9645
9858
  // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave
9646
9859
  // the channel because currently backend can't handle this, so every time a user is banned from
9647
9860
  // a channel or the channel is deleted the channel's unread count will not be reset to zero
9648
9861
  onChannelDeleted(removeChannelMarkerCache), onChannelMemberBanned(removeChannelMarkerCache), markReadEngineOnLoginHandler(), analyticsEngineOnLoginHandler(), objectResolverEngineOnLoginHandler());
9649
9862
  if (client.useLegacyUnreadCount) {
9650
- subscriptions.push(readReceiptSyncEngineOnLoginHandler());
9863
+ subscriptions$1.push(readReceiptSyncEngineOnLoginHandler());
9651
9864
  }
9652
9865
  else
9653
- subscriptions.push(legacyReadReceiptSyncEngineOnLoginHandler());
9866
+ subscriptions$1.push(legacyReadReceiptSyncEngineOnLoginHandler());
9654
9867
  }
9655
9868
  return true;
9656
9869
  };
@@ -9748,6 +9961,142 @@ const getShareableLinkConfiguration = async () => {
9748
9961
  return data;
9749
9962
  };
9750
9963
 
9964
+ /**
9965
+ * Retrieves a pair of {@link Amity.Tokens} necessary for connection
9966
+ *
9967
+ * @param param get bot token param
9968
+ * @param params.deviceId The user's device Id (can be manually set for native users)
9969
+ * @param options get bot token options
9970
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
9971
+ * @return The accessToken for the given userId
9972
+ *
9973
+ * @category Client API
9974
+ * @hidden
9975
+ */
9976
+ const getBotToken = async ({ params, options, }) => {
9977
+ const client = getActiveClient();
9978
+ client.log('client/api/getBotToken');
9979
+ const deviceInfo = getDeviceInfo();
9980
+ const { data } = await client.http.post('/api/v5/sessions/bot', Object.assign(Object.assign({}, params), { deviceInfo }), {
9981
+ headers: {
9982
+ 'X-API-Key': client.apiKey,
9983
+ 'set-access-token-cookie': (options === null || options === void 0 ? void 0 : options.setAccessTokenCookie) || false,
9984
+ },
9985
+ });
9986
+ return data;
9987
+ };
9988
+
9989
+ /**
9990
+ * A util to set or refresh client token
9991
+ * @param options get bot token options
9992
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
9993
+ * @returns token & user info
9994
+ *
9995
+ * @category private
9996
+ * @async
9997
+ */
9998
+ const setBotClientToken = async (params) => {
9999
+ const client = getActiveClient();
10000
+ // begin establishing session
10001
+ setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
10002
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getBotToken(params);
10003
+ // manually setup the token for http transport
10004
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
10005
+ client.http.defaults.metadata = {
10006
+ tokenExpiry: expiresAt,
10007
+ isGlobalBanned: false,
10008
+ isUserDeleted: false,
10009
+ };
10010
+ client.token = { accessToken, issuedAt, expiresAt };
10011
+ setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
10012
+ return { accessToken, users, userType };
10013
+ };
10014
+
10015
+ /* eslint-disable require-atomic-updates */
10016
+ /*
10017
+ * declared earlier to accomodate case when logging in with a different user
10018
+ * than the one already connected, in which case the existing subscriptions need
10019
+ * to be cleared
10020
+ */
10021
+ const subscriptions = [];
10022
+ /* begin_public_function
10023
+ id: client.loginAsBot
10024
+ */
10025
+ /**
10026
+ * ```js
10027
+ * import { loginAsBot } from '@amityco/ts-sdk/client/api'
10028
+ * const success = await loginAsBot({
10029
+ sessionHandler: {
10030
+ sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
10031
+ ...
10032
+ }
10033
+ * })
10034
+ * ```
10035
+ *
10036
+ * Connects an {@link Amity.Client} instance to ASC servers
10037
+ *
10038
+ * @param params. the connect parameters
10039
+ * @param params.sessionHandler
10040
+ * @returns a success boolean if connected
10041
+ *
10042
+ * @category Client API
10043
+ * @async
10044
+ */
10045
+ const loginAsBot = async (params) => {
10046
+ const client = getActiveClient();
10047
+ let unsubWatcher;
10048
+ client.log('client/api/connectClient', {
10049
+ apiKey: client.apiKey,
10050
+ sessionState: client.sessionState,
10051
+ });
10052
+ // generate deviceId
10053
+ const deviceId = await getDeviceId();
10054
+ let user;
10055
+ try {
10056
+ const { users, userType } = await setBotClientToken({
10057
+ params: {
10058
+ deviceId,
10059
+ },
10060
+ options: {
10061
+ setAccessTokenCookie: true,
10062
+ },
10063
+ });
10064
+ [user] = users;
10065
+ client.userId = user.userId;
10066
+ client.sessionHandler = params.sessionHandler;
10067
+ /*
10068
+ * Cannot push to subscriptions as watcher needs to continue working even if
10069
+ * token expires
10070
+ */
10071
+ unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);
10072
+ setCurrentUser({ user, userType });
10073
+ }
10074
+ catch (error) {
10075
+ /*
10076
+ * if getting token failed session state reverts to initial state when app
10077
+ * is first launched
10078
+ */
10079
+ SessionWatcher$1.getInstance().setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
10080
+ // pass error down tree so the calling function handle it
10081
+ throw error;
10082
+ }
10083
+ await initializeMessagePreviewSetting();
10084
+ if (subscriptions.length === 0) {
10085
+ // handling internal SDK events
10086
+ subscriptions.push(onTokenTerminated(_ => {
10087
+ terminateClient();
10088
+ subscriptions.forEach(fn => fn());
10089
+ unsubWatcher();
10090
+ }), onTokenExpired(state => {
10091
+ SessionWatcher$1.getInstance().setSessionState(state);
10092
+ logout();
10093
+ subscriptions.forEach(fn => fn());
10094
+ }));
10095
+ }
10096
+ return true;
10097
+ };
10098
+ /* end_public_function */
10099
+
9751
10100
  /**
9752
10101
  * ```js
9753
10102
  * import { onChannelMarkerFetched } from '@amityco/ts-sdk'
@@ -10119,6 +10468,11 @@ var index$o = /*#__PURE__*/Object.freeze({
10119
10468
  fetchLinkPreview: fetchLinkPreview,
10120
10469
  getSocialSettings: getSocialSettings,
10121
10470
  getShareableLinkConfiguration: getShareableLinkConfiguration,
10471
+ loginAsVisitor: loginAsVisitor,
10472
+ loginAsBot: loginAsBot,
10473
+ getCurrentUser: getCurrentUser,
10474
+ getCurrentUserType: getCurrentUserType,
10475
+ setCurrentUserType: setCurrentUserType,
10122
10476
  onConnectionError: onConnectionError,
10123
10477
  onClientDisconnected: onClientDisconnected,
10124
10478
  onClientBanned: onClientBanned,
@@ -23013,7 +23367,7 @@ const getCategory = async (categoryId) => {
23013
23367
  ingestInCache(data, { cachedAt });
23014
23368
  const { categories } = data;
23015
23369
  return {
23016
- data: LinkedObject.category(categories.find(category => category.categoryId === categoryId)),
23370
+ data: LinkedObject.category((categories !== null && categories !== void 0 ? categories : []).find(category => category.categoryId === categoryId)),
23017
23371
  cachedAt,
23018
23372
  };
23019
23373
  };
@@ -27462,7 +27816,7 @@ var index$6 = /*#__PURE__*/Object.freeze({
27462
27816
  getPoll: getPoll
27463
27817
  });
27464
27818
 
27465
- const privateKey = "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDHo80SecH7FuF2\nhFYnb+l26/VN8UMLXAQFLnxciNTEwkGVFMpdezlH8rU2HtUJL4RETogbAOLVY0XM\njs6sPn8G1nALmh9qeDpUtVqFOVtBHxEZ910TLOtQiunjqJKO5nWdqZ71EC3OFluR\niGQkO84BiIFbv37ub7xl3S8XarbtKoLcyVpkDHi+1wx1pgCAn6gtBUgckPL5NR8j\nLseabl3HAXQfhTCKo4tmOFM2Dxwl1IUMmIJrJg/aIU/U0tj/1Eoo7mG0JcNWX19l\nW3EecCbi0ncCJOrkUdwlBrcjaMayaX/ubEwyUeTGiLdyc4L3GRLHjyK8xgVNXRMH\nbZWJ2a5NAgMBAAECggEASxuE+35zTFO/XydKgmvIGcWL9FbgMlXb7Vcf0nBoG945\nbiz0NVc2paraIhJXc608xbYF3qLmtAE1MVBI0ORyRdBHNxY024l/6H6SH60Ed+uI\nM4ysp5ourY6Vj+DLwpdRiI9YDjqYAQDIUmhNxJP7XPhOMoZI6st+xZQBM34ic/bv\nAMSJm9OZphSp3+qXVkFZztr2mxD2EZSJJLYxi8BCdgM2qhazalbcJ6zDKHCZWVWm\n8RRxDGldyMb/237JxETzP40tAlzOZDmBAbUgEnurDJ93RVDIE3rbZUshwgeQd18a\nem096mWgvB1AIKYgsTAR3pw+V19YWAjq/glP6fz8wQKBgQD/oQq+ukKF0PRgBeM5\ngeTjSwsdGppQLmf5ndujvoiz/TpdjDEPu6R8kigQr1rG2t4K/yfdZoI8RdmJD1al\n3Q7N9hofooSy4rj6E3txzWZCHJjHad2cnCp/O26HiReGAl7wTcfTmNdiFHhZQzm5\nJBkvWAiwuvQMNfEbnXxw6/vIDwKBgQDH7fX8gsc77JLvAWgp1MaQN/sbqVb6JeT1\nFQfR8E/WFCSmzQBtNzd5KgYuCeelwr/8DyYytvN2BzCYZXp73gI1jF3YlW5jVn74\nOY6TwQ095digwo6Z0yuxopdIOApKgAkL9PRKgNrqAf3NAyMua6lOGifzjDojC3KU\nfylQmxMn4wKBgHp2B9O/H0dEBw5JQ8W0+JX6yWQz7mEjGiR2/1W+XXb8hQ1zr709\nw1r6Gb+EghRpnZ3fBpYGGbYOMFx8wKHM+N6qW3F0ReX8v2juFGE8aRSa5oYBrWzt\nU16Idjbv8hj84cZ1PJmdyvDtpYn9rpWHOZl4rxEbPvbqkIsOMyNVqdT5AoGAOSge\nmwIIU2le2FVeohbibXiToWTYKMuMmURZ5/r72AgKMmWJKbAPe+Q3wBG01/7FRBpQ\noU8Ma0HC8s6QJbliiEyIx9JwrJWd1vkdecBHONrtA4ibm/5zD2WcOllLF+FitLhi\n3qnX6+6F0IaFGFBPJrTzlv0P4dTz/OAdv52V7GECgYEA2TttOKBAqWllgOaZOkql\nLVMJVmgR7s6tLi1+cEP8ZcapV9aRbRzTAKXm4f8AEhtlG9F9kCOvHYCYGi6JaiWJ\nZkHjeex3T+eE6Di6y5Bm/Ift5jtVhJ4jCVwHOKTMej79NPUFTJfv8hCo29haBDv6\nRXFrv+T21KCcw8k3sJeJWWQ=\n-----END PRIVATE KEY-----";
27819
+ const privateKey = "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAARz+hmBgi8pJ\nQb8LeY41gtHhk+ACMwRfhsn7GqpqRQNG2qU0755mzZuVDUqjQMGSo8THJB7O+OJs\nflbZRkFXlFoFOVNw1UpNOgwEQZ6wB9oRwzepTJAfF1sVhm/o/ixvXh1zDFNDy6yZ\npXyiiJHUVxqyjllZhxnwdvjoVtDs6hW6awG09bB9nh/TTejlUKXoAgzqVwu/1QMu\nUVViET495elEe19aUarEy+oL2iKeXCEvqda/pWNBdbieFyJvvZ08HN8dPuT88wq2\njZLEAth1vrwQ2IAa4ktaLcBQdLJgIkrbDvAiVZ8lQAjS/bq5vXQikTGvoPlC5bbn\nvuOM/3eLAgMBAAECggEAVZ+peHAghq2QVj71nX5lxsNCKaCyYwixSJBpfouTt7Rz\nE6PpzMOXFi1W1o+I22jDakuSM2SOQKqI/u0QefB0r0O/KVk5NrZHXk0mkrdYtxOp\nUgaGyf8UvmjB+8VqHrNKyZdk9qtmbnNj01kTTcAtmE4H39zPR7eR/8Rul94vaZbs\nwCnKJS3mLT3JxyGug6lxanveKkjG+CKC1nJQYWaxCJxaFSzbwXQPvDhB+TvrIbee\npd5v4EAyEJohpr+T9oDGGJkb/KARBZCtwLyB976PKJwwBA8MRVL1i5QwawuMiMq5\nUtnOnbGKtCeFzaLbNU0Qi8bqyims84EQxC6DOu1fkQKBgQDdvsoBsEhsOXV7hlIJ\naEd0eSJZVkdqimxH8uGoMM2FeNaOrcB6yBXqTSP0R3OIyf8eaY6yjRvP30ZNXcll\n/gD3O1Mu6YmWQdt1W2WA6pKOsUuPXasf0pdOF7IiFZKlSabz5YHXFqwVuqm8loaj\nsXel3YWqPVdHiankE7tz+3ssnQKBgQDdqi4TNdD1MdEpihx19jr0QjUiXW3939FK\nqp30HESPEGDGQzXdmJgif9HhZb+cJSuWaHEbjgBrYahvgCF+y6LbEpOD+D/dmT+s\nDEAQaR84sah6dokwPjV8fjBSrcVFjCS+doxv0d3p/9OUEeyUhFrY03nxtIEYkLIE\n/Zvn37b4RwKBgQCLENVFe9XfsaVhQ5r9dV2iyTlmh7qgMZG5CbTFs12hQGhm8McO\n+Z7s41YSJCFr/yq1WwP4LJDtrBw99vyQr1zRsG35tNLp3gGRNzGQSQyC2uQFVHw2\np+7mNewsfhUK/gbrXNsyFnDz6635rPlhfbII3sWuP2wWXFqkxE9CbMwR7QKBgQC6\nawDMzxmo2/iYArrkyevSuEuPVxvFwpF1RgAI6C0QVCnPE38dmdN4UB7mfHekje4W\nVEercMURidPp0cxZolCYBQtilUjAyL0vqC3In1/Ogjq6oy3FEMxSop1pKxMY5j+Q\nnoqFD+6deLUrddeNH7J3X4LSr4dSbX4JjG+tlgt+yQKBgQCuwTL4hA6KqeInQ0Ta\n9VQX5Qr8hFlqJz1gpymi/k63tW/Ob8yedbg3WWNWyShwRMFYyY9S81ITFWM95uL6\nvF3x9rmRjwElJw9PMwVu6dmf/CO0Z1wzXSp2VVD12gbrUD/0/d7MUoJ9LgC8X8f/\nn0txLHYGHbx+nf95+JUg6lV3hg==\n-----END PRIVATE KEY-----";
27466
27820
  /*
27467
27821
  * The crypto algorithm used for importing key and signing string
27468
27822
  */