@heliosjs/http 1.0.1

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 (191) hide show
  1. package/README.md +540 -0
  2. package/dist/Application.d.ts +32 -0
  3. package/dist/Application.js +269 -0
  4. package/dist/Application.js.map +1 -0
  5. package/dist/constants.d.ts +25 -0
  6. package/dist/constants.js +34 -0
  7. package/dist/constants.js.map +1 -0
  8. package/dist/decorators.d.ts +43 -0
  9. package/dist/decorators.js +81 -0
  10. package/dist/decorators.js.map +1 -0
  11. package/dist/index.d.ts +8 -0
  12. package/dist/index.js +22 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/socket/decorators.d.ts +77 -0
  15. package/dist/socket/decorators.js +112 -0
  16. package/dist/socket/decorators.js.map +1 -0
  17. package/dist/socket/index.d.ts +1 -0
  18. package/dist/socket/index.js +18 -0
  19. package/dist/socket/index.js.map +1 -0
  20. package/dist/sse/decorators.d.ts +52 -0
  21. package/dist/sse/decorators.js +76 -0
  22. package/dist/sse/decorators.js.map +1 -0
  23. package/dist/sse/index.d.ts +1 -0
  24. package/dist/sse/index.js +18 -0
  25. package/dist/sse/index.js.map +1 -0
  26. package/dist/types/core/common.d.ts +44 -0
  27. package/dist/types/core/common.js +15 -0
  28. package/dist/types/core/common.js.map +1 -0
  29. package/dist/types/core/controller.d.ts +78 -0
  30. package/dist/types/core/controller.js +3 -0
  31. package/dist/types/core/controller.js.map +1 -0
  32. package/dist/types/core/cors.d.ts +10 -0
  33. package/dist/types/core/cors.js +3 -0
  34. package/dist/types/core/cors.js.map +1 -0
  35. package/dist/types/core/error.d.ts +72 -0
  36. package/dist/types/core/error.js +19 -0
  37. package/dist/types/core/error.js.map +1 -0
  38. package/dist/types/core/index.d.ts +9 -0
  39. package/dist/types/core/index.js +26 -0
  40. package/dist/types/core/index.js.map +1 -0
  41. package/dist/types/core/multipart.d.ts +8 -0
  42. package/dist/types/core/multipart.js +3 -0
  43. package/dist/types/core/multipart.js.map +1 -0
  44. package/dist/types/core/request.d.ts +65 -0
  45. package/dist/types/core/request.js +3 -0
  46. package/dist/types/core/request.js.map +1 -0
  47. package/dist/types/core/response.d.ts +49 -0
  48. package/dist/types/core/response.js +3 -0
  49. package/dist/types/core/response.js.map +1 -0
  50. package/dist/types/core/sanitize.d.ts +8 -0
  51. package/dist/types/core/sanitize.js +3 -0
  52. package/dist/types/core/sanitize.js.map +1 -0
  53. package/dist/types/core/sse.d.ts +37 -0
  54. package/dist/types/core/sse.js +3 -0
  55. package/dist/types/core/sse.js.map +1 -0
  56. package/dist/types/http/http.d.ts +111 -0
  57. package/dist/types/http/http.js +3 -0
  58. package/dist/types/http/http.js.map +1 -0
  59. package/dist/types/http/index.d.ts +3 -0
  60. package/dist/types/http/index.js +20 -0
  61. package/dist/types/http/index.js.map +1 -0
  62. package/dist/types/http/plugin.d.ts +18 -0
  63. package/dist/types/http/plugin.js +3 -0
  64. package/dist/types/http/plugin.js.map +1 -0
  65. package/dist/types/http/static.d.ts +24 -0
  66. package/dist/types/http/static.js +3 -0
  67. package/dist/types/http/static.js.map +1 -0
  68. package/dist/types/ws/index.d.ts +50 -0
  69. package/dist/types/ws/index.js +3 -0
  70. package/dist/types/ws/index.js.map +1 -0
  71. package/dist/utils/core/controller.d.ts +25 -0
  72. package/dist/utils/core/controller.js +219 -0
  73. package/dist/utils/core/controller.js.map +1 -0
  74. package/dist/utils/core/cors.d.ts +8 -0
  75. package/dist/utils/core/cors.js +128 -0
  76. package/dist/utils/core/cors.js.map +1 -0
  77. package/dist/utils/core/endpoint.d.ts +3 -0
  78. package/dist/utils/core/endpoint.js +28 -0
  79. package/dist/utils/core/endpoint.js.map +1 -0
  80. package/dist/utils/core/error/apperror.d.ts +31 -0
  81. package/dist/utils/core/error/apperror.js +131 -0
  82. package/dist/utils/core/error/apperror.js.map +1 -0
  83. package/dist/utils/core/error/authorizations.d.ts +7 -0
  84. package/dist/utils/core/error/authorizations.js +17 -0
  85. package/dist/utils/core/error/authorizations.js.map +1 -0
  86. package/dist/utils/core/error/base.d.ts +20 -0
  87. package/dist/utils/core/error/base.js +52 -0
  88. package/dist/utils/core/error/base.js.map +1 -0
  89. package/dist/utils/core/error/dependencyFailed.d.ts +7 -0
  90. package/dist/utils/core/error/dependencyFailed.js +17 -0
  91. package/dist/utils/core/error/dependencyFailed.js.map +1 -0
  92. package/dist/utils/core/error/duplicateEntry.d.ts +7 -0
  93. package/dist/utils/core/error/duplicateEntry.js +17 -0
  94. package/dist/utils/core/error/duplicateEntry.js.map +1 -0
  95. package/dist/utils/core/error/forbidden.d.ts +7 -0
  96. package/dist/utils/core/error/forbidden.js +17 -0
  97. package/dist/utils/core/error/forbidden.js.map +1 -0
  98. package/dist/utils/core/error/helpers.d.ts +8 -0
  99. package/dist/utils/core/error/helpers.js +144 -0
  100. package/dist/utils/core/error/helpers.js.map +1 -0
  101. package/dist/utils/core/error/index.d.ts +12 -0
  102. package/dist/utils/core/error/index.js +29 -0
  103. package/dist/utils/core/error/index.js.map +1 -0
  104. package/dist/utils/core/error/invalidState.d.ts +7 -0
  105. package/dist/utils/core/error/invalidState.js +17 -0
  106. package/dist/utils/core/error/invalidState.js.map +1 -0
  107. package/dist/utils/core/error/notfound.d.ts +7 -0
  108. package/dist/utils/core/error/notfound.js +18 -0
  109. package/dist/utils/core/error/notfound.js.map +1 -0
  110. package/dist/utils/core/error/rateLimit.d.ts +7 -0
  111. package/dist/utils/core/error/rateLimit.js +17 -0
  112. package/dist/utils/core/error/rateLimit.js.map +1 -0
  113. package/dist/utils/core/error/serviceUnavailable.d.ts +7 -0
  114. package/dist/utils/core/error/serviceUnavailable.js +17 -0
  115. package/dist/utils/core/error/serviceUnavailable.js.map +1 -0
  116. package/dist/utils/core/error/validation.d.ts +10 -0
  117. package/dist/utils/core/error/validation.js +20 -0
  118. package/dist/utils/core/error/validation.js.map +1 -0
  119. package/dist/utils/core/headers.d.ts +2 -0
  120. package/dist/utils/core/headers.js +10 -0
  121. package/dist/utils/core/headers.js.map +1 -0
  122. package/dist/utils/core/helper.d.ts +6 -0
  123. package/dist/utils/core/helper.js +66 -0
  124. package/dist/utils/core/helper.js.map +1 -0
  125. package/dist/utils/core/index.d.ts +10 -0
  126. package/dist/utils/core/index.js +27 -0
  127. package/dist/utils/core/index.js.map +1 -0
  128. package/dist/utils/core/multipart.d.ts +9 -0
  129. package/dist/utils/core/multipart.js +207 -0
  130. package/dist/utils/core/multipart.js.map +1 -0
  131. package/dist/utils/core/request.d.ts +100 -0
  132. package/dist/utils/core/request.js +218 -0
  133. package/dist/utils/core/request.js.map +1 -0
  134. package/dist/utils/core/response.d.ts +48 -0
  135. package/dist/utils/core/response.js +269 -0
  136. package/dist/utils/core/response.js.map +1 -0
  137. package/dist/utils/core/routeWalker.d.ts +2 -0
  138. package/dist/utils/core/routeWalker.js +115 -0
  139. package/dist/utils/core/routeWalker.js.map +1 -0
  140. package/dist/utils/core/sanitize.d.ts +30 -0
  141. package/dist/utils/core/sanitize.js +134 -0
  142. package/dist/utils/core/sanitize.js.map +1 -0
  143. package/dist/utils/http/index.d.ts +5 -0
  144. package/dist/utils/http/index.js +22 -0
  145. package/dist/utils/http/index.js.map +1 -0
  146. package/dist/utils/http/plugin.d.ts +9 -0
  147. package/dist/utils/http/plugin.js +43 -0
  148. package/dist/utils/http/plugin.js.map +1 -0
  149. package/dist/utils/http/request.factory.d.ts +8 -0
  150. package/dist/utils/http/request.factory.js +55 -0
  151. package/dist/utils/http/request.factory.js.map +1 -0
  152. package/dist/utils/http/response.factory.d.ts +9 -0
  153. package/dist/utils/http/response.factory.js +14 -0
  154. package/dist/utils/http/response.factory.js.map +1 -0
  155. package/dist/utils/http/server.d.ts +18 -0
  156. package/dist/utils/http/server.js +58 -0
  157. package/dist/utils/http/server.js.map +1 -0
  158. package/dist/utils/http/static.d.ts +3 -0
  159. package/dist/utils/http/static.js +151 -0
  160. package/dist/utils/http/static.js.map +1 -0
  161. package/dist/utils/shared/index.d.ts +2 -0
  162. package/dist/utils/shared/index.js +19 -0
  163. package/dist/utils/shared/index.js.map +1 -0
  164. package/dist/utils/shared/parsers.d.ts +11 -0
  165. package/dist/utils/shared/parsers.js +133 -0
  166. package/dist/utils/shared/parsers.js.map +1 -0
  167. package/dist/utils/shared/validate.d.ts +1 -0
  168. package/dist/utils/shared/validate.js +41 -0
  169. package/dist/utils/shared/validate.js.map +1 -0
  170. package/dist/utils/socket/index.d.ts +3 -0
  171. package/dist/utils/socket/index.js +20 -0
  172. package/dist/utils/socket/index.js.map +1 -0
  173. package/dist/utils/socket/server.d.ts +33 -0
  174. package/dist/utils/socket/server.js +218 -0
  175. package/dist/utils/socket/server.js.map +1 -0
  176. package/dist/utils/socket/service.d.ts +20 -0
  177. package/dist/utils/socket/service.js +42 -0
  178. package/dist/utils/socket/service.js.map +1 -0
  179. package/dist/utils/socket/socket.d.ts +16 -0
  180. package/dist/utils/socket/socket.js +33 -0
  181. package/dist/utils/socket/socket.js.map +1 -0
  182. package/dist/utils/sse/index.d.ts +2 -0
  183. package/dist/utils/sse/index.js +19 -0
  184. package/dist/utils/sse/index.js.map +1 -0
  185. package/dist/utils/sse/server.d.ts +14 -0
  186. package/dist/utils/sse/server.js +85 -0
  187. package/dist/utils/sse/server.js.map +1 -0
  188. package/dist/utils/sse/service.d.ts +17 -0
  189. package/dist/utils/sse/service.js +40 -0
  190. package/dist/utils/sse/service.js.map +1 -0
  191. package/package.json +38 -0
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.HttpServer = void 0;
7
+ const ws_1 = require("graphql-ws/use/ws");
8
+ const graphql_yoga_1 = require("graphql-yoga");
9
+ const http_1 = __importDefault(require("http"));
10
+ const type_graphql_1 = require("type-graphql");
11
+ const constants_1 = require("./constants");
12
+ const core_1 = require("./utils/core");
13
+ const http_2 = require("./utils/http");
14
+ const socket_1 = require("./utils/socket");
15
+ const sse_1 = require("./utils/sse");
16
+ class HttpServer extends http_2.Plugin {
17
+ config;
18
+ isRunning = false;
19
+ sse;
20
+ websocket;
21
+ controllers = [];
22
+ middlewares = [];
23
+ app;
24
+ plugins = [];
25
+ allContriollers = [];
26
+ staticMiddlewares = [];
27
+ constructor(configOrClass) {
28
+ super();
29
+ this.config = (0, http_2.resolveConfig)(configOrClass);
30
+ this.middlewares = this.middlewares.concat(this.config.middlewares ?? []);
31
+ this.controllers = this.collectControllers(this.config.controllers ?? []);
32
+ this.app = http_1.default.createServer(this.requestHandler.bind(this));
33
+ for (const st of this.config.statics ?? []) {
34
+ const staticMw = (0, http_2.staticMiddleware)(st.path, st.options);
35
+ this.staticMiddlewares.push(staticMw);
36
+ }
37
+ if (this.config.websocket && this.config.graphql) {
38
+ throw new Error(`You cant't use custom websocket with graphql`);
39
+ }
40
+ if (this.config.websocket) {
41
+ this.setUpWebsocket();
42
+ }
43
+ if (this.config.graphql) {
44
+ this.setupGraphQL();
45
+ }
46
+ if (this.config.sse?.enabled) {
47
+ this.sse = new sse_1.SSEServer();
48
+ this.sse.registerControllers(this.controllers);
49
+ sse_1.SSEService.getInstance().initialize(this.sse);
50
+ }
51
+ this.logConfig();
52
+ }
53
+ setUpWebsocket() {
54
+ this.websocket = new socket_1.WebSocketServer(this.app, { path: this.config.websocket?.path ?? '/ws' });
55
+ this.websocket.registerControllers(this.controllers);
56
+ socket_1.WebSocketService.getInstance().initialize(this.websocket);
57
+ }
58
+ collectControllers(controllers = []) {
59
+ const result = [];
60
+ for (const ControllerClass of controllers) {
61
+ if (typeof ControllerClass !== 'function') {
62
+ continue;
63
+ }
64
+ if (!result.includes(ControllerClass)) {
65
+ result.push(ControllerClass);
66
+ }
67
+ const subControllers = Reflect.getMetadata(constants_1.CONTROLLERS, ControllerClass.prototype) || [];
68
+ if (subControllers.length > 0) {
69
+ const nestedControllers = this.collectControllers(subControllers);
70
+ for (const nested of nestedControllers) {
71
+ if (!result.includes(nested)) {
72
+ result.push(nested);
73
+ }
74
+ }
75
+ }
76
+ }
77
+ return result;
78
+ }
79
+ logConfig() {
80
+ console.log(`
81
+ ╔════════════════════════════════════════╗
82
+ ║ 🚀 Server Configuration
83
+ ╠════════════════════════════════════════╣
84
+ ║ 📍 Host: ${this.config.host}
85
+ ║ 🔌 Port: ${this.config.port}
86
+ ║ 🔌 Websocket: ${!!this.config.websocket && this.config.graphql?.pubSub}
87
+ ║ 🔌 Websocket path prefix: ${this.config.websocket?.path ?? '/ws'}
88
+ ║ 🔧 Global Middlewares: ${this.middlewares?.length || 0}
89
+ ║ 🔧 Error handler: ${!this.config.errorHandler}
90
+ ║ 🎯 Global Interceptors: ${!!this.config.interceptor?.length}
91
+ ║ 📦 Root controllers: ${this.config.controllers?.length ?? 0}
92
+ ║ 📦 Sub controllers: ${this.controllers.length - (this.config.controllers?.length ?? 0)}
93
+ ║ 📦 GraphQL resolvers: ${this.config.graphql?.resolvers?.length ?? 0}
94
+ ╚════════════════════════════════════════╝
95
+ `);
96
+ }
97
+ async listen(port, host) {
98
+ if (this.isRunning) {
99
+ return this.app;
100
+ }
101
+ const listenPort = port || this.config.port || 3000;
102
+ const listenHost = host || this.config.host || 'localhost';
103
+ return new Promise(async (resolve, reject) => {
104
+ try {
105
+ this.app.listen(listenPort, listenHost, () => {
106
+ this.isRunning = true;
107
+ console.log(`
108
+ ╔════════════════════════════════════════╗
109
+ ║ 🎉 Server started successfully!
110
+ ║ 📍 http://${listenHost}:${listenPort}
111
+ ║ 📊 Status: RUNNING
112
+ ╚════════════════════════════════════════╝
113
+ `);
114
+ resolve(this.app);
115
+ });
116
+ await this.callPluginMethod('onStart', this.app);
117
+ this.app.on('error', (error) => {
118
+ reject(error);
119
+ });
120
+ }
121
+ catch (error) {
122
+ reject(error);
123
+ }
124
+ });
125
+ }
126
+ async close() {
127
+ return new Promise((resolve, reject) => {
128
+ if (!this.isRunning) {
129
+ resolve();
130
+ return;
131
+ }
132
+ this.app.close(async (err) => {
133
+ await this.callPluginMethod('onStop', this.app);
134
+ if (err) {
135
+ reject(err);
136
+ }
137
+ else {
138
+ this.isRunning = false;
139
+ resolve();
140
+ }
141
+ });
142
+ });
143
+ }
144
+ status() {
145
+ return { running: this.isRunning, config: this.config };
146
+ }
147
+ async requestHandler(req, res) {
148
+ const startTime = Date.now();
149
+ const request = await http_2.RequestFactory.create(req);
150
+ const response = http_2.ResponseFactory.create(res, request);
151
+ try {
152
+ await this.callPluginHook('beforeRequest', req);
153
+ }
154
+ catch (error) {
155
+ response.status = 500;
156
+ response.data = error;
157
+ return this.sendResponse(request, response, startTime);
158
+ }
159
+ if (response.headersSent)
160
+ return;
161
+ try {
162
+ let handledCors = this.config.cors
163
+ ? (0, core_1.handleCORS)(request, response, this.config.cors)
164
+ : { permitted: true, continue: true };
165
+ if (!handledCors.permitted) {
166
+ response.status = 403;
167
+ response.data = 'CORS: Origin not allowed';
168
+ return this.sendResponse(request, response, startTime);
169
+ }
170
+ if (!handledCors.continue && handledCors.permitted) {
171
+ response.status = 204;
172
+ return this.sendResponse(request, response, startTime);
173
+ }
174
+ await this.beforeRequest(request, response);
175
+ if (response.headersSent)
176
+ return;
177
+ await this.callPluginHook('beforeRoute', request, response);
178
+ if (response.headersSent)
179
+ return;
180
+ await this.runController(request, response);
181
+ return this.sendResponse(request, response, startTime);
182
+ }
183
+ catch (error) {
184
+ response.error(error);
185
+ return this.sendResponse(request, response, startTime);
186
+ }
187
+ }
188
+ async beforeRequest(request, response) {
189
+ (0, core_1.sanitizeRequest)(request, this.config.sanitizers ?? []);
190
+ for (const middleware of this.staticMiddlewares) {
191
+ await middleware(request.raw, response.raw, core_1.NextFunction);
192
+ }
193
+ if (response.raw.headersSent) {
194
+ return;
195
+ }
196
+ for (const middleware of this.middlewares?.reverse() || []) {
197
+ await middleware(request, response, core_1.NextFunction);
198
+ }
199
+ }
200
+ async runController(request, response) {
201
+ for (const ControllerClass of this.controllers ?? []) {
202
+ const instance = new ControllerClass();
203
+ if (typeof instance.handleRequest === 'function') {
204
+ const done = await instance.handleRequest(request, response);
205
+ if (done) {
206
+ break;
207
+ }
208
+ }
209
+ }
210
+ }
211
+ async sendResponse(request, response, startTime) {
212
+ if (response.headersSent)
213
+ return;
214
+ if (!response.getHeader('Content-Type')) {
215
+ response.setHeader('Content-Type', 'application/json');
216
+ }
217
+ response.setHeader('X-Response-Time', `${Date.now() - startTime}ms`);
218
+ try {
219
+ response.end(response.data);
220
+ await this.callPluginHook('afterResponse', request, response);
221
+ }
222
+ catch (err) {
223
+ response.status = 500;
224
+ response.error(err);
225
+ response.end(err);
226
+ }
227
+ }
228
+ async setupGraphQL() {
229
+ if (!this.config.graphql || !this.config.graphql?.resolvers?.length)
230
+ return;
231
+ const graphqlWsServer = new socket_1.WebSocketServer(this.app, {
232
+ path: this.config.graphql.path ?? '/graphql',
233
+ });
234
+ const schemaConfig = {
235
+ resolvers: this.config.graphql?.resolvers,
236
+ validate: true,
237
+ };
238
+ if (this.config.graphql.pubSub) {
239
+ Object.assign(schemaConfig, { pubSub: this.config.graphql.pubSub });
240
+ }
241
+ const schema = await (0, type_graphql_1.buildSchema)(schemaConfig);
242
+ const yoga = (0, graphql_yoga_1.createYoga)({
243
+ schema,
244
+ context: (ctx) => {
245
+ const req = ctx.request ?? ctx.req;
246
+ return {
247
+ request: req.raw,
248
+ headers: req?.headers,
249
+ pubSub: this.config.graphql?.pubSub ?? (0, graphql_yoga_1.createPubSub)(),
250
+ };
251
+ },
252
+ graphiql: !!this.config.graphql?.playground,
253
+ });
254
+ if (this.config.graphql.pubSub) {
255
+ (0, ws_1.useServer)({ schema, context: () => ({ pubSub: this.config.graphql?.pubSub }) }, graphqlWsServer.wss);
256
+ this.use(async (req, res) => {
257
+ if (req.requestUrl.pathname?.startsWith('/graphql')) {
258
+ await yoga(req.raw, res.raw);
259
+ }
260
+ });
261
+ }
262
+ }
263
+ use(middleware) {
264
+ this.middlewares.unshift(middleware);
265
+ return this;
266
+ }
267
+ }
268
+ exports.HttpServer = HttpServer;
269
+ //# sourceMappingURL=Application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export declare const PARAM_METADATA_KEY = "design:parameters";
2
+ export declare const APP_METADATA_KEY = "app:configuration";
3
+ export declare const ROUTE_PREFIX = "route:prefix";
4
+ export declare const ROUTE_MIDDLEWARES = "route:middlewares";
5
+ export declare const MIDDLEWARES = "controller:middlewares";
6
+ export declare const CONTROLLERS = "app:controllers";
7
+ export declare const INTERCEPTOR = "app:interceptors";
8
+ export declare const ENDPOINT = "route:endpoints";
9
+ export declare const OK_METADATA_KEY = "custom:ok";
10
+ export declare const SERVER_CONFIG_KEY = "server:config";
11
+ export declare const USE_MIDDLEWARE = "controller:usemiddleware";
12
+ export declare const WS_HANDLER = "websocket:handler";
13
+ export declare const WS_TOPIC_KEY = "websocket:topic";
14
+ export declare const WS_SERVICE_KEY = "websocket:service";
15
+ export declare const INTECEPT = "server:intercept";
16
+ export declare const CATCH = "server:catch";
17
+ export declare const SANITIZE = "action:sanitize";
18
+ export declare const STOPPED = "\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\u2551 \uD83D\uDC4B Server stopped \u2551\n\u2551 \uD83D\uDCCA Status: STOPPED \u2551\n\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n ";
19
+ export declare const OK_STATUSES: number[];
20
+ export declare const TO_VALIDATE: string[];
21
+ export declare const CORS_METADATA = "cors:config";
22
+ export declare const SSE_METADATA_KEY = "sse:handlers";
23
+ export declare const SSE_TOPIC_KEY = "sse:topics";
24
+ export declare const SSE_SERVICE_KEY = "sse:service";
25
+ export declare const STATIC_METADATA_KEY = "static:config";
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STATIC_METADATA_KEY = exports.SSE_SERVICE_KEY = exports.SSE_TOPIC_KEY = exports.SSE_METADATA_KEY = exports.CORS_METADATA = exports.TO_VALIDATE = exports.OK_STATUSES = exports.STOPPED = exports.SANITIZE = exports.CATCH = exports.INTECEPT = exports.WS_SERVICE_KEY = exports.WS_TOPIC_KEY = exports.WS_HANDLER = exports.USE_MIDDLEWARE = exports.SERVER_CONFIG_KEY = exports.OK_METADATA_KEY = exports.ENDPOINT = exports.INTERCEPTOR = exports.CONTROLLERS = exports.MIDDLEWARES = exports.ROUTE_MIDDLEWARES = exports.ROUTE_PREFIX = exports.APP_METADATA_KEY = exports.PARAM_METADATA_KEY = void 0;
4
+ exports.PARAM_METADATA_KEY = 'design:parameters';
5
+ exports.APP_METADATA_KEY = 'app:configuration';
6
+ exports.ROUTE_PREFIX = 'route:prefix';
7
+ exports.ROUTE_MIDDLEWARES = 'route:middlewares';
8
+ exports.MIDDLEWARES = 'controller:middlewares';
9
+ exports.CONTROLLERS = 'app:controllers';
10
+ exports.INTERCEPTOR = 'app:interceptors';
11
+ exports.ENDPOINT = 'route:endpoints';
12
+ exports.OK_METADATA_KEY = 'custom:ok';
13
+ exports.SERVER_CONFIG_KEY = 'server:config';
14
+ exports.USE_MIDDLEWARE = 'controller:usemiddleware';
15
+ exports.WS_HANDLER = 'websocket:handler';
16
+ exports.WS_TOPIC_KEY = 'websocket:topic';
17
+ exports.WS_SERVICE_KEY = 'websocket:service';
18
+ exports.INTECEPT = 'server:intercept';
19
+ exports.CATCH = 'server:catch';
20
+ exports.SANITIZE = 'action:sanitize';
21
+ exports.STOPPED = `
22
+ ╔════════════════════════════════════════╗
23
+ ║ 👋 Server stopped ║
24
+ ║ 📊 Status: STOPPED ║
25
+ ╚════════════════════════════════════════╝
26
+ `;
27
+ exports.OK_STATUSES = [200, 201, 202, 203, 204, 205, 206, 207, 208, 226];
28
+ exports.TO_VALIDATE = ['headers', 'params', 'multipart', 'query', 'body'];
29
+ exports.CORS_METADATA = 'cors:config';
30
+ exports.SSE_METADATA_KEY = 'sse:handlers';
31
+ exports.SSE_TOPIC_KEY = 'sse:topics';
32
+ exports.SSE_SERVICE_KEY = 'sse:service';
33
+ exports.STATIC_METADATA_KEY = 'static:config';
34
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AACzC,QAAA,gBAAgB,GAAG,mBAAmB,CAAC;AACvC,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,WAAW,GAAG,wBAAwB,CAAC;AACvC,QAAA,WAAW,GAAG,iBAAiB,CAAC;AAChC,QAAA,WAAW,GAAG,kBAAkB,CAAC;AACjC,QAAA,QAAQ,GAAG,iBAAiB,CAAC;AAC7B,QAAA,eAAe,GAAG,WAAW,CAAC;AAE9B,QAAA,iBAAiB,GAAG,eAAe,CAAC;AACpC,QAAA,cAAc,GAAG,0BAA0B,CAAC;AAE5C,QAAA,UAAU,GAAG,mBAAmB,CAAC;AACjC,QAAA,YAAY,GAAG,iBAAiB,CAAC;AACjC,QAAA,cAAc,GAAG,mBAAmB,CAAC;AACrC,QAAA,QAAQ,GAAG,kBAAkB,CAAC;AAC9B,QAAA,KAAK,GAAG,cAAc,CAAC;AACvB,QAAA,QAAQ,GAAG,iBAAiB,CAAC;AAE7B,QAAA,OAAO,GAAG;;;;;WAKZ,CAAC;AAEC,QAAA,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjE,QAAA,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAElE,QAAA,aAAa,GAAG,aAAa,CAAC;AAC9B,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAClC,QAAA,aAAa,GAAG,YAAY,CAAC;AAC7B,QAAA,eAAe,GAAG,aAAa,CAAC;AAChC,QAAA,mBAAmB,GAAG,eAAe,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { ServerConfig } from './types/http';
2
+ /**
3
+ * Class decorator to configure the server with the given options.
4
+ *
5
+ * @param {ServerConfig} config - Configuration options for the server.
6
+ *
7
+ * Usage:
8
+ * ```ts
9
+ * @Server({ port: 3000, controllers: [...], middlewares: [...] })
10
+ * class MyServer {}
11
+ * ```
12
+ *
13
+ * This decorator merges the provided configuration with any existing metadata on the target class.
14
+ */
15
+ export declare function Server(config?: ServerConfig): (target: any) => any;
16
+ /**
17
+ * Class decorator to set the port number for the server.
18
+ *
19
+ * @param {number} port - The port number to listen on.
20
+ *
21
+ * Usage:
22
+ * ```ts
23
+ * @Port(8080)
24
+ * class MyServer {}
25
+ * ```
26
+ *
27
+ * This decorator updates the server metadata with the specified port.
28
+ */
29
+ export declare function Port(port: number): (target: any) => any;
30
+ /**
31
+ * Class decorator to set the host for the server.
32
+ *
33
+ * @param {string} host - The hostname or IP address to bind the server.
34
+ *
35
+ * Usage:
36
+ * ```ts
37
+ * @Host('localhost')
38
+ * class MyServer {}
39
+ * ```
40
+ *
41
+ * This decorator updates the server metadata with the specified host.
42
+ */
43
+ export declare function Host(host: string): (target: any) => any;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Server = Server;
4
+ exports.Port = Port;
5
+ exports.Host = Host;
6
+ const constants_1 = require("./constants");
7
+ /**
8
+ * Class decorator to configure the server with the given options.
9
+ *
10
+ * @param {ServerConfig} config - Configuration options for the server.
11
+ *
12
+ * Usage:
13
+ * ```ts
14
+ * @Server({ port: 3000, controllers: [...], middlewares: [...] })
15
+ * class MyServer {}
16
+ * ```
17
+ *
18
+ * This decorator merges the provided configuration with any existing metadata on the target class.
19
+ */
20
+ function Server(config = {}) {
21
+ return function (target) {
22
+ const existingConfig = Reflect.getMetadata(constants_1.SERVER_CONFIG_KEY, target) || {};
23
+ const mergedConfig = {
24
+ ...existingConfig,
25
+ ...config,
26
+ controllers: [...(existingConfig.controllers || []), ...(config.controllers || [])],
27
+ middlewares: [...(existingConfig.middlewares ?? []), ...(config.middlewares ?? [])],
28
+ cors: config.cors,
29
+ interceptors: existingConfig.interceptor ?? config.interceptor,
30
+ };
31
+ Reflect.defineMetadata(constants_1.SERVER_CONFIG_KEY, mergedConfig, target);
32
+ return target;
33
+ };
34
+ }
35
+ /**
36
+ * Class decorator to set the port number for the server.
37
+ *
38
+ * @param {number} port - The port number to listen on.
39
+ *
40
+ * Usage:
41
+ * ```ts
42
+ * @Port(8080)
43
+ * class MyServer {}
44
+ * ```
45
+ *
46
+ * This decorator updates the server metadata with the specified port.
47
+ */
48
+ function Port(port) {
49
+ return function (target) {
50
+ const existingConfig = Reflect.getMetadata(constants_1.SERVER_CONFIG_KEY, target) || {};
51
+ Reflect.defineMetadata(constants_1.SERVER_CONFIG_KEY, {
52
+ ...existingConfig,
53
+ port,
54
+ }, target);
55
+ return target;
56
+ };
57
+ }
58
+ /**
59
+ * Class decorator to set the host for the server.
60
+ *
61
+ * @param {string} host - The hostname or IP address to bind the server.
62
+ *
63
+ * Usage:
64
+ * ```ts
65
+ * @Host('localhost')
66
+ * class MyServer {}
67
+ * ```
68
+ *
69
+ * This decorator updates the server metadata with the specified host.
70
+ */
71
+ function Host(host) {
72
+ return function (target) {
73
+ const existingConfig = Reflect.getMetadata(constants_1.SERVER_CONFIG_KEY, target) || {};
74
+ Reflect.defineMetadata(constants_1.SERVER_CONFIG_KEY, {
75
+ ...existingConfig,
76
+ host,
77
+ }, target);
78
+ return target;
79
+ };
80
+ }
81
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;AAgBA,wBAiBC;AAeD,oBAeC;AAeD,oBAeC;AA7FD,2CAAgD;AAGhD;;;;;;;;;;;;GAYG;AACH,SAAgB,MAAM,CAAC,SAAuB,EAAE;IAC9C,OAAO,UAAU,MAAW;QAC1B,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAE5E,MAAM,YAAY,GAAG;YACnB,GAAG,cAAc;YACjB,GAAG,MAAM;YACT,WAAW,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YACnF,WAAW,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YACnF,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,YAAY,EAAE,cAAc,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW;SAC/D,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,6BAAiB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAEhE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,IAAI,CAAC,IAAY;IAC/B,OAAO,UAAU,MAAW;QAC1B,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAE5E,OAAO,CAAC,cAAc,CACpB,6BAAiB,EACjB;YACE,GAAG,cAAc;YACjB,IAAI;SACL,EACD,MAAM,CACP,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,IAAI,CAAC,IAAY;IAC/B,OAAO,UAAU,MAAW;QAC1B,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAE5E,OAAO,CAAC,cAAc,CACpB,6BAAiB,EACjB;YACE,GAAG,cAAc;YACjB,IAAI;SACL,EACD,MAAM,CACP,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import 'reflect-metadata';
2
+ export * from './Application';
3
+ export * from './decorators';
4
+ export * from './socket';
5
+ export * from './sse';
6
+ export { ISSEService } from './types/core';
7
+ export { Plugin } from './types/http';
8
+ export { IWebSocketService, WebSocketEvent } from './types/ws';
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ require("reflect-metadata");
18
+ __exportStar(require("./Application"), exports);
19
+ __exportStar(require("./decorators"), exports);
20
+ __exportStar(require("./socket"), exports);
21
+ __exportStar(require("./sse"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4BAA0B;AAC1B,gDAA8B;AAC9B,+CAA6B;AAC7B,2CAAyB;AACzB,wCAAsB"}
@@ -0,0 +1,77 @@
1
+ import { WebSocketHandlerType } from '../types/ws';
2
+ /**
3
+ * Method decorator to handle WebSocket events.
4
+ *
5
+ * @param {WebSocketHandlerType} type - Type of WebSocket event (connection, message, close, error).
6
+ * @param {string} [topic] - Optional topic for message filtering.
7
+ *
8
+ * Usage:
9
+ * ```ts
10
+ * @OnWS('message', 'chat')
11
+ * onMessage(msg) {}
12
+ * ```
13
+ */
14
+ export declare function OnWS(type: WebSocketHandlerType, topic?: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
15
+ /**
16
+ * Shortcut decorator for WebSocket connection event handler.
17
+ *
18
+ * Usage:
19
+ * ```ts
20
+ * @OnConnection()
21
+ * onConnect() {}
22
+ * ```
23
+ */
24
+ export declare function OnConnection(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
25
+ /**
26
+ * Shortcut decorator for WebSocket message event handler.
27
+ *
28
+ * @param {string} [topic] - Optional topic for message filtering.
29
+ *
30
+ * Usage:
31
+ * ```ts
32
+ * @OnMessage('chat')
33
+ * onChatMessage(msg) {}
34
+ * ```
35
+ */
36
+ export declare function OnMessage(topic?: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
37
+ /**
38
+ * Shortcut decorator for WebSocket close event handler.
39
+ *
40
+ * Usage:
41
+ * ```ts
42
+ * @OnClose()
43
+ * onClose() {}
44
+ * ```
45
+ */
46
+ export declare function OnClose(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
47
+ /**
48
+ * Shortcut decorator for WebSocket error event handler.
49
+ *
50
+ * Usage:
51
+ * ```ts
52
+ * @OnError()
53
+ * onError() {}
54
+ * ```
55
+ */
56
+ export declare function OnError(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
57
+ /**
58
+ * Method decorator to subscribe to a WebSocket topic.
59
+ *
60
+ * @param {string} topic - Topic name to subscribe.
61
+ *
62
+ * Usage:
63
+ * ```ts
64
+ * @Subscribe('news')
65
+ * onNews(data) {}
66
+ * ```
67
+ */
68
+ export declare function Subscribe(topic: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
69
+ /**
70
+ * Parameter decorator to inject WebSocket service instance.
71
+ *
72
+ * Usage:
73
+ * ```ts
74
+ * someMethod(@InjectWS() ws) {}
75
+ * ```
76
+ */
77
+ export declare function InjectWS(): (target: any, propertyKey: string | symbol, parameterIndex: number) => void;