@ereactthohir/core 1.2.2 → 1.2.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Kernel.d.ts","sourceRoot":"","sources":["../../src/http/Kernel.ts"],"names":[],"mappings":"AAAA,OAAO,OAA4C,MAAM,SAAS,CAAC;AAOnE,qBAAa,MAAM;IACf,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;;IAStB,MAAM;IAwCZ,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI;CAGpD"}
1
+ {"version":3,"file":"Kernel.d.ts","sourceRoot":"","sources":["../../src/http/Kernel.ts"],"names":[],"mappings":"AAAA,OAAO,OAAiF,MAAM,SAAS,CAAC;AAaxG,qBAAa,MAAM;IACf,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;;IAYtB,MAAM;IAiIZ,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI;CAGpD"}
@@ -10,25 +10,113 @@ const cors_1 = __importDefault(require("cors"));
10
10
  const Router_1 = require("../http/Router");
11
11
  const Logger_1 = require("../foundation/Logger");
12
12
  const ExceptionHandler_1 = require("./ExceptionHandler");
13
+ const View_1 = require("../foundation/View");
14
+ const Request_1 = require("./Request");
15
+ const Response_1 = require("./Response");
16
+ const react_1 = __importDefault(require("react"));
17
+ const path_1 = __importDefault(require("path"));
18
+ const fs_1 = __importDefault(require("fs"));
13
19
  class Kernel {
14
20
  constructor() {
15
21
  this.app = (0, express_1.default)();
16
- this.app.use((0, helmet_1.default)());
22
+ this.app.use((0, helmet_1.default)({
23
+ contentSecurityPolicy: false,
24
+ }));
17
25
  this.app.use((0, cors_1.default)());
18
26
  this.app.use(express_1.default.json());
27
+ this.app.use(express_1.default.urlencoded({ extended: true }));
19
28
  }
20
29
  async handle() {
21
30
  const routes = Router_1.Route.getRoutes();
22
- console.log(`[Kernel] Received ${routes.length} route(s) to register`);
31
+ console.log(`[Kernel] Registering ${routes.length} route(s) to Express...`);
23
32
  routes.forEach(route => {
24
33
  const method = route.method.toLowerCase();
25
34
  if (this.app[method]) {
35
+ console.log(` [Route] ${route.method} ${route.path}`);
26
36
  this.app[method](route.path, async (req, res, next) => {
27
37
  try {
28
38
  Logger_1.Logger.info(`Incoming ${route.method} request to ${route.path}`);
29
- const result = typeof route.handler === 'function'
30
- ? await route.handler(req, res)
31
- : await route.handler;
39
+ // Wrap Express Request and Response
40
+ const erreq = new Request_1.Request({
41
+ method: req.method,
42
+ path: req.path,
43
+ headers: req.headers,
44
+ query: req.query,
45
+ body: req.body,
46
+ params: req.params
47
+ });
48
+ // Basic app mock for dependencies
49
+ erreq.app = {
50
+ make: (name) => {
51
+ if (name === 'auth') {
52
+ return {
53
+ attempt: async () => ({ id: 1, name: 'User' }),
54
+ create: async (data) => ({ id: 1, ...data })
55
+ };
56
+ }
57
+ return null;
58
+ }
59
+ };
60
+ erreq.session = {
61
+ set: () => { },
62
+ get: () => { },
63
+ destroy: () => { }
64
+ };
65
+ erreq.validate = async () => true;
66
+ const erres = new Response_1.Response();
67
+ let result;
68
+ // Handle Controller array [ControllerClass, 'methodName']
69
+ if (Array.isArray(route.handler) && route.handler.length === 2) {
70
+ const [ControllerClass, methodName] = route.handler;
71
+ const controllerInstance = new ControllerClass();
72
+ result = await controllerInstance[methodName](erreq, erres);
73
+ }
74
+ else if (typeof route.handler === 'function') {
75
+ result = await route.handler(erreq, erres);
76
+ }
77
+ else {
78
+ result = await route.handler;
79
+ }
80
+ // If the handler didn't return anything but modified erres, use erres
81
+ if (result === undefined || result === erres) {
82
+ result = erres;
83
+ }
84
+ // Handle EreactResponse object
85
+ if (result instanceof Response_1.Response || (result && result.getBody && result.getStatus)) {
86
+ const body = result.getBody();
87
+ const status = result.getStatus();
88
+ const headers = result.getHeaders();
89
+ // Set headers
90
+ Object.entries(headers).forEach(([key, value]) => {
91
+ res.setHeader(key, value);
92
+ });
93
+ res.status(status);
94
+ if (body && typeof body === 'object' && body.view) {
95
+ // Render React View
96
+ try {
97
+ const projectRoot = process.cwd();
98
+ let viewPath = path_1.default.join(projectRoot, 'resources/views', `${body.view}.tsx`);
99
+ if (!fs_1.default.existsSync(viewPath)) {
100
+ viewPath = path_1.default.join(projectRoot, 'resources/pages', `${body.view}.tsx`);
101
+ }
102
+ if (fs_1.default.existsSync(viewPath)) {
103
+ const viewModule = require(viewPath);
104
+ const Component = viewModule.default || viewModule;
105
+ const html = View_1.View.render(react_1.default.createElement(Component, body.data || {}));
106
+ res.setHeader('Content-Type', 'text/html');
107
+ return res.send(html);
108
+ }
109
+ else {
110
+ console.warn(`View not found: ${body.view} at ${viewPath}`);
111
+ }
112
+ }
113
+ catch (e) {
114
+ console.error(`View rendering failed for ${body.view}:`, e);
115
+ }
116
+ }
117
+ return res.send(body);
118
+ }
119
+ // Handle direct string/object results
32
120
  if (!res.headersSent) {
33
121
  if (typeof result === 'string') {
34
122
  res.setHeader('Content-Type', 'text/html');
@@ -40,6 +128,7 @@ class Kernel {
40
128
  }
41
129
  }
42
130
  catch (error) {
131
+ console.error('Kernel execution error:', error);
43
132
  next(error);
44
133
  }
45
134
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Kernel.js","sourceRoot":"","sources":["../../src/http/Kernel.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAmE;AACnE,oDAA4B;AAC5B,gDAAwB;AACxB,2CAA+C;AAC/C,iDAA8C;AAC9C,yDAAsD;AAEtD,MAAa,MAAM;IAGf;QACI,IAAI,CAAC,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAA,gBAAM,GAAE,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,MAAM;QACf,MAAM,MAAM,GAAG,cAAK,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,uBAAuB,CAAC,CAAC;QAEvE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAuC,CAAC;YAE/E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;oBACnF,IAAI,CAAC;wBACD,eAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,MAAM,eAAe,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wBAEjE,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU;4BAC9C,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;4BAC/B,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC;wBAE1B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;4BACnB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gCAC7B,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;gCAC3C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACrB,CAAC;iCAAM,CAAC;gCACJ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACrB,CAAC;wBACL,CAAC;oBACL,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBAClB,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChB,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAgB,CAAC,MAAM,CAAC,CAAC;QAEtC,cAAc;QACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAgB,CAAC,aAAa,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,IAAY,EAAE,QAAqB;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACJ;AArDD,wBAqDC"}
1
+ {"version":3,"file":"Kernel.js","sourceRoot":"","sources":["../../src/http/Kernel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ereactthohir/core",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "description": "Enterprise-grade core framework with caching, sessions, rate limiting, and advanced features",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",