@morojs/moro 1.0.0 → 1.0.2

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 (284) hide show
  1. package/README.md +1 -1
  2. package/dist/core/config/index.d.ts +5 -5
  3. package/dist/core/config/index.js +1 -1
  4. package/dist/core/config/index.js.map +1 -1
  5. package/dist/core/config/loader.d.ts +1 -1
  6. package/dist/core/config/loader.js +58 -82
  7. package/dist/core/config/loader.js.map +1 -1
  8. package/dist/core/config/schema.d.ts +1 -1
  9. package/dist/core/config/schema.js +52 -111
  10. package/dist/core/config/schema.js.map +1 -1
  11. package/dist/core/config/utils.d.ts +2 -2
  12. package/dist/core/config/utils.js +18 -18
  13. package/dist/core/config/utils.js.map +1 -1
  14. package/dist/core/database/adapters/drizzle.d.ts +1 -1
  15. package/dist/core/database/adapters/drizzle.js +39 -55
  16. package/dist/core/database/adapters/drizzle.js.map +1 -1
  17. package/dist/core/database/adapters/index.d.ts +7 -7
  18. package/dist/core/database/adapters/index.js +11 -11
  19. package/dist/core/database/adapters/index.js.map +1 -1
  20. package/dist/core/database/adapters/mongodb.d.ts +1 -1
  21. package/dist/core/database/adapters/mongodb.js +19 -23
  22. package/dist/core/database/adapters/mongodb.js.map +1 -1
  23. package/dist/core/database/adapters/mysql.d.ts +1 -1
  24. package/dist/core/database/adapters/mysql.js +31 -27
  25. package/dist/core/database/adapters/mysql.js.map +1 -1
  26. package/dist/core/database/adapters/postgresql.d.ts +1 -1
  27. package/dist/core/database/adapters/postgresql.js +27 -35
  28. package/dist/core/database/adapters/postgresql.js.map +1 -1
  29. package/dist/core/database/adapters/redis.d.ts +1 -1
  30. package/dist/core/database/adapters/redis.js +24 -24
  31. package/dist/core/database/adapters/redis.js.map +1 -1
  32. package/dist/core/database/adapters/sqlite.d.ts +1 -1
  33. package/dist/core/database/adapters/sqlite.js +36 -36
  34. package/dist/core/database/adapters/sqlite.js.map +1 -1
  35. package/dist/core/database/index.d.ts +2 -2
  36. package/dist/core/docs/index.d.ts +7 -7
  37. package/dist/core/docs/index.js +13 -15
  38. package/dist/core/docs/index.js.map +1 -1
  39. package/dist/core/docs/openapi-generator.d.ts +5 -5
  40. package/dist/core/docs/openapi-generator.js +93 -94
  41. package/dist/core/docs/openapi-generator.js.map +1 -1
  42. package/dist/core/docs/simple-docs.d.ts +1 -1
  43. package/dist/core/docs/simple-docs.js +25 -28
  44. package/dist/core/docs/simple-docs.js.map +1 -1
  45. package/dist/core/docs/swagger-ui.d.ts +2 -2
  46. package/dist/core/docs/swagger-ui.js +46 -51
  47. package/dist/core/docs/swagger-ui.js.map +1 -1
  48. package/dist/core/docs/zod-to-openapi.d.ts +1 -1
  49. package/dist/core/docs/zod-to-openapi.js +115 -125
  50. package/dist/core/docs/zod-to-openapi.js.map +1 -1
  51. package/dist/core/events/event-bus.d.ts +1 -1
  52. package/dist/core/events/event-bus.js +15 -21
  53. package/dist/core/events/event-bus.js.map +1 -1
  54. package/dist/core/events/index.d.ts +2 -2
  55. package/dist/core/framework.d.ts +5 -5
  56. package/dist/core/framework.js +55 -60
  57. package/dist/core/framework.js.map +1 -1
  58. package/dist/core/http/http-server.d.ts +2 -2
  59. package/dist/core/http/http-server.js +228 -261
  60. package/dist/core/http/http-server.js.map +1 -1
  61. package/dist/core/http/index.d.ts +3 -3
  62. package/dist/core/http/router.d.ts +1 -1
  63. package/dist/core/http/router.js +15 -17
  64. package/dist/core/http/router.js.map +1 -1
  65. package/dist/core/logger/filters.d.ts +1 -1
  66. package/dist/core/logger/filters.js +16 -16
  67. package/dist/core/logger/filters.js.map +1 -1
  68. package/dist/core/logger/index.d.ts +3 -3
  69. package/dist/core/logger/logger.d.ts +1 -1
  70. package/dist/core/logger/logger.js +48 -59
  71. package/dist/core/logger/logger.js.map +1 -1
  72. package/dist/core/logger/outputs.d.ts +4 -4
  73. package/dist/core/logger/outputs.js +16 -20
  74. package/dist/core/logger/outputs.js.map +1 -1
  75. package/dist/core/middleware/built-in/adapters/cache/file.d.ts +1 -1
  76. package/dist/core/middleware/built-in/adapters/cache/file.js +19 -19
  77. package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -1
  78. package/dist/core/middleware/built-in/adapters/cache/index.d.ts +4 -4
  79. package/dist/core/middleware/built-in/adapters/cache/index.js +3 -3
  80. package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -1
  81. package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +1 -1
  82. package/dist/core/middleware/built-in/adapters/cache/memory.js +5 -5
  83. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -1
  84. package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +1 -1
  85. package/dist/core/middleware/built-in/adapters/cache/redis.js +18 -18
  86. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -1
  87. package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +1 -1
  88. package/dist/core/middleware/built-in/adapters/cdn/azure.js +8 -8
  89. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -1
  90. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +1 -1
  91. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +14 -14
  92. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -1
  93. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +1 -1
  94. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +13 -15
  95. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -1
  96. package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +4 -4
  97. package/dist/core/middleware/built-in/adapters/cdn/index.js +3 -3
  98. package/dist/core/middleware/built-in/adapters/index.d.ts +4 -4
  99. package/dist/core/middleware/built-in/auth.d.ts +1 -1
  100. package/dist/core/middleware/built-in/auth.js +14 -14
  101. package/dist/core/middleware/built-in/cache.d.ts +2 -2
  102. package/dist/core/middleware/built-in/cache.js +43 -45
  103. package/dist/core/middleware/built-in/cache.js.map +1 -1
  104. package/dist/core/middleware/built-in/cdn.d.ts +2 -2
  105. package/dist/core/middleware/built-in/cdn.js +27 -29
  106. package/dist/core/middleware/built-in/cdn.js.map +1 -1
  107. package/dist/core/middleware/built-in/cookie.d.ts +2 -2
  108. package/dist/core/middleware/built-in/cookie.js +17 -17
  109. package/dist/core/middleware/built-in/cookie.js.map +1 -1
  110. package/dist/core/middleware/built-in/cors.d.ts +1 -1
  111. package/dist/core/middleware/built-in/cors.js +13 -13
  112. package/dist/core/middleware/built-in/csp.d.ts +1 -1
  113. package/dist/core/middleware/built-in/csp.js +22 -25
  114. package/dist/core/middleware/built-in/csp.js.map +1 -1
  115. package/dist/core/middleware/built-in/csrf.d.ts +1 -1
  116. package/dist/core/middleware/built-in/csrf.js +21 -24
  117. package/dist/core/middleware/built-in/csrf.js.map +1 -1
  118. package/dist/core/middleware/built-in/error-tracker.js +2 -2
  119. package/dist/core/middleware/built-in/index.d.ts +14 -14
  120. package/dist/core/middleware/built-in/performance-monitor.js +2 -2
  121. package/dist/core/middleware/built-in/rate-limit.d.ts +1 -1
  122. package/dist/core/middleware/built-in/rate-limit.js +12 -12
  123. package/dist/core/middleware/built-in/request-logger.js.map +1 -1
  124. package/dist/core/middleware/built-in/session.d.ts +5 -5
  125. package/dist/core/middleware/built-in/session.js +35 -38
  126. package/dist/core/middleware/built-in/session.js.map +1 -1
  127. package/dist/core/middleware/built-in/sse.d.ts +1 -1
  128. package/dist/core/middleware/built-in/sse.js +20 -22
  129. package/dist/core/middleware/built-in/sse.js.map +1 -1
  130. package/dist/core/middleware/built-in/validation.d.ts +1 -1
  131. package/dist/core/middleware/built-in/validation.js +13 -13
  132. package/dist/core/middleware/index.d.ts +5 -5
  133. package/dist/core/middleware/index.js +16 -16
  134. package/dist/core/middleware/index.js.map +1 -1
  135. package/dist/core/modules/auto-discovery.d.ts +2 -2
  136. package/dist/core/modules/auto-discovery.js +12 -13
  137. package/dist/core/modules/auto-discovery.js.map +1 -1
  138. package/dist/core/modules/index.d.ts +2 -2
  139. package/dist/core/modules/index.js.map +1 -1
  140. package/dist/core/modules/modules.d.ts +3 -3
  141. package/dist/core/modules/modules.js +3 -6
  142. package/dist/core/modules/modules.js.map +1 -1
  143. package/dist/core/networking/index.d.ts +2 -2
  144. package/dist/core/networking/index.js.map +1 -1
  145. package/dist/core/networking/service-discovery.d.ts +2 -2
  146. package/dist/core/networking/service-discovery.js +27 -27
  147. package/dist/core/networking/service-discovery.js.map +1 -1
  148. package/dist/core/networking/websocket-manager.d.ts +3 -3
  149. package/dist/core/networking/websocket-manager.js +15 -16
  150. package/dist/core/networking/websocket-manager.js.map +1 -1
  151. package/dist/core/routing/app-integration.d.ts +2 -2
  152. package/dist/core/routing/app-integration.js +13 -13
  153. package/dist/core/routing/app-integration.js.map +1 -1
  154. package/dist/core/routing/index.d.ts +3 -3
  155. package/dist/core/routing/index.js +43 -52
  156. package/dist/core/routing/index.js.map +1 -1
  157. package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
  158. package/dist/core/runtime/aws-lambda-adapter.js +14 -16
  159. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
  160. package/dist/core/runtime/base-adapter.d.ts +2 -2
  161. package/dist/core/runtime/base-adapter.js +11 -12
  162. package/dist/core/runtime/base-adapter.js.map +1 -1
  163. package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
  164. package/dist/core/runtime/cloudflare-workers-adapter.js +20 -21
  165. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
  166. package/dist/core/runtime/index.d.ts +9 -9
  167. package/dist/core/runtime/index.js +4 -4
  168. package/dist/core/runtime/index.js.map +1 -1
  169. package/dist/core/runtime/node-adapter.d.ts +5 -5
  170. package/dist/core/runtime/node-adapter.js +35 -35
  171. package/dist/core/runtime/node-adapter.js.map +1 -1
  172. package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
  173. package/dist/core/runtime/vercel-edge-adapter.js +12 -15
  174. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
  175. package/dist/core/utilities/circuit-breaker.js +6 -6
  176. package/dist/core/utilities/container.d.ts +1 -1
  177. package/dist/core/utilities/container.js +17 -22
  178. package/dist/core/utilities/container.js.map +1 -1
  179. package/dist/core/utilities/hooks.d.ts +3 -3
  180. package/dist/core/utilities/hooks.js +11 -11
  181. package/dist/core/utilities/hooks.js.map +1 -1
  182. package/dist/core/utilities/index.d.ts +4 -4
  183. package/dist/core/validation/index.d.ts +3 -3
  184. package/dist/core/validation/index.js +15 -15
  185. package/dist/core/validation/index.js.map +1 -1
  186. package/dist/index.d.ts +41 -30
  187. package/dist/index.js +50 -1
  188. package/dist/index.js.map +1 -1
  189. package/dist/moro.d.ts +14 -14
  190. package/dist/moro.js +79 -88
  191. package/dist/moro.js.map +1 -1
  192. package/dist/types/cache.d.ts +1 -1
  193. package/dist/types/core.d.ts +2 -2
  194. package/dist/types/events.d.ts +19 -19
  195. package/dist/types/hooks.d.ts +1 -1
  196. package/dist/types/http.d.ts +2 -2
  197. package/dist/types/logger.d.ts +3 -3
  198. package/dist/types/module.d.ts +2 -2
  199. package/dist/types/runtime.d.ts +2 -2
  200. package/dist/types/session.d.ts +4 -4
  201. package/package.json +183 -165
  202. package/src/core/config/index.ts +7 -9
  203. package/src/core/config/loader.ts +86 -158
  204. package/src/core/config/schema.ts +59 -122
  205. package/src/core/config/utils.ts +27 -45
  206. package/src/core/database/adapters/drizzle.ts +53 -75
  207. package/src/core/database/adapters/index.ts +26 -29
  208. package/src/core/database/adapters/mongodb.ts +31 -54
  209. package/src/core/database/adapters/mysql.ts +40 -50
  210. package/src/core/database/adapters/postgresql.ts +32 -42
  211. package/src/core/database/adapters/redis.ts +31 -36
  212. package/src/core/database/adapters/sqlite.ts +43 -51
  213. package/src/core/database/index.ts +2 -2
  214. package/src/core/docs/index.ts +25 -39
  215. package/src/core/docs/openapi-generator.ts +104 -117
  216. package/src/core/docs/simple-docs.ts +29 -39
  217. package/src/core/docs/swagger-ui.ts +57 -76
  218. package/src/core/docs/zod-to-openapi.ts +121 -153
  219. package/src/core/events/event-bus.ts +22 -45
  220. package/src/core/events/index.ts +2 -2
  221. package/src/core/framework.ts +119 -197
  222. package/src/core/http/http-server.ts +260 -360
  223. package/src/core/http/index.ts +3 -8
  224. package/src/core/http/router.ts +19 -31
  225. package/src/core/logger/filters.ts +19 -22
  226. package/src/core/logger/index.ts +3 -3
  227. package/src/core/logger/logger.ts +59 -100
  228. package/src/core/logger/outputs.ts +23 -27
  229. package/src/core/middleware/built-in/adapters/cache/file.ts +21 -23
  230. package/src/core/middleware/built-in/adapters/cache/index.ts +11 -14
  231. package/src/core/middleware/built-in/adapters/cache/memory.ts +7 -7
  232. package/src/core/middleware/built-in/adapters/cache/redis.ts +21 -24
  233. package/src/core/middleware/built-in/adapters/cdn/azure.ts +10 -18
  234. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +19 -36
  235. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +17 -26
  236. package/src/core/middleware/built-in/adapters/cdn/index.ts +10 -10
  237. package/src/core/middleware/built-in/adapters/index.ts +4 -4
  238. package/src/core/middleware/built-in/auth.ts +16 -16
  239. package/src/core/middleware/built-in/cache.ts +50 -67
  240. package/src/core/middleware/built-in/cdn.ts +34 -61
  241. package/src/core/middleware/built-in/cookie.ts +23 -28
  242. package/src/core/middleware/built-in/cors.ts +17 -17
  243. package/src/core/middleware/built-in/csp.ts +25 -31
  244. package/src/core/middleware/built-in/csrf.ts +24 -29
  245. package/src/core/middleware/built-in/error-tracker.ts +3 -3
  246. package/src/core/middleware/built-in/index.ts +28 -28
  247. package/src/core/middleware/built-in/performance-monitor.ts +4 -4
  248. package/src/core/middleware/built-in/rate-limit.ts +15 -15
  249. package/src/core/middleware/built-in/request-logger.ts +1 -3
  250. package/src/core/middleware/built-in/session.ts +47 -70
  251. package/src/core/middleware/built-in/sse.ts +23 -28
  252. package/src/core/middleware/built-in/validation.ts +15 -15
  253. package/src/core/middleware/index.ts +26 -37
  254. package/src/core/modules/auto-discovery.ts +21 -31
  255. package/src/core/modules/index.ts +2 -5
  256. package/src/core/modules/modules.ts +11 -20
  257. package/src/core/networking/index.ts +2 -6
  258. package/src/core/networking/service-discovery.ts +41 -61
  259. package/src/core/networking/websocket-manager.ts +27 -36
  260. package/src/core/routing/app-integration.ts +19 -32
  261. package/src/core/routing/index.ts +57 -88
  262. package/src/core/runtime/aws-lambda-adapter.ts +20 -30
  263. package/src/core/runtime/base-adapter.ts +17 -27
  264. package/src/core/runtime/cloudflare-workers-adapter.ts +28 -42
  265. package/src/core/runtime/index.ts +21 -33
  266. package/src/core/runtime/node-adapter.ts +59 -73
  267. package/src/core/runtime/vercel-edge-adapter.ts +18 -29
  268. package/src/core/utilities/circuit-breaker.ts +7 -7
  269. package/src/core/utilities/container.ts +52 -89
  270. package/src/core/utilities/hooks.ts +17 -23
  271. package/src/core/utilities/index.ts +4 -4
  272. package/src/core/validation/index.ts +25 -51
  273. package/src/index.ts +104 -60
  274. package/src/moro.ts +119 -191
  275. package/src/types/cache.ts +1 -1
  276. package/src/types/core.ts +2 -2
  277. package/src/types/database.ts +2 -10
  278. package/src/types/events.ts +23 -31
  279. package/src/types/hooks.ts +1 -1
  280. package/src/types/http.ts +5 -8
  281. package/src/types/logger.ts +7 -23
  282. package/src/types/module.ts +2 -2
  283. package/src/types/runtime.ts +6 -21
  284. package/src/types/session.ts +4 -4
@@ -1,11 +1,11 @@
1
1
  // Functional Validation System for Moro Framework
2
2
  // Elegant, type-safe validation using Zod with functional composition
3
3
 
4
- import { z, ZodSchema, ZodError } from "zod";
5
- import { HttpRequest, HttpResponse } from "../http";
6
- import { createFrameworkLogger } from "../logger";
4
+ import { z, ZodSchema, ZodError } from 'zod';
5
+ import { HttpRequest, HttpResponse } from '../http';
6
+ import { createFrameworkLogger } from '../logger';
7
7
 
8
- const logger = createFrameworkLogger("Validation");
8
+ const logger = createFrameworkLogger('Validation');
9
9
 
10
10
  // Validation configuration interface
11
11
  export interface ValidationConfig {
@@ -39,10 +39,7 @@ export interface ValidatedRequest<T = any> extends HttpRequest {
39
39
  // Main validation wrapper function
40
40
  export function validate<TBody = any, TQuery = any, TParams = any>(
41
41
  config: ValidationConfig,
42
- handler: (
43
- req: ValidatedRequest<TBody>,
44
- res: HttpResponse,
45
- ) => any | Promise<any>,
42
+ handler: (req: ValidatedRequest<TBody>, res: HttpResponse) => any | Promise<any>
46
43
  ) {
47
44
  return async (req: HttpRequest, res: HttpResponse): Promise<any> => {
48
45
  try {
@@ -50,9 +47,9 @@ export function validate<TBody = any, TQuery = any, TParams = any>(
50
47
 
51
48
  // Validate body
52
49
  if (config.body) {
53
- const result = await validateField(config.body, req.body, "body");
50
+ const result = await validateField(config.body, req.body, 'body');
54
51
  if (!result.success) {
55
- return sendValidationError(res, result.errors!, "body");
52
+ return sendValidationError(res, result.errors!, 'body');
56
53
  }
57
54
  validatedReq.validatedBody = result.data;
58
55
  validatedReq.body = result.data; // Also update original body for compatibility
@@ -60,9 +57,9 @@ export function validate<TBody = any, TQuery = any, TParams = any>(
60
57
 
61
58
  // Validate query parameters
62
59
  if (config.query) {
63
- const result = await validateField(config.query, req.query, "query");
60
+ const result = await validateField(config.query, req.query, 'query');
64
61
  if (!result.success) {
65
- return sendValidationError(res, result.errors!, "query");
62
+ return sendValidationError(res, result.errors!, 'query');
66
63
  }
67
64
  validatedReq.validatedQuery = result.data;
68
65
  validatedReq.query = result.data; // Also update original query for compatibility
@@ -70,9 +67,9 @@ export function validate<TBody = any, TQuery = any, TParams = any>(
70
67
 
71
68
  // Validate path parameters
72
69
  if (config.params) {
73
- const result = await validateField(config.params, req.params, "params");
70
+ const result = await validateField(config.params, req.params, 'params');
74
71
  if (!result.success) {
75
- return sendValidationError(res, result.errors!, "params");
72
+ return sendValidationError(res, result.errors!, 'params');
76
73
  }
77
74
  validatedReq.validatedParams = result.data;
78
75
  validatedReq.params = result.data; // Also update original params for compatibility
@@ -80,18 +77,14 @@ export function validate<TBody = any, TQuery = any, TParams = any>(
80
77
 
81
78
  // Validate headers
82
79
  if (config.headers) {
83
- const result = await validateField(
84
- config.headers,
85
- req.headers,
86
- "headers",
87
- );
80
+ const result = await validateField(config.headers, req.headers, 'headers');
88
81
  if (!result.success) {
89
- return sendValidationError(res, result.errors!, "headers");
82
+ return sendValidationError(res, result.errors!, 'headers');
90
83
  }
91
84
  validatedReq.validatedHeaders = result.data;
92
85
  }
93
86
 
94
- logger.debug("Request validation passed", "ValidationSuccess", {
87
+ logger.debug('Request validation passed', 'ValidationSuccess', {
95
88
  path: req.path,
96
89
  method: req.method,
97
90
  validatedFields: Object.keys(config),
@@ -100,7 +93,7 @@ export function validate<TBody = any, TQuery = any, TParams = any>(
100
93
  // Execute the handler with validated request
101
94
  return await handler(validatedReq, res);
102
95
  } catch (error) {
103
- logger.error("Validation wrapper error", "ValidationError", {
96
+ logger.error('Validation wrapper error', 'ValidationError', {
104
97
  error: error instanceof Error ? error.message : String(error),
105
98
  path: req.path,
106
99
  method: req.method,
@@ -109,7 +102,7 @@ export function validate<TBody = any, TQuery = any, TParams = any>(
109
102
  if (!res.headersSent) {
110
103
  res.status(500).json({
111
104
  success: false,
112
- error: "Internal validation error",
105
+ error: 'Internal validation error',
113
106
  requestId: req.requestId,
114
107
  });
115
108
  }
@@ -121,7 +114,7 @@ export function validate<TBody = any, TQuery = any, TParams = any>(
121
114
  async function validateField(
122
115
  schema: ZodSchema,
123
116
  data: any,
124
- fieldName: string,
117
+ fieldName: string
125
118
  ): Promise<ValidationResult> {
126
119
  try {
127
120
  const validated = await schema.parseAsync(data);
@@ -132,12 +125,12 @@ async function validateField(
132
125
  } catch (error) {
133
126
  if (error instanceof ZodError) {
134
127
  const errors: ValidationError[] = error.issues.map((err: any) => ({
135
- field: err.path.length > 0 ? err.path.join(".") : fieldName,
128
+ field: err.path.length > 0 ? err.path.join('.') : fieldName,
136
129
  message: err.message,
137
130
  code: err.code,
138
131
  }));
139
132
 
140
- logger.debug("Field validation failed", "ValidationFailed", {
133
+ logger.debug('Field validation failed', 'ValidationFailed', {
141
134
  field: fieldName,
142
135
  errors: errors.length,
143
136
  details: errors,
@@ -155,12 +148,8 @@ async function validateField(
155
148
  }
156
149
 
157
150
  // Send validation error response
158
- function sendValidationError(
159
- res: HttpResponse,
160
- errors: ValidationError[],
161
- field: string,
162
- ): void {
163
- logger.debug("Sending validation error response", "ValidationResponse", {
151
+ function sendValidationError(res: HttpResponse, errors: ValidationError[], field: string): void {
152
+ logger.debug('Sending validation error response', 'ValidationResponse', {
164
153
  field,
165
154
  errorCount: errors.length,
166
155
  });
@@ -175,34 +164,19 @@ function sendValidationError(
175
164
 
176
165
  // Convenience functions for single-field validation
177
166
  export function body<T>(schema: ZodSchema<T>) {
178
- return (
179
- handler: (
180
- req: ValidatedRequest<T>,
181
- res: HttpResponse,
182
- ) => any | Promise<any>,
183
- ) => {
167
+ return (handler: (req: ValidatedRequest<T>, res: HttpResponse) => any | Promise<any>) => {
184
168
  return validate({ body: schema }, handler);
185
169
  };
186
170
  }
187
171
 
188
172
  export function query<T>(schema: ZodSchema<T>) {
189
- return (
190
- handler: (
191
- req: ValidatedRequest<any>,
192
- res: HttpResponse,
193
- ) => any | Promise<any>,
194
- ) => {
173
+ return (handler: (req: ValidatedRequest<any>, res: HttpResponse) => any | Promise<any>) => {
195
174
  return validate({ query: schema }, handler);
196
175
  };
197
176
  }
198
177
 
199
178
  export function params<T>(schema: ZodSchema<T>) {
200
- return (
201
- handler: (
202
- req: ValidatedRequest<any>,
203
- res: HttpResponse,
204
- ) => any | Promise<any>,
205
- ) => {
179
+ return (handler: (req: ValidatedRequest<any>, res: HttpResponse) => any | Promise<any>) => {
206
180
  return validate({ params: schema }, handler);
207
181
  };
208
182
  }
@@ -213,4 +187,4 @@ export function combineSchemas(schemas: ValidationConfig): ValidationConfig {
213
187
  }
214
188
 
215
189
  // Re-export Zod for convenience
216
- export { z } from "zod";
190
+ export { z } from 'zod';
package/src/index.ts CHANGED
@@ -1,14 +1,15 @@
1
1
  // MoroJS Framework - Main Entry Point
2
2
  export {
3
3
  Moro,
4
+ Moro as MoroCore,
4
5
  createApp,
5
6
  createAppNode,
6
7
  createAppEdge,
7
8
  createAppLambda,
8
9
  createAppWorker,
9
- } from "./moro";
10
+ } from './moro';
10
11
 
11
- export type { MoroOptions } from "./core/framework";
12
+ export type { MoroOptions } from './core/framework';
12
13
 
13
14
  // Runtime system exports
14
15
  export type {
@@ -16,7 +17,7 @@ export type {
16
17
  RuntimeAdapter,
17
18
  RuntimeConfig,
18
19
  RuntimeHttpResponse,
19
- } from "./types/runtime";
20
+ } from './types/runtime';
20
21
 
21
22
  export {
22
23
  NodeRuntimeAdapter,
@@ -28,60 +29,77 @@ export {
28
29
  createEdgeHandler,
29
30
  createLambdaHandler,
30
31
  createWorkerHandler,
31
- } from "./core/runtime";
32
+ } from './core/runtime';
32
33
 
33
34
  // Runtime-specific types
34
- export type {
35
- LambdaEvent,
36
- LambdaContext,
37
- LambdaResponse,
38
- } from "./core/runtime/aws-lambda-adapter";
39
- export type {
40
- WorkersEnv,
41
- WorkersContext,
42
- } from "./core/runtime/cloudflare-workers-adapter";
35
+ export type { LambdaEvent, LambdaContext, LambdaResponse } from './core/runtime/aws-lambda-adapter';
36
+ export type { WorkersEnv, WorkersContext } from './core/runtime/cloudflare-workers-adapter';
43
37
 
44
38
  // Core exports
45
- export { MoroHttpServer, middleware as httpMiddleware } from "./core/http";
39
+ export { MoroHttpServer, middleware as httpMiddleware } from './core/http';
40
+ export { builtInMiddleware, simpleMiddleware } from './core/middleware/built-in';
41
+
42
+ // Networking System
46
43
  export {
47
- builtInMiddleware,
48
- simpleMiddleware,
49
- } from "./core/middleware/built-in";
50
- export { WebSocketManager } from "./core/networking";
51
- export { Container } from "./core/utilities";
52
- export { createFrameworkLogger, logger } from "./core/logger";
44
+ WebSocketManager,
45
+ ServiceRegistry,
46
+ ServiceInfo,
47
+ ServiceDiscoveryOptions,
48
+ } from './core/networking';
53
49
 
54
- // Validation System (Zod-based)
50
+ // Utilities and Container System
55
51
  export {
56
- validate,
57
- body,
58
- query,
59
- params,
60
- combineSchemas,
61
- z,
62
- } from "./core/validation";
52
+ Container,
53
+ FunctionalContainer,
54
+ ServiceScope,
55
+ ServiceLifecycle,
56
+ withLogging,
57
+ withCaching,
58
+ withRetry,
59
+ withTimeout,
60
+ CircuitBreaker,
61
+ HookManager,
62
+ HOOK_EVENTS,
63
+ middleware,
64
+ } from './core/utilities';
65
+
66
+ // Event System
67
+ export { MoroEventBus } from './core/events';
68
+ export type {
69
+ EventContext,
70
+ EventPayload,
71
+ EventBusOptions,
72
+ ModuleEventBus,
73
+ GlobalEventBus,
74
+ EventMetrics,
75
+ SystemEvents,
76
+ EventHandler,
77
+ } from './types/events';
78
+
79
+ // Logger System
80
+ export { createFrameworkLogger, logger } from './core/logger';
81
+
82
+ // Validation System (Zod-based)
83
+ export { validate, body, query, params, combineSchemas, z } from './core/validation';
63
84
  export type {
64
85
  ValidationConfig,
65
86
  ValidationResult,
66
87
  ValidationError,
67
88
  ValidatedRequest,
68
- } from "./core/validation";
89
+ } from './core/validation';
69
90
 
70
91
  // Module System
71
- export { defineModule } from "./core/modules";
72
- export type {
73
- ModuleDefinition,
74
- ModuleRoute,
75
- ModuleSocket,
76
- ModuleConfig,
77
- } from "./types/module";
92
+ export {
93
+ defineModule,
94
+ ModuleLoader,
95
+ ModuleDiscovery,
96
+ autoDiscoverModuleDirectories,
97
+ } from './core/modules';
98
+ export type { ModuleDefinition, ModuleRoute, ModuleSocket, ModuleConfig } from './types/module';
78
99
 
79
100
  // Intelligent Routing System
80
- export { createRoute, defineRoute, EXECUTION_PHASES } from "./core/routing";
81
- export {
82
- IntelligentRoutingManager,
83
- RouteRegistry,
84
- } from "./core/routing/app-integration";
101
+ export { createRoute, defineRoute, EXECUTION_PHASES } from './core/routing';
102
+ export { IntelligentRoutingManager, RouteRegistry } from './core/routing/app-integration';
85
103
  export type {
86
104
  RouteBuilder,
87
105
  RouteSchema,
@@ -92,29 +110,55 @@ export type {
92
110
  CacheConfig,
93
111
  MiddlewarePhases,
94
112
  ExecutionPhase,
95
- } from "./core/routing";
113
+ } from './core/routing';
96
114
 
97
- // Additional exports if needed
98
- // export { Moro as MoroCore } from './core/framework';
115
+ // Documentation System
116
+ export {
117
+ DocumentationSystem,
118
+ AppDocumentationManager,
119
+ createDocumentationSystem,
120
+ generateDocsFromIntelligentRoutes,
121
+ } from './core/docs';
122
+ export type { DocsConfig } from './core/docs';
123
+
124
+ // Configuration utilities
125
+ export {
126
+ getConfig,
127
+ createModuleConfig,
128
+ getEnvVar,
129
+ getEnvArray,
130
+ getEnvJson,
131
+ isDevelopment,
132
+ isProduction,
133
+ isStaging,
134
+ requireEnvVars,
135
+ envVar,
136
+ getConfigValue,
137
+ } from './core/config/utils';
138
+
139
+ export { initializeConfig, getGlobalConfig, isConfigInitialized } from './core/config';
140
+
141
+ // Middleware System
142
+ export { MiddlewareManager } from './core/middleware';
143
+ export type { MiddlewareInterface, MoroMiddleware } from './core/middleware';
99
144
 
100
145
  // Types
101
- export type * from "./types/core";
102
- export type * from "./types/http";
103
- export type * from "./types/hooks";
104
- export type * from "./types/cache";
105
- export type * from "./types/cdn";
106
- export type * from "./types/database";
146
+ export type * from './types/core';
147
+ export type * from './types/http';
148
+ export type * from './types/hooks';
149
+ export type * from './types/cache';
150
+ export type * from './types/cdn';
151
+ export type * from './types/database';
152
+ export type * from './types/logger';
153
+ export type * from './types/session';
154
+ export type * from './types/discovery';
107
155
 
108
156
  // Adapters
109
- export * from "./core/middleware/built-in/adapters";
110
- export * from "./core/database/adapters";
157
+ export * from './core/middleware/built-in/adapters';
158
+ export * from './core/database/adapters';
111
159
 
112
160
  // Re-export commonly used types for convenience
113
- export type { CacheAdapter, CacheOptions, CacheStrategy } from "./types/cache";
114
- export type { CDNAdapter, CDNOptions } from "./types/cdn";
115
- export type {
116
- DatabaseAdapter,
117
- DatabaseTransaction,
118
- DatabaseConfig,
119
- } from "./types/database";
120
- export type { CookieOptions } from "./types/http";
161
+ export type { CacheAdapter, CacheOptions, CacheStrategy } from './types/cache';
162
+ export type { CDNAdapter, CDNOptions } from './types/cdn';
163
+ export type { DatabaseAdapter, DatabaseTransaction, DatabaseConfig } from './types/database';
164
+ export type { CookieOptions } from './types/http';