@morojs/moro 1.0.0 → 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 (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 +31 -30
  187. package/dist/index.js +28 -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 +180 -164
  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 +58 -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
@@ -15,7 +15,7 @@ export interface EventBusOptions {
15
15
  maxListeners?: number;
16
16
  enablePersistence?: boolean;
17
17
  enableMetrics?: boolean;
18
- isolation?: "none" | "module" | "strict";
18
+ isolation?: 'none' | 'module' | 'strict';
19
19
  }
20
20
  export interface ModuleEventBus {
21
21
  emit<T = any>(event: string, data: T): Promise<boolean>;
@@ -40,75 +40,75 @@ export interface EventMetrics {
40
40
  errorRate: number;
41
41
  }
42
42
  export type SystemEvents = {
43
- "framework:initialized": {
43
+ 'framework:initialized': {
44
44
  options: any;
45
45
  };
46
- "framework:shutdown": {
46
+ 'framework:shutdown': {
47
47
  graceful: boolean;
48
48
  };
49
- "module:loading": {
49
+ 'module:loading': {
50
50
  moduleId: string;
51
51
  path?: string;
52
52
  };
53
- "module:loaded": {
53
+ 'module:loaded': {
54
54
  moduleId: string;
55
55
  version: string;
56
56
  };
57
- "module:unloaded": {
57
+ 'module:unloaded': {
58
58
  moduleId: string;
59
59
  };
60
- "middleware:registered": {
60
+ 'middleware:registered': {
61
61
  name: string;
62
62
  type: string;
63
63
  };
64
- "middleware:installed": {
64
+ 'middleware:installed': {
65
65
  name: string;
66
66
  options?: any;
67
67
  };
68
- "database:connected": {
68
+ 'database:connected': {
69
69
  adapter: string;
70
70
  config: any;
71
71
  };
72
- "database:disconnected": {
72
+ 'database:disconnected': {
73
73
  adapter: string;
74
74
  };
75
- "server:starting": {
75
+ 'server:starting': {
76
76
  port: number;
77
77
  };
78
- "server:started": {
78
+ 'server:started': {
79
79
  port: number;
80
80
  pid: number;
81
81
  };
82
- "server:stopping": {
82
+ 'server:stopping': {
83
83
  graceful: boolean;
84
84
  };
85
- "request:start": {
85
+ 'request:start': {
86
86
  method: string;
87
87
  path: string;
88
88
  requestId: string;
89
89
  };
90
- "request:end": {
90
+ 'request:end': {
91
91
  method: string;
92
92
  path: string;
93
93
  requestId: string;
94
94
  statusCode: number;
95
95
  duration: number;
96
96
  };
97
- "websocket:connected": {
97
+ 'websocket:connected': {
98
98
  namespace: string;
99
99
  socketId: string;
100
100
  };
101
- "websocket:disconnected": {
101
+ 'websocket:disconnected': {
102
102
  namespace: string;
103
103
  socketId: string;
104
104
  reason: string;
105
105
  };
106
- "error:handled": {
106
+ 'error:handled': {
107
107
  error: Error;
108
108
  context: string;
109
109
  requestId?: string;
110
110
  };
111
- "error:unhandled": {
111
+ 'error:unhandled': {
112
112
  error: Error;
113
113
  context: string;
114
114
  };
@@ -1,4 +1,4 @@
1
- import { HttpRequest, HttpResponse } from "./http";
1
+ import { HttpRequest, HttpResponse } from './http';
2
2
  export type HookFunction = (...args: any[]) => Promise<any> | any;
3
3
  export interface HookContext {
4
4
  request?: HttpRequest;
@@ -1,4 +1,4 @@
1
- import { IncomingMessage, ServerResponse } from "http";
1
+ import { IncomingMessage, ServerResponse } from 'http';
2
2
  export interface HttpRequest extends IncomingMessage {
3
3
  params: Record<string, string>;
4
4
  query: Record<string, string>;
@@ -16,7 +16,7 @@ export interface CookieOptions {
16
16
  expires?: Date;
17
17
  httpOnly?: boolean;
18
18
  secure?: boolean;
19
- sameSite?: "strict" | "lax" | "none";
19
+ sameSite?: 'strict' | 'lax' | 'none';
20
20
  domain?: string;
21
21
  path?: string;
22
22
  }
@@ -1,4 +1,4 @@
1
- export type LogLevel = "debug" | "info" | "warn" | "error" | "fatal";
1
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';
2
2
  export interface LogEntry {
3
3
  timestamp: Date;
4
4
  level: LogLevel;
@@ -23,7 +23,7 @@ export interface LoggerOptions {
23
23
  enableContext?: boolean;
24
24
  enableMetadata?: boolean;
25
25
  enablePerformance?: boolean;
26
- format?: "pretty" | "json" | "compact";
26
+ format?: 'pretty' | 'json' | 'compact';
27
27
  outputs?: LogOutput[];
28
28
  filters?: LogFilter[];
29
29
  maxEntries?: number;
@@ -32,7 +32,7 @@ export interface LogOutput {
32
32
  name: string;
33
33
  write: (entry: LogEntry) => Promise<void> | void;
34
34
  level?: LogLevel;
35
- format?: "pretty" | "json" | "compact";
35
+ format?: 'pretty' | 'json' | 'compact';
36
36
  }
37
37
  export interface LogFilter {
38
38
  name: string;
@@ -1,5 +1,5 @@
1
1
  export interface ModuleRoute {
2
- method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
2
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
3
3
  path: string;
4
4
  handler: (req: any, res: any) => any | Promise<any>;
5
5
  validation?: any;
@@ -58,7 +58,7 @@ export interface ModuleConfig {
58
58
  socketHandlers?: Record<string, Function>;
59
59
  }
60
60
  export interface InternalRouteDefinition {
61
- method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
61
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
62
62
  path: string;
63
63
  handler: string;
64
64
  middleware?: string[];
@@ -1,5 +1,5 @@
1
- import { HttpRequest, HttpResponse } from "./http";
2
- export type RuntimeType = "node" | "vercel-edge" | "aws-lambda" | "cloudflare-workers";
1
+ import { HttpRequest, HttpResponse } from './http';
2
+ export type RuntimeType = 'node' | 'vercel-edge' | 'aws-lambda' | 'cloudflare-workers';
3
3
  export interface RuntimeRequest {
4
4
  method: string;
5
5
  url: string;
@@ -15,12 +15,12 @@ export interface SessionInstance {
15
15
  regenerate(): Promise<string>;
16
16
  touch(): Promise<void>;
17
17
  readonly sessionID: string;
18
- readonly cookie?: SessionData["cookie"];
18
+ readonly cookie?: SessionData['cookie'];
19
19
  readonly isNew?: boolean;
20
20
  readonly isModified?: boolean;
21
21
  }
22
22
  export interface SessionOptions {
23
- store?: "memory" | "redis" | "file" | any;
23
+ store?: 'memory' | 'redis' | 'file' | any;
24
24
  storeOptions?: {
25
25
  host?: string;
26
26
  port?: number;
@@ -40,12 +40,12 @@ export interface SessionOptions {
40
40
  expires?: Date;
41
41
  httpOnly?: boolean;
42
42
  secure?: boolean;
43
- sameSite?: "strict" | "lax" | "none";
43
+ sameSite?: 'strict' | 'lax' | 'none';
44
44
  domain?: string;
45
45
  path?: string;
46
46
  };
47
47
  proxy?: boolean;
48
- unset?: "destroy" | "keep";
48
+ unset?: 'destroy' | 'keep';
49
49
  }
50
50
  declare global {
51
51
  namespace Express {
package/package.json CHANGED
@@ -1,176 +1,192 @@
1
1
  {
2
- "name": "@morojs/moro",
3
- "version": "1.0.0",
4
- "description": "High-performance Node.js framework with intelligent routing, automatic middleware ordering, type-safe Zod validation, and functional architecture",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "exports": {
8
- ".": {
9
- "development": "./src/index.ts",
10
- "import": "./dist/index.js",
11
- "require": "./dist/index.js",
12
- "types": "./dist/index.d.ts"
13
- }
14
- },
15
- "scripts": {
16
- "build": "tsc",
17
- "dev": "ts-node-dev --respawn --transpile-only --ignore-watch node_modules src/index.ts",
18
- "dev:watch": "tsc --watch",
19
- "clean": "rm -rf dist",
20
- "prepublish": "npm run build",
21
- "test": "jest --detectOpenHandles",
22
- "test:watch": "jest --watch",
23
- "test:coverage": "jest --coverage --detectOpenHandles",
24
- "test:unit": "jest --testPathPatterns=unit --detectOpenHandles",
25
- "test:integration": "jest --testPathPatterns=integration --detectOpenHandles",
26
- "test:e2e": "jest --testPathPatterns=e2e --detectOpenHandles --testTimeout=30000",
27
- "test:debug": "jest --detectOpenHandles --verbose",
28
- "test:ci": "jest --coverage --watchAll=false --ci --forceExit",
29
- "test:force": "jest --forceExit",
30
- "test:all": "npm run test:unit && npm run test:integration && npm run test:e2e",
31
- "lint": "eslint src --ext .ts",
32
- "lint:fix": "eslint src --ext .ts --fix",
33
- "format": "prettier --write \"src/**/*.ts\"",
2
+ "name": "@morojs/moro",
3
+ "version": "1.0.1",
4
+ "description": "High-performance Node.js framework with intelligent routing, automatic middleware ordering, type-safe Zod validation, and functional architecture",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "development": "./src/index.ts",
10
+ "import": "./dist/index.js",
11
+ "require": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "dev": "ts-node-dev --respawn --transpile-only --ignore-watch node_modules src/index.ts",
18
+ "dev:watch": "tsc --watch",
19
+ "clean": "rm -rf dist",
20
+ "prepare": "husky",
21
+ "prepublish": "npm run build",
22
+ "test": "jest --detectOpenHandles",
23
+ "test:watch": "jest --watch",
24
+ "test:coverage": "jest --coverage --detectOpenHandles",
25
+ "test:unit": "jest --testPathPatterns=unit --detectOpenHandles",
26
+ "test:integration": "jest --testPathPatterns=integration --detectOpenHandles",
27
+ "test:e2e": "jest --testPathPatterns=e2e --detectOpenHandles --testTimeout=30000",
28
+ "test:debug": "jest --detectOpenHandles --verbose",
29
+ "test:ci": "jest --coverage --watchAll=false --ci --forceExit",
30
+ "test:force": "jest --forceExit",
31
+ "test:all": "npm run test:unit && npm run test:integration && npm run test:e2e",
32
+ "lint": "eslint src --ext .ts",
33
+ "lint:fix": "eslint src --ext .ts --fix",
34
+ "format": "prettier --write \"src/**/*.ts\"",
34
35
  "format:check": "prettier --check \"src/**/*.ts\"",
35
- "docs:build": "typedoc --out docs src/index.ts",
36
- "docs:serve": "http-server docs -p 8080"
36
+ "lint-staged": "lint-staged",
37
+ "docs:build": "typedoc --out docs src/index.ts",
38
+ "docs:serve": "http-server docs -p 8080"
39
+ },
40
+ "keywords": [
41
+ "nodejs",
42
+ "typescript",
43
+ "framework",
44
+ "http-server",
45
+ "websockets",
46
+ "intelligent-routing",
47
+ "circuit-breaker",
48
+ "rate-limiting",
49
+ "dependency-injection",
50
+ "mysql",
51
+ "enterprise",
52
+ "high-performance",
53
+ "native",
54
+ "functional",
55
+ "zod",
56
+ "validation",
57
+ "moro",
58
+ "api"
59
+ ],
60
+ "author": "Moro Framework Team",
61
+ "license": "MIT",
62
+ "homepage": "https://morojs.com",
63
+ "repository": {
64
+ "type": "git",
65
+ "url": "git+https://github.com/Moro-JS/moro.git"
66
+ },
67
+ "bugs": {
68
+ "url": "https://github.com/Moro-JS/moro/issues"
69
+ },
70
+ "engines": {
71
+ "node": ">=18.0.0"
72
+ },
73
+ "dependencies": {
74
+ "socket.io": "^4.8.1",
75
+ "zod": "^4.1.5"
76
+ },
77
+ "peerDependencies": {
78
+ "better-sqlite3": "^12.2.0",
79
+ "drizzle-orm": "^0.44.5",
80
+ "ioredis": "^5.7.0",
81
+ "mongodb": "^6.19.0",
82
+ "mysql2": "^3.14.5",
83
+ "pg": "^8.16.3",
84
+ "swagger-ui-dist": "^5.28.1",
85
+ "ts-node": "^10.9.1"
86
+ },
87
+ "peerDependenciesMeta": {
88
+ "mysql2": {
89
+ "optional": true
37
90
  },
38
- "keywords": [
39
- "nodejs",
40
- "typescript",
41
- "framework",
42
- "http-server",
43
- "websockets",
44
- "intelligent-routing",
45
- "circuit-breaker",
46
- "rate-limiting",
47
- "dependency-injection",
48
- "mysql",
49
- "enterprise",
50
- "high-performance",
51
- "native",
52
- "functional",
53
- "zod",
54
- "validation",
55
- "moro",
56
- "api"
57
- ],
58
- "author": "Moro Framework Team",
59
- "license": "MIT",
60
- "homepage": "https://morojs.com",
61
- "repository": {
62
- "type": "git",
63
- "url": "git+https://github.com/Moro-JS/moro.git"
91
+ "swagger-ui-dist": {
92
+ "optional": true
64
93
  },
65
- "bugs": {
66
- "url": "https://github.com/Moro-JS/moro/issues"
94
+ "ts-node": {
95
+ "optional": true
67
96
  },
68
- "engines": {
69
- "node": ">=18.0.0"
97
+ "pg": {
98
+ "optional": true
70
99
  },
71
- "dependencies": {
72
- "socket.io": "^4.8.1",
73
- "zod": "^4.1.5"
100
+ "better-sqlite3": {
101
+ "optional": true
74
102
  },
75
- "peerDependencies": {
76
- "better-sqlite3": "^12.2.0",
77
- "drizzle-orm": "^0.44.5",
78
- "ioredis": "^5.7.0",
79
- "mongodb": "^6.19.0",
80
- "mysql2": "^3.14.5",
81
- "pg": "^8.16.3",
82
- "swagger-ui-dist": "^5.28.1",
83
- "ts-node": "^10.9.1"
103
+ "mongodb": {
104
+ "optional": true
84
105
  },
85
- "peerDependenciesMeta": {
86
- "mysql2": {
87
- "optional": true
88
- },
89
- "swagger-ui-dist": {
90
- "optional": true
91
- },
92
- "ts-node": {
93
- "optional": true
94
- },
95
- "pg": {
96
- "optional": true
97
- },
98
- "better-sqlite3": {
99
- "optional": true
100
- },
101
- "mongodb": {
102
- "optional": true
103
- },
104
- "ioredis": {
105
- "optional": true
106
- },
107
- "drizzle-orm": {
108
- "optional": true
109
- }
106
+ "ioredis": {
107
+ "optional": true
110
108
  },
111
- "devDependencies": {
112
- "@eslint/js": "^9.18.0",
113
- "@jest/globals": "^30.1.2",
114
- "@types/jest": "^30.0.0",
115
- "@types/node": "^24.3.1",
116
- "@types/supertest": "^6.0.2",
117
- "@typescript-eslint/eslint-plugin": "^8.18.2",
118
- "@typescript-eslint/parser": "^8.18.2",
119
- "depcheck": "^1.4.7",
120
- "eslint": "^9.35.0",
121
- "eslint-config-prettier": "^10.1.8",
122
- "eslint-plugin-prettier": "^5.2.1",
123
- "http-server": "^14.1.1",
124
- "jest": "^30.1.3",
125
- "prettier": "^3.4.2",
126
- "supertest": "^7.0.0",
127
- "ts-jest": "^29.4.1",
128
- "ts-node-dev": "^2.0.0",
129
- "typedoc": "^0.28.12",
130
- "typescript": "^5.9.2"
109
+ "drizzle-orm": {
110
+ "optional": true
111
+ }
112
+ },
113
+ "devDependencies": {
114
+ "@eslint/js": "^9.18.0",
115
+ "@jest/globals": "^30.1.2",
116
+ "@types/jest": "^30.0.0",
117
+ "@types/node": "^24.3.1",
118
+ "@types/supertest": "^6.0.2",
119
+ "@typescript-eslint/eslint-plugin": "^8.18.2",
120
+ "@typescript-eslint/parser": "^8.18.2",
121
+ "depcheck": "^1.4.7",
122
+ "eslint": "^9.35.0",
123
+ "eslint-config-prettier": "^10.1.8",
124
+ "eslint-plugin-prettier": "^5.2.1",
125
+ "http-server": "^14.1.1",
126
+ "husky": "^9.1.7",
127
+ "jest": "^30.1.3",
128
+ "lint-staged": "^16.1.6",
129
+ "prettier": "^3.4.2",
130
+ "supertest": "^7.0.0",
131
+ "ts-jest": "^29.4.1",
132
+ "ts-node-dev": "^2.0.0",
133
+ "typedoc": "^0.28.12",
134
+ "typescript": "^5.9.2"
135
+ },
136
+ "files": [
137
+ "dist/**/*",
138
+ "src/**/*",
139
+ "README.md",
140
+ "LICENSE",
141
+ "API.md",
142
+ "tsconfig.json"
143
+ ],
144
+ "jest": {
145
+ "preset": "ts-jest",
146
+ "testEnvironment": "node",
147
+ "roots": [
148
+ "<rootDir>/src",
149
+ "<rootDir>/tests"
150
+ ],
151
+ "testMatch": [
152
+ "**/tests/**/*.test.ts",
153
+ "**/src/**/*.test.ts"
154
+ ],
155
+ "transform": {
156
+ "^.+\\.ts$": [
157
+ "ts-jest",
158
+ {}
159
+ ]
131
160
  },
132
- "files": [
133
- "dist/**/*",
134
- "src/**/*",
135
- "README.md",
136
- "LICENSE",
137
- "API.md",
138
- "tsconfig.json"
161
+ "collectCoverageFrom": [
162
+ "src/**/*.ts",
163
+ "!src/**/*.d.ts",
164
+ "!src/**/*.test.ts",
165
+ "!src/**/index.ts"
139
166
  ],
140
- "jest": {
141
- "preset": "ts-jest",
142
- "testEnvironment": "node",
143
- "roots": [
144
- "<rootDir>/src",
145
- "<rootDir>/tests"
146
- ],
147
- "testMatch": [
148
- "**/tests/**/*.test.ts",
149
- "**/src/**/*.test.ts"
150
- ],
151
- "transform": {
152
- "^.+\\.ts$": ["ts-jest", {}]
153
- },
154
- "collectCoverageFrom": [
155
- "src/**/*.ts",
156
- "!src/**/*.d.ts",
157
- "!src/**/*.test.ts",
158
- "!src/**/index.ts"
159
- ],
160
- "coverageDirectory": "coverage",
161
- "coverageReporters": [
162
- "text",
163
- "lcov",
164
- "html"
165
- ],
166
- "setupFilesAfterEnv": [
167
- "<rootDir>/tests/setup.ts"
168
- ],
169
- "testTimeout": 15000,
170
- "maxWorkers": 1,
171
- "forceExit": false,
172
- "detectOpenHandles": true,
173
- "openHandlesTimeout": 1000,
174
- "extensionsToTreatAsEsm": [".ts"]
175
- }
167
+ "coverageDirectory": "coverage",
168
+ "coverageReporters": [
169
+ "text",
170
+ "lcov",
171
+ "html"
172
+ ],
173
+ "setupFilesAfterEnv": [
174
+ "<rootDir>/tests/setup.ts"
175
+ ],
176
+ "testTimeout": 15000,
177
+ "maxWorkers": 1,
178
+ "forceExit": false,
179
+ "detectOpenHandles": true,
180
+ "openHandlesTimeout": 1000,
181
+ "extensionsToTreatAsEsm": [".ts"]
182
+ },
183
+ "lint-staged": {
184
+ "src/**/*.ts": [
185
+ "prettier --write",
186
+ "eslint --fix"
187
+ ],
188
+ "src/**/*.{json,md}": [
189
+ "prettier --write"
190
+ ]
191
+ }
176
192
  }
@@ -1,14 +1,14 @@
1
1
  // Configuration System - Main Exports and Utilities
2
- export * from "./schema";
3
- export * from "./loader";
4
- export * from "./utils";
2
+ export * from './schema';
3
+ export * from './loader';
4
+ export * from './utils';
5
5
 
6
6
  // Re-export common Zod utilities for configuration
7
- export { z } from "zod";
7
+ export { z } from 'zod';
8
8
 
9
9
  // Main configuration loading function
10
- import { loadConfig } from "./loader";
11
- import type { AppConfig } from "./schema";
10
+ import { loadConfig } from './loader';
11
+ import type { AppConfig } from './schema';
12
12
 
13
13
  // Global configuration instance
14
14
  let globalConfig: AppConfig | null = null;
@@ -32,9 +32,7 @@ export function initializeConfig(): AppConfig {
32
32
  */
33
33
  export function getGlobalConfig(): AppConfig {
34
34
  if (!globalConfig) {
35
- throw new Error(
36
- "Configuration not initialized. Call initializeConfig() first.",
37
- );
35
+ throw new Error('Configuration not initialized. Call initializeConfig() first.');
38
36
  }
39
37
  return globalConfig;
40
38
  }