@morojs/moro 1.3.0 → 1.4.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 (70) hide show
  1. package/README.md +61 -7
  2. package/dist/core/config/types.d.ts +147 -0
  3. package/dist/core/config/types.js +124 -0
  4. package/dist/core/config/types.js.map +1 -0
  5. package/dist/core/config/typescript-loader.d.ts +6 -0
  6. package/dist/core/config/typescript-loader.js +268 -0
  7. package/dist/core/config/typescript-loader.js.map +1 -0
  8. package/dist/core/config/validation.d.ts +18 -0
  9. package/dist/core/config/validation.js +134 -0
  10. package/dist/core/config/validation.js.map +1 -0
  11. package/dist/core/docs/openapi-generator.js +6 -6
  12. package/dist/core/docs/openapi-generator.js.map +1 -1
  13. package/dist/core/docs/schema-to-openapi.d.ts +7 -0
  14. package/dist/core/docs/schema-to-openapi.js +124 -0
  15. package/dist/core/docs/schema-to-openapi.js.map +1 -0
  16. package/dist/core/docs/zod-to-openapi.d.ts +2 -0
  17. package/dist/core/docs/zod-to-openapi.js.map +1 -1
  18. package/dist/core/framework.d.ts +29 -6
  19. package/dist/core/framework.js +117 -18
  20. package/dist/core/framework.js.map +1 -1
  21. package/dist/core/networking/adapters/index.d.ts +3 -0
  22. package/dist/core/networking/adapters/index.js +10 -0
  23. package/dist/core/networking/adapters/index.js.map +1 -0
  24. package/dist/core/networking/adapters/socketio-adapter.d.ts +16 -0
  25. package/dist/core/networking/adapters/socketio-adapter.js +244 -0
  26. package/dist/core/networking/adapters/socketio-adapter.js.map +1 -0
  27. package/dist/core/networking/adapters/ws-adapter.d.ts +54 -0
  28. package/dist/core/networking/adapters/ws-adapter.js +383 -0
  29. package/dist/core/networking/adapters/ws-adapter.js.map +1 -0
  30. package/dist/core/networking/websocket-adapter.d.ts +171 -0
  31. package/dist/core/networking/websocket-adapter.js +5 -0
  32. package/dist/core/networking/websocket-adapter.js.map +1 -0
  33. package/dist/core/networking/websocket-manager.d.ts +53 -17
  34. package/dist/core/networking/websocket-manager.js +166 -108
  35. package/dist/core/networking/websocket-manager.js.map +1 -1
  36. package/dist/core/routing/index.d.ts +13 -13
  37. package/dist/core/routing/index.js.map +1 -1
  38. package/dist/core/validation/adapters.d.ts +51 -0
  39. package/dist/core/validation/adapters.js +135 -0
  40. package/dist/core/validation/adapters.js.map +1 -0
  41. package/dist/core/validation/index.d.ts +14 -11
  42. package/dist/core/validation/index.js +37 -26
  43. package/dist/core/validation/index.js.map +1 -1
  44. package/dist/core/validation/schema-interface.d.ts +36 -0
  45. package/dist/core/validation/schema-interface.js +68 -0
  46. package/dist/core/validation/schema-interface.js.map +1 -0
  47. package/dist/index.d.ts +6 -1
  48. package/dist/index.js +14 -3
  49. package/dist/index.js.map +1 -1
  50. package/dist/moro.js +8 -2
  51. package/dist/moro.js.map +1 -1
  52. package/package.json +31 -7
  53. package/src/core/config/types.ts +277 -0
  54. package/src/core/config/typescript-loader.ts +571 -0
  55. package/src/core/config/validation.ts +145 -0
  56. package/src/core/docs/openapi-generator.ts +7 -6
  57. package/src/core/docs/schema-to-openapi.ts +148 -0
  58. package/src/core/docs/zod-to-openapi.ts +2 -0
  59. package/src/core/framework.ts +121 -28
  60. package/src/core/networking/adapters/index.ts +16 -0
  61. package/src/core/networking/adapters/socketio-adapter.ts +252 -0
  62. package/src/core/networking/adapters/ws-adapter.ts +425 -0
  63. package/src/core/networking/websocket-adapter.ts +217 -0
  64. package/src/core/networking/websocket-manager.ts +185 -127
  65. package/src/core/routing/index.ts +13 -13
  66. package/src/core/validation/adapters.ts +147 -0
  67. package/src/core/validation/index.ts +60 -38
  68. package/src/core/validation/schema-interface.ts +100 -0
  69. package/src/index.ts +25 -2
  70. package/src/moro.ts +11 -2
package/dist/index.d.ts CHANGED
@@ -15,9 +15,14 @@ export { MoroEventBus } from './core/events';
15
15
  export type { EventContext, EventPayload, EventBusOptions, ModuleEventBus, GlobalEventBus, EventMetrics, SystemEvents, EventHandler, } from './types/events';
16
16
  export { createFrameworkLogger, logger } from './core/logger';
17
17
  export { validate, body, query, params, combineSchemas, z } from './core/validation';
18
- export type { ValidationConfig, ValidationResult, ValidationError, ValidatedRequest, } from './core/validation';
18
+ export type { ValidationConfig, ValidationResult, ValidationErrorDetail, ValidatedRequest, } from './core/validation';
19
+ export type { ValidationSchema, ValidationError, InferSchemaType, } from './core/validation/schema-interface';
20
+ export { normalizeValidationError } from './core/validation/schema-interface';
21
+ export { joi, yup, fn as customValidator, classValidator } from './core/validation/adapters';
19
22
  export { defineModule, ModuleLoader, ModuleDiscovery, autoDiscoverModuleDirectories, } from './core/modules';
20
23
  export type { ModuleDefinition, ModuleRoute, ModuleSocket, ModuleConfig } from './types/module';
24
+ export type { WebSocketAdapter, WebSocketAdapterOptions, WebSocketNamespace, WebSocketConnection, WebSocketEmitter, WebSocketMiddleware, WebSocketEventHandler, } from './core/networking/websocket-adapter';
25
+ export { SocketIOAdapter, WSAdapter } from './core/networking/adapters';
21
26
  export { createRoute, defineRoute, EXECUTION_PHASES } from './core/routing';
22
27
  export { IntelligentRoutingManager, RouteRegistry } from './core/routing/app-integration';
23
28
  export type { RouteBuilder, RouteSchema, CompiledRoute, HttpMethod, AuthConfig, RateLimitConfig, CacheConfig, MiddlewarePhases, ExecutionPhase, } from './core/routing';
package/dist/index.js CHANGED
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ModuleDiscovery = exports.ModuleLoader = exports.defineModule = exports.z = exports.combineSchemas = exports.params = exports.query = exports.body = exports.validate = exports.logger = exports.createFrameworkLogger = exports.MoroEventBus = exports.middleware = exports.HOOK_EVENTS = exports.HookManager = exports.CircuitBreaker = exports.withTimeout = exports.withRetry = exports.withCaching = exports.withLogging = exports.ServiceLifecycle = exports.ServiceScope = exports.FunctionalContainer = exports.Container = exports.ServiceRegistry = exports.WebSocketManager = exports.simpleMiddleware = exports.builtInMiddleware = exports.httpMiddleware = exports.MoroHttpServer = exports.createWorkerHandler = exports.createLambdaHandler = exports.createEdgeHandler = exports.createNodeHandler = exports.createRuntimeAdapter = exports.CloudflareWorkersAdapter = exports.AWSLambdaAdapter = exports.VercelEdgeAdapter = exports.NodeRuntimeAdapter = exports.providers = exports.auth = exports.MoroJSAuth = exports.createAuthMiddleware = exports.createAppWorker = exports.createAppLambda = exports.createAppEdge = exports.createAppNode = exports.createApp = exports.MoroCore = exports.Moro = void 0;
18
- exports.MiddlewareManager = exports.resetConfig = exports.isConfigInitialized = exports.getGlobalConfig = exports.initializeConfig = exports.getConfigValue = exports.envVar = exports.requireEnvVars = exports.isStaging = exports.isProduction = exports.isDevelopment = exports.getEnvJson = exports.getEnvArray = exports.getEnvVar = exports.createModuleConfig = exports.getConfig = exports.generateDocsFromIntelligentRoutes = exports.createDocumentationSystem = exports.AppDocumentationManager = exports.DocumentationSystem = exports.RouteRegistry = exports.IntelligentRoutingManager = exports.EXECUTION_PHASES = exports.defineRoute = exports.createRoute = exports.autoDiscoverModuleDirectories = void 0;
17
+ exports.yup = exports.joi = exports.normalizeValidationError = exports.z = exports.combineSchemas = exports.params = exports.query = exports.body = exports.validate = exports.logger = exports.createFrameworkLogger = exports.MoroEventBus = exports.middleware = exports.HOOK_EVENTS = exports.HookManager = exports.CircuitBreaker = exports.withTimeout = exports.withRetry = exports.withCaching = exports.withLogging = exports.ServiceLifecycle = exports.ServiceScope = exports.FunctionalContainer = exports.Container = exports.ServiceRegistry = exports.WebSocketManager = exports.simpleMiddleware = exports.builtInMiddleware = exports.httpMiddleware = exports.MoroHttpServer = exports.createWorkerHandler = exports.createLambdaHandler = exports.createEdgeHandler = exports.createNodeHandler = exports.createRuntimeAdapter = exports.CloudflareWorkersAdapter = exports.AWSLambdaAdapter = exports.VercelEdgeAdapter = exports.NodeRuntimeAdapter = exports.providers = exports.auth = exports.MoroJSAuth = exports.createAuthMiddleware = exports.createAppWorker = exports.createAppLambda = exports.createAppEdge = exports.createAppNode = exports.createApp = exports.MoroCore = exports.Moro = void 0;
18
+ exports.MiddlewareManager = exports.resetConfig = exports.isConfigInitialized = exports.getGlobalConfig = exports.initializeConfig = exports.getConfigValue = exports.envVar = exports.requireEnvVars = exports.isStaging = exports.isProduction = exports.isDevelopment = exports.getEnvJson = exports.getEnvArray = exports.getEnvVar = exports.createModuleConfig = exports.getConfig = exports.generateDocsFromIntelligentRoutes = exports.createDocumentationSystem = exports.AppDocumentationManager = exports.DocumentationSystem = exports.RouteRegistry = exports.IntelligentRoutingManager = exports.EXECUTION_PHASES = exports.defineRoute = exports.createRoute = exports.WSAdapter = exports.SocketIOAdapter = exports.autoDiscoverModuleDirectories = exports.ModuleDiscovery = exports.ModuleLoader = exports.defineModule = exports.classValidator = exports.customValidator = void 0;
19
19
  // MoroJS Framework - Main Entry Point
20
20
  var moro_1 = require("./moro");
21
21
  Object.defineProperty(exports, "Moro", { enumerable: true, get: function () { return moro_1.Moro; } });
@@ -75,7 +75,7 @@ Object.defineProperty(exports, "MoroEventBus", { enumerable: true, get: function
75
75
  var logger_1 = require("./core/logger");
76
76
  Object.defineProperty(exports, "createFrameworkLogger", { enumerable: true, get: function () { return logger_1.createFrameworkLogger; } });
77
77
  Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return logger_1.logger; } });
78
- // Validation System (Zod-based)
78
+ // Universal Validation System
79
79
  var validation_1 = require("./core/validation");
80
80
  Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validation_1.validate; } });
81
81
  Object.defineProperty(exports, "body", { enumerable: true, get: function () { return validation_1.body; } });
@@ -83,12 +83,23 @@ Object.defineProperty(exports, "query", { enumerable: true, get: function () { r
83
83
  Object.defineProperty(exports, "params", { enumerable: true, get: function () { return validation_1.params; } });
84
84
  Object.defineProperty(exports, "combineSchemas", { enumerable: true, get: function () { return validation_1.combineSchemas; } });
85
85
  Object.defineProperty(exports, "z", { enumerable: true, get: function () { return validation_1.z; } });
86
+ var schema_interface_1 = require("./core/validation/schema-interface");
87
+ Object.defineProperty(exports, "normalizeValidationError", { enumerable: true, get: function () { return schema_interface_1.normalizeValidationError; } });
88
+ var adapters_1 = require("./core/validation/adapters");
89
+ Object.defineProperty(exports, "joi", { enumerable: true, get: function () { return adapters_1.joi; } });
90
+ Object.defineProperty(exports, "yup", { enumerable: true, get: function () { return adapters_1.yup; } });
91
+ Object.defineProperty(exports, "customValidator", { enumerable: true, get: function () { return adapters_1.fn; } });
92
+ Object.defineProperty(exports, "classValidator", { enumerable: true, get: function () { return adapters_1.classValidator; } });
86
93
  // Module System
87
94
  var modules_1 = require("./core/modules");
88
95
  Object.defineProperty(exports, "defineModule", { enumerable: true, get: function () { return modules_1.defineModule; } });
89
96
  Object.defineProperty(exports, "ModuleLoader", { enumerable: true, get: function () { return modules_1.ModuleLoader; } });
90
97
  Object.defineProperty(exports, "ModuleDiscovery", { enumerable: true, get: function () { return modules_1.ModuleDiscovery; } });
91
98
  Object.defineProperty(exports, "autoDiscoverModuleDirectories", { enumerable: true, get: function () { return modules_1.autoDiscoverModuleDirectories; } });
99
+ // Built-in WebSocket Adapters
100
+ var adapters_2 = require("./core/networking/adapters");
101
+ Object.defineProperty(exports, "SocketIOAdapter", { enumerable: true, get: function () { return adapters_2.SocketIOAdapter; } });
102
+ Object.defineProperty(exports, "WSAdapter", { enumerable: true, get: function () { return adapters_2.WSAdapter; } });
92
103
  // Intelligent Routing System
93
104
  var routing_1 = require("./core/routing");
94
105
  Object.defineProperty(exports, "createRoute", { enumerable: true, get: function () { return routing_1.createRoute; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/moro.js CHANGED
@@ -328,9 +328,15 @@ class Moro extends events_1.EventEmitter {
328
328
  }
329
329
  // WebSocket helper with events
330
330
  websocket(namespace, handlers) {
331
+ const adapter = this.coreFramework.getWebSocketAdapter();
332
+ if (!adapter) {
333
+ throw new Error('WebSocket features require a WebSocket adapter. Install socket.io or configure an adapter:\n' +
334
+ 'npm install socket.io\n' +
335
+ 'or\n' +
336
+ 'new Moro({ websocket: { adapter: new SocketIOAdapter() } })');
337
+ }
331
338
  this.emit('websocket:registering', { namespace, handlers });
332
- const io = this.coreFramework.getIOServer();
333
- const ns = io.of(namespace);
339
+ const ns = adapter.createNamespace(namespace);
334
340
  Object.entries(handlers).forEach(([event, handler]) => {
335
341
  ns.on('connection', socket => {
336
342
  this.emit('websocket:connection', { namespace, event, socket });
package/dist/moro.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"moro.js","sourceRoot":"","sources":["../src/moro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"moro.js","sourceRoot":"","sources":["../src/moro.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morojs/moro",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "High-performance Node.js framework with intelligent routing, automatic middleware ordering, enterprise authentication (Auth.js), type-safe Zod validation, and functional architecture",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -73,10 +73,7 @@
73
73
  "engines": {
74
74
  "node": ">=18.0.0"
75
75
  },
76
- "dependencies": {
77
- "socket.io": "^4.8.1",
78
- "zod": "^4.1.5"
79
- },
76
+ "dependencies": {},
80
77
  "peerDependencies": {
81
78
  "@auth/core": "^0.37.3",
82
79
  "better-sqlite3": "^12.2.0",
@@ -85,7 +82,13 @@
85
82
  "mongodb": "^6.19.0",
86
83
  "mysql2": "^3.14.5",
87
84
  "pg": "^8.16.3",
88
- "swagger-ui-dist": "^5.28.1"
85
+ "socket.io": "^4.8.1",
86
+ "swagger-ui-dist": "^5.28.1",
87
+ "ws": "^8.18.0",
88
+ "zod": "^4.1.5",
89
+ "joi": "^17.0.0",
90
+ "yup": "^1.0.0",
91
+ "class-validator": "^0.14.0"
89
92
  },
90
93
  "peerDependenciesMeta": {
91
94
  "@auth/core": {
@@ -111,6 +114,24 @@
111
114
  },
112
115
  "drizzle-orm": {
113
116
  "optional": true
117
+ },
118
+ "socket.io": {
119
+ "optional": true
120
+ },
121
+ "ws": {
122
+ "optional": true
123
+ },
124
+ "zod": {
125
+ "optional": true
126
+ },
127
+ "joi": {
128
+ "optional": true
129
+ },
130
+ "yup": {
131
+ "optional": true
132
+ },
133
+ "class-validator": {
134
+ "optional": true
114
135
  }
115
136
  },
116
137
  "devDependencies": {
@@ -119,6 +140,7 @@
119
140
  "@types/jest": "^30.0.0",
120
141
  "@types/node": "^24.3.1",
121
142
  "@types/supertest": "^6.0.2",
143
+ "@types/ws": "^8.18.1",
122
144
  "@typescript-eslint/eslint-plugin": "^8.18.2",
123
145
  "@typescript-eslint/parser": "^8.18.2",
124
146
  "depcheck": "^1.4.7",
@@ -130,6 +152,7 @@
130
152
  "jest": "^30.1.3",
131
153
  "lint-staged": "^16.1.6",
132
154
  "prettier": "^3.4.2",
155
+ "socket.io": "^4.8.1",
133
156
  "supertest": "^7.0.0",
134
157
  "ts-jest": "^29.4.1",
135
158
  "tsx": "^4.7.0",
@@ -139,7 +162,8 @@
139
162
  "typedoc-plugin-extras": "^4.0.1",
140
163
  "typedoc-plugin-markdown": "^4.8.1",
141
164
  "typedoc-theme-hierarchy": "^6.0.0",
142
- "typescript": "^5.9.2"
165
+ "typescript": "^5.9.2",
166
+ "ws": "^8.18.3"
143
167
  },
144
168
  "files": [
145
169
  "dist/**/*",
@@ -0,0 +1,277 @@
1
+ // TypeScript-based Configuration Types for Moro Framework
2
+ // Replaces Zod schemas with pure TypeScript interfaces
3
+
4
+ export interface ServerConfig {
5
+ port: number;
6
+ host: string;
7
+ environment: 'development' | 'staging' | 'production';
8
+ maxConnections: number;
9
+ timeout: number;
10
+ }
11
+
12
+ export interface ServiceDiscoveryConfig {
13
+ enabled: boolean;
14
+ type: 'memory' | 'consul' | 'kubernetes';
15
+ consulUrl: string;
16
+ kubernetesNamespace: string;
17
+ healthCheckInterval: number;
18
+ retryAttempts: number;
19
+ }
20
+
21
+ export interface DatabaseConfig {
22
+ url?: string;
23
+ redis: {
24
+ url: string;
25
+ maxRetries: number;
26
+ retryDelay: number;
27
+ keyPrefix: string;
28
+ };
29
+ mysql?: {
30
+ host: string;
31
+ port: number;
32
+ database?: string;
33
+ username?: string;
34
+ password?: string;
35
+ connectionLimit: number;
36
+ acquireTimeout: number;
37
+ timeout: number;
38
+ };
39
+ }
40
+
41
+ export interface ModuleDefaultsConfig {
42
+ cache: {
43
+ enabled: boolean;
44
+ defaultTtl: number;
45
+ maxSize: number;
46
+ strategy: 'lru' | 'lfu' | 'fifo';
47
+ };
48
+ rateLimit: {
49
+ enabled: boolean;
50
+ defaultRequests: number;
51
+ defaultWindow: number;
52
+ skipSuccessfulRequests: boolean;
53
+ skipFailedRequests: boolean;
54
+ };
55
+ validation: {
56
+ enabled: boolean;
57
+ stripUnknown: boolean;
58
+ abortEarly: boolean;
59
+ };
60
+ }
61
+
62
+ export interface LoggingConfig {
63
+ level: 'debug' | 'info' | 'warn' | 'error' | 'fatal';
64
+ format: 'pretty' | 'json' | 'compact';
65
+ enableColors: boolean;
66
+ enableTimestamp: boolean;
67
+ enableContext: boolean;
68
+ outputs: {
69
+ console: boolean;
70
+ file: {
71
+ enabled: boolean;
72
+ path: string;
73
+ maxSize: string;
74
+ maxFiles: number;
75
+ };
76
+ webhook: {
77
+ enabled: boolean;
78
+ url?: string;
79
+ headers: Record<string, string>;
80
+ };
81
+ };
82
+ }
83
+
84
+ export interface SecurityConfig {
85
+ cors: {
86
+ enabled: boolean;
87
+ origin: string | string[] | boolean;
88
+ methods: string[];
89
+ allowedHeaders: string[];
90
+ credentials: boolean;
91
+ };
92
+ helmet: {
93
+ enabled: boolean;
94
+ contentSecurityPolicy: boolean;
95
+ hsts: boolean;
96
+ noSniff: boolean;
97
+ frameguard: boolean;
98
+ };
99
+ rateLimit: {
100
+ global: {
101
+ enabled: boolean;
102
+ requests: number;
103
+ window: number;
104
+ };
105
+ };
106
+ }
107
+
108
+ export interface ExternalServicesConfig {
109
+ stripe?: {
110
+ secretKey?: string;
111
+ publishableKey?: string;
112
+ webhookSecret?: string;
113
+ apiVersion: string;
114
+ };
115
+ paypal?: {
116
+ clientId?: string;
117
+ clientSecret?: string;
118
+ webhookId?: string;
119
+ environment: 'sandbox' | 'production';
120
+ };
121
+ smtp?: {
122
+ host?: string;
123
+ port: number;
124
+ secure: boolean;
125
+ username?: string;
126
+ password?: string;
127
+ };
128
+ }
129
+
130
+ export interface PerformanceConfig {
131
+ compression: {
132
+ enabled: boolean;
133
+ level: number;
134
+ threshold: number;
135
+ };
136
+ circuitBreaker: {
137
+ enabled: boolean;
138
+ failureThreshold: number;
139
+ resetTimeout: number;
140
+ monitoringPeriod: number;
141
+ };
142
+ clustering: {
143
+ enabled: boolean;
144
+ workers: number | 'auto';
145
+ };
146
+ }
147
+
148
+ // Main configuration interface
149
+ export interface AppConfig {
150
+ server: ServerConfig;
151
+ serviceDiscovery: ServiceDiscoveryConfig;
152
+ database: DatabaseConfig;
153
+ modules: ModuleDefaultsConfig;
154
+ logging: LoggingConfig;
155
+ security: SecurityConfig;
156
+ external: ExternalServicesConfig;
157
+ performance: PerformanceConfig;
158
+ }
159
+
160
+ // Default configuration
161
+ export const DEFAULT_CONFIG: AppConfig = {
162
+ server: {
163
+ port: 3001,
164
+ host: 'localhost',
165
+ environment: 'development',
166
+ maxConnections: 1000,
167
+ timeout: 30000,
168
+ },
169
+ serviceDiscovery: {
170
+ enabled: false,
171
+ type: 'memory',
172
+ consulUrl: 'http://localhost:8500',
173
+ kubernetesNamespace: 'default',
174
+ healthCheckInterval: 30000,
175
+ retryAttempts: 3,
176
+ },
177
+ database: {
178
+ redis: {
179
+ url: 'redis://localhost:6379',
180
+ maxRetries: 3,
181
+ retryDelay: 1000,
182
+ keyPrefix: 'moro:',
183
+ },
184
+ },
185
+ modules: {
186
+ cache: {
187
+ enabled: true,
188
+ defaultTtl: 300,
189
+ maxSize: 1000,
190
+ strategy: 'lru',
191
+ },
192
+ rateLimit: {
193
+ enabled: true,
194
+ defaultRequests: 100,
195
+ defaultWindow: 60000,
196
+ skipSuccessfulRequests: false,
197
+ skipFailedRequests: false,
198
+ },
199
+ validation: {
200
+ enabled: true,
201
+ stripUnknown: true,
202
+ abortEarly: false,
203
+ },
204
+ },
205
+ logging: {
206
+ level: 'info',
207
+ format: 'pretty',
208
+ enableColors: true,
209
+ enableTimestamp: true,
210
+ enableContext: true,
211
+ outputs: {
212
+ console: true,
213
+ file: {
214
+ enabled: false,
215
+ path: './logs/moro.log',
216
+ maxSize: '10MB',
217
+ maxFiles: 5,
218
+ },
219
+ webhook: {
220
+ enabled: false,
221
+ headers: {},
222
+ },
223
+ },
224
+ },
225
+ security: {
226
+ cors: {
227
+ enabled: true,
228
+ origin: '*',
229
+ methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
230
+ allowedHeaders: ['Content-Type', 'Authorization'],
231
+ credentials: false,
232
+ },
233
+ helmet: {
234
+ enabled: true,
235
+ contentSecurityPolicy: true,
236
+ hsts: true,
237
+ noSniff: true,
238
+ frameguard: true,
239
+ },
240
+ rateLimit: {
241
+ global: {
242
+ enabled: false,
243
+ requests: 1000,
244
+ window: 60000,
245
+ },
246
+ },
247
+ },
248
+ external: {
249
+ stripe: {
250
+ apiVersion: '2023-10-16',
251
+ },
252
+ paypal: {
253
+ environment: 'sandbox',
254
+ },
255
+ smtp: {
256
+ port: 587,
257
+ secure: false,
258
+ },
259
+ },
260
+ performance: {
261
+ compression: {
262
+ enabled: true,
263
+ level: 6,
264
+ threshold: 1024,
265
+ },
266
+ circuitBreaker: {
267
+ enabled: true,
268
+ failureThreshold: 5,
269
+ resetTimeout: 60000,
270
+ monitoringPeriod: 10000,
271
+ },
272
+ clustering: {
273
+ enabled: false,
274
+ workers: 1,
275
+ },
276
+ },
277
+ };