@amityco/ts-sdk 7.9.2 → 7.9.3-26ea573.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 (138) 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 +10 -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/client/api/activeUser.d.ts +1 -0
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.d.ts.map +1 -1
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.js +1 -0
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.js.map +1 -1
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.d.ts +21 -0
  21. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.d.ts.map +1 -0
  22. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.js +27 -0
  23. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.js.map +1 -0
  24. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.d.ts +2 -0
  25. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.d.ts.map +1 -0
  26. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.js +21 -0
  27. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.js.map +1 -0
  28. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.d.ts +3 -0
  29. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.d.ts.map +1 -0
  30. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.js +16 -0
  31. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.js.map +1 -0
  32. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.d.ts +1 -3
  33. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.d.ts.map +1 -1
  34. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.js.map +1 -1
  35. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.d.ts +24 -0
  36. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.d.ts.map +1 -0
  37. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.js +30 -0
  38. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.js.map +1 -0
  39. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts +4 -0
  40. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts.map +1 -1
  41. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js +4 -0
  42. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js.map +1 -1
  43. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.d.ts.map +1 -1
  44. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.js +4 -4
  45. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.js.map +1 -1
  46. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.d.ts +24 -0
  47. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.d.ts.map +1 -0
  48. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.js +95 -0
  49. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.js.map +1 -0
  50. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.d.ts +26 -0
  51. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.d.ts.map +1 -0
  52. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.js +92 -0
  53. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.js.map +1 -0
  54. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.d.ts.map +1 -1
  55. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.js +35 -2
  56. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.js.map +1 -1
  57. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.d.ts +16 -0
  58. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.d.ts.map +1 -0
  59. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.js +29 -0
  60. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.js.map +1 -0
  61. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.d.ts +2 -1
  62. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.d.ts.map +1 -1
  63. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.js +2 -2
  64. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.js.map +1 -1
  65. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.d.ts +5 -0
  66. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.d.ts.map +1 -0
  67. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.js +9 -0
  68. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.js.map +1 -0
  69. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.d.ts +21 -0
  70. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.d.ts.map +1 -0
  71. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.js +34 -0
  72. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.js.map +1 -0
  73. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.d.ts.map +1 -1
  74. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.js +4 -4
  75. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.js.map +1 -1
  76. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  77. package/dist/@types/core/errors.d.ts +3 -1
  78. package/dist/@types/core/errors.d.ts.map +1 -1
  79. package/dist/@types/domains/client.d.ts +10 -0
  80. package/dist/@types/domains/client.d.ts.map +1 -1
  81. package/dist/@types/domains/user.d.ts +6 -0
  82. package/dist/@types/domains/user.d.ts.map +1 -1
  83. package/dist/@types/index.d.ts +1 -0
  84. package/dist/@types/index.d.ts.map +1 -1
  85. package/dist/client/api/activeUser.d.ts +1 -0
  86. package/dist/client/api/activeUser.d.ts.map +1 -1
  87. package/dist/client/api/getBotToken.d.ts +21 -0
  88. package/dist/client/api/getBotToken.d.ts.map +1 -0
  89. package/dist/client/api/getCurrentUser.d.ts +2 -0
  90. package/dist/client/api/getCurrentUser.d.ts.map +1 -0
  91. package/dist/client/api/getCurrentUserType.d.ts +3 -0
  92. package/dist/client/api/getCurrentUserType.d.ts.map +1 -0
  93. package/dist/client/api/getToken.d.ts +1 -3
  94. package/dist/client/api/getToken.d.ts.map +1 -1
  95. package/dist/client/api/getVisitorToken.d.ts +24 -0
  96. package/dist/client/api/getVisitorToken.d.ts.map +1 -0
  97. package/dist/client/api/index.d.ts +4 -0
  98. package/dist/client/api/index.d.ts.map +1 -1
  99. package/dist/client/api/login.d.ts.map +1 -1
  100. package/dist/client/api/loginAsBot.d.ts +24 -0
  101. package/dist/client/api/loginAsBot.d.ts.map +1 -0
  102. package/dist/client/api/loginAsVisitor.d.ts +26 -0
  103. package/dist/client/api/loginAsVisitor.d.ts.map +1 -0
  104. package/dist/client/api/renewal.d.ts.map +1 -1
  105. package/dist/client/utils/setBotClientToken.d.ts +16 -0
  106. package/dist/client/utils/setBotClientToken.d.ts.map +1 -0
  107. package/dist/client/utils/setClientToken.d.ts +2 -1
  108. package/dist/client/utils/setClientToken.d.ts.map +1 -1
  109. package/dist/client/utils/setCurrentUser.d.ts +5 -0
  110. package/dist/client/utils/setCurrentUser.d.ts.map +1 -0
  111. package/dist/client/utils/setVisitorClientToken.d.ts +21 -0
  112. package/dist/client/utils/setVisitorClientToken.d.ts.map +1 -0
  113. package/dist/core/transports/http.d.ts.map +1 -1
  114. package/dist/index.cjs.js +390 -37
  115. package/dist/index.esm.js +391 -38
  116. package/dist/index.umd.js +3 -3
  117. package/package.json +1 -1
  118. package/src/@types/core/errors.ts +2 -0
  119. package/src/@types/domains/client.ts +15 -0
  120. package/src/@types/domains/user.ts +8 -0
  121. package/src/@types/index.ts +1 -0
  122. package/src/client/api/activeUser.ts +1 -0
  123. package/src/client/api/getBotToken.ts +44 -0
  124. package/src/client/api/getCurrentUser.ts +32 -0
  125. package/src/client/api/getCurrentUserType.ts +23 -0
  126. package/src/client/api/getToken.ts +1 -1
  127. package/src/client/api/getVisitorToken.ts +47 -0
  128. package/src/client/api/index.ts +6 -0
  129. package/src/client/api/login.ts +5 -4
  130. package/src/client/api/loginAsBot.ts +126 -0
  131. package/src/client/api/loginAsVisitor.ts +131 -0
  132. package/src/client/api/renewal.ts +42 -2
  133. package/src/client/utils/setBotClientToken.ts +35 -0
  134. package/src/client/utils/setClientToken.ts +2 -2
  135. package/src/client/utils/setCurrentUser.ts +15 -0
  136. package/src/client/utils/setVisitorClientToken.ts +41 -0
  137. package/src/core/transports/http.ts +5 -4
  138. 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 */
@@ -9502,7 +9714,7 @@ const secureLogout = async () => {
9502
9714
  * than the one already connected, in which case the existing subscriptions need
9503
9715
  * to be cleared
9504
9716
  */
9505
- let subscriptions = [];
9717
+ let subscriptions$1 = [];
9506
9718
  async function runMqtt() {
9507
9719
  await modifyMqttConnection();
9508
9720
  }
@@ -9574,15 +9786,15 @@ const resumeSession = async (params, sessionHandler, config) => {
9574
9786
  client.mqtt.disconnect();
9575
9787
  }
9576
9788
  // Clear existing subscriptions
9577
- subscriptions.forEach(fn => fn());
9578
- subscriptions = [];
9789
+ subscriptions$1.forEach(fn => fn());
9790
+ subscriptions$1 = [];
9579
9791
  }
9580
9792
  else {
9581
9793
  // Different user - do full logout
9582
9794
  await logout();
9583
9795
  // Remove subscription to ban and delete
9584
- subscriptions.forEach(fn => fn());
9585
- subscriptions = [];
9796
+ subscriptions$1.forEach(fn => fn());
9797
+ subscriptions$1 = [];
9586
9798
  }
9587
9799
  }
9588
9800
  try {
@@ -9620,37 +9832,37 @@ const resumeSession = async (params, sessionHandler, config) => {
9620
9832
  runMqtt();
9621
9833
  }
9622
9834
  await initializeMessagePreviewSetting();
9623
- if (subscriptions.length === 0) {
9624
- subscriptions.push(
9835
+ if (subscriptions$1.length === 0) {
9836
+ subscriptions$1.push(
9625
9837
  // GLOBAL_BAN
9626
9838
  onClientBanned((_) => {
9627
9839
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
9628
- subscriptions.forEach(fn => fn());
9840
+ subscriptions$1.forEach(fn => fn());
9629
9841
  unsubWatcher();
9630
9842
  }), onTokenTerminated(_ => {
9631
9843
  terminateClient();
9632
- subscriptions.forEach(fn => fn());
9844
+ subscriptions$1.forEach(fn => fn());
9633
9845
  unsubWatcher();
9634
9846
  }), onUserDeleted$2((user) => {
9635
9847
  if (user.userId === client.userId) {
9636
9848
  terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
9637
- subscriptions.forEach(fn => fn());
9849
+ subscriptions$1.forEach(fn => fn());
9638
9850
  unsubWatcher();
9639
9851
  }
9640
9852
  }), onTokenExpired(state => {
9641
9853
  SessionWatcher$1.getInstance().setSessionState(state);
9642
9854
  logout();
9643
- subscriptions.forEach(fn => fn());
9855
+ subscriptions$1.forEach(fn => fn());
9644
9856
  }),
9645
9857
  // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave
9646
9858
  // the channel because currently backend can't handle this, so every time a user is banned from
9647
9859
  // a channel or the channel is deleted the channel's unread count will not be reset to zero
9648
9860
  onChannelDeleted(removeChannelMarkerCache), onChannelMemberBanned(removeChannelMarkerCache), markReadEngineOnLoginHandler(), analyticsEngineOnLoginHandler(), objectResolverEngineOnLoginHandler());
9649
9861
  if (client.useLegacyUnreadCount) {
9650
- subscriptions.push(readReceiptSyncEngineOnLoginHandler());
9862
+ subscriptions$1.push(readReceiptSyncEngineOnLoginHandler());
9651
9863
  }
9652
9864
  else
9653
- subscriptions.push(legacyReadReceiptSyncEngineOnLoginHandler());
9865
+ subscriptions$1.push(legacyReadReceiptSyncEngineOnLoginHandler());
9654
9866
  }
9655
9867
  return true;
9656
9868
  };
@@ -9748,6 +9960,142 @@ const getShareableLinkConfiguration = async () => {
9748
9960
  return data;
9749
9961
  };
9750
9962
 
9963
+ /**
9964
+ * Retrieves a pair of {@link Amity.Tokens} necessary for connection
9965
+ *
9966
+ * @param param get bot token param
9967
+ * @param params.deviceId The user's device Id (can be manually set for native users)
9968
+ * @param options get bot token options
9969
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
9970
+ * @return The accessToken for the given userId
9971
+ *
9972
+ * @category Client API
9973
+ * @hidden
9974
+ */
9975
+ const getBotToken = async ({ params, options, }) => {
9976
+ const client = getActiveClient();
9977
+ client.log('client/api/getBotToken');
9978
+ const deviceInfo = getDeviceInfo();
9979
+ const { data } = await client.http.post('/api/v5/sessions/bot', Object.assign(Object.assign({}, params), { deviceInfo }), {
9980
+ headers: {
9981
+ 'X-API-Key': client.apiKey,
9982
+ 'set-access-token-cookie': (options === null || options === void 0 ? void 0 : options.setAccessTokenCookie) || false,
9983
+ },
9984
+ });
9985
+ return data;
9986
+ };
9987
+
9988
+ /**
9989
+ * A util to set or refresh client token
9990
+ * @param options get bot token options
9991
+ * @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
9992
+ * @returns token & user info
9993
+ *
9994
+ * @category private
9995
+ * @async
9996
+ */
9997
+ const setBotClientToken = async (params) => {
9998
+ const client = getActiveClient();
9999
+ // begin establishing session
10000
+ setSessionState("establishing" /* Amity.SessionStates.ESTABLISHING */);
10001
+ const { accessToken, users, expiresAt, issuedAt, userType } = await getBotToken(params);
10002
+ // manually setup the token for http transport
10003
+ client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
10004
+ client.http.defaults.metadata = {
10005
+ tokenExpiry: expiresAt,
10006
+ isGlobalBanned: false,
10007
+ isUserDeleted: false,
10008
+ };
10009
+ client.token = { accessToken, issuedAt, expiresAt };
10010
+ setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
10011
+ return { accessToken, users, userType };
10012
+ };
10013
+
10014
+ /* eslint-disable require-atomic-updates */
10015
+ /*
10016
+ * declared earlier to accomodate case when logging in with a different user
10017
+ * than the one already connected, in which case the existing subscriptions need
10018
+ * to be cleared
10019
+ */
10020
+ const subscriptions = [];
10021
+ /* begin_public_function
10022
+ id: client.loginAsBot
10023
+ */
10024
+ /**
10025
+ * ```js
10026
+ * import { loginAsBot } from '@amityco/ts-sdk/client/api'
10027
+ * const success = await loginAsBot({
10028
+ sessionHandler: {
10029
+ sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
10030
+ ...
10031
+ }
10032
+ * })
10033
+ * ```
10034
+ *
10035
+ * Connects an {@link Amity.Client} instance to ASC servers
10036
+ *
10037
+ * @param params. the connect parameters
10038
+ * @param params.sessionHandler
10039
+ * @returns a success boolean if connected
10040
+ *
10041
+ * @category Client API
10042
+ * @async
10043
+ */
10044
+ const loginAsBot = async (params) => {
10045
+ const client = getActiveClient();
10046
+ let unsubWatcher;
10047
+ client.log('client/api/connectClient', {
10048
+ apiKey: client.apiKey,
10049
+ sessionState: client.sessionState,
10050
+ });
10051
+ // generate deviceId
10052
+ const deviceId = await getDeviceId();
10053
+ let user;
10054
+ try {
10055
+ const { users, userType } = await setBotClientToken({
10056
+ params: {
10057
+ deviceId,
10058
+ },
10059
+ options: {
10060
+ setAccessTokenCookie: true,
10061
+ },
10062
+ });
10063
+ [user] = users;
10064
+ client.userId = user.userId;
10065
+ client.sessionHandler = params.sessionHandler;
10066
+ /*
10067
+ * Cannot push to subscriptions as watcher needs to continue working even if
10068
+ * token expires
10069
+ */
10070
+ unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);
10071
+ setCurrentUser({ user, userType });
10072
+ }
10073
+ catch (error) {
10074
+ /*
10075
+ * if getting token failed session state reverts to initial state when app
10076
+ * is first launched
10077
+ */
10078
+ SessionWatcher$1.getInstance().setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
10079
+ // pass error down tree so the calling function handle it
10080
+ throw error;
10081
+ }
10082
+ await initializeMessagePreviewSetting();
10083
+ if (subscriptions.length === 0) {
10084
+ // handling internal SDK events
10085
+ subscriptions.push(onTokenTerminated(_ => {
10086
+ terminateClient();
10087
+ subscriptions.forEach(fn => fn());
10088
+ unsubWatcher();
10089
+ }), onTokenExpired(state => {
10090
+ SessionWatcher$1.getInstance().setSessionState(state);
10091
+ logout();
10092
+ subscriptions.forEach(fn => fn());
10093
+ }));
10094
+ }
10095
+ return true;
10096
+ };
10097
+ /* end_public_function */
10098
+
9751
10099
  /**
9752
10100
  * ```js
9753
10101
  * import { onChannelMarkerFetched } from '@amityco/ts-sdk'
@@ -10119,6 +10467,11 @@ var index$o = /*#__PURE__*/Object.freeze({
10119
10467
  fetchLinkPreview: fetchLinkPreview,
10120
10468
  getSocialSettings: getSocialSettings,
10121
10469
  getShareableLinkConfiguration: getShareableLinkConfiguration,
10470
+ loginAsVisitor: loginAsVisitor,
10471
+ loginAsBot: loginAsBot,
10472
+ getCurrentUser: getCurrentUser,
10473
+ getCurrentUserType: getCurrentUserType,
10474
+ setCurrentUserType: setCurrentUserType,
10122
10475
  onConnectionError: onConnectionError,
10123
10476
  onClientDisconnected: onClientDisconnected,
10124
10477
  onClientBanned: onClientBanned,
@@ -27462,7 +27815,7 @@ var index$6 = /*#__PURE__*/Object.freeze({
27462
27815
  getPoll: getPoll
27463
27816
  });
27464
27817
 
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-----";
27818
+ 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
27819
  /*
27467
27820
  * The crypto algorithm used for importing key and signing string
27468
27821
  */