@rtsee/messenger-signaling 0.0.75 → 0.0.78
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/messenger-signaling/src/models/RTSeeMessengerSignaling.d.ts +5 -2
- package/dist/messenger-signaling/src/models/RTSeeMessengerSignaling.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/RTSeeMessengerSignaling.js +54 -56
- package/dist/messenger-signaling/src/models/RTSeeMessengerSignaling.js.map +1 -1
- package/dist/messenger-signaling/src/models/handlers.d.ts +7 -0
- package/dist/messenger-signaling/src/models/handlers.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/handlers.js +28 -0
- package/dist/messenger-signaling/src/models/handlers.js.map +1 -0
- package/dist/messenger-signaling/src/models/index.d.ts +1 -0
- package/dist/messenger-signaling/src/models/index.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/index.js +1 -0
- package/dist/messenger-signaling/src/models/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,8 +2,11 @@ import { RTSeeSignalingBase, SocketPeer } from "@rtsee/signaling";
|
|
|
2
2
|
import { IRTSeeMessengerSignalingOptions } from "../interfaces";
|
|
3
3
|
import { IRTSeeChat, IRTSeeChatsQuery, IRTSeeCreateChatOptions, IRTSeeMessageBase, IRTSeeMessagesQuery, IRTSeeMessageStatusTransportData, IRTSeeMessengerSearchOptions } from "@rtsee/common";
|
|
4
4
|
import { RTSeeMessengerStorage } from "@rtsee/live-storage";
|
|
5
|
+
import { IRTSeeMessengerSignalingHandlers } from "@rtsee/messenger-signaling";
|
|
6
|
+
import { IRTSeeTransport } from "@rtsee/core";
|
|
5
7
|
export declare class RTSeeMessengerSignaling extends RTSeeSignalingBase {
|
|
6
8
|
storage: RTSeeMessengerStorage;
|
|
9
|
+
handlers: IRTSeeMessengerSignalingHandlers;
|
|
7
10
|
constructor(options: IRTSeeMessengerSignalingOptions);
|
|
8
11
|
onAfterConnected(socket: SocketPeer): void;
|
|
9
12
|
handleCreateChat(socket: SocketPeer, chatOptions: IRTSeeCreateChatOptions): Promise<IRTSeeChat>;
|
|
@@ -16,10 +19,10 @@ export declare class RTSeeMessengerSignaling extends RTSeeSignalingBase {
|
|
|
16
19
|
handleMessageReceived(socket: SocketPeer, options: IRTSeeMessageStatusTransportData): Promise<void>;
|
|
17
20
|
handleMessageSeen(socket: SocketPeer, options: IRTSeeMessageStatusTransportData): Promise<void>;
|
|
18
21
|
handleSearch(socket: SocketPeer, options: IRTSeeMessengerSearchOptions): Promise<boolean>;
|
|
19
|
-
emitEventToChatId(
|
|
22
|
+
emitEventToChatId(transport: IRTSeeTransport, chatId: string, eventName: string, data: any): Promise<void>;
|
|
20
23
|
private getChatMemberByPeerId;
|
|
21
24
|
private getChatMembersByPeerIds;
|
|
22
25
|
private groupBySender;
|
|
23
|
-
sendMessage(
|
|
26
|
+
sendMessage(transport: IRTSeeTransport, message: IRTSeeMessageBase): Promise<void>;
|
|
24
27
|
}
|
|
25
28
|
//# sourceMappingURL=RTSeeMessengerSignaling.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTSeeMessengerSignaling.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeeMessengerSignaling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EAEnB,gCAAgC,
|
|
1
|
+
{"version":3,"file":"RTSeeMessengerSignaling.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeeMessengerSignaling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EAEnB,gCAAgC,EAChC,4BAA4B,EAE7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAwB,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAEL,eAAe,EAGhB,MAAM,aAAa,CAAC;AAIrB,qBAAa,uBAAwB,SAAQ,kBAAkB;IAC7D,OAAO,EAAE,qBAAqB,CAAC;IAC/B,QAAQ,EAAE,gCAAgC,CAAC;gBAE/B,OAAO,EAAE,+BAA+B;IAapD,gBAAgB,CAAC,MAAM,EAAE,UAAU;IAoD7B,gBAAgB,CACpB,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,uBAAuB,GACnC,OAAO,CAAC,UAAU,CAAC;IAsBhB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB;IASpE,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB;IAkB5D,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;IAgBzD,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB;IA+BlE,qBAAqB,CACzB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,gCAAgC;IAuBrC,iBAAiB,CACrB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,gCAAgC;IAyBrC,YAAY,CAChB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,OAAO,CAAC;IASb,iBAAiB,CACrB,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,IAAI,CAAC;IAchB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,aAAa;IAmBf,WAAW,CACf,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;CAwCjB"}
|
|
@@ -11,8 +11,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.RTSeeMessengerSignaling = void 0;
|
|
13
13
|
const signaling_1 = require("@rtsee/signaling");
|
|
14
|
-
const
|
|
14
|
+
const common_1 = require("@rtsee/common");
|
|
15
15
|
const live_storage_1 = require("@rtsee/live-storage");
|
|
16
|
+
const messenger_signaling_1 = require("@rtsee/messenger-signaling");
|
|
17
|
+
const core_1 = require("@rtsee/core");
|
|
16
18
|
const DEFAULT_LIMIT = 20;
|
|
17
19
|
class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
18
20
|
constructor(options) {
|
|
@@ -25,16 +27,18 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
25
27
|
else {
|
|
26
28
|
this.storage = new live_storage_1.RTSeeMessengerStorage();
|
|
27
29
|
}
|
|
30
|
+
this.handlers = (0, messenger_signaling_1.getMessengerHandlers)(this.storage);
|
|
28
31
|
}
|
|
29
32
|
onAfterConnected(socket) {
|
|
30
|
-
socket.on(
|
|
31
|
-
socket.on(
|
|
32
|
-
socket.on(
|
|
33
|
-
socket.on(
|
|
34
|
-
socket.on(
|
|
35
|
-
socket.on(
|
|
36
|
-
socket.on(
|
|
37
|
-
socket.on(
|
|
33
|
+
socket.on(common_1.RTSeeMessengerEvents.GET_PEER, (peerId) => this.handlers.getPeer.run(socket, peerId));
|
|
34
|
+
socket.on(common_1.RTSeeMessengerEvents.CREATE_CHAT, (chat) => void this.handleCreateChat(socket, chat));
|
|
35
|
+
socket.on(common_1.RTSeeMessengerEvents.OUTGOING_MESSAGE, (message) => void this.handleOutgoingMessage(socket, message));
|
|
36
|
+
socket.on(common_1.RTSeeMessengerEvents.GET_CHATS, (options) => void this.handleGetChats(socket, options));
|
|
37
|
+
socket.on(common_1.RTSeeMessengerEvents.GET_CHAT, (options) => void this.handleGetChat(socket, options));
|
|
38
|
+
socket.on(common_1.RTSeeMessengerEvents.GET_MESSAGES, (options) => void this.handleGetMessages(socket, options));
|
|
39
|
+
socket.on(common_1.RTSeeMessengerEvents.MESSAGE_RECEIVED, (options) => void this.handleMessageReceived(socket, options));
|
|
40
|
+
socket.on(common_1.RTSeeMessengerEvents.INCOMING_MESSAGES_SEEN, (options) => void this.handleMessageSeen(socket, options));
|
|
41
|
+
socket.on(common_1.RTSeeMessengerEvents.SEARCH, (options) => void this.handleSearch(socket, options));
|
|
38
42
|
}
|
|
39
43
|
handleCreateChat(socket, chatOptions) {
|
|
40
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -43,13 +47,11 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
43
47
|
return;
|
|
44
48
|
}
|
|
45
49
|
const createChatOptions = Object.assign(Object.assign({}, chatOptions), { creatorId: socket.rtseePeer.clientId });
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
},
|
|
52
|
-
}, createChatOptions);
|
|
50
|
+
const peers = this.storage.isLocalProcessor ? {
|
|
51
|
+
creator: this.getChatMemberByPeerId(socket.rtseePeer.clientId),
|
|
52
|
+
members: this.getChatMembersByPeerIds(chatOptions.membersIds),
|
|
53
|
+
} : null;
|
|
54
|
+
return yield this.storage.processChat((0, core_1.socketPeerToTransport)(socket, peers || undefined), createChatOptions);
|
|
53
55
|
});
|
|
54
56
|
}
|
|
55
57
|
handleOutgoingMessage(socket, message) {
|
|
@@ -58,7 +60,7 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
58
60
|
console.log("Peer is not yet initialized, can not send messages!");
|
|
59
61
|
return;
|
|
60
62
|
}
|
|
61
|
-
yield this.sendMessage(socket
|
|
63
|
+
yield this.sendMessage((0, core_1.socketPeerToTransport)(socket), message);
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
66
|
handleGetChats(socket, options) {
|
|
@@ -67,14 +69,12 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
67
69
|
console.log("Peer is not yet initialized, can not send messages!");
|
|
68
70
|
return;
|
|
69
71
|
}
|
|
70
|
-
const result = yield this.storage.getChats({
|
|
71
|
-
clientId: socket.rtseePeer.clientId,
|
|
72
|
-
}, {
|
|
72
|
+
const result = yield this.storage.getChats((0, core_1.socketPeerToTransport)(socket), {
|
|
73
73
|
clientId: socket.rtseePeer.clientId,
|
|
74
74
|
limit: options.limit | DEFAULT_LIMIT,
|
|
75
75
|
offset: options.offset | 0,
|
|
76
76
|
});
|
|
77
|
-
socket.emit(
|
|
77
|
+
socket.emit(common_1.RTSeeMessengerEvents.CHATS_FETCHED, result);
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
80
|
handleGetChat(socket, options) {
|
|
@@ -83,12 +83,10 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
83
83
|
console.log("Peer is not yet initialized, can not send messages!");
|
|
84
84
|
return;
|
|
85
85
|
}
|
|
86
|
-
const result = yield this.storage.getChat({
|
|
87
|
-
clientId: socket.rtseePeer.clientId,
|
|
88
|
-
}, {
|
|
86
|
+
const result = yield this.storage.getChat((0, core_1.socketPeerToTransport)(socket), {
|
|
89
87
|
chatId: options.id,
|
|
90
88
|
});
|
|
91
|
-
socket.emit(
|
|
89
|
+
socket.emit(common_1.RTSeeMessengerEvents.CHAT_FETCHED, result);
|
|
92
90
|
});
|
|
93
91
|
}
|
|
94
92
|
handleGetMessages(socket, options) {
|
|
@@ -99,9 +97,7 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
99
97
|
return;
|
|
100
98
|
}
|
|
101
99
|
if (this.storage.getMessages) {
|
|
102
|
-
result = yield this.storage.getMessages({
|
|
103
|
-
clientId: socket.rtseePeer.clientId,
|
|
104
|
-
}, {
|
|
100
|
+
result = yield this.storage.getMessages((0, core_1.socketPeerToTransport)(socket), {
|
|
105
101
|
chatId: options.chatId,
|
|
106
102
|
limit: options.limit | DEFAULT_LIMIT,
|
|
107
103
|
offset: options.offset | 0,
|
|
@@ -117,7 +113,7 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
117
113
|
direction: options.direction,
|
|
118
114
|
};
|
|
119
115
|
}
|
|
120
|
-
socket.emit(
|
|
116
|
+
socket.emit(common_1.RTSeeMessengerEvents.MESSAGES_FETCHED, result);
|
|
121
117
|
});
|
|
122
118
|
}
|
|
123
119
|
handleMessageReceived(socket, options) {
|
|
@@ -126,10 +122,10 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
126
122
|
console.log("Peer is not yet initialized, can not send messages!");
|
|
127
123
|
return;
|
|
128
124
|
}
|
|
129
|
-
yield this.storage.processMessagesReceivedEvent(
|
|
125
|
+
yield this.storage.processMessagesReceivedEvent((0, core_1.socketPeerToTransport)(socket), options);
|
|
130
126
|
const groups = this.groupBySender(options.messages);
|
|
131
127
|
groups.forEach((g) => {
|
|
132
|
-
this.sendToIndividualRoom(g.senderId,
|
|
128
|
+
this.sendToIndividualRoom({ peer: { clientId: g.senderId, rtseeAppId: socket.rtseePeer.rtseeAppId } }, common_1.RTSeeMessengerEvents.MESSAGE_RECEIVED, g);
|
|
133
129
|
});
|
|
134
130
|
});
|
|
135
131
|
}
|
|
@@ -140,11 +136,11 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
140
136
|
return;
|
|
141
137
|
}
|
|
142
138
|
if (this.storage.processMessagesSeenEvent) {
|
|
143
|
-
yield this.storage.processMessagesSeenEvent(
|
|
139
|
+
yield this.storage.processMessagesSeenEvent((0, core_1.socketPeerToTransport)(socket), options);
|
|
144
140
|
}
|
|
145
141
|
const groups = this.groupBySender(options.messages);
|
|
146
142
|
groups.forEach((g) => {
|
|
147
|
-
this.sendToIndividualRoom(g.senderId,
|
|
143
|
+
this.sendToIndividualRoom({ peer: { clientId: g.senderId, rtseeAppId: socket.rtseePeer.rtseeAppId } }, common_1.RTSeeMessengerEvents.INCOMING_MESSAGES_SEEN, g);
|
|
148
144
|
});
|
|
149
145
|
});
|
|
150
146
|
}
|
|
@@ -153,16 +149,17 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
153
149
|
if (!this.storage.processSearch) {
|
|
154
150
|
return false;
|
|
155
151
|
}
|
|
156
|
-
const result = yield this.storage
|
|
157
|
-
|
|
152
|
+
const result = yield this.storage
|
|
153
|
+
.processSearch((0, core_1.socketPeerToTransport)(socket), options);
|
|
154
|
+
socket.emit(common_1.RTSeeMessengerEvents.SEARCH_SUCCESS, result);
|
|
158
155
|
});
|
|
159
156
|
}
|
|
160
|
-
emitEventToChatId(
|
|
157
|
+
emitEventToChatId(transport, chatId, eventName, data) {
|
|
161
158
|
return __awaiter(this, void 0, void 0, function* () {
|
|
162
|
-
const ids = yield this.storage.getChatPeersIds(
|
|
159
|
+
const ids = yield this.storage.getChatPeersIds(transport, chatId);
|
|
163
160
|
ids.forEach((id) => {
|
|
164
|
-
if (id !== clientId) {
|
|
165
|
-
this.sendToIndividualRoom(id, eventName, data);
|
|
161
|
+
if (id !== transport.peer.clientId) {
|
|
162
|
+
this.sendToIndividualRoom({ peer: { clientId: id, rtseeAppId: transport.peer.rtseeAppId } }, eventName, data);
|
|
166
163
|
}
|
|
167
164
|
});
|
|
168
165
|
});
|
|
@@ -174,7 +171,7 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
174
171
|
return Object.assign(Object.assign({}, peer), { id: peer.clientId });
|
|
175
172
|
}
|
|
176
173
|
else {
|
|
177
|
-
return
|
|
174
|
+
return null;
|
|
178
175
|
}
|
|
179
176
|
}
|
|
180
177
|
getChatMembersByPeerIds(ids) {
|
|
@@ -186,7 +183,7 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
186
183
|
});
|
|
187
184
|
}
|
|
188
185
|
else {
|
|
189
|
-
return
|
|
186
|
+
return null;
|
|
190
187
|
}
|
|
191
188
|
}
|
|
192
189
|
groupBySender(messages) {
|
|
@@ -206,23 +203,24 @@ class RTSeeMessengerSignaling extends signaling_1.RTSeeSignalingBase {
|
|
|
206
203
|
});
|
|
207
204
|
return groups;
|
|
208
205
|
}
|
|
209
|
-
sendMessage(
|
|
206
|
+
sendMessage(transport, message) {
|
|
210
207
|
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}
|
|
221
|
-
const
|
|
222
|
-
this.
|
|
208
|
+
const peers = this.storage.isLocalProcessor ? {
|
|
209
|
+
creator: this.getChatMemberByPeerId(transport.peer.clientId),
|
|
210
|
+
members: this.getChatMembersByPeerIds([
|
|
211
|
+
transport.peer.clientId,
|
|
212
|
+
message.to
|
|
213
|
+
])
|
|
214
|
+
} : null;
|
|
215
|
+
if (peers) {
|
|
216
|
+
transport.peers = peers;
|
|
217
|
+
}
|
|
218
|
+
const savedMessage = yield this.storage.processMessage(transport, message);
|
|
219
|
+
const ids = yield this.storage.getChatPeersIds(transport, savedMessage.chatId);
|
|
220
|
+
this.sendToIndividualRoom(transport, common_1.RTSeeMessengerEvents.MESSAGE_SEND_SUCCEED, Object.assign(Object.assign({}, savedMessage), { temporaryId: message.temporaryId, temporaryChatId: message.temporaryChatId }));
|
|
223
221
|
ids.forEach((id) => {
|
|
224
|
-
if (id !== clientId) {
|
|
225
|
-
this.sendToIndividualRoom(id,
|
|
222
|
+
if (id !== transport.peer.clientId) {
|
|
223
|
+
this.sendToIndividualRoom({ peer: { clientId: id, rtseeAppId: transport.peer.rtseeAppId } }, common_1.RTSeeMessengerEvents.INCOMING_MESSAGE, savedMessage);
|
|
226
224
|
}
|
|
227
225
|
});
|
|
228
226
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTSeeMessengerSignaling.js","sourceRoot":"","sources":["../../../../src/models/RTSeeMessengerSignaling.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAAkE;
|
|
1
|
+
{"version":3,"file":"RTSeeMessengerSignaling.js","sourceRoot":"","sources":["../../../../src/models/RTSeeMessengerSignaling.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IPeer, RTSeeSignalHandler } from "@rtsee/core";
|
|
2
|
+
import { IRTSeeMessengerStorageProcessor } from "@rtsee/live-storage";
|
|
3
|
+
export interface IRTSeeMessengerSignalingHandlers {
|
|
4
|
+
getPeer: RTSeeSignalHandler<string, IPeer>;
|
|
5
|
+
}
|
|
6
|
+
export declare function getMessengerHandlers(storage: IRTSeeMessengerStorageProcessor): IRTSeeMessengerSignalingHandlers;
|
|
7
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../src/models/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAML,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC5C;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,+BAA+B,GACvC,gCAAgC,CA6BlC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMessengerHandlers = getMessengerHandlers;
|
|
4
|
+
const core_1 = require("@rtsee/core");
|
|
5
|
+
function getMessengerHandlers(storage) {
|
|
6
|
+
return {
|
|
7
|
+
getPeer: new core_1.RTSeeSignalHandler({
|
|
8
|
+
eventName: core_1.RTSeeEvents.GET_PEER,
|
|
9
|
+
processor(socketPeer, peerId) {
|
|
10
|
+
return storage.getPeerById((0, core_1.socketPeerToTransport)(socketPeer), peerId);
|
|
11
|
+
},
|
|
12
|
+
onSuccess(options) {
|
|
13
|
+
options.socketPeer.emit(options.eventName, options.data);
|
|
14
|
+
},
|
|
15
|
+
onError(options) {
|
|
16
|
+
const error = {
|
|
17
|
+
name: options.eventName,
|
|
18
|
+
code: options.eventName,
|
|
19
|
+
message: `${options.error}`,
|
|
20
|
+
friendlyMessage: `Failed to get the peer with id: ${options.payload}.`
|
|
21
|
+
};
|
|
22
|
+
options.socketPeer.emit(options.eventName, error);
|
|
23
|
+
return error;
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/models/handlers.ts"],"names":[],"mappings":";;AAgBA,oDA+BC;AA/CD,sCASqB;AAOrB,SAAgB,oBAAoB,CAClC,OAAwC;IAExC,OAAO;QACL,OAAO,EAAE,IAAI,yBAAkB,CAAgB;YAC7C,SAAS,EAAE,kBAAW,CAAC,QAAQ;YAC/B,SAAS,CACP,UAAuB,EACvB,MAAc;gBAEd,OAAO,OAAO,CAAC,WAAW,CAAC,IAAA,4BAAqB,EAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;YACxE,CAAC;YACD,SAAS,CACP,OAAoD;gBAEpD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,CACL,OAAmD;gBAEnD,MAAM,KAAK,GAAyB;oBAClC,IAAI,EAAE,OAAO,CAAC,SAAS;oBACvB,IAAI,EAAE,OAAO,CAAC,SAAS;oBACvB,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE;oBAC3B,eAAe,EAAE,mCAAmC,OAAO,CAAC,OAAO,GAAG;iBACvE,CAAA;gBACD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAClD,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC;KACH,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./RTSeeMessengerSignaling"), exports);
|
|
18
|
+
__exportStar(require("./handlers"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,6CAA2B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rtsee/messenger-signaling",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.78",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "dist/messenger-signaling/src/index",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"publishConfig": {
|
|
49
49
|
"access": "public"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "e84bc0a51f9a931c02257f74ac16974f40964939"
|
|
52
52
|
}
|