electron-infra-kit 0.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/LICENSE +21 -0
- package/README.md +302 -0
- package/README.zh-CN.md +308 -0
- package/dist/core/error/WindowError.d.ts +56 -0
- package/dist/core/error/WindowError.js +71 -0
- package/dist/core/error/WindowError.js.map +1 -0
- package/dist/core/error/WindowError.mjs +71 -0
- package/dist/core/error/WindowError.mjs.map +1 -0
- package/dist/core/ipc/IpcHandler.d.ts +48 -0
- package/dist/core/ipc/IpcHandler.js +59 -0
- package/dist/core/ipc/IpcHandler.js.map +1 -0
- package/dist/core/ipc/IpcHandler.mjs +59 -0
- package/dist/core/ipc/IpcHandler.mjs.map +1 -0
- package/dist/core/ipc/IpcRouter.d.ts +70 -0
- package/dist/core/ipc/IpcRouter.js +143 -0
- package/dist/core/ipc/IpcRouter.js.map +1 -0
- package/dist/core/ipc/IpcRouter.mjs +143 -0
- package/dist/core/ipc/IpcRouter.mjs.map +1 -0
- package/dist/core/ipc/index.d.ts +3 -0
- package/dist/core/ipc/index.js +1 -0
- package/dist/core/ipc/index.js.map +1 -0
- package/dist/core/ipc/index.mjs +1 -0
- package/dist/core/ipc/index.mjs.map +1 -0
- package/dist/core/ipc/ipc-router.type.d.ts +73 -0
- package/dist/core/ipc/transport/index.d.ts +65 -0
- package/dist/core/ipc/transport/index.js +229 -0
- package/dist/core/ipc/transport/index.js.map +1 -0
- package/dist/core/ipc/transport/index.mjs +229 -0
- package/dist/core/ipc/transport/index.mjs.map +1 -0
- package/dist/core/ipc/transport/ipc.type.d.ts +36 -0
- package/dist/core/lifecycle/LifecycleManager.d.ts +66 -0
- package/dist/core/lifecycle/LifecycleManager.js +140 -0
- package/dist/core/lifecycle/LifecycleManager.js.map +1 -0
- package/dist/core/lifecycle/LifecycleManager.mjs +140 -0
- package/dist/core/lifecycle/LifecycleManager.mjs.map +1 -0
- package/dist/core/message-bus/MessageBus.d.ts +282 -0
- package/dist/core/message-bus/MessageBus.js +677 -0
- package/dist/core/message-bus/MessageBus.js.map +1 -0
- package/dist/core/message-bus/MessageBus.mjs +677 -0
- package/dist/core/message-bus/MessageBus.mjs.map +1 -0
- package/dist/core/message-bus/MessageBusClient.d.ts +100 -0
- package/dist/core/message-bus/MessageBusClient.js +280 -0
- package/dist/core/message-bus/MessageBusClient.js.map +1 -0
- package/dist/core/message-bus/MessageBusClient.mjs +280 -0
- package/dist/core/message-bus/MessageBusClient.mjs.map +1 -0
- package/dist/core/message-bus/core/DataStoreManager.d.ts +51 -0
- package/dist/core/message-bus/core/DataStoreManager.js +94 -0
- package/dist/core/message-bus/core/DataStoreManager.js.map +1 -0
- package/dist/core/message-bus/core/DataStoreManager.mjs +94 -0
- package/dist/core/message-bus/core/DataStoreManager.mjs.map +1 -0
- package/dist/core/message-bus/core/ManagedPort.d.ts +26 -0
- package/dist/core/message-bus/core/ManagedPort.js +55 -0
- package/dist/core/message-bus/core/ManagedPort.js.map +1 -0
- package/dist/core/message-bus/core/ManagedPort.mjs +55 -0
- package/dist/core/message-bus/core/ManagedPort.mjs.map +1 -0
- package/dist/core/message-bus/core/PortManager.d.ts +47 -0
- package/dist/core/message-bus/core/PortManager.js +114 -0
- package/dist/core/message-bus/core/PortManager.js.map +1 -0
- package/dist/core/message-bus/core/PortManager.mjs +114 -0
- package/dist/core/message-bus/core/PortManager.mjs.map +1 -0
- package/dist/core/message-bus/core/SubscriptionManager.d.ts +36 -0
- package/dist/core/message-bus/core/SubscriptionManager.js +78 -0
- package/dist/core/message-bus/core/SubscriptionManager.js.map +1 -0
- package/dist/core/message-bus/core/SubscriptionManager.mjs +78 -0
- package/dist/core/message-bus/core/SubscriptionManager.mjs.map +1 -0
- package/dist/core/message-bus/core/TransactionManager.d.ts +54 -0
- package/dist/core/message-bus/core/TransactionManager.js +95 -0
- package/dist/core/message-bus/core/TransactionManager.js.map +1 -0
- package/dist/core/message-bus/core/TransactionManager.mjs +95 -0
- package/dist/core/message-bus/core/TransactionManager.mjs.map +1 -0
- package/dist/core/message-bus/core/index.d.ts +5 -0
- package/dist/core/message-bus/index.d.ts +4 -0
- package/dist/core/message-bus/index.js +1 -0
- package/dist/core/message-bus/index.js.map +1 -0
- package/dist/core/message-bus/index.mjs +1 -0
- package/dist/core/message-bus/index.mjs.map +1 -0
- package/dist/core/message-bus/message-bus.type.d.ts +143 -0
- package/dist/core/message-bus/message-bus.type.js +26 -0
- package/dist/core/message-bus/message-bus.type.js.map +1 -0
- package/dist/core/message-bus/message-bus.type.mjs +26 -0
- package/dist/core/message-bus/message-bus.type.mjs.map +1 -0
- package/dist/core/message-bus/preload.d.ts +16 -0
- package/dist/core/message-bus/preload.js +27 -0
- package/dist/core/message-bus/preload.js.map +1 -0
- package/dist/core/message-bus/preload.mjs +27 -0
- package/dist/core/message-bus/preload.mjs.map +1 -0
- package/dist/core/message-bus/transport/ITransport.d.ts +40 -0
- package/dist/core/message-bus/transport/IpcTransport.d.ts +18 -0
- package/dist/core/message-bus/transport/IpcTransport.js +60 -0
- package/dist/core/message-bus/transport/IpcTransport.js.map +1 -0
- package/dist/core/message-bus/transport/IpcTransport.mjs +60 -0
- package/dist/core/message-bus/transport/IpcTransport.mjs.map +1 -0
- package/dist/core/message-bus/transport/MessagePortTransport.d.ts +15 -0
- package/dist/core/message-bus/transport/MessagePortTransport.js +35 -0
- package/dist/core/message-bus/transport/MessagePortTransport.js.map +1 -0
- package/dist/core/message-bus/transport/MessagePortTransport.mjs +35 -0
- package/dist/core/message-bus/transport/MessagePortTransport.mjs.map +1 -0
- package/dist/core/message-bus/transport/index.d.ts +3 -0
- package/dist/core/window/IpcSetup.d.ts +50 -0
- package/dist/core/window/IpcSetup.js +96 -0
- package/dist/core/window/IpcSetup.js.map +1 -0
- package/dist/core/window/IpcSetup.mjs +96 -0
- package/dist/core/window/IpcSetup.mjs.map +1 -0
- package/dist/core/window/WindowCreator.d.ts +66 -0
- package/dist/core/window/WindowCreator.js +168 -0
- package/dist/core/window/WindowCreator.js.map +1 -0
- package/dist/core/window/WindowCreator.mjs +168 -0
- package/dist/core/window/WindowCreator.mjs.map +1 -0
- package/dist/core/window/WindowManager.d.ts +214 -0
- package/dist/core/window/WindowManager.js +583 -0
- package/dist/core/window/WindowManager.js.map +1 -0
- package/dist/core/window/WindowManager.mjs +583 -0
- package/dist/core/window/WindowManager.mjs.map +1 -0
- package/dist/core/window/WindowStore.d.ts +136 -0
- package/dist/core/window/WindowStore.js +436 -0
- package/dist/core/window/WindowStore.js.map +1 -0
- package/dist/core/window/WindowStore.mjs +436 -0
- package/dist/core/window/WindowStore.mjs.map +1 -0
- package/dist/core/window/constants.d.ts +17 -0
- package/dist/core/window/constants.js +15 -0
- package/dist/core/window/constants.js.map +1 -0
- package/dist/core/window/constants.mjs +15 -0
- package/dist/core/window/constants.mjs.map +1 -0
- package/dist/core/window/core/MetricsManager.d.ts +14 -0
- package/dist/core/window/core/MetricsManager.js +27 -0
- package/dist/core/window/core/MetricsManager.js.map +1 -0
- package/dist/core/window/core/MetricsManager.mjs +27 -0
- package/dist/core/window/core/MetricsManager.mjs.map +1 -0
- package/dist/core/window/core/PluginExecutor.d.ts +22 -0
- package/dist/core/window/core/PluginExecutor.js +110 -0
- package/dist/core/window/core/PluginExecutor.js.map +1 -0
- package/dist/core/window/core/PluginExecutor.mjs +110 -0
- package/dist/core/window/core/PluginExecutor.mjs.map +1 -0
- package/dist/core/window/core/WindowContextManager.d.ts +26 -0
- package/dist/core/window/core/WindowContextManager.js +59 -0
- package/dist/core/window/core/WindowContextManager.js.map +1 -0
- package/dist/core/window/core/WindowContextManager.mjs +59 -0
- package/dist/core/window/core/WindowContextManager.mjs.map +1 -0
- package/dist/core/window/core/WindowLifecycle.d.ts +15 -0
- package/dist/core/window/core/WindowLifecycle.js +150 -0
- package/dist/core/window/core/WindowLifecycle.js.map +1 -0
- package/dist/core/window/core/WindowLifecycle.mjs +150 -0
- package/dist/core/window/core/WindowLifecycle.mjs.map +1 -0
- package/dist/core/window/core/WindowOperator.d.ts +90 -0
- package/dist/core/window/core/WindowOperator.js +154 -0
- package/dist/core/window/core/WindowOperator.js.map +1 -0
- package/dist/core/window/core/WindowOperator.mjs +154 -0
- package/dist/core/window/core/WindowOperator.mjs.map +1 -0
- package/dist/core/window/core/WindowRegistry.d.ts +168 -0
- package/dist/core/window/core/WindowRegistry.js +331 -0
- package/dist/core/window/core/WindowRegistry.js.map +1 -0
- package/dist/core/window/core/WindowRegistry.mjs +331 -0
- package/dist/core/window/core/WindowRegistry.mjs.map +1 -0
- package/dist/core/window/core/WindowStateManager.d.ts +40 -0
- package/dist/core/window/core/WindowStateManager.js +110 -0
- package/dist/core/window/core/WindowStateManager.js.map +1 -0
- package/dist/core/window/core/WindowStateManager.mjs +110 -0
- package/dist/core/window/core/WindowStateManager.mjs.map +1 -0
- package/dist/core/window/index.d.ts +7 -0
- package/dist/core/window/index.js +1 -0
- package/dist/core/window/index.js.map +1 -0
- package/dist/core/window/index.mjs +1 -0
- package/dist/core/window/index.mjs.map +1 -0
- package/dist/core/window/window-manager.schema.d.ts +50 -0
- package/dist/core/window/window-manager.schema.js +87 -0
- package/dist/core/window/window-manager.schema.js.map +1 -0
- package/dist/core/window/window-manager.schema.mjs +87 -0
- package/dist/core/window/window-manager.schema.mjs.map +1 -0
- package/dist/core/window/window-manager.type.d.ts +365 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +33 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.umd.js +1 -0
- package/dist/infrastructure/config/ConfigManager.d.ts +133 -0
- package/dist/infrastructure/config/ConfigManager.js +218 -0
- package/dist/infrastructure/config/ConfigManager.js.map +1 -0
- package/dist/infrastructure/config/ConfigManager.mjs +218 -0
- package/dist/infrastructure/config/ConfigManager.mjs.map +1 -0
- package/dist/infrastructure/config/index.d.ts +1 -0
- package/dist/infrastructure/debug/EnhancedDebugHelper.d.ts +106 -0
- package/dist/infrastructure/debug/EnhancedDebugHelper.js +218 -0
- package/dist/infrastructure/debug/EnhancedDebugHelper.js.map +1 -0
- package/dist/infrastructure/debug/EnhancedDebugHelper.mjs +218 -0
- package/dist/infrastructure/debug/EnhancedDebugHelper.mjs.map +1 -0
- package/dist/infrastructure/debug/PerformanceMonitor.d.ts +45 -0
- package/dist/infrastructure/debug/PerformanceMonitor.js +67 -0
- package/dist/infrastructure/debug/PerformanceMonitor.js.map +1 -0
- package/dist/infrastructure/debug/PerformanceMonitor.mjs +67 -0
- package/dist/infrastructure/debug/PerformanceMonitor.mjs.map +1 -0
- package/dist/infrastructure/debug/index.d.ts +22 -0
- package/dist/infrastructure/debug/index.js +47 -0
- package/dist/infrastructure/debug/index.js.map +1 -0
- package/dist/infrastructure/debug/index.mjs +47 -0
- package/dist/infrastructure/debug/index.mjs.map +1 -0
- package/dist/infrastructure/errors/ErrorCodes.d.ts +74 -0
- package/dist/infrastructure/errors/ErrorCodes.js +78 -0
- package/dist/infrastructure/errors/ErrorCodes.js.map +1 -0
- package/dist/infrastructure/errors/ErrorCodes.mjs +78 -0
- package/dist/infrastructure/errors/ErrorCodes.mjs.map +1 -0
- package/dist/infrastructure/errors/StandardError.d.ts +61 -0
- package/dist/infrastructure/errors/StandardError.js +84 -0
- package/dist/infrastructure/errors/StandardError.js.map +1 -0
- package/dist/infrastructure/errors/StandardError.mjs +84 -0
- package/dist/infrastructure/errors/StandardError.mjs.map +1 -0
- package/dist/infrastructure/errors/index.d.ts +13 -0
- package/dist/infrastructure/errors/index.js +24 -0
- package/dist/infrastructure/errors/index.js.map +1 -0
- package/dist/infrastructure/errors/index.mjs +24 -0
- package/dist/infrastructure/errors/index.mjs.map +1 -0
- package/dist/infrastructure/logger/ElectronLogger.d.ts +39 -0
- package/dist/infrastructure/logger/ElectronLogger.js +65 -0
- package/dist/infrastructure/logger/ElectronLogger.js.map +1 -0
- package/dist/infrastructure/logger/ElectronLogger.mjs +65 -0
- package/dist/infrastructure/logger/ElectronLogger.mjs.map +1 -0
- package/dist/infrastructure/logger/index.d.ts +2 -0
- package/dist/infrastructure/logger/logger.type.d.ts +8 -0
- package/dist/internal/types/BrandedTypes.d.ts +64 -0
- package/dist/internal/types/BrandedTypes.js +54 -0
- package/dist/internal/types/BrandedTypes.js.map +1 -0
- package/dist/internal/types/BrandedTypes.mjs +54 -0
- package/dist/internal/types/BrandedTypes.mjs.map +1 -0
- package/dist/internal/types/PerformanceOptions.d.ts +87 -0
- package/dist/internal/types/branded.d.ts +42 -0
- package/dist/internal/utils/MessageDispatcher.d.ts +67 -0
- package/dist/internal/utils/MessageDispatcher.js +96 -0
- package/dist/internal/utils/MessageDispatcher.js.map +1 -0
- package/dist/internal/utils/MessageDispatcher.mjs +96 -0
- package/dist/internal/utils/MessageDispatcher.mjs.map +1 -0
- package/dist/internal/utils/RateLimiter.d.ts +41 -0
- package/dist/internal/utils/RateLimiter.js +83 -0
- package/dist/internal/utils/RateLimiter.js.map +1 -0
- package/dist/internal/utils/RateLimiter.mjs +83 -0
- package/dist/internal/utils/RateLimiter.mjs.map +1 -0
- package/dist/internal/utils/StateKeeper.d.ts +125 -0
- package/dist/internal/utils/StateKeeper.js +334 -0
- package/dist/internal/utils/StateKeeper.js.map +1 -0
- package/dist/internal/utils/StateKeeper.mjs +334 -0
- package/dist/internal/utils/StateKeeper.mjs.map +1 -0
- package/dist/internal/utils/branded-helpers.d.ts +33 -0
- package/dist/internal/utils/index.d.ts +5 -0
- package/dist/preload/index.d.ts +45 -0
- package/dist/preload/index.js +91 -0
- package/dist/preload/index.js.map +1 -0
- package/dist/preload/index.mjs +91 -0
- package/dist/preload/index.mjs.map +1 -0
- package/dist/preload/preload.type.d.ts +15 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/types.mjs +1 -0
- package/dist/types.mjs.map +1 -0
- package/package.json +143 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use strict';/**
|
|
2
|
+
* Unified Error Codes for electron-infra-kit
|
|
3
|
+
* 统一的错误码定义
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* IPC Error Codes
|
|
7
|
+
* IPC 错误码
|
|
8
|
+
*/
|
|
9
|
+
exports.IpcErrorCode=void 0;
|
|
10
|
+
(function (IpcErrorCode) {
|
|
11
|
+
/** Success */
|
|
12
|
+
IpcErrorCode[IpcErrorCode["SUCCESS"] = 0] = "SUCCESS";
|
|
13
|
+
/** Bad Request - Invalid payload or parameters */
|
|
14
|
+
IpcErrorCode[IpcErrorCode["BAD_REQUEST"] = 400] = "BAD_REQUEST";
|
|
15
|
+
/** Forbidden - Permission denied */
|
|
16
|
+
IpcErrorCode[IpcErrorCode["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
17
|
+
/** Not Found - Handler not found */
|
|
18
|
+
IpcErrorCode[IpcErrorCode["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
19
|
+
/** Validation Error - Schema validation failed */
|
|
20
|
+
IpcErrorCode[IpcErrorCode["VALIDATION_ERROR"] = 422] = "VALIDATION_ERROR";
|
|
21
|
+
/** Internal Server Error */
|
|
22
|
+
IpcErrorCode[IpcErrorCode["INTERNAL_ERROR"] = 500] = "INTERNAL_ERROR";
|
|
23
|
+
/** Handler Execution Error */
|
|
24
|
+
IpcErrorCode[IpcErrorCode["HANDLER_ERROR"] = 501] = "HANDLER_ERROR";
|
|
25
|
+
})(exports.IpcErrorCode || (exports.IpcErrorCode = {}));
|
|
26
|
+
/**
|
|
27
|
+
* MessageBus Error Codes
|
|
28
|
+
* MessageBus 错误码
|
|
29
|
+
*/
|
|
30
|
+
exports.MessageBusErrorCode=void 0;
|
|
31
|
+
(function (MessageBusErrorCode) {
|
|
32
|
+
/** Success */
|
|
33
|
+
MessageBusErrorCode[MessageBusErrorCode["SUCCESS"] = 0] = "SUCCESS";
|
|
34
|
+
/** Permission Denied - Field permission check failed */
|
|
35
|
+
MessageBusErrorCode[MessageBusErrorCode["PERMISSION_DENIED"] = 403] = "PERMISSION_DENIED";
|
|
36
|
+
/** Not Found - Window or field not found */
|
|
37
|
+
MessageBusErrorCode[MessageBusErrorCode["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
38
|
+
/** Invalid Operation */
|
|
39
|
+
MessageBusErrorCode[MessageBusErrorCode["INVALID_OPERATION"] = 400] = "INVALID_OPERATION";
|
|
40
|
+
/** Internal Error */
|
|
41
|
+
MessageBusErrorCode[MessageBusErrorCode["INTERNAL_ERROR"] = 500] = "INTERNAL_ERROR";
|
|
42
|
+
})(exports.MessageBusErrorCode || (exports.MessageBusErrorCode = {}));
|
|
43
|
+
/**
|
|
44
|
+
* WindowManager Error Codes
|
|
45
|
+
* WindowManager 错误码
|
|
46
|
+
*/
|
|
47
|
+
exports.WindowManagerErrorCode=void 0;
|
|
48
|
+
(function (WindowManagerErrorCode) {
|
|
49
|
+
/** Success */
|
|
50
|
+
WindowManagerErrorCode[WindowManagerErrorCode["SUCCESS"] = 0] = "SUCCESS";
|
|
51
|
+
/** Window Not Found */
|
|
52
|
+
WindowManagerErrorCode[WindowManagerErrorCode["WINDOW_NOT_FOUND"] = 404] = "WINDOW_NOT_FOUND";
|
|
53
|
+
/** Window Already Exists */
|
|
54
|
+
WindowManagerErrorCode[WindowManagerErrorCode["WINDOW_ALREADY_EXISTS"] = 409] = "WINDOW_ALREADY_EXISTS";
|
|
55
|
+
/** Invalid Configuration */
|
|
56
|
+
WindowManagerErrorCode[WindowManagerErrorCode["INVALID_CONFIG"] = 400] = "INVALID_CONFIG";
|
|
57
|
+
/** Creation Failed */
|
|
58
|
+
WindowManagerErrorCode[WindowManagerErrorCode["CREATION_FAILED"] = 500] = "CREATION_FAILED";
|
|
59
|
+
/** Operation Failed */
|
|
60
|
+
WindowManagerErrorCode[WindowManagerErrorCode["OPERATION_FAILED"] = 500] = "OPERATION_FAILED";
|
|
61
|
+
})(exports.WindowManagerErrorCode || (exports.WindowManagerErrorCode = {}));
|
|
62
|
+
/**
|
|
63
|
+
* Error Category
|
|
64
|
+
* 错误类别
|
|
65
|
+
*/
|
|
66
|
+
exports.ErrorCategory=void 0;
|
|
67
|
+
(function (ErrorCategory) {
|
|
68
|
+
/** Validation Error */
|
|
69
|
+
ErrorCategory["VALIDATION"] = "VALIDATION";
|
|
70
|
+
/** Permission Error */
|
|
71
|
+
ErrorCategory["PERMISSION"] = "PERMISSION";
|
|
72
|
+
/** Not Found Error */
|
|
73
|
+
ErrorCategory["NOT_FOUND"] = "NOT_FOUND";
|
|
74
|
+
/** Internal Error */
|
|
75
|
+
ErrorCategory["INTERNAL"] = "INTERNAL";
|
|
76
|
+
/** Business Logic Error */
|
|
77
|
+
ErrorCategory["BUSINESS"] = "BUSINESS";
|
|
78
|
+
})(exports.ErrorCategory || (exports.ErrorCategory = {}));//# sourceMappingURL=ErrorCodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorCodes.js","sources":["../../../src/infrastructure/errors/ErrorCodes.ts"],"sourcesContent":["/**\n * Unified Error Codes for electron-infra-kit\n * 统一的错误码定义\n */\n\n/**\n * IPC Error Codes\n * IPC 错误码\n */\nexport enum IpcErrorCode {\n /** Success */\n SUCCESS = 0,\n\n /** Bad Request - Invalid payload or parameters */\n BAD_REQUEST = 400,\n\n /** Forbidden - Permission denied */\n FORBIDDEN = 403,\n\n /** Not Found - Handler not found */\n NOT_FOUND = 404,\n\n /** Validation Error - Schema validation failed */\n VALIDATION_ERROR = 422,\n\n /** Internal Server Error */\n INTERNAL_ERROR = 500,\n\n /** Handler Execution Error */\n HANDLER_ERROR = 501,\n}\n\n/**\n * MessageBus Error Codes\n * MessageBus 错误码\n */\nexport enum MessageBusErrorCode {\n /** Success */\n SUCCESS = 0,\n\n /** Permission Denied - Field permission check failed */\n PERMISSION_DENIED = 403,\n\n /** Not Found - Window or field not found */\n NOT_FOUND = 404,\n\n /** Invalid Operation */\n INVALID_OPERATION = 400,\n\n /** Internal Error */\n INTERNAL_ERROR = 500,\n}\n\n/**\n * WindowManager Error Codes\n * WindowManager 错误码\n */\nexport enum WindowManagerErrorCode {\n /** Success */\n SUCCESS = 0,\n\n /** Window Not Found */\n WINDOW_NOT_FOUND = 404,\n\n /** Window Already Exists */\n WINDOW_ALREADY_EXISTS = 409,\n\n /** Invalid Configuration */\n INVALID_CONFIG = 400,\n\n /** Creation Failed */\n CREATION_FAILED = 500,\n\n /** Operation Failed */\n OPERATION_FAILED = 500,\n}\n\n/**\n * Error Category\n * 错误类别\n */\nexport enum ErrorCategory {\n /** Validation Error */\n VALIDATION = 'VALIDATION',\n\n /** Permission Error */\n PERMISSION = 'PERMISSION',\n\n /** Not Found Error */\n NOT_FOUND = 'NOT_FOUND',\n\n /** Internal Error */\n INTERNAL = 'INTERNAL',\n\n /** Business Logic Error */\n BUSINESS = 'BUSINESS',\n}\n"],"names":["IpcErrorCode","MessageBusErrorCode","WindowManagerErrorCode","ErrorCategory"],"mappings":"aAAA;;;AAGG;AAEH;;;AAGG;AACSA;AAAZ,CAAA,UAAY,YAAY,EAAA;;AAEtB,IAAA,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,YAAA,CAAA,YAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAiB;;AAGjB,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,GAAA,CAAA,GAAA,WAAe;;AAGf,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,GAAA,CAAA,GAAA,WAAe;;AAGf,IAAA,YAAA,CAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kBAAsB;;AAGtB,IAAA,YAAA,CAAA,YAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAAoB;;AAGpB,IAAA,YAAA,CAAA,YAAA,CAAA,eAAA,CAAA,GAAA,GAAA,CAAA,GAAA,eAAmB;AACrB,CAAC,EArBWA,oBAAY,KAAZA,oBAAY,GAAA,EAAA,CAAA,CAAA;AAuBxB;;;AAGG;AACSC;AAAZ,CAAA,UAAY,mBAAmB,EAAA;;AAE7B,IAAA,mBAAA,CAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,mBAAA,CAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,mBAAuB;;AAGvB,IAAA,mBAAA,CAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,GAAA,CAAA,GAAA,WAAe;;AAGf,IAAA,mBAAA,CAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,mBAAuB;;AAGvB,IAAA,mBAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAAoB;AACtB,CAAC,EAfWA,2BAAmB,KAAnBA,2BAAmB,GAAA,EAAA,CAAA,CAAA;AAiB/B;;;AAGG;AACSC;AAAZ,CAAA,UAAY,sBAAsB,EAAA;;AAEhC,IAAA,sBAAA,CAAA,sBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,sBAAA,CAAA,sBAAA,CAAA,kBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kBAAsB;;AAGtB,IAAA,sBAAA,CAAA,sBAAA,CAAA,uBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,uBAA2B;;AAG3B,IAAA,sBAAA,CAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAAoB;;AAGpB,IAAA,sBAAA,CAAA,sBAAA,CAAA,iBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,iBAAqB;;AAGrB,IAAA,sBAAA,CAAA,sBAAA,CAAA,kBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kBAAsB;AACxB,CAAC,EAlBWA,8BAAsB,KAAtBA,8BAAsB,GAAA,EAAA,CAAA,CAAA;AAoBlC;;;AAGG;AACSC;AAAZ,CAAA,UAAY,aAAa,EAAA;;AAEvB,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;;AAGzB,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;;AAGzB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;;AAGvB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;;AAGrB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAfWA,qBAAa,KAAbA,qBAAa,GAAA,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Error Codes for electron-infra-kit
|
|
3
|
+
* 统一的错误码定义
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* IPC Error Codes
|
|
7
|
+
* IPC 错误码
|
|
8
|
+
*/
|
|
9
|
+
var IpcErrorCode;
|
|
10
|
+
(function (IpcErrorCode) {
|
|
11
|
+
/** Success */
|
|
12
|
+
IpcErrorCode[IpcErrorCode["SUCCESS"] = 0] = "SUCCESS";
|
|
13
|
+
/** Bad Request - Invalid payload or parameters */
|
|
14
|
+
IpcErrorCode[IpcErrorCode["BAD_REQUEST"] = 400] = "BAD_REQUEST";
|
|
15
|
+
/** Forbidden - Permission denied */
|
|
16
|
+
IpcErrorCode[IpcErrorCode["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
17
|
+
/** Not Found - Handler not found */
|
|
18
|
+
IpcErrorCode[IpcErrorCode["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
19
|
+
/** Validation Error - Schema validation failed */
|
|
20
|
+
IpcErrorCode[IpcErrorCode["VALIDATION_ERROR"] = 422] = "VALIDATION_ERROR";
|
|
21
|
+
/** Internal Server Error */
|
|
22
|
+
IpcErrorCode[IpcErrorCode["INTERNAL_ERROR"] = 500] = "INTERNAL_ERROR";
|
|
23
|
+
/** Handler Execution Error */
|
|
24
|
+
IpcErrorCode[IpcErrorCode["HANDLER_ERROR"] = 501] = "HANDLER_ERROR";
|
|
25
|
+
})(IpcErrorCode || (IpcErrorCode = {}));
|
|
26
|
+
/**
|
|
27
|
+
* MessageBus Error Codes
|
|
28
|
+
* MessageBus 错误码
|
|
29
|
+
*/
|
|
30
|
+
var MessageBusErrorCode;
|
|
31
|
+
(function (MessageBusErrorCode) {
|
|
32
|
+
/** Success */
|
|
33
|
+
MessageBusErrorCode[MessageBusErrorCode["SUCCESS"] = 0] = "SUCCESS";
|
|
34
|
+
/** Permission Denied - Field permission check failed */
|
|
35
|
+
MessageBusErrorCode[MessageBusErrorCode["PERMISSION_DENIED"] = 403] = "PERMISSION_DENIED";
|
|
36
|
+
/** Not Found - Window or field not found */
|
|
37
|
+
MessageBusErrorCode[MessageBusErrorCode["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
38
|
+
/** Invalid Operation */
|
|
39
|
+
MessageBusErrorCode[MessageBusErrorCode["INVALID_OPERATION"] = 400] = "INVALID_OPERATION";
|
|
40
|
+
/** Internal Error */
|
|
41
|
+
MessageBusErrorCode[MessageBusErrorCode["INTERNAL_ERROR"] = 500] = "INTERNAL_ERROR";
|
|
42
|
+
})(MessageBusErrorCode || (MessageBusErrorCode = {}));
|
|
43
|
+
/**
|
|
44
|
+
* WindowManager Error Codes
|
|
45
|
+
* WindowManager 错误码
|
|
46
|
+
*/
|
|
47
|
+
var WindowManagerErrorCode;
|
|
48
|
+
(function (WindowManagerErrorCode) {
|
|
49
|
+
/** Success */
|
|
50
|
+
WindowManagerErrorCode[WindowManagerErrorCode["SUCCESS"] = 0] = "SUCCESS";
|
|
51
|
+
/** Window Not Found */
|
|
52
|
+
WindowManagerErrorCode[WindowManagerErrorCode["WINDOW_NOT_FOUND"] = 404] = "WINDOW_NOT_FOUND";
|
|
53
|
+
/** Window Already Exists */
|
|
54
|
+
WindowManagerErrorCode[WindowManagerErrorCode["WINDOW_ALREADY_EXISTS"] = 409] = "WINDOW_ALREADY_EXISTS";
|
|
55
|
+
/** Invalid Configuration */
|
|
56
|
+
WindowManagerErrorCode[WindowManagerErrorCode["INVALID_CONFIG"] = 400] = "INVALID_CONFIG";
|
|
57
|
+
/** Creation Failed */
|
|
58
|
+
WindowManagerErrorCode[WindowManagerErrorCode["CREATION_FAILED"] = 500] = "CREATION_FAILED";
|
|
59
|
+
/** Operation Failed */
|
|
60
|
+
WindowManagerErrorCode[WindowManagerErrorCode["OPERATION_FAILED"] = 500] = "OPERATION_FAILED";
|
|
61
|
+
})(WindowManagerErrorCode || (WindowManagerErrorCode = {}));
|
|
62
|
+
/**
|
|
63
|
+
* Error Category
|
|
64
|
+
* 错误类别
|
|
65
|
+
*/
|
|
66
|
+
var ErrorCategory;
|
|
67
|
+
(function (ErrorCategory) {
|
|
68
|
+
/** Validation Error */
|
|
69
|
+
ErrorCategory["VALIDATION"] = "VALIDATION";
|
|
70
|
+
/** Permission Error */
|
|
71
|
+
ErrorCategory["PERMISSION"] = "PERMISSION";
|
|
72
|
+
/** Not Found Error */
|
|
73
|
+
ErrorCategory["NOT_FOUND"] = "NOT_FOUND";
|
|
74
|
+
/** Internal Error */
|
|
75
|
+
ErrorCategory["INTERNAL"] = "INTERNAL";
|
|
76
|
+
/** Business Logic Error */
|
|
77
|
+
ErrorCategory["BUSINESS"] = "BUSINESS";
|
|
78
|
+
})(ErrorCategory || (ErrorCategory = {}));export{ErrorCategory,IpcErrorCode,MessageBusErrorCode,WindowManagerErrorCode};//# sourceMappingURL=ErrorCodes.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorCodes.mjs","sources":["../../../src/infrastructure/errors/ErrorCodes.ts"],"sourcesContent":["/**\n * Unified Error Codes for electron-infra-kit\n * 统一的错误码定义\n */\n\n/**\n * IPC Error Codes\n * IPC 错误码\n */\nexport enum IpcErrorCode {\n /** Success */\n SUCCESS = 0,\n\n /** Bad Request - Invalid payload or parameters */\n BAD_REQUEST = 400,\n\n /** Forbidden - Permission denied */\n FORBIDDEN = 403,\n\n /** Not Found - Handler not found */\n NOT_FOUND = 404,\n\n /** Validation Error - Schema validation failed */\n VALIDATION_ERROR = 422,\n\n /** Internal Server Error */\n INTERNAL_ERROR = 500,\n\n /** Handler Execution Error */\n HANDLER_ERROR = 501,\n}\n\n/**\n * MessageBus Error Codes\n * MessageBus 错误码\n */\nexport enum MessageBusErrorCode {\n /** Success */\n SUCCESS = 0,\n\n /** Permission Denied - Field permission check failed */\n PERMISSION_DENIED = 403,\n\n /** Not Found - Window or field not found */\n NOT_FOUND = 404,\n\n /** Invalid Operation */\n INVALID_OPERATION = 400,\n\n /** Internal Error */\n INTERNAL_ERROR = 500,\n}\n\n/**\n * WindowManager Error Codes\n * WindowManager 错误码\n */\nexport enum WindowManagerErrorCode {\n /** Success */\n SUCCESS = 0,\n\n /** Window Not Found */\n WINDOW_NOT_FOUND = 404,\n\n /** Window Already Exists */\n WINDOW_ALREADY_EXISTS = 409,\n\n /** Invalid Configuration */\n INVALID_CONFIG = 400,\n\n /** Creation Failed */\n CREATION_FAILED = 500,\n\n /** Operation Failed */\n OPERATION_FAILED = 500,\n}\n\n/**\n * Error Category\n * 错误类别\n */\nexport enum ErrorCategory {\n /** Validation Error */\n VALIDATION = 'VALIDATION',\n\n /** Permission Error */\n PERMISSION = 'PERMISSION',\n\n /** Not Found Error */\n NOT_FOUND = 'NOT_FOUND',\n\n /** Internal Error */\n INTERNAL = 'INTERNAL',\n\n /** Business Logic Error */\n BUSINESS = 'BUSINESS',\n}\n"],"names":[],"mappings":"AAAA;;;AAGG;AAEH;;;AAGG;IACS;AAAZ,CAAA,UAAY,YAAY,EAAA;;AAEtB,IAAA,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,YAAA,CAAA,YAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAiB;;AAGjB,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,GAAA,CAAA,GAAA,WAAe;;AAGf,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,GAAA,CAAA,GAAA,WAAe;;AAGf,IAAA,YAAA,CAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kBAAsB;;AAGtB,IAAA,YAAA,CAAA,YAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAAoB;;AAGpB,IAAA,YAAA,CAAA,YAAA,CAAA,eAAA,CAAA,GAAA,GAAA,CAAA,GAAA,eAAmB;AACrB,CAAC,EArBW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;AAuBxB;;;AAGG;IACS;AAAZ,CAAA,UAAY,mBAAmB,EAAA;;AAE7B,IAAA,mBAAA,CAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,mBAAA,CAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,mBAAuB;;AAGvB,IAAA,mBAAA,CAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,GAAA,CAAA,GAAA,WAAe;;AAGf,IAAA,mBAAA,CAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,mBAAuB;;AAGvB,IAAA,mBAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAAoB;AACtB,CAAC,EAfW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;AAiB/B;;;AAGG;IACS;AAAZ,CAAA,UAAY,sBAAsB,EAAA;;AAEhC,IAAA,sBAAA,CAAA,sBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;;AAGX,IAAA,sBAAA,CAAA,sBAAA,CAAA,kBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kBAAsB;;AAGtB,IAAA,sBAAA,CAAA,sBAAA,CAAA,uBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,uBAA2B;;AAG3B,IAAA,sBAAA,CAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAAoB;;AAGpB,IAAA,sBAAA,CAAA,sBAAA,CAAA,iBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,iBAAqB;;AAGrB,IAAA,sBAAA,CAAA,sBAAA,CAAA,kBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kBAAsB;AACxB,CAAC,EAlBW,sBAAsB,KAAtB,sBAAsB,GAAA,EAAA,CAAA,CAAA;AAoBlC;;;AAGG;IACS;AAAZ,CAAA,UAAY,aAAa,EAAA;;AAEvB,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;;AAGzB,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;;AAGzB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;;AAGvB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;;AAGrB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAfW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ErrorCategory } from './ErrorCodes';
|
|
2
|
+
/**
|
|
3
|
+
* Standard Error Response
|
|
4
|
+
* 标准错误响应
|
|
5
|
+
*/
|
|
6
|
+
export interface ErrorResponse {
|
|
7
|
+
/** Error code */
|
|
8
|
+
code: number;
|
|
9
|
+
/** Error message */
|
|
10
|
+
message: string;
|
|
11
|
+
/** Error category */
|
|
12
|
+
category?: ErrorCategory;
|
|
13
|
+
/** Additional error details */
|
|
14
|
+
details?: unknown;
|
|
15
|
+
/** Error stack (only in development mode) */
|
|
16
|
+
stack?: string;
|
|
17
|
+
/** Timestamp */
|
|
18
|
+
timestamp?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Standard Error Class
|
|
22
|
+
* 标准错误类
|
|
23
|
+
*/
|
|
24
|
+
export declare class StandardError extends Error {
|
|
25
|
+
readonly code: number;
|
|
26
|
+
readonly category: ErrorCategory;
|
|
27
|
+
readonly details?: unknown;
|
|
28
|
+
readonly timestamp: number;
|
|
29
|
+
constructor(code: number, message: string, category?: ErrorCategory, details?: unknown);
|
|
30
|
+
/**
|
|
31
|
+
* Convert to error response
|
|
32
|
+
* 转换为错误响应
|
|
33
|
+
*/
|
|
34
|
+
toResponse(includeStack?: boolean): ErrorResponse;
|
|
35
|
+
/**
|
|
36
|
+
* Create from unknown error
|
|
37
|
+
* 从未知错误创建
|
|
38
|
+
*/
|
|
39
|
+
static from(error: unknown, defaultCode?: number): StandardError;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Validation Error
|
|
43
|
+
* 验证错误
|
|
44
|
+
*/
|
|
45
|
+
export declare class ValidationError extends StandardError {
|
|
46
|
+
constructor(message: string, details?: unknown);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Permission Error
|
|
50
|
+
* 权限错误
|
|
51
|
+
*/
|
|
52
|
+
export declare class PermissionError extends StandardError {
|
|
53
|
+
constructor(message: string, details?: unknown);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Not Found Error
|
|
57
|
+
* 未找到错误
|
|
58
|
+
*/
|
|
59
|
+
export declare class NotFoundError extends StandardError {
|
|
60
|
+
constructor(message: string, details?: unknown);
|
|
61
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use strict';var ErrorCodes=require('./ErrorCodes.js');/**
|
|
2
|
+
* Standard Error Class
|
|
3
|
+
* 标准错误类
|
|
4
|
+
*/
|
|
5
|
+
class StandardError extends Error {
|
|
6
|
+
code;
|
|
7
|
+
category;
|
|
8
|
+
details;
|
|
9
|
+
timestamp;
|
|
10
|
+
constructor(code, message, category = ErrorCodes.ErrorCategory.INTERNAL, details) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'StandardError';
|
|
13
|
+
this.code = code;
|
|
14
|
+
this.category = category;
|
|
15
|
+
this.details = details;
|
|
16
|
+
this.timestamp = Date.now();
|
|
17
|
+
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
18
|
+
if (Error.captureStackTrace) {
|
|
19
|
+
Error.captureStackTrace(this, StandardError);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Convert to error response
|
|
24
|
+
* 转换为错误响应
|
|
25
|
+
*/
|
|
26
|
+
toResponse(includeStack = false) {
|
|
27
|
+
return {
|
|
28
|
+
code: this.code,
|
|
29
|
+
message: this.message,
|
|
30
|
+
category: this.category,
|
|
31
|
+
details: this.details,
|
|
32
|
+
stack: includeStack ? this.stack : undefined,
|
|
33
|
+
timestamp: this.timestamp,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create from unknown error
|
|
38
|
+
* 从未知错误创建
|
|
39
|
+
*/
|
|
40
|
+
static from(error, defaultCode = 500) {
|
|
41
|
+
if (error instanceof StandardError) {
|
|
42
|
+
return error;
|
|
43
|
+
}
|
|
44
|
+
if (error instanceof Error) {
|
|
45
|
+
return new StandardError(defaultCode, error.message, ErrorCodes.ErrorCategory.INTERNAL, {
|
|
46
|
+
originalError: error.name,
|
|
47
|
+
stack: error.stack,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return new StandardError(defaultCode, String(error), ErrorCodes.ErrorCategory.INTERNAL, {
|
|
51
|
+
originalError: error,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Validation Error
|
|
57
|
+
* 验证错误
|
|
58
|
+
*/
|
|
59
|
+
class ValidationError extends StandardError {
|
|
60
|
+
constructor(message, details) {
|
|
61
|
+
super(422, message, ErrorCodes.ErrorCategory.VALIDATION, details);
|
|
62
|
+
this.name = 'ValidationError';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Permission Error
|
|
67
|
+
* 权限错误
|
|
68
|
+
*/
|
|
69
|
+
class PermissionError extends StandardError {
|
|
70
|
+
constructor(message, details) {
|
|
71
|
+
super(403, message, ErrorCodes.ErrorCategory.PERMISSION, details);
|
|
72
|
+
this.name = 'PermissionError';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Not Found Error
|
|
77
|
+
* 未找到错误
|
|
78
|
+
*/
|
|
79
|
+
class NotFoundError extends StandardError {
|
|
80
|
+
constructor(message, details) {
|
|
81
|
+
super(404, message, ErrorCodes.ErrorCategory.NOT_FOUND, details);
|
|
82
|
+
this.name = 'NotFoundError';
|
|
83
|
+
}
|
|
84
|
+
}exports.NotFoundError=NotFoundError;exports.PermissionError=PermissionError;exports.StandardError=StandardError;exports.ValidationError=ValidationError;//# sourceMappingURL=StandardError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StandardError.js","sources":["../../../src/infrastructure/errors/StandardError.ts"],"sourcesContent":["import { ErrorCategory } from './ErrorCodes';\n\n/**\n * Standard Error Response\n * 标准错误响应\n */\nexport interface ErrorResponse {\n /** Error code */\n code: number;\n /** Error message */\n message: string;\n /** Error category */\n category?: ErrorCategory;\n /** Additional error details */\n details?: unknown;\n /** Error stack (only in development mode) */\n stack?: string;\n /** Timestamp */\n timestamp?: number;\n}\n\n/**\n * Standard Error Class\n * 标准错误类\n */\nexport class StandardError extends Error {\n public readonly code: number;\n public readonly category: ErrorCategory;\n public readonly details?: unknown;\n public readonly timestamp: number;\n\n constructor(\n code: number,\n message: string,\n category: ErrorCategory = ErrorCategory.INTERNAL,\n details?: unknown\n ) {\n super(message);\n this.name = 'StandardError';\n this.code = code;\n this.category = category;\n this.details = details;\n this.timestamp = Date.now();\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, StandardError);\n }\n }\n\n /**\n * Convert to error response\n * 转换为错误响应\n */\n toResponse(includeStack: boolean = false): ErrorResponse {\n return {\n code: this.code,\n message: this.message,\n category: this.category,\n details: this.details,\n stack: includeStack ? this.stack : undefined,\n timestamp: this.timestamp,\n };\n }\n\n /**\n * Create from unknown error\n * 从未知错误创建\n */\n static from(error: unknown, defaultCode: number = 500): StandardError {\n if (error instanceof StandardError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new StandardError(defaultCode, error.message, ErrorCategory.INTERNAL, {\n originalError: error.name,\n stack: error.stack,\n });\n }\n\n return new StandardError(defaultCode, String(error), ErrorCategory.INTERNAL, {\n originalError: error,\n });\n }\n}\n\n/**\n * Validation Error\n * 验证错误\n */\nexport class ValidationError extends StandardError {\n constructor(message: string, details?: unknown) {\n super(422, message, ErrorCategory.VALIDATION, details);\n this.name = 'ValidationError';\n }\n}\n\n/**\n * Permission Error\n * 权限错误\n */\nexport class PermissionError extends StandardError {\n constructor(message: string, details?: unknown) {\n super(403, message, ErrorCategory.PERMISSION, details);\n this.name = 'PermissionError';\n }\n}\n\n/**\n * Not Found Error\n * 未找到错误\n */\nexport class NotFoundError extends StandardError {\n constructor(message: string, details?: unknown) {\n super(404, message, ErrorCategory.NOT_FOUND, details);\n this.name = 'NotFoundError';\n }\n}\n"],"names":["ErrorCategory"],"mappings":"uDAqBA;;;AAGG;AACG,MAAO,aAAc,SAAQ,KAAK,CAAA;AACtB,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,OAAO;AACP,IAAA,SAAS;IAEzB,WAAA,CACE,IAAY,EACZ,OAAe,EACf,WAA0BA,wBAAa,CAAC,QAAQ,EAChD,OAAiB,EAAA;QAEjB,KAAK,CAAC,OAAO,CAAC;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,eAAe;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;;AAG3B,QAAA,IAAI,KAAK,CAAC,iBAAiB,EAAE;AAC3B,YAAA,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9C;IACF;AAEA;;;AAGG;IACH,UAAU,CAAC,eAAwB,KAAK,EAAA;QACtC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,SAAS;YAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B;IACH;AAEA;;;AAGG;AACH,IAAA,OAAO,IAAI,CAAC,KAAc,EAAE,cAAsB,GAAG,EAAA;AACnD,QAAA,IAAI,KAAK,YAAY,aAAa,EAAE;AAClC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,YAAA,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,EAAEA,wBAAa,CAAC,QAAQ,EAAE;gBAC3E,aAAa,EAAE,KAAK,CAAC,IAAI;gBACzB,KAAK,EAAE,KAAK,CAAC,KAAK;AACnB,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAEA,wBAAa,CAAC,QAAQ,EAAE;AAC3E,YAAA,aAAa,EAAE,KAAK;AACrB,SAAA,CAAC;IACJ;AACD;AAED;;;AAGG;AACG,MAAO,eAAgB,SAAQ,aAAa,CAAA;IAChD,WAAA,CAAY,OAAe,EAAE,OAAiB,EAAA;QAC5C,KAAK,CAAC,GAAG,EAAE,OAAO,EAAEA,wBAAa,CAAC,UAAU,EAAE,OAAO,CAAC;AACtD,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB;IAC/B;AACD;AAED;;;AAGG;AACG,MAAO,eAAgB,SAAQ,aAAa,CAAA;IAChD,WAAA,CAAY,OAAe,EAAE,OAAiB,EAAA;QAC5C,KAAK,CAAC,GAAG,EAAE,OAAO,EAAEA,wBAAa,CAAC,UAAU,EAAE,OAAO,CAAC;AACtD,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB;IAC/B;AACD;AAED;;;AAGG;AACG,MAAO,aAAc,SAAQ,aAAa,CAAA;IAC9C,WAAA,CAAY,OAAe,EAAE,OAAiB,EAAA;QAC5C,KAAK,CAAC,GAAG,EAAE,OAAO,EAAEA,wBAAa,CAAC,SAAS,EAAE,OAAO,CAAC;AACrD,QAAA,IAAI,CAAC,IAAI,GAAG,eAAe;IAC7B;AACD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import {ErrorCategory}from'./ErrorCodes.mjs';/**
|
|
2
|
+
* Standard Error Class
|
|
3
|
+
* 标准错误类
|
|
4
|
+
*/
|
|
5
|
+
class StandardError extends Error {
|
|
6
|
+
code;
|
|
7
|
+
category;
|
|
8
|
+
details;
|
|
9
|
+
timestamp;
|
|
10
|
+
constructor(code, message, category = ErrorCategory.INTERNAL, details) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'StandardError';
|
|
13
|
+
this.code = code;
|
|
14
|
+
this.category = category;
|
|
15
|
+
this.details = details;
|
|
16
|
+
this.timestamp = Date.now();
|
|
17
|
+
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
18
|
+
if (Error.captureStackTrace) {
|
|
19
|
+
Error.captureStackTrace(this, StandardError);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Convert to error response
|
|
24
|
+
* 转换为错误响应
|
|
25
|
+
*/
|
|
26
|
+
toResponse(includeStack = false) {
|
|
27
|
+
return {
|
|
28
|
+
code: this.code,
|
|
29
|
+
message: this.message,
|
|
30
|
+
category: this.category,
|
|
31
|
+
details: this.details,
|
|
32
|
+
stack: includeStack ? this.stack : undefined,
|
|
33
|
+
timestamp: this.timestamp,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create from unknown error
|
|
38
|
+
* 从未知错误创建
|
|
39
|
+
*/
|
|
40
|
+
static from(error, defaultCode = 500) {
|
|
41
|
+
if (error instanceof StandardError) {
|
|
42
|
+
return error;
|
|
43
|
+
}
|
|
44
|
+
if (error instanceof Error) {
|
|
45
|
+
return new StandardError(defaultCode, error.message, ErrorCategory.INTERNAL, {
|
|
46
|
+
originalError: error.name,
|
|
47
|
+
stack: error.stack,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return new StandardError(defaultCode, String(error), ErrorCategory.INTERNAL, {
|
|
51
|
+
originalError: error,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Validation Error
|
|
57
|
+
* 验证错误
|
|
58
|
+
*/
|
|
59
|
+
class ValidationError extends StandardError {
|
|
60
|
+
constructor(message, details) {
|
|
61
|
+
super(422, message, ErrorCategory.VALIDATION, details);
|
|
62
|
+
this.name = 'ValidationError';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Permission Error
|
|
67
|
+
* 权限错误
|
|
68
|
+
*/
|
|
69
|
+
class PermissionError extends StandardError {
|
|
70
|
+
constructor(message, details) {
|
|
71
|
+
super(403, message, ErrorCategory.PERMISSION, details);
|
|
72
|
+
this.name = 'PermissionError';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Not Found Error
|
|
77
|
+
* 未找到错误
|
|
78
|
+
*/
|
|
79
|
+
class NotFoundError extends StandardError {
|
|
80
|
+
constructor(message, details) {
|
|
81
|
+
super(404, message, ErrorCategory.NOT_FOUND, details);
|
|
82
|
+
this.name = 'NotFoundError';
|
|
83
|
+
}
|
|
84
|
+
}export{NotFoundError,PermissionError,StandardError,ValidationError};//# sourceMappingURL=StandardError.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StandardError.mjs","sources":["../../../src/infrastructure/errors/StandardError.ts"],"sourcesContent":["import { ErrorCategory } from './ErrorCodes';\n\n/**\n * Standard Error Response\n * 标准错误响应\n */\nexport interface ErrorResponse {\n /** Error code */\n code: number;\n /** Error message */\n message: string;\n /** Error category */\n category?: ErrorCategory;\n /** Additional error details */\n details?: unknown;\n /** Error stack (only in development mode) */\n stack?: string;\n /** Timestamp */\n timestamp?: number;\n}\n\n/**\n * Standard Error Class\n * 标准错误类\n */\nexport class StandardError extends Error {\n public readonly code: number;\n public readonly category: ErrorCategory;\n public readonly details?: unknown;\n public readonly timestamp: number;\n\n constructor(\n code: number,\n message: string,\n category: ErrorCategory = ErrorCategory.INTERNAL,\n details?: unknown\n ) {\n super(message);\n this.name = 'StandardError';\n this.code = code;\n this.category = category;\n this.details = details;\n this.timestamp = Date.now();\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, StandardError);\n }\n }\n\n /**\n * Convert to error response\n * 转换为错误响应\n */\n toResponse(includeStack: boolean = false): ErrorResponse {\n return {\n code: this.code,\n message: this.message,\n category: this.category,\n details: this.details,\n stack: includeStack ? this.stack : undefined,\n timestamp: this.timestamp,\n };\n }\n\n /**\n * Create from unknown error\n * 从未知错误创建\n */\n static from(error: unknown, defaultCode: number = 500): StandardError {\n if (error instanceof StandardError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new StandardError(defaultCode, error.message, ErrorCategory.INTERNAL, {\n originalError: error.name,\n stack: error.stack,\n });\n }\n\n return new StandardError(defaultCode, String(error), ErrorCategory.INTERNAL, {\n originalError: error,\n });\n }\n}\n\n/**\n * Validation Error\n * 验证错误\n */\nexport class ValidationError extends StandardError {\n constructor(message: string, details?: unknown) {\n super(422, message, ErrorCategory.VALIDATION, details);\n this.name = 'ValidationError';\n }\n}\n\n/**\n * Permission Error\n * 权限错误\n */\nexport class PermissionError extends StandardError {\n constructor(message: string, details?: unknown) {\n super(403, message, ErrorCategory.PERMISSION, details);\n this.name = 'PermissionError';\n }\n}\n\n/**\n * Not Found Error\n * 未找到错误\n */\nexport class NotFoundError extends StandardError {\n constructor(message: string, details?: unknown) {\n super(404, message, ErrorCategory.NOT_FOUND, details);\n this.name = 'NotFoundError';\n }\n}\n"],"names":[],"mappings":"6CAqBA;;;AAGG;AACG,MAAO,aAAc,SAAQ,KAAK,CAAA;AACtB,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,OAAO;AACP,IAAA,SAAS;IAEzB,WAAA,CACE,IAAY,EACZ,OAAe,EACf,WAA0B,aAAa,CAAC,QAAQ,EAChD,OAAiB,EAAA;QAEjB,KAAK,CAAC,OAAO,CAAC;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,eAAe;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;;AAG3B,QAAA,IAAI,KAAK,CAAC,iBAAiB,EAAE;AAC3B,YAAA,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9C;IACF;AAEA;;;AAGG;IACH,UAAU,CAAC,eAAwB,KAAK,EAAA;QACtC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,SAAS;YAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B;IACH;AAEA;;;AAGG;AACH,IAAA,OAAO,IAAI,CAAC,KAAc,EAAE,cAAsB,GAAG,EAAA;AACnD,QAAA,IAAI,KAAK,YAAY,aAAa,EAAE;AAClC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,YAAA,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;gBAC3E,aAAa,EAAE,KAAK,CAAC,IAAI;gBACzB,KAAK,EAAE,KAAK,CAAC,KAAK;AACnB,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,QAAQ,EAAE;AAC3E,YAAA,aAAa,EAAE,KAAK;AACrB,SAAA,CAAC;IACJ;AACD;AAED;;;AAGG;AACG,MAAO,eAAgB,SAAQ,aAAa,CAAA;IAChD,WAAA,CAAY,OAAe,EAAE,OAAiB,EAAA;QAC5C,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC;AACtD,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB;IAC/B;AACD;AAED;;;AAGG;AACG,MAAO,eAAgB,SAAQ,aAAa,CAAA;IAChD,WAAA,CAAY,OAAe,EAAE,OAAiB,EAAA;QAC5C,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC;AACtD,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB;IAC/B;AACD;AAED;;;AAGG;AACG,MAAO,aAAc,SAAQ,aAAa,CAAA;IAC9C,WAAA,CAAY,OAAe,EAAE,OAAiB,EAAA;QAC5C,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC;AACrD,QAAA,IAAI,CAAC,IAAI,GAAG,eAAe;IAC7B;AACD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class ElectronToolkitError extends Error {
|
|
2
|
+
code: string;
|
|
3
|
+
details?: any | undefined;
|
|
4
|
+
constructor(message: string, code: string, details?: any | undefined);
|
|
5
|
+
}
|
|
6
|
+
export declare class WindowNotFoundError extends ElectronToolkitError {
|
|
7
|
+
constructor(windowId: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class IpcHandlerError extends ElectronToolkitError {
|
|
10
|
+
constructor(handlerName: string, originalError: Error);
|
|
11
|
+
}
|
|
12
|
+
export * from './ErrorCodes';
|
|
13
|
+
export * from './StandardError';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';// Legacy error classes (kept for backward compatibility)
|
|
2
|
+
class ElectronToolkitError extends Error {
|
|
3
|
+
code;
|
|
4
|
+
details;
|
|
5
|
+
constructor(message, code, details) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.details = details;
|
|
9
|
+
this.name = 'ElectronToolkitError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
class WindowNotFoundError extends ElectronToolkitError {
|
|
13
|
+
constructor(windowId) {
|
|
14
|
+
super(`Window "${windowId}" not found or destroyed`, 'WINDOW_NOT_FOUND', { windowId });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
class IpcHandlerError extends ElectronToolkitError {
|
|
18
|
+
constructor(handlerName, originalError) {
|
|
19
|
+
super(`IPC handler "${handlerName}" failed: ${originalError.message}`, 'IPC_HANDLER_ERROR', {
|
|
20
|
+
handlerName,
|
|
21
|
+
originalError,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}exports.ElectronToolkitError=ElectronToolkitError;exports.IpcHandlerError=IpcHandlerError;exports.WindowNotFoundError=WindowNotFoundError;//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/infrastructure/errors/index.ts"],"sourcesContent":["// Legacy error classes (kept for backward compatibility)\nexport class ElectronToolkitError extends Error {\n constructor(\n message: string,\n public code: string,\n public details?: any\n ) {\n super(message);\n this.name = 'ElectronToolkitError';\n }\n}\n\nexport class WindowNotFoundError extends ElectronToolkitError {\n constructor(windowId: string) {\n super(`Window \"${windowId}\" not found or destroyed`, 'WINDOW_NOT_FOUND', { windowId });\n }\n}\n\nexport class IpcHandlerError extends ElectronToolkitError {\n constructor(handlerName: string, originalError: Error) {\n super(`IPC handler \"${handlerName}\" failed: ${originalError.message}`, 'IPC_HANDLER_ERROR', {\n handlerName,\n originalError,\n });\n }\n}\n\n// New unified error handling system\nexport * from './ErrorCodes';\nexport * from './StandardError';\n"],"names":[],"mappings":"aAAA;AACM,MAAO,oBAAqB,SAAQ,KAAK,CAAA;AAGpC,IAAA,IAAA;AACA,IAAA,OAAA;AAHT,IAAA,WAAA,CACE,OAAe,EACR,IAAY,EACZ,OAAa,EAAA;QAEpB,KAAK,CAAC,OAAO,CAAC;QAHP,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,OAAO,GAAP,OAAO;AAGd,QAAA,IAAI,CAAC,IAAI,GAAG,sBAAsB;IACpC;AACD;AAEK,MAAO,mBAAoB,SAAQ,oBAAoB,CAAA;AAC3D,IAAA,WAAA,CAAY,QAAgB,EAAA;QAC1B,KAAK,CAAC,CAAA,QAAA,EAAW,QAAQ,CAAA,wBAAA,CAA0B,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC;IACxF;AACD;AAEK,MAAO,eAAgB,SAAQ,oBAAoB,CAAA;IACvD,WAAA,CAAY,WAAmB,EAAE,aAAoB,EAAA;QACnD,KAAK,CAAC,CAAA,aAAA,EAAgB,WAAW,CAAA,UAAA,EAAa,aAAa,CAAC,OAAO,CAAA,CAAE,EAAE,mBAAmB,EAAE;YAC1F,WAAW;YACX,aAAa;AACd,SAAA,CAAC;IACJ;AACD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Legacy error classes (kept for backward compatibility)
|
|
2
|
+
class ElectronToolkitError extends Error {
|
|
3
|
+
code;
|
|
4
|
+
details;
|
|
5
|
+
constructor(message, code, details) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.details = details;
|
|
9
|
+
this.name = 'ElectronToolkitError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
class WindowNotFoundError extends ElectronToolkitError {
|
|
13
|
+
constructor(windowId) {
|
|
14
|
+
super(`Window "${windowId}" not found or destroyed`, 'WINDOW_NOT_FOUND', { windowId });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
class IpcHandlerError extends ElectronToolkitError {
|
|
18
|
+
constructor(handlerName, originalError) {
|
|
19
|
+
super(`IPC handler "${handlerName}" failed: ${originalError.message}`, 'IPC_HANDLER_ERROR', {
|
|
20
|
+
handlerName,
|
|
21
|
+
originalError,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}export{ElectronToolkitError,IpcHandlerError,WindowNotFoundError};//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/infrastructure/errors/index.ts"],"sourcesContent":["// Legacy error classes (kept for backward compatibility)\nexport class ElectronToolkitError extends Error {\n constructor(\n message: string,\n public code: string,\n public details?: any\n ) {\n super(message);\n this.name = 'ElectronToolkitError';\n }\n}\n\nexport class WindowNotFoundError extends ElectronToolkitError {\n constructor(windowId: string) {\n super(`Window \"${windowId}\" not found or destroyed`, 'WINDOW_NOT_FOUND', { windowId });\n }\n}\n\nexport class IpcHandlerError extends ElectronToolkitError {\n constructor(handlerName: string, originalError: Error) {\n super(`IPC handler \"${handlerName}\" failed: ${originalError.message}`, 'IPC_HANDLER_ERROR', {\n handlerName,\n originalError,\n });\n }\n}\n\n// New unified error handling system\nexport * from './ErrorCodes';\nexport * from './StandardError';\n"],"names":[],"mappings":"AAAA;AACM,MAAO,oBAAqB,SAAQ,KAAK,CAAA;AAGpC,IAAA,IAAA;AACA,IAAA,OAAA;AAHT,IAAA,WAAA,CACE,OAAe,EACR,IAAY,EACZ,OAAa,EAAA;QAEpB,KAAK,CAAC,OAAO,CAAC;QAHP,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,OAAO,GAAP,OAAO;AAGd,QAAA,IAAI,CAAC,IAAI,GAAG,sBAAsB;IACpC;AACD;AAEK,MAAO,mBAAoB,SAAQ,oBAAoB,CAAA;AAC3D,IAAA,WAAA,CAAY,QAAgB,EAAA;QAC1B,KAAK,CAAC,CAAA,QAAA,EAAW,QAAQ,CAAA,wBAAA,CAA0B,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC;IACxF;AACD;AAEK,MAAO,eAAgB,SAAQ,oBAAoB,CAAA;IACvD,WAAA,CAAY,WAAmB,EAAE,aAAoB,EAAA;QACnD,KAAK,CAAC,CAAA,aAAA,EAAgB,WAAW,CAAA,UAAA,EAAa,aAAa,CAAC,OAAO,CAAA,CAAE,EAAE,mBAAmB,EAAE;YAC1F,WAAW;YACX,aAAa;AACd,SAAA,CAAC;IACJ;AACD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import LoggerService from 'electron-log';
|
|
2
|
+
import { ILogger } from './logger.type';
|
|
3
|
+
/**
|
|
4
|
+
* Logger Configuration Options
|
|
5
|
+
* 日志配置选项
|
|
6
|
+
*/
|
|
7
|
+
export interface LoggerOptions {
|
|
8
|
+
/** Application name for log identification / 应用名称用于日志标识 */
|
|
9
|
+
appName?: string;
|
|
10
|
+
/** Maximum log file size in bytes / 最大日志文件大小(字节) */
|
|
11
|
+
maxSize?: number;
|
|
12
|
+
/** Custom log file name / 自定义日志文件名 */
|
|
13
|
+
fileName?: string;
|
|
14
|
+
/** File log level / 文件日志级别 */
|
|
15
|
+
fileLevel?: 'debug' | 'info' | 'warn' | 'error' | 'verbose' | 'silly' | false;
|
|
16
|
+
/** Console log level / 控制台日志级别 */
|
|
17
|
+
consoleLevel?: 'debug' | 'info' | 'warn' | 'error' | 'verbose' | 'silly' | false;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Default logger implementation using electron-log
|
|
21
|
+
* 使用 electron-log 的默认日志实现
|
|
22
|
+
*/
|
|
23
|
+
export declare class ElectronLogger implements ILogger {
|
|
24
|
+
private logger;
|
|
25
|
+
private isDev;
|
|
26
|
+
/**
|
|
27
|
+
* Constructor for Logger
|
|
28
|
+
* 日志记录器构造函数
|
|
29
|
+
* @param options - Logger configuration options
|
|
30
|
+
*/
|
|
31
|
+
constructor(options?: LoggerOptions);
|
|
32
|
+
info(message: string, ...args: any[]): void;
|
|
33
|
+
debug(message: string, ...args: any[]): void;
|
|
34
|
+
error(message: string, ...args: any[]): void;
|
|
35
|
+
warn(message: string, ...args: any[]): void;
|
|
36
|
+
verbose(message: string, ...args: any[]): void;
|
|
37
|
+
silly(message: string, ...args: any[]): void;
|
|
38
|
+
getLogger(): typeof LoggerService;
|
|
39
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use strict';var LoggerService=require('electron-log');/**
|
|
2
|
+
* Default logger implementation using electron-log
|
|
3
|
+
* 使用 electron-log 的默认日志实现
|
|
4
|
+
*/
|
|
5
|
+
class ElectronLogger {
|
|
6
|
+
logger;
|
|
7
|
+
isDev;
|
|
8
|
+
/**
|
|
9
|
+
* Constructor for Logger
|
|
10
|
+
* 日志记录器构造函数
|
|
11
|
+
* @param options - Logger configuration options
|
|
12
|
+
*/
|
|
13
|
+
constructor(options = {}) {
|
|
14
|
+
this.isDev = process.env.NODE_ENV !== 'production';
|
|
15
|
+
const { appName = 'main', maxSize = 10 * 1024 * 1024, // Default 10MB
|
|
16
|
+
fileName, fileLevel, consoleLevel, } = options;
|
|
17
|
+
// Create a logger instance for either 'main' or 'renderer'
|
|
18
|
+
this.logger = LoggerService.create({ logId: appName });
|
|
19
|
+
this.logger.scope(appName);
|
|
20
|
+
// Set log levels with smart defaults based on environment
|
|
21
|
+
// 根据环境设置日志级别,使用智能默认值
|
|
22
|
+
const defaultFileLevel = this.isDev ? 'debug' : 'info';
|
|
23
|
+
const defaultConsoleLevel = this.isDev ? 'debug' : false;
|
|
24
|
+
this.logger.transports.file.level = fileLevel ?? defaultFileLevel;
|
|
25
|
+
this.logger.transports.console.level = consoleLevel ?? defaultConsoleLevel;
|
|
26
|
+
// Optimize log format with date and log level
|
|
27
|
+
// 优化日志格式,增加日期和日志级别
|
|
28
|
+
this.logger.transports.file.format = '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}] {text}';
|
|
29
|
+
// Set maximum file size (configurable)
|
|
30
|
+
// 设置最大文件大小(可配置)
|
|
31
|
+
this.logger.transports.file.maxSize = maxSize;
|
|
32
|
+
// Set log file name (configurable or default based on environment)
|
|
33
|
+
// 设置日志文件名(可配置或根据环境使用默认值)
|
|
34
|
+
this.logger.transports.file.fileName =
|
|
35
|
+
fileName ?? (this.isDev ? `${appName}_dev.log` : `${appName}.log`);
|
|
36
|
+
}
|
|
37
|
+
// Info log
|
|
38
|
+
info(message, ...args) {
|
|
39
|
+
this.logger.info(message, ...args);
|
|
40
|
+
}
|
|
41
|
+
// Debug log
|
|
42
|
+
debug(message, ...args) {
|
|
43
|
+
this.logger.debug(message, ...args);
|
|
44
|
+
}
|
|
45
|
+
// Error log
|
|
46
|
+
error(message, ...args) {
|
|
47
|
+
this.logger.error(message, ...args);
|
|
48
|
+
}
|
|
49
|
+
// Warn log
|
|
50
|
+
warn(message, ...args) {
|
|
51
|
+
this.logger.warn(message, ...args);
|
|
52
|
+
}
|
|
53
|
+
// Verbose log
|
|
54
|
+
verbose(message, ...args) {
|
|
55
|
+
this.logger.verbose(message, ...args);
|
|
56
|
+
}
|
|
57
|
+
// Silly log
|
|
58
|
+
silly(message, ...args) {
|
|
59
|
+
this.logger.silly(message, ...args);
|
|
60
|
+
}
|
|
61
|
+
// Get the logger instance (useful if you need more custom configurations)
|
|
62
|
+
getLogger() {
|
|
63
|
+
return this.logger;
|
|
64
|
+
}
|
|
65
|
+
}exports.ElectronLogger=ElectronLogger;//# sourceMappingURL=ElectronLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ElectronLogger.js","sources":["../../../src/infrastructure/logger/ElectronLogger.ts"],"sourcesContent":["import LoggerService from 'electron-log';\nimport { ILogger } from './logger.type';\n\n/**\n * Logger Configuration Options\n * 日志配置选项\n */\nexport interface LoggerOptions {\n /** Application name for log identification / 应用名称用于日志标识 */\n appName?: string;\n /** Maximum log file size in bytes / 最大日志文件大小(字节) */\n maxSize?: number;\n /** Custom log file name / 自定义日志文件名 */\n fileName?: string;\n /** File log level / 文件日志级别 */\n fileLevel?: 'debug' | 'info' | 'warn' | 'error' | 'verbose' | 'silly' | false;\n /** Console log level / 控制台日志级别 */\n consoleLevel?: 'debug' | 'info' | 'warn' | 'error' | 'verbose' | 'silly' | false;\n}\n\n/**\n * Default logger implementation using electron-log\n * 使用 electron-log 的默认日志实现\n */\nexport class ElectronLogger implements ILogger {\n private logger: typeof LoggerService;\n private isDev: boolean;\n\n /**\n * Constructor for Logger\n * 日志记录器构造函数\n * @param options - Logger configuration options\n */\n constructor(options: LoggerOptions = {}) {\n this.isDev = process.env.NODE_ENV !== 'production';\n\n const {\n appName = 'main',\n maxSize = 10 * 1024 * 1024, // Default 10MB\n fileName,\n fileLevel,\n consoleLevel,\n } = options;\n\n // Create a logger instance for either 'main' or 'renderer'\n this.logger = LoggerService.create({ logId: appName });\n this.logger.scope(appName);\n\n // Set log levels with smart defaults based on environment\n // 根据环境设置日志级别,使用智能默认值\n const defaultFileLevel = this.isDev ? 'debug' : 'info';\n const defaultConsoleLevel = this.isDev ? 'debug' : false;\n\n this.logger.transports.file.level = fileLevel ?? defaultFileLevel;\n this.logger.transports.console.level = consoleLevel ?? defaultConsoleLevel;\n\n // Optimize log format with date and log level\n // 优化日志格式,增加日期和日志级别\n this.logger.transports.file.format = '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}] {text}';\n\n // Set maximum file size (configurable)\n // 设置最大文件大小(可配置)\n this.logger.transports.file.maxSize = maxSize;\n\n // Set log file name (configurable or default based on environment)\n // 设置日志文件名(可配置或根据环境使用默认值)\n this.logger.transports.file.fileName =\n fileName ?? (this.isDev ? `${appName}_dev.log` : `${appName}.log`);\n }\n\n // Info log\n info(message: string, ...args: any[]): void {\n this.logger.info(message, ...args);\n }\n\n // Debug log\n debug(message: string, ...args: any[]): void {\n this.logger.debug(message, ...args);\n }\n\n // Error log\n error(message: string, ...args: any[]): void {\n this.logger.error(message, ...args);\n }\n\n // Warn log\n warn(message: string, ...args: any[]): void {\n this.logger.warn(message, ...args);\n }\n\n // Verbose log\n verbose(message: string, ...args: any[]): void {\n this.logger.verbose(message, ...args);\n }\n\n // Silly log\n silly(message: string, ...args: any[]): void {\n this.logger.silly(message, ...args);\n }\n\n // Get the logger instance (useful if you need more custom configurations)\n getLogger(): typeof LoggerService {\n return this.logger;\n }\n}\n"],"names":[],"mappings":"uDAoBA;;;AAGG;MACU,cAAc,CAAA;AACjB,IAAA,MAAM;AACN,IAAA,KAAK;AAEb;;;;AAIG;AACH,IAAA,WAAA,CAAY,UAAyB,EAAE,EAAA;QACrC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;AAElD,QAAA,MAAM,EACJ,OAAO,GAAG,MAAM,EAChB,OAAO,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;AAC1B,QAAA,QAAQ,EACR,SAAS,EACT,YAAY,GACb,GAAG,OAAO;;AAGX,QAAA,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;;;AAI1B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,MAAM;AACtD,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK;AAExD,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,IAAI,gBAAgB;AACjE,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,YAAY,IAAI,mBAAmB;;;QAI1E,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,iDAAiD;;;QAItF,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO;;;AAI7C,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ;AAClC,YAAA,QAAQ,KAAK,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,OAAO,CAAA,QAAA,CAAU,GAAG,GAAG,OAAO,CAAA,IAAA,CAAM,CAAC;IACtE;;AAGA,IAAA,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW,EAAA;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC;;AAGA,IAAA,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW,EAAA;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IACrC;;AAGA,IAAA,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW,EAAA;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IACrC;;AAGA,IAAA,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW,EAAA;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC;;AAGA,IAAA,OAAO,CAAC,OAAe,EAAE,GAAG,IAAW,EAAA;QACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IACvC;;AAGA,IAAA,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW,EAAA;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IACrC;;IAGA,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;AACD"}
|