@morojs/moro 1.5.17 → 1.6.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 (138) hide show
  1. package/README.md +48 -65
  2. package/dist/core/auth/morojs-adapter.js +12 -16
  3. package/dist/core/auth/morojs-adapter.js.map +1 -1
  4. package/dist/core/config/file-loader.d.ts +5 -0
  5. package/dist/core/config/file-loader.js +171 -0
  6. package/dist/core/config/file-loader.js.map +1 -1
  7. package/dist/core/config/index.d.ts +10 -39
  8. package/dist/core/config/index.js +29 -66
  9. package/dist/core/config/index.js.map +1 -1
  10. package/dist/core/config/loader.d.ts +7 -0
  11. package/dist/core/config/loader.js +269 -0
  12. package/dist/core/config/loader.js.map +1 -0
  13. package/dist/core/config/schema.js +31 -41
  14. package/dist/core/config/schema.js.map +1 -1
  15. package/dist/core/config/utils.d.ts +2 -9
  16. package/dist/core/config/utils.js +32 -19
  17. package/dist/core/config/utils.js.map +1 -1
  18. package/dist/core/config/validation.d.ts +17 -0
  19. package/dist/core/config/validation.js +131 -0
  20. package/dist/core/config/validation.js.map +1 -0
  21. package/dist/core/database/adapters/mongodb.d.ts +0 -10
  22. package/dist/core/database/adapters/mongodb.js +2 -23
  23. package/dist/core/database/adapters/mongodb.js.map +1 -1
  24. package/dist/core/database/adapters/mysql.d.ts +0 -11
  25. package/dist/core/database/adapters/mysql.js +0 -1
  26. package/dist/core/database/adapters/mysql.js.map +1 -1
  27. package/dist/core/database/adapters/postgresql.d.ts +1 -9
  28. package/dist/core/database/adapters/postgresql.js +1 -1
  29. package/dist/core/database/adapters/postgresql.js.map +1 -1
  30. package/dist/core/database/adapters/redis.d.ts +0 -9
  31. package/dist/core/database/adapters/redis.js +4 -14
  32. package/dist/core/database/adapters/redis.js.map +1 -1
  33. package/dist/core/framework.d.ts +7 -6
  34. package/dist/core/framework.js +16 -131
  35. package/dist/core/framework.js.map +1 -1
  36. package/dist/core/http/http-server.d.ts +0 -12
  37. package/dist/core/http/http-server.js +23 -151
  38. package/dist/core/http/http-server.js.map +1 -1
  39. package/dist/core/http/router.d.ts +0 -12
  40. package/dist/core/http/router.js +36 -114
  41. package/dist/core/http/router.js.map +1 -1
  42. package/dist/core/logger/filters.js +4 -12
  43. package/dist/core/logger/filters.js.map +1 -1
  44. package/dist/core/logger/index.d.ts +1 -1
  45. package/dist/core/logger/index.js +1 -2
  46. package/dist/core/logger/index.js.map +1 -1
  47. package/dist/core/logger/logger.d.ts +13 -29
  48. package/dist/core/logger/logger.js +203 -380
  49. package/dist/core/logger/logger.js.map +1 -1
  50. package/dist/core/logger/outputs.js +2 -0
  51. package/dist/core/logger/outputs.js.map +1 -1
  52. package/dist/core/middleware/built-in/auth.js +17 -88
  53. package/dist/core/middleware/built-in/auth.js.map +1 -1
  54. package/dist/core/middleware/built-in/cache.js +1 -3
  55. package/dist/core/middleware/built-in/cache.js.map +1 -1
  56. package/dist/core/middleware/built-in/index.d.ts +0 -1
  57. package/dist/core/middleware/built-in/index.js +1 -6
  58. package/dist/core/middleware/built-in/index.js.map +1 -1
  59. package/dist/core/middleware/built-in/request-logger.js +2 -3
  60. package/dist/core/middleware/built-in/request-logger.js.map +1 -1
  61. package/dist/core/middleware/built-in/sse.js +7 -9
  62. package/dist/core/middleware/built-in/sse.js.map +1 -1
  63. package/dist/core/modules/auto-discovery.d.ts +0 -17
  64. package/dist/core/modules/auto-discovery.js +12 -367
  65. package/dist/core/modules/auto-discovery.js.map +1 -1
  66. package/dist/core/modules/modules.js +2 -12
  67. package/dist/core/modules/modules.js.map +1 -1
  68. package/dist/core/networking/adapters/ws-adapter.d.ts +1 -1
  69. package/dist/core/networking/adapters/ws-adapter.js +2 -2
  70. package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
  71. package/dist/core/networking/service-discovery.js +7 -7
  72. package/dist/core/networking/service-discovery.js.map +1 -1
  73. package/dist/core/routing/index.d.ts +0 -20
  74. package/dist/core/routing/index.js +13 -178
  75. package/dist/core/routing/index.js.map +1 -1
  76. package/dist/core/runtime/node-adapter.js +6 -12
  77. package/dist/core/runtime/node-adapter.js.map +1 -1
  78. package/dist/moro.d.ts +0 -48
  79. package/dist/moro.js +148 -456
  80. package/dist/moro.js.map +1 -1
  81. package/dist/types/config.d.ts +2 -58
  82. package/dist/types/core.d.ts +40 -34
  83. package/dist/types/http.d.ts +1 -16
  84. package/dist/types/logger.d.ts +0 -7
  85. package/dist/types/module.d.ts +0 -11
  86. package/package.json +2 -2
  87. package/src/core/auth/morojs-adapter.ts +13 -18
  88. package/src/core/config/file-loader.ts +233 -0
  89. package/src/core/config/index.ts +32 -77
  90. package/src/core/config/loader.ts +633 -0
  91. package/src/core/config/schema.ts +31 -41
  92. package/src/core/config/utils.ts +29 -22
  93. package/src/core/config/validation.ts +140 -0
  94. package/src/core/database/README.md +16 -26
  95. package/src/core/database/adapters/mongodb.ts +2 -30
  96. package/src/core/database/adapters/mysql.ts +0 -14
  97. package/src/core/database/adapters/postgresql.ts +2 -12
  98. package/src/core/database/adapters/redis.ts +4 -27
  99. package/src/core/framework.ts +23 -163
  100. package/src/core/http/http-server.ts +36 -176
  101. package/src/core/http/router.ts +38 -127
  102. package/src/core/logger/filters.ts +4 -12
  103. package/src/core/logger/index.ts +0 -1
  104. package/src/core/logger/logger.ts +216 -427
  105. package/src/core/logger/outputs.ts +2 -0
  106. package/src/core/middleware/built-in/auth.ts +17 -98
  107. package/src/core/middleware/built-in/cache.ts +1 -3
  108. package/src/core/middleware/built-in/index.ts +0 -8
  109. package/src/core/middleware/built-in/request-logger.ts +1 -3
  110. package/src/core/middleware/built-in/sse.ts +7 -9
  111. package/src/core/modules/auto-discovery.ts +13 -476
  112. package/src/core/modules/modules.ts +9 -20
  113. package/src/core/networking/adapters/ws-adapter.ts +5 -2
  114. package/src/core/networking/service-discovery.ts +7 -6
  115. package/src/core/routing/index.ts +14 -198
  116. package/src/core/runtime/node-adapter.ts +6 -12
  117. package/src/moro.ts +166 -554
  118. package/src/types/config.ts +2 -59
  119. package/src/types/core.ts +45 -47
  120. package/src/types/http.ts +1 -23
  121. package/src/types/logger.ts +0 -9
  122. package/src/types/module.ts +0 -12
  123. package/dist/core/config/config-manager.d.ts +0 -44
  124. package/dist/core/config/config-manager.js +0 -114
  125. package/dist/core/config/config-manager.js.map +0 -1
  126. package/dist/core/config/config-sources.d.ts +0 -21
  127. package/dist/core/config/config-sources.js +0 -502
  128. package/dist/core/config/config-sources.js.map +0 -1
  129. package/dist/core/config/config-validator.d.ts +0 -21
  130. package/dist/core/config/config-validator.js +0 -765
  131. package/dist/core/config/config-validator.js.map +0 -1
  132. package/dist/core/middleware/built-in/jwt-helpers.d.ts +0 -118
  133. package/dist/core/middleware/built-in/jwt-helpers.js +0 -221
  134. package/dist/core/middleware/built-in/jwt-helpers.js.map +0 -1
  135. package/src/core/config/config-manager.ts +0 -133
  136. package/src/core/config/config-sources.ts +0 -596
  137. package/src/core/config/config-validator.ts +0 -1078
  138. package/src/core/middleware/built-in/jwt-helpers.ts +0 -240
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../../src/core/config/config-validator.ts"],"names":[],"mappings":"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"}
@@ -1,118 +0,0 @@
1
- /**
2
- * JWT Error Handling Utilities for Custom Middleware
3
- *
4
- * This module provides utilities to help users handle JWT errors gracefully
5
- * in their custom authentication middleware.
6
- */
7
- export interface JWTVerificationResult {
8
- success: boolean;
9
- payload?: any;
10
- error?: {
11
- type: 'expired' | 'invalid' | 'malformed' | 'missing_secret' | 'unknown';
12
- message: string;
13
- expiredAt?: Date;
14
- date?: Date;
15
- };
16
- }
17
- /**
18
- * Safely verify a JWT token with proper error handling
19
- *
20
- * @param token - The JWT token to verify
21
- * @param secret - The secret key for verification
22
- * @param options - Additional JWT verification options
23
- * @returns JWTVerificationResult with success status and payload or error details
24
- */
25
- export declare function safeVerifyJWT(token: string, secret: string, options?: any): JWTVerificationResult;
26
- /**
27
- * Extract JWT token from Authorization header
28
- *
29
- * @param authHeader - The Authorization header value
30
- * @returns The JWT token or null if not found/invalid format
31
- */
32
- export declare function extractJWTFromHeader(authHeader: string | undefined): string | null;
33
- /**
34
- * Create a standardized auth middleware error response
35
- *
36
- * @param error - The JWT verification error
37
- * @returns Standardized error response object
38
- */
39
- export declare function createAuthErrorResponse(error: JWTVerificationResult['error']): {
40
- success: boolean;
41
- error: string;
42
- message: string;
43
- expiredAt?: undefined;
44
- availableAt?: undefined;
45
- } | {
46
- success: boolean;
47
- error: string;
48
- message: string;
49
- expiredAt: Date | undefined;
50
- availableAt?: undefined;
51
- } | {
52
- success: boolean;
53
- error: string;
54
- message: string;
55
- availableAt: Date | undefined;
56
- expiredAt?: undefined;
57
- };
58
- /**
59
- * Example usage for custom middleware with elegant error handling:
60
- *
61
- * ```typescript
62
- * import { safeVerifyJWT, extractJWTFromHeader, createAuthErrorResponse } from '@morojs/moro';
63
- *
64
- * const authMiddleware = async (req: any, res: any, next: any) => {
65
- * const token = extractJWTFromHeader(req.headers.authorization);
66
- *
67
- * if (!token) {
68
- * return res.status(401).json({
69
- * success: false,
70
- * error: 'Missing token',
71
- * message: 'Authorization header with Bearer token is required'
72
- * });
73
- * }
74
- *
75
- * const result = safeVerifyJWT(token, process.env.JWT_SECRET!);
76
- *
77
- * if (!result.success) {
78
- * // This provides elegant, user-friendly error messages instead of stack traces
79
- * const errorResponse = createAuthErrorResponse(result.error);
80
- * return res.status(401).json(errorResponse);
81
- * }
82
- *
83
- * // Token is valid - attach user info to request
84
- * req.user = result.payload;
85
- * req.auth = {
86
- * user: result.payload,
87
- * isAuthenticated: true,
88
- * token
89
- * };
90
- *
91
- * next();
92
- * };
93
- * ```
94
- *
95
- * Benefits of using safeVerifyJWT vs raw jsonwebtoken.verify():
96
- *
97
- * ❌ Raw approach (shows ugly error messages to users):
98
- * ```typescript
99
- * try {
100
- * const decoded = jwt.verify(token, secret);
101
- * req.user = decoded;
102
- * } catch (error) {
103
- * // This exposes technical details and stack traces to users:
104
- * // "Invalid token: TokenExpiredError: jwt expired at /node_modules/jsonwebtoken/verify.js:190:21..."
105
- * throw error; // BAD - exposes internal details
106
- * }
107
- * ```
108
- *
109
- * ✅ Safe approach (shows clean, user-friendly messages):
110
- * ```typescript
111
- * const result = safeVerifyJWT(token, secret);
112
- * if (!result.success) {
113
- * // This returns clean messages like:
114
- * // { "error": "Token expired", "message": "Your session has expired. Please sign in again." }
115
- * return res.status(401).json(createAuthErrorResponse(result.error));
116
- * }
117
- * ```
118
- */
@@ -1,221 +0,0 @@
1
- "use strict";
2
- /**
3
- * JWT Error Handling Utilities for Custom Middleware
4
- *
5
- * This module provides utilities to help users handle JWT errors gracefully
6
- * in their custom authentication middleware.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.safeVerifyJWT = safeVerifyJWT;
10
- exports.extractJWTFromHeader = extractJWTFromHeader;
11
- exports.createAuthErrorResponse = createAuthErrorResponse;
12
- /**
13
- * Safely verify a JWT token with proper error handling
14
- *
15
- * @param token - The JWT token to verify
16
- * @param secret - The secret key for verification
17
- * @param options - Additional JWT verification options
18
- * @returns JWTVerificationResult with success status and payload or error details
19
- */
20
- function safeVerifyJWT(token, secret, options = {}) {
21
- // Check if jsonwebtoken is available
22
- let jwt;
23
- try {
24
- jwt = require('jsonwebtoken');
25
- }
26
- catch (error) {
27
- return {
28
- success: false,
29
- error: {
30
- type: 'missing_secret',
31
- message: 'JWT verification requires the "jsonwebtoken" package. ' +
32
- 'Please install it with: npm install jsonwebtoken @types/jsonwebtoken',
33
- },
34
- };
35
- }
36
- if (!secret) {
37
- return {
38
- success: false,
39
- error: {
40
- type: 'missing_secret',
41
- message: 'JWT verification requires a secret. ' +
42
- 'Please provide a secret for token verification.',
43
- },
44
- };
45
- }
46
- try {
47
- const payload = jwt.verify(token, secret, options);
48
- return {
49
- success: true,
50
- payload,
51
- };
52
- }
53
- catch (error) {
54
- // Handle specific JWT errors gracefully
55
- if (error.name === 'TokenExpiredError') {
56
- return {
57
- success: false,
58
- error: {
59
- type: 'expired',
60
- message: 'JWT token has expired',
61
- expiredAt: error.expiredAt,
62
- },
63
- };
64
- }
65
- else if (error.name === 'JsonWebTokenError') {
66
- return {
67
- success: false,
68
- error: {
69
- type: 'invalid',
70
- message: 'Invalid JWT token format or signature',
71
- },
72
- };
73
- }
74
- else if (error.name === 'NotBeforeError') {
75
- return {
76
- success: false,
77
- error: {
78
- type: 'malformed',
79
- message: 'JWT token is not active yet',
80
- date: error.date,
81
- },
82
- };
83
- }
84
- else {
85
- return {
86
- success: false,
87
- error: {
88
- type: 'unknown',
89
- message: `JWT verification failed: ${error.message}`,
90
- },
91
- };
92
- }
93
- }
94
- }
95
- /**
96
- * Extract JWT token from Authorization header
97
- *
98
- * @param authHeader - The Authorization header value
99
- * @returns The JWT token or null if not found/invalid format
100
- */
101
- function extractJWTFromHeader(authHeader) {
102
- if (!authHeader) {
103
- return null;
104
- }
105
- if (!authHeader.startsWith('Bearer ')) {
106
- return null;
107
- }
108
- const token = authHeader.substring(7);
109
- return token.trim() || null;
110
- }
111
- /**
112
- * Create a standardized auth middleware error response
113
- *
114
- * @param error - The JWT verification error
115
- * @returns Standardized error response object
116
- */
117
- function createAuthErrorResponse(error) {
118
- if (!error) {
119
- return {
120
- success: false,
121
- error: 'Authentication failed',
122
- message: 'Unknown authentication error',
123
- };
124
- }
125
- switch (error.type) {
126
- case 'expired':
127
- return {
128
- success: false,
129
- error: 'Token expired',
130
- message: 'Your session has expired. Please sign in again.',
131
- expiredAt: error.expiredAt,
132
- };
133
- case 'invalid':
134
- return {
135
- success: false,
136
- error: 'Invalid token',
137
- message: 'The provided authentication token is invalid.',
138
- };
139
- case 'malformed':
140
- return {
141
- success: false,
142
- error: 'Token not ready',
143
- message: 'The authentication token is not yet valid.',
144
- availableAt: error.date,
145
- };
146
- case 'missing_secret':
147
- return {
148
- success: false,
149
- error: 'Configuration error',
150
- message: 'Authentication service is not properly configured.',
151
- };
152
- default:
153
- return {
154
- success: false,
155
- error: 'Authentication failed',
156
- message: error.message || 'Authentication verification failed.',
157
- };
158
- }
159
- }
160
- /**
161
- * Example usage for custom middleware with elegant error handling:
162
- *
163
- * ```typescript
164
- * import { safeVerifyJWT, extractJWTFromHeader, createAuthErrorResponse } from '@morojs/moro';
165
- *
166
- * const authMiddleware = async (req: any, res: any, next: any) => {
167
- * const token = extractJWTFromHeader(req.headers.authorization);
168
- *
169
- * if (!token) {
170
- * return res.status(401).json({
171
- * success: false,
172
- * error: 'Missing token',
173
- * message: 'Authorization header with Bearer token is required'
174
- * });
175
- * }
176
- *
177
- * const result = safeVerifyJWT(token, process.env.JWT_SECRET!);
178
- *
179
- * if (!result.success) {
180
- * // This provides elegant, user-friendly error messages instead of stack traces
181
- * const errorResponse = createAuthErrorResponse(result.error);
182
- * return res.status(401).json(errorResponse);
183
- * }
184
- *
185
- * // Token is valid - attach user info to request
186
- * req.user = result.payload;
187
- * req.auth = {
188
- * user: result.payload,
189
- * isAuthenticated: true,
190
- * token
191
- * };
192
- *
193
- * next();
194
- * };
195
- * ```
196
- *
197
- * Benefits of using safeVerifyJWT vs raw jsonwebtoken.verify():
198
- *
199
- * ❌ Raw approach (shows ugly error messages to users):
200
- * ```typescript
201
- * try {
202
- * const decoded = jwt.verify(token, secret);
203
- * req.user = decoded;
204
- * } catch (error) {
205
- * // This exposes technical details and stack traces to users:
206
- * // "Invalid token: TokenExpiredError: jwt expired at /node_modules/jsonwebtoken/verify.js:190:21..."
207
- * throw error; // BAD - exposes internal details
208
- * }
209
- * ```
210
- *
211
- * ✅ Safe approach (shows clean, user-friendly messages):
212
- * ```typescript
213
- * const result = safeVerifyJWT(token, secret);
214
- * if (!result.success) {
215
- * // This returns clean messages like:
216
- * // { "error": "Token expired", "message": "Your session has expired. Please sign in again." }
217
- * return res.status(401).json(createAuthErrorResponse(result.error));
218
- * }
219
- * ```
220
- */
221
- //# sourceMappingURL=jwt-helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt-helpers.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/jwt-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,133 +0,0 @@
1
- /**
2
- * Configuration Manager - Immutable Single Source of Truth
3
- *
4
- * This module provides centralized, immutable configuration state management.
5
- * Configuration is locked at createApp() initialization and cannot be changed afterward.
6
- *
7
- * Precedence: Environment Variables > createApp Options > Config File > Defaults
8
- */
9
-
10
- import { AppConfig } from '../../types/config';
11
- import { createFrameworkLogger } from '../logger';
12
-
13
- const logger = createFrameworkLogger('ConfigManager');
14
-
15
- /**
16
- * Global configuration state - immutable after initialization
17
- */
18
- let globalConfig: Readonly<AppConfig> | null = null;
19
- let isLocked = false;
20
-
21
- /**
22
- * Initialize and lock global configuration state
23
- * This should only be called once during createApp() initialization
24
- */
25
- export function initializeAndLockConfig(config: AppConfig): void {
26
- if (isLocked) {
27
- throw new Error(
28
- 'Configuration is already locked and cannot be changed. ' +
29
- 'Configuration can only be set once during createApp() initialization.'
30
- );
31
- }
32
-
33
- // Deep freeze the configuration to make it truly immutable
34
- globalConfig = deepFreeze(config);
35
- isLocked = true;
36
-
37
- logger.info(
38
- `Configuration locked and initialized: ${process.env.NODE_ENV || 'development'}:${config.server.port}`
39
- );
40
- }
41
-
42
- /**
43
- * Get the current global configuration
44
- * Throws if configuration hasn't been initialized
45
- */
46
- export function getGlobalConfig(): Readonly<AppConfig> {
47
- if (!globalConfig || !isLocked) {
48
- throw new Error(
49
- 'Configuration not initialized. Call createApp() to initialize the configuration system.'
50
- );
51
- }
52
- return globalConfig;
53
- }
54
-
55
- /**
56
- * Check if configuration has been initialized and locked
57
- */
58
- export function isConfigLocked(): boolean {
59
- return isLocked && globalConfig !== null;
60
- }
61
-
62
- /**
63
- * Reset configuration state (for testing only)
64
- * @internal - This should only be used in tests
65
- */
66
- export function resetConfigForTesting(): void {
67
- if (
68
- process.env.NODE_ENV !== 'test' &&
69
- !process.env.MORO_ALLOW_CONFIG_RESET &&
70
- !process.env.JEST_WORKER_ID
71
- ) {
72
- throw new Error(
73
- 'Configuration reset is only allowed in test environments. ' +
74
- 'Set MORO_ALLOW_CONFIG_RESET=true to override this check.'
75
- );
76
- }
77
-
78
- globalConfig = null;
79
- isLocked = false;
80
- logger.debug('Configuration state reset for testing');
81
- }
82
-
83
- /**
84
- * Deep freeze an object to make it truly immutable
85
- * This prevents any accidental mutations to the configuration
86
- */
87
- function deepFreeze<T>(obj: T): Readonly<T> {
88
- // Get property names
89
- const propNames = Object.getOwnPropertyNames(obj);
90
-
91
- // Freeze properties before freezing self
92
- for (const name of propNames) {
93
- const value = (obj as any)[name];
94
-
95
- if (value && typeof value === 'object') {
96
- deepFreeze(value);
97
- }
98
- }
99
-
100
- return Object.freeze(obj);
101
- }
102
-
103
- /**
104
- * Get a specific configuration value using dot notation
105
- * This provides a safe way to access nested config values
106
- *
107
- * @example
108
- * getConfigValue('server.port') // Returns the server port
109
- * getConfigValue('database.redis.url') // Returns the Redis URL
110
- */
111
- export function getConfigValue<T = any>(path: string): T | undefined {
112
- const config = getGlobalConfig();
113
-
114
- return path.split('.').reduce((obj: any, key: string) => {
115
- return obj && obj[key] !== undefined ? obj[key] : undefined;
116
- }, config);
117
- }
118
-
119
- /**
120
- * Utility functions for common environment checks
121
- * These now read NODE_ENV directly for consistency with Node.js ecosystem
122
- */
123
- export function isDevelopment(): boolean {
124
- return process.env.NODE_ENV === 'development';
125
- }
126
-
127
- export function isProduction(): boolean {
128
- return process.env.NODE_ENV === 'production';
129
- }
130
-
131
- export function isStaging(): boolean {
132
- return process.env.NODE_ENV === 'staging';
133
- }