@droppii-org/chat-sdk 0.6.32 → 0.6.33
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/dist/hooks/init/useChatToken.d.ts.map +1 -1
- package/dist/hooks/init/useChatToken.js +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/services/fcm.d.ts +6 -2
- package/dist/services/fcm.d.ts.map +1 -1
- package/dist/services/fcm.js +38 -14
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatToken.d.ts","sourceRoot":"","sources":["../../../src/hooks/init/useChatToken.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useChatToken.d.ts","sourceRoot":"","sources":["../../../src/hooks/init/useChatToken.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB,oFAW5B,CAAC"}
|
|
@@ -2,13 +2,13 @@ import { useMutation } from "@tanstack/react-query";
|
|
|
2
2
|
import { QUERY_KEYS } from "../../services/query";
|
|
3
3
|
import { apiInstance } from "../../services/api";
|
|
4
4
|
import { ENDPOINTS } from "../../services/routes";
|
|
5
|
-
|
|
5
|
+
// The endpoint binds this query param to a Kotlin DevicePlatform enum by NAME,
|
|
6
|
+
// so it takes "WEB"/"IOS"/"ANDROID" rather than the numeric platform id.
|
|
7
|
+
const CHAT_TOKEN_PLATFORM = "WEB";
|
|
6
8
|
export const useRefetchChatToken = () => useMutation({
|
|
7
9
|
mutationKey: [QUERY_KEYS.REFRESH_CHAT_TOKEN],
|
|
8
10
|
mutationFn: async () => {
|
|
9
|
-
const res = await apiInstance.post(ENDPOINTS.chatService.getChatToken, {
|
|
10
|
-
platform: DChatPlatform.Web,
|
|
11
|
-
});
|
|
11
|
+
const res = await apiInstance.post(ENDPOINTS.chatService.getChatToken, undefined, { params: { platform: CHAT_TOKEN_PLATFORM } });
|
|
12
12
|
return res.data;
|
|
13
13
|
},
|
|
14
14
|
});
|
package/dist/index.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export { useDChatAuth } from "./hooks/user/useAuth";
|
|
|
50
50
|
export { useSendMessage } from "./hooks/message/useSendMessage";
|
|
51
51
|
export type { UseSendMessageOptions } from "./hooks/message/useSendMessage";
|
|
52
52
|
export { useUpdateFcmToken } from "./hooks/user/useUpdateFcmToken";
|
|
53
|
-
export { registerFcmToken } from "./services/fcm";
|
|
53
|
+
export { registerFcmToken, unregisterFcmToken, FcmProject, } from "./services/fcm";
|
|
54
54
|
export type { RegisterFcmTokenParams } from "./services/fcm";
|
|
55
55
|
export { useConversationList } from "./hooks/conversation/useConversationList";
|
|
56
56
|
export { useCreateConversation } from "./hooks/conversation/useCreateConversation";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -49,7 +49,7 @@ export { CustomMessageType } from "./types/customMessage";
|
|
|
49
49
|
export { useDChatAuth } from "./hooks/user/useAuth";
|
|
50
50
|
export { useSendMessage } from "./hooks/message/useSendMessage";
|
|
51
51
|
export { useUpdateFcmToken } from "./hooks/user/useUpdateFcmToken";
|
|
52
|
-
export { registerFcmToken } from "./services/fcm";
|
|
52
|
+
export { registerFcmToken, unregisterFcmToken, FcmProject, } from "./services/fcm";
|
|
53
53
|
export { useConversationList } from "./hooks/conversation/useConversationList";
|
|
54
54
|
export { useCreateConversation } from "./hooks/conversation/useCreateConversation";
|
|
55
55
|
export { useMuteConversation, isConversationMuted, } from "./hooks/session/useMuteConversation";
|
package/dist/services/fcm.d.ts
CHANGED
|
@@ -12,8 +12,10 @@ export interface FcmTokenBodyParams {
|
|
|
12
12
|
fcmToken: string;
|
|
13
13
|
userID: string;
|
|
14
14
|
applicationType: DChatApplicationType;
|
|
15
|
+
project?: FcmProject;
|
|
16
|
+
expireTime?: number;
|
|
15
17
|
}
|
|
16
|
-
export declare const buildFcmTokenBody: ({ fcmToken, userID, applicationType, }: FcmTokenBodyParams) => {
|
|
18
|
+
export declare const buildFcmTokenBody: ({ fcmToken, userID, applicationType, project, expireTime, }: FcmTokenBodyParams) => {
|
|
17
19
|
platformID: DChatPlatform;
|
|
18
20
|
fcmToken: string;
|
|
19
21
|
account: string;
|
|
@@ -28,6 +30,8 @@ export interface RegisterFcmTokenParams {
|
|
|
28
30
|
applicationType: DChatApplicationType;
|
|
29
31
|
fcmToken: string;
|
|
30
32
|
chatToken?: string;
|
|
33
|
+
project?: FcmProject;
|
|
31
34
|
}
|
|
32
|
-
export declare const registerFcmToken: ({ apiAddress, accessToken, userID, applicationType, fcmToken, chatToken, }: RegisterFcmTokenParams) => Promise<string>;
|
|
35
|
+
export declare const registerFcmToken: ({ apiAddress, accessToken, userID, applicationType, fcmToken, chatToken, project, }: RegisterFcmTokenParams) => Promise<string>;
|
|
36
|
+
export declare const unregisterFcmToken: ({ apiAddress, accessToken, userID, applicationType, fcmToken, chatToken, project, }: RegisterFcmTokenParams) => Promise<void>;
|
|
33
37
|
//# sourceMappingURL=fcm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fcm.d.ts","sourceRoot":"","sources":["../../src/services/fcm.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;CACZ;AAED,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAC9C,oBAAoB,EACpB,UAAU,CAKX,CAAC;
|
|
1
|
+
{"version":3,"file":"fcm.d.ts","sourceRoot":"","sources":["../../src/services/fcm.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;CACZ;AAED,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAC9C,oBAAoB,EACpB,UAAU,CAKX,CAAC;AAUF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,oBAAoB,CAAC;IAGtC,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,GAAI,6DAM/B,kBAAkB;;;;;;CAOnB,CAAC;AAEH,eAAO,MAAM,YAAY,GACvB,QAAQ,aAAa,EACrB,QAAQ,kBAAkB,EAC1B,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,uEAW/B,CAAC;AAEJ,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,oBAAoB,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AA4BD,eAAO,MAAM,gBAAgB,GAAU,qFAQpC,sBAAsB,oBAWxB,CAAC;AAMF,eAAO,MAAM,kBAAkB,GAAU,qFAQtC,sBAAsB,kBAexB,CAAC"}
|
package/dist/services/fcm.js
CHANGED
|
@@ -14,33 +14,57 @@ export const applicationTypeToFcmProject = {
|
|
|
14
14
|
[DChatApplicationType.OBEFE]: FcmProject.Crm,
|
|
15
15
|
[DChatApplicationType.MALL]: FcmProject.Cus,
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
// The chat-token endpoint binds this query param to a Kotlin DevicePlatform enum
|
|
18
|
+
// by NAME, so it takes "WEB"/"IOS"/"ANDROID", not the numeric platform id below.
|
|
19
|
+
const CHAT_TOKEN_PLATFORM = "WEB";
|
|
20
|
+
// The server expects a relative TTL in seconds and multiplies it by time.Second;
|
|
21
|
+
// an absolute epoch-ms timestamp overflows that into a negative Redis EXPIRE.
|
|
22
|
+
const FCM_TOKEN_EXPIRE_SECONDS = 7 * 24 * 60 * 60;
|
|
23
|
+
export const buildFcmTokenBody = ({ fcmToken, userID, applicationType, project, expireTime, }) => {
|
|
18
24
|
var _a;
|
|
19
25
|
return ({
|
|
20
26
|
platformID: DChatPlatform.Web,
|
|
21
27
|
fcmToken,
|
|
22
28
|
account: userID || "",
|
|
23
|
-
expireTime:
|
|
24
|
-
project: (_a = applicationTypeToFcmProject[applicationType]) !== null && _a !== void 0 ? _a : FcmProject.Crm,
|
|
29
|
+
expireTime: expireTime !== null && expireTime !== void 0 ? expireTime : FCM_TOKEN_EXPIRE_SECONDS,
|
|
30
|
+
project: (_a = project !== null && project !== void 0 ? project : applicationTypeToFcmProject[applicationType]) !== null && _a !== void 0 ? _a : FcmProject.Crm,
|
|
25
31
|
});
|
|
26
32
|
};
|
|
27
33
|
export const postFcmToken = (client, params, headers) => client.post(ENDPOINTS.chatService.uploadFcmToken, buildFcmTokenBody(params), {
|
|
28
34
|
headers: Object.assign({ operationID: `fcm_update_${dayjs().valueOf()}` }, headers),
|
|
29
35
|
});
|
|
30
|
-
|
|
36
|
+
const createFcmClient = (apiAddress, accessToken) => axios.create({
|
|
37
|
+
baseURL: apiAddress,
|
|
38
|
+
headers: { Authorization: `Bearer ${accessToken}` },
|
|
39
|
+
});
|
|
40
|
+
const resolveChatToken = async (client, chatToken) => {
|
|
31
41
|
var _a, _b;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
let token = chatToken;
|
|
37
|
-
if (!token) {
|
|
38
|
-
const res = await client.post(ENDPOINTS.chatService.getChatToken, { platform: DChatPlatform.Web });
|
|
39
|
-
token = (_b = (_a = res.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.token;
|
|
40
|
-
}
|
|
42
|
+
if (chatToken)
|
|
43
|
+
return chatToken;
|
|
44
|
+
const res = await client.post(ENDPOINTS.chatService.getChatToken, undefined, { params: { platform: CHAT_TOKEN_PLATFORM } });
|
|
45
|
+
const token = (_b = (_a = res.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.token;
|
|
41
46
|
if (!token) {
|
|
42
47
|
throw new Error("Unable to resolve chat token for FCM registration");
|
|
43
48
|
}
|
|
44
|
-
await postFcmToken(client, { fcmToken, userID, applicationType }, { token });
|
|
45
49
|
return token;
|
|
46
50
|
};
|
|
51
|
+
export const registerFcmToken = async ({ apiAddress, accessToken, userID, applicationType, fcmToken, chatToken, project, }) => {
|
|
52
|
+
const client = createFcmClient(apiAddress, accessToken);
|
|
53
|
+
const token = await resolveChatToken(client, chatToken);
|
|
54
|
+
await postFcmToken(client, { fcmToken, userID, applicationType, project }, { token });
|
|
55
|
+
return token;
|
|
56
|
+
};
|
|
57
|
+
// The server rejects an empty fcmToken and exposes no HTTP route for deleting
|
|
58
|
+
// one, so expiring the account's token set is the only way to stop delivery.
|
|
59
|
+
const FCM_TOKEN_UNREGISTER_EXPIRE_SECONDS = 1;
|
|
60
|
+
export const unregisterFcmToken = async ({ apiAddress, accessToken, userID, applicationType, fcmToken, chatToken, project, }) => {
|
|
61
|
+
const client = createFcmClient(apiAddress, accessToken);
|
|
62
|
+
const token = await resolveChatToken(client, chatToken);
|
|
63
|
+
await postFcmToken(client, {
|
|
64
|
+
fcmToken,
|
|
65
|
+
userID,
|
|
66
|
+
applicationType,
|
|
67
|
+
project,
|
|
68
|
+
expireTime: FCM_TOKEN_UNREGISTER_EXPIRE_SECONDS,
|
|
69
|
+
}, { token });
|
|
70
|
+
};
|