@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.
- package/.env +26 -26
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/errors.d.ts +3 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/errors.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/errors.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts +11 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.d.ts +6 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.js +6 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/user.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/categoryRepository/api/getCategory.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/categoryRepository/api/getCategory.js +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/categoryRepository/api/getCategory.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.js +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/activeUser.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/createClient.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/createClient.js +3 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/createClient.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.d.ts +21 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.js +27 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getBotToken.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.d.ts +2 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.js +21 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUser.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.d.ts +3 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.js +16 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getCurrentUserType.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.d.ts +1 -3
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getToken.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.d.ts +24 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.js +30 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getVisitorToken.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts +4 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js +4 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.js +4 -4
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/login.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.d.ts +24 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.js +95 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.d.ts +26 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.js +92 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.js +35 -2
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/renewal.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.d.ts +16 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.js +29 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setBotClientToken.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.d.ts +2 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.js +2 -2
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.d.ts +5 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.js +9 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setCurrentUser.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.d.ts +21 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.js +34 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.js +4 -4
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
- package/dist/@types/core/errors.d.ts +3 -1
- package/dist/@types/core/errors.d.ts.map +1 -1
- package/dist/@types/domains/client.d.ts +11 -0
- package/dist/@types/domains/client.d.ts.map +1 -1
- package/dist/@types/domains/user.d.ts +6 -0
- package/dist/@types/domains/user.d.ts.map +1 -1
- package/dist/@types/index.d.ts +1 -0
- package/dist/@types/index.d.ts.map +1 -1
- package/dist/categoryRepository/api/getCategory.d.ts.map +1 -1
- package/dist/client/api/activeUser.d.ts +1 -0
- package/dist/client/api/activeUser.d.ts.map +1 -1
- package/dist/client/api/createClient.d.ts.map +1 -1
- package/dist/client/api/getBotToken.d.ts +21 -0
- package/dist/client/api/getBotToken.d.ts.map +1 -0
- package/dist/client/api/getCurrentUser.d.ts +2 -0
- package/dist/client/api/getCurrentUser.d.ts.map +1 -0
- package/dist/client/api/getCurrentUserType.d.ts +3 -0
- package/dist/client/api/getCurrentUserType.d.ts.map +1 -0
- package/dist/client/api/getToken.d.ts +1 -3
- package/dist/client/api/getToken.d.ts.map +1 -1
- package/dist/client/api/getVisitorToken.d.ts +24 -0
- package/dist/client/api/getVisitorToken.d.ts.map +1 -0
- package/dist/client/api/index.d.ts +4 -0
- package/dist/client/api/index.d.ts.map +1 -1
- package/dist/client/api/login.d.ts.map +1 -1
- package/dist/client/api/loginAsBot.d.ts +24 -0
- package/dist/client/api/loginAsBot.d.ts.map +1 -0
- package/dist/client/api/loginAsVisitor.d.ts +26 -0
- package/dist/client/api/loginAsVisitor.d.ts.map +1 -0
- package/dist/client/api/renewal.d.ts.map +1 -1
- package/dist/client/utils/setBotClientToken.d.ts +16 -0
- package/dist/client/utils/setBotClientToken.d.ts.map +1 -0
- package/dist/client/utils/setClientToken.d.ts +2 -1
- package/dist/client/utils/setClientToken.d.ts.map +1 -1
- package/dist/client/utils/setCurrentUser.d.ts +5 -0
- package/dist/client/utils/setCurrentUser.d.ts.map +1 -0
- package/dist/client/utils/setVisitorClientToken.d.ts +21 -0
- package/dist/client/utils/setVisitorClientToken.d.ts.map +1 -0
- package/dist/core/transports/http.d.ts.map +1 -1
- package/dist/index.cjs.js +392 -38
- package/dist/index.esm.js +393 -39
- package/dist/index.umd.js +3 -3
- package/package.json +1 -1
- package/src/@types/core/errors.ts +2 -0
- package/src/@types/domains/client.ts +17 -0
- package/src/@types/domains/user.ts +8 -0
- package/src/@types/index.ts +1 -0
- package/src/categoryRepository/api/getCategory.ts +3 -1
- package/src/client/api/activeUser.ts +1 -0
- package/src/client/api/createClient.ts +3 -5
- package/src/client/api/getBotToken.ts +44 -0
- package/src/client/api/getCurrentUser.ts +32 -0
- package/src/client/api/getCurrentUserType.ts +23 -0
- package/src/client/api/getToken.ts +1 -1
- package/src/client/api/getVisitorToken.ts +47 -0
- package/src/client/api/index.ts +6 -0
- package/src/client/api/login.ts +5 -4
- package/src/client/api/loginAsBot.ts +125 -0
- package/src/client/api/loginAsVisitor.ts +129 -0
- package/src/client/api/renewal.ts +42 -2
- package/src/client/utils/setBotClientToken.ts +35 -0
- package/src/client/utils/setClientToken.ts +2 -2
- package/src/client/utils/setCurrentUser.ts +15 -0
- package/src/client/utils/setVisitorClientToken.ts +40 -0
- package/src/core/transports/http.ts +5 -4
- 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$
|
|
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$
|
|
8761
|
-
subscriptions$
|
|
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.
|
|
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
|
-
|
|
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$
|
|
8807
|
-
subscriptions$
|
|
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$
|
|
8893
|
+
subscriptions$3.forEach(fn => fn());
|
|
8812
8894
|
unsubWatcher();
|
|
8813
8895
|
}), onTokenTerminated(_ => {
|
|
8814
8896
|
terminateClient();
|
|
8815
|
-
subscriptions$
|
|
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$
|
|
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$
|
|
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$
|
|
8915
|
+
subscriptions$3.push(readReceiptSyncEngineOnLoginHandler());
|
|
8834
8916
|
}
|
|
8835
8917
|
else
|
|
8836
|
-
subscriptions$
|
|
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 } =
|
|
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-----\
|
|
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
|
*/
|