@eleven-am/pondsocket 0.1.115 → 0.1.116
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 +47 -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,30 @@ 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, 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
|
-
response
|
|
271
|
+
if (response) {
|
|
272
|
+
if (event && typeof event === 'string' && isNotEmpty(rest)) {
|
|
273
|
+
response.send(event, rest, assigns);
|
|
274
|
+
}
|
|
275
|
+
else if (isNotEmpty(assigns)) {
|
|
276
|
+
response.accept(assigns);
|
|
277
|
+
}
|
|
278
|
+
if (broadcast && typeof broadcast === 'string' && isNotEmpty(rest) && 'broadcast' in response) {
|
|
279
|
+
response.broadcast(broadcast, rest);
|
|
280
|
+
}
|
|
281
|
+
if ('trackPresence' in response && presence) {
|
|
282
|
+
response.trackPresence(presence);
|
|
283
|
+
}
|
|
284
|
+
else if ('updatePresence' in response && updatePresence) {
|
|
285
|
+
response.updatePresence(updatePresence);
|
|
286
|
+
}
|
|
282
287
|
}
|
|
283
|
-
else if (
|
|
284
|
-
|
|
288
|
+
else if (channel && broadcast && typeof broadcast === 'string' && isNotEmpty(rest)) {
|
|
289
|
+
channel.broadcastMessage(broadcast, rest);
|
|
285
290
|
}
|
|
286
291
|
}
|
|
287
292
|
function manageError(error, response) {
|
|
@@ -527,29 +532,38 @@ function GetChannel() {
|
|
|
527
532
|
})(null);
|
|
528
533
|
}
|
|
529
534
|
exports.GetChannel = GetChannel;
|
|
530
|
-
function manageAction(instance, moduleRef, originalMethod, propertyKey, request, response) {
|
|
535
|
+
function manageAction(instance, moduleRef, originalMethod, propertyKey, leaveEvent, request, response) {
|
|
531
536
|
return __awaiter(this, void 0, void 0, function* () {
|
|
532
537
|
const req = {};
|
|
533
538
|
const res = {};
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
539
|
+
let channel = null;
|
|
540
|
+
if (request && response) {
|
|
541
|
+
if (request instanceof joinRequest_1.JoinRequest && response instanceof joinResponse_1.JoinResponse) {
|
|
542
|
+
channel = request.channel;
|
|
543
|
+
req.joinRequest = request;
|
|
544
|
+
res.joinResponse = response;
|
|
545
|
+
}
|
|
546
|
+
else if (request instanceof eventRequest_1.EventRequest && response instanceof eventResponse_1.EventResponse) {
|
|
547
|
+
channel = request.channel;
|
|
548
|
+
req.eventRequest = request;
|
|
549
|
+
res.eventResponse = response;
|
|
550
|
+
}
|
|
551
|
+
else if ('headers' in request && response instanceof response_1.ConnectionResponse) {
|
|
552
|
+
req.connection = request;
|
|
553
|
+
res.connection = response;
|
|
554
|
+
}
|
|
541
555
|
}
|
|
542
|
-
else if (
|
|
543
|
-
|
|
544
|
-
|
|
556
|
+
else if (leaveEvent) {
|
|
557
|
+
channel = leaveEvent.channel;
|
|
558
|
+
req.leveeEvent = leaveEvent;
|
|
545
559
|
}
|
|
546
560
|
const context = new Context(req, res, instance, propertyKey);
|
|
547
561
|
const canProceed = yield resolveGuards(moduleRef, context);
|
|
548
562
|
if (canProceed) {
|
|
549
563
|
const data = yield originalMethod.apply(instance, resolveParameters(context));
|
|
550
|
-
manageResponse(data, response);
|
|
564
|
+
manageResponse(data, channel, response);
|
|
551
565
|
}
|
|
552
|
-
else {
|
|
566
|
+
else if (response) {
|
|
553
567
|
response.reject('Unauthorized', 401);
|
|
554
568
|
}
|
|
555
569
|
});
|
|
@@ -560,7 +574,7 @@ function OnConnectionRequest() {
|
|
|
560
574
|
const { set } = manageConnectionHandlers(target);
|
|
561
575
|
set('', (instance, moduleRef, request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
562
576
|
try {
|
|
563
|
-
yield manageAction(instance, moduleRef, originalMethod, propertyKey, request, response);
|
|
577
|
+
yield manageAction(instance, moduleRef, originalMethod, propertyKey, null, request, response);
|
|
564
578
|
}
|
|
565
579
|
catch (error) {
|
|
566
580
|
manageError(error, response);
|
|
@@ -575,7 +589,7 @@ function OnJoinRequest() {
|
|
|
575
589
|
const { set } = manageJoinHandlers(target);
|
|
576
590
|
set('', (instance, moduleRef, request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
577
591
|
try {
|
|
578
|
-
yield manageAction(instance, moduleRef, originalMethod, propertyKey, request, response);
|
|
592
|
+
yield manageAction(instance, moduleRef, originalMethod, propertyKey, null, request, response);
|
|
579
593
|
}
|
|
580
594
|
catch (error) {
|
|
581
595
|
manageError(error, response);
|
|
@@ -590,7 +604,7 @@ function OnEvent(event = '*') {
|
|
|
590
604
|
const { set } = manageEventHandlers(target);
|
|
591
605
|
set(event, (instance, moduleRef, request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
592
606
|
try {
|
|
593
|
-
yield manageAction(instance, moduleRef, originalMethod, propertyKey, request, response);
|
|
607
|
+
yield manageAction(instance, moduleRef, originalMethod, propertyKey, null, request, response);
|
|
594
608
|
}
|
|
595
609
|
catch (error) {
|
|
596
610
|
manageError(error, response);
|
|
@@ -603,11 +617,8 @@ function OnLeaveEvent() {
|
|
|
603
617
|
return (target, propertyKey, descriptor) => {
|
|
604
618
|
const originalMethod = descriptor.value;
|
|
605
619
|
const { set } = manageOnLeaveHandlers(target);
|
|
606
|
-
set('', (instance,
|
|
607
|
-
|
|
608
|
-
leveeEvent: event,
|
|
609
|
-
}, {}, instance, propertyKey);
|
|
610
|
-
yield originalMethod.apply(instance, resolveParameters(context));
|
|
620
|
+
set('', (instance, moduleRef, event) => __awaiter(this, void 0, void 0, function* () {
|
|
621
|
+
yield manageAction(instance, moduleRef, originalMethod, propertyKey, event);
|
|
611
622
|
}));
|
|
612
623
|
};
|
|
613
624
|
}
|
package/package.json
CHANGED