@arikajs/http 0.0.4 → 0.0.6

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 (53) hide show
  1. package/README.md +33 -11
  2. package/dist/HttpKernel.d.ts +40 -0
  3. package/dist/HttpKernel.d.ts.map +1 -0
  4. package/dist/HttpKernel.js +75 -0
  5. package/dist/HttpKernel.js.map +1 -0
  6. package/dist/HttpServiceProvider.d.ts +13 -0
  7. package/dist/HttpServiceProvider.d.ts.map +1 -0
  8. package/dist/HttpServiceProvider.js +25 -0
  9. package/dist/HttpServiceProvider.js.map +1 -0
  10. package/dist/Middleware/BodyParserMiddleware.d.ts.map +1 -1
  11. package/dist/Middleware/BodyParserMiddleware.js +30 -2
  12. package/dist/Middleware/BodyParserMiddleware.js.map +1 -1
  13. package/dist/Middleware/SecurityHeaders.d.ts +12 -0
  14. package/dist/Middleware/SecurityHeaders.d.ts.map +1 -0
  15. package/dist/Middleware/SecurityHeaders.js +31 -0
  16. package/dist/Middleware/SecurityHeaders.js.map +1 -0
  17. package/dist/Middleware/ServeStaticMiddleware.d.ts +8 -0
  18. package/dist/Middleware/ServeStaticMiddleware.d.ts.map +1 -0
  19. package/dist/Middleware/ServeStaticMiddleware.js +35 -0
  20. package/dist/Middleware/ServeStaticMiddleware.js.map +1 -0
  21. package/dist/Middleware/Throttle.d.ts +17 -0
  22. package/dist/Middleware/Throttle.d.ts.map +1 -0
  23. package/dist/Middleware/Throttle.js +61 -0
  24. package/dist/Middleware/Throttle.js.map +1 -0
  25. package/dist/ObjectPool.d.ts +27 -0
  26. package/dist/ObjectPool.d.ts.map +1 -0
  27. package/dist/ObjectPool.js +50 -0
  28. package/dist/ObjectPool.js.map +1 -0
  29. package/dist/Pipeline.d.ts +23 -0
  30. package/dist/Pipeline.d.ts.map +1 -0
  31. package/dist/Pipeline.js +61 -0
  32. package/dist/Pipeline.js.map +1 -0
  33. package/dist/RawResponse.d.ts +9 -0
  34. package/dist/RawResponse.d.ts.map +1 -0
  35. package/dist/RawResponse.js +27 -0
  36. package/dist/RawResponse.js.map +1 -0
  37. package/dist/Request.d.ts +53 -3
  38. package/dist/Request.d.ts.map +1 -1
  39. package/dist/Request.js +170 -7
  40. package/dist/Request.js.map +1 -1
  41. package/dist/Response.d.ts +20 -3
  42. package/dist/Response.d.ts.map +1 -1
  43. package/dist/Response.js +48 -4
  44. package/dist/Response.js.map +1 -1
  45. package/dist/Router.d.ts +34 -0
  46. package/dist/Router.d.ts.map +1 -0
  47. package/dist/Router.js +150 -0
  48. package/dist/Router.js.map +1 -0
  49. package/dist/index.d.ts +8 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +8 -0
  52. package/dist/index.js.map +1 -1
  53. package/package.json +13 -6
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pipeline = void 0;
4
+ /**
5
+ * Pipeline executes a stack of middleware for HTTP requests.
6
+ */
7
+ class Pipeline {
8
+ constructor(container) {
9
+ this.container = container;
10
+ this.handlers = [];
11
+ }
12
+ /**
13
+ * Add middleware to the pipeline.
14
+ */
15
+ pipe(middleware) {
16
+ if (Array.isArray(middleware)) {
17
+ this.handlers.push(...middleware);
18
+ }
19
+ else {
20
+ this.handlers.push(middleware);
21
+ }
22
+ return this;
23
+ }
24
+ /**
25
+ * Run the pipeline through the given destination.
26
+ */
27
+ async handle(request, destination, response) {
28
+ const invoke = async (index, req) => {
29
+ if (index >= this.handlers.length) {
30
+ return destination(req, response);
31
+ }
32
+ const handler = this.resolve(this.handlers[index]);
33
+ if (typeof handler === 'function') {
34
+ return handler(req, (nextReq) => invoke(index + 1, nextReq), response);
35
+ }
36
+ if (typeof handler === 'object' && 'handle' in handler && typeof handler.handle === 'function') {
37
+ return handler.handle(req, (nextReq) => invoke(index + 1, nextReq), response);
38
+ }
39
+ throw new Error(`Invalid middleware handler at index ${index}`);
40
+ };
41
+ return invoke(0, request);
42
+ }
43
+ /**
44
+ * Resolve the middleware handler.
45
+ */
46
+ resolve(handler) {
47
+ if (typeof handler === 'string' && this.container) {
48
+ return this.container.make(handler);
49
+ }
50
+ if (typeof handler === 'function') {
51
+ const isClass = /^\s*class\s+/.test(handler.toString()) ||
52
+ (handler.prototype && typeof handler.prototype.handle === 'function');
53
+ if (isClass) {
54
+ return this.container ? this.container.make(handler) : new handler();
55
+ }
56
+ }
57
+ return handler;
58
+ }
59
+ }
60
+ exports.Pipeline = Pipeline;
61
+ //# sourceMappingURL=Pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pipeline.js","sourceRoot":"","sources":["../src/Pipeline.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAa,QAAQ;IAGjB,YAAoB,SAAe;QAAf,cAAS,GAAT,SAAS,CAAM;QAF3B,aAAQ,GAAU,EAAE,CAAC;IAEU,CAAC;IAExC;;OAEG;IACI,IAAI,CAAC,UAAuB;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM,CACf,OAAgB,EAChB,WAAoF,EACpF,QAAmB;QAEnB,MAAM,MAAM,GAAG,KAAK,EAAE,KAAa,EAAE,GAAY,EAAqB,EAAE;YACpE,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAChC,OAAO,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAEnD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;YACpF,CAAC;YAED,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC7F,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC3F,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC;QAEF,OAAO,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,OAAO,CAAC,OAAY;QACxB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnD,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;YAE1E,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAK,OAAe,EAAE,CAAC;YAClF,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAjED,4BAiEC"}
@@ -0,0 +1,9 @@
1
+ import http from 'http';
2
+ export declare class RawResponse {
3
+ private res;
4
+ static dateCache: string;
5
+ constructor(res: http.ServerResponse);
6
+ static setupDateUpdater(): void;
7
+ sendUltra(body: Buffer | string): void;
8
+ }
9
+ //# sourceMappingURL=RawResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RawResponse.d.ts","sourceRoot":"","sources":["../src/RawResponse.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,qBAAa,WAAW;IACpB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAc,SAAS,EAAE,MAAM,CAA4B;gBAE/C,GAAG,EAAE,IAAI,CAAC,cAAc;WAItB,gBAAgB;IAMvB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAWhD"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RawResponse = void 0;
4
+ class RawResponse {
5
+ constructor(res) {
6
+ this.res = res;
7
+ }
8
+ static setupDateUpdater() {
9
+ setInterval(() => {
10
+ RawResponse.dateCache = new Date().toUTCString();
11
+ }, 1000).unref();
12
+ }
13
+ sendUltra(body) {
14
+ const bodyBuffer = typeof body === 'string' ? Buffer.from(body) : body;
15
+ this.res.writeHead(200, {
16
+ 'Content-Type': 'application/json',
17
+ 'Content-Length': bodyBuffer.length,
18
+ 'Date': RawResponse.dateCache,
19
+ 'Connection': 'keep-alive'
20
+ });
21
+ this.res.end(bodyBuffer);
22
+ }
23
+ }
24
+ exports.RawResponse = RawResponse;
25
+ RawResponse.dateCache = new Date().toUTCString();
26
+ RawResponse.setupDateUpdater();
27
+ //# sourceMappingURL=RawResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RawResponse.js","sourceRoot":"","sources":["../src/RawResponse.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IAIpB,YAAY,GAAwB;QAChC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,gBAAgB;QAC1B,WAAW,CAAC,GAAG,EAAE;YACb,WAAW,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrD,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEM,SAAS,CAAC,IAAqB;QAClC,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACpB,cAAc,EAAE,kBAAkB;YAClC,gBAAgB,EAAE,UAAU,CAAC,MAAM;YACnC,MAAM,EAAE,WAAW,CAAC,SAAS;YAC7B,YAAY,EAAE,YAAY;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;;AAxBL,kCAyBC;AAvBiB,qBAAS,GAAW,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAyB/D,WAAW,CAAC,gBAAgB,EAAE,CAAC"}
package/dist/Request.d.ts CHANGED
@@ -1,13 +1,29 @@
1
1
  import { Application } from './Contracts/Application';
2
2
  import { IncomingMessage } from 'node:http';
3
3
  export declare class Request {
4
- private readonly app;
5
- private readonly req;
6
- private readonly searchParams;
4
+ private app;
5
+ private req;
6
+ private _session;
7
+ searchParams: URLSearchParams;
7
8
  private _cookies;
8
9
  private _body;
9
10
  private _params;
11
+ private _auth;
12
+ private _view;
10
13
  constructor(app: Application, req: IncomingMessage);
14
+ private _baseUrl;
15
+ reset(req: IncomingMessage | null): void;
16
+ /**
17
+ * Get the view engine instance.
18
+ */
19
+ get view(): any;
20
+ set view(value: any);
21
+ /**
22
+ * Get the authentication context for the request.
23
+ */
24
+ get auth(): any;
25
+ set auth(value: any);
26
+ private ensureSearchParams;
11
27
  /**
12
28
  * Get the base URL (scheme + host) of the request.
13
29
  * Falls back to app.url config if host header is missing.
@@ -33,6 +49,10 @@ export declare class Request {
33
49
  * Get all headers.
34
50
  */
35
51
  headers(): Record<string, string | string[] | undefined>;
52
+ /**
53
+ * Get the client IP address.
54
+ */
55
+ ip(): string | undefined;
36
56
  /**
37
57
  * Get a specific header.
38
58
  */
@@ -77,5 +97,35 @@ export declare class Request {
77
97
  * Get all input (query + body).
78
98
  */
79
99
  all(): any;
100
+ /**
101
+ * Get a subset of the input data.
102
+ */
103
+ only(keys: string[]): Record<string, any>;
104
+ get session(): any;
105
+ set session(value: any);
106
+ /**
107
+ * Get all input data except for a specified array of keys.
108
+ */
109
+ except(keys: string[]): Record<string, any>;
110
+ /**
111
+ * Get the original incoming message.
112
+ */
113
+ getIncomingMessage(): IncomingMessage;
114
+ /**
115
+ * Determine if the current request is asking for JSON.
116
+ */
117
+ wantsJson(): boolean;
118
+ /**
119
+ * Determine if the current request is an AJAX request.
120
+ */
121
+ ajax(): boolean;
122
+ /**
123
+ * Determine if the current request expects a JSON response.
124
+ */
125
+ expectsJson(): boolean;
126
+ /**
127
+ * Validate the request with the given rules.
128
+ */
129
+ validate(rules: Record<string, any>, messages?: Record<string, any>): Promise<any>;
80
130
  }
81
131
  //# sourceMappingURL=Request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI5C,qBAAa,OAAO;IAChB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAA8B;gBAEjC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe;IAQlD;;;OAGG;IACH,OAAO,IAAI,MAAM;IAYjB;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,MAAM,IAAI,eAAe;IAIzB;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,IAAI,IAAI,MAAM;IAKd;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAIxD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAInD;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAQ7C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxC;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAI/C;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIhC;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,GAAG,IAAI;IAIrE;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAIxB;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU,GAAG,GAAG;IAejD;;OAEG;IACH,IAAI,IAAI,GAAG;IAIX;;OAEG;IACH,GAAG,IAAI,GAAG;CAKb"}
1
+ {"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"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"}
package/dist/Request.js CHANGED
@@ -34,30 +34,101 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Request = void 0;
37
- const node_url_1 = require("node:url");
38
37
  const cookie = __importStar(require("cookie"));
38
+ const validation_1 = require("@arikajs/validation");
39
39
  class Request {
40
40
  constructor(app, req) {
41
+ this._session = null;
41
42
  this._cookies = null;
42
43
  this._body = null;
43
44
  this._params = {};
45
+ this._auth = null;
46
+ this._view = null;
47
+ this._baseUrl = null;
44
48
  this.app = app;
49
+ if (req) {
50
+ this.reset(req);
51
+ }
52
+ }
53
+ reset(req) {
54
+ if (!req) {
55
+ this.req = null;
56
+ return;
57
+ }
45
58
  this.req = req;
46
- const fullUrl = `${this.baseUrl()}${req.url || '/'}`;
47
- this.searchParams = new node_url_1.URL(fullUrl).searchParams;
59
+ this.searchParams = null;
60
+ this._cookies = null;
61
+ this._body = null;
62
+ this._params = {};
63
+ this._baseUrl = null;
64
+ this._session = null;
65
+ this._auth = null;
66
+ this._view = null;
67
+ }
68
+ /**
69
+ * Get the view engine instance.
70
+ */
71
+ get view() {
72
+ if (!this._view) {
73
+ try {
74
+ this._view = this.app.make('view');
75
+ }
76
+ catch (e) {
77
+ return null;
78
+ }
79
+ }
80
+ return this._view;
81
+ }
82
+ set view(value) {
83
+ this._view = value;
84
+ }
85
+ /**
86
+ * Get the authentication context for the request.
87
+ */
88
+ get auth() {
89
+ if (!this._auth) {
90
+ try {
91
+ const authManager = this.app.make('auth');
92
+ this._auth = authManager.createContext(this);
93
+ }
94
+ catch (e) {
95
+ // Auth manager not registered
96
+ return null;
97
+ }
98
+ }
99
+ return this._auth;
100
+ }
101
+ set auth(value) {
102
+ this._auth = value;
103
+ }
104
+ ensureSearchParams() {
105
+ if (!this.searchParams && this.req) {
106
+ const url = this.req.url || '/';
107
+ const queryIndex = url.indexOf('?');
108
+ if (queryIndex === -1) {
109
+ this.searchParams = new URLSearchParams();
110
+ }
111
+ else {
112
+ this.searchParams = new URLSearchParams(url.slice(queryIndex + 1));
113
+ }
114
+ }
48
115
  }
49
116
  /**
50
117
  * Get the base URL (scheme + host) of the request.
51
118
  * Falls back to app.url config if host header is missing.
52
119
  */
53
120
  baseUrl() {
121
+ if (this._baseUrl)
122
+ return this._baseUrl;
54
123
  const trustProxy = this.app.config().get('http.trustProxy', false);
55
124
  const protocol = trustProxy ? (this.header('x-forwarded-proto') || 'http') : 'http';
56
125
  const host = trustProxy ? (this.header('x-forwarded-host') || this.req.headers.host) : this.req.headers.host;
57
126
  if (host) {
58
- return `${protocol}://${host}`;
127
+ this._baseUrl = `${protocol}://${host}`;
128
+ return this._baseUrl;
59
129
  }
60
- return this.app.config().get('app.url', 'http://localhost');
130
+ this._baseUrl = this.app.config().get('app.url', 'http://localhost');
131
+ return this._baseUrl;
61
132
  }
62
133
  /**
63
134
  * Get the application instance.
@@ -81,8 +152,9 @@ class Request {
81
152
  * Get the request path.
82
153
  */
83
154
  path() {
84
- const url = new node_url_1.URL(this.req.url || '/', `http://${this.req.headers.host || 'localhost'}`);
85
- return url.pathname;
155
+ const url = this.req.url || '/';
156
+ const queryIndex = url.indexOf('?');
157
+ return queryIndex === -1 ? url : url.slice(0, queryIndex);
86
158
  }
87
159
  /**
88
160
  * Get all headers.
@@ -90,6 +162,19 @@ class Request {
90
162
  headers() {
91
163
  return this.req.headers;
92
164
  }
165
+ /**
166
+ * Get the client IP address.
167
+ */
168
+ ip() {
169
+ const trustProxy = this.app.config().get('http.trustProxy', false);
170
+ if (trustProxy) {
171
+ const forwardedFor = this.header('x-forwarded-for');
172
+ if (typeof forwardedFor === 'string') {
173
+ return forwardedFor.split(',')[0].trim();
174
+ }
175
+ }
176
+ return this.req.socket.remoteAddress;
177
+ }
93
178
  /**
94
179
  * Get a specific header.
95
180
  */
@@ -116,6 +201,7 @@ class Request {
116
201
  * Get a query parameter.
117
202
  */
118
203
  query(key) {
204
+ this.ensureSearchParams();
119
205
  return this.searchParams.get(key);
120
206
  }
121
207
  /**
@@ -167,10 +253,87 @@ class Request {
167
253
  * Get all input (query + body).
168
254
  */
169
255
  all() {
256
+ this.ensureSearchParams();
170
257
  const query = Object.fromEntries(this.searchParams.entries());
171
258
  const body = typeof this._body === 'object' && this._body !== null ? this._body : {};
172
259
  return { ...query, ...body };
173
260
  }
261
+ /**
262
+ * Get a subset of the input data.
263
+ */
264
+ only(keys) {
265
+ const all = this.all();
266
+ const result = {};
267
+ keys.forEach(key => {
268
+ if (key in all) {
269
+ result[key] = all[key];
270
+ }
271
+ });
272
+ return result;
273
+ }
274
+ get session() {
275
+ if (!this._session) {
276
+ const store = {};
277
+ this._session = {
278
+ get: (key) => store[key] ?? null,
279
+ put: (key, value) => { store[key] = value; },
280
+ forget: (key) => { delete store[key]; },
281
+ has: (key) => key in store,
282
+ all: () => ({ ...store }),
283
+ };
284
+ }
285
+ return this._session;
286
+ }
287
+ set session(value) {
288
+ this._session = value;
289
+ }
290
+ /**
291
+ * Get all input data except for a specified array of keys.
292
+ */
293
+ except(keys) {
294
+ const all = this.all();
295
+ const result = { ...all };
296
+ keys.forEach(key => {
297
+ delete result[key];
298
+ });
299
+ return result;
300
+ }
301
+ /**
302
+ * Get the original incoming message.
303
+ */
304
+ getIncomingMessage() {
305
+ return this.req;
306
+ }
307
+ /**
308
+ * Determine if the current request is asking for JSON.
309
+ */
310
+ wantsJson() {
311
+ const acceptable = this.header('accept');
312
+ return typeof acceptable === 'string' &&
313
+ (acceptable.includes('application/json') || acceptable.includes('+json'));
314
+ }
315
+ /**
316
+ * Determine if the current request is an AJAX request.
317
+ */
318
+ ajax() {
319
+ return this.header('x-requested-with') === 'XMLHttpRequest';
320
+ }
321
+ /**
322
+ * Determine if the current request expects a JSON response.
323
+ */
324
+ expectsJson() {
325
+ return this.ajax() || this.wantsJson();
326
+ }
327
+ /**
328
+ * Validate the request with the given rules.
329
+ */
330
+ async validate(rules, messages = {}) {
331
+ const validator = new validation_1.Validator(this.all(), rules, messages);
332
+ if (await validator.fails()) {
333
+ throw new validation_1.ValidationError(validator.errors());
334
+ }
335
+ return validator.validated();
336
+ }
174
337
  }
175
338
  exports.Request = Request;
176
339
  //# sourceMappingURL=Request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Request.js","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Request.js","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import { ServerResponse } from 'node:http';
2
2
  import * as cookie from 'cookie';
3
3
  export declare class Response {
4
- private readonly res;
4
+ private res;
5
5
  private _status;
6
6
  private _headers;
7
7
  private _cookies;
8
8
  private _content;
9
9
  constructor(res: ServerResponse);
10
+ reset(res: ServerResponse | null): void;
10
11
  /**
11
12
  * Set the HTTP status code.
12
13
  */
@@ -42,11 +43,19 @@ export declare class Response {
42
43
  /**
43
44
  * Set the response content as JSON.
44
45
  */
45
- json(data: any): this;
46
+ json(data: any, status?: number): this;
46
47
  /**
47
48
  * Set the response content as plain text or HTML.
48
49
  */
49
- send(content: string | Buffer): this;
50
+ send(content: string | Buffer, status?: number): this;
51
+ /**
52
+ * Redirect to a specific URL.
53
+ */
54
+ redirect(url: string, status?: number): this;
55
+ /**
56
+ * Redirect to the previous URL.
57
+ */
58
+ back(request: any, fallback?: string, status?: number): this;
50
59
  /**
51
60
  * Set the response content.
52
61
  */
@@ -68,5 +77,13 @@ export declare class Response {
68
77
  * This is called by the Kernel.
69
78
  */
70
79
  terminate(): void;
80
+ /**
81
+ * Get the underlying Node response.
82
+ */
83
+ getOriginalResponse(): ServerResponse;
84
+ /**
85
+ * Get the underlying Node response (alias for getOriginalResponse)
86
+ */
87
+ get raw(): ServerResponse;
71
88
  }
72
89
  //# sourceMappingURL=Response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../src/Response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,QAAQ,CAAkD;IAClE,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,GAAG,EAAE,cAAc;IAI/B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,EAAE,IAAI,IAAI;IAIV;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAK7D;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,gBAAqB,GAAG,IAAI;IAQhF;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAMrB;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQpC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK1C;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IAIxD;;;OAGG;IACH,SAAS,IAAI,IAAI;CAqBpB"}
1
+ {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../src/Response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,qBAAa,QAAQ;IACjB,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,QAAQ,CAAkD;IAClE,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,GAAG,EAAE,cAAc;IAIxB,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAQvC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,EAAE,IAAI,IAAI;IAIV;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAK7D;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,gBAAqB,GAAG,IAAI;IAQhF;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAStC;;OAEG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAW5D;;OAEG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,GAAG,IAAI;IAOxD;;OAEG;IACI,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAE,MAAY,EAAE,MAAM,GAAE,MAAY,GAAG,IAAI;IAK7E;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK1C;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IAIxD;;;OAGG;IACH,SAAS,IAAI,IAAI;IAwBjB;;OAEG;IACH,mBAAmB,IAAI,cAAc;IAIrC;;OAEG;IACH,IAAI,GAAG,IAAI,cAAc,CAExB;CACJ"}
package/dist/Response.js CHANGED
@@ -41,7 +41,15 @@ class Response {
41
41
  this._headers = {};
42
42
  this._cookies = [];
43
43
  this._content = null;
44
+ if (res)
45
+ this.reset(res);
46
+ }
47
+ reset(res) {
44
48
  this.res = res;
49
+ this._status = 200;
50
+ this._headers = {};
51
+ this._cookies = [];
52
+ this._content = null;
45
53
  }
46
54
  /**
47
55
  * Set the HTTP status code.
@@ -100,7 +108,10 @@ class Response {
100
108
  /**
101
109
  * Set the response content as JSON.
102
110
  */
103
- json(data) {
111
+ json(data, status) {
112
+ if (status) {
113
+ this.status(status);
114
+ }
104
115
  this._content = JSON.stringify(data);
105
116
  this.header('Content-Type', 'application/json');
106
117
  return this;
@@ -108,13 +119,32 @@ class Response {
108
119
  /**
109
120
  * Set the response content as plain text or HTML.
110
121
  */
111
- send(content) {
122
+ send(content, status) {
123
+ if (status) {
124
+ this.status(status);
125
+ }
112
126
  this._content = content;
113
127
  if (typeof content === 'string' && !this._headers['Content-Type']) {
114
128
  this.header('Content-Type', content.startsWith('<') ? 'text/html' : 'text/plain');
115
129
  }
116
130
  return this;
117
131
  }
132
+ /**
133
+ * Redirect to a specific URL.
134
+ */
135
+ redirect(url, status = 302) {
136
+ this.status(status);
137
+ this.header('Location', url);
138
+ this._content = `Redirecting to ${url}`;
139
+ return this;
140
+ }
141
+ /**
142
+ * Redirect to the previous URL.
143
+ */
144
+ back(request, fallback = '/', status = 302) {
145
+ const url = request.header('referer') || request.header('referrer') || fallback;
146
+ return this.redirect(url, status);
147
+ }
118
148
  /**
119
149
  * Set the response content.
120
150
  */
@@ -151,8 +181,10 @@ class Response {
151
181
  // 1. Set Status
152
182
  this.res.statusCode = this._status;
153
183
  // 2. Set Headers
154
- for (const [name, value] of Object.entries(this._headers)) {
155
- this.res.setHeader(name, value);
184
+ const headerKeys = Object.keys(this._headers);
185
+ for (let i = 0; i < headerKeys.length; i++) {
186
+ const key = headerKeys[i];
187
+ this.res.setHeader(key, this._headers[key]);
156
188
  }
157
189
  // 3. Set Cookies
158
190
  if (this._cookies.length > 0) {
@@ -161,6 +193,18 @@ class Response {
161
193
  // 4. Send body and end
162
194
  this.res.end(this._content ?? '');
163
195
  }
196
+ /**
197
+ * Get the underlying Node response.
198
+ */
199
+ getOriginalResponse() {
200
+ return this.res;
201
+ }
202
+ /**
203
+ * Get the underlying Node response (alias for getOriginalResponse)
204
+ */
205
+ get raw() {
206
+ return this.res;
207
+ }
164
208
  }
165
209
  exports.Response = Response;
166
210
  //# sourceMappingURL=Response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Response.js","sourceRoot":"","sources":["../src/Response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Response.js","sourceRoot":"","sources":["../src/Response.ts"],"names":[],"mappings":"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"}