@morojs/moro 1.0.0

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 (345) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +233 -0
  3. package/dist/core/config/index.d.ts +19 -0
  4. package/dist/core/config/index.js +59 -0
  5. package/dist/core/config/index.js.map +1 -0
  6. package/dist/core/config/loader.d.ts +6 -0
  7. package/dist/core/config/loader.js +288 -0
  8. package/dist/core/config/loader.js.map +1 -0
  9. package/dist/core/config/schema.d.ts +335 -0
  10. package/dist/core/config/schema.js +286 -0
  11. package/dist/core/config/schema.js.map +1 -0
  12. package/dist/core/config/utils.d.ts +50 -0
  13. package/dist/core/config/utils.js +185 -0
  14. package/dist/core/config/utils.js.map +1 -0
  15. package/dist/core/database/adapters/drizzle.d.ts +29 -0
  16. package/dist/core/database/adapters/drizzle.js +366 -0
  17. package/dist/core/database/adapters/drizzle.js.map +1 -0
  18. package/dist/core/database/adapters/index.d.ts +8 -0
  19. package/dist/core/database/adapters/index.js +48 -0
  20. package/dist/core/database/adapters/index.js.map +1 -0
  21. package/dist/core/database/adapters/mongodb.d.ts +35 -0
  22. package/dist/core/database/adapters/mongodb.js +215 -0
  23. package/dist/core/database/adapters/mongodb.js.map +1 -0
  24. package/dist/core/database/adapters/mysql.d.ts +23 -0
  25. package/dist/core/database/adapters/mysql.js +149 -0
  26. package/dist/core/database/adapters/mysql.js.map +1 -0
  27. package/dist/core/database/adapters/postgresql.d.ts +24 -0
  28. package/dist/core/database/adapters/postgresql.js +160 -0
  29. package/dist/core/database/adapters/postgresql.js.map +1 -0
  30. package/dist/core/database/adapters/redis.d.ts +50 -0
  31. package/dist/core/database/adapters/redis.js +266 -0
  32. package/dist/core/database/adapters/redis.js.map +1 -0
  33. package/dist/core/database/adapters/sqlite.d.ts +23 -0
  34. package/dist/core/database/adapters/sqlite.js +194 -0
  35. package/dist/core/database/adapters/sqlite.js.map +1 -0
  36. package/dist/core/database/index.d.ts +2 -0
  37. package/dist/core/database/index.js +20 -0
  38. package/dist/core/database/index.js.map +1 -0
  39. package/dist/core/docs/index.d.ts +63 -0
  40. package/dist/core/docs/index.js +170 -0
  41. package/dist/core/docs/index.js.map +1 -0
  42. package/dist/core/docs/openapi-generator.d.ts +124 -0
  43. package/dist/core/docs/openapi-generator.js +413 -0
  44. package/dist/core/docs/openapi-generator.js.map +1 -0
  45. package/dist/core/docs/simple-docs.d.ts +21 -0
  46. package/dist/core/docs/simple-docs.js +268 -0
  47. package/dist/core/docs/simple-docs.js.map +1 -0
  48. package/dist/core/docs/swagger-ui.d.ts +28 -0
  49. package/dist/core/docs/swagger-ui.js +317 -0
  50. package/dist/core/docs/swagger-ui.js.map +1 -0
  51. package/dist/core/docs/zod-to-openapi.d.ts +29 -0
  52. package/dist/core/docs/zod-to-openapi.js +414 -0
  53. package/dist/core/docs/zod-to-openapi.js.map +1 -0
  54. package/dist/core/events/event-bus.d.ts +27 -0
  55. package/dist/core/events/event-bus.js +193 -0
  56. package/dist/core/events/event-bus.js.map +1 -0
  57. package/dist/core/events/index.d.ts +2 -0
  58. package/dist/core/events/index.js +7 -0
  59. package/dist/core/events/index.js.map +1 -0
  60. package/dist/core/framework.d.ts +57 -0
  61. package/dist/core/framework.js +432 -0
  62. package/dist/core/framework.js.map +1 -0
  63. package/dist/core/http/http-server.d.ts +114 -0
  64. package/dist/core/http/http-server.js +1154 -0
  65. package/dist/core/http/http-server.js.map +1 -0
  66. package/dist/core/http/index.d.ts +3 -0
  67. package/dist/core/http/index.js +10 -0
  68. package/dist/core/http/index.js.map +1 -0
  69. package/dist/core/http/router.d.ts +14 -0
  70. package/dist/core/http/router.js +113 -0
  71. package/dist/core/http/router.js.map +1 -0
  72. package/dist/core/logger/filters.d.ts +9 -0
  73. package/dist/core/logger/filters.js +134 -0
  74. package/dist/core/logger/filters.js.map +1 -0
  75. package/dist/core/logger/index.d.ts +3 -0
  76. package/dist/core/logger/index.js +26 -0
  77. package/dist/core/logger/index.js.map +1 -0
  78. package/dist/core/logger/logger.d.ts +49 -0
  79. package/dist/core/logger/logger.js +332 -0
  80. package/dist/core/logger/logger.js.map +1 -0
  81. package/dist/core/logger/outputs.d.ts +42 -0
  82. package/dist/core/logger/outputs.js +110 -0
  83. package/dist/core/logger/outputs.js.map +1 -0
  84. package/dist/core/middleware/built-in/adapters/cache/file.d.ts +15 -0
  85. package/dist/core/middleware/built-in/adapters/cache/file.js +128 -0
  86. package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -0
  87. package/dist/core/middleware/built-in/adapters/cache/index.d.ts +5 -0
  88. package/dist/core/middleware/built-in/adapters/cache/index.js +28 -0
  89. package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -0
  90. package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +11 -0
  91. package/dist/core/middleware/built-in/adapters/cache/memory.js +65 -0
  92. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -0
  93. package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +17 -0
  94. package/dist/core/middleware/built-in/adapters/cache/redis.js +91 -0
  95. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -0
  96. package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +21 -0
  97. package/dist/core/middleware/built-in/adapters/cdn/azure.js +40 -0
  98. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -0
  99. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +14 -0
  100. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +77 -0
  101. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -0
  102. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +15 -0
  103. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +73 -0
  104. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -0
  105. package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +5 -0
  106. package/dist/core/middleware/built-in/adapters/cdn/index.js +28 -0
  107. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +1 -0
  108. package/dist/core/middleware/built-in/adapters/index.d.ts +4 -0
  109. package/dist/core/middleware/built-in/adapters/index.js +26 -0
  110. package/dist/core/middleware/built-in/adapters/index.js.map +1 -0
  111. package/dist/core/middleware/built-in/auth.d.ts +2 -0
  112. package/dist/core/middleware/built-in/auth.js +38 -0
  113. package/dist/core/middleware/built-in/auth.js.map +1 -0
  114. package/dist/core/middleware/built-in/cache.d.ts +3 -0
  115. package/dist/core/middleware/built-in/cache.js +188 -0
  116. package/dist/core/middleware/built-in/cache.js.map +1 -0
  117. package/dist/core/middleware/built-in/cdn.d.ts +3 -0
  118. package/dist/core/middleware/built-in/cdn.js +115 -0
  119. package/dist/core/middleware/built-in/cdn.js.map +1 -0
  120. package/dist/core/middleware/built-in/cookie.d.ts +14 -0
  121. package/dist/core/middleware/built-in/cookie.js +68 -0
  122. package/dist/core/middleware/built-in/cookie.js.map +1 -0
  123. package/dist/core/middleware/built-in/cors.d.ts +2 -0
  124. package/dist/core/middleware/built-in/cors.js +29 -0
  125. package/dist/core/middleware/built-in/cors.js.map +1 -0
  126. package/dist/core/middleware/built-in/csp.d.ts +22 -0
  127. package/dist/core/middleware/built-in/csp.js +74 -0
  128. package/dist/core/middleware/built-in/csp.js.map +1 -0
  129. package/dist/core/middleware/built-in/csrf.d.ts +9 -0
  130. package/dist/core/middleware/built-in/csrf.js +66 -0
  131. package/dist/core/middleware/built-in/csrf.js.map +1 -0
  132. package/dist/core/middleware/built-in/error-tracker.d.ts +1 -0
  133. package/dist/core/middleware/built-in/error-tracker.js +19 -0
  134. package/dist/core/middleware/built-in/error-tracker.js.map +1 -0
  135. package/dist/core/middleware/built-in/index.d.ts +70 -0
  136. package/dist/core/middleware/built-in/index.js +70 -0
  137. package/dist/core/middleware/built-in/index.js.map +1 -0
  138. package/dist/core/middleware/built-in/performance-monitor.d.ts +1 -0
  139. package/dist/core/middleware/built-in/performance-monitor.js +22 -0
  140. package/dist/core/middleware/built-in/performance-monitor.js.map +1 -0
  141. package/dist/core/middleware/built-in/rate-limit.d.ts +6 -0
  142. package/dist/core/middleware/built-in/rate-limit.js +47 -0
  143. package/dist/core/middleware/built-in/rate-limit.js.map +1 -0
  144. package/dist/core/middleware/built-in/request-logger.d.ts +1 -0
  145. package/dist/core/middleware/built-in/request-logger.js +15 -0
  146. package/dist/core/middleware/built-in/request-logger.js.map +1 -0
  147. package/dist/core/middleware/built-in/session.d.ts +41 -0
  148. package/dist/core/middleware/built-in/session.js +209 -0
  149. package/dist/core/middleware/built-in/session.js.map +1 -0
  150. package/dist/core/middleware/built-in/sse.d.ts +6 -0
  151. package/dist/core/middleware/built-in/sse.js +73 -0
  152. package/dist/core/middleware/built-in/sse.js.map +1 -0
  153. package/dist/core/middleware/built-in/validation.d.ts +2 -0
  154. package/dist/core/middleware/built-in/validation.js +31 -0
  155. package/dist/core/middleware/built-in/validation.js.map +1 -0
  156. package/dist/core/middleware/index.d.ts +21 -0
  157. package/dist/core/middleware/index.js +152 -0
  158. package/dist/core/middleware/index.js.map +1 -0
  159. package/dist/core/modules/auto-discovery.d.ts +27 -0
  160. package/dist/core/modules/auto-discovery.js +255 -0
  161. package/dist/core/modules/auto-discovery.js.map +1 -0
  162. package/dist/core/modules/index.d.ts +2 -0
  163. package/dist/core/modules/index.js +11 -0
  164. package/dist/core/modules/index.js.map +1 -0
  165. package/dist/core/modules/modules.d.ts +10 -0
  166. package/dist/core/modules/modules.js +137 -0
  167. package/dist/core/modules/modules.js.map +1 -0
  168. package/dist/core/networking/index.d.ts +2 -0
  169. package/dist/core/networking/index.js +9 -0
  170. package/dist/core/networking/index.js.map +1 -0
  171. package/dist/core/networking/service-discovery.d.ts +38 -0
  172. package/dist/core/networking/service-discovery.js +233 -0
  173. package/dist/core/networking/service-discovery.js.map +1 -0
  174. package/dist/core/networking/websocket-manager.d.ts +27 -0
  175. package/dist/core/networking/websocket-manager.js +211 -0
  176. package/dist/core/networking/websocket-manager.js.map +1 -0
  177. package/dist/core/routing/app-integration.d.ts +42 -0
  178. package/dist/core/routing/app-integration.js +152 -0
  179. package/dist/core/routing/app-integration.js.map +1 -0
  180. package/dist/core/routing/index.d.ts +106 -0
  181. package/dist/core/routing/index.js +343 -0
  182. package/dist/core/routing/index.js.map +1 -0
  183. package/dist/core/runtime/aws-lambda-adapter.d.ts +43 -0
  184. package/dist/core/runtime/aws-lambda-adapter.js +108 -0
  185. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -0
  186. package/dist/core/runtime/base-adapter.d.ts +16 -0
  187. package/dist/core/runtime/base-adapter.js +105 -0
  188. package/dist/core/runtime/base-adapter.js.map +1 -0
  189. package/dist/core/runtime/cloudflare-workers-adapter.d.ts +18 -0
  190. package/dist/core/runtime/cloudflare-workers-adapter.js +131 -0
  191. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -0
  192. package/dist/core/runtime/index.d.ts +14 -0
  193. package/dist/core/runtime/index.js +56 -0
  194. package/dist/core/runtime/index.js.map +1 -0
  195. package/dist/core/runtime/node-adapter.d.ts +15 -0
  196. package/dist/core/runtime/node-adapter.js +204 -0
  197. package/dist/core/runtime/node-adapter.js.map +1 -0
  198. package/dist/core/runtime/vercel-edge-adapter.d.ts +10 -0
  199. package/dist/core/runtime/vercel-edge-adapter.js +106 -0
  200. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -0
  201. package/dist/core/utilities/circuit-breaker.d.ts +14 -0
  202. package/dist/core/utilities/circuit-breaker.js +42 -0
  203. package/dist/core/utilities/circuit-breaker.js.map +1 -0
  204. package/dist/core/utilities/container.d.ts +116 -0
  205. package/dist/core/utilities/container.js +529 -0
  206. package/dist/core/utilities/container.js.map +1 -0
  207. package/dist/core/utilities/hooks.d.ts +24 -0
  208. package/dist/core/utilities/hooks.js +131 -0
  209. package/dist/core/utilities/hooks.js.map +1 -0
  210. package/dist/core/utilities/index.d.ts +4 -0
  211. package/dist/core/utilities/index.js +22 -0
  212. package/dist/core/utilities/index.js.map +1 -0
  213. package/dist/core/validation/index.d.ts +30 -0
  214. package/dist/core/validation/index.js +144 -0
  215. package/dist/core/validation/index.js.map +1 -0
  216. package/dist/index.d.ts +30 -0
  217. package/dist/index.js +72 -0
  218. package/dist/index.js.map +1 -0
  219. package/dist/moro.d.ts +82 -0
  220. package/dist/moro.js +679 -0
  221. package/dist/moro.js.map +1 -0
  222. package/dist/types/cache.d.ts +34 -0
  223. package/dist/types/cache.js +3 -0
  224. package/dist/types/cache.js.map +1 -0
  225. package/dist/types/cdn.d.ts +19 -0
  226. package/dist/types/cdn.js +3 -0
  227. package/dist/types/cdn.js.map +1 -0
  228. package/dist/types/core.d.ts +13 -0
  229. package/dist/types/core.js +3 -0
  230. package/dist/types/core.js.map +1 -0
  231. package/dist/types/database.d.ts +29 -0
  232. package/dist/types/database.js +3 -0
  233. package/dist/types/database.js.map +1 -0
  234. package/dist/types/discovery.d.ts +6 -0
  235. package/dist/types/discovery.js +3 -0
  236. package/dist/types/discovery.js.map +1 -0
  237. package/dist/types/events.d.ts +116 -0
  238. package/dist/types/events.js +3 -0
  239. package/dist/types/events.js.map +1 -0
  240. package/dist/types/hooks.d.ts +38 -0
  241. package/dist/types/hooks.js +3 -0
  242. package/dist/types/hooks.js.map +1 -0
  243. package/dist/types/http.d.ts +51 -0
  244. package/dist/types/http.js +3 -0
  245. package/dist/types/http.js.map +1 -0
  246. package/dist/types/logger.d.ts +77 -0
  247. package/dist/types/logger.js +3 -0
  248. package/dist/types/logger.js.map +1 -0
  249. package/dist/types/module.d.ts +91 -0
  250. package/dist/types/module.js +3 -0
  251. package/dist/types/module.js.map +1 -0
  252. package/dist/types/runtime.d.ts +48 -0
  253. package/dist/types/runtime.js +3 -0
  254. package/dist/types/runtime.js.map +1 -0
  255. package/dist/types/session.d.ts +66 -0
  256. package/dist/types/session.js +3 -0
  257. package/dist/types/session.js.map +1 -0
  258. package/package.json +176 -0
  259. package/src/core/config/index.ts +47 -0
  260. package/src/core/config/loader.ts +366 -0
  261. package/src/core/config/schema.ts +346 -0
  262. package/src/core/config/utils.ts +220 -0
  263. package/src/core/database/README.md +228 -0
  264. package/src/core/database/adapters/drizzle.ts +425 -0
  265. package/src/core/database/adapters/index.ts +45 -0
  266. package/src/core/database/adapters/mongodb.ts +292 -0
  267. package/src/core/database/adapters/mysql.ts +217 -0
  268. package/src/core/database/adapters/postgresql.ts +211 -0
  269. package/src/core/database/adapters/redis.ts +331 -0
  270. package/src/core/database/adapters/sqlite.ts +255 -0
  271. package/src/core/database/index.ts +3 -0
  272. package/src/core/docs/index.ts +245 -0
  273. package/src/core/docs/openapi-generator.ts +588 -0
  274. package/src/core/docs/simple-docs.ts +305 -0
  275. package/src/core/docs/swagger-ui.ts +370 -0
  276. package/src/core/docs/zod-to-openapi.ts +532 -0
  277. package/src/core/events/event-bus.ts +249 -0
  278. package/src/core/events/index.ts +12 -0
  279. package/src/core/framework.ts +621 -0
  280. package/src/core/http/http-server.ts +1421 -0
  281. package/src/core/http/index.ts +11 -0
  282. package/src/core/http/router.ts +153 -0
  283. package/src/core/logger/filters.ts +148 -0
  284. package/src/core/logger/index.ts +20 -0
  285. package/src/core/logger/logger.ts +434 -0
  286. package/src/core/logger/outputs.ts +136 -0
  287. package/src/core/middleware/built-in/adapters/cache/file.ts +106 -0
  288. package/src/core/middleware/built-in/adapters/cache/index.ts +26 -0
  289. package/src/core/middleware/built-in/adapters/cache/memory.ts +73 -0
  290. package/src/core/middleware/built-in/adapters/cache/redis.ts +103 -0
  291. package/src/core/middleware/built-in/adapters/cdn/azure.ts +68 -0
  292. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +100 -0
  293. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +92 -0
  294. package/src/core/middleware/built-in/adapters/cdn/index.ts +23 -0
  295. package/src/core/middleware/built-in/adapters/index.ts +7 -0
  296. package/src/core/middleware/built-in/auth.ts +39 -0
  297. package/src/core/middleware/built-in/cache.ts +228 -0
  298. package/src/core/middleware/built-in/cdn.ts +151 -0
  299. package/src/core/middleware/built-in/cookie.ts +90 -0
  300. package/src/core/middleware/built-in/cors.ts +38 -0
  301. package/src/core/middleware/built-in/csp.ts +107 -0
  302. package/src/core/middleware/built-in/csrf.ts +87 -0
  303. package/src/core/middleware/built-in/error-tracker.ts +16 -0
  304. package/src/core/middleware/built-in/index.ts +57 -0
  305. package/src/core/middleware/built-in/performance-monitor.ts +25 -0
  306. package/src/core/middleware/built-in/rate-limit.ts +60 -0
  307. package/src/core/middleware/built-in/request-logger.ts +14 -0
  308. package/src/core/middleware/built-in/session.ts +311 -0
  309. package/src/core/middleware/built-in/sse.ts +91 -0
  310. package/src/core/middleware/built-in/validation.ts +33 -0
  311. package/src/core/middleware/index.ts +188 -0
  312. package/src/core/modules/auto-discovery.ts +265 -0
  313. package/src/core/modules/index.ts +6 -0
  314. package/src/core/modules/modules.ts +125 -0
  315. package/src/core/networking/index.ts +7 -0
  316. package/src/core/networking/service-discovery.ts +309 -0
  317. package/src/core/networking/websocket-manager.ts +259 -0
  318. package/src/core/routing/app-integration.ts +229 -0
  319. package/src/core/routing/index.ts +519 -0
  320. package/src/core/runtime/aws-lambda-adapter.ts +157 -0
  321. package/src/core/runtime/base-adapter.ts +140 -0
  322. package/src/core/runtime/cloudflare-workers-adapter.ts +166 -0
  323. package/src/core/runtime/index.ts +74 -0
  324. package/src/core/runtime/node-adapter.ts +210 -0
  325. package/src/core/runtime/vercel-edge-adapter.ts +125 -0
  326. package/src/core/utilities/circuit-breaker.ts +46 -0
  327. package/src/core/utilities/container.ts +760 -0
  328. package/src/core/utilities/hooks.ts +148 -0
  329. package/src/core/utilities/index.ts +16 -0
  330. package/src/core/validation/index.ts +216 -0
  331. package/src/index.ts +120 -0
  332. package/src/moro.ts +842 -0
  333. package/src/types/cache.ts +38 -0
  334. package/src/types/cdn.ts +22 -0
  335. package/src/types/core.ts +17 -0
  336. package/src/types/database.ts +40 -0
  337. package/src/types/discovery.ts +7 -0
  338. package/src/types/events.ts +90 -0
  339. package/src/types/hooks.ts +47 -0
  340. package/src/types/http.ts +70 -0
  341. package/src/types/logger.ts +109 -0
  342. package/src/types/module.ts +87 -0
  343. package/src/types/runtime.ts +91 -0
  344. package/src/types/session.ts +89 -0
  345. package/tsconfig.json +21 -0
@@ -0,0 +1,414 @@
1
+ "use strict";
2
+ // Zod to OpenAPI Schema Converter
3
+ // Transforms Zod schemas into OpenAPI 3.0 schema definitions
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.zodToOpenAPI = zodToOpenAPI;
6
+ exports.generateExampleFromSchema = generateExampleFromSchema;
7
+ const logger_1 = require("../logger");
8
+ const logger = (0, logger_1.createFrameworkLogger)("ZodToOpenAPI");
9
+ // Main conversion function
10
+ function zodToOpenAPI(schema, options = {}) {
11
+ const opts = {
12
+ includeExamples: true,
13
+ includeDescriptions: true,
14
+ strict: false,
15
+ ...options,
16
+ };
17
+ try {
18
+ return convertZodType(schema._def, opts);
19
+ }
20
+ catch (error) {
21
+ logger.error("Failed to convert Zod schema to OpenAPI", "Conversion", {
22
+ error: error instanceof Error ? error.message : String(error),
23
+ });
24
+ // Return a basic schema as fallback
25
+ return {
26
+ type: "object",
27
+ description: "Schema conversion failed",
28
+ additionalProperties: true,
29
+ };
30
+ }
31
+ }
32
+ // Convert Zod type definition to OpenAPI schema
33
+ function convertZodType(def, options) {
34
+ if (!def || typeof def !== "object") {
35
+ logger.warn("Invalid Zod definition received", "Conversion", { def });
36
+ return { type: "object", additionalProperties: true };
37
+ }
38
+ // Handle newer Zod structure - check for 'type' field first, then 'typeName'
39
+ const typeName = def.typeName || def.type;
40
+ if (!typeName) {
41
+ logger.warn("Missing typeName/type in Zod definition", "Conversion", {
42
+ def: JSON.stringify(def).substring(0, 200),
43
+ });
44
+ return { type: "object", additionalProperties: true };
45
+ }
46
+ switch (typeName) {
47
+ case "ZodString":
48
+ case "string":
49
+ return convertZodString(def, options);
50
+ case "ZodNumber":
51
+ case "number":
52
+ return convertZodNumber(def, options);
53
+ case "ZodBoolean":
54
+ case "boolean":
55
+ return convertZodBoolean(def, options);
56
+ case "ZodObject":
57
+ case "object":
58
+ return convertZodObject(def, options);
59
+ case "ZodArray":
60
+ case "array":
61
+ return convertZodArray(def, options);
62
+ case "ZodEnum":
63
+ case "enum":
64
+ return convertZodEnum(def, options);
65
+ case "ZodOptional":
66
+ case "optional":
67
+ return convertZodOptional(def, options);
68
+ case "ZodDefault":
69
+ case "default":
70
+ return convertZodDefault(def, options);
71
+ case "ZodUnion":
72
+ case "union":
73
+ return convertZodUnion(def, options);
74
+ case "ZodLiteral":
75
+ case "literal":
76
+ return convertZodLiteral(def, options);
77
+ case "ZodDate":
78
+ return {
79
+ type: "string",
80
+ format: "date-time",
81
+ description: options.includeDescriptions
82
+ ? "ISO 8601 date-time string"
83
+ : undefined,
84
+ };
85
+ case "ZodUUID":
86
+ return {
87
+ type: "string",
88
+ format: "uuid",
89
+ pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
90
+ description: options.includeDescriptions ? "UUID string" : undefined,
91
+ };
92
+ default:
93
+ logger.warn(`Unsupported Zod type: ${typeName}`, "Conversion");
94
+ return {
95
+ type: "object",
96
+ description: `Unsupported type: ${typeName}`,
97
+ additionalProperties: true,
98
+ };
99
+ }
100
+ }
101
+ // Convert ZodString
102
+ function convertZodString(def, options) {
103
+ const schema = { type: "string" };
104
+ // Handle checks (validations)
105
+ if (def.checks) {
106
+ for (const check of def.checks) {
107
+ switch (check.kind) {
108
+ case "min":
109
+ schema.minLength = check.value;
110
+ break;
111
+ case "max":
112
+ schema.maxLength = check.value;
113
+ break;
114
+ case "email":
115
+ schema.format = "email";
116
+ break;
117
+ case "url":
118
+ schema.format = "uri";
119
+ break;
120
+ case "uuid":
121
+ schema.format = "uuid";
122
+ schema.pattern =
123
+ "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$";
124
+ break;
125
+ case "regex":
126
+ schema.pattern = check.regex.source;
127
+ break;
128
+ case "datetime":
129
+ schema.format = "date-time";
130
+ break;
131
+ }
132
+ }
133
+ }
134
+ if (options.includeExamples) {
135
+ if (schema.format === "email") {
136
+ schema.example = "user@example.com";
137
+ }
138
+ else if (schema.format === "uuid") {
139
+ schema.example = "123e4567-e89b-12d3-a456-426614174000";
140
+ }
141
+ else if (schema.format === "date-time") {
142
+ schema.example = "2023-12-01T10:00:00Z";
143
+ }
144
+ else {
145
+ schema.example = "string";
146
+ }
147
+ }
148
+ return schema;
149
+ }
150
+ // Convert ZodNumber
151
+ function convertZodNumber(def, options) {
152
+ const schema = { type: "number" };
153
+ if (def.checks) {
154
+ for (const check of def.checks) {
155
+ switch (check.kind) {
156
+ case "min":
157
+ schema.minimum = check.value;
158
+ break;
159
+ case "max":
160
+ schema.maximum = check.value;
161
+ break;
162
+ case "int":
163
+ schema.type = "integer";
164
+ break;
165
+ }
166
+ }
167
+ }
168
+ if (options.includeExamples) {
169
+ schema.example = schema.type === "integer" ? 42 : 3.14;
170
+ }
171
+ return schema;
172
+ }
173
+ // Convert ZodBoolean
174
+ function convertZodBoolean(def, options) {
175
+ const schema = { type: "boolean" };
176
+ if (options.includeExamples) {
177
+ schema.example = true;
178
+ }
179
+ return schema;
180
+ }
181
+ // Convert ZodObject
182
+ function convertZodObject(def, options) {
183
+ const schema = {
184
+ type: "object",
185
+ properties: {},
186
+ required: [],
187
+ };
188
+ // Handle both old and new Zod object structures
189
+ let shape;
190
+ if (typeof def.shape === "function") {
191
+ shape = def.shape();
192
+ }
193
+ else if (def.shape && typeof def.shape === "object") {
194
+ shape = def.shape;
195
+ }
196
+ else {
197
+ logger.warn("Could not extract shape from Zod object", "Conversion");
198
+ return { type: "object", additionalProperties: true };
199
+ }
200
+ for (const [key, value] of Object.entries(shape)) {
201
+ const zodType = value;
202
+ // Handle the nested structure properly
203
+ let typeDef;
204
+ if (zodType._def) {
205
+ typeDef = zodType._def;
206
+ }
207
+ else if (zodType.def) {
208
+ typeDef = zodType.def;
209
+ }
210
+ else {
211
+ typeDef = zodType;
212
+ }
213
+ schema.properties[key] = convertZodType(typeDef, options);
214
+ // Check if field is required (not optional and no default)
215
+ const typeStr = typeDef.typeName || typeDef.type;
216
+ if (typeStr !== "optional" &&
217
+ typeStr !== "ZodOptional" &&
218
+ typeStr !== "default" &&
219
+ typeStr !== "ZodDefault") {
220
+ schema.required.push(key);
221
+ }
222
+ }
223
+ // Remove required array if empty
224
+ if (schema.required.length === 0) {
225
+ delete schema.required;
226
+ }
227
+ return schema;
228
+ }
229
+ // Convert ZodArray
230
+ function convertZodArray(def, options) {
231
+ const schema = {
232
+ type: "array",
233
+ items: def.type && def.type._def
234
+ ? convertZodType(def.type._def, options)
235
+ : { type: "string" },
236
+ };
237
+ // Handle array length constraints
238
+ if (def.minLength !== null && def.minLength !== undefined) {
239
+ schema.minLength =
240
+ typeof def.minLength === "object" ? def.minLength.value : def.minLength;
241
+ }
242
+ if (def.maxLength !== null && def.maxLength !== undefined) {
243
+ schema.maxLength =
244
+ typeof def.maxLength === "object" ? def.maxLength.value : def.maxLength;
245
+ }
246
+ if (options.includeExamples && schema.items) {
247
+ schema.example = [schema.items.example || "item"];
248
+ }
249
+ return schema;
250
+ }
251
+ // Convert ZodEnum
252
+ function convertZodEnum(def, options) {
253
+ const schema = {
254
+ type: "string",
255
+ enum: def.values || [],
256
+ };
257
+ if (options.includeExamples &&
258
+ def.values &&
259
+ Array.isArray(def.values) &&
260
+ def.values.length > 0) {
261
+ schema.example = def.values[0];
262
+ }
263
+ return schema;
264
+ }
265
+ // Convert ZodOptional
266
+ function convertZodOptional(def, options) {
267
+ return convertZodType(def.innerType._def, options);
268
+ }
269
+ // Convert ZodDefault
270
+ function convertZodDefault(def, options) {
271
+ const schema = convertZodType(def.innerType._def, options);
272
+ // Handle both function and property forms of defaultValue
273
+ if (typeof def.defaultValue === "function") {
274
+ try {
275
+ schema.default = def.defaultValue();
276
+ }
277
+ catch (error) {
278
+ logger.warn("Failed to get default value from function", "Conversion", {
279
+ error,
280
+ });
281
+ schema.default = undefined;
282
+ }
283
+ }
284
+ else if (def.defaultValue !== undefined) {
285
+ schema.default = def.defaultValue;
286
+ }
287
+ else {
288
+ logger.warn("No default value found in ZodDefault", "Conversion");
289
+ schema.default = undefined;
290
+ }
291
+ return schema;
292
+ }
293
+ // Convert ZodUnion
294
+ function convertZodUnion(def, options) {
295
+ const schemas = def.options.map((option) => convertZodType(option._def, options));
296
+ return {
297
+ oneOf: schemas,
298
+ };
299
+ }
300
+ // Convert ZodLiteral
301
+ function convertZodLiteral(def, options) {
302
+ const value = def.value;
303
+ return {
304
+ type: typeof value,
305
+ enum: [value],
306
+ example: options.includeExamples ? value : undefined,
307
+ };
308
+ }
309
+ // Helper functions
310
+ function isOptionalType(type) {
311
+ return type._def.typeName === "ZodOptional";
312
+ }
313
+ function hasDefault(type) {
314
+ return type._def.typeName === "ZodDefault";
315
+ }
316
+ // Generate example data from Zod schema
317
+ function generateExampleFromSchema(schema) {
318
+ try {
319
+ return generateExample(schema._def);
320
+ }
321
+ catch (error) {
322
+ logger.warn("Failed to generate example from schema", "ExampleGeneration", {
323
+ error: error instanceof Error ? error.message : String(error),
324
+ });
325
+ return {};
326
+ }
327
+ }
328
+ function generateExample(def) {
329
+ const typeName = def.typeName;
330
+ switch (typeName) {
331
+ case "ZodString":
332
+ if (def.checks) {
333
+ for (const check of def.checks) {
334
+ if (check.kind === "email")
335
+ return "user@example.com";
336
+ if (check.kind === "uuid")
337
+ return "123e4567-e89b-12d3-a456-426614174000";
338
+ if (check.kind === "url")
339
+ return "https://example.com";
340
+ if (check.kind === "datetime")
341
+ return "2023-12-01T10:00:00Z";
342
+ }
343
+ }
344
+ return "string";
345
+ case "ZodNumber":
346
+ return 42;
347
+ case "ZodBoolean":
348
+ return true;
349
+ case "ZodObject": {
350
+ const example = {};
351
+ let shape;
352
+ try {
353
+ if (typeof def.shape === "function") {
354
+ shape = def.shape();
355
+ }
356
+ else if (def.shape && typeof def.shape === "object") {
357
+ shape = def.shape;
358
+ }
359
+ else {
360
+ return {};
361
+ }
362
+ for (const [key, value] of Object.entries(shape)) {
363
+ const zodType = value;
364
+ if (!isOptionalType(zodType)) {
365
+ example[key] = generateExample(zodType._def);
366
+ }
367
+ }
368
+ }
369
+ catch (error) {
370
+ logger.warn("Failed to generate object example", "ExampleGeneration", {
371
+ error,
372
+ });
373
+ return {};
374
+ }
375
+ return example;
376
+ }
377
+ case "ZodArray":
378
+ if (def.type && def.type._def) {
379
+ const itemExample = generateExample(def.type._def);
380
+ return [itemExample];
381
+ }
382
+ return ["item"];
383
+ case "ZodEnum":
384
+ return def.values && Array.isArray(def.values) && def.values.length > 0
385
+ ? def.values[0]
386
+ : "enum-value";
387
+ case "ZodOptional":
388
+ return generateExample(def.innerType._def);
389
+ case "ZodDefault":
390
+ // Handle both function and property forms of defaultValue
391
+ if (typeof def.defaultValue === "function") {
392
+ try {
393
+ return def.defaultValue();
394
+ }
395
+ catch (error) {
396
+ logger.warn("Failed to get default value from function in example generation", "ExampleGeneration", { error });
397
+ return null;
398
+ }
399
+ }
400
+ else if (def.defaultValue !== undefined) {
401
+ return def.defaultValue;
402
+ }
403
+ else {
404
+ return null;
405
+ }
406
+ case "ZodUnion":
407
+ return generateExample(def.options[0]._def);
408
+ case "ZodLiteral":
409
+ return def.value;
410
+ default:
411
+ return null;
412
+ }
413
+ }
414
+ //# sourceMappingURL=zod-to-openapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-to-openapi.js","sourceRoot":"","sources":["../../../src/core/docs/zod-to-openapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { EventContext, EventPayload, EventBusOptions, ModuleEventBus, GlobalEventBus, EventMetrics, EventHandler } from "../../types/events";
2
+ export declare class MoroEventBus implements GlobalEventBus {
3
+ private options;
4
+ private emitter;
5
+ private moduleBuses;
6
+ private metrics;
7
+ private auditEnabled;
8
+ private auditLog;
9
+ private latencySum;
10
+ private errorCount;
11
+ private logger;
12
+ constructor(options?: EventBusOptions);
13
+ emit<T = any>(event: string, data: T, context?: Partial<EventContext>): Promise<boolean>;
14
+ on<T = any>(event: string, listener: EventHandler<T>): this;
15
+ once<T = any>(event: string, listener: EventHandler<T>): this;
16
+ off(event: string, listener: Function): this;
17
+ removeAllListeners(event?: string): this;
18
+ listenerCount(event: string): number;
19
+ createModuleBus(moduleId: string): ModuleEventBus;
20
+ destroyModuleBus(moduleId: string): void;
21
+ getMetrics(): EventMetrics;
22
+ enableAuditLog(): void;
23
+ disableAuditLog(): void;
24
+ getAuditLog(): EventPayload[];
25
+ private updateMetrics;
26
+ private generateRequestId;
27
+ }
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MoroEventBus = void 0;
4
+ // Enterprise Event Bus - Secure, Scalable, Observable
5
+ const events_1 = require("events");
6
+ const logger_1 = require("../logger");
7
+ class MoroEventBus {
8
+ constructor(options = {}) {
9
+ this.options = options;
10
+ this.emitter = new events_1.EventEmitter();
11
+ this.moduleBuses = new Map();
12
+ this.metrics = {
13
+ totalEvents: 0,
14
+ eventsByType: {},
15
+ eventsByModule: {},
16
+ averageLatency: 0,
17
+ errorRate: 0,
18
+ };
19
+ this.auditEnabled = false;
20
+ this.auditLog = [];
21
+ this.latencySum = 0;
22
+ this.errorCount = 0;
23
+ this.logger = (0, logger_1.createFrameworkLogger)("EventBus");
24
+ this.emitter.setMaxListeners(options.maxListeners || 100);
25
+ }
26
+ // Global event emission with full context and metrics
27
+ async emit(event, data, context) {
28
+ const startTime = Date.now();
29
+ const fullContext = {
30
+ timestamp: new Date(),
31
+ source: "framework",
32
+ requestId: this.generateRequestId(),
33
+ ...context,
34
+ };
35
+ const payload = {
36
+ context: fullContext,
37
+ data,
38
+ };
39
+ try {
40
+ // Update metrics
41
+ this.updateMetrics(event, fullContext.moduleId);
42
+ // Audit logging
43
+ if (this.auditEnabled) {
44
+ this.auditLog.push(payload);
45
+ if (this.auditLog.length > 1000) {
46
+ this.auditLog = this.auditLog.slice(-500); // Keep last 500 events
47
+ }
48
+ }
49
+ // Emit to global listeners
50
+ const result = this.emitter.emit(event, payload);
51
+ // Calculate latency
52
+ const latency = Date.now() - startTime;
53
+ this.latencySum += latency;
54
+ return result;
55
+ }
56
+ catch (error) {
57
+ this.errorCount++;
58
+ this.logger.error(`Event emission error for ${event}`, "Emission", {
59
+ event,
60
+ error: error instanceof Error ? error.message : String(error),
61
+ });
62
+ return false;
63
+ }
64
+ }
65
+ // Type-safe event listeners with automatic payload unwrapping
66
+ on(event, listener) {
67
+ this.emitter.on(event, listener);
68
+ return this;
69
+ }
70
+ once(event, listener) {
71
+ this.emitter.once(event, listener);
72
+ return this;
73
+ }
74
+ off(event, listener) {
75
+ this.emitter.off(event, listener);
76
+ return this;
77
+ }
78
+ removeAllListeners(event) {
79
+ this.emitter.removeAllListeners(event);
80
+ return this;
81
+ }
82
+ listenerCount(event) {
83
+ return this.emitter.listenerCount(event);
84
+ }
85
+ // Create isolated module event bus with namespace protection
86
+ createModuleBus(moduleId) {
87
+ // Return existing bus if it already exists
88
+ if (this.moduleBuses.has(moduleId)) {
89
+ this.logger.debug(`Reusing existing event bus for module: ${moduleId}`, "ModuleBus");
90
+ return this.moduleBuses.get(moduleId);
91
+ }
92
+ const moduleBus = new ModuleEventBusImpl(moduleId, this);
93
+ this.moduleBuses.set(moduleId, moduleBus);
94
+ this.logger.debug(`Created event bus for module: ${moduleId}`, "ModuleBus");
95
+ return moduleBus;
96
+ }
97
+ // Clean up module resources
98
+ destroyModuleBus(moduleId) {
99
+ const moduleBus = this.moduleBuses.get(moduleId);
100
+ if (moduleBus) {
101
+ moduleBus.removeAllListeners();
102
+ this.moduleBuses.delete(moduleId);
103
+ this.logger.debug(`Destroyed event bus for module: ${moduleId}`, "ModuleBus");
104
+ }
105
+ }
106
+ // Comprehensive event metrics
107
+ getMetrics() {
108
+ return {
109
+ ...this.metrics,
110
+ averageLatency: this.metrics.totalEvents > 0
111
+ ? this.latencySum / this.metrics.totalEvents
112
+ : 0,
113
+ errorRate: this.metrics.totalEvents > 0
114
+ ? (this.errorCount / this.metrics.totalEvents) * 100
115
+ : 0,
116
+ };
117
+ }
118
+ // Enable audit logging for compliance
119
+ enableAuditLog() {
120
+ this.auditEnabled = true;
121
+ this.logger.info("Event audit logging enabled", "Audit");
122
+ }
123
+ disableAuditLog() {
124
+ this.auditEnabled = false;
125
+ this.auditLog = [];
126
+ this.logger.info("Event audit logging disabled", "Audit");
127
+ }
128
+ // Get audit log for compliance reporting
129
+ getAuditLog() {
130
+ return [...this.auditLog];
131
+ }
132
+ updateMetrics(event, moduleId) {
133
+ this.metrics.totalEvents++;
134
+ this.metrics.eventsByType[event] =
135
+ (this.metrics.eventsByType[event] || 0) + 1;
136
+ if (moduleId) {
137
+ this.metrics.eventsByModule[moduleId] =
138
+ (this.metrics.eventsByModule[moduleId] || 0) + 1;
139
+ }
140
+ }
141
+ generateRequestId() {
142
+ return `req_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
143
+ }
144
+ }
145
+ exports.MoroEventBus = MoroEventBus;
146
+ // Module-isolated event bus implementation
147
+ class ModuleEventBusImpl {
148
+ constructor(moduleId, globalBus) {
149
+ this.moduleId = moduleId;
150
+ this.globalBus = globalBus;
151
+ }
152
+ async emit(event, data) {
153
+ // Module events are namespaced to prevent conflicts
154
+ const namespacedEvent = `module:${this.moduleId}:${event}`;
155
+ return this.globalBus.emit(namespacedEvent, data, {
156
+ source: "module",
157
+ moduleId: this.moduleId,
158
+ });
159
+ }
160
+ on(event, listener) {
161
+ const namespacedEvent = `module:${this.moduleId}:${event}`;
162
+ this.globalBus.on(namespacedEvent, listener);
163
+ return this;
164
+ }
165
+ once(event, listener) {
166
+ const namespacedEvent = `module:${this.moduleId}:${event}`;
167
+ this.globalBus.once(namespacedEvent, listener);
168
+ return this;
169
+ }
170
+ off(event, listener) {
171
+ const namespacedEvent = `module:${this.moduleId}:${event}`;
172
+ this.globalBus.off(namespacedEvent, listener);
173
+ return this;
174
+ }
175
+ removeAllListeners(event) {
176
+ if (event) {
177
+ const namespacedEvent = `module:${this.moduleId}:${event}`;
178
+ this.globalBus.removeAllListeners(namespacedEvent);
179
+ }
180
+ else {
181
+ // Remove all module events - would need access to globalBus emitter
182
+ // For now, this is a simplified implementation
183
+ const logger = (0, logger_1.createFrameworkLogger)("EventBus");
184
+ logger.warn(`Removing all listeners for module ${this.moduleId} not fully implemented`, "ModuleBus");
185
+ }
186
+ return this;
187
+ }
188
+ listenerCount(event) {
189
+ const namespacedEvent = `module:${this.moduleId}:${event}`;
190
+ return this.globalBus.listenerCount(namespacedEvent);
191
+ }
192
+ }
193
+ //# sourceMappingURL=event-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../src/core/events/event-bus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { MoroEventBus } from "./event-bus";
2
+ export type { EventContext, EventPayload, EventBusOptions, ModuleEventBus, GlobalEventBus, EventMetrics, SystemEvents, EventHandler, } from "../../types/events";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MoroEventBus = void 0;
4
+ // Event System - Centralized Exports
5
+ var event_bus_1 = require("./event-bus");
6
+ Object.defineProperty(exports, "MoroEventBus", { enumerable: true, get: function () { return event_bus_1.MoroEventBus; } });
7
+ //# sourceMappingURL=index.js.map