@eleven-am/pondsocket-nest 0.0.136 → 0.0.138

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.
Files changed (127) hide show
  1. package/README.md +141 -541
  2. package/dist/context/context.d.ts +41 -0
  3. package/dist/context/context.js +238 -0
  4. package/{decorators → dist/decorators}/onConnectionRequest.js +2 -2
  5. package/{decorators → dist/decorators}/onEvent.js +2 -2
  6. package/{decorators → dist/decorators}/onJoinRequest.js +2 -2
  7. package/{decorators → dist/decorators}/onLeave.js +3 -4
  8. package/{decorators → dist/decorators}/onOutgoingEvent.js +10 -2
  9. package/{helpers → dist/helpers}/createParamDecorator.js +4 -3
  10. package/{helpers → dist/helpers}/misc.d.ts +1 -1
  11. package/dist/helpers/misc.js +27 -0
  12. package/dist/index.d.ts +6 -0
  13. package/{index.js → dist/index.js} +1 -0
  14. package/dist/managers/outgoingEvent.d.ts +5 -0
  15. package/{modules → dist/modules}/pondSocket.js +4 -5
  16. package/dist/performers/action.d.ts +8 -0
  17. package/dist/performers/action.js +121 -0
  18. package/dist/performers/errors.d.ts +4 -0
  19. package/dist/performers/errors.js +43 -0
  20. package/dist/performers/response.d.ts +5 -0
  21. package/dist/performers/response.js +65 -0
  22. package/{services → dist/services}/pondSocket.d.ts +12 -4
  23. package/dist/services/pondSocket.js +288 -0
  24. package/dist/types.d.ts +113 -0
  25. package/package.json +57 -46
  26. package/context/context.d.ts +0 -27
  27. package/context/context.js +0 -103
  28. package/helpers/misc.js +0 -13
  29. package/index.d.ts +0 -5
  30. package/managers/outgoingEvent.d.ts +0 -5
  31. package/performers/action.d.ts +0 -5
  32. package/performers/action.js +0 -89
  33. package/performers/errors.d.ts +0 -2
  34. package/performers/errors.js +0 -37
  35. package/performers/narrow.d.ts +0 -7
  36. package/performers/narrow.js +0 -21
  37. package/performers/response.d.ts +0 -3
  38. package/performers/response.js +0 -62
  39. package/services/pondSocket.js +0 -190
  40. package/types.d.ts +0 -64
  41. /package/{constants.d.ts → dist/constants.d.ts} +0 -0
  42. /package/{constants.js → dist/constants.js} +0 -0
  43. /package/{decorators → dist/decorators}/channel.d.ts +0 -0
  44. /package/{decorators → dist/decorators}/channel.js +0 -0
  45. /package/{decorators → dist/decorators}/channelInstance.d.ts +0 -0
  46. /package/{decorators → dist/decorators}/channelInstance.js +0 -0
  47. /package/{decorators → dist/decorators}/endpoint.d.ts +0 -0
  48. /package/{decorators → dist/decorators}/endpoint.js +0 -0
  49. /package/{decorators → dist/decorators}/endpointInstance.d.ts +0 -0
  50. /package/{decorators → dist/decorators}/endpointInstance.js +0 -0
  51. /package/{decorators → dist/decorators}/getChannel.d.ts +0 -0
  52. /package/{decorators → dist/decorators}/getChannel.js +0 -0
  53. /package/{decorators → dist/decorators}/getConnectionContext.d.ts +0 -0
  54. /package/{decorators → dist/decorators}/getConnectionContext.js +0 -0
  55. /package/{decorators → dist/decorators}/getConnectionHeaders.d.ts +0 -0
  56. /package/{decorators → dist/decorators}/getConnectionHeaders.js +0 -0
  57. /package/{decorators → dist/decorators}/getContext.d.ts +0 -0
  58. /package/{decorators → dist/decorators}/getContext.js +0 -0
  59. /package/{decorators → dist/decorators}/getEventContext.d.ts +0 -0
  60. /package/{decorators → dist/decorators}/getEventContext.js +0 -0
  61. /package/{decorators → dist/decorators}/getEventParams.d.ts +0 -0
  62. /package/{decorators → dist/decorators}/getEventParams.js +0 -0
  63. /package/{decorators → dist/decorators}/getEventPayload.d.ts +0 -0
  64. /package/{decorators → dist/decorators}/getEventPayload.js +0 -0
  65. /package/{decorators → dist/decorators}/getEventQuery.d.ts +0 -0
  66. /package/{decorators → dist/decorators}/getEventQuery.js +0 -0
  67. /package/{decorators → dist/decorators}/getJoinContext.d.ts +0 -0
  68. /package/{decorators → dist/decorators}/getJoinContext.js +0 -0
  69. /package/{decorators → dist/decorators}/getJoinParams.d.ts +0 -0
  70. /package/{decorators → dist/decorators}/getJoinParams.js +0 -0
  71. /package/{decorators → dist/decorators}/getLeaveEvent.d.ts +0 -0
  72. /package/{decorators → dist/decorators}/getLeaveEvent.js +0 -0
  73. /package/{decorators → dist/decorators}/getUserAssigns.d.ts +0 -0
  74. /package/{decorators → dist/decorators}/getUserAssigns.js +0 -0
  75. /package/{decorators → dist/decorators}/getUserData.d.ts +0 -0
  76. /package/{decorators → dist/decorators}/getUserData.js +0 -0
  77. /package/{decorators → dist/decorators}/getUserPresence.d.ts +0 -0
  78. /package/{decorators → dist/decorators}/getUserPresence.js +0 -0
  79. /package/{decorators → dist/decorators}/index.d.ts +0 -0
  80. /package/{decorators → dist/decorators}/index.js +0 -0
  81. /package/{decorators → dist/decorators}/onConnectionRequest.d.ts +0 -0
  82. /package/{decorators → dist/decorators}/onEvent.d.ts +0 -0
  83. /package/{decorators → dist/decorators}/onJoinRequest.d.ts +0 -0
  84. /package/{decorators → dist/decorators}/onLeave.d.ts +0 -0
  85. /package/{decorators → dist/decorators}/onOutgoingEvent.d.ts +0 -0
  86. /package/{decorators → dist/decorators}/useGuards.d.ts +0 -0
  87. /package/{decorators → dist/decorators}/useGuards.js +0 -0
  88. /package/{decorators → dist/decorators}/usePipes.d.ts +0 -0
  89. /package/{decorators → dist/decorators}/usePipes.js +0 -0
  90. /package/{helpers → dist/helpers}/createContextParamDecorator.d.ts +0 -0
  91. /package/{helpers → dist/helpers}/createContextParamDecorator.js +0 -0
  92. /package/{helpers → dist/helpers}/createParamDecorator.d.ts +0 -0
  93. /package/{managers → dist/managers}/channel.d.ts +0 -0
  94. /package/{managers → dist/managers}/channel.js +0 -0
  95. /package/{managers → dist/managers}/channelInstance.d.ts +0 -0
  96. /package/{managers → dist/managers}/channelInstance.js +0 -0
  97. /package/{managers → dist/managers}/class.d.ts +0 -0
  98. /package/{managers → dist/managers}/class.js +0 -0
  99. /package/{managers → dist/managers}/connection.d.ts +0 -0
  100. /package/{managers → dist/managers}/connection.js +0 -0
  101. /package/{managers → dist/managers}/createMetadataManager.d.ts +0 -0
  102. /package/{managers → dist/managers}/createMetadataManager.js +0 -0
  103. /package/{managers → dist/managers}/endpoint.d.ts +0 -0
  104. /package/{managers → dist/managers}/endpoint.js +0 -0
  105. /package/{managers → dist/managers}/endpointInstance.d.ts +0 -0
  106. /package/{managers → dist/managers}/endpointInstance.js +0 -0
  107. /package/{managers → dist/managers}/event.d.ts +0 -0
  108. /package/{managers → dist/managers}/event.js +0 -0
  109. /package/{managers → dist/managers}/guards.d.ts +0 -0
  110. /package/{managers → dist/managers}/guards.js +0 -0
  111. /package/{managers → dist/managers}/handlers.d.ts +0 -0
  112. /package/{managers → dist/managers}/handlers.js +0 -0
  113. /package/{managers → dist/managers}/join.d.ts +0 -0
  114. /package/{managers → dist/managers}/join.js +0 -0
  115. /package/{managers → dist/managers}/leave.d.ts +0 -0
  116. /package/{managers → dist/managers}/leave.js +0 -0
  117. /package/{managers → dist/managers}/method.d.ts +0 -0
  118. /package/{managers → dist/managers}/method.js +0 -0
  119. /package/{managers → dist/managers}/outgoingEvent.js +0 -0
  120. /package/{managers → dist/managers}/parametres.d.ts +0 -0
  121. /package/{managers → dist/managers}/parametres.js +0 -0
  122. /package/{managers → dist/managers}/pipes.d.ts +0 -0
  123. /package/{managers → dist/managers}/pipes.js +0 -0
  124. /package/{managers → dist/managers}/property.d.ts +0 -0
  125. /package/{managers → dist/managers}/property.js +0 -0
  126. /package/{modules → dist/modules}/pondSocket.d.ts +0 -0
  127. /package/{types.js → dist/types.js} +0 -0
package/package.json CHANGED
@@ -1,58 +1,62 @@
1
1
  {
2
2
  "name": "@eleven-am/pondsocket-nest",
3
- "version": "0.0.136",
4
- "description": "PondSocket is a fast simple socket server",
3
+ "version": "0.0.138",
4
+ "description": "NestJS decorators and dependency-injection integration for PondSocket.",
5
5
  "keywords": [
6
- "socket",
7
- "server",
8
- "ws",
6
+ "pondsocket",
7
+ "nestjs",
9
8
  "websocket",
10
- "pubsub",
11
- "presence",
9
+ "sse",
12
10
  "realtime",
13
- "realtime server"
11
+ "decorators"
14
12
  ],
15
- "publishConfig": {
16
- "access": "public"
17
- },
18
13
  "author": "Roy OSSAI",
19
- "main": "./index.js",
20
- "types": "./index.d.ts",
21
14
  "license": "GPL-3.0",
15
+ "homepage": "https://github.com/eleven-am/pondsocket#readme",
16
+ "bugs": {
17
+ "url": "https://github.com/eleven-am/pondsocket/issues"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/eleven-am/pondsocket.git",
22
+ "directory": "javascript/nest"
23
+ },
24
+ "engines": {
25
+ "node": ">=20"
26
+ },
27
+ "type": "commonjs",
28
+ "main": "./dist/index.js",
29
+ "types": "./dist/index.d.ts",
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/index.d.ts",
33
+ "require": "./dist/index.js",
34
+ "default": "./dist/index.js"
35
+ }
36
+ },
37
+ "files": [
38
+ "dist"
39
+ ],
40
+ "publishConfig": {
41
+ "access": "public",
42
+ "registry": "https://registry.npmjs.org"
43
+ },
22
44
  "scripts": {
23
- "build": "rimraf dist && tsc",
24
- "lint": "eslint --ext .ts src",
25
- "lint:fix": "eslint --fix --ext .ts src",
26
- "copy": "cp package.json dist && cp README.md dist && cp LICENSE dist",
27
- "push": "npm version patch && npm run copy && cd dist && npm publish && cd ..",
28
- "pipeline": "npm run build && npm run push"
45
+ "clean": "rimraf dist",
46
+ "build": "npm run clean && tsc --project tsconfig.json",
47
+ "test": "jest --runInBand",
48
+ "lint": "eslint src --max-warnings=0",
49
+ "prepack": "npm run build"
29
50
  },
30
51
  "dependencies": {
31
- "@eleven-am/pondsocket": "^0.1.217",
32
- "@golevelup/nestjs-discovery": "^6.1.2",
52
+ "@eleven-am/pondsocket": "^0.1.219",
53
+ "@eleven-am/pondsocket-common": "^0.0.41",
33
54
  "reflect-metadata": "^0.2.2"
34
55
  },
35
- "devDependencies": {
36
- "@eslint/compat": "^2.1.0",
37
- "@eslint/eslintrc": "^3.3.5",
38
- "@eslint/js": "^9.39.4",
39
- "@nestjs/common": "^11.1.23",
40
- "@nestjs/core": "^11.1.23",
41
- "@stylistic/eslint-plugin-ts": "^4.4.1",
42
- "@types/jest": "^30.0.0",
43
- "@typescript-eslint/eslint-plugin": "^8.59.4",
44
- "@typescript-eslint/parser": "^8.59.4",
45
- "eslint": "^9.39.4",
46
- "eslint-plugin-file-progress": "^3.0.2",
47
- "eslint-plugin-import": "^2.32.0",
48
- "globals": "^17.6.0",
49
- "jest": "^30.4.2",
50
- "prettier": "^3.8.3",
51
- "rxjs": "^7.8.2",
52
- "ts-jest": "^29.4.11",
53
- "ts-loader": "^9.5.7",
54
- "ts-node": "^10.9.2",
55
- "typescript": "^5.9.3"
56
+ "peerDependencies": {
57
+ "@nestjs/common": "^10.0.0 || ^11.0.0",
58
+ "@nestjs/core": "^10.0.0 || ^11.0.0",
59
+ "rxjs": "^7.1.0"
56
60
  },
57
61
  "jest": {
58
62
  "moduleFileExtensions": [
@@ -63,7 +67,7 @@
63
67
  "rootDir": "src",
64
68
  "testRegex": ".*\\.test\\.ts$",
65
69
  "transform": {
66
- "^.+\\.(t|j)s$": [
70
+ "^.+\\.ts$": [
67
71
  "ts-jest",
68
72
  {
69
73
  "tsconfig": "tsconfig.test.json"
@@ -71,9 +75,16 @@
71
75
  ]
72
76
  },
73
77
  "collectCoverageFrom": [
74
- "**/*.(t|j)s"
78
+ "**/*.ts",
79
+ "!**/*.test.ts",
80
+ "!**/index.ts"
75
81
  ],
76
- "coverageDirectory": "../coverage",
77
- "testEnvironment": "node"
82
+ "coverageDirectory": "../coverage/nest",
83
+ "testEnvironment": "node",
84
+ "moduleNameMapper": {
85
+ "^@eleven-am/pondsocket$": "<rootDir>/../../core/dist",
86
+ "^@eleven-am/pondsocket/types$": "<rootDir>/../../core/dist",
87
+ "^@eleven-am/pondsocket-common$": "<rootDir>/../../comnon/dist"
88
+ }
78
89
  }
79
90
  }
@@ -1,27 +0,0 @@
1
- import type { UserData } from '@eleven-am/pondsocket-common';
2
- import { NestContext } from '../types';
3
- export declare class Context {
4
- #private;
5
- constructor(context: NestContext, instance: any, propertyKey: string);
6
- get joinContext(): import("@eleven-am/pondsocket").JoinContext<string, import("@eleven-am/pondsocket-common").AnyPondSchema> | null;
7
- get eventContext(): import("@eleven-am/pondsocket").EventContext<string, import("@eleven-am/pondsocket-common").AnyPondSchema, string> | null;
8
- get connectionContext(): import("@eleven-am/pondsocket").ConnectionContext<string> | null;
9
- get leaveEvent(): import("@eleven-am/pondsocket").LeaveEvent | null;
10
- get presence(): import("@eleven-am/pondsocket-common").PondObject;
11
- get assigns(): import("@eleven-am/pondsocket-common").PondObject;
12
- get user(): UserData<import("@eleven-am/pondsocket-common").PondObject, import("@eleven-am/pondsocket-common").PondObject> | null;
13
- get channel(): import("@eleven-am/pondsocket").Channel<import("@eleven-am/pondsocket-common").AnyPondSchema> | null;
14
- get event(): (import("@eleven-am/pondsocket-common").EventParams<string> & {
15
- payload: import("@eleven-am/pondsocket-common").PondMessage;
16
- event: string;
17
- } & {
18
- event: string;
19
- payload: import("@eleven-am/pondsocket-common").PondObject;
20
- }) | null;
21
- getClass(): any;
22
- getHandler(): any;
23
- getInstance(): any;
24
- getMethod(): string;
25
- addData(key: string, value: unknown): void;
26
- getData(key: string): {} | null;
27
- }
@@ -1,103 +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 _Context_data, _Context_context, _Context_instance, _Context_propertyKey;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.Context = void 0;
16
- class Context {
17
- constructor(context, instance, propertyKey) {
18
- _Context_data.set(this, {});
19
- _Context_context.set(this, void 0);
20
- _Context_instance.set(this, void 0);
21
- _Context_propertyKey.set(this, void 0);
22
- __classPrivateFieldSet(this, _Context_context, context, "f");
23
- __classPrivateFieldSet(this, _Context_instance, instance, "f");
24
- __classPrivateFieldSet(this, _Context_propertyKey, propertyKey, "f");
25
- }
26
- get joinContext() {
27
- var _a;
28
- return (_a = __classPrivateFieldGet(this, _Context_context, "f").join) !== null && _a !== void 0 ? _a : null;
29
- }
30
- get eventContext() {
31
- var _a;
32
- return (_a = __classPrivateFieldGet(this, _Context_context, "f").event) !== null && _a !== void 0 ? _a : null;
33
- }
34
- get connectionContext() {
35
- var _a;
36
- return (_a = __classPrivateFieldGet(this, _Context_context, "f").connection) !== null && _a !== void 0 ? _a : null;
37
- }
38
- get leaveEvent() {
39
- var _a;
40
- return (_a = __classPrivateFieldGet(this, _Context_context, "f").leave) !== null && _a !== void 0 ? _a : null;
41
- }
42
- get presence() {
43
- var _a, _b;
44
- return (_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.presence) !== null && _b !== void 0 ? _b : {};
45
- }
46
- get assigns() {
47
- var _a, _b;
48
- return (_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.assigns) !== null && _b !== void 0 ? _b : {};
49
- }
50
- get user() {
51
- var _a, _b, _c, _d;
52
- if (this.connectionContext) {
53
- const user = {
54
- id: this.connectionContext.clientId,
55
- assigns: {},
56
- presence: {},
57
- };
58
- return user;
59
- }
60
- else if (this.leaveEvent) {
61
- return this.leaveEvent.user;
62
- }
63
- return (_d = (_b = (_a = this.joinContext) === null || _a === void 0 ? void 0 : _a.user) !== null && _b !== void 0 ? _b : (_c = this.eventContext) === null || _c === void 0 ? void 0 : _c.user) !== null && _d !== void 0 ? _d : null;
64
- }
65
- get channel() {
66
- var _a, _b, _c, _d, _e, _f;
67
- return (_f = (_d = (_b = (_a = this.joinContext) === null || _a === void 0 ? void 0 : _a.channel) !== null && _b !== void 0 ? _b : (_c = this.eventContext) === null || _c === void 0 ? void 0 : _c.channel) !== null && _d !== void 0 ? _d : (_e = this.leaveEvent) === null || _e === void 0 ? void 0 : _e.channel) !== null && _f !== void 0 ? _f : null;
68
- }
69
- get event() {
70
- var _a, _b, _c, _d;
71
- if (this.connectionContext) {
72
- const event = {
73
- params: this.connectionContext.params,
74
- query: this.connectionContext.query,
75
- payload: {},
76
- event: 'CONNECTION',
77
- };
78
- return event;
79
- }
80
- return (_d = (_b = (_a = this.joinContext) === null || _a === void 0 ? void 0 : _a.event) !== null && _b !== void 0 ? _b : (_c = this.eventContext) === null || _c === void 0 ? void 0 : _c.event) !== null && _d !== void 0 ? _d : null;
81
- }
82
- getClass() {
83
- return __classPrivateFieldGet(this, _Context_instance, "f").constructor;
84
- }
85
- getHandler() {
86
- return __classPrivateFieldGet(this, _Context_instance, "f")[__classPrivateFieldGet(this, _Context_propertyKey, "f")];
87
- }
88
- getInstance() {
89
- return __classPrivateFieldGet(this, _Context_instance, "f");
90
- }
91
- getMethod() {
92
- return __classPrivateFieldGet(this, _Context_propertyKey, "f");
93
- }
94
- addData(key, value) {
95
- __classPrivateFieldGet(this, _Context_data, "f")[key] = value;
96
- }
97
- getData(key) {
98
- var _a;
99
- return (_a = __classPrivateFieldGet(this, _Context_data, "f")[key]) !== null && _a !== void 0 ? _a : null;
100
- }
101
- }
102
- exports.Context = Context;
103
- _Context_data = new WeakMap(), _Context_context = new WeakMap(), _Context_instance = new WeakMap(), _Context_propertyKey = new WeakMap();
package/helpers/misc.js DELETED
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.retrieveInstance = retrieveInstance;
4
- const common_1 = require("@nestjs/common");
5
- function retrieveInstance(moduleRef, Guard) {
6
- try {
7
- return moduleRef.get(Guard, { strict: false });
8
- }
9
- catch (e) {
10
- common_1.Logger.warn(`Unable to resolve instance: ${Guard.name}, creating new instance, WARNING: this will not inject dependencies. To fix this, add the instance to the providers array of the PondSocketModule.`);
11
- return new Guard();
12
- }
13
- }
package/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from './decorators';
2
- export * from './modules/pondSocket';
3
- export * from './helpers/createParamDecorator';
4
- export { Context } from './context/context';
5
- export type { CanActivate, Metadata, AsyncMetadata, AsyncFactoryResult, PondResponse, Constructor, ParamDecoratorCallback, NestContext } from './types';
@@ -1,5 +0,0 @@
1
- import type { OutgoingContext } from '@eleven-am/pondsocket/types';
2
- export declare function manageOutgoingEvent(target: unknown): {
3
- get(): import("../types").HandlerData<OutgoingContext<string, import("@eleven-am/pondsocket/types").AnyPondSchema, string>>[];
4
- set(path: string, value: import("../types").HandlerFunction<OutgoingContext<string, import("@eleven-am/pondsocket/types").AnyPondSchema, string>>): void;
5
- };
@@ -1,5 +0,0 @@
1
- import type { LeaveEvent, JoinContext, EventContext, ConnectionContext } from '@eleven-am/pondsocket/types';
2
- import type { PipeTransform } from '@nestjs/common';
3
- import type { ModuleRef } from '@nestjs/core';
4
- import { PondResponse, Constructor, CanActivate } from '../types';
5
- export declare function performAction(instance: any, moduleRef: ModuleRef, globalGuards: Constructor<CanActivate>[], globalPipes: Constructor<PipeTransform>[], originalMethod: (...args: any[]) => Promise<PondResponse | null | undefined>, propertyKey: string, input: LeaveEvent | JoinContext<string> | EventContext<string> | ConnectionContext<string>): Promise<void>;
@@ -1,89 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.performAction = performAction;
13
- const context_1 = require("../context/context");
14
- const misc_1 = require("../helpers/misc");
15
- const guards_1 = require("../managers/guards");
16
- const parametres_1 = require("../managers/parametres");
17
- const narrow_1 = require("./narrow");
18
- const response_1 = require("./response");
19
- function retrieveParameters(context, globalPipes, moduleRef) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- var _a;
22
- const gottenValues = (_a = (0, parametres_1.manageParameters)(context.getInstance(), context.getMethod()).get()) !== null && _a !== void 0 ? _a : [];
23
- const promises = gottenValues
24
- .map((_a) => __awaiter(this, [_a], void 0, function* ({ callback, index }) {
25
- return ({
26
- value: yield callback(context, globalPipes, moduleRef),
27
- index,
28
- });
29
- }));
30
- const values = yield Promise.all(promises);
31
- return values
32
- .sort((a, b) => a.index - b.index)
33
- .map(({ value }) => value);
34
- });
35
- }
36
- function performGuards(moduleRef, globalGuards, context) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- const classGuards = (0, guards_1.manageGuards)(context.getClass())
39
- .get();
40
- const methodGuards = (0, guards_1.manageGuards)(context.getInstance(), context.getMethod())
41
- .get();
42
- const guards = globalGuards
43
- .concat(classGuards, methodGuards)
44
- .map((Guard) => (0, misc_1.retrieveInstance)(moduleRef, Guard));
45
- for (const guard of guards) {
46
- if (!(yield guard.canActivate(context))) {
47
- return false;
48
- }
49
- }
50
- return true;
51
- });
52
- }
53
- function getNestContext(context) {
54
- if ((0, narrow_1.isJoinContext)(context)) {
55
- return {
56
- join: context,
57
- };
58
- }
59
- if ((0, narrow_1.isEventContext)(context)) {
60
- return {
61
- event: context,
62
- };
63
- }
64
- if ((0, narrow_1.isConnectionContext)(context)) {
65
- return {
66
- connection: context,
67
- };
68
- }
69
- return {
70
- leave: context,
71
- };
72
- }
73
- function performAction(instance, moduleRef, globalGuards, globalPipes, originalMethod, propertyKey, input) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- var _a, _b;
76
- const ctx = getNestContext(input);
77
- const context = new context_1.Context(ctx, instance, propertyKey);
78
- const channel = context.channel;
79
- const socketId = (_b = (_a = context.user) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : '';
80
- const canProceed = yield performGuards(moduleRef, globalGuards, context);
81
- if (canProceed) {
82
- const data = yield originalMethod.apply(instance, yield retrieveParameters(context, globalPipes, moduleRef));
83
- (0, response_1.performResponse)(socketId, channel, data, input);
84
- }
85
- else if ((0, narrow_1.isJoinContext)(input) || (0, narrow_1.isConnectionContext)(input)) {
86
- input.decline('Unauthorized', 403);
87
- }
88
- });
89
- }
@@ -1,2 +0,0 @@
1
- import type { ConnectionContext, JoinContext, EventContext } from '@eleven-am/pondsocket/types';
2
- export declare function performErrors(error: unknown, response: ConnectionContext<string> | JoinContext<string> | EventContext<string>): ConnectionContext<string> | JoinContext<string, import("@eleven-am/pondsocket/types").AnyPondSchema> | EventContext<string, import("@eleven-am/pondsocket/types").AnyPondSchema, string> | undefined;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.performErrors = performErrors;
4
- const common_1 = require("@nestjs/common");
5
- const narrow_1 = require("./narrow");
6
- function performErrors(error, response) {
7
- var _a;
8
- let message;
9
- let data;
10
- let status;
11
- if (error instanceof common_1.HttpException) {
12
- message = error.message;
13
- status = error.getStatus();
14
- data = (_a = error.getResponse()) === null || _a === void 0 ? void 0 : _a.message;
15
- }
16
- else if (error instanceof Error) {
17
- message = error.message;
18
- status = 500;
19
- }
20
- else {
21
- message = 'An unknown error occurred';
22
- status = 500;
23
- }
24
- if ((0, narrow_1.isEventContext)(response)) {
25
- return response.reply('UNKNOWN_ERROR', {
26
- message,
27
- data,
28
- status,
29
- });
30
- }
31
- if (!response.hasResponded) {
32
- return response.decline(message, status);
33
- }
34
- if (process.env.NODE_ENV === 'development') {
35
- console.error(error);
36
- }
37
- }
@@ -1,7 +0,0 @@
1
- import type { JoinContext, EventContext, ConnectionContext, LeaveEvent } from '@eleven-am/pondsocket/types';
2
- type Context = JoinContext<string> | EventContext<string> | ConnectionContext<string> | LeaveEvent;
3
- export declare function isEventContext(response: Context): response is EventContext<string>;
4
- export declare function isJoinContext(response: Context): response is JoinContext<string>;
5
- export declare function isConnectionContext(response: Context): response is ConnectionContext<string>;
6
- export declare function isLeaveEvent(response: Context): response is LeaveEvent;
7
- export {};
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isEventContext = isEventContext;
4
- exports.isJoinContext = isJoinContext;
5
- exports.isConnectionContext = isConnectionContext;
6
- exports.isLeaveEvent = isLeaveEvent;
7
- function isEventContext(response) {
8
- return !('accept' in response);
9
- }
10
- function isJoinContext(response) {
11
- return 'accept' in response && 'broadcast' in response;
12
- }
13
- function isConnectionContext(response) {
14
- return 'accept' in response && !('broadcast' in response);
15
- }
16
- function isLeaveEvent(response) {
17
- const isJoin = isJoinContext(response);
18
- const isEvent = isEventContext(response);
19
- const isConnection = isConnectionContext(response);
20
- return !isJoin && !isEvent && !isConnection;
21
- }
@@ -1,3 +0,0 @@
1
- import { Channel, JoinContext, EventContext, ConnectionContext, LeaveEvent } from '@eleven-am/pondsocket/types';
2
- import { PondResponse } from '../types';
3
- export declare function performResponse(socketId: string, channel: Channel | null, data: PondResponse | null | undefined, context: JoinContext<string> | EventContext<string> | ConnectionContext<string> | LeaveEvent): void;
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.performResponse = performResponse;
15
- const narrow_1 = require("./narrow");
16
- function isNotEmpty(value) {
17
- if (value === null || value === undefined) {
18
- return false;
19
- }
20
- if (typeof value === 'object') {
21
- return Object.keys(value).length !== 0;
22
- }
23
- return value !== '';
24
- }
25
- function performResponse(socketId, channel, data, context) {
26
- if (((0, narrow_1.isLeaveEvent)(context) || !isNotEmpty(data)) || (!(0, narrow_1.isEventContext)(context) && context.hasResponded)) {
27
- return;
28
- }
29
- const { event, presence, assigns, broadcast, broadcastFrom, broadcastTo } = data, rest = __rest(data, ["event", "presence", "assigns", "broadcast", "broadcastFrom", "broadcastTo"]);
30
- if ((0, narrow_1.isConnectionContext)(context)) {
31
- context
32
- .assign(typeof assigns === 'object' ? assigns : {})
33
- .accept();
34
- }
35
- else if ((0, narrow_1.isJoinContext)(context)) {
36
- context
37
- .assign(typeof assigns === 'object' ? assigns : {})
38
- .accept();
39
- }
40
- else {
41
- context
42
- .assign(typeof assigns === 'object' ? assigns : {});
43
- }
44
- const payload = isNotEmpty(rest) ? rest : {};
45
- if (event) {
46
- context.reply(event, payload);
47
- }
48
- if ((0, narrow_1.isJoinContext)(context) || (0, narrow_1.isEventContext)(context)) {
49
- if (broadcast) {
50
- context.broadcast(broadcast, payload);
51
- }
52
- if (broadcastFrom) {
53
- context.broadcastFrom(broadcastFrom, payload);
54
- }
55
- if (broadcastTo) {
56
- context.broadcastTo(broadcastTo.event, payload, broadcastTo.users);
57
- }
58
- }
59
- if (channel && isNotEmpty(presence)) {
60
- channel.upsertPresence(socketId, presence);
61
- }
62
- }