quantum-flow 1.20.7 → 2.0.0

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 (125) hide show
  1. package/README.md +13 -12
  2. package/dist/app/aws/lambda.js +22 -26
  3. package/dist/app/aws/lambda.js.map +1 -1
  4. package/dist/app/aws/utils/request.d.ts +3 -1
  5. package/dist/app/aws/utils/request.js +5 -2
  6. package/dist/app/aws/utils/request.js.map +1 -1
  7. package/dist/app/aws/utils/response.d.ts +2 -0
  8. package/dist/app/aws/utils/response.js +4 -0
  9. package/dist/app/aws/utils/response.js.map +1 -1
  10. package/dist/app/http/Application.d.ts +2 -3
  11. package/dist/app/http/Application.js +73 -107
  12. package/dist/app/http/Application.js.map +1 -1
  13. package/dist/app/http/index.d.ts +0 -1
  14. package/dist/app/http/index.js.map +1 -1
  15. package/dist/app/plugin.js +2 -2
  16. package/dist/app/plugin.js.map +1 -1
  17. package/dist/core/Controller.d.ts +10 -5
  18. package/dist/core/Controller.js +33 -121
  19. package/dist/core/Controller.js.map +1 -1
  20. package/dist/core/index.d.ts +1 -1
  21. package/dist/core/index.js.map +1 -1
  22. package/dist/types/common.d.ts +15 -50
  23. package/dist/types/common.js.map +1 -1
  24. package/dist/types/controller.d.ts +4 -2
  25. package/dist/types/error.d.ts +73 -0
  26. package/dist/types/error.js +19 -0
  27. package/dist/types/error.js.map +1 -0
  28. package/dist/types/http.d.ts +7 -9
  29. package/dist/types/index.d.ts +3 -0
  30. package/dist/types/index.js +3 -0
  31. package/dist/types/index.js.map +1 -1
  32. package/dist/types/lambda.d.ts +7 -2
  33. package/dist/types/plugins.d.ts +4 -3
  34. package/dist/types/request.d.ts +65 -0
  35. package/dist/types/request.js +3 -0
  36. package/dist/types/request.js.map +1 -0
  37. package/dist/types/response.d.ts +49 -0
  38. package/dist/types/response.js +3 -0
  39. package/dist/types/response.js.map +1 -0
  40. package/dist/utils/controller.d.ts +6 -7
  41. package/dist/utils/controller.js +11 -13
  42. package/dist/utils/controller.js.map +1 -1
  43. package/dist/utils/cors.d.ts +2 -2
  44. package/dist/utils/cors.js.map +1 -1
  45. package/dist/utils/error/apperror.d.ts +30 -0
  46. package/dist/utils/error/apperror.js +131 -0
  47. package/dist/utils/error/apperror.js.map +1 -0
  48. package/dist/utils/error/authorizations.d.ts +7 -0
  49. package/dist/utils/error/authorizations.js +17 -0
  50. package/dist/utils/error/authorizations.js.map +1 -0
  51. package/dist/utils/error/base.d.ts +20 -0
  52. package/dist/utils/error/base.js +52 -0
  53. package/dist/utils/error/base.js.map +1 -0
  54. package/dist/utils/error/dependencyFailed.d.ts +7 -0
  55. package/dist/utils/error/dependencyFailed.js +17 -0
  56. package/dist/utils/error/dependencyFailed.js.map +1 -0
  57. package/dist/utils/error/duplicateEntry.d.ts +7 -0
  58. package/dist/utils/error/duplicateEntry.js +17 -0
  59. package/dist/utils/error/duplicateEntry.js.map +1 -0
  60. package/dist/utils/error/forbidden.d.ts +7 -0
  61. package/dist/utils/error/forbidden.js +17 -0
  62. package/dist/utils/error/forbidden.js.map +1 -0
  63. package/dist/utils/error/helpers.d.ts +8 -0
  64. package/dist/utils/{error.js → error/helpers.js} +35 -7
  65. package/dist/utils/error/helpers.js.map +1 -0
  66. package/dist/utils/error/index.d.ts +12 -0
  67. package/dist/utils/error/index.js +29 -0
  68. package/dist/utils/error/index.js.map +1 -0
  69. package/dist/utils/error/invalidState.d.ts +7 -0
  70. package/dist/utils/error/invalidState.js +17 -0
  71. package/dist/utils/error/invalidState.js.map +1 -0
  72. package/dist/utils/error/notfound.d.ts +7 -0
  73. package/dist/utils/error/notfound.js +18 -0
  74. package/dist/utils/error/notfound.js.map +1 -0
  75. package/dist/utils/error/rateLimit.d.ts +7 -0
  76. package/dist/utils/error/rateLimit.js +17 -0
  77. package/dist/utils/error/rateLimit.js.map +1 -0
  78. package/dist/utils/error/serviceUnavailable.d.ts +7 -0
  79. package/dist/utils/error/serviceUnavailable.js +17 -0
  80. package/dist/utils/error/serviceUnavailable.js.map +1 -0
  81. package/dist/utils/error/validation.d.ts +10 -0
  82. package/dist/utils/error/validation.js +20 -0
  83. package/dist/utils/error/validation.js.map +1 -0
  84. package/dist/utils/headers.d.ts +2 -2
  85. package/dist/utils/headers.js.map +1 -1
  86. package/dist/utils/index.d.ts +3 -0
  87. package/dist/utils/index.js +3 -0
  88. package/dist/utils/index.js.map +1 -1
  89. package/dist/utils/lambda.d.ts +2 -1
  90. package/dist/utils/lambda.js +28 -48
  91. package/dist/utils/lambda.js.map +1 -1
  92. package/dist/utils/parsers.d.ts +3 -1
  93. package/dist/utils/parsers.js +106 -23
  94. package/dist/utils/parsers.js.map +1 -1
  95. package/dist/utils/request/factory.d.ts +18 -0
  96. package/dist/utils/request/factory.js +141 -0
  97. package/dist/utils/request/factory.js.map +1 -0
  98. package/dist/utils/request/helpers.d.ts +3 -0
  99. package/dist/utils/request/helpers.js +35 -0
  100. package/dist/utils/request/helpers.js.map +1 -0
  101. package/dist/utils/request/index.d.ts +2 -0
  102. package/dist/utils/request/index.js +19 -0
  103. package/dist/utils/request/index.js.map +1 -0
  104. package/dist/utils/request/request.d.ts +103 -0
  105. package/dist/utils/request/request.js +218 -0
  106. package/dist/utils/request/request.js.map +1 -0
  107. package/dist/utils/response/factory.d.ts +13 -0
  108. package/dist/utils/response/factory.js +20 -0
  109. package/dist/utils/response/factory.js.map +1 -0
  110. package/dist/utils/response/index.d.ts +2 -0
  111. package/dist/utils/response/index.js +19 -0
  112. package/dist/utils/response/index.js.map +1 -0
  113. package/dist/utils/response/response.d.ts +46 -0
  114. package/dist/utils/response/response.js +269 -0
  115. package/dist/utils/response/response.js.map +1 -0
  116. package/dist/utils/routeWalker.d.ts +2 -0
  117. package/dist/utils/routeWalker.js +115 -0
  118. package/dist/utils/routeWalker.js.map +1 -0
  119. package/dist/utils/sanitize.d.ts +2 -2
  120. package/dist/utils/sanitize.js.map +1 -1
  121. package/dist/ws/server.js +0 -3
  122. package/dist/ws/server.js.map +1 -1
  123. package/package.json +5 -2
  124. package/dist/utils/error.d.ts +0 -18
  125. package/dist/utils/error.js.map +0 -1
package/README.md CHANGED
@@ -45,6 +45,8 @@ import {
45
45
  Response,
46
46
  Status,
47
47
  ANY,
48
+ IRequest,
49
+ IResponse
48
50
  } from 'quantum-flow/core';
49
51
  import {IsString} from 'class-validator'
50
52
  import { Catch, Cors, Sanitize, Use, SANITIZER } from 'quantum-flow/middlewares';
@@ -81,8 +83,8 @@ export class User {
81
83
  @Query() query: Record<string, string | string[]>,
82
84
  @Headers() headers: Record<string, string | string[]>,
83
85
  @Params(ParamDTO, 'param') params: string,
84
- @Request() req: HttpRequest,
85
- @Response() resp: ServerResponse,
86
+ @Request() req: IResponse,
87
+ @Response() resp: IRequest,
86
88
  @InjectWS() ws: IWebSocketService,
87
89
  ) {}
88
90
 
@@ -148,7 +150,7 @@ Use `LambdaAdapter` to convert API Gateway events to requests and responses. Cre
148
150
  ```typescript
149
151
  Example Lambda handler creation
150
152
  import { LambdaAdapter, LambdaRequest, LambdaResponse } from 'quantum-flow/aws';
151
- import { Request, Query, Headers, Params, Response } from 'quantum-flow/core'
153
+ import { Request, Query, Headers, Params, Response, IResponse, IRequest } from 'quantum-flow/core'
152
154
 
153
155
  @Controller({ prefix: 'user' })
154
156
  class UserController {
@@ -156,8 +158,8 @@ class UserController {
156
158
  @Query() query: Record<string, string | string[]>,
157
159
  @Headers() headers: Record<string, string | string[]>,
158
160
  @Params(ParamDTO, 'param') params: string,
159
- @Request() req: LambdaRequest,
160
- @Response() res: LambdaResponse
161
+ @Request() req: IRequest,
162
+ @Response() res: IResponse
161
163
  ) { }
162
164
  }
163
165
  const lambdaAdapter = new LambdaAdapter(UserController);
@@ -175,12 +177,12 @@ Enable WebSocket in the server configuration and register WebSocket controllers.
175
177
 
176
178
  ## Enabling WebSocket Support in Server
177
179
 
178
- To enable WS support, configure your HTTP server with the `enabled: true` option and register controllers that use SSE.
180
+ To enable WS support, configure your HTTP server with the `path: string` option and register controllers that use SSE.
179
181
 
180
182
  Example server setup:
181
183
 
182
184
  ```typescript
183
- @Server( {websocketPath:'/ws', websocket: { enabled: true } })
185
+ @Server( { websocket: { path:'/ws' } })
184
186
  ```
185
187
 
186
188
  ## Injecting WebSocket events in Controller
@@ -308,19 +310,19 @@ import { OnSSEConnection, OnSSEError, OnSSEClose } from 'quantum-flow/sse';
308
310
  @Controller('user')
309
311
  export class User {
310
312
  @OnSSEConnection()
311
- async onsseconnection(@Request() req: any, @Response() res: any) {
313
+ async onsseconnection(@Request() req, @Response() res) {
312
314
  console.log('SSE connection established');
313
315
  return req.body;
314
316
  }
315
317
 
316
318
  @OnSSEError()
317
- async onsseerror(@Request() req: any, @Response() res: any) {
319
+ async onsseerror(@Request() req, @Response() res) {
318
320
  console.log('SSE error occurred');
319
321
  return req.body;
320
322
  }
321
323
 
322
324
  @OnSSEClose()
323
- async onsseclose(@Request() req: any, @Response() res: any) {
325
+ async onsseclose(@Request() req, @Response() res) {
324
326
  console.log('SSE connection closed');
325
327
  return req.body;
326
328
  }
@@ -455,9 +457,8 @@ yarn add type-graphql graphql graphql-yoga @graphql-yoga/subscriptions
455
457
  ```typescript
456
458
  @Server({
457
459
  controllers: [/* your REST controllers */],
458
- websocketPath:'/ws', //GraphQL subscriptions uses same ws server as main application
459
460
  graphql: { // GraphQL endpoint (default: '/graphql')
460
- playground: true, // Enable GraphQL Playground
461
+ path: '/graphql', // Enable GraphQL Playground
461
462
  resolvers: [UserResolver, MessageResolver], // Your resolver classes
462
463
  pubSub: pubSub, // Your PubSub instance (required for subscriptions)
463
464
  },
@@ -4,7 +4,6 @@ exports.LambdaAdapter = void 0;
4
4
  const _constants_1 = require("../../constants.js");
5
5
  const _utils_1 = require("../../utils/index.js");
6
6
  const plugin_1 = require("../plugin");
7
- const utils_1 = require("./utils");
8
7
  class LambdaAdapter extends plugin_1.Plugin {
9
8
  handler;
10
9
  controllers = [];
@@ -12,15 +11,14 @@ class LambdaAdapter extends plugin_1.Plugin {
12
11
  constructor(Controller) {
13
12
  super();
14
13
  this.controllers.push(Controller);
15
- this.handler = this.createHandler(Controller);
14
+ this.handler = this.createHandler();
16
15
  }
17
- createHandler(Controller) {
16
+ createHandler() {
18
17
  return async (event, context) => {
19
- this.controllers.push(Controller);
20
18
  await this.callPluginHook('beforeRequest', event, context);
21
- const eventType = (0, utils_1.getEventType)(event);
22
- const request = new utils_1.LRequest(event, context);
23
- const response = new utils_1.LResponse();
19
+ const eventType = (0, _utils_1.getEventType)(event);
20
+ const request = _utils_1.RequestFactory.fromLambda(event, context);
21
+ const response = _utils_1.ResponseFactory.forLambda(request);
24
22
  return this.runControllers({
25
23
  context,
26
24
  event,
@@ -52,25 +50,20 @@ class LambdaAdapter extends plugin_1.Plugin {
52
50
  }
53
51
  await this.callPluginHook('beforeRoute', request, response);
54
52
  processed = await instance.handleRequest(request, response);
55
- if (processed.routeMatch)
53
+ if (processed)
56
54
  break;
57
55
  }
58
56
  catch (error) {
59
- return this.handleError(error, event, context);
57
+ return this.handleError(error, request);
60
58
  }
61
59
  }
62
- if (!processed?.routeMatch) {
63
- response.statusCode = 404;
64
- return this.toLambdaResponse({ data: 'Route not found' }, request, response, eventType);
60
+ if ((0, _utils_1.getErrorType)(response?.data).isError) {
61
+ return this.handleError(processed?.data, request);
65
62
  }
66
- if ((0, _utils_1.getErrorType)(processed?.data).isError) {
67
- return this.handleError(processed?.data, event, context);
68
- }
69
- console.log(processed);
70
63
  return this.toLambdaResponse(processed?.data, request, response, eventType);
71
64
  }
72
65
  toLambdaResponse(data, request, response, eventType) {
73
- const statusCode = data?.status ?? response?.statusCode ?? 200;
66
+ const statusCode = data?.status ?? response?.status ?? 200;
74
67
  const headers = {
75
68
  'Content-Type': 'application/json',
76
69
  'X-Request-Id': request.requestId,
@@ -126,18 +119,21 @@ class LambdaAdapter extends plugin_1.Plugin {
126
119
  return { statusCode, headers, body };
127
120
  }
128
121
  }
129
- handleError(error, event, context) {
130
- let serialized = (0, _utils_1.serializeError)(error);
131
- const eventType = (0, utils_1.getEventType)(event);
132
- const statusCode = serialized.status || 500;
133
- const body = JSON.stringify({
134
- success: false,
135
- message: serialized.message || 'Internal Server Error',
136
- requestId: context.awsRequestId,
122
+ handleError(error, request) {
123
+ const config = {
124
+ includeStack: process.env.NODE_ENV !== 'production',
125
+ logErrors: true,
126
+ };
127
+ let serialized = new _utils_1.ApplicationError(error, {
128
+ meta: request,
129
+ config,
137
130
  });
131
+ const eventType = (0, _utils_1.getEventType)(request.getLambdaEvent());
132
+ const statusCode = serialized.status || 500;
133
+ const body = JSON.stringify(serialized);
138
134
  const headers = {
139
135
  'Content-Type': 'application/json',
140
- 'X-Request-Id': context.awsRequestId,
136
+ 'X-Request-Id': request.requestId,
141
137
  'Access-Control-Allow-Origin': '*',
142
138
  'Access-Control-Allow-Credentials': 'true',
143
139
  };
@@ -1 +1 @@
1
- {"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../src/app/aws/lambda.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../src/app/aws/lambda.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,11 @@ export declare class LRequest implements LambdaRequest {
17
17
  requestId: string;
18
18
  stage?: string;
19
19
  userAgent: string;
20
- sourceIp: string;
21
20
  event: LambdaEvent;
22
21
  context: Context;
22
+ id: string;
23
+ ip: string;
23
24
  constructor(lambdaEvent: LambdaEvent, context: Context);
25
+ sourceIp: string;
24
26
  end(): void;
25
27
  }
@@ -19,9 +19,10 @@ class LRequest {
19
19
  requestId;
20
20
  stage;
21
21
  userAgent;
22
- sourceIp;
23
22
  event;
24
23
  context;
24
+ id;
25
+ ip;
25
26
  constructor(lambdaEvent, context) {
26
27
  const event = (0, helpers_1.normalizeEvent)(lambdaEvent, (0, helpers_1.getEventType)(lambdaEvent));
27
28
  const query = {};
@@ -88,12 +89,14 @@ class LRequest {
88
89
  this.requestId = context.awsRequestId;
89
90
  this.requestUrl = url;
90
91
  this.stage = event.requestContext?.stage || '$default';
91
- this.sourceIp = (0, helpers_1.getSourceIp)(event);
92
+ this.ip = (0, helpers_1.getSourceIp)(event);
93
+ this.id = context.awsRequestId;
92
94
  this.userAgent =
93
95
  typeof event.headers['user-agent'] === 'string'
94
96
  ? event.headers['user-agent']
95
97
  : event.headers['user-agent']?.[0] || 'unknown';
96
98
  }
99
+ sourceIp;
97
100
  end() {
98
101
  console.log('NOT implemented for lambda');
99
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../src/app/aws/utils/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../src/app/aws/utils/request.ts"],"names":[],"mappings":";;;AAEA,uCAAsE;AAEtE,MAAa,QAAQ;IACnB,UAAU,CAAM;IAChB,MAAM,CAAe;IACrB,IAAI,CAAU;IACd,OAAO,CAAoC;IAC3C,KAAK,CAAqC;IAC1C,MAAM,CAA0B;IAChC,IAAI,CAAM;IACV,OAAO,CAA0B;IACjC,eAAe,CAAW;IAC1B,OAAO,CAAyB;IAChC,SAAS,CAAmD;IAC5D,UAAU,CAAS;IACnB,GAAG,CAAS;IACZ,SAAS,CAAS;IAClB,KAAK,CAAU;IACf,SAAS,CAAS;IAClB,KAAK,CAAc;IACnB,OAAO,CAAU;IACjB,EAAE,CAAS;IACX,EAAE,CAAS;IAEX,YAAY,WAAwB,EAAE,OAAgB;QACpD,MAAM,KAAK,GAAG,IAAA,wBAAc,EAAC,WAAW,EAAE,IAAA,sBAAY,EAAC,WAAW,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,GAAsC,EAAE,CAAC;QAEpD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,KAAK,CAAC,+BAA+B,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC7E,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACnE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;QAE9F,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC9B,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,IAAI,IAAI,KAAK;wBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBACzC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC/C,IAAI,IAAI,IAAI,KAAK;wBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAE5B,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YACxC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAClE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAEvC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE1B,MAAM,QAAQ,GAAG,UAAU,IAAI,OAAO,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,IAAI,gBAAgB,CAAC;QACvC,MAAM,OAAO,GAAG,GAAG,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAErD,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAkB,CAAC;QAC7D,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,KAAK,IAAI,UAAU,CAAC;QACvD,IAAI,CAAC,EAAE,GAAG,IAAA,qBAAW,EAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;QAE/B,IAAI,CAAC,SAAS;YACZ,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,QAAQ;gBAC7C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;gBAC7B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACtD,CAAC;IACD,QAAQ,CAAS;IAEjB,GAAG;QACD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;CACF;AA3GD,4BA2GC"}
@@ -1,5 +1,6 @@
1
1
  import { CookieOptions, LambdaResponse } from '../../../types/index.js';
2
2
  export declare class LResponse implements LambdaResponse {
3
+ cookies?: string[] | undefined;
3
4
  private _statusCode;
4
5
  private _headers;
5
6
  body: any;
@@ -15,6 +16,7 @@ export declare class LResponse implements LambdaResponse {
15
16
  private _updateCookieHeader;
16
17
  setHeader(name: string, value: string): void;
17
18
  set statusCode(code: number);
19
+ set status(code: number);
18
20
  get statusCode(): number;
19
21
  get headers(): Record<string, string>;
20
22
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LResponse = void 0;
4
4
  class LResponse {
5
+ cookies;
5
6
  _statusCode = 200;
6
7
  _headers = {};
7
8
  body = null;
@@ -58,6 +59,9 @@ class LResponse {
58
59
  set statusCode(code) {
59
60
  this._statusCode = code;
60
61
  }
62
+ set status(code) {
63
+ this._statusCode = code;
64
+ }
61
65
  get statusCode() {
62
66
  return this._statusCode;
63
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../../src/app/aws/utils/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../../src/app/aws/utils/response.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,14 @@ export declare class HttpServer extends Plugin implements IHttpServer {
6
6
  private isRunning;
7
7
  private sse?;
8
8
  private websocket?;
9
- private websocketPath;
10
9
  controllers: ControllerType[];
11
10
  middlewares: MiddlewareCB[];
12
11
  app: http.Server;
13
12
  plugins: HttpPlugin[];
14
13
  allContriollers: ControllerType[];
14
+ staticMiddlewares: any;
15
15
  constructor(configOrClass: new (...args: any[]) => any);
16
+ setUpWebsocket(): void;
16
17
  private collectControllers;
17
18
  private logConfig;
18
19
  listen(port?: number, host?: string): Promise<http.Server>;
@@ -22,11 +23,9 @@ export declare class HttpServer extends Plugin implements IHttpServer {
22
23
  config: ServerConfig;
23
24
  };
24
25
  private requestHandler;
25
- private createRequest;
26
26
  private beforeRequest;
27
27
  private runController;
28
28
  private sendResponse;
29
- private handleError;
30
29
  private setupGraphQL;
31
30
  use(middleware: MiddlewareCB): this;
32
31
  }
@@ -20,31 +20,29 @@ class HttpServer extends plugin_1.Plugin {
20
20
  isRunning = false;
21
21
  sse;
22
22
  websocket;
23
- websocketPath = '/ws';
24
23
  controllers = [];
25
24
  middlewares = [];
26
25
  app;
27
26
  plugins = [];
28
27
  allContriollers = [];
28
+ staticMiddlewares = [];
29
29
  constructor(configOrClass) {
30
30
  super();
31
31
  this.config = (0, _utils_1.resolveConfig)(configOrClass);
32
- if (this.config.websocketPath) {
33
- this.websocketPath = this.config.websocketPath;
34
- }
35
32
  this.middlewares = this.middlewares.concat(this.config.middlewares ?? []);
36
33
  this.controllers = this.collectControllers(this.config.controllers ?? []);
37
- const app = http_1.default.createServer(this.requestHandler.bind(this));
34
+ this.app = http_1.default.createServer(this.requestHandler.bind(this));
38
35
  for (const st of this.config.statics ?? []) {
39
36
  const staticMw = (0, _utils_1.staticMiddleware)(st.path, st.options);
40
- this.middlewares?.unshift(staticMw);
37
+ this.staticMiddlewares.push(staticMw);
38
+ }
39
+ if (this.config.websocket && this.config.graphql) {
40
+ throw new Error(`You cant't use custom websocket with graphql`);
41
41
  }
42
- if (this.config.websocket?.enabled || this.config.graphql?.pubSub) {
43
- this.websocket = new server_2.WebSocketServer(app, { path: this.websocketPath });
44
- this.websocket.registerControllers(this.controllers);
45
- service_2.WebSocketService.getInstance().initialize(this.websocket);
42
+ if (this.config.websocket) {
43
+ this.setUpWebsocket();
46
44
  }
47
- if (this.config.graphql && this.config.graphql?.resolvers?.length) {
45
+ if (this.config.graphql) {
48
46
  this.setupGraphQL();
49
47
  }
50
48
  if (this.config.sse?.enabled) {
@@ -52,9 +50,13 @@ class HttpServer extends plugin_1.Plugin {
52
50
  this.sse.registerControllers(this.controllers);
53
51
  service_1.SSEService.getInstance().initialize(this.sse);
54
52
  }
55
- this.app = app;
56
53
  this.logConfig();
57
54
  }
55
+ setUpWebsocket() {
56
+ this.websocket = new server_2.WebSocketServer(this.app, { path: this.config.websocket?.path ?? '/ws' });
57
+ this.websocket.registerControllers(this.controllers);
58
+ service_2.WebSocketService.getInstance().initialize(this.websocket);
59
+ }
58
60
  collectControllers(controllers = []) {
59
61
  const result = [];
60
62
  for (const ControllerClass of controllers) {
@@ -84,7 +86,7 @@ class HttpServer extends plugin_1.Plugin {
84
86
  ║ 📍 Host: ${this.config.host}
85
87
  ║ 🔌 Port: ${this.config.port}
86
88
  ║ 🔌 Websocket: ${!!this.config.websocket && this.config.graphql?.pubSub}
87
- ║ 🔌 Websocket path prefix: ${this.config.websocketPath}
89
+ ║ 🔌 Websocket path prefix: ${this.config.websocket?.path ?? '/ws'}
88
90
  ║ 🔧 Global Middlewares: ${this.middlewares?.length || 0}
89
91
  ║ 🔧 Error handler: ${!this.config.errorHandler}
90
92
  ║ 🎯 Global Interceptors: ${!!this.config.interceptor?.length}
@@ -142,135 +144,95 @@ class HttpServer extends plugin_1.Plugin {
142
144
  });
143
145
  }
144
146
  status() {
145
- return {
146
- running: this.isRunning,
147
- config: this.config,
148
- };
147
+ return { running: this.isRunning, config: this.config };
149
148
  }
150
- async requestHandler(req, response) {
149
+ async requestHandler(req, res) {
151
150
  const startTime = Date.now();
152
- let request;
151
+ const request = await _utils_1.RequestFactory.fromHttp(req);
152
+ const response = _utils_1.ResponseFactory.forHttp(res, request);
153
153
  try {
154
154
  await this.callPluginHook('beforeRequest', req);
155
155
  }
156
- catch (data) {
157
- return this.sendResponse(response, { status: 500, data }, startTime);
158
- }
159
- try {
160
- request = await this.createRequest(req);
161
- }
162
- catch (err) {
163
- return this.sendResponse(response, { status: 500, data: err.message }, startTime);
156
+ catch (error) {
157
+ response.status = 500;
158
+ response.data = error;
159
+ return this.sendResponse(request, response, startTime);
164
160
  }
161
+ if (response.headersSent)
162
+ return;
165
163
  try {
166
- let handledCors = { permitted: true, continue: true };
167
- if (this.config.cors) {
168
- handledCors = (0, _utils_1.handleCORS)(request, response, this.config.cors);
169
- }
164
+ let handledCors = this.config.cors
165
+ ? (0, _utils_1.handleCORS)(request, response, this.config.cors)
166
+ : { permitted: true, continue: true };
170
167
  if (!handledCors.permitted) {
171
- return this.sendResponse(response, { status: 403, message: 'CORS: Origin not allowed' }, startTime, request);
168
+ response.status = 403;
169
+ response.data = 'CORS: Origin not allowed';
170
+ return this.sendResponse(request, response, startTime);
172
171
  }
173
172
  if (!handledCors.continue && handledCors.permitted) {
174
- return this.sendResponse(response, { status: 204 }, startTime, request);
173
+ response.status = 204;
174
+ return this.sendResponse(request, response, startTime);
175
175
  }
176
176
  await this.beforeRequest(request, response);
177
- if (response.headersSent) {
177
+ if (response.headersSent)
178
178
  return;
179
- }
180
179
  await this.callPluginHook('beforeRoute', request, response);
181
- let controllerResponse = await this.runController(request, response);
182
- if (!controllerResponse.routeMatch) {
183
- return this.sendResponse(response, { status: 404, data: 'Route not found' }, Date.now(), request);
184
- }
185
- const isError = (0, _utils_1.getErrorType)(controllerResponse.data).isError || !_constants_1.OK_STATUSES.includes(response.statusCode);
186
- if (isError) {
187
- return this.handleError(controllerResponse.data, request, response, startTime);
188
- }
189
- if (this.config.interceptor && controllerResponse) {
190
- controllerResponse.data = await this.config.interceptor(controllerResponse, request, response);
191
- }
192
- return this.sendResponse(response, { status: response.statusCode ?? 200, data: controllerResponse.data }, startTime, request);
180
+ if (response.headersSent)
181
+ return;
182
+ await this.runController(request, response);
183
+ return this.sendResponse(request, response, startTime);
193
184
  }
194
185
  catch (error) {
195
- return this.handleError(error, request, response, startTime);
186
+ response.error(error);
187
+ return this.sendResponse(request, response, startTime);
196
188
  }
197
189
  }
198
- async createRequest(req) {
199
- const rawBody = await (0, _utils_1.collectRawBody)(req);
200
- const parseRequest = {
201
- body: rawBody,
202
- headers: req.headers,
203
- isBase64Encoded: false,
204
- };
205
- const parsedBody = (0, _utils_1.ParseBody)(parseRequest);
206
- const protocol = req.headers['x-forwarded-proto'] || 'http';
207
- const host = req.headers.host || 'localhost';
208
- const fullUrl = `${protocol}://${host}${req.url}`;
209
- const requestUrl = new URL(fullUrl);
210
- const parsedRequest = {
211
- method: req.method?.toUpperCase(),
212
- requestUrl,
213
- headers: req.headers,
214
- body: parsedBody,
215
- rawBody: rawBody,
216
- query: (0, _utils_1.ParseQuery)(requestUrl),
217
- params: {},
218
- cookies: (0, _utils_1.ParseCookies)(req),
219
- isBase64Encoded: false,
220
- _startTime: Date.now(),
221
- };
222
- Object.assign(req, parsedRequest);
223
- return req;
224
- }
225
190
  async beforeRequest(request, response) {
226
191
  (0, _utils_1.sanitizeRequest)(request, this.config.sanitizers ?? []);
192
+ for (const middleware of this.staticMiddlewares) {
193
+ await middleware(request.raw, response.raw, _utils_1.NextFunction);
194
+ }
195
+ if (response.raw.headersSent) {
196
+ return;
197
+ }
227
198
  for (const middleware of this.middlewares?.reverse() || []) {
228
- await middleware(request, response, _utils_1.NextFN);
199
+ await middleware(request, response, _utils_1.NextFunction);
229
200
  }
230
201
  }
231
202
  async runController(request, response) {
232
203
  for (const ControllerClass of this.controllers ?? []) {
233
204
  const instance = new ControllerClass();
234
205
  if (typeof instance.handleRequest === 'function') {
235
- const handlerResponse = await instance.handleRequest(request, response);
236
- if (handlerResponse.routeMatch) {
237
- return handlerResponse;
206
+ const done = await instance.handleRequest(request, response);
207
+ if (done) {
208
+ break;
238
209
  }
239
210
  }
240
211
  }
241
- return {};
242
212
  }
243
- async sendResponse(res, responseData, startTime, appRequest) {
244
- if (res.headersSent)
213
+ async sendResponse(request, response, startTime) {
214
+ if (response.headersSent)
245
215
  return;
246
- const { status, data } = responseData;
247
- if (!res.getHeader('Content-Type')) {
248
- res.setHeader('Content-Type', 'application/json');
249
- }
250
- res.setHeader('X-Response-Time', `${Date.now() - startTime}ms`);
251
- res.statusCode = status ?? data.status ?? 200;
252
- res.end(JSON.stringify(data));
253
- await this.callPluginHook('afterResponse', appRequest, res);
254
- }
255
- async handleError(error, request, response, startTime) {
256
- let serialized = (0, _utils_1.serializeError)(error);
257
- if (!this.config.errorHandler) {
258
- return this.sendResponse(response, { data: serialized }, startTime);
216
+ if (!response.getHeader('Content-Type')) {
217
+ response.setHeader('Content-Type', 'application/json');
259
218
  }
219
+ response.setHeader('X-Response-Time', `${Date.now() - startTime}ms`);
260
220
  try {
261
- const intercepted = await this.config.errorHandler(error, request, response);
262
- let data = intercepted.data ?? intercepted;
263
- if (data instanceof Error) {
264
- data = (0, _utils_1.serializeError)(data);
265
- }
266
- serialized = data ?? serialized;
221
+ response.end(response.data);
222
+ await this.callPluginHook('afterResponse', request, response);
223
+ }
224
+ catch (err) {
225
+ response.status = 500;
226
+ response.error(err);
227
+ response.end(err);
267
228
  }
268
- catch (cathed) { }
269
- return this.sendResponse(response, { data: serialized }, startTime, request);
270
229
  }
271
230
  async setupGraphQL() {
272
231
  if (!this.config.graphql || !this.config.graphql?.resolvers?.length)
273
232
  return;
233
+ const graphqlWsServer = new server_2.WebSocketServer(this.app, {
234
+ path: this.config.graphql.path ?? '/graphql',
235
+ });
274
236
  const schemaConfig = {
275
237
  resolvers: this.config.graphql?.resolvers,
276
238
  validate: true,
@@ -283,15 +245,19 @@ class HttpServer extends plugin_1.Plugin {
283
245
  schema,
284
246
  context: (ctx) => {
285
247
  const req = ctx.request ?? ctx.req;
286
- return { req, headers: req?.headers, pubSub: this.config.graphql?.pubSub };
248
+ return {
249
+ request: req.raw,
250
+ headers: req?.headers,
251
+ pubSub: this.config.graphql?.pubSub ?? (0, graphql_yoga_1.createPubSub)(),
252
+ };
287
253
  },
288
254
  graphiql: !!this.config.graphql?.playground,
289
255
  });
290
256
  if (this.config.graphql.pubSub) {
291
- (0, ws_1.useServer)({ schema, context: () => ({ pubSub: this.config.graphql?.pubSub }) }, this.websocket.wss);
257
+ (0, ws_1.useServer)({ schema, context: () => ({ pubSub: this.config.graphql?.pubSub }) }, graphqlWsServer.wss);
292
258
  this.use(async (req, res) => {
293
- if (req.requestUrl.pathname?.startsWith(this.websocketPath)) {
294
- return yoga(req, res);
259
+ if (req.requestUrl.pathname?.startsWith('/graphql')) {
260
+ await yoga(req.raw, res.raw);
295
261
  }
296
262
  });
297
263
  }