@eleven-am/pondsocket 0.1.125 → 0.1.126
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/abstracts/abstractResponse.js +3 -0
- package/channel/channel.js +13 -9
- package/channel/eventResponse.js +8 -8
- package/client/channel.js +44 -43
- package/endpoint/endpoint.js +21 -24
- package/endpoint/response.js +4 -2
- package/lobby/joinResponse.js +7 -5
- package/lobby/lobby.js +3 -2
- package/misc/uuid.js +12 -0
- package/package.json +1 -1
- package/presence/presence.js +2 -1
- package/schema.js +13 -0
package/channel/channel.js
CHANGED
|
@@ -28,6 +28,7 @@ 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
|
+
const uuid_1 = require("../misc/uuid");
|
|
31
32
|
const presence_1 = require("../presence/presence");
|
|
32
33
|
const subject_1 = require("../subjects/subject");
|
|
33
34
|
class Channel {
|
|
@@ -45,16 +46,16 @@ class Channel {
|
|
|
45
46
|
return __classPrivateFieldGet(this, _Channel_engine, "f").getUserData(userId);
|
|
46
47
|
}
|
|
47
48
|
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
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage((0, uuid_1.uuid)(), enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.BROADCAST, event, payload);
|
|
49
50
|
}
|
|
50
51
|
broadcastMessageFromUser(userId, event, payload) {
|
|
51
|
-
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage(userId, enums_1.ChannelReceiver.ALL_EXCEPT_SENDER, enums_1.ServerActions.BROADCAST, event, payload);
|
|
52
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage((0, uuid_1.uuid)(), userId, enums_1.ChannelReceiver.ALL_EXCEPT_SENDER, enums_1.ServerActions.BROADCAST, event, payload);
|
|
52
53
|
}
|
|
53
54
|
sendToUser(userId, event, payload) {
|
|
54
|
-
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, [userId], enums_1.ServerActions.BROADCAST, event, payload);
|
|
55
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage((0, uuid_1.uuid)(), enums_1.SystemSender.CHANNEL, [userId], enums_1.ServerActions.BROADCAST, event, payload);
|
|
55
56
|
}
|
|
56
57
|
sendToUsers(userIds, event, payload) {
|
|
57
|
-
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, userIds, enums_1.ServerActions.BROADCAST, event, payload);
|
|
58
|
+
__classPrivateFieldGet(this, _Channel_engine, "f").sendMessage((0, uuid_1.uuid)(), enums_1.SystemSender.CHANNEL, userIds, enums_1.ServerActions.BROADCAST, event, payload);
|
|
58
59
|
}
|
|
59
60
|
evictUser(userId, reason) {
|
|
60
61
|
__classPrivateFieldGet(this, _Channel_engine, "f").kickUser(userId, reason !== null && reason !== void 0 ? reason : 'You have been banned from the channel');
|
|
@@ -132,12 +133,12 @@ class ChannelEngine {
|
|
|
132
133
|
* @param reason - The reason for kicking the user
|
|
133
134
|
*/
|
|
134
135
|
kickUser(userId, reason) {
|
|
135
|
-
this.sendMessage(enums_1.SystemSender.CHANNEL, [userId], enums_1.ServerActions.SYSTEM, 'kicked_out', {
|
|
136
|
+
this.sendMessage((0, uuid_1.uuid)(), enums_1.SystemSender.CHANNEL, [userId], enums_1.ServerActions.SYSTEM, 'kicked_out', {
|
|
136
137
|
message: reason,
|
|
137
138
|
code: 403,
|
|
138
139
|
});
|
|
139
140
|
this.removeUser(userId);
|
|
140
|
-
this.sendMessage(enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.SYSTEM, 'kicked', {
|
|
141
|
+
this.sendMessage((0, uuid_1.uuid)(), enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.SYSTEM, 'kicked', {
|
|
141
142
|
userId,
|
|
142
143
|
reason,
|
|
143
144
|
});
|
|
@@ -147,7 +148,7 @@ class ChannelEngine {
|
|
|
147
148
|
* @param reason - The reason for self-destructing the channel
|
|
148
149
|
*/
|
|
149
150
|
destroy(reason) {
|
|
150
|
-
this.sendMessage(enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.ERROR, 'destroyed', {
|
|
151
|
+
this.sendMessage((0, uuid_1.uuid)(), enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.ERROR, 'destroyed', {
|
|
151
152
|
message: reason !== null && reason !== void 0 ? reason : 'Channel has been destroyed',
|
|
152
153
|
});
|
|
153
154
|
__classPrivateFieldGet(this, _ChannelEngine_parentEngine, "f").destroyChannel();
|
|
@@ -195,19 +196,21 @@ class ChannelEngine {
|
|
|
195
196
|
}
|
|
196
197
|
/**
|
|
197
198
|
* @desc Sends a message to a specified set of users, from a specified sender
|
|
199
|
+
* @param requestId - The id of the request
|
|
198
200
|
* @param sender - The sender of the message
|
|
199
201
|
* @param recipient - The users to send the message to
|
|
200
202
|
* @param action - The action of the message
|
|
201
203
|
* @param event - The event name
|
|
202
204
|
* @param payload - The payload of the message
|
|
203
205
|
*/
|
|
204
|
-
sendMessage(sender, recipient, action, event, payload) {
|
|
206
|
+
sendMessage(requestId, sender, recipient, action, event, payload) {
|
|
205
207
|
if (!__classPrivateFieldGet(this, _ChannelEngine_users, "f").has(sender) && sender !== enums_1.SystemSender.CHANNEL) {
|
|
206
208
|
throw new pondError_1.ChannelError(`ChannelEngine: User with id ${sender} does not exist in channel ${this.name}`, 404, this.name);
|
|
207
209
|
}
|
|
208
210
|
const eventMessage = {
|
|
209
211
|
recipients: __classPrivateFieldGet(this, _ChannelEngine_instances, "m", _ChannelEngine_getUsersFromRecipients).call(this, recipient, sender),
|
|
210
212
|
channelName: this.name,
|
|
213
|
+
requestId,
|
|
211
214
|
action,
|
|
212
215
|
payload,
|
|
213
216
|
event,
|
|
@@ -229,12 +232,13 @@ class ChannelEngine {
|
|
|
229
232
|
payload: message.payload,
|
|
230
233
|
action: enums_1.ServerActions.BROADCAST,
|
|
231
234
|
channelName: this.name,
|
|
235
|
+
requestId: message.requestId,
|
|
232
236
|
recipients: __classPrivateFieldGet(this, _ChannelEngine_instances, "m", _ChannelEngine_getUsersFromRecipients).call(this, message.addresses || enums_1.ChannelReceiver.ALL_USERS, userId),
|
|
233
237
|
};
|
|
234
238
|
const request = new eventRequest_1.EventRequest(responseEvent, this);
|
|
235
239
|
const response = new eventResponse_1.EventResponse(responseEvent, this);
|
|
236
240
|
__classPrivateFieldGet(this, _ChannelEngine_parentEngine, "f").execute(request, response, () => {
|
|
237
|
-
this.sendMessage(enums_1.SystemSender.CHANNEL, [userId], enums_1.ServerActions.ERROR, enums_1.ErrorTypes.HANDLER_NOT_FOUND, {
|
|
241
|
+
this.sendMessage(responseEvent.requestId, enums_1.SystemSender.CHANNEL, [userId], enums_1.ServerActions.ERROR, enums_1.ErrorTypes.HANDLER_NOT_FOUND, {
|
|
238
242
|
message: 'A handler did not respond to the event',
|
|
239
243
|
code: 404,
|
|
240
244
|
});
|
package/channel/eventResponse.js
CHANGED
|
@@ -18,7 +18,7 @@ const enums_1 = require("../enums");
|
|
|
18
18
|
const pondError_1 = require("../errors/pondError");
|
|
19
19
|
class EventResponse extends abstractResponse_1.PondResponse {
|
|
20
20
|
constructor(event, engine) {
|
|
21
|
-
super();
|
|
21
|
+
super(event.requestId);
|
|
22
22
|
_EventResponse_instances.add(this);
|
|
23
23
|
_EventResponse_event.set(this, void 0);
|
|
24
24
|
_EventResponse_engine.set(this, void 0);
|
|
@@ -39,7 +39,7 @@ class EventResponse extends abstractResponse_1.PondResponse {
|
|
|
39
39
|
*/
|
|
40
40
|
accept(assigns) {
|
|
41
41
|
__classPrivateFieldGet(this, _EventResponse_instances, "m", _EventResponse_manageAssigns).call(this, assigns);
|
|
42
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(__classPrivateFieldGet(this, _EventResponse_event, "f").sender, __classPrivateFieldGet(this, _EventResponse_event, "f").recipients, __classPrivateFieldGet(this, _EventResponse_event, "f").action, __classPrivateFieldGet(this, _EventResponse_event, "f").event, __classPrivateFieldGet(this, _EventResponse_event, "f").payload);
|
|
42
|
+
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(this.requestId, __classPrivateFieldGet(this, _EventResponse_event, "f").sender, __classPrivateFieldGet(this, _EventResponse_event, "f").recipients, __classPrivateFieldGet(this, _EventResponse_event, "f").action, __classPrivateFieldGet(this, _EventResponse_event, "f").event, __classPrivateFieldGet(this, _EventResponse_event, "f").payload);
|
|
43
43
|
return this;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
@@ -51,7 +51,7 @@ class EventResponse extends abstractResponse_1.PondResponse {
|
|
|
51
51
|
reject(message, errorCode, assigns) {
|
|
52
52
|
__classPrivateFieldGet(this, _EventResponse_instances, "m", _EventResponse_manageAssigns).call(this, assigns);
|
|
53
53
|
const text = message || 'Unauthorized request';
|
|
54
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, [__classPrivateFieldGet(this, _EventResponse_event, "f").sender], enums_1.ServerActions.ERROR, enums_1.ErrorTypes.UNAUTHORIZED_BROADCAST, {
|
|
54
|
+
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(this.requestId, enums_1.SystemSender.CHANNEL, [__classPrivateFieldGet(this, _EventResponse_event, "f").sender], enums_1.ServerActions.ERROR, enums_1.ErrorTypes.UNAUTHORIZED_BROADCAST, {
|
|
55
55
|
message: text,
|
|
56
56
|
code: errorCode || 403,
|
|
57
57
|
});
|
|
@@ -65,7 +65,7 @@ class EventResponse extends abstractResponse_1.PondResponse {
|
|
|
65
65
|
*/
|
|
66
66
|
send(event, payload, assigns) {
|
|
67
67
|
this.accept(assigns);
|
|
68
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, [__classPrivateFieldGet(this, _EventResponse_event, "f").sender], enums_1.ServerActions.SYSTEM, event, payload);
|
|
68
|
+
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(this.requestId, enums_1.SystemSender.CHANNEL, [__classPrivateFieldGet(this, _EventResponse_event, "f").sender], enums_1.ServerActions.SYSTEM, event, payload);
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
71
|
* @desc Emits a direct message to the client without accepting the request
|
|
@@ -75,7 +75,7 @@ class EventResponse extends abstractResponse_1.PondResponse {
|
|
|
75
75
|
*/
|
|
76
76
|
sendOnly(event, payload, assigns) {
|
|
77
77
|
__classPrivateFieldGet(this, _EventResponse_instances, "m", _EventResponse_manageAssigns).call(this, assigns);
|
|
78
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, [__classPrivateFieldGet(this, _EventResponse_event, "f").sender], enums_1.ServerActions.SYSTEM, event, payload);
|
|
78
|
+
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(this.requestId, enums_1.SystemSender.CHANNEL, [__classPrivateFieldGet(this, _EventResponse_event, "f").sender], enums_1.ServerActions.SYSTEM, event, payload);
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
81
81
|
* @desc Sends a message to all clients in the channel
|
|
@@ -83,7 +83,7 @@ class EventResponse extends abstractResponse_1.PondResponse {
|
|
|
83
83
|
* @param payload - the payload to send
|
|
84
84
|
*/
|
|
85
85
|
broadcast(event, payload) {
|
|
86
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(__classPrivateFieldGet(this, _EventResponse_event, "f").sender, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.BROADCAST, event, payload);
|
|
86
|
+
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(this.requestId, __classPrivateFieldGet(this, _EventResponse_event, "f").sender, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.BROADCAST, event, payload);
|
|
87
87
|
return this;
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
@@ -92,7 +92,7 @@ class EventResponse extends abstractResponse_1.PondResponse {
|
|
|
92
92
|
* @param payload - the payload to send
|
|
93
93
|
*/
|
|
94
94
|
broadcastFromUser(event, payload) {
|
|
95
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(__classPrivateFieldGet(this, _EventResponse_event, "f").sender, enums_1.ChannelReceiver.ALL_EXCEPT_SENDER, enums_1.ServerActions.BROADCAST, event, payload);
|
|
95
|
+
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(this.requestId, __classPrivateFieldGet(this, _EventResponse_event, "f").sender, enums_1.ChannelReceiver.ALL_EXCEPT_SENDER, enums_1.ServerActions.BROADCAST, event, payload);
|
|
96
96
|
return this;
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
@@ -102,7 +102,7 @@ class EventResponse extends abstractResponse_1.PondResponse {
|
|
|
102
102
|
* @param userIds - the ids of the clients to send the message to
|
|
103
103
|
*/
|
|
104
104
|
sendToUsers(event, payload, userIds) {
|
|
105
|
-
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(__classPrivateFieldGet(this, _EventResponse_event, "f").sender, userIds, enums_1.ServerActions.BROADCAST, event, payload);
|
|
105
|
+
__classPrivateFieldGet(this, _EventResponse_engine, "f").sendMessage(this.requestId, __classPrivateFieldGet(this, _EventResponse_event, "f").sender, userIds, enums_1.ServerActions.BROADCAST, event, payload);
|
|
106
106
|
return this;
|
|
107
107
|
}
|
|
108
108
|
/**
|
package/client/channel.js
CHANGED
|
@@ -10,23 +10,24 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
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
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _Channel_instances, _Channel_name,
|
|
13
|
+
var _Channel_instances, _Channel_name, _Channel_queue, _Channel_presence, _Channel_publisher, _Channel_joinParams, _Channel_presenceSub, _Channel_receiver, _Channel_clientState, _Channel_joinState, _Channel_send, _Channel_publish, _Channel_subscribeToPresence, _Channel_init, _Channel_emptyQueue, _Channel_buildJoinMessage, _Channel_onMessage;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.Channel = void 0;
|
|
16
16
|
const enums_1 = require("../enums");
|
|
17
|
+
const uuid_1 = require("../misc/uuid");
|
|
17
18
|
const subject_1 = require("../subjects/subject");
|
|
18
19
|
class Channel {
|
|
19
20
|
constructor(publisher, clientState, name, receiver, params) {
|
|
20
21
|
_Channel_instances.add(this);
|
|
21
22
|
_Channel_name.set(this, void 0);
|
|
23
|
+
_Channel_queue.set(this, void 0);
|
|
24
|
+
_Channel_presence.set(this, void 0);
|
|
25
|
+
_Channel_publisher.set(this, void 0);
|
|
22
26
|
_Channel_joinParams.set(this, void 0);
|
|
27
|
+
_Channel_presenceSub.set(this, void 0);
|
|
23
28
|
_Channel_receiver.set(this, void 0);
|
|
24
29
|
_Channel_clientState.set(this, void 0);
|
|
25
30
|
_Channel_joinState.set(this, void 0);
|
|
26
|
-
_Channel_publisher.set(this, void 0);
|
|
27
|
-
_Channel_queue.set(this, void 0);
|
|
28
|
-
_Channel_presence.set(this, void 0);
|
|
29
|
-
_Channel_presenceSub.set(this, void 0);
|
|
30
31
|
__classPrivateFieldSet(this, _Channel_name, name, "f");
|
|
31
32
|
__classPrivateFieldSet(this, _Channel_queue, [], "f");
|
|
32
33
|
__classPrivateFieldSet(this, _Channel_presence, [], "f");
|
|
@@ -50,12 +51,7 @@ class Channel {
|
|
|
50
51
|
if (__classPrivateFieldGet(this, _Channel_joinState, "f").value === enums_1.ChannelState.CLOSED) {
|
|
51
52
|
throw new Error('This channel has been closed');
|
|
52
53
|
}
|
|
53
|
-
const joinMessage =
|
|
54
|
-
action: enums_1.ClientActions.JOIN_CHANNEL,
|
|
55
|
-
channelName: __classPrivateFieldGet(this, _Channel_name, "f"),
|
|
56
|
-
event: enums_1.ClientActions.JOIN_CHANNEL,
|
|
57
|
-
payload: __classPrivateFieldGet(this, _Channel_joinParams, "f"),
|
|
58
|
-
};
|
|
54
|
+
const joinMessage = __classPrivateFieldGet(this, _Channel_instances, "m", _Channel_buildJoinMessage).call(this);
|
|
59
55
|
__classPrivateFieldGet(this, _Channel_joinState, "f").publish(enums_1.ChannelState.JOINING);
|
|
60
56
|
if (__classPrivateFieldGet(this, _Channel_clientState, "f").value) {
|
|
61
57
|
__classPrivateFieldGet(this, _Channel_publisher, "f").call(this, joinMessage);
|
|
@@ -69,9 +65,11 @@ class Channel {
|
|
|
69
65
|
*/
|
|
70
66
|
leave() {
|
|
71
67
|
const leaveMessage = {
|
|
68
|
+
addresses: enums_1.ChannelReceiver.ALL_USERS,
|
|
72
69
|
action: enums_1.ClientActions.LEAVE_CHANNEL,
|
|
73
|
-
channelName: __classPrivateFieldGet(this, _Channel_name, "f"),
|
|
74
70
|
event: enums_1.ClientActions.LEAVE_CHANNEL,
|
|
71
|
+
channelName: __classPrivateFieldGet(this, _Channel_name, "f"),
|
|
72
|
+
requestId: (0, uuid_1.uuid)(),
|
|
75
73
|
payload: {},
|
|
76
74
|
};
|
|
77
75
|
__classPrivateFieldGet(this, _Channel_instances, "m", _Channel_publish).call(this, leaveMessage);
|
|
@@ -83,10 +81,8 @@ class Channel {
|
|
|
83
81
|
* @param callback - The callback to call when a message is received.
|
|
84
82
|
*/
|
|
85
83
|
onMessage(callback) {
|
|
86
|
-
return __classPrivateFieldGet(this,
|
|
87
|
-
|
|
88
|
-
return callback(data.event, data.payload);
|
|
89
|
-
}
|
|
84
|
+
return __classPrivateFieldGet(this, _Channel_instances, "m", _Channel_onMessage).call(this, (event, message) => {
|
|
85
|
+
callback(event, message);
|
|
90
86
|
});
|
|
91
87
|
}
|
|
92
88
|
/**
|
|
@@ -150,7 +146,8 @@ class Channel {
|
|
|
150
146
|
* @param recipient - The clients to send the message to.
|
|
151
147
|
*/
|
|
152
148
|
sendMessage(event, payload, recipient) {
|
|
153
|
-
|
|
149
|
+
const requestId = (0, uuid_1.uuid)();
|
|
150
|
+
__classPrivateFieldGet(this, _Channel_instances, "m", _Channel_send).call(this, event, requestId, payload, recipient);
|
|
154
151
|
}
|
|
155
152
|
/**
|
|
156
153
|
* @desc Sends a message to the server and waits for a response.
|
|
@@ -159,12 +156,15 @@ class Channel {
|
|
|
159
156
|
* @param responseEvent - The event to wait for.
|
|
160
157
|
*/
|
|
161
158
|
sendForResponse(sentEvent, payload, responseEvent) {
|
|
159
|
+
const requestId = (0, uuid_1.uuid)();
|
|
162
160
|
return new Promise((resolve) => {
|
|
163
|
-
const unsub = this.
|
|
164
|
-
|
|
165
|
-
|
|
161
|
+
const unsub = __classPrivateFieldGet(this, _Channel_instances, "m", _Channel_onMessage).call(this, (event, message, responseId) => {
|
|
162
|
+
if (event === responseEvent && requestId === responseId) {
|
|
163
|
+
resolve(message);
|
|
164
|
+
unsub();
|
|
165
|
+
}
|
|
166
166
|
});
|
|
167
|
-
__classPrivateFieldGet(this, _Channel_instances, "m", _Channel_send).call(this, sentEvent, payload);
|
|
167
|
+
__classPrivateFieldGet(this, _Channel_instances, "m", _Channel_send).call(this, sentEvent, requestId, payload);
|
|
168
168
|
});
|
|
169
169
|
}
|
|
170
170
|
/**
|
|
@@ -173,7 +173,8 @@ class Channel {
|
|
|
173
173
|
* @param payload - The message to send.
|
|
174
174
|
*/
|
|
175
175
|
broadcastFrom(event, payload) {
|
|
176
|
-
|
|
176
|
+
const requestId = (0, uuid_1.uuid)();
|
|
177
|
+
__classPrivateFieldGet(this, _Channel_instances, "m", _Channel_send).call(this, event, requestId, payload, enums_1.ChannelReceiver.ALL_EXCEPT_SENDER);
|
|
177
178
|
}
|
|
178
179
|
/**
|
|
179
180
|
* @desc Broadcasts a message to the channel, including yourself.
|
|
@@ -181,7 +182,8 @@ class Channel {
|
|
|
181
182
|
* @param payload - The message to send.
|
|
182
183
|
*/
|
|
183
184
|
broadcast(event, payload) {
|
|
184
|
-
|
|
185
|
+
const requestId = (0, uuid_1.uuid)();
|
|
186
|
+
__classPrivateFieldGet(this, _Channel_instances, "m", _Channel_send).call(this, event, requestId, payload);
|
|
185
187
|
}
|
|
186
188
|
/**
|
|
187
189
|
* @desc Gets the current presence of the channel.
|
|
@@ -223,27 +225,16 @@ class Channel {
|
|
|
223
225
|
callback(state === enums_1.ChannelState.JOINED || state === enums_1.ChannelState.STALLED);
|
|
224
226
|
});
|
|
225
227
|
}
|
|
226
|
-
/**
|
|
227
|
-
* @desc Gets the first response from the channel.
|
|
228
|
-
* @param event - The event to monitor.
|
|
229
|
-
*/
|
|
230
|
-
getFirstResponse(event) {
|
|
231
|
-
return new Promise((resolve) => {
|
|
232
|
-
const unsub = this.onMessageEvent(event, (message) => {
|
|
233
|
-
resolve(message);
|
|
234
|
-
unsub();
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
228
|
}
|
|
239
229
|
exports.Channel = Channel;
|
|
240
|
-
_Channel_name = new WeakMap(),
|
|
230
|
+
_Channel_name = new WeakMap(), _Channel_queue = new WeakMap(), _Channel_presence = new WeakMap(), _Channel_publisher = new WeakMap(), _Channel_joinParams = new WeakMap(), _Channel_presenceSub = new WeakMap(), _Channel_receiver = new WeakMap(), _Channel_clientState = new WeakMap(), _Channel_joinState = new WeakMap(), _Channel_instances = new WeakSet(), _Channel_send = function _Channel_send(event, requestId, payload, receivers = enums_1.ChannelReceiver.ALL_USERS) {
|
|
241
231
|
const message = {
|
|
242
232
|
action: enums_1.ClientActions.BROADCAST,
|
|
243
233
|
channelName: __classPrivateFieldGet(this, _Channel_name, "f"),
|
|
234
|
+
addresses: receivers,
|
|
235
|
+
requestId,
|
|
244
236
|
event,
|
|
245
237
|
payload,
|
|
246
|
-
addresses: receivers,
|
|
247
238
|
};
|
|
248
239
|
__classPrivateFieldGet(this, _Channel_instances, "m", _Channel_publish).call(this, message);
|
|
249
240
|
}, _Channel_publish = function _Channel_publish(data) {
|
|
@@ -274,12 +265,7 @@ _Channel_name = new WeakMap(), _Channel_joinParams = new WeakMap(), _Channel_rec
|
|
|
274
265
|
});
|
|
275
266
|
const unsubStateChange = __classPrivateFieldGet(this, _Channel_clientState, "f").subscribe((state) => {
|
|
276
267
|
if (state && __classPrivateFieldGet(this, _Channel_joinState, "f").value === enums_1.ChannelState.STALLED) {
|
|
277
|
-
const joinMessage =
|
|
278
|
-
action: enums_1.ClientActions.JOIN_CHANNEL,
|
|
279
|
-
channelName: __classPrivateFieldGet(this, _Channel_name, "f"),
|
|
280
|
-
event: enums_1.ClientActions.JOIN_CHANNEL,
|
|
281
|
-
payload: __classPrivateFieldGet(this, _Channel_joinParams, "f"),
|
|
282
|
-
};
|
|
268
|
+
const joinMessage = __classPrivateFieldGet(this, _Channel_instances, "m", _Channel_buildJoinMessage).call(this);
|
|
283
269
|
__classPrivateFieldGet(this, _Channel_publisher, "f").call(this, joinMessage);
|
|
284
270
|
}
|
|
285
271
|
else if (!state && __classPrivateFieldGet(this, _Channel_joinState, "f").value === enums_1.ChannelState.JOINED) {
|
|
@@ -301,4 +287,19 @@ _Channel_name = new WeakMap(), _Channel_joinParams = new WeakMap(), _Channel_rec
|
|
|
301
287
|
__classPrivateFieldGet(this, _Channel_publisher, "f").call(this, message);
|
|
302
288
|
});
|
|
303
289
|
__classPrivateFieldSet(this, _Channel_queue, [], "f");
|
|
290
|
+
}, _Channel_buildJoinMessage = function _Channel_buildJoinMessage() {
|
|
291
|
+
return {
|
|
292
|
+
addresses: enums_1.ChannelReceiver.ALL_USERS,
|
|
293
|
+
action: enums_1.ClientActions.JOIN_CHANNEL,
|
|
294
|
+
event: enums_1.ClientActions.JOIN_CHANNEL,
|
|
295
|
+
payload: __classPrivateFieldGet(this, _Channel_joinParams, "f"),
|
|
296
|
+
channelName: __classPrivateFieldGet(this, _Channel_name, "f"),
|
|
297
|
+
requestId: (0, uuid_1.uuid)(),
|
|
298
|
+
};
|
|
299
|
+
}, _Channel_onMessage = function _Channel_onMessage(callback) {
|
|
300
|
+
return __classPrivateFieldGet(this, _Channel_receiver, "f").subscribe((data) => {
|
|
301
|
+
if (data.action !== enums_1.ServerActions.PRESENCE) {
|
|
302
|
+
return callback(data.event, data.payload, data.requestId);
|
|
303
|
+
}
|
|
304
|
+
});
|
|
304
305
|
};
|
package/endpoint/endpoint.js
CHANGED
|
@@ -13,6 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
13
|
var _Endpoint_instances, _Endpoint_middleware, _Endpoint_channels, _Endpoint_sockets, _Endpoint_sendMessage, _Endpoint_joinChannel, _Endpoint_execute, _Endpoint_handleMessage, _Endpoint_readMessage, _Endpoint_isObjectEmpty;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.Endpoint = void 0;
|
|
16
|
+
const zod_1 = require("zod");
|
|
16
17
|
const middleware_1 = require("../abstracts/middleware");
|
|
17
18
|
const enums_1 = require("../enums");
|
|
18
19
|
const pondError_1 = require("../errors/pondError");
|
|
@@ -20,6 +21,8 @@ const joinRequest_1 = require("../lobby/joinRequest");
|
|
|
20
21
|
const joinResponse_1 = require("../lobby/joinResponse");
|
|
21
22
|
const lobby_1 = require("../lobby/lobby");
|
|
22
23
|
const matcher_1 = require("../matcher/matcher");
|
|
24
|
+
const uuid_1 = require("../misc/uuid");
|
|
25
|
+
const schema_1 = require("../schema");
|
|
23
26
|
class Endpoint {
|
|
24
27
|
constructor() {
|
|
25
28
|
_Endpoint_instances.add(this);
|
|
@@ -83,6 +86,7 @@ class Endpoint {
|
|
|
83
86
|
const message = {
|
|
84
87
|
event,
|
|
85
88
|
payload,
|
|
89
|
+
requestId: (0, uuid_1.uuid)(),
|
|
86
90
|
action: enums_1.ServerActions.BROADCAST,
|
|
87
91
|
channelName: enums_1.SystemSender.ENDPOINT,
|
|
88
92
|
};
|
|
@@ -125,8 +129,8 @@ class Endpoint {
|
|
|
125
129
|
exports.Endpoint = Endpoint;
|
|
126
130
|
_Endpoint_middleware = new WeakMap(), _Endpoint_channels = new WeakMap(), _Endpoint_sockets = new WeakMap(), _Endpoint_instances = new WeakSet(), _Endpoint_sendMessage = function _Endpoint_sendMessage(socket, message) {
|
|
127
131
|
socket.send(JSON.stringify(message));
|
|
128
|
-
}, _Endpoint_joinChannel = function _Endpoint_joinChannel(channel, socket, joinParams) {
|
|
129
|
-
const cache = Object.assign(Object.assign({}, socket), { channelName: channel });
|
|
132
|
+
}, _Endpoint_joinChannel = function _Endpoint_joinChannel(channel, socket, joinParams, requestId) {
|
|
133
|
+
const cache = Object.assign(Object.assign({}, socket), { requestId, channelName: channel });
|
|
130
134
|
__classPrivateFieldGet(this, _Endpoint_middleware, "f").run(cache, joinParams, () => {
|
|
131
135
|
throw new pondError_1.EndpointError(`GatewayEngine: Channel ${channel} does not exist`, 404);
|
|
132
136
|
});
|
|
@@ -142,7 +146,7 @@ _Endpoint_middleware = new WeakMap(), _Endpoint_channels = new WeakMap(), _Endpo
|
|
|
142
146
|
}, _Endpoint_handleMessage = function _Endpoint_handleMessage(cache, message) {
|
|
143
147
|
switch (message.action) {
|
|
144
148
|
case enums_1.ClientActions.JOIN_CHANNEL:
|
|
145
|
-
__classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_joinChannel).call(this, message.channelName, cache, message.payload);
|
|
149
|
+
__classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_joinChannel).call(this, message.channelName, cache, message.payload, message.requestId);
|
|
146
150
|
break;
|
|
147
151
|
case enums_1.ClientActions.LEAVE_CHANNEL:
|
|
148
152
|
__classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_execute).call(this, message.channelName, (channel) => {
|
|
@@ -162,34 +166,22 @@ _Endpoint_middleware = new WeakMap(), _Endpoint_channels = new WeakMap(), _Endpo
|
|
|
162
166
|
event: enums_1.ErrorTypes.INVALID_MESSAGE,
|
|
163
167
|
action: enums_1.ServerActions.ERROR,
|
|
164
168
|
channelName: enums_1.SystemSender.ENDPOINT,
|
|
169
|
+
requestId: (0, uuid_1.uuid)(),
|
|
165
170
|
payload: {},
|
|
166
171
|
};
|
|
167
172
|
try {
|
|
168
173
|
const data = JSON.parse(message);
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
else if (!data.channelName) {
|
|
175
|
-
errorMessage.payload = {
|
|
176
|
-
message: 'No channel name provided',
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
else if (!data.payload) {
|
|
174
|
+
const result = schema_1.clientMessageSchema.parse(data);
|
|
175
|
+
__classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_handleMessage).call(this, cache, result);
|
|
176
|
+
}
|
|
177
|
+
catch (e) {
|
|
178
|
+
if (e instanceof zod_1.ZodError) {
|
|
180
179
|
errorMessage.payload = {
|
|
181
|
-
message:
|
|
180
|
+
message: e.message,
|
|
181
|
+
code: 400,
|
|
182
182
|
};
|
|
183
183
|
}
|
|
184
|
-
if (
|
|
185
|
-
__classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_sendMessage).call(this, cache.socket, errorMessage);
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
__classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_handleMessage).call(this, cache, data);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
catch (e) {
|
|
192
|
-
if (e instanceof SyntaxError) {
|
|
184
|
+
else if (e instanceof SyntaxError) {
|
|
193
185
|
errorMessage.payload = {
|
|
194
186
|
message: 'Invalid JSON',
|
|
195
187
|
};
|
|
@@ -224,6 +216,11 @@ _Endpoint_middleware = new WeakMap(), _Endpoint_channels = new WeakMap(), _Endpo
|
|
|
224
216
|
code: e.code,
|
|
225
217
|
};
|
|
226
218
|
}
|
|
219
|
+
else {
|
|
220
|
+
errorMessage.payload = {
|
|
221
|
+
message: 'Unknown error',
|
|
222
|
+
};
|
|
223
|
+
}
|
|
227
224
|
__classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_sendMessage).call(this, cache.socket, errorMessage);
|
|
228
225
|
}
|
|
229
226
|
}, _Endpoint_isObjectEmpty = function _Endpoint_isObjectEmpty(obj) {
|
package/endpoint/response.js
CHANGED
|
@@ -16,9 +16,10 @@ exports.ConnectionResponse = void 0;
|
|
|
16
16
|
const abstractResponse_1 = require("../abstracts/abstractResponse");
|
|
17
17
|
const enums_1 = require("../enums");
|
|
18
18
|
const pondError_1 = require("../errors/pondError");
|
|
19
|
+
const uuid_1 = require("../misc/uuid");
|
|
19
20
|
class ConnectionResponse extends abstractResponse_1.PondResponse {
|
|
20
21
|
constructor(webSocket, engine, clientId) {
|
|
21
|
-
super();
|
|
22
|
+
super((0, uuid_1.uuid)());
|
|
22
23
|
_ConnectionResponse_instances.add(this);
|
|
23
24
|
_ConnectionResponse_webSocket.set(this, void 0);
|
|
24
25
|
_ConnectionResponse_engine.set(this, void 0);
|
|
@@ -76,9 +77,10 @@ class ConnectionResponse extends abstractResponse_1.PondResponse {
|
|
|
76
77
|
exports.ConnectionResponse = ConnectionResponse;
|
|
77
78
|
_ConnectionResponse_webSocket = new WeakMap(), _ConnectionResponse_engine = new WeakMap(), _ConnectionResponse_clientId = new WeakMap(), _ConnectionResponse_executed = new WeakMap(), _ConnectionResponse_instances = new WeakSet(), _ConnectionResponse_sendMessage = function _ConnectionResponse_sendMessage(action, event, payload) {
|
|
78
79
|
const message = {
|
|
79
|
-
action,
|
|
80
80
|
event,
|
|
81
|
+
action,
|
|
81
82
|
payload,
|
|
83
|
+
requestId: this.requestId,
|
|
82
84
|
channelName: enums_1.SystemSender.ENDPOINT,
|
|
83
85
|
};
|
|
84
86
|
__classPrivateFieldGet(this, _ConnectionResponse_webSocket, "f").send(JSON.stringify(message));
|
package/lobby/joinResponse.js
CHANGED
|
@@ -18,7 +18,7 @@ const enums_1 = require("../enums");
|
|
|
18
18
|
const pondError_1 = require("../errors/pondError");
|
|
19
19
|
class JoinResponse extends abstractResponse_1.PondResponse {
|
|
20
20
|
constructor(user, engine) {
|
|
21
|
-
super();
|
|
21
|
+
super(user.requestId);
|
|
22
22
|
_JoinResponse_instances.add(this);
|
|
23
23
|
_JoinResponse_user.set(this, void 0);
|
|
24
24
|
_JoinResponse_engine.set(this, void 0);
|
|
@@ -44,6 +44,7 @@ class JoinResponse extends abstractResponse_1.PondResponse {
|
|
|
44
44
|
action: enums_1.ServerActions.SYSTEM,
|
|
45
45
|
channelName: __classPrivateFieldGet(this, _JoinResponse_engine, "f").name,
|
|
46
46
|
event: enums_1.Events.ACKNOWLEDGE,
|
|
47
|
+
requestId: this.requestId,
|
|
47
48
|
payload: {},
|
|
48
49
|
};
|
|
49
50
|
__classPrivateFieldGet(this, _JoinResponse_user, "f").socket.send(JSON.stringify(acknowledgement));
|
|
@@ -67,6 +68,7 @@ class JoinResponse extends abstractResponse_1.PondResponse {
|
|
|
67
68
|
},
|
|
68
69
|
channelName: __classPrivateFieldGet(this, _JoinResponse_engine, "f").name,
|
|
69
70
|
action: enums_1.ServerActions.ERROR,
|
|
71
|
+
requestId: this.requestId,
|
|
70
72
|
};
|
|
71
73
|
__classPrivateFieldGet(this, _JoinResponse_user, "f").socket.send(JSON.stringify(errorMessage));
|
|
72
74
|
return this;
|
|
@@ -79,7 +81,7 @@ class JoinResponse extends abstractResponse_1.PondResponse {
|
|
|
79
81
|
*/
|
|
80
82
|
send(event, payload, assigns) {
|
|
81
83
|
this.accept(assigns);
|
|
82
|
-
__classPrivateFieldGet(this, _JoinResponse_engine, "f").sendMessage(enums_1.SystemSender.CHANNEL, [__classPrivateFieldGet(this, _JoinResponse_user, "f").clientId], enums_1.ServerActions.SYSTEM, event, payload);
|
|
84
|
+
__classPrivateFieldGet(this, _JoinResponse_engine, "f").sendMessage(this.requestId, enums_1.SystemSender.CHANNEL, [__classPrivateFieldGet(this, _JoinResponse_user, "f").clientId], enums_1.ServerActions.SYSTEM, event, payload);
|
|
83
85
|
return this;
|
|
84
86
|
}
|
|
85
87
|
/**
|
|
@@ -88,7 +90,7 @@ class JoinResponse extends abstractResponse_1.PondResponse {
|
|
|
88
90
|
* @param payload - the payload to send
|
|
89
91
|
*/
|
|
90
92
|
broadcast(event, payload) {
|
|
91
|
-
__classPrivateFieldGet(this, _JoinResponse_engine, "f").sendMessage(__classPrivateFieldGet(this, _JoinResponse_user, "f").clientId, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.BROADCAST, event, payload);
|
|
93
|
+
__classPrivateFieldGet(this, _JoinResponse_engine, "f").sendMessage(this.requestId, __classPrivateFieldGet(this, _JoinResponse_user, "f").clientId, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.BROADCAST, event, payload);
|
|
92
94
|
return this;
|
|
93
95
|
}
|
|
94
96
|
/**
|
|
@@ -97,7 +99,7 @@ class JoinResponse extends abstractResponse_1.PondResponse {
|
|
|
97
99
|
* @param payload - the payload to send
|
|
98
100
|
*/
|
|
99
101
|
broadcastFromUser(event, payload) {
|
|
100
|
-
__classPrivateFieldGet(this, _JoinResponse_engine, "f").sendMessage(__classPrivateFieldGet(this, _JoinResponse_user, "f").clientId, enums_1.ChannelReceiver.ALL_EXCEPT_SENDER, enums_1.ServerActions.BROADCAST, event, payload);
|
|
102
|
+
__classPrivateFieldGet(this, _JoinResponse_engine, "f").sendMessage(this.requestId, __classPrivateFieldGet(this, _JoinResponse_user, "f").clientId, enums_1.ChannelReceiver.ALL_EXCEPT_SENDER, enums_1.ServerActions.BROADCAST, event, payload);
|
|
101
103
|
return this;
|
|
102
104
|
}
|
|
103
105
|
/**
|
|
@@ -107,7 +109,7 @@ class JoinResponse extends abstractResponse_1.PondResponse {
|
|
|
107
109
|
* @param userIds - the ids of the clients to send the message to
|
|
108
110
|
*/
|
|
109
111
|
sendToUsers(event, payload, userIds) {
|
|
110
|
-
__classPrivateFieldGet(this, _JoinResponse_engine, "f").sendMessage(__classPrivateFieldGet(this, _JoinResponse_user, "f").clientId, userIds, enums_1.ServerActions.BROADCAST, event, payload);
|
|
112
|
+
__classPrivateFieldGet(this, _JoinResponse_engine, "f").sendMessage(this.requestId, __classPrivateFieldGet(this, _JoinResponse_user, "f").clientId, userIds, enums_1.ServerActions.BROADCAST, event, payload);
|
|
111
113
|
return this;
|
|
112
114
|
}
|
|
113
115
|
/**
|
package/lobby/lobby.js
CHANGED
|
@@ -16,6 +16,7 @@ exports.PondChannel = exports.LobbyEngine = void 0;
|
|
|
16
16
|
const middleware_1 = require("../abstracts/middleware");
|
|
17
17
|
const channel_1 = require("../channel/channel");
|
|
18
18
|
const enums_1 = require("../enums");
|
|
19
|
+
const uuid_1 = require("../misc/uuid");
|
|
19
20
|
class LobbyEngine {
|
|
20
21
|
constructor() {
|
|
21
22
|
_LobbyEngine_channels.set(this, void 0);
|
|
@@ -68,11 +69,11 @@ class LobbyEngine {
|
|
|
68
69
|
if (!channel) {
|
|
69
70
|
throw new Error(`GatewayEngine: Channel ${channelName} does not exist`);
|
|
70
71
|
}
|
|
71
|
-
channel.sendMessage(enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.SYSTEM, event, payload);
|
|
72
|
+
channel.sendMessage((0, uuid_1.uuid)(), enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.SYSTEM, event, payload);
|
|
72
73
|
}
|
|
73
74
|
else {
|
|
74
75
|
__classPrivateFieldGet(this, _LobbyEngine_channels, "f").forEach((channel) => {
|
|
75
|
-
channel.sendMessage(enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.SYSTEM, event, payload);
|
|
76
|
+
channel.sendMessage((0, uuid_1.uuid)(), enums_1.SystemSender.CHANNEL, enums_1.ChannelReceiver.ALL_USERS, enums_1.ServerActions.SYSTEM, event, payload);
|
|
76
77
|
});
|
|
77
78
|
}
|
|
78
79
|
}
|
package/misc/uuid.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uuid = void 0;
|
|
4
|
+
function uuid() {
|
|
5
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
|
|
6
|
+
.replace(/[xy]/g, (c) => {
|
|
7
|
+
const r = Math.random() * 16 | 0;
|
|
8
|
+
const v = c === 'x' ? r : (r & 0x3 | 0x8);
|
|
9
|
+
return v.toString(16);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
exports.uuid = uuid;
|
package/package.json
CHANGED
package/presence/presence.js
CHANGED
|
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.PresenceEngine = void 0;
|
|
16
16
|
const enums_1 = require("../enums");
|
|
17
17
|
const pondError_1 = require("../errors/pondError");
|
|
18
|
+
const uuid_1 = require("../misc/uuid");
|
|
18
19
|
class PresenceEngine {
|
|
19
20
|
constructor(channel) {
|
|
20
21
|
_PresenceEngine_instances.add(this);
|
|
@@ -107,5 +108,5 @@ _PresenceEngine_presenceMap = new WeakMap(), _PresenceEngine_channel = new WeakM
|
|
|
107
108
|
if (recipients.length === 0) {
|
|
108
109
|
return;
|
|
109
110
|
}
|
|
110
|
-
__classPrivateFieldGet(this, _PresenceEngine_channel, "f").sendMessage(enums_1.SystemSender.CHANNEL, recipients, enums_1.ServerActions.PRESENCE, event, payload);
|
|
111
|
+
__classPrivateFieldGet(this, _PresenceEngine_channel, "f").sendMessage((0, uuid_1.uuid)(), enums_1.SystemSender.CHANNEL, recipients, enums_1.ServerActions.PRESENCE, event, payload);
|
|
111
112
|
};
|
package/schema.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clientMessageSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const enums_1 = require("./enums");
|
|
6
|
+
exports.clientMessageSchema = zod_1.z.object({
|
|
7
|
+
event: zod_1.z.string(),
|
|
8
|
+
requestId: zod_1.z.string(),
|
|
9
|
+
channelName: zod_1.z.string(),
|
|
10
|
+
payload: zod_1.z.record(zod_1.z.any()),
|
|
11
|
+
action: zod_1.z.nativeEnum(enums_1.ClientActions),
|
|
12
|
+
addresses: zod_1.z.union([zod_1.z.nativeEnum(enums_1.ChannelReceiver), zod_1.z.array(zod_1.z.string())]).optional(),
|
|
13
|
+
});
|