@scpxl/nodejs-framework 1.0.17 → 1.0.19
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 +29 -0
- package/dist/api-requester/api-requester.d.ts +27 -6
- package/dist/api-requester/api-requester.d.ts.map +1 -1
- package/dist/api-requester/api-requester.js +188 -26
- package/dist/api-requester/api-requester.js.map +2 -2
- package/dist/api-requester/index.d.ts +1 -0
- package/dist/api-requester/index.d.ts.map +1 -1
- package/dist/api-requester/index.js.map +1 -1
- package/dist/application/base-application.d.ts +15 -22
- package/dist/application/base-application.d.ts.map +1 -1
- package/dist/application/base-application.js +145 -111
- package/dist/application/base-application.js.map +2 -2
- package/dist/application/command-application.d.ts.map +1 -1
- package/dist/application/command-application.js +3 -4
- package/dist/application/command-application.js.map +2 -2
- package/dist/application/web-application.d.ts.map +1 -1
- package/dist/application/web-application.js +9 -2
- package/dist/application/web-application.js.map +2 -2
- package/dist/cache/manager.d.ts +87 -6
- package/dist/cache/manager.d.ts.map +1 -1
- package/dist/cache/manager.js +77 -30
- package/dist/cache/manager.js.map +2 -2
- package/dist/cluster/cluster-manager.d.ts.map +1 -1
- package/dist/cluster/cluster-manager.js +5 -8
- package/dist/cluster/cluster-manager.js.map +2 -2
- package/dist/config/env.d.ts +11 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +103 -0
- package/dist/config/env.js.map +7 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +7 -0
- package/dist/config/schema.d.ts +408 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +218 -0
- package/dist/config/schema.js.map +7 -0
- package/dist/database/dynamic-entity.d.ts.map +1 -1
- package/dist/database/dynamic-entity.js +6 -2
- package/dist/database/dynamic-entity.js.map +2 -2
- package/dist/database/instance.d.ts.map +1 -1
- package/dist/database/instance.js +0 -8
- package/dist/database/instance.js.map +2 -2
- package/dist/database/manager.d.ts.map +1 -1
- package/dist/database/manager.js +71 -9
- package/dist/database/manager.js.map +2 -2
- package/dist/error/error-reporter.d.ts +96 -0
- package/dist/error/error-reporter.d.ts.map +1 -0
- package/dist/error/error-reporter.js +228 -0
- package/dist/error/error-reporter.js.map +7 -0
- package/dist/error/error.interface.d.ts +126 -0
- package/dist/error/error.interface.d.ts.map +1 -0
- package/dist/error/error.interface.js +45 -0
- package/dist/error/error.interface.js.map +7 -0
- package/dist/error/framework-errors.d.ts +113 -0
- package/dist/error/framework-errors.d.ts.map +1 -0
- package/dist/error/framework-errors.js +176 -0
- package/dist/error/framework-errors.js.map +7 -0
- package/dist/error/index.d.ts +6 -0
- package/dist/error/index.d.ts.map +1 -0
- package/dist/error/index.js +34 -0
- package/dist/error/index.js.map +7 -0
- package/dist/event/manager.d.ts.map +1 -1
- package/dist/event/manager.js +2 -9
- package/dist/event/manager.js.map +2 -2
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +2 -2
- package/dist/lifecycle/exit.d.ts +2 -1
- package/dist/lifecycle/exit.d.ts.map +1 -1
- package/dist/lifecycle/exit.js +6 -0
- package/dist/lifecycle/exit.js.map +2 -2
- package/dist/lifecycle/index.d.ts +7 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/index.js +12 -0
- package/dist/lifecycle/index.js.map +7 -0
- package/dist/lifecycle/lifecycle-manager.d.ts +55 -2
- package/dist/lifecycle/lifecycle-manager.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-manager.js +233 -7
- package/dist/lifecycle/lifecycle-manager.js.map +3 -3
- package/dist/lifecycle/shutdown-controller.d.ts +15 -0
- package/dist/lifecycle/shutdown-controller.d.ts.map +1 -0
- package/dist/lifecycle/shutdown-controller.js +38 -0
- package/dist/lifecycle/shutdown-controller.js.map +7 -0
- package/dist/lifecycle/types.d.ts +28 -0
- package/dist/lifecycle/types.d.ts.map +1 -0
- package/dist/lifecycle/types.js +13 -0
- package/dist/lifecycle/types.js.map +7 -0
- package/dist/logger/logger.d.ts +2 -1
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +35 -11
- package/dist/logger/logger.js.map +2 -2
- package/dist/performance/cache-performance.d.ts +6 -0
- package/dist/performance/cache-performance.d.ts.map +1 -1
- package/dist/performance/cache-performance.js +16 -0
- package/dist/performance/cache-performance.js.map +2 -2
- package/dist/performance/index.d.ts +1 -0
- package/dist/performance/index.d.ts.map +1 -1
- package/dist/performance/index.js +1 -0
- package/dist/performance/index.js.map +2 -2
- package/dist/performance/performance-monitor.d.ts.map +1 -1
- package/dist/performance/performance-monitor.js +47 -18
- package/dist/performance/performance-monitor.js.map +2 -2
- package/dist/performance/performance-monitor.plugin.d.ts +24 -0
- package/dist/performance/performance-monitor.plugin.d.ts.map +1 -0
- package/dist/performance/performance-monitor.plugin.js +89 -0
- package/dist/performance/performance-monitor.plugin.js.map +7 -0
- package/dist/performance/webserver-performance.js +1 -1
- package/dist/performance/webserver-performance.js.map +2 -2
- package/dist/queue/manager.d.ts.map +1 -1
- package/dist/queue/manager.js +3 -10
- package/dist/queue/manager.js.map +2 -2
- package/dist/queue/worker.d.ts.map +1 -1
- package/dist/queue/worker.js +2 -2
- package/dist/queue/worker.js.map +2 -2
- package/dist/redis/manager.d.ts.map +1 -1
- package/dist/redis/manager.js +228 -33
- package/dist/redis/manager.js.map +2 -2
- package/dist/request-context/index.d.ts +3 -0
- package/dist/request-context/index.d.ts.map +1 -0
- package/dist/request-context/index.js +25 -0
- package/dist/request-context/index.js.map +7 -0
- package/dist/request-context/request-context.d.ts +108 -0
- package/dist/request-context/request-context.d.ts.map +1 -0
- package/dist/request-context/request-context.interface.d.ts +46 -0
- package/dist/request-context/request-context.interface.d.ts.map +1 -0
- package/dist/request-context/request-context.interface.js +1 -0
- package/dist/request-context/request-context.interface.js.map +7 -0
- package/dist/request-context/request-context.js +79 -0
- package/dist/request-context/request-context.js.map +7 -0
- package/dist/services/aws/s3.js +4 -6
- package/dist/services/aws/s3.js.map +2 -2
- package/dist/util/file.d.ts +13 -0
- package/dist/util/file.d.ts.map +1 -1
- package/dist/util/file.js +46 -9
- package/dist/util/file.js.map +2 -2
- package/dist/util/helper.d.ts +16 -1
- package/dist/util/helper.d.ts.map +1 -1
- package/dist/util/helper.js +19 -43
- package/dist/util/helper.js.map +2 -2
- package/dist/util/index.d.ts +1 -0
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +18 -16
- package/dist/util/index.js.map +2 -2
- package/dist/util/loader.d.ts.map +1 -1
- package/dist/util/loader.js +13 -2
- package/dist/util/loader.js.map +2 -2
- package/dist/util/os.d.ts.map +1 -1
- package/dist/util/os.js +8 -14
- package/dist/util/os.js.map +2 -2
- package/dist/util/time.d.ts +8 -2
- package/dist/util/time.d.ts.map +1 -1
- package/dist/util/time.js +12 -7
- package/dist/util/time.js.map +2 -2
- package/dist/util/timing.d.ts +36 -0
- package/dist/util/timing.d.ts.map +1 -0
- package/dist/util/timing.interface.d.ts +47 -0
- package/dist/util/timing.interface.d.ts.map +1 -0
- package/dist/util/timing.interface.js +1 -0
- package/dist/util/timing.interface.js.map +7 -0
- package/dist/util/timing.js +98 -0
- package/dist/util/timing.js.map +7 -0
- package/dist/util/url.js +1 -1
- package/dist/util/url.js.map +2 -2
- package/dist/webserver/controller/base.d.ts +3 -1
- package/dist/webserver/controller/base.d.ts.map +1 -1
- package/dist/webserver/controller/base.interface.d.ts +2 -0
- package/dist/webserver/controller/base.interface.d.ts.map +1 -1
- package/dist/webserver/controller/base.js +4 -1
- package/dist/webserver/controller/base.js.map +2 -2
- package/dist/webserver/controller/health.d.ts +8 -1
- package/dist/webserver/controller/health.d.ts.map +1 -1
- package/dist/webserver/controller/health.js +36 -22
- package/dist/webserver/controller/health.js.map +2 -2
- package/dist/webserver/webserver.d.ts +16 -2
- package/dist/webserver/webserver.d.ts.map +1 -1
- package/dist/webserver/webserver.interface.d.ts +37 -0
- package/dist/webserver/webserver.interface.d.ts.map +1 -1
- package/dist/webserver/webserver.interface.js.map +2 -2
- package/dist/webserver/webserver.js +117 -20
- package/dist/webserver/webserver.js.map +2 -2
- package/dist/websocket/controllers/server/system.d.ts.map +1 -1
- package/dist/websocket/controllers/server/system.js.map +2 -2
- package/dist/websocket/websocket-base.d.ts.map +1 -1
- package/dist/websocket/websocket-base.js +2 -3
- package/dist/websocket/websocket-base.js.map +2 -2
- package/dist/websocket/websocket-server.d.ts +1 -1
- package/dist/websocket/websocket-server.d.ts.map +1 -1
- package/dist/websocket/websocket-server.js +7 -31
- package/dist/websocket/websocket-server.js.map +2 -2
- package/package.json +51 -10
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error severity levels for classification and handling
|
|
3
|
+
*/
|
|
4
|
+
export declare enum ErrorSeverity {
|
|
5
|
+
/**
|
|
6
|
+
* Fatal errors that require immediate attention and may cause application failure
|
|
7
|
+
*/
|
|
8
|
+
FATAL = "fatal",
|
|
9
|
+
/**
|
|
10
|
+
* Critical errors that significantly impact functionality
|
|
11
|
+
*/
|
|
12
|
+
CRITICAL = "critical",
|
|
13
|
+
/**
|
|
14
|
+
* Major errors that affect features but don't crash the application
|
|
15
|
+
*/
|
|
16
|
+
ERROR = "error",
|
|
17
|
+
/**
|
|
18
|
+
* Warnings about potential issues
|
|
19
|
+
*/
|
|
20
|
+
WARNING = "warning",
|
|
21
|
+
/**
|
|
22
|
+
* Informational messages about error conditions
|
|
23
|
+
*/
|
|
24
|
+
INFO = "info"
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Standard error codes for framework errors
|
|
28
|
+
*/
|
|
29
|
+
export declare enum ErrorCode {
|
|
30
|
+
INVALID_CONFIG = "ERR_INVALID_CONFIG",
|
|
31
|
+
MISSING_CONFIG = "ERR_MISSING_CONFIG",
|
|
32
|
+
CONFIG_VALIDATION_FAILED = "ERR_CONFIG_VALIDATION_FAILED",
|
|
33
|
+
LIFECYCLE_INIT_FAILED = "ERR_LIFECYCLE_INIT_FAILED",
|
|
34
|
+
LIFECYCLE_START_FAILED = "ERR_LIFECYCLE_START_FAILED",
|
|
35
|
+
LIFECYCLE_SHUTDOWN_FAILED = "ERR_LIFECYCLE_SHUTDOWN_FAILED",
|
|
36
|
+
LIFECYCLE_TIMEOUT = "ERR_LIFECYCLE_TIMEOUT",
|
|
37
|
+
DATABASE_CONNECTION_FAILED = "ERR_DATABASE_CONNECTION_FAILED",
|
|
38
|
+
DATABASE_QUERY_FAILED = "ERR_DATABASE_QUERY_FAILED",
|
|
39
|
+
DATABASE_MIGRATION_FAILED = "ERR_DATABASE_MIGRATION_FAILED",
|
|
40
|
+
REDIS_CONNECTION_FAILED = "ERR_REDIS_CONNECTION_FAILED",
|
|
41
|
+
REDIS_COMMAND_FAILED = "ERR_REDIS_COMMAND_FAILED",
|
|
42
|
+
QUEUE_JOB_FAILED = "ERR_QUEUE_JOB_FAILED",
|
|
43
|
+
QUEUE_CONNECTION_FAILED = "ERR_QUEUE_CONNECTION_FAILED",
|
|
44
|
+
QUEUE_PROCESSOR_NOT_FOUND = "ERR_QUEUE_PROCESSOR_NOT_FOUND",
|
|
45
|
+
WEB_SERVER_START_FAILED = "ERR_WEB_SERVER_START_FAILED",
|
|
46
|
+
WEB_SERVER_REQUEST_FAILED = "ERR_WEB_SERVER_REQUEST_FAILED",
|
|
47
|
+
WEB_CONTROLLER_NOT_FOUND = "ERR_WEB_CONTROLLER_NOT_FOUND",
|
|
48
|
+
WEB_ACTION_NOT_FOUND = "ERR_WEB_ACTION_NOT_FOUND",
|
|
49
|
+
WEBSOCKET_CONNECTION_FAILED = "ERR_WEBSOCKET_CONNECTION_FAILED",
|
|
50
|
+
WEBSOCKET_MESSAGE_FAILED = "ERR_WEBSOCKET_MESSAGE_FAILED",
|
|
51
|
+
VALIDATION_FAILED = "ERR_VALIDATION_FAILED",
|
|
52
|
+
INVALID_INPUT = "ERR_INVALID_INPUT",
|
|
53
|
+
RESOURCE_NOT_FOUND = "ERR_RESOURCE_NOT_FOUND",
|
|
54
|
+
RESOURCE_ALREADY_EXISTS = "ERR_RESOURCE_ALREADY_EXISTS",
|
|
55
|
+
RESOURCE_LOCKED = "ERR_RESOURCE_LOCKED",
|
|
56
|
+
UNKNOWN = "ERR_UNKNOWN",
|
|
57
|
+
INTERNAL = "ERR_INTERNAL",
|
|
58
|
+
NOT_IMPLEMENTED = "ERR_NOT_IMPLEMENTED"
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Normalized error envelope for consistent error handling
|
|
62
|
+
*/
|
|
63
|
+
export interface ErrorEnvelope {
|
|
64
|
+
/**
|
|
65
|
+
* Error message (human-readable)
|
|
66
|
+
*/
|
|
67
|
+
message: string;
|
|
68
|
+
/**
|
|
69
|
+
* Error code (machine-readable)
|
|
70
|
+
*/
|
|
71
|
+
code: ErrorCode | string;
|
|
72
|
+
/**
|
|
73
|
+
* Error severity level
|
|
74
|
+
*/
|
|
75
|
+
severity: ErrorSeverity;
|
|
76
|
+
/**
|
|
77
|
+
* Original error stack trace
|
|
78
|
+
*/
|
|
79
|
+
stack?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Request ID for correlation (if available)
|
|
82
|
+
*/
|
|
83
|
+
requestId?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Additional context about the error
|
|
86
|
+
*/
|
|
87
|
+
context?: Record<string, unknown>;
|
|
88
|
+
/**
|
|
89
|
+
* Underlying cause (if error was wrapped)
|
|
90
|
+
*/
|
|
91
|
+
cause?: unknown;
|
|
92
|
+
/**
|
|
93
|
+
* Timestamp when error occurred
|
|
94
|
+
*/
|
|
95
|
+
timestamp: Date;
|
|
96
|
+
/**
|
|
97
|
+
* Error name/type
|
|
98
|
+
*/
|
|
99
|
+
name?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Options for error reporting
|
|
103
|
+
*/
|
|
104
|
+
export interface ErrorReportOptions {
|
|
105
|
+
/**
|
|
106
|
+
* Additional context to include with the error
|
|
107
|
+
*/
|
|
108
|
+
context?: Record<string, unknown>;
|
|
109
|
+
/**
|
|
110
|
+
* Override error severity
|
|
111
|
+
*/
|
|
112
|
+
severity?: ErrorSeverity;
|
|
113
|
+
/**
|
|
114
|
+
* Override error code
|
|
115
|
+
*/
|
|
116
|
+
code?: ErrorCode | string;
|
|
117
|
+
/**
|
|
118
|
+
* Whether to capture this error in Sentry
|
|
119
|
+
*/
|
|
120
|
+
captureInSentry?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Whether to log this error
|
|
123
|
+
*/
|
|
124
|
+
log?: boolean;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=error.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.interface.d.ts","sourceRoot":"","sources":["../../src/error/error.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,aAAa;IACvB;;OAEG;IACH,KAAK,UAAU;IAEf;;OAEG;IACH,QAAQ,aAAa;IAErB;;OAEG;IACH,KAAK,UAAU;IAEf;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,SAAS;IAEnB,cAAc,uBAAuB;IACrC,cAAc,uBAAuB;IACrC,wBAAwB,iCAAiC;IAGzD,qBAAqB,8BAA8B;IACnD,sBAAsB,+BAA+B;IACrD,yBAAyB,kCAAkC;IAC3D,iBAAiB,0BAA0B;IAG3C,0BAA0B,mCAAmC;IAC7D,qBAAqB,8BAA8B;IACnD,yBAAyB,kCAAkC;IAG3D,uBAAuB,gCAAgC;IACvD,oBAAoB,6BAA6B;IAGjD,gBAAgB,yBAAyB;IACzC,uBAAuB,gCAAgC;IACvD,yBAAyB,kCAAkC;IAG3D,uBAAuB,gCAAgC;IACvD,yBAAyB,kCAAkC;IAC3D,wBAAwB,iCAAiC;IACzD,oBAAoB,6BAA6B;IAGjD,2BAA2B,oCAAoC;IAC/D,wBAAwB,iCAAiC;IAGzD,iBAAiB,0BAA0B;IAC3C,aAAa,sBAAsB;IAGnC,kBAAkB,2BAA2B;IAC7C,uBAAuB,gCAAgC;IACvD,eAAe,wBAAwB;IAGvC,OAAO,gBAAgB;IACvB,QAAQ,iBAAiB;IACzB,eAAe,wBAAwB;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IAEzB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACf"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var ErrorSeverity = /* @__PURE__ */ ((ErrorSeverity2) => {
|
|
2
|
+
ErrorSeverity2["FATAL"] = "fatal";
|
|
3
|
+
ErrorSeverity2["CRITICAL"] = "critical";
|
|
4
|
+
ErrorSeverity2["ERROR"] = "error";
|
|
5
|
+
ErrorSeverity2["WARNING"] = "warning";
|
|
6
|
+
ErrorSeverity2["INFO"] = "info";
|
|
7
|
+
return ErrorSeverity2;
|
|
8
|
+
})(ErrorSeverity || {});
|
|
9
|
+
var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {
|
|
10
|
+
ErrorCode2["INVALID_CONFIG"] = "ERR_INVALID_CONFIG";
|
|
11
|
+
ErrorCode2["MISSING_CONFIG"] = "ERR_MISSING_CONFIG";
|
|
12
|
+
ErrorCode2["CONFIG_VALIDATION_FAILED"] = "ERR_CONFIG_VALIDATION_FAILED";
|
|
13
|
+
ErrorCode2["LIFECYCLE_INIT_FAILED"] = "ERR_LIFECYCLE_INIT_FAILED";
|
|
14
|
+
ErrorCode2["LIFECYCLE_START_FAILED"] = "ERR_LIFECYCLE_START_FAILED";
|
|
15
|
+
ErrorCode2["LIFECYCLE_SHUTDOWN_FAILED"] = "ERR_LIFECYCLE_SHUTDOWN_FAILED";
|
|
16
|
+
ErrorCode2["LIFECYCLE_TIMEOUT"] = "ERR_LIFECYCLE_TIMEOUT";
|
|
17
|
+
ErrorCode2["DATABASE_CONNECTION_FAILED"] = "ERR_DATABASE_CONNECTION_FAILED";
|
|
18
|
+
ErrorCode2["DATABASE_QUERY_FAILED"] = "ERR_DATABASE_QUERY_FAILED";
|
|
19
|
+
ErrorCode2["DATABASE_MIGRATION_FAILED"] = "ERR_DATABASE_MIGRATION_FAILED";
|
|
20
|
+
ErrorCode2["REDIS_CONNECTION_FAILED"] = "ERR_REDIS_CONNECTION_FAILED";
|
|
21
|
+
ErrorCode2["REDIS_COMMAND_FAILED"] = "ERR_REDIS_COMMAND_FAILED";
|
|
22
|
+
ErrorCode2["QUEUE_JOB_FAILED"] = "ERR_QUEUE_JOB_FAILED";
|
|
23
|
+
ErrorCode2["QUEUE_CONNECTION_FAILED"] = "ERR_QUEUE_CONNECTION_FAILED";
|
|
24
|
+
ErrorCode2["QUEUE_PROCESSOR_NOT_FOUND"] = "ERR_QUEUE_PROCESSOR_NOT_FOUND";
|
|
25
|
+
ErrorCode2["WEB_SERVER_START_FAILED"] = "ERR_WEB_SERVER_START_FAILED";
|
|
26
|
+
ErrorCode2["WEB_SERVER_REQUEST_FAILED"] = "ERR_WEB_SERVER_REQUEST_FAILED";
|
|
27
|
+
ErrorCode2["WEB_CONTROLLER_NOT_FOUND"] = "ERR_WEB_CONTROLLER_NOT_FOUND";
|
|
28
|
+
ErrorCode2["WEB_ACTION_NOT_FOUND"] = "ERR_WEB_ACTION_NOT_FOUND";
|
|
29
|
+
ErrorCode2["WEBSOCKET_CONNECTION_FAILED"] = "ERR_WEBSOCKET_CONNECTION_FAILED";
|
|
30
|
+
ErrorCode2["WEBSOCKET_MESSAGE_FAILED"] = "ERR_WEBSOCKET_MESSAGE_FAILED";
|
|
31
|
+
ErrorCode2["VALIDATION_FAILED"] = "ERR_VALIDATION_FAILED";
|
|
32
|
+
ErrorCode2["INVALID_INPUT"] = "ERR_INVALID_INPUT";
|
|
33
|
+
ErrorCode2["RESOURCE_NOT_FOUND"] = "ERR_RESOURCE_NOT_FOUND";
|
|
34
|
+
ErrorCode2["RESOURCE_ALREADY_EXISTS"] = "ERR_RESOURCE_ALREADY_EXISTS";
|
|
35
|
+
ErrorCode2["RESOURCE_LOCKED"] = "ERR_RESOURCE_LOCKED";
|
|
36
|
+
ErrorCode2["UNKNOWN"] = "ERR_UNKNOWN";
|
|
37
|
+
ErrorCode2["INTERNAL"] = "ERR_INTERNAL";
|
|
38
|
+
ErrorCode2["NOT_IMPLEMENTED"] = "ERR_NOT_IMPLEMENTED";
|
|
39
|
+
return ErrorCode2;
|
|
40
|
+
})(ErrorCode || {});
|
|
41
|
+
export {
|
|
42
|
+
ErrorCode,
|
|
43
|
+
ErrorSeverity
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=error.interface.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/error/error.interface.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Error severity levels for classification and handling\n */\nexport enum ErrorSeverity {\n /**\n * Fatal errors that require immediate attention and may cause application failure\n */\n FATAL = 'fatal',\n\n /**\n * Critical errors that significantly impact functionality\n */\n CRITICAL = 'critical',\n\n /**\n * Major errors that affect features but don't crash the application\n */\n ERROR = 'error',\n\n /**\n * Warnings about potential issues\n */\n WARNING = 'warning',\n\n /**\n * Informational messages about error conditions\n */\n INFO = 'info',\n}\n\n/**\n * Standard error codes for framework errors\n */\nexport enum ErrorCode {\n // Configuration errors (1xxx)\n INVALID_CONFIG = 'ERR_INVALID_CONFIG',\n MISSING_CONFIG = 'ERR_MISSING_CONFIG',\n CONFIG_VALIDATION_FAILED = 'ERR_CONFIG_VALIDATION_FAILED',\n\n // Lifecycle errors (2xxx)\n LIFECYCLE_INIT_FAILED = 'ERR_LIFECYCLE_INIT_FAILED',\n LIFECYCLE_START_FAILED = 'ERR_LIFECYCLE_START_FAILED',\n LIFECYCLE_SHUTDOWN_FAILED = 'ERR_LIFECYCLE_SHUTDOWN_FAILED',\n LIFECYCLE_TIMEOUT = 'ERR_LIFECYCLE_TIMEOUT',\n\n // Database errors (3xxx)\n DATABASE_CONNECTION_FAILED = 'ERR_DATABASE_CONNECTION_FAILED',\n DATABASE_QUERY_FAILED = 'ERR_DATABASE_QUERY_FAILED',\n DATABASE_MIGRATION_FAILED = 'ERR_DATABASE_MIGRATION_FAILED',\n\n // Redis errors (4xxx)\n REDIS_CONNECTION_FAILED = 'ERR_REDIS_CONNECTION_FAILED',\n REDIS_COMMAND_FAILED = 'ERR_REDIS_COMMAND_FAILED',\n\n // Queue errors (5xxx)\n QUEUE_JOB_FAILED = 'ERR_QUEUE_JOB_FAILED',\n QUEUE_CONNECTION_FAILED = 'ERR_QUEUE_CONNECTION_FAILED',\n QUEUE_PROCESSOR_NOT_FOUND = 'ERR_QUEUE_PROCESSOR_NOT_FOUND',\n\n // Web server errors (6xxx)\n WEB_SERVER_START_FAILED = 'ERR_WEB_SERVER_START_FAILED',\n WEB_SERVER_REQUEST_FAILED = 'ERR_WEB_SERVER_REQUEST_FAILED',\n WEB_CONTROLLER_NOT_FOUND = 'ERR_WEB_CONTROLLER_NOT_FOUND',\n WEB_ACTION_NOT_FOUND = 'ERR_WEB_ACTION_NOT_FOUND',\n\n // WebSocket errors (7xxx)\n WEBSOCKET_CONNECTION_FAILED = 'ERR_WEBSOCKET_CONNECTION_FAILED',\n WEBSOCKET_MESSAGE_FAILED = 'ERR_WEBSOCKET_MESSAGE_FAILED',\n\n // Validation errors (8xxx)\n VALIDATION_FAILED = 'ERR_VALIDATION_FAILED',\n INVALID_INPUT = 'ERR_INVALID_INPUT',\n\n // Resource errors (9xxx)\n RESOURCE_NOT_FOUND = 'ERR_RESOURCE_NOT_FOUND',\n RESOURCE_ALREADY_EXISTS = 'ERR_RESOURCE_ALREADY_EXISTS',\n RESOURCE_LOCKED = 'ERR_RESOURCE_LOCKED',\n\n // Generic errors\n UNKNOWN = 'ERR_UNKNOWN',\n INTERNAL = 'ERR_INTERNAL',\n NOT_IMPLEMENTED = 'ERR_NOT_IMPLEMENTED',\n}\n\n/**\n * Normalized error envelope for consistent error handling\n */\nexport interface ErrorEnvelope {\n /**\n * Error message (human-readable)\n */\n message: string;\n\n /**\n * Error code (machine-readable)\n */\n code: ErrorCode | string;\n\n /**\n * Error severity level\n */\n severity: ErrorSeverity;\n\n /**\n * Original error stack trace\n */\n stack?: string;\n\n /**\n * Request ID for correlation (if available)\n */\n requestId?: string;\n\n /**\n * Additional context about the error\n */\n context?: Record<string, unknown>;\n\n /**\n * Underlying cause (if error was wrapped)\n */\n cause?: unknown;\n\n /**\n * Timestamp when error occurred\n */\n timestamp: Date;\n\n /**\n * Error name/type\n */\n name?: string;\n}\n\n/**\n * Options for error reporting\n */\nexport interface ErrorReportOptions {\n /**\n * Additional context to include with the error\n */\n context?: Record<string, unknown>;\n\n /**\n * Override error severity\n */\n severity?: ErrorSeverity;\n\n /**\n * Override error code\n */\n code?: ErrorCode | string;\n\n /**\n * Whether to capture this error in Sentry\n */\n captureInSentry?: boolean;\n\n /**\n * Whether to log this error\n */\n log?: boolean;\n}\n"],
|
|
5
|
+
"mappings": "AAGO,IAAK,gBAAL,kBAAKA,mBAAL;AAIL,EAAAA,eAAA,WAAQ;AAKR,EAAAA,eAAA,cAAW;AAKX,EAAAA,eAAA,WAAQ;AAKR,EAAAA,eAAA,aAAU;AAKV,EAAAA,eAAA,UAAO;AAxBG,SAAAA;AAAA,GAAA;AA8BL,IAAK,YAAL,kBAAKC,eAAL;AAEL,EAAAA,WAAA,oBAAiB;AACjB,EAAAA,WAAA,oBAAiB;AACjB,EAAAA,WAAA,8BAA2B;AAG3B,EAAAA,WAAA,2BAAwB;AACxB,EAAAA,WAAA,4BAAyB;AACzB,EAAAA,WAAA,+BAA4B;AAC5B,EAAAA,WAAA,uBAAoB;AAGpB,EAAAA,WAAA,gCAA6B;AAC7B,EAAAA,WAAA,2BAAwB;AACxB,EAAAA,WAAA,+BAA4B;AAG5B,EAAAA,WAAA,6BAA0B;AAC1B,EAAAA,WAAA,0BAAuB;AAGvB,EAAAA,WAAA,sBAAmB;AACnB,EAAAA,WAAA,6BAA0B;AAC1B,EAAAA,WAAA,+BAA4B;AAG5B,EAAAA,WAAA,6BAA0B;AAC1B,EAAAA,WAAA,+BAA4B;AAC5B,EAAAA,WAAA,8BAA2B;AAC3B,EAAAA,WAAA,0BAAuB;AAGvB,EAAAA,WAAA,iCAA8B;AAC9B,EAAAA,WAAA,8BAA2B;AAG3B,EAAAA,WAAA,uBAAoB;AACpB,EAAAA,WAAA,mBAAgB;AAGhB,EAAAA,WAAA,wBAAqB;AACrB,EAAAA,WAAA,6BAA0B;AAC1B,EAAAA,WAAA,qBAAkB;AAGlB,EAAAA,WAAA,aAAU;AACV,EAAAA,WAAA,cAAW;AACX,EAAAA,WAAA,qBAAkB;AAhDR,SAAAA;AAAA,GAAA;",
|
|
6
|
+
"names": ["ErrorSeverity", "ErrorCode"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { ErrorCode, ErrorSeverity } from './error.interface.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base framework error class
|
|
4
|
+
*
|
|
5
|
+
* All framework-specific errors extend this class for consistent error handling
|
|
6
|
+
*/
|
|
7
|
+
export declare class FrameworkError extends Error {
|
|
8
|
+
readonly code: ErrorCode | string;
|
|
9
|
+
readonly severity: ErrorSeverity;
|
|
10
|
+
readonly context?: Record<string, unknown>;
|
|
11
|
+
readonly timestamp: Date;
|
|
12
|
+
constructor(message: string, options?: {
|
|
13
|
+
code?: ErrorCode | string;
|
|
14
|
+
severity?: ErrorSeverity;
|
|
15
|
+
context?: Record<string, unknown>;
|
|
16
|
+
cause?: unknown;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Configuration error
|
|
21
|
+
*/
|
|
22
|
+
export declare class ConfigurationError extends FrameworkError {
|
|
23
|
+
constructor(message: string, options?: {
|
|
24
|
+
context?: Record<string, unknown>;
|
|
25
|
+
cause?: unknown;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Validation error
|
|
30
|
+
*/
|
|
31
|
+
export declare class ValidationError extends FrameworkError {
|
|
32
|
+
constructor(message: string, options?: {
|
|
33
|
+
context?: Record<string, unknown>;
|
|
34
|
+
cause?: unknown;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Database error
|
|
39
|
+
*/
|
|
40
|
+
export declare class DatabaseError extends FrameworkError {
|
|
41
|
+
constructor(message: string, options?: {
|
|
42
|
+
code?: ErrorCode;
|
|
43
|
+
context?: Record<string, unknown>;
|
|
44
|
+
cause?: unknown;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Redis error
|
|
49
|
+
*/
|
|
50
|
+
export declare class RedisError extends FrameworkError {
|
|
51
|
+
constructor(message: string, options?: {
|
|
52
|
+
code?: ErrorCode;
|
|
53
|
+
context?: Record<string, unknown>;
|
|
54
|
+
cause?: unknown;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Queue error
|
|
59
|
+
*/
|
|
60
|
+
export declare class QueueError extends FrameworkError {
|
|
61
|
+
constructor(message: string, options?: {
|
|
62
|
+
code?: ErrorCode;
|
|
63
|
+
context?: Record<string, unknown>;
|
|
64
|
+
cause?: unknown;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Web server error
|
|
69
|
+
*/
|
|
70
|
+
export declare class WebServerError extends FrameworkError {
|
|
71
|
+
constructor(message: string, options?: {
|
|
72
|
+
code?: ErrorCode;
|
|
73
|
+
context?: Record<string, unknown>;
|
|
74
|
+
cause?: unknown;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* WebSocket error
|
|
79
|
+
*/
|
|
80
|
+
export declare class WebSocketError extends FrameworkError {
|
|
81
|
+
constructor(message: string, options?: {
|
|
82
|
+
code?: ErrorCode;
|
|
83
|
+
context?: Record<string, unknown>;
|
|
84
|
+
cause?: unknown;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Lifecycle error
|
|
89
|
+
*/
|
|
90
|
+
export declare class LifecycleError extends FrameworkError {
|
|
91
|
+
constructor(message: string, options?: {
|
|
92
|
+
code?: ErrorCode;
|
|
93
|
+
context?: Record<string, unknown>;
|
|
94
|
+
cause?: unknown;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Resource not found error
|
|
99
|
+
*/
|
|
100
|
+
export declare class ResourceNotFoundError extends FrameworkError {
|
|
101
|
+
constructor(message: string, options?: {
|
|
102
|
+
context?: Record<string, unknown>;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Not implemented error
|
|
107
|
+
*/
|
|
108
|
+
export declare class NotImplementedError extends FrameworkError {
|
|
109
|
+
constructor(message: string, options?: {
|
|
110
|
+
context?: Record<string, unknown>;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=framework-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework-errors.d.ts","sourceRoot":"","sources":["../../src/error/framework-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { ErrorCode, ErrorSeverity } from "./error.interface.js";
|
|
4
|
+
class FrameworkError extends Error {
|
|
5
|
+
static {
|
|
6
|
+
__name(this, "FrameworkError");
|
|
7
|
+
}
|
|
8
|
+
code;
|
|
9
|
+
severity;
|
|
10
|
+
context;
|
|
11
|
+
timestamp;
|
|
12
|
+
constructor(message, options) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = "FrameworkError";
|
|
15
|
+
this.code = options?.code ?? ErrorCode.INTERNAL;
|
|
16
|
+
this.severity = options?.severity ?? ErrorSeverity.ERROR;
|
|
17
|
+
this.context = options?.context;
|
|
18
|
+
this.timestamp = /* @__PURE__ */ new Date();
|
|
19
|
+
if (Error.captureStackTrace) {
|
|
20
|
+
Error.captureStackTrace(this, this.constructor);
|
|
21
|
+
}
|
|
22
|
+
if (options?.cause) {
|
|
23
|
+
this.cause = options.cause;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
class ConfigurationError extends FrameworkError {
|
|
28
|
+
static {
|
|
29
|
+
__name(this, "ConfigurationError");
|
|
30
|
+
}
|
|
31
|
+
constructor(message, options) {
|
|
32
|
+
super(message, {
|
|
33
|
+
code: ErrorCode.INVALID_CONFIG,
|
|
34
|
+
severity: ErrorSeverity.FATAL,
|
|
35
|
+
...options
|
|
36
|
+
});
|
|
37
|
+
this.name = "ConfigurationError";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
class ValidationError extends FrameworkError {
|
|
41
|
+
static {
|
|
42
|
+
__name(this, "ValidationError");
|
|
43
|
+
}
|
|
44
|
+
constructor(message, options) {
|
|
45
|
+
super(message, {
|
|
46
|
+
code: ErrorCode.VALIDATION_FAILED,
|
|
47
|
+
severity: ErrorSeverity.ERROR,
|
|
48
|
+
...options
|
|
49
|
+
});
|
|
50
|
+
this.name = "ValidationError";
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
class DatabaseError extends FrameworkError {
|
|
54
|
+
static {
|
|
55
|
+
__name(this, "DatabaseError");
|
|
56
|
+
}
|
|
57
|
+
constructor(message, options) {
|
|
58
|
+
super(message, {
|
|
59
|
+
code: options?.code ?? ErrorCode.DATABASE_QUERY_FAILED,
|
|
60
|
+
severity: ErrorSeverity.ERROR,
|
|
61
|
+
context: options?.context,
|
|
62
|
+
cause: options?.cause
|
|
63
|
+
});
|
|
64
|
+
this.name = "DatabaseError";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
class RedisError extends FrameworkError {
|
|
68
|
+
static {
|
|
69
|
+
__name(this, "RedisError");
|
|
70
|
+
}
|
|
71
|
+
constructor(message, options) {
|
|
72
|
+
super(message, {
|
|
73
|
+
code: options?.code ?? ErrorCode.REDIS_COMMAND_FAILED,
|
|
74
|
+
severity: ErrorSeverity.ERROR,
|
|
75
|
+
context: options?.context,
|
|
76
|
+
cause: options?.cause
|
|
77
|
+
});
|
|
78
|
+
this.name = "RedisError";
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
class QueueError extends FrameworkError {
|
|
82
|
+
static {
|
|
83
|
+
__name(this, "QueueError");
|
|
84
|
+
}
|
|
85
|
+
constructor(message, options) {
|
|
86
|
+
super(message, {
|
|
87
|
+
code: options?.code ?? ErrorCode.QUEUE_JOB_FAILED,
|
|
88
|
+
severity: ErrorSeverity.ERROR,
|
|
89
|
+
context: options?.context,
|
|
90
|
+
cause: options?.cause
|
|
91
|
+
});
|
|
92
|
+
this.name = "QueueError";
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
class WebServerError extends FrameworkError {
|
|
96
|
+
static {
|
|
97
|
+
__name(this, "WebServerError");
|
|
98
|
+
}
|
|
99
|
+
constructor(message, options) {
|
|
100
|
+
super(message, {
|
|
101
|
+
code: options?.code ?? ErrorCode.WEB_SERVER_REQUEST_FAILED,
|
|
102
|
+
severity: ErrorSeverity.ERROR,
|
|
103
|
+
context: options?.context,
|
|
104
|
+
cause: options?.cause
|
|
105
|
+
});
|
|
106
|
+
this.name = "WebServerError";
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
class WebSocketError extends FrameworkError {
|
|
110
|
+
static {
|
|
111
|
+
__name(this, "WebSocketError");
|
|
112
|
+
}
|
|
113
|
+
constructor(message, options) {
|
|
114
|
+
super(message, {
|
|
115
|
+
code: options?.code ?? ErrorCode.WEBSOCKET_MESSAGE_FAILED,
|
|
116
|
+
severity: ErrorSeverity.ERROR,
|
|
117
|
+
context: options?.context,
|
|
118
|
+
cause: options?.cause
|
|
119
|
+
});
|
|
120
|
+
this.name = "WebSocketError";
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
class LifecycleError extends FrameworkError {
|
|
124
|
+
static {
|
|
125
|
+
__name(this, "LifecycleError");
|
|
126
|
+
}
|
|
127
|
+
constructor(message, options) {
|
|
128
|
+
super(message, {
|
|
129
|
+
code: options?.code ?? ErrorCode.LIFECYCLE_INIT_FAILED,
|
|
130
|
+
severity: ErrorSeverity.CRITICAL,
|
|
131
|
+
context: options?.context,
|
|
132
|
+
cause: options?.cause
|
|
133
|
+
});
|
|
134
|
+
this.name = "LifecycleError";
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
class ResourceNotFoundError extends FrameworkError {
|
|
138
|
+
static {
|
|
139
|
+
__name(this, "ResourceNotFoundError");
|
|
140
|
+
}
|
|
141
|
+
constructor(message, options) {
|
|
142
|
+
super(message, {
|
|
143
|
+
code: ErrorCode.RESOURCE_NOT_FOUND,
|
|
144
|
+
severity: ErrorSeverity.WARNING,
|
|
145
|
+
...options
|
|
146
|
+
});
|
|
147
|
+
this.name = "ResourceNotFoundError";
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
class NotImplementedError extends FrameworkError {
|
|
151
|
+
static {
|
|
152
|
+
__name(this, "NotImplementedError");
|
|
153
|
+
}
|
|
154
|
+
constructor(message, options) {
|
|
155
|
+
super(message, {
|
|
156
|
+
code: ErrorCode.NOT_IMPLEMENTED,
|
|
157
|
+
severity: ErrorSeverity.ERROR,
|
|
158
|
+
...options
|
|
159
|
+
});
|
|
160
|
+
this.name = "NotImplementedError";
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
export {
|
|
164
|
+
ConfigurationError,
|
|
165
|
+
DatabaseError,
|
|
166
|
+
FrameworkError,
|
|
167
|
+
LifecycleError,
|
|
168
|
+
NotImplementedError,
|
|
169
|
+
QueueError,
|
|
170
|
+
RedisError,
|
|
171
|
+
ResourceNotFoundError,
|
|
172
|
+
ValidationError,
|
|
173
|
+
WebServerError,
|
|
174
|
+
WebSocketError
|
|
175
|
+
};
|
|
176
|
+
//# sourceMappingURL=framework-errors.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/error/framework-errors.ts"],
|
|
4
|
+
"sourcesContent": ["import { ErrorCode, ErrorSeverity } from './error.interface.js';\n\n/**\n * Base framework error class\n *\n * All framework-specific errors extend this class for consistent error handling\n */\nexport class FrameworkError extends Error {\n public readonly code: ErrorCode | string;\n public readonly severity: ErrorSeverity;\n public readonly context?: Record<string, unknown>;\n public readonly timestamp: Date;\n\n constructor(\n message: string,\n options?: {\n code?: ErrorCode | string;\n severity?: ErrorSeverity;\n context?: Record<string, unknown>;\n cause?: unknown;\n },\n ) {\n super(message);\n this.name = 'FrameworkError';\n this.code = options?.code ?? ErrorCode.INTERNAL;\n this.severity = options?.severity ?? ErrorSeverity.ERROR;\n this.context = options?.context;\n this.timestamp = new Date();\n\n // Maintain proper stack trace\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n // Attach cause if provided (ES2022 error cause)\n if (options?.cause) {\n this.cause = options.cause;\n }\n }\n}\n\n/**\n * Configuration error\n */\nexport class ConfigurationError extends FrameworkError {\n constructor(message: string, options?: { context?: Record<string, unknown>; cause?: unknown }) {\n super(message, {\n code: ErrorCode.INVALID_CONFIG,\n severity: ErrorSeverity.FATAL,\n ...options,\n });\n this.name = 'ConfigurationError';\n }\n}\n\n/**\n * Validation error\n */\nexport class ValidationError extends FrameworkError {\n constructor(message: string, options?: { context?: Record<string, unknown>; cause?: unknown }) {\n super(message, {\n code: ErrorCode.VALIDATION_FAILED,\n severity: ErrorSeverity.ERROR,\n ...options,\n });\n this.name = 'ValidationError';\n }\n}\n\n/**\n * Database error\n */\nexport class DatabaseError extends FrameworkError {\n constructor(message: string, options?: { code?: ErrorCode; context?: Record<string, unknown>; cause?: unknown }) {\n super(message, {\n code: options?.code ?? ErrorCode.DATABASE_QUERY_FAILED,\n severity: ErrorSeverity.ERROR,\n context: options?.context,\n cause: options?.cause,\n });\n this.name = 'DatabaseError';\n }\n}\n\n/**\n * Redis error\n */\nexport class RedisError extends FrameworkError {\n constructor(message: string, options?: { code?: ErrorCode; context?: Record<string, unknown>; cause?: unknown }) {\n super(message, {\n code: options?.code ?? ErrorCode.REDIS_COMMAND_FAILED,\n severity: ErrorSeverity.ERROR,\n context: options?.context,\n cause: options?.cause,\n });\n this.name = 'RedisError';\n }\n}\n\n/**\n * Queue error\n */\nexport class QueueError extends FrameworkError {\n constructor(message: string, options?: { code?: ErrorCode; context?: Record<string, unknown>; cause?: unknown }) {\n super(message, {\n code: options?.code ?? ErrorCode.QUEUE_JOB_FAILED,\n severity: ErrorSeverity.ERROR,\n context: options?.context,\n cause: options?.cause,\n });\n this.name = 'QueueError';\n }\n}\n\n/**\n * Web server error\n */\nexport class WebServerError extends FrameworkError {\n constructor(message: string, options?: { code?: ErrorCode; context?: Record<string, unknown>; cause?: unknown }) {\n super(message, {\n code: options?.code ?? ErrorCode.WEB_SERVER_REQUEST_FAILED,\n severity: ErrorSeverity.ERROR,\n context: options?.context,\n cause: options?.cause,\n });\n this.name = 'WebServerError';\n }\n}\n\n/**\n * WebSocket error\n */\nexport class WebSocketError extends FrameworkError {\n constructor(message: string, options?: { code?: ErrorCode; context?: Record<string, unknown>; cause?: unknown }) {\n super(message, {\n code: options?.code ?? ErrorCode.WEBSOCKET_MESSAGE_FAILED,\n severity: ErrorSeverity.ERROR,\n context: options?.context,\n cause: options?.cause,\n });\n this.name = 'WebSocketError';\n }\n}\n\n/**\n * Lifecycle error\n */\nexport class LifecycleError extends FrameworkError {\n constructor(message: string, options?: { code?: ErrorCode; context?: Record<string, unknown>; cause?: unknown }) {\n super(message, {\n code: options?.code ?? ErrorCode.LIFECYCLE_INIT_FAILED,\n severity: ErrorSeverity.CRITICAL,\n context: options?.context,\n cause: options?.cause,\n });\n this.name = 'LifecycleError';\n }\n}\n\n/**\n * Resource not found error\n */\nexport class ResourceNotFoundError extends FrameworkError {\n constructor(message: string, options?: { context?: Record<string, unknown> }) {\n super(message, {\n code: ErrorCode.RESOURCE_NOT_FOUND,\n severity: ErrorSeverity.WARNING,\n ...options,\n });\n this.name = 'ResourceNotFoundError';\n }\n}\n\n/**\n * Not implemented error\n */\nexport class NotImplementedError extends FrameworkError {\n constructor(message: string, options?: { context?: Record<string, unknown> }) {\n super(message, {\n code: ErrorCode.NOT_IMPLEMENTED,\n severity: ErrorSeverity.ERROR,\n ...options,\n });\n this.name = 'NotImplementedError';\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { ErrorEnvelope, ErrorReportOptions } from './error.interface.js';
|
|
2
|
+
export { ErrorCode, ErrorSeverity } from './error.interface.js';
|
|
3
|
+
export { ErrorReporter } from './error-reporter.js';
|
|
4
|
+
export { FrameworkError, ConfigurationError, ValidationError, DatabaseError, RedisError, QueueError, WebServerError, WebSocketError, LifecycleError, ResourceNotFoundError, NotImplementedError, } from './framework-errors.js';
|
|
5
|
+
export { default as errorReporter } from './error-reporter.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ErrorCode, ErrorSeverity } from "./error.interface.js";
|
|
2
|
+
import { ErrorReporter } from "./error-reporter.js";
|
|
3
|
+
import {
|
|
4
|
+
FrameworkError,
|
|
5
|
+
ConfigurationError,
|
|
6
|
+
ValidationError,
|
|
7
|
+
DatabaseError,
|
|
8
|
+
RedisError,
|
|
9
|
+
QueueError,
|
|
10
|
+
WebServerError,
|
|
11
|
+
WebSocketError,
|
|
12
|
+
LifecycleError,
|
|
13
|
+
ResourceNotFoundError,
|
|
14
|
+
NotImplementedError
|
|
15
|
+
} from "./framework-errors.js";
|
|
16
|
+
import { default as default2 } from "./error-reporter.js";
|
|
17
|
+
export {
|
|
18
|
+
ConfigurationError,
|
|
19
|
+
DatabaseError,
|
|
20
|
+
ErrorCode,
|
|
21
|
+
ErrorReporter,
|
|
22
|
+
ErrorSeverity,
|
|
23
|
+
FrameworkError,
|
|
24
|
+
LifecycleError,
|
|
25
|
+
NotImplementedError,
|
|
26
|
+
QueueError,
|
|
27
|
+
RedisError,
|
|
28
|
+
ResourceNotFoundError,
|
|
29
|
+
ValidationError,
|
|
30
|
+
WebServerError,
|
|
31
|
+
WebSocketError,
|
|
32
|
+
default2 as errorReporter
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/error/index.ts"],
|
|
4
|
+
"sourcesContent": ["export type { ErrorEnvelope, ErrorReportOptions } from './error.interface.js';\nexport { ErrorCode, ErrorSeverity } from './error.interface.js';\nexport { ErrorReporter } from './error-reporter.js';\nexport {\n FrameworkError,\n ConfigurationError,\n ValidationError,\n DatabaseError,\n RedisError,\n QueueError,\n WebServerError,\n WebSocketError,\n LifecycleError,\n ResourceNotFoundError,\n NotImplementedError,\n} from './framework-errors.js';\n\n// Export default instance for convenience\nexport { default as errorReporter } from './error-reporter.js';\n"],
|
|
5
|
+
"mappings": "AACA,SAAS,WAAW,qBAAqB;AACzC,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,SAAoB,WAAXA,gBAAgC;",
|
|
6
|
+
"names": ["default"]
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/event/manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/event/manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,6BAA6B,EAAuB,MAAM,wBAAwB,CAAC;AAMlH,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,MAAM,CAAyB;IAEvC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,gBAAgB,CAA0B;IAElD,OAAO,CAAC,aAAa,CAAwB;gBAEjC,MAAM,EAAE,6BAA6B;IAqBpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoFrB,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B5E;;OAEG;IACI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAGlE"}
|
package/dist/event/manager.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import { existsSync } from "fs";
|
|
4
3
|
import { Logger } from "../logger/index.js";
|
|
5
|
-
import { Helper, Loader } from "../util/index.js";
|
|
4
|
+
import { File, Helper, Loader } from "../util/index.js";
|
|
6
5
|
class EventManager {
|
|
7
6
|
static {
|
|
8
7
|
__name(this, "EventManager");
|
|
@@ -32,14 +31,8 @@ class EventManager {
|
|
|
32
31
|
this.eventHandlers = /* @__PURE__ */ new Map();
|
|
33
32
|
}
|
|
34
33
|
async load() {
|
|
35
|
-
const controllersDirectoryExists =
|
|
34
|
+
const controllersDirectoryExists = await File.pathExists(this.options.controllersDirectory);
|
|
36
35
|
if (!controllersDirectoryExists) {
|
|
37
|
-
this.logger.warn({
|
|
38
|
-
message: "Event controllers directory not found",
|
|
39
|
-
meta: {
|
|
40
|
-
Directory: this.options.controllersDirectory
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
36
|
return;
|
|
44
37
|
}
|
|
45
38
|
const controllers = await Loader.loadModulesInDirectory({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/event/manager.ts"],
|
|
4
|
-
"sourcesContent": ["// event-manager.ts\nimport {
|
|
5
|
-
"mappings": ";;AACA,SAAS,
|
|
4
|
+
"sourcesContent": ["// event-manager.ts\nimport { Logger } from '../logger/index.js';\nimport { File, Helper, Loader } from '../util/index.js';\nimport type { EventDefinition, EventManagerConstructorParams, EventManagerOptions } from './manager.interface.js';\nimport type { ApplicationConfig } from '../application/base-application.interface.js';\nimport type DatabaseInstance from '../database/instance.js';\nimport type { RedisInstance } from '../redis/index.js';\nimport type { EventControllerType } from './controller/base.interface.js';\n\nexport default class EventManager {\n private logger: typeof Logger = Logger;\n\n private applicationConfig: ApplicationConfig;\n private options: EventManagerOptions;\n private events: EventDefinition[];\n private redisInstance: RedisInstance;\n // private queueManager: QueueManager;\n private databaseInstance: DatabaseInstance | null;\n\n private eventHandlers: Map<string, Function>;\n\n constructor(params: EventManagerConstructorParams) {\n const defaultOptions: Partial<EventManagerOptions> = {\n log: {\n startUp: true,\n },\n debug: {\n printEvents: false,\n },\n };\n\n this.options = Helper.defaultsDeep(params.options, defaultOptions);\n\n this.applicationConfig = params.applicationConfig;\n this.events = params.events;\n this.redisInstance = params.redisInstance;\n // this.queueManager = params.queueManager;\n this.databaseInstance = params.databaseInstance;\n\n this.eventHandlers = new Map();\n }\n\n public async load(): Promise<void> {\n // Check if controllers directory exists\n const controllersDirectoryExists = await File.pathExists(this.options.controllersDirectory);\n\n if (!controllersDirectoryExists) {\n return;\n }\n\n // Load controllers\n const controllers = await Loader.loadModulesInDirectory({\n directory: this.options.controllersDirectory,\n extensions: ['.ts', '.js'],\n });\n\n // Load event handlers\n for (const event of this.events) {\n let ControllerClass: EventControllerType;\n let controllerName: string;\n\n if (event.controller) {\n ControllerClass = event.controller;\n controllerName = ControllerClass.name;\n } else if (event.controllerName) {\n ControllerClass = controllers[event.controllerName];\n controllerName = event.controllerName;\n } else {\n throw new Error('Event controller not specified');\n }\n\n if (typeof ControllerClass !== 'function') {\n const controllerPath = `${this.options.controllersDirectory}/${event.controllerName}.ts`;\n this.logger.warn({\n message: 'Event controller not found',\n meta: {\n Controller: event.controllerName,\n Path: controllerPath,\n Event: event.name,\n },\n });\n continue;\n }\n\n // Initialize controller instance\n const controllerInstance = new ControllerClass({\n applicationConfig: this.applicationConfig,\n redisInstance: this.redisInstance,\n // queueManager: this.queueManager,\n databaseInstance: this.databaseInstance,\n });\n\n const handler = controllerInstance[event.handlerName as keyof typeof controllerInstance];\n\n if (!handler || typeof handler !== 'function') {\n this.logger.warn({\n message: 'Event handler not found',\n meta: {\n Controller: controllerName,\n Handler: event.handlerName,\n Event: event.name,\n },\n });\n continue;\n }\n\n // Store the handler\n this.eventHandlers.set(event.name, (handler as Function).bind(controllerInstance));\n }\n\n // Log the list of registered events\n const registeredEvents = Array.from(this.eventHandlers.keys());\n\n this.log('Registered Events:', {\n Events: registeredEvents.length ? registeredEvents : '-',\n });\n\n if (this.options.debug?.printEvents) {\n this.log('Registered Events:');\n\n for (const eventName of registeredEvents) {\n console.log(`- ${eventName}`);\n }\n }\n }\n\n public async run({ name, data }: { name: string; data: any }): Promise<void> {\n try {\n const handler = this.eventHandlers.get(name);\n\n if (!handler) {\n const availableEvents = Array.from(this.eventHandlers.keys()).join(', ');\n\n this.logger.warn({\n message: 'Event handler not found for event',\n meta: {\n Event: name,\n AvailableEvents: availableEvents,\n },\n });\n\n throw new Error(`Event handler not found for event '${name}'. Available events are: ${availableEvents}`);\n }\n\n await handler(data);\n\n this.log('Event executed', { Event: name });\n } catch (error) {\n this.logger.error({ error });\n }\n }\n\n /**\n * Log event message\n */\n public log(message: string, meta?: Record<string, unknown>): void {\n this.logger.custom({ level: 'event', message, meta });\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|