@viewberapp/chat 0.0.52 → 0.0.53
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/CachedChat.d.ts +15 -5
- package/dist/CachedChat.js +50 -10
- package/dist/CachedChat.js.map +1 -1
- package/dist/Chat.d.ts +2 -2
- package/dist/Chat.js +53 -46
- package/dist/Chat.js.map +1 -1
- package/dist/ChatSubscription.d.ts +3 -10
- package/dist/ChatSubscription.js +7 -12
- package/dist/ChatSubscription.js.map +1 -1
- package/dist/util/groupMessages.js.map +1 -1
- package/dist/util/isNil.d.ts +1 -0
- package/dist/util/isNil.js +8 -0
- package/dist/util/isNil.js.map +1 -0
- package/dist/util/jwtTokenChanged.d.ts +1 -0
- package/dist/util/jwtTokenChanged.js +11 -0
- package/dist/util/jwtTokenChanged.js.map +1 -0
- package/package.json +2 -2
package/dist/CachedChat.d.ts
CHANGED
|
@@ -2,20 +2,23 @@ import Ably from 'ably';
|
|
|
2
2
|
import API from "./API";
|
|
3
3
|
import { Logger } from "./logger";
|
|
4
4
|
import OnlineUser from "./OnlineUser";
|
|
5
|
+
import { ChatConnectionStatus } from './Chat';
|
|
5
6
|
import PendingMessage from "./PendingMessage";
|
|
6
|
-
import ChatSubscription from "./ChatSubscription";
|
|
7
7
|
import Message from "./Message";
|
|
8
|
-
import {
|
|
8
|
+
import ChatSubscription, { ChatSubscriptionStatus } from "./ChatSubscription";
|
|
9
9
|
export interface CachedChatParams {
|
|
10
10
|
id: number;
|
|
11
11
|
api: API;
|
|
12
12
|
channel: Ably.Types.RealtimeChannelCallbacks;
|
|
13
|
+
connectionStatus: ChatConnectionStatus;
|
|
13
14
|
logger: Logger;
|
|
14
15
|
}
|
|
15
16
|
export interface SendMessageOptions {
|
|
16
17
|
isAdminMessage: boolean;
|
|
17
18
|
}
|
|
18
19
|
export declare type Messages = (Message | PendingMessage)[];
|
|
20
|
+
export declare type ChannelStatus = 'initialized' | 'attaching' | 'attached' | 'detaching' | 'detached' | 'suspended' | 'failed';
|
|
21
|
+
export declare type GetLatestMessagesStatus = 'initialized' | 'fetching' | 'success' | 'failed';
|
|
19
22
|
export default class CachedChat {
|
|
20
23
|
private id;
|
|
21
24
|
private api;
|
|
@@ -23,15 +26,22 @@ export default class CachedChat {
|
|
|
23
26
|
onlineUsers: OnlineUser[];
|
|
24
27
|
private subscriptions;
|
|
25
28
|
private channel;
|
|
29
|
+
private connectionStatus;
|
|
30
|
+
private channelStatus;
|
|
31
|
+
private getLatestMessagesStatus;
|
|
26
32
|
private logger;
|
|
27
|
-
constructor({ id, api, channel, logger }: CachedChatParams);
|
|
33
|
+
constructor({ id, api, channel, connectionStatus, logger }: CachedChatParams);
|
|
28
34
|
sendMessage(message: string, options?: SendMessageOptions): Promise<void>;
|
|
29
35
|
getLatestMessages(): void;
|
|
30
36
|
addMessage(message: Message | PendingMessage): void;
|
|
31
37
|
private replacePendingMessage;
|
|
32
38
|
addSubscription(subscription: ChatSubscription): void;
|
|
33
|
-
private
|
|
34
|
-
|
|
39
|
+
private fireMessagesEventOnEachNonCancelledSubscription;
|
|
40
|
+
setConnectionStatus(status: ChatConnectionStatus): void;
|
|
41
|
+
setGetLatestMessagesStatus(status: GetLatestMessagesStatus): void;
|
|
42
|
+
private handleChannelStateChange;
|
|
43
|
+
private assignNewlyCalculatedStatusToEachNonCancelledSubscription;
|
|
44
|
+
calculateChatSubscriptionStatus(): ChatSubscriptionStatus;
|
|
35
45
|
cancelSubscription(subscription: ChatSubscription): void;
|
|
36
46
|
cancelAllSubscriptions(): void;
|
|
37
47
|
}
|
package/dist/CachedChat.js
CHANGED
|
@@ -30,14 +30,18 @@ const uuid_1 = require("uuid");
|
|
|
30
30
|
const PendingMessage_1 = __importDefault(require("./PendingMessage"));
|
|
31
31
|
const Message_1 = __importStar(require("./Message"));
|
|
32
32
|
class CachedChat {
|
|
33
|
-
constructor({ id, api, channel, logger }) {
|
|
33
|
+
constructor({ id, api, channel, connectionStatus, logger }) {
|
|
34
|
+
this.getLatestMessagesStatus = 'initialized';
|
|
34
35
|
this.id = id;
|
|
35
36
|
this.api = api;
|
|
36
37
|
this.messages = [];
|
|
37
38
|
this.onlineUsers = [];
|
|
38
39
|
this.subscriptions = [];
|
|
39
40
|
this.channel = channel;
|
|
41
|
+
this.channelStatus = this.channel.state;
|
|
42
|
+
this.connectionStatus = connectionStatus;
|
|
40
43
|
this.logger = logger;
|
|
44
|
+
this.channel.on(this.handleChannelStateChange);
|
|
41
45
|
this.channel.subscribe((message) => {
|
|
42
46
|
if (message.name === 'chat.message.created') {
|
|
43
47
|
this.addMessage(new Message_1.default({
|
|
@@ -49,7 +53,7 @@ class CachedChat {
|
|
|
49
53
|
isAdminMessage: message.data.is_admin_message,
|
|
50
54
|
createdAt: new Date(message.data.created_at)
|
|
51
55
|
}));
|
|
52
|
-
this.
|
|
56
|
+
this.fireMessagesEventOnEachNonCancelledSubscription();
|
|
53
57
|
}
|
|
54
58
|
});
|
|
55
59
|
this.channel.presence.enter(undefined, (err) => {
|
|
@@ -72,13 +76,13 @@ class CachedChat {
|
|
|
72
76
|
status: 'pending'
|
|
73
77
|
});
|
|
74
78
|
this.addMessage(pendingMessage);
|
|
75
|
-
this.
|
|
79
|
+
this.fireMessagesEventOnEachNonCancelledSubscription();
|
|
76
80
|
this.api.storeMessage(this.id, message, options).then(({ message, error }) => {
|
|
77
81
|
if (error) {
|
|
78
82
|
return;
|
|
79
83
|
}
|
|
80
84
|
this.replacePendingMessage(pendingMessage, message);
|
|
81
|
-
this.
|
|
85
|
+
this.fireMessagesEventOnEachNonCancelledSubscription();
|
|
82
86
|
resolve();
|
|
83
87
|
}).catch(err => {
|
|
84
88
|
this.logger.error(err);
|
|
@@ -87,13 +91,16 @@ class CachedChat {
|
|
|
87
91
|
});
|
|
88
92
|
}
|
|
89
93
|
getLatestMessages() {
|
|
94
|
+
this.setGetLatestMessagesStatus('fetching');
|
|
90
95
|
this.api.getLatestMessages(this.id).then(({ messages, error }) => {
|
|
91
96
|
if (messages) {
|
|
92
97
|
messages.forEach(m => this.addMessage(m));
|
|
93
|
-
this.
|
|
98
|
+
this.setGetLatestMessagesStatus('success');
|
|
99
|
+
this.fireMessagesEventOnEachNonCancelledSubscription();
|
|
94
100
|
}
|
|
101
|
+
this.setGetLatestMessagesStatus('failed');
|
|
95
102
|
}).catch(err => {
|
|
96
|
-
this.
|
|
103
|
+
this.setGetLatestMessagesStatus('failed');
|
|
97
104
|
});
|
|
98
105
|
}
|
|
99
106
|
addMessage(message) {
|
|
@@ -128,18 +135,51 @@ class CachedChat {
|
|
|
128
135
|
addSubscription(subscription) {
|
|
129
136
|
this.subscriptions.push(subscription);
|
|
130
137
|
}
|
|
131
|
-
|
|
138
|
+
fireMessagesEventOnEachNonCancelledSubscription() {
|
|
132
139
|
this.subscriptions.forEach((subscription) => {
|
|
133
140
|
subscription.fireEventIfActive('messages', { messages: this.messages.concat() });
|
|
134
141
|
});
|
|
135
142
|
}
|
|
136
|
-
|
|
143
|
+
setConnectionStatus(status) {
|
|
144
|
+
this.connectionStatus = status;
|
|
145
|
+
this.assignNewlyCalculatedStatusToEachNonCancelledSubscription();
|
|
146
|
+
}
|
|
147
|
+
setGetLatestMessagesStatus(status) {
|
|
148
|
+
this.getLatestMessagesStatus = status;
|
|
149
|
+
this.assignNewlyCalculatedStatusToEachNonCancelledSubscription();
|
|
150
|
+
}
|
|
151
|
+
handleChannelStateChange(stateChange) {
|
|
152
|
+
this.channelStatus = stateChange.current;
|
|
153
|
+
this.assignNewlyCalculatedStatusToEachNonCancelledSubscription();
|
|
154
|
+
}
|
|
155
|
+
assignNewlyCalculatedStatusToEachNonCancelledSubscription() {
|
|
137
156
|
this.subscriptions.forEach(subscription => {
|
|
138
|
-
if (subscription.getStatus()
|
|
139
|
-
subscription.
|
|
157
|
+
if (subscription.getStatus() !== 'cancelled') {
|
|
158
|
+
subscription.setStatus(this.calculateChatSubscriptionStatus());
|
|
140
159
|
}
|
|
141
160
|
});
|
|
142
161
|
}
|
|
162
|
+
calculateChatSubscriptionStatus() {
|
|
163
|
+
if (['initialized', 'connecting'].includes(this.connectionStatus)) {
|
|
164
|
+
return 'pending';
|
|
165
|
+
}
|
|
166
|
+
else if (this.connectionStatus !== 'connected') {
|
|
167
|
+
return 'failed';
|
|
168
|
+
}
|
|
169
|
+
if (['initialized', 'attaching', 'suspended'].includes(this.channelStatus)) {
|
|
170
|
+
return 'pending';
|
|
171
|
+
}
|
|
172
|
+
else if (this.channelStatus !== 'attached') {
|
|
173
|
+
return 'failed';
|
|
174
|
+
}
|
|
175
|
+
if (['initialized', 'fetching'].includes(this.getLatestMessagesStatus)) {
|
|
176
|
+
return 'pending';
|
|
177
|
+
}
|
|
178
|
+
else if (this.getLatestMessagesStatus !== 'success') {
|
|
179
|
+
return 'failed';
|
|
180
|
+
}
|
|
181
|
+
return 'active';
|
|
182
|
+
}
|
|
143
183
|
cancelSubscription(subscription) {
|
|
144
184
|
subscription.setStatus('cancelled');
|
|
145
185
|
}
|
package/dist/CachedChat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CachedChat.js","sourceRoot":"","sources":["../src/CachedChat.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,+BAAoC;
|
|
1
|
+
{"version":3,"file":"CachedChat.js","sourceRoot":"","sources":["../src/CachedChat.ts"],"names":[],"mappings":"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"}
|
package/dist/Chat.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface ChatOptions {
|
|
|
13
13
|
}
|
|
14
14
|
export declare type ChatConnectionStatus = 'initialized' | 'connecting' | 'connected' | 'disconnected' | 'suspended' | 'closing' | 'closed' | 'failed';
|
|
15
15
|
declare const Chat: {
|
|
16
|
-
init: (
|
|
16
|
+
init: (options: ChatOptions) => void;
|
|
17
17
|
isInitialized: () => boolean;
|
|
18
18
|
get: (id: number) => Promise<{
|
|
19
19
|
subscription: ChatSubscription;
|
|
@@ -29,7 +29,7 @@ declare const Chat: {
|
|
|
29
29
|
subscription?: undefined;
|
|
30
30
|
error: ChatError;
|
|
31
31
|
}>;
|
|
32
|
-
setJwtToken: (
|
|
32
|
+
setJwtToken: (_jwtToken?: string) => void;
|
|
33
33
|
logout: () => void;
|
|
34
34
|
};
|
|
35
35
|
export default Chat;
|
package/dist/Chat.js
CHANGED
|
@@ -40,29 +40,33 @@ const API_1 = __importDefault(require("./API"));
|
|
|
40
40
|
const CachedChat_1 = __importDefault(require("./CachedChat"));
|
|
41
41
|
const logger_1 = require("./logger");
|
|
42
42
|
const ChatSubscription_1 = __importDefault(require("./ChatSubscription"));
|
|
43
|
+
const jwtTokenChanged_1 = require("./util/jwtTokenChanged");
|
|
43
44
|
const Chat = (function () {
|
|
44
45
|
let initialized = false;
|
|
45
|
-
let
|
|
46
|
+
let axios;
|
|
47
|
+
let jwtToken;
|
|
48
|
+
let getChatMessagesRoute;
|
|
49
|
+
let getChatAblyTokenRoute;
|
|
50
|
+
let getChatStoreMessageRoute;
|
|
51
|
+
let getChatForAppointmentRoute;
|
|
46
52
|
let api;
|
|
47
53
|
let logger;
|
|
48
|
-
let
|
|
49
|
-
let connectionStatus
|
|
54
|
+
let ably;
|
|
55
|
+
let connectionStatus;
|
|
50
56
|
const chats = {};
|
|
51
|
-
const init = (
|
|
57
|
+
const init = (options) => {
|
|
52
58
|
if (initialized) {
|
|
53
59
|
console.warn('Chat.init() was called more than once. Ignoring.');
|
|
54
60
|
return;
|
|
55
61
|
}
|
|
56
62
|
initialized = true;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
getChatForAppointmentRoute: options.getChatForAppointmentRoute
|
|
65
|
-
});
|
|
63
|
+
axios = options.axios;
|
|
64
|
+
jwtToken = options.jwtToken;
|
|
65
|
+
getChatMessagesRoute = options.getChatMessagesRoute;
|
|
66
|
+
getChatAblyTokenRoute = options.getChatAblyTokenRoute;
|
|
67
|
+
getChatStoreMessageRoute = options.getChatStoreMessageRoute;
|
|
68
|
+
getChatForAppointmentRoute = options.getChatForAppointmentRoute;
|
|
69
|
+
api = makeApi();
|
|
66
70
|
logger = options.logger || new logger_1.ConsoleLogger;
|
|
67
71
|
ably = new Ably.Realtime({
|
|
68
72
|
autoConnect: false,
|
|
@@ -82,18 +86,17 @@ const Chat = (function () {
|
|
|
82
86
|
});
|
|
83
87
|
},
|
|
84
88
|
});
|
|
89
|
+
connectionStatus = ably.connection.state;
|
|
85
90
|
ably.connection.on(handleAblyConnectionStateChange);
|
|
86
91
|
};
|
|
87
92
|
const isInitialized = () => {
|
|
88
93
|
return initialized;
|
|
89
94
|
};
|
|
90
|
-
const setJwtToken = (
|
|
91
|
-
if (
|
|
92
|
-
|| ((options.jwtToken === null || typeof options.jwtToken === 'undefined')
|
|
93
|
-
&& (jwtToken === null || typeof jwtToken === 'undefined'))) {
|
|
95
|
+
const setJwtToken = (_jwtToken) => {
|
|
96
|
+
if (!(0, jwtTokenChanged_1.jwtTokenChanged)(_jwtToken, jwtToken)) {
|
|
94
97
|
return;
|
|
95
98
|
}
|
|
96
|
-
|
|
99
|
+
jwtToken = _jwtToken;
|
|
97
100
|
for (const chatId in chats) {
|
|
98
101
|
if (Object.prototype.hasOwnProperty.call(chats, chatId)) {
|
|
99
102
|
chats[chatId].cancelAllSubscriptions();
|
|
@@ -101,59 +104,63 @@ const Chat = (function () {
|
|
|
101
104
|
delete chats[chatId];
|
|
102
105
|
}
|
|
103
106
|
}
|
|
104
|
-
api =
|
|
105
|
-
axios: options.axios,
|
|
106
|
-
jwtToken: options.jwtToken,
|
|
107
|
-
getChatMessagesRoute: options.getChatMessagesRoute,
|
|
108
|
-
getChatAblyTokenRoute: options.getChatAblyTokenRoute,
|
|
109
|
-
getChatStoreMessageRoute: options.getChatStoreMessageRoute,
|
|
110
|
-
getChatForAppointmentRoute: options.getChatForAppointmentRoute
|
|
111
|
-
});
|
|
107
|
+
api = makeApi();
|
|
112
108
|
};
|
|
113
109
|
const get = (id) => __awaiter(this, void 0, void 0, function* () {
|
|
114
|
-
const { chat,
|
|
115
|
-
|
|
116
|
-
return { error };
|
|
117
|
-
}
|
|
118
|
-
reauthorizeAbly();
|
|
110
|
+
const { chat, isFirstFetch } = getChat(id);
|
|
111
|
+
ably.auth.authorize();
|
|
119
112
|
const subscription = new ChatSubscription_1.default(chat, {
|
|
120
|
-
status:
|
|
121
|
-
connectionStatus
|
|
113
|
+
status: chat.calculateChatSubscriptionStatus()
|
|
122
114
|
});
|
|
123
115
|
chat.addSubscription(subscription);
|
|
124
|
-
|
|
116
|
+
if (isFirstFetch) {
|
|
117
|
+
chat.getLatestMessages();
|
|
118
|
+
}
|
|
125
119
|
return { subscription };
|
|
126
120
|
});
|
|
127
121
|
const appointment = (appointmentId) => __awaiter(this, void 0, void 0, function* () {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
122
|
+
try {
|
|
123
|
+
const { chatId, error } = yield api.getChatIdFromAppointmentId(appointmentId);
|
|
124
|
+
if (error) {
|
|
125
|
+
return { error };
|
|
126
|
+
}
|
|
127
|
+
return yield get(chatId);
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
return { error: { code: 'error' } };
|
|
131
131
|
}
|
|
132
|
-
return yield get(chatId);
|
|
133
132
|
});
|
|
134
133
|
const getChat = (chatId) => {
|
|
134
|
+
let isFirstFetch = false;
|
|
135
135
|
if (!(chatId.toString() in chats)) {
|
|
136
136
|
chats[chatId] = new CachedChat_1.default({
|
|
137
137
|
id: chatId,
|
|
138
138
|
api,
|
|
139
139
|
channel: ably.channels.get(getChannelName(chatId)),
|
|
140
|
+
connectionStatus,
|
|
140
141
|
logger
|
|
141
142
|
});
|
|
143
|
+
isFirstFetch = true;
|
|
142
144
|
}
|
|
143
|
-
return {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
logger.debug('Reauthorize ably', err, result);
|
|
148
|
-
});
|
|
145
|
+
return {
|
|
146
|
+
chat: chats[chatId],
|
|
147
|
+
isFirstFetch
|
|
148
|
+
};
|
|
149
149
|
};
|
|
150
150
|
const handleAblyConnectionStateChange = (event) => {
|
|
151
151
|
connectionStatus = event.current;
|
|
152
152
|
Object.values(chats).forEach(chat => {
|
|
153
|
-
chat.
|
|
153
|
+
chat.setConnectionStatus(connectionStatus);
|
|
154
154
|
});
|
|
155
|
-
logger.debug('Connection state change', event);
|
|
156
155
|
};
|
|
156
|
+
const makeApi = () => new API_1.default({
|
|
157
|
+
axios,
|
|
158
|
+
jwtToken,
|
|
159
|
+
getChatMessagesRoute,
|
|
160
|
+
getChatAblyTokenRoute,
|
|
161
|
+
getChatStoreMessageRoute,
|
|
162
|
+
getChatForAppointmentRoute
|
|
163
|
+
});
|
|
157
164
|
const logout = () => {
|
|
158
165
|
setJwtToken(undefined);
|
|
159
166
|
};
|
package/dist/Chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../src/Chat.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,gDAAwB;
|
|
1
|
+
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../src/Chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import CachedChat, { Messages, SendMessageOptions } from "./CachedChat";
|
|
2
|
-
import { ChatConnectionStatus } from "./Chat";
|
|
3
1
|
import OnlineUser from "./OnlineUser";
|
|
4
|
-
|
|
2
|
+
import CachedChat, { Messages, SendMessageOptions } from "./CachedChat";
|
|
3
|
+
export declare type ChatSubscriptionStatus = 'active' | 'pending' | 'failed' | 'cancelled';
|
|
5
4
|
export interface ChatSubscriptionOptions {
|
|
6
5
|
status: ChatSubscriptionStatus;
|
|
7
|
-
connectionStatus: ChatConnectionStatus;
|
|
8
6
|
}
|
|
9
7
|
export interface ChatSubscriptionEventCallbackData {
|
|
10
8
|
messages: {
|
|
@@ -24,9 +22,6 @@ export interface ChatSubscriptionEventCallbackData {
|
|
|
24
22
|
statusChange: {
|
|
25
23
|
status: ChatSubscriptionStatus;
|
|
26
24
|
};
|
|
27
|
-
connectionStatusChange: {
|
|
28
|
-
status: ChatConnectionStatus;
|
|
29
|
-
};
|
|
30
25
|
}
|
|
31
26
|
export declare type ChatSubscriptionEventHandlers = {
|
|
32
27
|
[Event in keyof ChatSubscriptionEventCallbackData]: (data: ChatSubscriptionEventCallbackData[Event]) => void;
|
|
@@ -37,17 +32,15 @@ export declare type ChatSubscriptionEventsAndCallbacks = {
|
|
|
37
32
|
export default class ChatSubscription {
|
|
38
33
|
private chat;
|
|
39
34
|
private status;
|
|
40
|
-
private connectionStatus;
|
|
41
35
|
private eventHandlers;
|
|
42
36
|
constructor(chat: CachedChat, options: ChatSubscriptionOptions);
|
|
43
37
|
getStatus(): ChatSubscriptionStatus;
|
|
44
38
|
setStatus(status: ChatSubscriptionStatus): void;
|
|
45
|
-
getConnectionStatus(): ChatConnectionStatus;
|
|
46
|
-
setConnectionStatus(status: ChatConnectionStatus): void;
|
|
47
39
|
sendMessage(message: string, options?: SendMessageOptions): Promise<any>;
|
|
48
40
|
on<Event extends keyof ChatSubscriptionEventHandlers>(event: Event, handler: ChatSubscriptionEventHandlers[Event]): this;
|
|
49
41
|
off<Event extends keyof ChatSubscriptionEventHandlers>(event: Event, handler: ChatSubscriptionEventHandlers[Event]): this;
|
|
50
42
|
fireEvent<Event extends keyof ChatSubscriptionEventHandlers>(name: Event, data: ChatSubscriptionEventCallbackData[Event]): void;
|
|
51
43
|
fireEventIfActive<Event extends keyof ChatSubscriptionEventHandlers>(name: Event, data: ChatSubscriptionEventCallbackData[Event]): void;
|
|
44
|
+
fireEventIfNotCancelled<Event extends keyof ChatSubscriptionEventHandlers>(name: Event, data: ChatSubscriptionEventCallbackData[Event]): void;
|
|
52
45
|
cancel(): void;
|
|
53
46
|
}
|
package/dist/ChatSubscription.js
CHANGED
|
@@ -4,14 +4,12 @@ class ChatSubscription {
|
|
|
4
4
|
constructor(chat, options) {
|
|
5
5
|
this.chat = chat;
|
|
6
6
|
this.status = options.status;
|
|
7
|
-
this.connectionStatus = options.connectionStatus;
|
|
8
7
|
this.eventHandlers = {
|
|
9
8
|
messages: [],
|
|
10
9
|
here: [],
|
|
11
10
|
userJoining: [],
|
|
12
11
|
userLeaving: [],
|
|
13
|
-
statusChange: []
|
|
14
|
-
connectionStatusChange: []
|
|
12
|
+
statusChange: []
|
|
15
13
|
};
|
|
16
14
|
}
|
|
17
15
|
getStatus() {
|
|
@@ -19,15 +17,7 @@ class ChatSubscription {
|
|
|
19
17
|
}
|
|
20
18
|
setStatus(status) {
|
|
21
19
|
this.status = status;
|
|
22
|
-
|
|
23
|
-
getConnectionStatus() {
|
|
24
|
-
return this.connectionStatus;
|
|
25
|
-
}
|
|
26
|
-
setConnectionStatus(status) {
|
|
27
|
-
this.connectionStatus = status;
|
|
28
|
-
this.fireEvent('connectionStatusChange', {
|
|
29
|
-
status: this.connectionStatus
|
|
30
|
-
});
|
|
20
|
+
this.fireEvent('statusChange', { status });
|
|
31
21
|
}
|
|
32
22
|
sendMessage(message, options) {
|
|
33
23
|
return this.chat.sendMessage(message, options);
|
|
@@ -56,6 +46,11 @@ class ChatSubscription {
|
|
|
56
46
|
this.fireEvent(name, data);
|
|
57
47
|
}
|
|
58
48
|
}
|
|
49
|
+
fireEventIfNotCancelled(name, data) {
|
|
50
|
+
if (this.status !== 'cancelled') {
|
|
51
|
+
this.fireEvent(name, data);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
59
54
|
cancel() {
|
|
60
55
|
this.chat.cancelSubscription(this);
|
|
61
56
|
}
|
|
@@ -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":";;AA0CA,MAAqB,gBAAgB;IAKjC,YAAY,IAAgB,EAAE,OAAgC;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG;YACjB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;SACnB,CAAC;IACN,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,MAA8B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,OAAe,EAAE,OAA4B;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,EAAE,CAAoD,KAAY,EAAE,OAA6C;QAC7G,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAoD,KAAY,EAAE,OAA6C;QAC9G,IAAI,gBAAgB,GAA8C,EAAE,CAAC;QAIrE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACtE,IAAI,CAAC,KAAK,OAAO,EAAE;gBACf,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAErB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,CAAoD,IAAW,EAAE,IAA8C;QACpH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,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,uBAAuB,CAAoD,IAAW,EAAE,IAA8C;QAClI,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;YAC7B,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;AAvED,mCAuEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupMessages.js","sourceRoot":"","sources":["../../src/util/groupMessages.
|
|
1
|
+
{"version":3,"file":"groupMessages.js","sourceRoot":"","sources":["../../src/util/groupMessages.ts"],"names":[],"mappings":";;;AA8BO,MAAM,aAAa,GAAG,CAAC,QAAmB,EAAgB,EAAE;IAC/D,MAAM,YAAY,GAAiB,EAAE,CAAC;IACtC,IAAI,uBAAuB,GAA+B,SAAS,CAAC;IAEpE,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,EAAE,GAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QAGvC,IAAI,CAAC,uBAAuB,EAAE;YAC1B,uBAAuB,GAAG;gBACtB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;gBAC9B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM;gBAC1B,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC1B,CAAC;YACF,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC3C,SAAS;SACZ;QAMD,IAAI,uBAAuB,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC3D,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,SAAS;SACZ;QAGD,uBAAuB,GAAG;YACtB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;YAC9B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM;YAC1B,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC1B,CAAC;QACF,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;KAC9C;IAED,OAAO,YAAY,CAAC;AACxB,CAAC,CAAA;AApCY,QAAA,aAAa,iBAoCzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isNil: (value: any) => value is null | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isNil.js","sourceRoot":"","sources":["../../src/util/isNil.ts"],"names":[],"mappings":";;;AAGO,MAAM,KAAK,GAAG,CAAC,KAAU,EAA6B,EAAE;IAC3D,OAAO,KAAK,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAFY,QAAA,KAAK,SAEjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const jwtTokenChanged: (tokenA?: string, tokenB?: string) => boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jwtTokenChanged = void 0;
|
|
4
|
+
const isNil_1 = require("./isNil");
|
|
5
|
+
const jwtTokenChanged = (tokenA, tokenB) => {
|
|
6
|
+
return (tokenA !== tokenB)
|
|
7
|
+
|| ((0, isNil_1.isNil)(tokenA) && !(0, isNil_1.isNil)(tokenB))
|
|
8
|
+
|| ((0, isNil_1.isNil)(tokenB) && !(0, isNil_1.isNil)(tokenA));
|
|
9
|
+
};
|
|
10
|
+
exports.jwtTokenChanged = jwtTokenChanged;
|
|
11
|
+
//# sourceMappingURL=jwtTokenChanged.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwtTokenChanged.js","sourceRoot":"","sources":["../../src/util/jwtTokenChanged.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEzB,MAAM,eAAe,GAAG,CAAC,MAAe,EAAE,MAAe,EAAW,EAAE;IACzE,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;WACnB,CAAC,IAAA,aAAK,EAAC,MAAM,CAAC,IAAI,CAAC,IAAA,aAAK,EAAC,MAAM,CAAC,CAAC;WACjC,CAAC,IAAA,aAAK,EAAC,MAAM,CAAC,IAAI,CAAC,IAAA,aAAK,EAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viewberapp/chat",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.53",
|
|
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": "81b88f6d7236ad9187e5c39c33f076e39f9846c6"
|
|
45
45
|
}
|