@morojs/moro 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/core/config/index.d.ts +5 -5
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/loader.d.ts +1 -1
- package/dist/core/config/loader.js +58 -82
- package/dist/core/config/loader.js.map +1 -1
- package/dist/core/config/schema.d.ts +1 -1
- package/dist/core/config/schema.js +52 -111
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/utils.d.ts +2 -2
- package/dist/core/config/utils.js +18 -18
- package/dist/core/config/utils.js.map +1 -1
- package/dist/core/database/adapters/drizzle.d.ts +1 -1
- package/dist/core/database/adapters/drizzle.js +39 -55
- package/dist/core/database/adapters/drizzle.js.map +1 -1
- package/dist/core/database/adapters/index.d.ts +7 -7
- package/dist/core/database/adapters/index.js +11 -11
- package/dist/core/database/adapters/index.js.map +1 -1
- package/dist/core/database/adapters/mongodb.d.ts +1 -1
- package/dist/core/database/adapters/mongodb.js +19 -23
- package/dist/core/database/adapters/mongodb.js.map +1 -1
- package/dist/core/database/adapters/mysql.d.ts +1 -1
- package/dist/core/database/adapters/mysql.js +31 -27
- package/dist/core/database/adapters/mysql.js.map +1 -1
- package/dist/core/database/adapters/postgresql.d.ts +1 -1
- package/dist/core/database/adapters/postgresql.js +27 -35
- package/dist/core/database/adapters/postgresql.js.map +1 -1
- package/dist/core/database/adapters/redis.d.ts +1 -1
- package/dist/core/database/adapters/redis.js +24 -24
- package/dist/core/database/adapters/redis.js.map +1 -1
- package/dist/core/database/adapters/sqlite.d.ts +1 -1
- package/dist/core/database/adapters/sqlite.js +36 -36
- package/dist/core/database/adapters/sqlite.js.map +1 -1
- package/dist/core/database/index.d.ts +2 -2
- package/dist/core/docs/index.d.ts +7 -7
- package/dist/core/docs/index.js +13 -15
- package/dist/core/docs/index.js.map +1 -1
- package/dist/core/docs/openapi-generator.d.ts +5 -5
- package/dist/core/docs/openapi-generator.js +93 -94
- package/dist/core/docs/openapi-generator.js.map +1 -1
- package/dist/core/docs/simple-docs.d.ts +1 -1
- package/dist/core/docs/simple-docs.js +25 -28
- package/dist/core/docs/simple-docs.js.map +1 -1
- package/dist/core/docs/swagger-ui.d.ts +2 -2
- package/dist/core/docs/swagger-ui.js +46 -51
- package/dist/core/docs/swagger-ui.js.map +1 -1
- package/dist/core/docs/zod-to-openapi.d.ts +1 -1
- package/dist/core/docs/zod-to-openapi.js +115 -125
- package/dist/core/docs/zod-to-openapi.js.map +1 -1
- package/dist/core/events/event-bus.d.ts +1 -1
- package/dist/core/events/event-bus.js +15 -21
- package/dist/core/events/event-bus.js.map +1 -1
- package/dist/core/events/index.d.ts +2 -2
- package/dist/core/framework.d.ts +5 -5
- package/dist/core/framework.js +55 -60
- package/dist/core/framework.js.map +1 -1
- package/dist/core/http/http-server.d.ts +2 -2
- package/dist/core/http/http-server.js +228 -261
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/index.d.ts +3 -3
- package/dist/core/http/router.d.ts +1 -1
- package/dist/core/http/router.js +15 -17
- package/dist/core/http/router.js.map +1 -1
- package/dist/core/logger/filters.d.ts +1 -1
- package/dist/core/logger/filters.js +16 -16
- package/dist/core/logger/filters.js.map +1 -1
- package/dist/core/logger/index.d.ts +3 -3
- package/dist/core/logger/logger.d.ts +1 -1
- package/dist/core/logger/logger.js +48 -59
- package/dist/core/logger/logger.js.map +1 -1
- package/dist/core/logger/outputs.d.ts +4 -4
- package/dist/core/logger/outputs.js +16 -20
- package/dist/core/logger/outputs.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/file.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/file.js +19 -19
- package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/cache/index.js +3 -3
- package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.js +5 -5
- package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.js +18 -18
- package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.js +8 -8
- package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +14 -14
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +13 -15
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/cdn/index.js +3 -3
- package/dist/core/middleware/built-in/adapters/index.d.ts +4 -4
- package/dist/core/middleware/built-in/auth.d.ts +1 -1
- package/dist/core/middleware/built-in/auth.js +14 -14
- package/dist/core/middleware/built-in/cache.d.ts +2 -2
- package/dist/core/middleware/built-in/cache.js +43 -45
- package/dist/core/middleware/built-in/cache.js.map +1 -1
- package/dist/core/middleware/built-in/cdn.d.ts +2 -2
- package/dist/core/middleware/built-in/cdn.js +27 -29
- package/dist/core/middleware/built-in/cdn.js.map +1 -1
- package/dist/core/middleware/built-in/cookie.d.ts +2 -2
- package/dist/core/middleware/built-in/cookie.js +17 -17
- package/dist/core/middleware/built-in/cookie.js.map +1 -1
- package/dist/core/middleware/built-in/cors.d.ts +1 -1
- package/dist/core/middleware/built-in/cors.js +13 -13
- package/dist/core/middleware/built-in/csp.d.ts +1 -1
- package/dist/core/middleware/built-in/csp.js +22 -25
- package/dist/core/middleware/built-in/csp.js.map +1 -1
- package/dist/core/middleware/built-in/csrf.d.ts +1 -1
- package/dist/core/middleware/built-in/csrf.js +21 -24
- package/dist/core/middleware/built-in/csrf.js.map +1 -1
- package/dist/core/middleware/built-in/error-tracker.js +2 -2
- package/dist/core/middleware/built-in/index.d.ts +14 -14
- package/dist/core/middleware/built-in/performance-monitor.js +2 -2
- package/dist/core/middleware/built-in/rate-limit.d.ts +1 -1
- package/dist/core/middleware/built-in/rate-limit.js +12 -12
- package/dist/core/middleware/built-in/request-logger.js.map +1 -1
- package/dist/core/middleware/built-in/session.d.ts +5 -5
- package/dist/core/middleware/built-in/session.js +35 -38
- package/dist/core/middleware/built-in/session.js.map +1 -1
- package/dist/core/middleware/built-in/sse.d.ts +1 -1
- package/dist/core/middleware/built-in/sse.js +20 -22
- package/dist/core/middleware/built-in/sse.js.map +1 -1
- package/dist/core/middleware/built-in/validation.d.ts +1 -1
- package/dist/core/middleware/built-in/validation.js +13 -13
- package/dist/core/middleware/index.d.ts +5 -5
- package/dist/core/middleware/index.js +16 -16
- package/dist/core/middleware/index.js.map +1 -1
- package/dist/core/modules/auto-discovery.d.ts +2 -2
- package/dist/core/modules/auto-discovery.js +12 -13
- package/dist/core/modules/auto-discovery.js.map +1 -1
- package/dist/core/modules/index.d.ts +2 -2
- package/dist/core/modules/index.js.map +1 -1
- package/dist/core/modules/modules.d.ts +3 -3
- package/dist/core/modules/modules.js +3 -6
- package/dist/core/modules/modules.js.map +1 -1
- package/dist/core/networking/index.d.ts +2 -2
- package/dist/core/networking/index.js.map +1 -1
- package/dist/core/networking/service-discovery.d.ts +2 -2
- package/dist/core/networking/service-discovery.js +27 -27
- package/dist/core/networking/service-discovery.js.map +1 -1
- package/dist/core/networking/websocket-manager.d.ts +3 -3
- package/dist/core/networking/websocket-manager.js +15 -16
- package/dist/core/networking/websocket-manager.js.map +1 -1
- package/dist/core/routing/app-integration.d.ts +2 -2
- package/dist/core/routing/app-integration.js +13 -13
- package/dist/core/routing/app-integration.js.map +1 -1
- package/dist/core/routing/index.d.ts +3 -3
- package/dist/core/routing/index.js +43 -52
- package/dist/core/routing/index.js.map +1 -1
- package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
- package/dist/core/runtime/aws-lambda-adapter.js +14 -16
- package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
- package/dist/core/runtime/base-adapter.d.ts +2 -2
- package/dist/core/runtime/base-adapter.js +11 -12
- package/dist/core/runtime/base-adapter.js.map +1 -1
- package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
- package/dist/core/runtime/cloudflare-workers-adapter.js +20 -21
- package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
- package/dist/core/runtime/index.d.ts +9 -9
- package/dist/core/runtime/index.js +4 -4
- package/dist/core/runtime/index.js.map +1 -1
- package/dist/core/runtime/node-adapter.d.ts +5 -5
- package/dist/core/runtime/node-adapter.js +35 -35
- package/dist/core/runtime/node-adapter.js.map +1 -1
- package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
- package/dist/core/runtime/vercel-edge-adapter.js +12 -15
- package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
- package/dist/core/utilities/circuit-breaker.js +6 -6
- package/dist/core/utilities/container.d.ts +1 -1
- package/dist/core/utilities/container.js +17 -22
- package/dist/core/utilities/container.js.map +1 -1
- package/dist/core/utilities/hooks.d.ts +3 -3
- package/dist/core/utilities/hooks.js +11 -11
- package/dist/core/utilities/hooks.js.map +1 -1
- package/dist/core/utilities/index.d.ts +4 -4
- package/dist/core/validation/index.d.ts +3 -3
- package/dist/core/validation/index.js +15 -15
- package/dist/core/validation/index.js.map +1 -1
- package/dist/index.d.ts +41 -30
- package/dist/index.js +50 -1
- package/dist/index.js.map +1 -1
- package/dist/moro.d.ts +14 -14
- package/dist/moro.js +79 -88
- package/dist/moro.js.map +1 -1
- package/dist/types/cache.d.ts +1 -1
- package/dist/types/core.d.ts +2 -2
- package/dist/types/events.d.ts +19 -19
- package/dist/types/hooks.d.ts +1 -1
- package/dist/types/http.d.ts +2 -2
- package/dist/types/logger.d.ts +3 -3
- package/dist/types/module.d.ts +2 -2
- package/dist/types/runtime.d.ts +2 -2
- package/dist/types/session.d.ts +4 -4
- package/package.json +183 -165
- package/src/core/config/index.ts +7 -9
- package/src/core/config/loader.ts +86 -158
- package/src/core/config/schema.ts +59 -122
- package/src/core/config/utils.ts +27 -45
- package/src/core/database/adapters/drizzle.ts +53 -75
- package/src/core/database/adapters/index.ts +26 -29
- package/src/core/database/adapters/mongodb.ts +31 -54
- package/src/core/database/adapters/mysql.ts +40 -50
- package/src/core/database/adapters/postgresql.ts +32 -42
- package/src/core/database/adapters/redis.ts +31 -36
- package/src/core/database/adapters/sqlite.ts +43 -51
- package/src/core/database/index.ts +2 -2
- package/src/core/docs/index.ts +25 -39
- package/src/core/docs/openapi-generator.ts +104 -117
- package/src/core/docs/simple-docs.ts +29 -39
- package/src/core/docs/swagger-ui.ts +57 -76
- package/src/core/docs/zod-to-openapi.ts +121 -153
- package/src/core/events/event-bus.ts +22 -45
- package/src/core/events/index.ts +2 -2
- package/src/core/framework.ts +119 -197
- package/src/core/http/http-server.ts +260 -360
- package/src/core/http/index.ts +3 -8
- package/src/core/http/router.ts +19 -31
- package/src/core/logger/filters.ts +19 -22
- package/src/core/logger/index.ts +3 -3
- package/src/core/logger/logger.ts +59 -100
- package/src/core/logger/outputs.ts +23 -27
- package/src/core/middleware/built-in/adapters/cache/file.ts +21 -23
- package/src/core/middleware/built-in/adapters/cache/index.ts +11 -14
- package/src/core/middleware/built-in/adapters/cache/memory.ts +7 -7
- package/src/core/middleware/built-in/adapters/cache/redis.ts +21 -24
- package/src/core/middleware/built-in/adapters/cdn/azure.ts +10 -18
- package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +19 -36
- package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +17 -26
- package/src/core/middleware/built-in/adapters/cdn/index.ts +10 -10
- package/src/core/middleware/built-in/adapters/index.ts +4 -4
- package/src/core/middleware/built-in/auth.ts +16 -16
- package/src/core/middleware/built-in/cache.ts +50 -67
- package/src/core/middleware/built-in/cdn.ts +34 -61
- package/src/core/middleware/built-in/cookie.ts +23 -28
- package/src/core/middleware/built-in/cors.ts +17 -17
- package/src/core/middleware/built-in/csp.ts +25 -31
- package/src/core/middleware/built-in/csrf.ts +24 -29
- package/src/core/middleware/built-in/error-tracker.ts +3 -3
- package/src/core/middleware/built-in/index.ts +28 -28
- package/src/core/middleware/built-in/performance-monitor.ts +4 -4
- package/src/core/middleware/built-in/rate-limit.ts +15 -15
- package/src/core/middleware/built-in/request-logger.ts +1 -3
- package/src/core/middleware/built-in/session.ts +47 -70
- package/src/core/middleware/built-in/sse.ts +23 -28
- package/src/core/middleware/built-in/validation.ts +15 -15
- package/src/core/middleware/index.ts +26 -37
- package/src/core/modules/auto-discovery.ts +21 -31
- package/src/core/modules/index.ts +2 -5
- package/src/core/modules/modules.ts +11 -20
- package/src/core/networking/index.ts +2 -6
- package/src/core/networking/service-discovery.ts +41 -61
- package/src/core/networking/websocket-manager.ts +27 -36
- package/src/core/routing/app-integration.ts +19 -32
- package/src/core/routing/index.ts +57 -88
- package/src/core/runtime/aws-lambda-adapter.ts +20 -30
- package/src/core/runtime/base-adapter.ts +17 -27
- package/src/core/runtime/cloudflare-workers-adapter.ts +28 -42
- package/src/core/runtime/index.ts +21 -33
- package/src/core/runtime/node-adapter.ts +59 -73
- package/src/core/runtime/vercel-edge-adapter.ts +18 -29
- package/src/core/utilities/circuit-breaker.ts +7 -7
- package/src/core/utilities/container.ts +52 -89
- package/src/core/utilities/hooks.ts +17 -23
- package/src/core/utilities/index.ts +4 -4
- package/src/core/validation/index.ts +25 -51
- package/src/index.ts +104 -60
- package/src/moro.ts +119 -191
- package/src/types/cache.ts +1 -1
- package/src/types/core.ts +2 -2
- package/src/types/database.ts +2 -10
- package/src/types/events.ts +23 -31
- package/src/types/hooks.ts +1 -1
- package/src/types/http.ts +5 -8
- package/src/types/logger.ts +7 -23
- package/src/types/module.ts +2 -2
- package/src/types/runtime.ts +6 -21
- package/src/types/session.ts +4 -4
package/src/types/cache.ts
CHANGED
package/src/types/core.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Core Framework Types
|
|
2
|
-
import { RuntimeConfig } from
|
|
3
|
-
import { LogLevel, LoggerOptions } from
|
|
2
|
+
import { RuntimeConfig } from './runtime';
|
|
3
|
+
import { LogLevel, LoggerOptions } from './logger';
|
|
4
4
|
|
|
5
5
|
export interface MoroOptions {
|
|
6
6
|
autoDiscover?: boolean;
|
package/src/types/database.ts
CHANGED
|
@@ -5,11 +5,7 @@ export interface DatabaseAdapter {
|
|
|
5
5
|
query<T = any>(sql: string, params?: any[]): Promise<T[]>;
|
|
6
6
|
queryOne<T = any>(sql: string, params?: any[]): Promise<T | null>;
|
|
7
7
|
insert<T = any>(table: string, data: Record<string, any>): Promise<T>;
|
|
8
|
-
update<T = any>(
|
|
9
|
-
table: string,
|
|
10
|
-
data: Record<string, any>,
|
|
11
|
-
where: Record<string, any>,
|
|
12
|
-
): Promise<T>;
|
|
8
|
+
update<T = any>(table: string, data: Record<string, any>, where: Record<string, any>): Promise<T>;
|
|
13
9
|
delete(table: string, where: Record<string, any>): Promise<number>;
|
|
14
10
|
transaction<T>(callback: (tx: DatabaseTransaction) => Promise<T>): Promise<T>;
|
|
15
11
|
}
|
|
@@ -18,11 +14,7 @@ export interface DatabaseTransaction {
|
|
|
18
14
|
query<T = any>(sql: string, params?: any[]): Promise<T[]>;
|
|
19
15
|
queryOne<T = any>(sql: string, params?: any[]): Promise<T | null>;
|
|
20
16
|
insert<T = any>(table: string, data: Record<string, any>): Promise<T>;
|
|
21
|
-
update<T = any>(
|
|
22
|
-
table: string,
|
|
23
|
-
data: Record<string, any>,
|
|
24
|
-
where: Record<string, any>,
|
|
25
|
-
): Promise<T>;
|
|
17
|
+
update<T = any>(table: string, data: Record<string, any>, where: Record<string, any>): Promise<T>;
|
|
26
18
|
delete(table: string, where: Record<string, any>): Promise<number>;
|
|
27
19
|
commit(): Promise<void>;
|
|
28
20
|
rollback(): Promise<void>;
|
package/src/types/events.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Enterprise Event System Types
|
|
2
|
-
import { EventEmitter } from
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
3
|
|
|
4
4
|
export interface EventContext {
|
|
5
5
|
timestamp: Date;
|
|
@@ -20,19 +20,13 @@ export interface EventBusOptions {
|
|
|
20
20
|
maxListeners?: number;
|
|
21
21
|
enablePersistence?: boolean;
|
|
22
22
|
enableMetrics?: boolean;
|
|
23
|
-
isolation?:
|
|
23
|
+
isolation?: 'none' | 'module' | 'strict';
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export interface ModuleEventBus {
|
|
27
27
|
emit<T = any>(event: string, data: T): Promise<boolean>;
|
|
28
|
-
on<T = any>(
|
|
29
|
-
|
|
30
|
-
listener: (payload: EventPayload<T>) => void | Promise<void>,
|
|
31
|
-
): this;
|
|
32
|
-
once<T = any>(
|
|
33
|
-
event: string,
|
|
34
|
-
listener: (payload: EventPayload<T>) => void | Promise<void>,
|
|
35
|
-
): this;
|
|
28
|
+
on<T = any>(event: string, listener: (payload: EventPayload<T>) => void | Promise<void>): this;
|
|
29
|
+
once<T = any>(event: string, listener: (payload: EventPayload<T>) => void | Promise<void>): this;
|
|
36
30
|
off(event: string, listener: Function): this;
|
|
37
31
|
removeAllListeners(event?: string): this;
|
|
38
32
|
listenerCount(event: string): number;
|
|
@@ -55,36 +49,34 @@ export interface EventMetrics {
|
|
|
55
49
|
}
|
|
56
50
|
|
|
57
51
|
export type SystemEvents = {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
52
|
+
'framework:initialized': { options: any };
|
|
53
|
+
'framework:shutdown': { graceful: boolean };
|
|
54
|
+
'module:loading': { moduleId: string; path?: string };
|
|
55
|
+
'module:loaded': { moduleId: string; version: string };
|
|
56
|
+
'module:unloaded': { moduleId: string };
|
|
57
|
+
'middleware:registered': { name: string; type: string };
|
|
58
|
+
'middleware:installed': { name: string; options?: any };
|
|
59
|
+
'database:connected': { adapter: string; config: any };
|
|
60
|
+
'database:disconnected': { adapter: string };
|
|
61
|
+
'server:starting': { port: number };
|
|
62
|
+
'server:started': { port: number; pid: number };
|
|
63
|
+
'server:stopping': { graceful: boolean };
|
|
64
|
+
'request:start': { method: string; path: string; requestId: string };
|
|
65
|
+
'request:end': {
|
|
72
66
|
method: string;
|
|
73
67
|
path: string;
|
|
74
68
|
requestId: string;
|
|
75
69
|
statusCode: number;
|
|
76
70
|
duration: number;
|
|
77
71
|
};
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
'websocket:connected': { namespace: string; socketId: string };
|
|
73
|
+
'websocket:disconnected': {
|
|
80
74
|
namespace: string;
|
|
81
75
|
socketId: string;
|
|
82
76
|
reason: string;
|
|
83
77
|
};
|
|
84
|
-
|
|
85
|
-
|
|
78
|
+
'error:handled': { error: Error; context: string; requestId?: string };
|
|
79
|
+
'error:unhandled': { error: Error; context: string };
|
|
86
80
|
};
|
|
87
81
|
|
|
88
|
-
export type EventHandler<T = any> = (
|
|
89
|
-
payload: EventPayload<T>,
|
|
90
|
-
) => void | Promise<void>;
|
|
82
|
+
export type EventHandler<T = any> = (payload: EventPayload<T>) => void | Promise<void>;
|
package/src/types/hooks.ts
CHANGED
package/src/types/http.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// HTTP Server Types
|
|
2
|
-
import { IncomingMessage, ServerResponse } from
|
|
2
|
+
import { IncomingMessage, ServerResponse } from 'http';
|
|
3
3
|
|
|
4
4
|
export interface HttpRequest extends IncomingMessage {
|
|
5
5
|
params: Record<string, string>;
|
|
@@ -19,7 +19,7 @@ export interface CookieOptions {
|
|
|
19
19
|
expires?: Date;
|
|
20
20
|
httpOnly?: boolean;
|
|
21
21
|
secure?: boolean;
|
|
22
|
-
sameSite?:
|
|
22
|
+
sameSite?: 'strict' | 'lax' | 'none';
|
|
23
23
|
domain?: string;
|
|
24
24
|
path?: string;
|
|
25
25
|
}
|
|
@@ -35,19 +35,16 @@ export interface HttpResponse extends ServerResponse {
|
|
|
35
35
|
render?(template: string, data?: any): Promise<void>;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
export type HttpHandler = (
|
|
39
|
-
req: HttpRequest,
|
|
40
|
-
res: HttpResponse,
|
|
41
|
-
) => Promise<void> | void;
|
|
38
|
+
export type HttpHandler = (req: HttpRequest, res: HttpResponse) => Promise<void> | void;
|
|
42
39
|
export type Middleware = (
|
|
43
40
|
req: HttpRequest,
|
|
44
41
|
res: HttpResponse,
|
|
45
|
-
next: () => void
|
|
42
|
+
next: () => void
|
|
46
43
|
) => Promise<void> | void;
|
|
47
44
|
export type MiddlewareFunction = (
|
|
48
45
|
req: HttpRequest,
|
|
49
46
|
res: HttpResponse,
|
|
50
|
-
next: () => void
|
|
47
|
+
next: () => void
|
|
51
48
|
) => void | Promise<void>;
|
|
52
49
|
|
|
53
50
|
// Internal router types
|
package/src/types/logger.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Enterprise Logger Types
|
|
2
|
-
export type LogLevel =
|
|
2
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
|
3
3
|
|
|
4
4
|
export interface LogEntry {
|
|
5
5
|
timestamp: Date;
|
|
@@ -26,7 +26,7 @@ export interface LoggerOptions {
|
|
|
26
26
|
enableContext?: boolean;
|
|
27
27
|
enableMetadata?: boolean;
|
|
28
28
|
enablePerformance?: boolean;
|
|
29
|
-
format?:
|
|
29
|
+
format?: 'pretty' | 'json' | 'compact';
|
|
30
30
|
outputs?: LogOutput[];
|
|
31
31
|
filters?: LogFilter[];
|
|
32
32
|
maxEntries?: number;
|
|
@@ -36,7 +36,7 @@ export interface LogOutput {
|
|
|
36
36
|
name: string;
|
|
37
37
|
write: (entry: LogEntry) => Promise<void> | void;
|
|
38
38
|
level?: LogLevel;
|
|
39
|
-
format?:
|
|
39
|
+
format?: 'pretty' | 'json' | 'compact';
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
export interface LogFilter {
|
|
@@ -45,31 +45,15 @@ export interface LogFilter {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
export interface Logger {
|
|
48
|
-
debug(
|
|
49
|
-
message: string,
|
|
50
|
-
context?: string,
|
|
51
|
-
metadata?: Record<string, any>,
|
|
52
|
-
): void;
|
|
48
|
+
debug(message: string, context?: string, metadata?: Record<string, any>): void;
|
|
53
49
|
info(message: string, context?: string, metadata?: Record<string, any>): void;
|
|
54
50
|
warn(message: string, context?: string, metadata?: Record<string, any>): void;
|
|
55
|
-
error(
|
|
56
|
-
|
|
57
|
-
context?: string,
|
|
58
|
-
metadata?: Record<string, any>,
|
|
59
|
-
): void;
|
|
60
|
-
fatal(
|
|
61
|
-
message: string | Error,
|
|
62
|
-
context?: string,
|
|
63
|
-
metadata?: Record<string, any>,
|
|
64
|
-
): void;
|
|
51
|
+
error(message: string | Error, context?: string, metadata?: Record<string, any>): void;
|
|
52
|
+
fatal(message: string | Error, context?: string, metadata?: Record<string, any>): void;
|
|
65
53
|
|
|
66
54
|
// Performance logging
|
|
67
55
|
time(label: string): void;
|
|
68
|
-
timeEnd(
|
|
69
|
-
label: string,
|
|
70
|
-
context?: string,
|
|
71
|
-
metadata?: Record<string, any>,
|
|
72
|
-
): void;
|
|
56
|
+
timeEnd(label: string, context?: string, metadata?: Record<string, any>): void;
|
|
73
57
|
|
|
74
58
|
// Structured logging
|
|
75
59
|
child(context: string, metadata?: Record<string, any>): Logger;
|
package/src/types/module.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Module Definition Types
|
|
2
2
|
export interface ModuleRoute {
|
|
3
|
-
method:
|
|
3
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
4
4
|
path: string;
|
|
5
5
|
handler: (req: any, res: any) => any | Promise<any>;
|
|
6
6
|
validation?: any;
|
|
@@ -50,7 +50,7 @@ export interface ModuleConfig {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
export interface InternalRouteDefinition {
|
|
53
|
-
method:
|
|
53
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
54
54
|
path: string;
|
|
55
55
|
handler: string;
|
|
56
56
|
middleware?: string[];
|
package/src/types/runtime.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
// Runtime abstraction types for multi-environment support
|
|
2
|
-
import { HttpRequest, HttpResponse } from
|
|
2
|
+
import { HttpRequest, HttpResponse } from './http';
|
|
3
3
|
|
|
4
|
-
export type RuntimeType =
|
|
5
|
-
| "node"
|
|
6
|
-
| "vercel-edge"
|
|
7
|
-
| "aws-lambda"
|
|
8
|
-
| "cloudflare-workers";
|
|
4
|
+
export type RuntimeType = 'node' | 'vercel-edge' | 'aws-lambda' | 'cloudflare-workers';
|
|
9
5
|
|
|
10
6
|
// Generic runtime request/response interfaces
|
|
11
7
|
export interface RuntimeRequest {
|
|
@@ -44,11 +40,7 @@ export interface RuntimeHttpResponse {
|
|
|
44
40
|
export type NodeHandler = (req: any, res: any) => Promise<void> | void;
|
|
45
41
|
export type EdgeHandler = (request: Request) => Promise<Response>;
|
|
46
42
|
export type LambdaHandler = (event: any, context: any) => Promise<any>;
|
|
47
|
-
export type WorkerHandler = (
|
|
48
|
-
request: Request,
|
|
49
|
-
env: any,
|
|
50
|
-
ctx: any,
|
|
51
|
-
) => Promise<Response>;
|
|
43
|
+
export type WorkerHandler = (request: Request, env: any, ctx: any) => Promise<Response>;
|
|
52
44
|
|
|
53
45
|
// Runtime adapter interface
|
|
54
46
|
export interface RuntimeAdapter {
|
|
@@ -60,21 +52,14 @@ export interface RuntimeAdapter {
|
|
|
60
52
|
// Convert MoroJS HttpResponse to runtime-specific response
|
|
61
53
|
adaptResponse(
|
|
62
54
|
moroResponse: HttpResponse | RuntimeHttpResponse,
|
|
63
|
-
runtimeRequest: any
|
|
55
|
+
runtimeRequest: any
|
|
64
56
|
): Promise<any>;
|
|
65
57
|
|
|
66
58
|
// Create the appropriate server/handler for the runtime
|
|
67
|
-
createServer(
|
|
68
|
-
handler: (req: HttpRequest, res: HttpResponse) => Promise<void>,
|
|
69
|
-
): any;
|
|
59
|
+
createServer(handler: (req: HttpRequest, res: HttpResponse) => Promise<void>): any;
|
|
70
60
|
|
|
71
61
|
// Start listening (for runtimes that support it)
|
|
72
|
-
listen?(
|
|
73
|
-
server: any,
|
|
74
|
-
port: number,
|
|
75
|
-
host?: string,
|
|
76
|
-
callback?: () => void,
|
|
77
|
-
): void;
|
|
62
|
+
listen?(server: any, port: number, host?: string, callback?: () => void): void;
|
|
78
63
|
}
|
|
79
64
|
|
|
80
65
|
// Runtime configuration
|
package/src/types/session.ts
CHANGED
|
@@ -22,14 +22,14 @@ export interface SessionInstance {
|
|
|
22
22
|
|
|
23
23
|
// Session properties
|
|
24
24
|
readonly sessionID: string;
|
|
25
|
-
readonly cookie?: SessionData[
|
|
25
|
+
readonly cookie?: SessionData['cookie'];
|
|
26
26
|
readonly isNew?: boolean;
|
|
27
27
|
readonly isModified?: boolean;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export interface SessionOptions {
|
|
31
31
|
// Store configuration
|
|
32
|
-
store?:
|
|
32
|
+
store?: 'memory' | 'redis' | 'file' | any;
|
|
33
33
|
storeOptions?: {
|
|
34
34
|
// Redis options
|
|
35
35
|
host?: string;
|
|
@@ -56,14 +56,14 @@ export interface SessionOptions {
|
|
|
56
56
|
expires?: Date; // Absolute expiry
|
|
57
57
|
httpOnly?: boolean; // Prevent XSS access
|
|
58
58
|
secure?: boolean; // HTTPS only
|
|
59
|
-
sameSite?:
|
|
59
|
+
sameSite?: 'strict' | 'lax' | 'none';
|
|
60
60
|
domain?: string;
|
|
61
61
|
path?: string;
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
// Security
|
|
65
65
|
proxy?: boolean; // Trust proxy for secure cookies
|
|
66
|
-
unset?:
|
|
66
|
+
unset?: 'destroy' | 'keep'; // What to do when session is unset
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
// Extend the HTTP request type to include session
|