@eleven-am/pondsocket 0.1.102 → 0.1.104
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/lobby/joinResponse.js +2 -3
- package/nest.js +68 -99
- package/package.json +1 -1
package/lobby/joinResponse.js
CHANGED
|
@@ -59,12 +59,11 @@ class JoinResponse extends abstractResponse_1.PondResponse {
|
|
|
59
59
|
*/
|
|
60
60
|
reject(message, errorCode) {
|
|
61
61
|
__classPrivateFieldGet(this, _JoinResponse_instances, "m", _JoinResponse_performChecks).call(this);
|
|
62
|
-
const text = `Request to join channel ${__classPrivateFieldGet(this, _JoinResponse_engine, "f").name} rejected: ${message || 'Unauthorized request'}`;
|
|
63
62
|
const errorMessage = {
|
|
64
63
|
event: enums_1.ErrorTypes.UNAUTHORIZED_JOIN_REQUEST,
|
|
65
64
|
payload: {
|
|
66
|
-
message:
|
|
67
|
-
code: errorCode ||
|
|
65
|
+
message: message || 'Unauthorized connection',
|
|
66
|
+
code: errorCode || 401,
|
|
68
67
|
},
|
|
69
68
|
channelName: __classPrivateFieldGet(this, _JoinResponse_engine, "f").name,
|
|
70
69
|
action: enums_1.ServerActions.ERROR,
|
package/nest.js
CHANGED
|
@@ -247,6 +247,46 @@ class Context {
|
|
|
247
247
|
return (_a = this.data[key]) !== null && _a !== void 0 ? _a : null;
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
|
+
function manageResponse(data, response) {
|
|
251
|
+
if (response.hasResponded) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
const { event, presence, updatePresence, assigns, broadcast, accept = true } = data, rest = __rest(data, ["event", "presence", "updatePresence", "assigns", "broadcast", "accept"]);
|
|
255
|
+
if (event) {
|
|
256
|
+
if (typeof event === 'string' && isNotEmpty(rest)) {
|
|
257
|
+
response.send(event, rest, assigns);
|
|
258
|
+
}
|
|
259
|
+
else if (isNotEmpty(assigns)) {
|
|
260
|
+
response.accept(assigns);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
if (broadcast && typeof broadcast === 'string' && isNotEmpty(rest) && 'broadcast' in response) {
|
|
264
|
+
response.broadcast(broadcast, rest);
|
|
265
|
+
}
|
|
266
|
+
if ('trackPresence' in response && presence) {
|
|
267
|
+
response.trackPresence(presence);
|
|
268
|
+
}
|
|
269
|
+
else if ('updatePresence' in response && updatePresence) {
|
|
270
|
+
response.updatePresence(updatePresence);
|
|
271
|
+
}
|
|
272
|
+
if (response.hasResponded) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
if (accept) {
|
|
276
|
+
response.accept();
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
function manageError(error, response) {
|
|
280
|
+
if (response.hasResponded) {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (error instanceof common_1.HttpException) {
|
|
284
|
+
response.reject(error.message, error.getStatus());
|
|
285
|
+
}
|
|
286
|
+
if (error instanceof Error) {
|
|
287
|
+
response.reject(error.message, 500);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
250
290
|
function manageConnectionHandlers(target) {
|
|
251
291
|
return manageHandlers(onConnectionHandlerKey, target);
|
|
252
292
|
}
|
|
@@ -407,12 +447,13 @@ function GetJoinParams() {
|
|
|
407
447
|
}
|
|
408
448
|
exports.GetJoinParams = GetJoinParams;
|
|
409
449
|
function GetEventPayload() {
|
|
410
|
-
return createParamDecorator((_,
|
|
411
|
-
|
|
412
|
-
|
|
450
|
+
return createParamDecorator((_, context) => {
|
|
451
|
+
var _a;
|
|
452
|
+
const payload = (_a = context.event) === null || _a === void 0 ? void 0 : _a.payload;
|
|
453
|
+
if (!payload) {
|
|
413
454
|
throw new Error('Invalid decorator usage: GetEventPayload');
|
|
414
455
|
}
|
|
415
|
-
return
|
|
456
|
+
return payload;
|
|
416
457
|
})(null);
|
|
417
458
|
}
|
|
418
459
|
exports.GetEventPayload = GetEventPayload;
|
|
@@ -468,6 +509,19 @@ function GetLeaveEvent() {
|
|
|
468
509
|
})(null);
|
|
469
510
|
}
|
|
470
511
|
exports.GetLeaveEvent = GetLeaveEvent;
|
|
512
|
+
function manageAction(req, res, instance, moduleRef, originalMethod, propertyKey, response) {
|
|
513
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
514
|
+
const context = new Context(req, res, instance, propertyKey);
|
|
515
|
+
const canProceed = yield resolveGuards(moduleRef, context);
|
|
516
|
+
if (canProceed) {
|
|
517
|
+
const data = yield originalMethod.apply(instance, resolveParameters(context));
|
|
518
|
+
manageResponse(data, response);
|
|
519
|
+
}
|
|
520
|
+
else {
|
|
521
|
+
response.reject('Unauthorized', 401);
|
|
522
|
+
}
|
|
523
|
+
});
|
|
524
|
+
}
|
|
471
525
|
function OnConnectionRequest() {
|
|
472
526
|
return (target, propertyKey, descriptor) => {
|
|
473
527
|
const originalMethod = descriptor.value;
|
|
@@ -480,33 +534,10 @@ function OnConnectionRequest() {
|
|
|
480
534
|
const res = {
|
|
481
535
|
connection: response,
|
|
482
536
|
};
|
|
483
|
-
|
|
484
|
-
const canProceed = yield resolveGuards(moduleRef, context);
|
|
485
|
-
if (canProceed) {
|
|
486
|
-
const data = yield originalMethod.apply(instance, resolveParameters(context));
|
|
487
|
-
if (!response.hasResponded) {
|
|
488
|
-
if (data) {
|
|
489
|
-
const { event, assigns } = data, rest = __rest(data, ["event", "assigns"]);
|
|
490
|
-
if (typeof event === 'string' && isNotEmpty(rest)) {
|
|
491
|
-
response.send(event, rest, assigns);
|
|
492
|
-
}
|
|
493
|
-
else {
|
|
494
|
-
response.accept(typeof assigns === 'object' ? assigns : {});
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
else {
|
|
498
|
-
response.accept();
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
else {
|
|
503
|
-
response.reject('Unauthorized', 401);
|
|
504
|
-
}
|
|
537
|
+
yield manageAction(req, res, instance, moduleRef, originalMethod, propertyKey, response);
|
|
505
538
|
}
|
|
506
539
|
catch (error) {
|
|
507
|
-
|
|
508
|
-
response.reject(error.message);
|
|
509
|
-
}
|
|
540
|
+
manageError(error, response);
|
|
510
541
|
}
|
|
511
542
|
}));
|
|
512
543
|
};
|
|
@@ -524,36 +555,10 @@ function OnJoinRequest() {
|
|
|
524
555
|
const res = {
|
|
525
556
|
joinResponse: response,
|
|
526
557
|
};
|
|
527
|
-
|
|
528
|
-
const canProceed = yield resolveGuards(moduleRef, context);
|
|
529
|
-
if (canProceed) {
|
|
530
|
-
const data = yield originalMethod.apply(instance, resolveParameters(context));
|
|
531
|
-
if (!response.hasResponded) {
|
|
532
|
-
if (data) {
|
|
533
|
-
const { event, presence, assigns } = data, rest = __rest(data, ["event", "presence", "assigns"]);
|
|
534
|
-
if (typeof event === 'string' && isNotEmpty(rest)) {
|
|
535
|
-
response.send(event, rest, assigns);
|
|
536
|
-
}
|
|
537
|
-
else {
|
|
538
|
-
response.accept(typeof assigns === 'object' ? assigns : {});
|
|
539
|
-
}
|
|
540
|
-
if (presence) {
|
|
541
|
-
response.trackPresence(presence);
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
else {
|
|
545
|
-
response.accept();
|
|
546
|
-
}
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
else {
|
|
550
|
-
response.reject('Unauthorized', 401);
|
|
551
|
-
}
|
|
558
|
+
yield manageAction(req, res, instance, moduleRef, originalMethod, propertyKey, response);
|
|
552
559
|
}
|
|
553
560
|
catch (error) {
|
|
554
|
-
|
|
555
|
-
response.reject(error.message);
|
|
556
|
-
}
|
|
561
|
+
manageError(error, response);
|
|
557
562
|
}
|
|
558
563
|
}));
|
|
559
564
|
};
|
|
@@ -571,39 +576,10 @@ function OnEvent(event = '*') {
|
|
|
571
576
|
const res = {
|
|
572
577
|
eventResponse: response,
|
|
573
578
|
};
|
|
574
|
-
|
|
575
|
-
const canProceed = yield resolveGuards(moduleRef, context);
|
|
576
|
-
if (canProceed) {
|
|
577
|
-
const data = yield originalMethod.apply(instance, resolveParameters(context));
|
|
578
|
-
if (!response.hasResponded) {
|
|
579
|
-
if (data) {
|
|
580
|
-
const { event, presence, updatePresence, assigns } = data, rest = __rest(data, ["event", "presence", "updatePresence", "assigns"]);
|
|
581
|
-
if (typeof event === 'string' && isNotEmpty(rest)) {
|
|
582
|
-
response.send(event, rest, assigns);
|
|
583
|
-
}
|
|
584
|
-
else {
|
|
585
|
-
response.accept(typeof assigns === 'object' ? assigns : {});
|
|
586
|
-
}
|
|
587
|
-
if (presence) {
|
|
588
|
-
response.trackPresence(presence);
|
|
589
|
-
}
|
|
590
|
-
else if (updatePresence) {
|
|
591
|
-
response.updatePresence(updatePresence);
|
|
592
|
-
}
|
|
593
|
-
}
|
|
594
|
-
else {
|
|
595
|
-
response.accept();
|
|
596
|
-
}
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
else {
|
|
600
|
-
response.reject('Unauthorized', 401);
|
|
601
|
-
}
|
|
579
|
+
yield manageAction(req, res, instance, moduleRef, originalMethod, propertyKey, response);
|
|
602
580
|
}
|
|
603
581
|
catch (error) {
|
|
604
|
-
|
|
605
|
-
response.reject(error.message);
|
|
606
|
-
}
|
|
582
|
+
manageError(error, response);
|
|
607
583
|
}
|
|
608
584
|
}));
|
|
609
585
|
};
|
|
@@ -614,17 +590,10 @@ function OnLeaveEvent() {
|
|
|
614
590
|
const originalMethod = descriptor.value;
|
|
615
591
|
const { set } = manageOnLeaveHandlers(target);
|
|
616
592
|
set('', (instance, _, event) => __awaiter(this, void 0, void 0, function* () {
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
yield originalMethod.apply(instance, resolveParameters(context));
|
|
622
|
-
}
|
|
623
|
-
catch (error) {
|
|
624
|
-
if (error instanceof Error) {
|
|
625
|
-
console.error(error.message);
|
|
626
|
-
}
|
|
627
|
-
}
|
|
593
|
+
const context = new Context({
|
|
594
|
+
leveeEvent: event,
|
|
595
|
+
}, {}, instance, propertyKey);
|
|
596
|
+
yield originalMethod.apply(instance, resolveParameters(context));
|
|
628
597
|
}));
|
|
629
598
|
};
|
|
630
599
|
}
|