@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.
@@ -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: text,
67
- code: errorCode || 403,
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((_, request) => {
411
- const eventRequest = request.eventRequest;
412
- if (!eventRequest) {
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 eventRequest.event.payload;
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
- const context = new Context(req, res, instance, propertyKey);
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
- if (!response.hasResponded && error instanceof Error) {
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
- const context = new Context(req, res, instance, propertyKey);
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
- if (!response.hasResponded && error instanceof Error) {
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
- const context = new Context(req, res, instance, propertyKey);
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
- if (!response.hasResponded && error instanceof Error) {
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
- try {
618
- const context = new Context({
619
- leveeEvent: event,
620
- }, {}, instance, propertyKey);
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eleven-am/pondsocket",
3
- "version": "0.1.102",
3
+ "version": "0.1.104",
4
4
  "description": "PondSocket is a fast simple socket server",
5
5
  "keywords": [
6
6
  "socket",