@eleven-am/pondsocket 0.1.198 → 0.1.200
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/contexts/connectionContext.js +169 -0
- package/contexts/eventContext.js +143 -0
- package/contexts/joinContext.js +192 -0
- package/engines/channelEngine.js +1 -4
- package/engines/endpointEngine.js +3 -5
- package/engines/lobbyEngine.js +14 -7
- package/package.json +1 -1
- package/server/server.js +16 -14
- package/types.d.ts +155 -83
- package/requests/eventRequest.js +0 -69
- package/requests/joinRequest.js +0 -56
- package/responses/connectionResponse.js +0 -92
- package/responses/eventResponse.js +0 -101
- package/responses/joinResponse.js +0 -134
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _EventResponse_instances, _EventResponse_event, _EventResponse_engine, _EventResponse_requestId, _EventResponse_sendMessage;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.EventResponse = void 0;
|
|
16
|
-
const pondsocket_common_1 = require("@eleven-am/pondsocket-common");
|
|
17
|
-
class EventResponse {
|
|
18
|
-
constructor(event, engine) {
|
|
19
|
-
_EventResponse_instances.add(this);
|
|
20
|
-
_EventResponse_event.set(this, void 0);
|
|
21
|
-
_EventResponse_engine.set(this, void 0);
|
|
22
|
-
_EventResponse_requestId.set(this, void 0);
|
|
23
|
-
__classPrivateFieldSet(this, _EventResponse_event, event, "f");
|
|
24
|
-
__classPrivateFieldSet(this, _EventResponse_engine, engine, "f");
|
|
25
|
-
__classPrivateFieldSet(this, _EventResponse_requestId, event.requestId, "f");
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Whether the response has been handled
|
|
29
|
-
*/
|
|
30
|
-
get hasResponded() {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Assigns data to the client
|
|
35
|
-
*/
|
|
36
|
-
assign(assigns) {
|
|
37
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").updateAssigns(__classPrivateFieldGet(this, _EventResponse_event, "f").sender, assigns);
|
|
38
|
-
return this;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Sends a direct reply to the client
|
|
42
|
-
*/
|
|
43
|
-
reply(event, payload) {
|
|
44
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(pondsocket_common_1.SystemSender.CHANNEL, [__classPrivateFieldGet(this, _EventResponse_event, "f").sender], pondsocket_common_1.ServerActions.SYSTEM, event, payload, __classPrivateFieldGet(this, _EventResponse_requestId, "f"));
|
|
45
|
-
return this;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Broadcasts a message to all users in the channel
|
|
49
|
-
*/
|
|
50
|
-
broadcast(event, payload) {
|
|
51
|
-
__classPrivateFieldGet(this, _EventResponse_instances, "m", _EventResponse_sendMessage).call(this, pondsocket_common_1.ChannelReceiver.ALL_USERS, event, payload);
|
|
52
|
-
return this;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Broadcasts a message to all users except the sender
|
|
56
|
-
*/
|
|
57
|
-
broadcastFrom(event, payload) {
|
|
58
|
-
__classPrivateFieldGet(this, _EventResponse_instances, "m", _EventResponse_sendMessage).call(this, pondsocket_common_1.ChannelReceiver.ALL_EXCEPT_SENDER, event, payload);
|
|
59
|
-
return this;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Broadcasts a message to specific users
|
|
63
|
-
*/
|
|
64
|
-
broadcastTo(event, payload, userIds) {
|
|
65
|
-
const ids = Array.isArray(userIds) ? userIds : [userIds];
|
|
66
|
-
__classPrivateFieldGet(this, _EventResponse_instances, "m", _EventResponse_sendMessage).call(this, ids, event, payload);
|
|
67
|
-
return this;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Tracks a user's presence
|
|
71
|
-
*/
|
|
72
|
-
trackPresence(presence, userId = __classPrivateFieldGet(this, _EventResponse_event, "f").sender) {
|
|
73
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").trackPresence(userId, presence);
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Updates a user's presence
|
|
78
|
-
*/
|
|
79
|
-
updatePresence(presence, userId = __classPrivateFieldGet(this, _EventResponse_event, "f").sender) {
|
|
80
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").updatePresence(userId, presence);
|
|
81
|
-
return this;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Kicks a user from the channel
|
|
85
|
-
*/
|
|
86
|
-
evictUser(reason, userId = __classPrivateFieldGet(this, _EventResponse_event, "f").sender) {
|
|
87
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").kickUser(userId, reason);
|
|
88
|
-
return this;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Removes a user's presence
|
|
92
|
-
*/
|
|
93
|
-
removePresence(userId = __classPrivateFieldGet(this, _EventResponse_event, "f").sender) {
|
|
94
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").removePresence(userId);
|
|
95
|
-
return this;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
exports.EventResponse = EventResponse;
|
|
99
|
-
_EventResponse_event = new WeakMap(), _EventResponse_engine = new WeakMap(), _EventResponse_requestId = new WeakMap(), _EventResponse_instances = new WeakSet(), _EventResponse_sendMessage = function _EventResponse_sendMessage(recipient, event, payload) {
|
|
100
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(__classPrivateFieldGet(this, _EventResponse_event, "f").sender, recipient, pondsocket_common_1.ServerActions.BROADCAST, event, payload, __classPrivateFieldGet(this, _EventResponse_requestId, "f"));
|
|
101
|
-
};
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _JoinResponse_instances, _JoinResponse_user, _JoinResponse_engine, _JoinResponse_newAssigns, _JoinResponse_executed, _JoinResponse_accepted, _JoinResponse_sendMessage, _JoinResponse_directMessage, _JoinResponse_performChecks;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.JoinResponse = void 0;
|
|
16
|
-
const pondsocket_common_1 = require("@eleven-am/pondsocket-common");
|
|
17
|
-
const httpError_1 = require("../errors/httpError");
|
|
18
|
-
class JoinResponse {
|
|
19
|
-
constructor(user, engine) {
|
|
20
|
-
_JoinResponse_instances.add(this);
|
|
21
|
-
_JoinResponse_user.set(this, void 0);
|
|
22
|
-
_JoinResponse_engine.set(this, void 0);
|
|
23
|
-
_JoinResponse_newAssigns.set(this, void 0);
|
|
24
|
-
_JoinResponse_executed.set(this, void 0);
|
|
25
|
-
_JoinResponse_accepted.set(this, void 0);
|
|
26
|
-
__classPrivateFieldSet(this, _JoinResponse_user, user, "f");
|
|
27
|
-
__classPrivateFieldSet(this, _JoinResponse_engine, engine, "f");
|
|
28
|
-
__classPrivateFieldSet(this, _JoinResponse_executed, false, "f");
|
|
29
|
-
__classPrivateFieldSet(this, _JoinResponse_accepted, false, "f");
|
|
30
|
-
__classPrivateFieldSet(this, _JoinResponse_newAssigns, Object.assign({}, user.assigns), "f");
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Whether the request has been handled
|
|
34
|
-
*/
|
|
35
|
-
get hasResponded() {
|
|
36
|
-
return __classPrivateFieldGet(this, _JoinResponse_executed, "f");
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Accepts the join request
|
|
40
|
-
*/
|
|
41
|
-
accept() {
|
|
42
|
-
__classPrivateFieldGet(this, _JoinResponse_instances, "m", _JoinResponse_performChecks).call(this);
|
|
43
|
-
const onMessage = __classPrivateFieldGet(this, _JoinResponse_engine, "f").parent.parent.sendMessage.bind(__classPrivateFieldGet(this, _JoinResponse_engine, "f").parent.parent, __classPrivateFieldGet(this, _JoinResponse_user, "f").socket);
|
|
44
|
-
const subscription = __classPrivateFieldGet(this, _JoinResponse_engine, "f").addUser(__classPrivateFieldGet(this, _JoinResponse_user, "f").clientId, __classPrivateFieldGet(this, _JoinResponse_newAssigns, "f"), onMessage);
|
|
45
|
-
__classPrivateFieldGet(this, _JoinResponse_user, "f").subscriptions.add(subscription);
|
|
46
|
-
__classPrivateFieldSet(this, _JoinResponse_accepted, true, "f");
|
|
47
|
-
return this;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Declines the join request
|
|
51
|
-
*/
|
|
52
|
-
decline(message, errorCode) {
|
|
53
|
-
__classPrivateFieldGet(this, _JoinResponse_instances, "m", _JoinResponse_performChecks).call(this);
|
|
54
|
-
const errorMessage = {
|
|
55
|
-
event: pondsocket_common_1.ErrorTypes.UNAUTHORIZED_JOIN_REQUEST,
|
|
56
|
-
payload: {
|
|
57
|
-
message: message || 'Unauthorized connection',
|
|
58
|
-
code: errorCode || 401,
|
|
59
|
-
},
|
|
60
|
-
channelName: __classPrivateFieldGet(this, _JoinResponse_engine, "f").name,
|
|
61
|
-
action: pondsocket_common_1.ServerActions.ERROR,
|
|
62
|
-
requestId: __classPrivateFieldGet(this, _JoinResponse_user, "f").requestId,
|
|
63
|
-
};
|
|
64
|
-
__classPrivateFieldGet(this, _JoinResponse_instances, "m", _JoinResponse_directMessage).call(this, errorMessage);
|
|
65
|
-
return this;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Assigns data to the user
|
|
69
|
-
*/
|
|
70
|
-
assign(assigns) {
|
|
71
|
-
if (__classPrivateFieldGet(this, _JoinResponse_accepted, "f")) {
|
|
72
|
-
__classPrivateFieldGet(this, _JoinResponse_engine, "f").updateAssigns(__classPrivateFieldGet(this, _JoinResponse_user, "f").clientId, assigns);
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
__classPrivateFieldSet(this, _JoinResponse_newAssigns, Object.assign(Object.assign({}, __classPrivateFieldGet(this, _JoinResponse_newAssigns, "f")), assigns), "f");
|
|
76
|
-
}
|
|
77
|
-
return this;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Sends a direct reply to the user
|
|
81
|
-
*/
|
|
82
|
-
reply(event, payload) {
|
|
83
|
-
const message = {
|
|
84
|
-
action: pondsocket_common_1.ServerActions.SYSTEM,
|
|
85
|
-
channelName: __classPrivateFieldGet(this, _JoinResponse_engine, "f").name,
|
|
86
|
-
requestId: __classPrivateFieldGet(this, _JoinResponse_user, "f").requestId,
|
|
87
|
-
payload,
|
|
88
|
-
event,
|
|
89
|
-
};
|
|
90
|
-
__classPrivateFieldGet(this, _JoinResponse_instances, "m", _JoinResponse_directMessage).call(this, message);
|
|
91
|
-
return this;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Broadcasts a message to specific users
|
|
95
|
-
*/
|
|
96
|
-
broadcastTo(event, payload, userIds) {
|
|
97
|
-
const ids = Array.isArray(userIds) ? userIds : [userIds];
|
|
98
|
-
__classPrivateFieldGet(this, _JoinResponse_instances, "m", _JoinResponse_sendMessage).call(this, ids, event, payload);
|
|
99
|
-
return this;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Broadcasts a message to all users in the channel
|
|
103
|
-
*/
|
|
104
|
-
broadcast(event, payload) {
|
|
105
|
-
__classPrivateFieldGet(this, _JoinResponse_instances, "m", _JoinResponse_sendMessage).call(this, pondsocket_common_1.ChannelReceiver.ALL_USERS, event, payload);
|
|
106
|
-
return this;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Broadcasts a message to all users except the sender
|
|
110
|
-
*/
|
|
111
|
-
broadcastFrom(event, payload) {
|
|
112
|
-
__classPrivateFieldGet(this, _JoinResponse_instances, "m", _JoinResponse_sendMessage).call(this, pondsocket_common_1.ChannelReceiver.ALL_EXCEPT_SENDER, event, payload);
|
|
113
|
-
return this;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Tracks the user's presence
|
|
117
|
-
*/
|
|
118
|
-
trackPresence(presence) {
|
|
119
|
-
__classPrivateFieldGet(this, _JoinResponse_engine, "f").trackPresence(__classPrivateFieldGet(this, _JoinResponse_user, "f").clientId, presence);
|
|
120
|
-
return this;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
exports.JoinResponse = JoinResponse;
|
|
124
|
-
_JoinResponse_user = new WeakMap(), _JoinResponse_engine = new WeakMap(), _JoinResponse_newAssigns = new WeakMap(), _JoinResponse_executed = new WeakMap(), _JoinResponse_accepted = new WeakMap(), _JoinResponse_instances = new WeakSet(), _JoinResponse_sendMessage = function _JoinResponse_sendMessage(recipient, event, payload) {
|
|
125
|
-
__classPrivateFieldGet(this, _JoinResponse_engine, "f").sendMessage(__classPrivateFieldGet(this, _JoinResponse_user, "f").clientId, recipient, pondsocket_common_1.ServerActions.BROADCAST, event, payload, __classPrivateFieldGet(this, _JoinResponse_user, "f").requestId);
|
|
126
|
-
}, _JoinResponse_directMessage = function _JoinResponse_directMessage(event) {
|
|
127
|
-
__classPrivateFieldGet(this, _JoinResponse_engine, "f").parent.parent.sendMessage(__classPrivateFieldGet(this, _JoinResponse_user, "f").socket, event);
|
|
128
|
-
}, _JoinResponse_performChecks = function _JoinResponse_performChecks() {
|
|
129
|
-
if (__classPrivateFieldGet(this, _JoinResponse_executed, "f")) {
|
|
130
|
-
const message = `Request to join channel ${__classPrivateFieldGet(this, _JoinResponse_engine, "f").name} rejected: Request already executed`;
|
|
131
|
-
throw new httpError_1.HttpError(403, message);
|
|
132
|
-
}
|
|
133
|
-
__classPrivateFieldSet(this, _JoinResponse_executed, true, "f");
|
|
134
|
-
};
|