@amityco/ts-sdk 7.9.3-8cb8198.0 → 7.9.3-9d4caef6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/channel.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.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/channelRepository/api/unmuteChannel.d.ts +0 -14
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.js +2 -6
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.d.ts +16 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.js +20 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.d.ts +8 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.js +58 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.js.map +1 -0
- 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/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js +8 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.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/channel.d.ts +1 -0
- package/dist/@types/domains/channel.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/channelRepository/api/unmuteChannel.d.ts +0 -14
- package/dist/channelRepository/api/unmuteChannel.d.ts.map +1 -1
- package/dist/channelRepository/internalApi/getMembership.d.ts +16 -0
- package/dist/channelRepository/internalApi/getMembership.d.ts.map +1 -0
- package/dist/channelRepository/observers/getMembership.d.ts +8 -0
- package/dist/channelRepository/observers/getMembership.d.ts.map +1 -0
- 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 +466 -43
- package/dist/index.esm.js +467 -44
- package/dist/index.umd.js +3 -3
- package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/core/errors.ts +2 -0
- package/src/@types/domains/channel.ts +4 -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/channelRepository/api/unmuteChannel.ts +2 -4
- package/src/channelRepository/internalApi/getMembership.ts +45 -0
- package/src/channelRepository/observers/getMembership.ts +89 -0
- 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/src/utils/linkedObject/channelLinkedObject.ts +11 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,OAmC1E,CAAC"}
|
package/package.json
CHANGED
|
@@ -103,6 +103,10 @@ declare global {
|
|
|
103
103
|
myMembership: (
|
|
104
104
|
callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,
|
|
105
105
|
) => Amity.Unsubscriber;
|
|
106
|
+
getMembership: (
|
|
107
|
+
userId: Amity.User['userId'],
|
|
108
|
+
callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,
|
|
109
|
+
) => Amity.Unsubscriber;
|
|
106
110
|
};
|
|
107
111
|
|
|
108
112
|
type QueryChannels = {
|
|
@@ -76,6 +76,8 @@ declare global {
|
|
|
76
76
|
getMarkerSyncConsistentMode: () => boolean;
|
|
77
77
|
|
|
78
78
|
prefixDeviceIdKey?: string;
|
|
79
|
+
|
|
80
|
+
getVisitorDeviceId: () => Promise<string>;
|
|
79
81
|
};
|
|
80
82
|
|
|
81
83
|
type Device = {
|
|
@@ -94,10 +96,20 @@ declare global {
|
|
|
94
96
|
expiresAt: string;
|
|
95
97
|
};
|
|
96
98
|
|
|
99
|
+
type SessionResponse = Tokens & {
|
|
100
|
+
users: Amity.RawUser[];
|
|
101
|
+
userType: Amity.UserType;
|
|
102
|
+
};
|
|
103
|
+
|
|
97
104
|
type AccessTokenRenewal = {
|
|
98
105
|
renew: () => void;
|
|
99
106
|
renewWithAuthToken: (authToken: string) => void;
|
|
100
107
|
unableToRetrieveAuthToken: () => void;
|
|
108
|
+
renewWithAuthSignature: ({
|
|
109
|
+
authSignature,
|
|
110
|
+
authSignatureExpiresAt,
|
|
111
|
+
}: Amity.ConnectClientAsVisitorParams) => void;
|
|
112
|
+
unableToRetrieveAuthSignature: () => void;
|
|
101
113
|
};
|
|
102
114
|
|
|
103
115
|
interface SessionHandler {
|
|
@@ -150,6 +162,11 @@ declare global {
|
|
|
150
162
|
deviceId?: Amity.Device['deviceId'];
|
|
151
163
|
};
|
|
152
164
|
|
|
165
|
+
type ConnectClientAsVisitorParams = {
|
|
166
|
+
authSignature?: string;
|
|
167
|
+
authSignatureExpiresAt?: string;
|
|
168
|
+
};
|
|
169
|
+
|
|
153
170
|
type ConnectClientConfig = {
|
|
154
171
|
disableRTE: boolean;
|
|
155
172
|
};
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { AmityUserSearchMatchType } from '~/userRepository';
|
|
2
2
|
|
|
3
|
+
export const enum UserTypeEnum {
|
|
4
|
+
SIGNED_IN = 'signed-in',
|
|
5
|
+
VISITOR = 'visitor',
|
|
6
|
+
BOT = 'bot',
|
|
7
|
+
}
|
|
8
|
+
|
|
3
9
|
export {};
|
|
4
10
|
|
|
5
11
|
declare global {
|
|
@@ -29,6 +35,8 @@ declare global {
|
|
|
29
35
|
| 'onUnflagged'
|
|
30
36
|
| 'onFlagCleared';
|
|
31
37
|
|
|
38
|
+
type UserType = `${UserTypeEnum}`;
|
|
39
|
+
|
|
32
40
|
type RawUser = {
|
|
33
41
|
_id: string;
|
|
34
42
|
userId: string;
|
package/src/@types/index.ts
CHANGED
|
@@ -37,7 +37,9 @@ export const getCategory = async (
|
|
|
37
37
|
const { categories } = data;
|
|
38
38
|
|
|
39
39
|
return {
|
|
40
|
-
data: LinkedObject.category(
|
|
40
|
+
data: LinkedObject.category(
|
|
41
|
+
(categories ?? []).find(category => category.categoryId === categoryId)!,
|
|
42
|
+
),
|
|
41
43
|
cachedAt,
|
|
42
44
|
};
|
|
43
45
|
};
|
|
@@ -3,7 +3,6 @@ import { getActiveClient } from '~/client/api';
|
|
|
3
3
|
/* begin_public_function
|
|
4
4
|
id: channel.unmute
|
|
5
5
|
*/
|
|
6
|
-
const CHANNEL_UNMUTE_PERIOD = 0;
|
|
7
6
|
/**
|
|
8
7
|
* ```js
|
|
9
8
|
* import { ChannelRepository } from '@amityco/ts-sdk'
|
|
@@ -18,15 +17,14 @@ const CHANNEL_UNMUTE_PERIOD = 0;
|
|
|
18
17
|
* @category Channel API
|
|
19
18
|
* @async
|
|
20
19
|
*/
|
|
20
|
+
const CHANNEL_UNMUTE_PERIOD = 0; // Setting mute period as 0 is the same as unmuting the channel
|
|
21
|
+
|
|
21
22
|
export const unmuteChannel = async (channelId: Amity.Channel['channelId']): Promise<boolean> => {
|
|
22
23
|
const client = getActiveClient();
|
|
23
24
|
client.log('channel/unmuteChannel', channelId);
|
|
24
25
|
|
|
25
26
|
const { data } = await client.http.put<{ success: boolean }>(
|
|
26
27
|
`/api/v2/channel/${encodeURIComponent(channelId)}/mute`,
|
|
27
|
-
/*
|
|
28
|
-
* Setting mute period as 0 is the same as unmuting the channel
|
|
29
|
-
*/
|
|
30
28
|
{ mutePeriod: CHANNEL_UNMUTE_PERIOD },
|
|
31
29
|
);
|
|
32
30
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ASCApiError } from '~/core/errors';
|
|
2
|
+
import { pullFromCache } from '~/cache/api/pullFromCache';
|
|
3
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* get membership of user in a channel from cache
|
|
8
|
+
*
|
|
9
|
+
* @returns the {@link Amity.Membership<'channel'>} objects
|
|
10
|
+
*
|
|
11
|
+
* @category Channel API
|
|
12
|
+
* @async
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
type GetMembershipParams = {
|
|
16
|
+
channelId: string;
|
|
17
|
+
userId: Amity.User['userId'];
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const getMembership = ({
|
|
21
|
+
channelId,
|
|
22
|
+
userId,
|
|
23
|
+
}: GetMembershipParams): Amity.Cached<Amity.Membership<'channel'>> => {
|
|
24
|
+
const client = getActiveClient();
|
|
25
|
+
client.log('channel/getMembership.locally');
|
|
26
|
+
|
|
27
|
+
const cacheChannelUser = pullFromCache<Amity.Membership<'channel'>>([
|
|
28
|
+
'channelUsers',
|
|
29
|
+
'get',
|
|
30
|
+
`${channelId}#${userId}`,
|
|
31
|
+
]);
|
|
32
|
+
|
|
33
|
+
if (!cacheChannelUser) {
|
|
34
|
+
throw new ASCApiError(
|
|
35
|
+
'Item not found!',
|
|
36
|
+
Amity.ServerError.ITEM_NOT_FOUND,
|
|
37
|
+
Amity.ErrorLevel.ERROR,
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return {
|
|
42
|
+
data: cacheChannelUser.data,
|
|
43
|
+
cachedAt: cacheChannelUser.cachedAt,
|
|
44
|
+
};
|
|
45
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { getMembership as _getMembership } from '../internalApi/getMembership';
|
|
2
|
+
import { ASCApiError } from '~/core/errors';
|
|
3
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
4
|
+
import { isEqual } from '~/utils/isEqual';
|
|
5
|
+
import { createQuery, runQuery } from '~/core/query';
|
|
6
|
+
import {
|
|
7
|
+
UNSYNCED_OBJECT_CACHED_AT_MESSAGE,
|
|
8
|
+
UNSYNCED_OBJECT_CACHED_AT_VALUE,
|
|
9
|
+
} from '~/utils/constants';
|
|
10
|
+
import { channelMemberLinkedObject } from '~/utils/linkedObject/channelMemberLinkedObject';
|
|
11
|
+
import { onChannelMemberBanned, onChannelMemberUnbanned } from '../events';
|
|
12
|
+
import { onChannelSetUserMuted } from '../events/onChannelSetUserMuted';
|
|
13
|
+
|
|
14
|
+
type GetMembership = {
|
|
15
|
+
channelId: string;
|
|
16
|
+
userId: Amity.User['userId'];
|
|
17
|
+
callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const getMembership = ({
|
|
21
|
+
channelId,
|
|
22
|
+
userId,
|
|
23
|
+
callback,
|
|
24
|
+
}: GetMembership): Amity.Unsubscriber => {
|
|
25
|
+
const { log, cache } = getActiveClient();
|
|
26
|
+
|
|
27
|
+
if (!cache) {
|
|
28
|
+
console.log('This observable object need the cache data!');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const timestamp = Date.now();
|
|
32
|
+
log(`liveMembership(tmpid: ${timestamp}) > listen`);
|
|
33
|
+
|
|
34
|
+
const disposers: Amity.Unsubscriber[] = [];
|
|
35
|
+
|
|
36
|
+
let isUnsyncedModel = false;
|
|
37
|
+
|
|
38
|
+
let model: Amity.Membership<'channel'> | undefined;
|
|
39
|
+
|
|
40
|
+
const dispatcher = (data: Amity.LiveObject<Amity.Membership<'channel'> | undefined>) => {
|
|
41
|
+
callback({ ...data, data: data.data ? channelMemberLinkedObject(data.data) : data.data });
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const realtimeRouter = (_: Amity.StaticInternalChannel, __: Amity.RawMembership<'channel'>) => {
|
|
45
|
+
const { data } = _getMembership({ channelId, userId });
|
|
46
|
+
|
|
47
|
+
if (isEqual(model, data)) return;
|
|
48
|
+
|
|
49
|
+
dispatcher({ loading: false, data });
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const onFetch = () => {
|
|
53
|
+
const query = createQuery(async () => _getMembership({ channelId, userId }));
|
|
54
|
+
|
|
55
|
+
runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
|
|
56
|
+
if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
|
|
57
|
+
dispatcher({
|
|
58
|
+
data,
|
|
59
|
+
origin,
|
|
60
|
+
loading: false,
|
|
61
|
+
error: new ASCApiError(
|
|
62
|
+
UNSYNCED_OBJECT_CACHED_AT_MESSAGE,
|
|
63
|
+
Amity.ClientError.DISALOOW_UNSYNCED_OBJECT,
|
|
64
|
+
Amity.ErrorLevel.ERROR,
|
|
65
|
+
),
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
isUnsyncedModel = true;
|
|
69
|
+
disposers.forEach(fn => fn());
|
|
70
|
+
} else if (!isUnsyncedModel) {
|
|
71
|
+
dispatcher({ loading, data, origin, error });
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (error) {
|
|
75
|
+
disposers.forEach(fn => fn());
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
disposers.push(onChannelMemberBanned(realtimeRouter));
|
|
81
|
+
disposers.push(onChannelMemberUnbanned(realtimeRouter));
|
|
82
|
+
disposers.push(onChannelSetUserMuted(realtimeRouter));
|
|
83
|
+
|
|
84
|
+
onFetch();
|
|
85
|
+
|
|
86
|
+
return () => {
|
|
87
|
+
disposers.forEach(fn => fn());
|
|
88
|
+
};
|
|
89
|
+
};
|
|
@@ -3,11 +3,7 @@ import { VERSION } from '~/version';
|
|
|
3
3
|
import { createLogger } from '~/core/debug';
|
|
4
4
|
|
|
5
5
|
import { API_REGIONS, computeUrl } from '~/client/utils/endpoints';
|
|
6
|
-
import {
|
|
7
|
-
createHttpTransport,
|
|
8
|
-
createMqttTransport,
|
|
9
|
-
createWebsocketTransport,
|
|
10
|
-
} from '~/core/transports';
|
|
6
|
+
import { createHttpTransport, createMqttTransport } from '~/core/transports';
|
|
11
7
|
|
|
12
8
|
import { createEventEmitter } from '~/core/events';
|
|
13
9
|
|
|
@@ -21,6 +17,7 @@ import { getFeedSettings } from './getFeedSettings';
|
|
|
21
17
|
|
|
22
18
|
import { accessTokenExpiryWatcher } from './accessTokenExpiryWatcher';
|
|
23
19
|
import { getMarkerSyncConsistentMode } from '../utils/markerSyncEngine';
|
|
20
|
+
import { getDeviceId } from '~/core/device';
|
|
24
21
|
|
|
25
22
|
const DEFAULT_DEBUG_SESSION = 'amity';
|
|
26
23
|
|
|
@@ -121,6 +118,7 @@ export const createClient = (
|
|
|
121
118
|
validateTexts,
|
|
122
119
|
getFeedSettings,
|
|
123
120
|
getSocialSettings,
|
|
121
|
+
getVisitorDeviceId: getDeviceId,
|
|
124
122
|
getMessagePreviewSetting,
|
|
125
123
|
|
|
126
124
|
use: () => setActiveClient(client),
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { getActiveClient } from './activeClient';
|
|
2
|
+
|
|
3
|
+
import { getDeviceInfo } from '~/core/device';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Retrieves a pair of {@link Amity.Tokens} necessary for connection
|
|
7
|
+
*
|
|
8
|
+
* @param param get bot token param
|
|
9
|
+
* @param params.deviceId The user's device Id (can be manually set for native users)
|
|
10
|
+
* @param options get bot token options
|
|
11
|
+
* @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
|
|
12
|
+
* @return The accessToken for the given userId
|
|
13
|
+
*
|
|
14
|
+
* @category Client API
|
|
15
|
+
* @hidden
|
|
16
|
+
*/
|
|
17
|
+
export const getBotToken = async ({
|
|
18
|
+
params,
|
|
19
|
+
options,
|
|
20
|
+
}: {
|
|
21
|
+
params: { deviceId: string };
|
|
22
|
+
options?: { setAccessTokenCookie?: boolean };
|
|
23
|
+
}) => {
|
|
24
|
+
const client = getActiveClient();
|
|
25
|
+
client.log('client/api/getBotToken');
|
|
26
|
+
|
|
27
|
+
const deviceInfo = getDeviceInfo();
|
|
28
|
+
|
|
29
|
+
const { data } = await client.http.post<Amity.SessionResponse>(
|
|
30
|
+
'/api/v5/sessions/bot',
|
|
31
|
+
{
|
|
32
|
+
...params,
|
|
33
|
+
deviceInfo,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
headers: {
|
|
37
|
+
'X-API-Key': client.apiKey,
|
|
38
|
+
'set-access-token-cookie': options?.setAccessTokenCookie || false,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
return data;
|
|
44
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ASCError } from '~/core/errors';
|
|
2
|
+
import { getActiveClient } from './activeClient';
|
|
3
|
+
import { pullFromCache } from '~/cache/api';
|
|
4
|
+
import { userLinkedObject } from '~/utils/linkedObject/userLinkedObject';
|
|
5
|
+
|
|
6
|
+
/* begin_public_function
|
|
7
|
+
id: client.get_current_user
|
|
8
|
+
*/
|
|
9
|
+
export const getCurrentUser = (): Amity.User => {
|
|
10
|
+
const client = getActiveClient();
|
|
11
|
+
|
|
12
|
+
if (!client) {
|
|
13
|
+
throw new ASCError(
|
|
14
|
+
'Connect client first',
|
|
15
|
+
Amity.ClientError.UNKNOWN_ERROR,
|
|
16
|
+
Amity.ErrorLevel.FATAL,
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const cache = pullFromCache<Amity.User>(['user', 'get', client.userId])?.data!;
|
|
21
|
+
|
|
22
|
+
if (!cache) {
|
|
23
|
+
throw new ASCError(
|
|
24
|
+
'Connect client first',
|
|
25
|
+
Amity.ClientError.UNKNOWN_ERROR,
|
|
26
|
+
Amity.ErrorLevel.FATAL,
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return userLinkedObject(cache);
|
|
31
|
+
};
|
|
32
|
+
/* end_public_function */
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ASCError } from '~/core/errors';
|
|
2
|
+
|
|
3
|
+
let currentUserType: Amity.UserType | null = null;
|
|
4
|
+
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: client.get_current_user_type
|
|
7
|
+
*/
|
|
8
|
+
export const getCurrentUserType = () => {
|
|
9
|
+
if (!currentUserType) {
|
|
10
|
+
throw new ASCError(
|
|
11
|
+
'Connect client first',
|
|
12
|
+
Amity.ClientError.UNKNOWN_ERROR,
|
|
13
|
+
Amity.ErrorLevel.FATAL,
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return currentUserType!;
|
|
18
|
+
};
|
|
19
|
+
/* end_public_function */
|
|
20
|
+
|
|
21
|
+
export const setCurrentUserType = (userType: Amity.UserType) => {
|
|
22
|
+
currentUserType = userType;
|
|
23
|
+
};
|
|
@@ -31,7 +31,7 @@ export const getToken = async ({
|
|
|
31
31
|
|
|
32
32
|
const deviceInfo = getDeviceInfo();
|
|
33
33
|
|
|
34
|
-
const { data } = await client.http.post<Amity.
|
|
34
|
+
const { data } = await client.http.post<Amity.SessionResponse>(
|
|
35
35
|
'/api/v5/sessions',
|
|
36
36
|
{
|
|
37
37
|
...params,
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { getActiveClient } from './activeClient';
|
|
2
|
+
|
|
3
|
+
import { getDeviceInfo } from '~/core/device';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Retrieves a pair of {@link Amity.Tokens} necessary for connection
|
|
7
|
+
*
|
|
8
|
+
* @param params get visitor token param
|
|
9
|
+
* @param params.deviceId The user's device Id (can be manually set for native users)
|
|
10
|
+
* @param params.authSignature The authenitcation signature - necessary when network option is set to secure
|
|
11
|
+
* @param params.authSignatureExpiresAt Expire time of the authenitcation signature
|
|
12
|
+
* @param options get bot token options
|
|
13
|
+
* @param options.setAccessTokenCookie The authentication token - necessary when network option is set to secure
|
|
14
|
+
* @return The accessToken for the given userId
|
|
15
|
+
*
|
|
16
|
+
*
|
|
17
|
+
* @category Client API
|
|
18
|
+
* @hidden
|
|
19
|
+
*/
|
|
20
|
+
export const getVisitorToken = async ({
|
|
21
|
+
params,
|
|
22
|
+
options,
|
|
23
|
+
}: {
|
|
24
|
+
params: Amity.ConnectClientAsVisitorParams & { deviceId: string };
|
|
25
|
+
options?: { setAccessTokenCookie?: boolean };
|
|
26
|
+
}) => {
|
|
27
|
+
const client = getActiveClient();
|
|
28
|
+
client.log('client/api/getVisitorToken', params);
|
|
29
|
+
|
|
30
|
+
const deviceInfo = getDeviceInfo();
|
|
31
|
+
|
|
32
|
+
const { data } = await client.http.post<Amity.SessionResponse>(
|
|
33
|
+
'/api/v5/sessions/visitor',
|
|
34
|
+
{
|
|
35
|
+
...params,
|
|
36
|
+
deviceInfo,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
headers: {
|
|
40
|
+
'X-API-Key': client.apiKey,
|
|
41
|
+
'set-access-token-cookie': options?.setAccessTokenCookie || false,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
return data;
|
|
47
|
+
};
|
package/src/client/api/index.ts
CHANGED
|
@@ -25,3 +25,9 @@ export * from './fetchLinkPreview';
|
|
|
25
25
|
export * from './getSocialSettings';
|
|
26
26
|
|
|
27
27
|
export * from './getShareableLinkConfiguration';
|
|
28
|
+
|
|
29
|
+
export * from './loginAsVisitor';
|
|
30
|
+
export * from './loginAsBot';
|
|
31
|
+
|
|
32
|
+
export * from './getCurrentUser';
|
|
33
|
+
export * from './getCurrentUserType';
|
package/src/client/api/login.ts
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';
|
|
3
3
|
/* eslint-disable require-atomic-updates */
|
|
4
4
|
import { getDeviceId } from '~/core/device';
|
|
5
|
-
import { proxyWebsocketEvents } from '~/core/events';
|
|
6
5
|
import { onChannelDeleted } from '~/channelRepository/events/onChannelDeleted';
|
|
7
6
|
import { onChannelMemberBanned } from '~/channelRepository/events/onChannelMemberBanned';
|
|
8
7
|
|
|
@@ -29,6 +28,8 @@ import { removeChannelMarkerCache } from '../utils/removeChannelMarkerCache';
|
|
|
29
28
|
import { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';
|
|
30
29
|
import { ASCError } from '~/core/errors';
|
|
31
30
|
import SessionWatcher from '../utils/SessionWatcher';
|
|
31
|
+
import { setCurrentUserType } from './getCurrentUserType';
|
|
32
|
+
import { setCurrentUser } from '../utils/setCurrentUser';
|
|
32
33
|
|
|
33
34
|
/*
|
|
34
35
|
* declared earlier to accomodate case when logging in with a different user
|
|
@@ -91,7 +92,7 @@ export const login = async (
|
|
|
91
92
|
const defaultDeviceId = await getDeviceId();
|
|
92
93
|
|
|
93
94
|
try {
|
|
94
|
-
const { users } = await setClientToken({
|
|
95
|
+
const { users, userType } = await setClientToken({
|
|
95
96
|
params: {
|
|
96
97
|
...params,
|
|
97
98
|
displayName: params?.displayName,
|
|
@@ -117,7 +118,7 @@ export const login = async (
|
|
|
117
118
|
return false;
|
|
118
119
|
}
|
|
119
120
|
|
|
120
|
-
if (user.
|
|
121
|
+
if (user.isGlobalBan) {
|
|
121
122
|
terminateClient(Amity.TokenTerminationReason.GLOBAL_BAN);
|
|
122
123
|
return false;
|
|
123
124
|
}
|
|
@@ -132,7 +133,7 @@ export const login = async (
|
|
|
132
133
|
*/
|
|
133
134
|
unsubWatcher = client.accessTokenExpiryWatcher(sessionHandler);
|
|
134
135
|
|
|
135
|
-
|
|
136
|
+
setCurrentUser({ user, userType });
|
|
136
137
|
} catch (error) {
|
|
137
138
|
/*
|
|
138
139
|
* if getting token failed session state reverts to initial state when app
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/* eslint-disable no-param-reassign */
|
|
2
|
+
import { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';
|
|
3
|
+
/* eslint-disable require-atomic-updates */
|
|
4
|
+
import { getDeviceId } from '~/core/device';
|
|
5
|
+
import { logout } from './logout';
|
|
6
|
+
|
|
7
|
+
import { getActiveClient } from './activeClient';
|
|
8
|
+
import { terminateClient } from './terminateClient';
|
|
9
|
+
import { setActiveUser } from './activeUser';
|
|
10
|
+
|
|
11
|
+
import { onTokenExpired } from '../events/onTokenExpired';
|
|
12
|
+
import { onTokenTerminated } from '../events/onTokenTerminated';
|
|
13
|
+
import { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';
|
|
14
|
+
|
|
15
|
+
import SessionWatcher from '../utils/SessionWatcher';
|
|
16
|
+
import { setBotClientToken } from '../utils/setBotClientToken';
|
|
17
|
+
import { setCurrentUser } from '../utils/setCurrentUser';
|
|
18
|
+
|
|
19
|
+
/*
|
|
20
|
+
* declared earlier to accomodate case when logging in with a different user
|
|
21
|
+
* than the one already connected, in which case the existing subscriptions need
|
|
22
|
+
* to be cleared
|
|
23
|
+
*/
|
|
24
|
+
const subscriptions: Amity.Unsubscriber[] = [];
|
|
25
|
+
|
|
26
|
+
/* begin_public_function
|
|
27
|
+
id: client.loginAsBot
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* ```js
|
|
31
|
+
* import { loginAsBot } from '@amityco/ts-sdk/client/api'
|
|
32
|
+
* const success = await loginAsBot({
|
|
33
|
+
sessionHandler: {
|
|
34
|
+
sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
|
|
35
|
+
...
|
|
36
|
+
}
|
|
37
|
+
* })
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* Connects an {@link Amity.Client} instance to ASC servers
|
|
41
|
+
*
|
|
42
|
+
* @param params. the connect parameters
|
|
43
|
+
* @param params.sessionHandler
|
|
44
|
+
* @returns a success boolean if connected
|
|
45
|
+
*
|
|
46
|
+
* @category Client API
|
|
47
|
+
* @async
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
export const loginAsBot = async (params: {
|
|
51
|
+
sessionHandler: Amity.SessionHandler;
|
|
52
|
+
}): Promise<boolean> => {
|
|
53
|
+
const client = getActiveClient();
|
|
54
|
+
let unsubWatcher: Amity.Unsubscriber;
|
|
55
|
+
|
|
56
|
+
client.log('client/api/connectClient', {
|
|
57
|
+
apiKey: client.apiKey,
|
|
58
|
+
sessionState: client.sessionState,
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// generate deviceId
|
|
62
|
+
const deviceId = await getDeviceId();
|
|
63
|
+
let user: Amity.RawUser;
|
|
64
|
+
|
|
65
|
+
try {
|
|
66
|
+
const { users, userType } = await setBotClientToken({
|
|
67
|
+
params: {
|
|
68
|
+
deviceId,
|
|
69
|
+
},
|
|
70
|
+
options: {
|
|
71
|
+
setAccessTokenCookie: true,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
[user] = users;
|
|
76
|
+
|
|
77
|
+
client.userId = user.userId;
|
|
78
|
+
|
|
79
|
+
client.sessionHandler = params.sessionHandler;
|
|
80
|
+
|
|
81
|
+
/*
|
|
82
|
+
* Cannot push to subscriptions as watcher needs to continue working even if
|
|
83
|
+
* token expires
|
|
84
|
+
*/
|
|
85
|
+
unsubWatcher = client.accessTokenExpiryWatcher(params.sessionHandler);
|
|
86
|
+
|
|
87
|
+
setCurrentUser({ user, userType });
|
|
88
|
+
} catch (error) {
|
|
89
|
+
/*
|
|
90
|
+
* if getting token failed session state reverts to initial state when app
|
|
91
|
+
* is first launched
|
|
92
|
+
*/
|
|
93
|
+
SessionWatcher.getInstance().setSessionState(Amity.SessionStates.NOT_LOGGED_IN);
|
|
94
|
+
|
|
95
|
+
// pass error down tree so the calling function handle it
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
await initializeMessagePreviewSetting();
|
|
100
|
+
|
|
101
|
+
if (subscriptions.length === 0) {
|
|
102
|
+
// handling internal SDK events
|
|
103
|
+
subscriptions.push(
|
|
104
|
+
onTokenTerminated(_ => {
|
|
105
|
+
terminateClient();
|
|
106
|
+
|
|
107
|
+
subscriptions.forEach(fn => fn());
|
|
108
|
+
|
|
109
|
+
unsubWatcher();
|
|
110
|
+
}),
|
|
111
|
+
|
|
112
|
+
onTokenExpired(state => {
|
|
113
|
+
SessionWatcher.getInstance().setSessionState(state);
|
|
114
|
+
|
|
115
|
+
logout();
|
|
116
|
+
|
|
117
|
+
subscriptions.forEach(fn => fn());
|
|
118
|
+
}),
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return true;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/* end_public_function */
|