@viewberapp/chat 0.0.36 → 0.0.37
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/API.d.ts +10 -0
- package/dist/API.js +16 -0
- package/dist/API.js.map +1 -1
- package/dist/CachedChat.d.ts +5 -7
- package/dist/CachedChat.js +13 -89
- package/dist/CachedChat.js.map +1 -1
- package/dist/Chat.d.ts +3 -9
- package/dist/Chat.js +73 -43
- package/dist/Chat.js.map +1 -1
- package/dist/ChatError.d.ts +1 -1
- package/dist/ChatSubscription.d.ts +8 -0
- package/dist/ChatSubscription.js +10 -0
- package/dist/ChatSubscription.js.map +1 -1
- package/dist/logger/index.d.ts +1 -1
- package/package.json +2 -2
package/dist/API.d.ts
CHANGED
|
@@ -5,9 +5,17 @@ export interface ConstructApiParams {
|
|
|
5
5
|
axios: AxiosInstance;
|
|
6
6
|
jwtToken?: string;
|
|
7
7
|
getChatMessagesRoute: (chatId: number) => string;
|
|
8
|
+
getChatAblyTokenRoute: () => string;
|
|
8
9
|
getChatStoreMessageRoute: (chatId: number) => string;
|
|
9
10
|
getChatForAppointmentRoute: (appointmentId: number) => string;
|
|
10
11
|
}
|
|
12
|
+
export declare type GetAblyTokenReturnValue = {
|
|
13
|
+
token: Record<any, any>;
|
|
14
|
+
error?: undefined;
|
|
15
|
+
} | {
|
|
16
|
+
token?: undefined;
|
|
17
|
+
error: ChatError;
|
|
18
|
+
};
|
|
11
19
|
export declare type StoreMessageReturnValue = {
|
|
12
20
|
message: Message;
|
|
13
21
|
error?: undefined;
|
|
@@ -33,9 +41,11 @@ export default class API {
|
|
|
33
41
|
private axios;
|
|
34
42
|
private jwtToken?;
|
|
35
43
|
private getChatMessagesRoute;
|
|
44
|
+
private getChatAblyTokenRoute;
|
|
36
45
|
private getChatStoreMessageRoute;
|
|
37
46
|
private getChatForAppointmentRoute;
|
|
38
47
|
constructor(params: ConstructApiParams);
|
|
48
|
+
getAblyToken: (chats: number[]) => Promise<GetAblyTokenReturnValue>;
|
|
39
49
|
storeMessage: (chatId: number, message: string) => Promise<StoreMessageReturnValue>;
|
|
40
50
|
getLatestMessages: (chatId: number) => Promise<GetLatestMessagesReturnValue>;
|
|
41
51
|
getChatIdFromAppointmentId: (appointmentId: number) => Promise<GetChatIdFromAppointmentIdReturnValue>;
|
package/dist/API.js
CHANGED
|
@@ -7,6 +7,21 @@ const axios_1 = __importDefault(require("axios"));
|
|
|
7
7
|
const Message_1 = __importDefault(require("./Message"));
|
|
8
8
|
class API {
|
|
9
9
|
constructor(params) {
|
|
10
|
+
this.getAblyToken = (chats) => new Promise((resolve, reject) => {
|
|
11
|
+
this.axios.post(this.getChatAblyTokenRoute(), {
|
|
12
|
+
chats
|
|
13
|
+
}, {
|
|
14
|
+
headers: this.constructHeaders(),
|
|
15
|
+
}).then(response => {
|
|
16
|
+
resolve({ token: response.data });
|
|
17
|
+
}).catch(err => {
|
|
18
|
+
var _a;
|
|
19
|
+
if (axios_1.default.isAxiosError(err) && ((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
|
|
20
|
+
resolve({ error: { code: 'unauthorized' } });
|
|
21
|
+
}
|
|
22
|
+
resolve({ error: { code: 'error' } });
|
|
23
|
+
});
|
|
24
|
+
});
|
|
10
25
|
this.storeMessage = (chatId, message) => new Promise((resolve, reject) => {
|
|
11
26
|
this.axios.post(this.getChatStoreMessageRoute(chatId), { message }, {
|
|
12
27
|
headers: this.constructHeaders(),
|
|
@@ -73,6 +88,7 @@ class API {
|
|
|
73
88
|
this.axios = params.axios;
|
|
74
89
|
this.jwtToken = params.jwtToken;
|
|
75
90
|
this.getChatMessagesRoute = params.getChatMessagesRoute;
|
|
91
|
+
this.getChatAblyTokenRoute = params.getChatAblyTokenRoute;
|
|
76
92
|
this.getChatStoreMessageRoute = params.getChatStoreMessageRoute;
|
|
77
93
|
this.getChatForAppointmentRoute = params.getChatForAppointmentRoute;
|
|
78
94
|
}
|
package/dist/API.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"API.js","sourceRoot":"","sources":["../src/API.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;
|
|
1
|
+
{"version":3,"file":"API.js","sourceRoot":"","sources":["../src/API.ts"],"names":[],"mappings":"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"}
|
package/dist/CachedChat.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Ably from 'ably';
|
|
2
2
|
import API from "./API";
|
|
3
3
|
import { Logger } from "./logger";
|
|
4
4
|
import OnlineUser from "./OnlineUser";
|
|
5
5
|
import PendingMessage from "./PendingMessage";
|
|
6
6
|
import ChatSubscription from "./ChatSubscription";
|
|
7
7
|
import Message from "./Message";
|
|
8
|
+
import { ChatConnectionStatus } from './Chat';
|
|
8
9
|
export interface CachedChatParams {
|
|
9
10
|
id: number;
|
|
10
11
|
api: API;
|
|
11
|
-
channel:
|
|
12
|
+
channel: Ably.Types.RealtimeChannelCallbacks;
|
|
12
13
|
logger: Logger;
|
|
13
|
-
leave: () => void;
|
|
14
14
|
}
|
|
15
15
|
export declare type Messages = (Message | PendingMessage)[];
|
|
16
16
|
export default class CachedChat {
|
|
@@ -21,8 +21,7 @@ export default class CachedChat {
|
|
|
21
21
|
private subscriptions;
|
|
22
22
|
private channel;
|
|
23
23
|
private logger;
|
|
24
|
-
|
|
25
|
-
constructor({ id, api, channel, logger, leave }: CachedChatParams);
|
|
24
|
+
constructor({ id, api, channel, logger }: CachedChatParams);
|
|
26
25
|
sendMessage(message: string): Promise<void>;
|
|
27
26
|
getLatestMessages(): void;
|
|
28
27
|
addMessage(message: Message | PendingMessage): void;
|
|
@@ -31,6 +30,5 @@ export default class CachedChat {
|
|
|
31
30
|
cancelSubscription(subscription: ChatSubscription): void;
|
|
32
31
|
cancelAllSubscriptions(): void;
|
|
33
32
|
private fireMessagesEventOnEachActiveSubscription;
|
|
34
|
-
|
|
35
|
-
cancelAllSubscriptionsAndLeave(): void;
|
|
33
|
+
onConnectionStatusChange(status: ChatConnectionStatus): void;
|
|
36
34
|
}
|
package/dist/CachedChat.js
CHANGED
|
@@ -1,37 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
6
|
const uuid_1 = require("uuid");
|
|
30
|
-
const OnlineUser_1 = __importDefault(require("./OnlineUser"));
|
|
31
7
|
const PendingMessage_1 = __importDefault(require("./PendingMessage"));
|
|
32
|
-
const Message_1 =
|
|
8
|
+
const Message_1 = require("./Message");
|
|
33
9
|
class CachedChat {
|
|
34
|
-
constructor({ id, api, channel, logger
|
|
10
|
+
constructor({ id, api, channel, logger }) {
|
|
35
11
|
this.id = id;
|
|
36
12
|
this.api = api;
|
|
37
13
|
this.messages = [];
|
|
@@ -39,63 +15,11 @@ class CachedChat {
|
|
|
39
15
|
this.subscriptions = [];
|
|
40
16
|
this.channel = channel;
|
|
41
17
|
this.logger = logger;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
first_name: user.first_name
|
|
48
|
-
}));
|
|
49
|
-
this.onlineUsers = onlineUsers;
|
|
50
|
-
this.subscriptions.forEach((subscription) => {
|
|
51
|
-
subscription.fireEventIfActive('here', {
|
|
52
|
-
users: onlineUsers.concat()
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
})
|
|
56
|
-
.joining((user) => {
|
|
57
|
-
const onlineUser = new OnlineUser_1.default({
|
|
58
|
-
id: user.id,
|
|
59
|
-
first_name: user.first_name
|
|
60
|
-
});
|
|
61
|
-
const onlineUsers = this.onlineUsers.concat([onlineUser]);
|
|
62
|
-
this.onlineUsers = onlineUsers;
|
|
63
|
-
this.subscriptions.forEach((subscription) => {
|
|
64
|
-
subscription.fireEventIfActive('userJoining', {
|
|
65
|
-
user: onlineUser,
|
|
66
|
-
users: onlineUsers.concat()
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
})
|
|
70
|
-
.leaving((user) => {
|
|
71
|
-
const onlineUser = new OnlineUser_1.default({
|
|
72
|
-
id: user.id,
|
|
73
|
-
first_name: user.first_name
|
|
74
|
-
});
|
|
75
|
-
const onlineUsers = this.onlineUsers.filter(u => {
|
|
76
|
-
return u.id !== onlineUser.id;
|
|
77
|
-
});
|
|
78
|
-
this.onlineUsers = onlineUsers;
|
|
79
|
-
this.subscriptions.forEach((subscription) => {
|
|
80
|
-
subscription.fireEventIfActive('userLeaving', {
|
|
81
|
-
user: onlineUser,
|
|
82
|
-
users: onlineUsers.concat()
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
})
|
|
86
|
-
.listen('.chat.message.created', (event) => {
|
|
87
|
-
this.addMessage(new Message_1.default({
|
|
88
|
-
id: event.id,
|
|
89
|
-
chatId: event.chat_id,
|
|
90
|
-
message: event.message,
|
|
91
|
-
senderId: event.sender_id,
|
|
92
|
-
sender: event.sender,
|
|
93
|
-
isAdminMessage: event.is_admin_message
|
|
94
|
-
}));
|
|
95
|
-
this.fireMessagesEventOnEachActiveSubscription();
|
|
96
|
-
})
|
|
97
|
-
.error((error) => {
|
|
98
|
-
console.error(error);
|
|
18
|
+
channel.subscribe((message) => {
|
|
19
|
+
this.logger.debug('channel.subscribe', message);
|
|
20
|
+
});
|
|
21
|
+
channel.presence.enter(undefined, (error) => {
|
|
22
|
+
this.logger.debug('channel.presence.enter error', error);
|
|
99
23
|
});
|
|
100
24
|
}
|
|
101
25
|
sendMessage(message) {
|
|
@@ -179,12 +103,12 @@ class CachedChat {
|
|
|
179
103
|
subscription.fireEventIfActive('messages', { messages: this.messages.concat() });
|
|
180
104
|
});
|
|
181
105
|
}
|
|
182
|
-
|
|
183
|
-
this.
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
106
|
+
onConnectionStatusChange(status) {
|
|
107
|
+
this.subscriptions.forEach(s => {
|
|
108
|
+
if (s.getStatus() === 'active') {
|
|
109
|
+
s.setConnectionStatus(status);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
188
112
|
}
|
|
189
113
|
}
|
|
190
114
|
exports.default = CachedChat;
|
package/dist/CachedChat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CachedChat.js","sourceRoot":"","sources":["../src/CachedChat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CachedChat.js","sourceRoot":"","sources":["../src/CachedChat.ts"],"names":[],"mappings":"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"}
|
package/dist/Chat.d.ts
CHANGED
|
@@ -7,17 +7,12 @@ export interface ChatOptions {
|
|
|
7
7
|
axios: AxiosInstance;
|
|
8
8
|
logger?: Logger;
|
|
9
9
|
jwtToken?: string;
|
|
10
|
-
constructPusher: (config: ConstructPusherConfig) => any;
|
|
11
10
|
getChatMessagesRoute: (chatId: number) => string;
|
|
11
|
+
getChatAblyTokenRoute: () => string;
|
|
12
12
|
getChatStoreMessageRoute: (chatId: number) => string;
|
|
13
13
|
getChatForAppointmentRoute: (appointmentId: number) => string;
|
|
14
14
|
}
|
|
15
|
-
export
|
|
16
|
-
jwtToken?: string;
|
|
17
|
-
}
|
|
18
|
-
export interface LoginOptions {
|
|
19
|
-
jwtToken?: string;
|
|
20
|
-
}
|
|
15
|
+
export declare type ChatConnectionStatus = 'initialized' | 'connecting' | 'connected' | 'disconnected' | 'suspended' | 'closing' | 'closed' | 'failed';
|
|
21
16
|
export declare type GetReturnValue = {
|
|
22
17
|
subscription: ChatSubscription;
|
|
23
18
|
error?: undefined;
|
|
@@ -35,9 +30,8 @@ export declare type GetChatReturnValue = {
|
|
|
35
30
|
declare const Chat: {
|
|
36
31
|
init: (_options: ChatOptions) => void;
|
|
37
32
|
isInitialized: () => boolean;
|
|
38
|
-
login: ({ jwtToken }: LoginOptions) => void;
|
|
39
|
-
logout: () => void;
|
|
40
33
|
get: (id: number) => Promise<GetReturnValue>;
|
|
41
34
|
appointment: (appointmentId: number) => Promise<GetReturnValue>;
|
|
35
|
+
setJwtToken: (jwtToken?: string) => void;
|
|
42
36
|
};
|
|
43
37
|
export default Chat;
|
package/dist/Chat.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -12,17 +35,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
36
|
};
|
|
14
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const
|
|
38
|
+
const Ably = __importStar(require("ably"));
|
|
16
39
|
const API_1 = __importDefault(require("./API"));
|
|
17
40
|
const CachedChat_1 = __importDefault(require("./CachedChat"));
|
|
18
41
|
const logger_1 = require("./logger");
|
|
19
42
|
const ChatSubscription_1 = __importDefault(require("./ChatSubscription"));
|
|
20
43
|
const Chat = (function () {
|
|
21
44
|
let initialized = false;
|
|
22
|
-
let
|
|
45
|
+
let ably;
|
|
23
46
|
let api;
|
|
24
47
|
let logger;
|
|
25
48
|
let options;
|
|
49
|
+
let connectionStatus = 'initialized';
|
|
26
50
|
const chats = {};
|
|
27
51
|
const init = (_options) => {
|
|
28
52
|
if (initialized) {
|
|
@@ -31,56 +55,57 @@ const Chat = (function () {
|
|
|
31
55
|
}
|
|
32
56
|
initialized = true;
|
|
33
57
|
options = _options;
|
|
34
|
-
echo = new laravel_echo_1.default({
|
|
35
|
-
broadcaster: 'pusher',
|
|
36
|
-
client: _options.constructPusher({
|
|
37
|
-
jwtToken: options.jwtToken
|
|
38
|
-
})
|
|
39
|
-
});
|
|
40
58
|
api = new API_1.default({
|
|
41
59
|
axios: options.axios,
|
|
42
60
|
jwtToken: options.jwtToken,
|
|
43
61
|
getChatMessagesRoute: options.getChatMessagesRoute,
|
|
62
|
+
getChatAblyTokenRoute: options.getChatAblyTokenRoute,
|
|
44
63
|
getChatStoreMessageRoute: options.getChatStoreMessageRoute,
|
|
45
64
|
getChatForAppointmentRoute: options.getChatForAppointmentRoute
|
|
46
65
|
});
|
|
47
66
|
logger = options.logger || new logger_1.ConsoleLogger;
|
|
67
|
+
let ablyOptions = {
|
|
68
|
+
authCallback(tokenParams, callback) {
|
|
69
|
+
logger.debug('authCallbackData', tokenParams);
|
|
70
|
+
api.getAblyToken(Object.keys(chats).map(id => Number(id))).then(result => {
|
|
71
|
+
if (result.error) {
|
|
72
|
+
callback(result.error.code, undefined);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
callback(null, result.token);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
ably = new Ably.Realtime(ablyOptions);
|
|
81
|
+
ably.connection.on(handleAblyConnectionStateChange);
|
|
48
82
|
};
|
|
49
83
|
const isInitialized = () => {
|
|
50
84
|
return initialized;
|
|
51
85
|
};
|
|
52
|
-
const
|
|
53
|
-
if (
|
|
54
|
-
|
|
86
|
+
const setJwtToken = (jwtToken) => {
|
|
87
|
+
if (options.jwtToken === jwtToken
|
|
88
|
+
|| ((options.jwtToken === null || typeof options.jwtToken === 'undefined')
|
|
89
|
+
&& (jwtToken === null || typeof jwtToken === 'undefined'))) {
|
|
90
|
+
return;
|
|
55
91
|
}
|
|
56
92
|
options.jwtToken = jwtToken;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
93
|
+
for (const chatId in chats) {
|
|
94
|
+
if (Object.prototype.hasOwnProperty.call(chats, chatId)) {
|
|
95
|
+
chats[chatId].cancelAllSubscriptions();
|
|
96
|
+
ably.channels.release(getChannelName(Number(chatId)));
|
|
97
|
+
delete chats[chatId];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
63
100
|
api = new API_1.default({
|
|
64
101
|
axios: options.axios,
|
|
65
102
|
jwtToken: options.jwtToken,
|
|
66
103
|
getChatMessagesRoute: options.getChatMessagesRoute,
|
|
104
|
+
getChatAblyTokenRoute: options.getChatAblyTokenRoute,
|
|
67
105
|
getChatStoreMessageRoute: options.getChatStoreMessageRoute,
|
|
68
106
|
getChatForAppointmentRoute: options.getChatForAppointmentRoute
|
|
69
107
|
});
|
|
70
|
-
|
|
71
|
-
const logout = () => {
|
|
72
|
-
if (typeof echo === 'undefined') {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
const _echo = echo;
|
|
76
|
-
echo = undefined;
|
|
77
|
-
for (const chatId in chats) {
|
|
78
|
-
if (Object.prototype.hasOwnProperty.call(chats, chatId)) {
|
|
79
|
-
chats[chatId].cancelAllSubscriptionsAndLeave();
|
|
80
|
-
delete chats[chatId];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
_echo.disconnect();
|
|
108
|
+
reauthorizeAbly();
|
|
84
109
|
};
|
|
85
110
|
const get = (id) => __awaiter(this, void 0, void 0, function* () {
|
|
86
111
|
const { chat, error } = getChat(id);
|
|
@@ -88,7 +113,8 @@ const Chat = (function () {
|
|
|
88
113
|
return { error };
|
|
89
114
|
}
|
|
90
115
|
const subscription = new ChatSubscription_1.default(chat, {
|
|
91
|
-
status: 'active'
|
|
116
|
+
status: 'active',
|
|
117
|
+
connectionStatus
|
|
92
118
|
});
|
|
93
119
|
chat.addSubscription(subscription);
|
|
94
120
|
chat.getLatestMessages();
|
|
@@ -102,32 +128,36 @@ const Chat = (function () {
|
|
|
102
128
|
return yield get(chatId);
|
|
103
129
|
});
|
|
104
130
|
const getChat = (chatId) => {
|
|
105
|
-
if (!echo) {
|
|
106
|
-
return { error: {
|
|
107
|
-
code: 'echo_is_not_defined'
|
|
108
|
-
} };
|
|
109
|
-
}
|
|
110
131
|
if (!(chatId.toString() in chats)) {
|
|
111
132
|
chats[chatId] = new CachedChat_1.default({
|
|
112
133
|
id: chatId,
|
|
113
134
|
api,
|
|
114
|
-
channel:
|
|
115
|
-
logger
|
|
116
|
-
leave: () => echo === null || echo === void 0 ? void 0 : echo.leave(getChannelName(chatId))
|
|
135
|
+
channel: ably.channels.get(getChannelName(chatId)),
|
|
136
|
+
logger
|
|
117
137
|
});
|
|
118
138
|
}
|
|
119
139
|
return { chat: chats[chatId] };
|
|
120
140
|
};
|
|
141
|
+
const reauthorizeAbly = () => {
|
|
142
|
+
ably.auth.authorize(undefined, undefined, function (err, result) {
|
|
143
|
+
logger.debug(err, result);
|
|
144
|
+
});
|
|
145
|
+
};
|
|
146
|
+
const handleAblyConnectionStateChange = (event) => {
|
|
147
|
+
connectionStatus = event.current;
|
|
148
|
+
Object.values(chats).forEach(chat => {
|
|
149
|
+
chat.onConnectionStatusChange(connectionStatus);
|
|
150
|
+
});
|
|
151
|
+
};
|
|
121
152
|
const getChannelName = (chatId) => {
|
|
122
|
-
return `chat
|
|
153
|
+
return `viewber:chat:${chatId}`;
|
|
123
154
|
};
|
|
124
155
|
return {
|
|
125
156
|
init,
|
|
126
157
|
isInitialized,
|
|
127
|
-
login,
|
|
128
|
-
logout,
|
|
129
158
|
get,
|
|
130
159
|
appointment,
|
|
160
|
+
setJwtToken
|
|
131
161
|
};
|
|
132
162
|
})();
|
|
133
163
|
exports.default = Chat;
|
package/dist/Chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../src/Chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../src/Chat.ts"],"names":[],"mappings":"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"}
|
package/dist/ChatError.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import CachedChat, { Messages } from "./CachedChat";
|
|
2
|
+
import { ChatConnectionStatus } from "./Chat";
|
|
2
3
|
import OnlineUser from "./OnlineUser";
|
|
3
4
|
export declare type ChatSubscriptionStatus = 'active' | 'cancelled';
|
|
4
5
|
export interface ChatSubscriptionOptions {
|
|
5
6
|
status: ChatSubscriptionStatus;
|
|
7
|
+
connectionStatus: ChatConnectionStatus;
|
|
6
8
|
}
|
|
7
9
|
export interface ChatSubscriptionEventCallbackData {
|
|
8
10
|
messages: {
|
|
@@ -22,6 +24,9 @@ export interface ChatSubscriptionEventCallbackData {
|
|
|
22
24
|
statusChange: {
|
|
23
25
|
status: ChatSubscriptionStatus;
|
|
24
26
|
};
|
|
27
|
+
connectionStatusChange: {
|
|
28
|
+
status: ChatConnectionStatus;
|
|
29
|
+
};
|
|
25
30
|
}
|
|
26
31
|
declare type ChatSubscriptionEventsAndCallbacks<Type> = {
|
|
27
32
|
[Event in keyof Type]?: (data: Type[Event]) => void;
|
|
@@ -30,10 +35,13 @@ export declare type ChatSubscriptionEventHandlers = ChatSubscriptionEventsAndCal
|
|
|
30
35
|
export default class ChatSubscription {
|
|
31
36
|
private chat;
|
|
32
37
|
private status;
|
|
38
|
+
private connectionStatus;
|
|
33
39
|
private eventHandlers;
|
|
34
40
|
constructor(chat: CachedChat, options: ChatSubscriptionOptions);
|
|
35
41
|
getStatus(): ChatSubscriptionStatus;
|
|
36
42
|
setStatus(status: ChatSubscriptionStatus): void;
|
|
43
|
+
getConnectionStatus(): ChatConnectionStatus;
|
|
44
|
+
setConnectionStatus(status: ChatConnectionStatus): void;
|
|
37
45
|
sendMessage(message: string): Promise<any>;
|
|
38
46
|
on<Event extends keyof ChatSubscriptionEventHandlers>(event: Event, handler: ChatSubscriptionEventHandlers[Event]): this;
|
|
39
47
|
fireEvent<Event extends keyof ChatSubscriptionEventHandlers>(name: Event, data: ChatSubscriptionEventCallbackData[Event]): void;
|
package/dist/ChatSubscription.js
CHANGED
|
@@ -4,6 +4,7 @@ class ChatSubscription {
|
|
|
4
4
|
constructor(chat, options) {
|
|
5
5
|
this.chat = chat;
|
|
6
6
|
this.status = options.status;
|
|
7
|
+
this.connectionStatus = options.connectionStatus;
|
|
7
8
|
this.eventHandlers = {};
|
|
8
9
|
}
|
|
9
10
|
getStatus() {
|
|
@@ -12,6 +13,15 @@ class ChatSubscription {
|
|
|
12
13
|
setStatus(status) {
|
|
13
14
|
this.status = status;
|
|
14
15
|
}
|
|
16
|
+
getConnectionStatus() {
|
|
17
|
+
return this.connectionStatus;
|
|
18
|
+
}
|
|
19
|
+
setConnectionStatus(status) {
|
|
20
|
+
this.connectionStatus = status;
|
|
21
|
+
this.fireEvent('connectionStatusChange', {
|
|
22
|
+
status: this.connectionStatus
|
|
23
|
+
});
|
|
24
|
+
}
|
|
15
25
|
sendMessage(message) {
|
|
16
26
|
return this.chat.sendMessage(message);
|
|
17
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSubscription.js","sourceRoot":"","sources":["../src/ChatSubscription.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ChatSubscription.js","sourceRoot":"","sources":["../src/ChatSubscription.ts"],"names":[],"mappings":";;AA2CA,MAAqB,gBAAgB;IAMjC,YAAY,IAAgB,EAAE,OAAgC;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,MAA8B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,mBAAmB,CAAC,MAA4B;QAC5C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;YACrC,MAAM,EAAE,IAAI,CAAC,gBAAgB;SAChC,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,EAAE,CAAoD,KAAY,EAAE,OAA6C;QAC7G,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,CAAoD,IAAW,EAAE,IAA8C;;QACpH,MAAA,MAAA,IAAI,CAAC,aAAa,EAAC,IAAI,CAAC,mDAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB,CAAoD,IAAW,EAAE,IAA8C;QAC5H,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC9B;IACL,CAAC;IAED,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ;AAtDD,mCAsDC"}
|
package/dist/logger/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import ConsoleLogger from "./ConsoleLogger";
|
|
2
2
|
import RollbarLogger from "./RollbarLogger";
|
|
3
3
|
import NullLogger from "./NullLogger";
|
|
4
|
-
export declare type LogArgument = Error | string | object;
|
|
4
|
+
export declare type LogArgument = Error | string | object | any;
|
|
5
5
|
export interface Logger {
|
|
6
6
|
error: (...args: LogArgument[]) => void;
|
|
7
7
|
critical: (...args: LogArgument[]) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viewberapp/chat",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.37",
|
|
4
4
|
"description": "Viewber chat",
|
|
5
5
|
"author": "Jacob <jacob.chen@viewber.co.uk>",
|
|
6
6
|
"homepage": "https://bitbucket.org/ezadr/viewberjs#readme",
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"react": "^16.14.0",
|
|
42
42
|
"rollbar": "^2.25.0"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "6c13974efab8281ead9c978da0d37e9b90ee116a"
|
|
45
45
|
}
|