@eleven-am/pondsocket 0.1.115 → 0.1.118
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/channel/channel.js +41 -40
- package/nest.js +57 -36
- package/package.json +1 -1
- package/types.d.ts +1 -0
package/channel/channel.js
CHANGED
|
@@ -21,15 +21,53 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
}
|
|
22
22
|
return t;
|
|
23
23
|
};
|
|
24
|
-
var _ChannelEngine_instances, _ChannelEngine_receiver, _ChannelEngine_presenceEngine, _ChannelEngine_users, _ChannelEngine_parentEngine, _ChannelEngine_subscribe, _ChannelEngine_getUsersFromRecipients
|
|
24
|
+
var _Channel_engine, _ChannelEngine_instances, _ChannelEngine_receiver, _ChannelEngine_presenceEngine, _ChannelEngine_users, _ChannelEngine_parentEngine, _ChannelEngine_subscribe, _ChannelEngine_getUsersFromRecipients;
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.ChannelEngine = exports.Channel = void 0;
|
|
27
27
|
const eventRequest_1 = require("./eventRequest");
|
|
28
28
|
const eventResponse_1 = require("./eventResponse");
|
|
29
29
|
const enums_1 = require("../enums");
|
|
30
30
|
const pondError_1 = require("../errors/pondError");
|
|
31
31
|
const presence_1 = require("../presence/presence");
|
|
32
32
|
const subject_1 = require("../subjects/subject");
|
|
33
|
+
class Channel {
|
|
34
|
+
constructor(engine) {
|
|
35
|
+
_Channel_engine.set(this, void 0);
|
|
36
|
+
__classPrivateFieldSet(this, _Channel_engine, engine, "f");
|
|
37
|
+
}
|
|
38
|
+
get name() {
|
|
39
|
+
return __classPrivateFieldGet(this, _Channel_engine, "f").name;
|
|
40
|
+
}
|
|
41
|
+
getAssigns() {
|
|
42
|
+
return __classPrivateFieldGet(this, _Channel_engine, "f").getAssigns();
|
|
43
|
+
}
|
|
44
|
+
getUserData(userId) {
|
|
45
|
+
return __classPrivateFieldGet(this, _Channel_engine, "f").getUserData(userId);
|
|
46
|
+
}
|
|
47
|
+
broadcastMessage(event, payload) {
|
|
48
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.BROADCAST, event, payload);
|
|
49
|
+
}
|
|
50
|
+
sendToUser(userId, event, payload) {
|
|
51
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, [userId], enums_1.ServerActions.BROADCAST, event, payload);
|
|
52
|
+
}
|
|
53
|
+
sendToUsers(userIds, event, payload) {
|
|
54
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, userIds, enums_1.ServerActions.BROADCAST, event, payload);
|
|
55
|
+
}
|
|
56
|
+
evictUser(userId, reason) {
|
|
57
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").kickUser(userId, reason !== null && reason !== void 0 ? reason : 'You have been banned from the channel');
|
|
58
|
+
}
|
|
59
|
+
trackPresence(userId, presence) {
|
|
60
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").presenceEngine.trackPresence(userId, presence);
|
|
61
|
+
}
|
|
62
|
+
removePresence(userId) {
|
|
63
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").presenceEngine.removePresence(userId);
|
|
64
|
+
}
|
|
65
|
+
updatePresence(userId, presence) {
|
|
66
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").presenceEngine.updatePresence(userId, presence);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.Channel = Channel;
|
|
70
|
+
_Channel_engine = new WeakMap();
|
|
33
71
|
class ChannelEngine {
|
|
34
72
|
constructor(name, parent) {
|
|
35
73
|
_ChannelEngine_instances.add(this);
|
|
@@ -74,6 +112,7 @@ class ChannelEngine {
|
|
|
74
112
|
__classPrivateFieldGet(this, _ChannelEngine_parentEngine, "f").leaveCallback({
|
|
75
113
|
userId,
|
|
76
114
|
assigns: user,
|
|
115
|
+
channel: new Channel(this),
|
|
77
116
|
});
|
|
78
117
|
}
|
|
79
118
|
if (__classPrivateFieldGet(this, _ChannelEngine_users, "f").size === 0) {
|
|
@@ -247,41 +286,3 @@ _ChannelEngine_receiver = new WeakMap(), _ChannelEngine_presenceEngine = new Wea
|
|
|
247
286
|
}
|
|
248
287
|
return users;
|
|
249
288
|
};
|
|
250
|
-
class Channel {
|
|
251
|
-
constructor(engine) {
|
|
252
|
-
_Channel_engine.set(this, void 0);
|
|
253
|
-
__classPrivateFieldSet(this, _Channel_engine, engine, "f");
|
|
254
|
-
}
|
|
255
|
-
get name() {
|
|
256
|
-
return __classPrivateFieldGet(this, _Channel_engine, "f").name;
|
|
257
|
-
}
|
|
258
|
-
getAssigns() {
|
|
259
|
-
return __classPrivateFieldGet(this, _Channel_engine, "f").getAssigns();
|
|
260
|
-
}
|
|
261
|
-
getUserData(userId) {
|
|
262
|
-
return __classPrivateFieldGet(this, _Channel_engine, "f").getUserData(userId);
|
|
263
|
-
}
|
|
264
|
-
broadcastMessage(event, payload) {
|
|
265
|
-
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.BROADCAST, event, payload);
|
|
266
|
-
}
|
|
267
|
-
sendToUser(userId, event, payload) {
|
|
268
|
-
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, [userId], enums_1.ServerActions.BROADCAST, event, payload);
|
|
269
|
-
}
|
|
270
|
-
sendToUsers(userIds, event, payload) {
|
|
271
|
-
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, userIds, enums_1.ServerActions.BROADCAST, event, payload);
|
|
272
|
-
}
|
|
273
|
-
evictUser(userId, reason) {
|
|
274
|
-
__classPrivateFieldGet(this, _Channel_engine, "f").kickUser(userId, reason !== null && reason !== void 0 ? reason : 'You have been banned from the channel');
|
|
275
|
-
}
|
|
276
|
-
trackPresence(userId, presence) {
|
|
277
|
-
__classPrivateFieldGet(this, _Channel_engine, "f").presenceEngine.trackPresence(userId, presence);
|
|
278
|
-
}
|
|
279
|
-
removePresence(userId) {
|
|
280
|
-
__classPrivateFieldGet(this, _Channel_engine, "f").presenceEngine.removePresence(userId);
|
|
281
|
-
}
|
|
282
|
-
updatePresence(userId, presence) {
|
|
283
|
-
__classPrivateFieldGet(this, _Channel_engine, "f").presenceEngine.updatePresence(userId, presence);
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
exports.Channel = Channel;
|
|
287
|
-
_Channel_engine = new WeakMap();
|
package/nest.js
CHANGED
|
@@ -263,25 +263,35 @@ class Context {
|
|
|
263
263
|
return (_a = this.data[key]) !== null && _a !== void 0 ? _a : null;
|
|
264
264
|
}
|
|
265
265
|
}
|
|
266
|
-
function manageResponse(data, response) {
|
|
267
|
-
if (response.hasResponded || !isNotEmpty(data)) {
|
|
266
|
+
function manageResponse(data, channel, clientId, response) {
|
|
267
|
+
if (response && response.hasResponded || !isNotEmpty(data)) {
|
|
268
268
|
return;
|
|
269
269
|
}
|
|
270
270
|
const { event, presence, updatePresence, assigns, broadcast } = data, rest = __rest(data, ["event", "presence", "updatePresence", "assigns", "broadcast"]);
|
|
271
|
-
if (
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
271
|
+
if (response) {
|
|
272
|
+
if (event && typeof event === 'string' && isNotEmpty(rest)) {
|
|
273
|
+
if (clientId && response instanceof eventResponse_1.EventResponse && !isNotEmpty(assigns)) {
|
|
274
|
+
response.sendToUsers(event, rest, [clientId]);
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
response.send(event, rest, assigns);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
else if (isNotEmpty(assigns)) {
|
|
281
|
+
response.accept(assigns);
|
|
282
|
+
}
|
|
283
|
+
if (broadcast && typeof broadcast === 'string' && isNotEmpty(rest) && 'broadcast' in response) {
|
|
284
|
+
response.broadcast(broadcast, rest);
|
|
285
|
+
}
|
|
286
|
+
if ('trackPresence' in response && presence) {
|
|
287
|
+
response.trackPresence(presence);
|
|
288
|
+
}
|
|
289
|
+
else if ('updatePresence' in response && updatePresence) {
|
|
290
|
+
response.updatePresence(updatePresence);
|
|
291
|
+
}
|
|
282
292
|
}
|
|
283
|
-
else if (
|
|
284
|
-
|
|
293
|
+
else if (channel && broadcast && typeof broadcast === 'string' && isNotEmpty(rest)) {
|
|
294
|
+
channel.broadcastMessage(broadcast, rest);
|
|
285
295
|
}
|
|
286
296
|
}
|
|
287
297
|
function manageError(error, response) {
|
|
@@ -527,29 +537,43 @@ function GetChannel() {
|
|
|
527
537
|
})(null);
|
|
528
538
|
}
|
|
529
539
|
exports.GetChannel = GetChannel;
|
|
530
|
-
function manageAction(instance, moduleRef, originalMethod, propertyKey, request, response) {
|
|
540
|
+
function manageAction(instance, moduleRef, originalMethod, propertyKey, leaveEvent, request, response) {
|
|
531
541
|
return __awaiter(this, void 0, void 0, function* () {
|
|
532
542
|
const req = {};
|
|
533
543
|
const res = {};
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
544
|
+
let channel = null;
|
|
545
|
+
let clientId = null;
|
|
546
|
+
if (request && response) {
|
|
547
|
+
if (request instanceof joinRequest_1.JoinRequest && response instanceof joinResponse_1.JoinResponse) {
|
|
548
|
+
channel = request.channel;
|
|
549
|
+
clientId = request.user.id;
|
|
550
|
+
req.joinRequest = request;
|
|
551
|
+
res.joinResponse = response;
|
|
552
|
+
}
|
|
553
|
+
else if (request instanceof eventRequest_1.EventRequest && response instanceof eventResponse_1.EventResponse) {
|
|
554
|
+
channel = request.channel;
|
|
555
|
+
clientId = request.user.id;
|
|
556
|
+
req.eventRequest = request;
|
|
557
|
+
res.eventResponse = response;
|
|
558
|
+
}
|
|
559
|
+
else if ('headers' in request && response instanceof response_1.ConnectionResponse) {
|
|
560
|
+
clientId = request.id;
|
|
561
|
+
req.connection = request;
|
|
562
|
+
res.connection = response;
|
|
563
|
+
}
|
|
541
564
|
}
|
|
542
|
-
else if (
|
|
543
|
-
|
|
544
|
-
|
|
565
|
+
else if (leaveEvent) {
|
|
566
|
+
clientId = leaveEvent.userId;
|
|
567
|
+
channel = leaveEvent.channel;
|
|
568
|
+
req.leveeEvent = leaveEvent;
|
|
545
569
|
}
|
|
546
570
|
const context = new Context(req, res, instance, propertyKey);
|
|
547
571
|
const canProceed = yield resolveGuards(moduleRef, context);
|
|
548
572
|
if (canProceed) {
|
|
549
573
|
const data = yield originalMethod.apply(instance, resolveParameters(context));
|
|
550
|
-
manageResponse(data, response);
|
|
574
|
+
manageResponse(data, channel, clientId, response);
|
|
551
575
|
}
|
|
552
|
-
else {
|
|
576
|
+
else if (response) {
|
|
553
577
|
response.reject('Unauthorized', 401);
|
|
554
578
|
}
|
|
555
579
|
});
|
|
@@ -560,7 +584,7 @@ function OnConnectionRequest() {
|
|
|
560
584
|
const { set } = manageConnectionHandlers(target);
|
|
561
585
|
set('', (instance, moduleRef, request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
562
586
|
try {
|
|
563
|
-
yield manageAction(instance, moduleRef, originalMethod, propertyKey, request, response);
|
|
587
|
+
yield manageAction(instance, moduleRef, originalMethod, propertyKey, null, request, response);
|
|
564
588
|
}
|
|
565
589
|
catch (error) {
|
|
566
590
|
manageError(error, response);
|
|
@@ -575,7 +599,7 @@ function OnJoinRequest() {
|
|
|
575
599
|
const { set } = manageJoinHandlers(target);
|
|
576
600
|
set('', (instance, moduleRef, request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
577
601
|
try {
|
|
578
|
-
yield manageAction(instance, moduleRef, originalMethod, propertyKey, request, response);
|
|
602
|
+
yield manageAction(instance, moduleRef, originalMethod, propertyKey, null, request, response);
|
|
579
603
|
}
|
|
580
604
|
catch (error) {
|
|
581
605
|
manageError(error, response);
|
|
@@ -590,7 +614,7 @@ function OnEvent(event = '*') {
|
|
|
590
614
|
const { set } = manageEventHandlers(target);
|
|
591
615
|
set(event, (instance, moduleRef, request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
592
616
|
try {
|
|
593
|
-
yield manageAction(instance, moduleRef, originalMethod, propertyKey, request, response);
|
|
617
|
+
yield manageAction(instance, moduleRef, originalMethod, propertyKey, null, request, response);
|
|
594
618
|
}
|
|
595
619
|
catch (error) {
|
|
596
620
|
manageError(error, response);
|
|
@@ -603,11 +627,8 @@ function OnLeaveEvent() {
|
|
|
603
627
|
return (target, propertyKey, descriptor) => {
|
|
604
628
|
const originalMethod = descriptor.value;
|
|
605
629
|
const { set } = manageOnLeaveHandlers(target);
|
|
606
|
-
set('', (instance,
|
|
607
|
-
|
|
608
|
-
leveeEvent: event,
|
|
609
|
-
}, {}, instance, propertyKey);
|
|
610
|
-
yield originalMethod.apply(instance, resolveParameters(context));
|
|
630
|
+
set('', (instance, moduleRef, event) => __awaiter(this, void 0, void 0, function* () {
|
|
631
|
+
yield manageAction(instance, moduleRef, originalMethod, propertyKey, event);
|
|
611
632
|
}));
|
|
612
633
|
};
|
|
613
634
|
}
|
package/package.json
CHANGED