@orchestr-sh/orchestr 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 (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +344 -0
  3. package/dist/Container/Container.d.ts +90 -0
  4. package/dist/Container/Container.d.ts.map +1 -0
  5. package/dist/Container/Container.js +193 -0
  6. package/dist/Container/Container.js.map +1 -0
  7. package/dist/Facades/Route.d.ts +20 -0
  8. package/dist/Facades/Route.d.ts.map +1 -0
  9. package/dist/Facades/Route.js +50 -0
  10. package/dist/Facades/Route.js.map +1 -0
  11. package/dist/Foundation/Application.d.ts +97 -0
  12. package/dist/Foundation/Application.d.ts.map +1 -0
  13. package/dist/Foundation/Application.js +184 -0
  14. package/dist/Foundation/Application.js.map +1 -0
  15. package/dist/Foundation/Http/Kernel.d.ts +50 -0
  16. package/dist/Foundation/Http/Kernel.d.ts.map +1 -0
  17. package/dist/Foundation/Http/Kernel.js +122 -0
  18. package/dist/Foundation/Http/Kernel.js.map +1 -0
  19. package/dist/Foundation/ServiceProvider.d.ts +24 -0
  20. package/dist/Foundation/ServiceProvider.d.ts.map +1 -0
  21. package/dist/Foundation/ServiceProvider.js +15 -0
  22. package/dist/Foundation/ServiceProvider.js.map +1 -0
  23. package/dist/Providers/RouteServiceProvider.d.ts +9 -0
  24. package/dist/Providers/RouteServiceProvider.d.ts.map +1 -0
  25. package/dist/Providers/RouteServiceProvider.js +22 -0
  26. package/dist/Providers/RouteServiceProvider.js.map +1 -0
  27. package/dist/Routing/Controller.d.ts +17 -0
  28. package/dist/Routing/Controller.d.ts.map +1 -0
  29. package/dist/Routing/Controller.js +26 -0
  30. package/dist/Routing/Controller.js.map +1 -0
  31. package/dist/Routing/Request.d.ts +109 -0
  32. package/dist/Routing/Request.d.ts.map +1 -0
  33. package/dist/Routing/Request.js +212 -0
  34. package/dist/Routing/Request.js.map +1 -0
  35. package/dist/Routing/Response.d.ts +78 -0
  36. package/dist/Routing/Response.d.ts.map +1 -0
  37. package/dist/Routing/Response.js +174 -0
  38. package/dist/Routing/Response.js.map +1 -0
  39. package/dist/Routing/Route.d.ts +51 -0
  40. package/dist/Routing/Route.d.ts.map +1 -0
  41. package/dist/Routing/Route.js +94 -0
  42. package/dist/Routing/Route.js.map +1 -0
  43. package/dist/Routing/Router.d.ts +114 -0
  44. package/dist/Routing/Router.d.ts.map +1 -0
  45. package/dist/Routing/Router.js +216 -0
  46. package/dist/Routing/Router.js.map +1 -0
  47. package/dist/Support/Facade.d.ts +44 -0
  48. package/dist/Support/Facade.d.ts.map +1 -0
  49. package/dist/Support/Facade.js +101 -0
  50. package/dist/Support/Facade.js.map +1 -0
  51. package/dist/index.d.ts +20 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +37 -0
  54. package/dist/index.js.map +1 -0
  55. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Controller.js","sourceRoot":"","sources":["../../src/Routing/Controller.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,MAAsB,UAAU;IAC9B;;;OAGG;IACO,QAAQ,CAAC,OAAgB,EAAE,KAA0B;QAC7D,0CAA0C;QAC1C,gCAAgC;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,MAAc,EAAE,UAAiB;QACjD,OAAQ,IAAY,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;IAC9C,CAAC;CACF;AAjBD,gCAiBC"}
@@ -0,0 +1,109 @@
1
+ import { IncomingMessage } from 'http';
2
+ import { Route } from './Route';
3
+ /**
4
+ * Request - Laravel's HTTP Request wrapper
5
+ * Illuminate\Http\Request
6
+ */
7
+ export declare class Request {
8
+ raw: IncomingMessage;
9
+ method: string;
10
+ url: string;
11
+ path: string;
12
+ query: Record<string, any>;
13
+ params: Record<string, any>;
14
+ headers: Record<string, string | string[] | undefined>;
15
+ body: any;
16
+ route?: Route;
17
+ private bodyParsed;
18
+ constructor(req: IncomingMessage);
19
+ /**
20
+ * Parse the request body
21
+ */
22
+ parseBody(): Promise<void>;
23
+ /**
24
+ * Get a header value
25
+ * Laravel: $request->header('content-type')
26
+ */
27
+ header(name: string, defaultValue?: string): string | undefined;
28
+ /**
29
+ * Get an input value from the request
30
+ * Laravel: $request->input('name')
31
+ */
32
+ input(key: string, defaultValue?: any): any;
33
+ /**
34
+ * Get a value from query or body
35
+ * Laravel: $request->get('name')
36
+ */
37
+ get(key: string, defaultValue?: any): any;
38
+ /**
39
+ * Get all inputs
40
+ * Laravel: $request->all()
41
+ */
42
+ all(): Record<string, any>;
43
+ /**
44
+ * Get only specified inputs
45
+ * Laravel: $request->only(['name', 'email'])
46
+ */
47
+ only(keys: string[]): Record<string, any>;
48
+ /**
49
+ * Get all inputs except specified
50
+ * Laravel: $request->except(['password'])
51
+ */
52
+ except(keys: string[]): Record<string, any>;
53
+ /**
54
+ * Determine if the request contains a given input
55
+ * Laravel: $request->has('name')
56
+ */
57
+ has(key: string): boolean;
58
+ /**
59
+ * Determine if the request contains a non-empty value
60
+ * Laravel: $request->filled('name')
61
+ */
62
+ filled(key: string): boolean;
63
+ /**
64
+ * Get the route parameter
65
+ * Laravel: $request->route('id')
66
+ */
67
+ routeParam(key: string, defaultValue?: string): string | undefined;
68
+ /**
69
+ * Determine if the request is an AJAX request
70
+ * Laravel: $request->ajax()
71
+ */
72
+ ajax(): boolean;
73
+ /**
74
+ * Determine if the request expects JSON
75
+ * Laravel: $request->expectsJson()
76
+ */
77
+ expectsJson(): boolean;
78
+ /**
79
+ * Determine if the request is sending JSON
80
+ * Laravel: $request->isJson()
81
+ */
82
+ isJson(): boolean;
83
+ /**
84
+ * Get the request method
85
+ * Laravel: $request->method()
86
+ */
87
+ getMethod(): string;
88
+ /**
89
+ * Determine if the request is a specific method
90
+ * Laravel: $request->isMethod('post')
91
+ */
92
+ isMethod(method: string): boolean;
93
+ /**
94
+ * Get the URL for the request
95
+ * Laravel: $request->url()
96
+ */
97
+ getUrl(): string;
98
+ /**
99
+ * Get the path for the request
100
+ * Laravel: $request->path()
101
+ */
102
+ getPath(): string;
103
+ /**
104
+ * Get the IP address of the request
105
+ * Laravel: $request->ip()
106
+ */
107
+ ip(): string | undefined;
108
+ }
109
+ //# sourceMappingURL=Request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../src/Routing/Request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;GAGG;AACH,qBAAa,OAAO;IACX,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,IAAI,EAAE,GAAG,CAAM;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IAErB,OAAO,CAAC,UAAU,CAAkB;gBAExB,GAAG,EAAE,eAAe;IAYhC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAmChC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK/D;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG;IAI3C;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG;IAYzC;;;OAGG;IACH,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI1B;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAazC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAW3C;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAK5B;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIlE;;;OAGG;IACH,IAAI,IAAI,OAAO;IAIf;;;OAGG;IACH,WAAW,IAAI,OAAO;IAKtB;;;OAGG;IACH,MAAM,IAAI,OAAO;IAKjB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAInB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIjC;;;OAGG;IACH,MAAM,IAAI,MAAM;IAIhB;;;OAGG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,EAAE,IAAI,MAAM,GAAG,SAAS;CAQzB"}
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Request = void 0;
4
+ const url_1 = require("url");
5
+ const querystring_1 = require("querystring");
6
+ /**
7
+ * Request - Laravel's HTTP Request wrapper
8
+ * Illuminate\Http\Request
9
+ */
10
+ class Request {
11
+ raw;
12
+ method;
13
+ url;
14
+ path;
15
+ query = {};
16
+ params = {};
17
+ headers;
18
+ body = {};
19
+ route;
20
+ bodyParsed = false;
21
+ constructor(req) {
22
+ this.raw = req;
23
+ this.method = req.method || 'GET';
24
+ this.url = req.url || '/';
25
+ this.headers = req.headers;
26
+ // Parse URL and query string
27
+ const parsed = (0, url_1.parse)(this.url, true);
28
+ this.path = parsed.pathname || '/';
29
+ this.query = parsed.query;
30
+ }
31
+ /**
32
+ * Parse the request body
33
+ */
34
+ async parseBody() {
35
+ if (this.bodyParsed) {
36
+ return;
37
+ }
38
+ return new Promise((resolve, reject) => {
39
+ let data = '';
40
+ this.raw.on('data', chunk => {
41
+ data += chunk.toString();
42
+ });
43
+ this.raw.on('end', () => {
44
+ try {
45
+ const contentType = this.header('content-type') || '';
46
+ if (contentType.includes('application/json')) {
47
+ this.body = data ? JSON.parse(data) : {};
48
+ }
49
+ else if (contentType.includes('application/x-www-form-urlencoded')) {
50
+ this.body = (0, querystring_1.parse)(data);
51
+ }
52
+ else {
53
+ this.body = data;
54
+ }
55
+ this.bodyParsed = true;
56
+ resolve();
57
+ }
58
+ catch (error) {
59
+ reject(error);
60
+ }
61
+ });
62
+ this.raw.on('error', reject);
63
+ });
64
+ }
65
+ /**
66
+ * Get a header value
67
+ * Laravel: $request->header('content-type')
68
+ */
69
+ header(name, defaultValue) {
70
+ const value = this.headers[name.toLowerCase()];
71
+ return Array.isArray(value) ? value[0] : value || defaultValue;
72
+ }
73
+ /**
74
+ * Get an input value from the request
75
+ * Laravel: $request->input('name')
76
+ */
77
+ input(key, defaultValue) {
78
+ return this.get(key, defaultValue);
79
+ }
80
+ /**
81
+ * Get a value from query or body
82
+ * Laravel: $request->get('name')
83
+ */
84
+ get(key, defaultValue) {
85
+ if (this.query[key] !== undefined) {
86
+ return this.query[key];
87
+ }
88
+ if (this.body[key] !== undefined) {
89
+ return this.body[key];
90
+ }
91
+ return defaultValue;
92
+ }
93
+ /**
94
+ * Get all inputs
95
+ * Laravel: $request->all()
96
+ */
97
+ all() {
98
+ return { ...this.query, ...this.body };
99
+ }
100
+ /**
101
+ * Get only specified inputs
102
+ * Laravel: $request->only(['name', 'email'])
103
+ */
104
+ only(keys) {
105
+ const result = {};
106
+ const all = this.all();
107
+ for (const key of keys) {
108
+ if (all[key] !== undefined) {
109
+ result[key] = all[key];
110
+ }
111
+ }
112
+ return result;
113
+ }
114
+ /**
115
+ * Get all inputs except specified
116
+ * Laravel: $request->except(['password'])
117
+ */
118
+ except(keys) {
119
+ const all = this.all();
120
+ const result = { ...all };
121
+ for (const key of keys) {
122
+ delete result[key];
123
+ }
124
+ return result;
125
+ }
126
+ /**
127
+ * Determine if the request contains a given input
128
+ * Laravel: $request->has('name')
129
+ */
130
+ has(key) {
131
+ return this.get(key) !== undefined;
132
+ }
133
+ /**
134
+ * Determine if the request contains a non-empty value
135
+ * Laravel: $request->filled('name')
136
+ */
137
+ filled(key) {
138
+ const value = this.get(key);
139
+ return value !== undefined && value !== null && value !== '';
140
+ }
141
+ /**
142
+ * Get the route parameter
143
+ * Laravel: $request->route('id')
144
+ */
145
+ routeParam(key, defaultValue) {
146
+ return this.params[key] ?? defaultValue;
147
+ }
148
+ /**
149
+ * Determine if the request is an AJAX request
150
+ * Laravel: $request->ajax()
151
+ */
152
+ ajax() {
153
+ return this.header('x-requested-with')?.toLowerCase() === 'xmlhttprequest';
154
+ }
155
+ /**
156
+ * Determine if the request expects JSON
157
+ * Laravel: $request->expectsJson()
158
+ */
159
+ expectsJson() {
160
+ const accept = this.header('accept') || '';
161
+ return accept.includes('application/json');
162
+ }
163
+ /**
164
+ * Determine if the request is sending JSON
165
+ * Laravel: $request->isJson()
166
+ */
167
+ isJson() {
168
+ const contentType = this.header('content-type') || '';
169
+ return contentType.includes('application/json');
170
+ }
171
+ /**
172
+ * Get the request method
173
+ * Laravel: $request->method()
174
+ */
175
+ getMethod() {
176
+ return this.method;
177
+ }
178
+ /**
179
+ * Determine if the request is a specific method
180
+ * Laravel: $request->isMethod('post')
181
+ */
182
+ isMethod(method) {
183
+ return this.method.toLowerCase() === method.toLowerCase();
184
+ }
185
+ /**
186
+ * Get the URL for the request
187
+ * Laravel: $request->url()
188
+ */
189
+ getUrl() {
190
+ return this.url;
191
+ }
192
+ /**
193
+ * Get the path for the request
194
+ * Laravel: $request->path()
195
+ */
196
+ getPath() {
197
+ return this.path;
198
+ }
199
+ /**
200
+ * Get the IP address of the request
201
+ * Laravel: $request->ip()
202
+ */
203
+ ip() {
204
+ const forwarded = this.header('x-forwarded-for');
205
+ if (forwarded) {
206
+ return Array.isArray(forwarded) ? forwarded[0] : forwarded.split(',')[0];
207
+ }
208
+ return this.raw.socket.remoteAddress;
209
+ }
210
+ }
211
+ exports.Request = Request;
212
+ //# sourceMappingURL=Request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Request.js","sourceRoot":"","sources":["../../src/Routing/Request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { ServerResponse } from 'http';
2
+ /**
3
+ * Response - Laravel's HTTP Response wrapper
4
+ * Illuminate\Http\Response
5
+ */
6
+ export declare class Response {
7
+ raw: ServerResponse;
8
+ finished: boolean;
9
+ private statusCode;
10
+ private responseHeaders;
11
+ private cookies;
12
+ constructor(res: ServerResponse);
13
+ /**
14
+ * Set the response status code
15
+ * Laravel: response()->status(404)
16
+ */
17
+ status(code: number): this;
18
+ /**
19
+ * Set a header on the response
20
+ * Laravel: response()->header('Content-Type', 'application/json')
21
+ */
22
+ header(name: string, value: string): this;
23
+ /**
24
+ * Set multiple headers
25
+ */
26
+ headers(headers: Record<string, string>): this;
27
+ /**
28
+ * Set a cookie on the response
29
+ * Laravel: response()->cookie('name', 'value')
30
+ */
31
+ cookie(name: string, value: string, options?: CookieOptions): this;
32
+ /**
33
+ * Write headers to the response
34
+ */
35
+ private writeHeaders;
36
+ /**
37
+ * Send a response
38
+ * Laravel: response('Hello World')
39
+ */
40
+ send(data: any): void;
41
+ /**
42
+ * Send a JSON response
43
+ * Laravel: response()->json(['key' => 'value'])
44
+ */
45
+ json(data: any, statusCode?: number): void;
46
+ /**
47
+ * Send a redirect response
48
+ * Laravel: redirect('/path')
49
+ */
50
+ redirect(url: string, statusCode?: number): void;
51
+ /**
52
+ * Send a download response
53
+ * Laravel: response()->download($path)
54
+ */
55
+ download(data: Buffer | string, filename: string): void;
56
+ /**
57
+ * Send a view response (simplified)
58
+ * Laravel: view('welcome', ['name' => 'John'])
59
+ */
60
+ view(template: string, data?: Record<string, any>): void;
61
+ /**
62
+ * Serialize a cookie
63
+ */
64
+ private serializeCookie;
65
+ }
66
+ /**
67
+ * Cookie options
68
+ */
69
+ export interface CookieOptions {
70
+ maxAge?: number;
71
+ domain?: string;
72
+ path?: string;
73
+ expires?: Date;
74
+ httpOnly?: boolean;
75
+ secure?: boolean;
76
+ sameSite?: 'Strict' | 'Lax' | 'None';
77
+ }
78
+ //# sourceMappingURL=Response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../../src/Routing/Response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEtC;;;GAGG;AACH,qBAAa,QAAQ;IACZ,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAS;IACjC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,OAAO,CAAsE;gBAEzE,GAAG,EAAE,cAAc;IAI/B;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAK9C;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI;IAKtE;;OAEG;IACH,OAAO,CAAC,YAAY;IAkBpB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAqBrB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB1C;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,GAAG,IAAI;IAarD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUvD;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI;IAO5D;;OAEG;IACH,OAAO,CAAC,eAAe;CAmCxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Response = void 0;
4
+ /**
5
+ * Response - Laravel's HTTP Response wrapper
6
+ * Illuminate\Http\Response
7
+ */
8
+ class Response {
9
+ raw;
10
+ finished = false;
11
+ statusCode = 200;
12
+ responseHeaders = {};
13
+ cookies = [];
14
+ constructor(res) {
15
+ this.raw = res;
16
+ }
17
+ /**
18
+ * Set the response status code
19
+ * Laravel: response()->status(404)
20
+ */
21
+ status(code) {
22
+ this.statusCode = code;
23
+ return this;
24
+ }
25
+ /**
26
+ * Set a header on the response
27
+ * Laravel: response()->header('Content-Type', 'application/json')
28
+ */
29
+ header(name, value) {
30
+ this.responseHeaders[name] = value;
31
+ return this;
32
+ }
33
+ /**
34
+ * Set multiple headers
35
+ */
36
+ headers(headers) {
37
+ Object.assign(this.responseHeaders, headers);
38
+ return this;
39
+ }
40
+ /**
41
+ * Set a cookie on the response
42
+ * Laravel: response()->cookie('name', 'value')
43
+ */
44
+ cookie(name, value, options = {}) {
45
+ this.cookies.push({ name, value, options });
46
+ return this;
47
+ }
48
+ /**
49
+ * Write headers to the response
50
+ */
51
+ writeHeaders() {
52
+ this.raw.statusCode = this.statusCode;
53
+ // Write custom headers
54
+ for (const [name, value] of Object.entries(this.responseHeaders)) {
55
+ this.raw.setHeader(name, value);
56
+ }
57
+ // Write cookies
58
+ if (this.cookies.length > 0) {
59
+ const cookieHeaders = this.cookies.map(({ name, value, options }) => {
60
+ return this.serializeCookie(name, value, options);
61
+ });
62
+ this.raw.setHeader('Set-Cookie', cookieHeaders);
63
+ }
64
+ }
65
+ /**
66
+ * Send a response
67
+ * Laravel: response('Hello World')
68
+ */
69
+ send(data) {
70
+ if (this.finished) {
71
+ return;
72
+ }
73
+ this.writeHeaders();
74
+ if (data === null || data === undefined) {
75
+ this.raw.end();
76
+ }
77
+ else if (typeof data === 'string' || Buffer.isBuffer(data)) {
78
+ this.raw.end(data);
79
+ }
80
+ else if (typeof data === 'object') {
81
+ this.json(data);
82
+ return;
83
+ }
84
+ else {
85
+ this.raw.end(String(data));
86
+ }
87
+ this.finished = true;
88
+ }
89
+ /**
90
+ * Send a JSON response
91
+ * Laravel: response()->json(['key' => 'value'])
92
+ */
93
+ json(data, statusCode) {
94
+ if (this.finished) {
95
+ return;
96
+ }
97
+ if (statusCode) {
98
+ this.statusCode = statusCode;
99
+ }
100
+ this.header('Content-Type', 'application/json');
101
+ this.writeHeaders();
102
+ this.raw.end(JSON.stringify(data));
103
+ this.finished = true;
104
+ }
105
+ /**
106
+ * Send a redirect response
107
+ * Laravel: redirect('/path')
108
+ */
109
+ redirect(url, statusCode = 302) {
110
+ if (this.finished) {
111
+ return;
112
+ }
113
+ this.statusCode = statusCode;
114
+ this.header('Location', url);
115
+ this.writeHeaders();
116
+ this.raw.end();
117
+ this.finished = true;
118
+ }
119
+ /**
120
+ * Send a download response
121
+ * Laravel: response()->download($path)
122
+ */
123
+ download(data, filename) {
124
+ if (this.finished) {
125
+ return;
126
+ }
127
+ this.header('Content-Disposition', `attachment; filename="${filename}"`);
128
+ this.header('Content-Type', 'application/octet-stream');
129
+ this.send(data);
130
+ }
131
+ /**
132
+ * Send a view response (simplified)
133
+ * Laravel: view('welcome', ['name' => 'John'])
134
+ */
135
+ view(template, data = {}) {
136
+ // This would normally render a template
137
+ // For now, just send a basic HTML response
138
+ this.header('Content-Type', 'text/html');
139
+ this.send(`<html><body><h1>View: ${template}</h1><pre>${JSON.stringify(data, null, 2)}</pre></body></html>`);
140
+ }
141
+ /**
142
+ * Serialize a cookie
143
+ */
144
+ serializeCookie(name, value, options) {
145
+ let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
146
+ if (options.maxAge) {
147
+ cookie += `; Max-Age=${options.maxAge}`;
148
+ }
149
+ if (options.domain) {
150
+ cookie += `; Domain=${options.domain}`;
151
+ }
152
+ if (options.path) {
153
+ cookie += `; Path=${options.path}`;
154
+ }
155
+ else {
156
+ cookie += '; Path=/';
157
+ }
158
+ if (options.expires) {
159
+ cookie += `; Expires=${options.expires.toUTCString()}`;
160
+ }
161
+ if (options.httpOnly) {
162
+ cookie += '; HttpOnly';
163
+ }
164
+ if (options.secure) {
165
+ cookie += '; Secure';
166
+ }
167
+ if (options.sameSite) {
168
+ cookie += `; SameSite=${options.sameSite}`;
169
+ }
170
+ return cookie;
171
+ }
172
+ }
173
+ exports.Response = Response;
174
+ //# sourceMappingURL=Response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Response.js","sourceRoot":"","sources":["../../src/Routing/Response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { Request } from './Request';
2
+ import { Response } from './Response';
3
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
4
+ export type RouteAction = Function | string;
5
+ export type Middleware = (req: Request, res: Response, next: () => void) => void | Promise<void>;
6
+ /**
7
+ * Route - Represents a single route in the application
8
+ * Laravel's Illuminate\Routing\Route
9
+ */
10
+ export declare class Route {
11
+ uri: string;
12
+ methods: HttpMethod[];
13
+ action: RouteAction;
14
+ middleware: Middleware[];
15
+ name?: string;
16
+ parameters: Record<string, string>;
17
+ private compiled?;
18
+ private parameterNames;
19
+ constructor(methods: HttpMethod | HttpMethod[], uri: string, action: RouteAction);
20
+ /**
21
+ * Compile the route pattern into a regex
22
+ */
23
+ private compileRoute;
24
+ /**
25
+ * Determine if the route matches the given request
26
+ */
27
+ matches(method: string, path: string): boolean;
28
+ /**
29
+ * Bind the route parameters from the path
30
+ */
31
+ bind(path: string): void;
32
+ /**
33
+ * Add middleware to the route
34
+ * Laravel: Route::middleware('auth')
35
+ */
36
+ addMiddleware(middleware: Middleware | Middleware[]): this;
37
+ /**
38
+ * Set the route name
39
+ * Laravel: Route::name('users.index')
40
+ */
41
+ setName(name: string): this;
42
+ /**
43
+ * Get the route parameters
44
+ */
45
+ getParameters(): Record<string, string>;
46
+ /**
47
+ * Get a specific parameter value
48
+ */
49
+ parameter(name: string, defaultValue?: string): string | undefined;
50
+ }
51
+ //# sourceMappingURL=Route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../src/Routing/Route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjG;;;GAGG;AACH,qBAAa,KAAK;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,UAAU,EAAE,CAAM;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAC/C,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAgB;gBAE1B,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAOhF;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ9C;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWxB;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI;IAM1D;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGnE"}