shellx-ai 1.0.12 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +666 -0
  3. package/dist/automation/element-finder.d.ts +189 -0
  4. package/dist/automation/element-finder.js +322 -0
  5. package/dist/automation/element-finder.js.map +1 -0
  6. package/dist/automation/ui-action-handler.d.ts +330 -0
  7. package/dist/automation/ui-action-handler.js +873 -0
  8. package/dist/automation/ui-action-handler.js.map +1 -0
  9. package/dist/cbor-compat.d.ts +27 -0
  10. package/dist/cbor-compat.js +111 -0
  11. package/dist/cbor-compat.js.map +1 -0
  12. package/dist/domain-manager.d.ts +80 -0
  13. package/dist/domain-manager.js +161 -0
  14. package/dist/domain-manager.js.map +1 -0
  15. package/dist/error-handler.d.ts +87 -0
  16. package/dist/error-handler.js +151 -0
  17. package/dist/error-handler.js.map +1 -0
  18. package/dist/errors.d.ts +114 -0
  19. package/dist/errors.js +139 -0
  20. package/dist/errors.js.map +1 -0
  21. package/dist/index.d.ts +163 -54
  22. package/dist/index.js +678 -481
  23. package/dist/index.js.map +1 -0
  24. package/dist/logger.d.ts +81 -0
  25. package/dist/logger.js +128 -0
  26. package/dist/logger.js.map +1 -0
  27. package/dist/protocol.d.ts +147 -31
  28. package/dist/protocol.js +2 -2
  29. package/dist/protocol.js.map +1 -0
  30. package/dist/shell/output-buffer.d.ts +152 -0
  31. package/dist/shell/output-buffer.js +176 -0
  32. package/dist/shell/output-buffer.js.map +1 -0
  33. package/dist/shell/shell-command-executor.d.ts +182 -0
  34. package/dist/shell/shell-command-executor.js +404 -0
  35. package/dist/shell/shell-command-executor.js.map +1 -0
  36. package/dist/shellx.d.ts +681 -178
  37. package/dist/shellx.js +762 -1159
  38. package/dist/shellx.js.map +1 -0
  39. package/dist/types.d.ts +132 -57
  40. package/dist/types.js +4 -4
  41. package/dist/types.js.map +1 -0
  42. package/dist/utils/retry-helper.d.ts +73 -0
  43. package/dist/utils/retry-helper.js +95 -0
  44. package/dist/utils/retry-helper.js.map +1 -0
  45. package/dist/utils.d.ts +3 -3
  46. package/dist/utils.js +20 -23
  47. package/dist/utils.js.map +1 -0
  48. package/package.json +95 -62
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-action-handler.js","sourceRoot":"","sources":["../../src/automation/ui-action-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * CBOR compatibility layer for shellx-ai.
3
+ *
4
+ * Runtime selection:
5
+ * - Browser (typeof window !== 'undefined'): uses `cbor-x`
6
+ * cbor-x has no Node.js built-in dependencies and is the same library
7
+ * shellx-web already uses in the browser.
8
+ * - Node.js (default): uses `cbor` with `decodeFirstSync` for synchronous
9
+ * decode, matching the calling code's expectations.
10
+ *
11
+ * Usage:
12
+ * 1. Call `await initCbor()` once before the first encode/decode call.
13
+ * ConnectionClient.init() does this automatically.
14
+ * 2. Use the exported `encode` / `decode` helpers directly.
15
+ */
16
+ type EncodeResult = Uint8Array;
17
+ type DecodeInput = Uint8Array | ArrayBuffer;
18
+ /**
19
+ * Initialise the CBOR codec for the current runtime environment.
20
+ * Safe to call multiple times — subsequent calls are no-ops.
21
+ */
22
+ export declare function initCbor(): Promise<void>;
23
+ /** CBOR-encode a value. Throws if {@link initCbor} has not been awaited. */
24
+ export declare function cborEncode(value: unknown): EncodeResult;
25
+ /** CBOR-decode a binary payload. Throws if {@link initCbor} has not been awaited. */
26
+ export declare function cborDecode(data: DecodeInput): unknown;
27
+ export {};
@@ -0,0 +1,111 @@
1
+ /**
2
+ * CBOR compatibility layer for shellx-ai.
3
+ *
4
+ * Runtime selection:
5
+ * - Browser (typeof window !== 'undefined'): uses `cbor-x`
6
+ * cbor-x has no Node.js built-in dependencies and is the same library
7
+ * shellx-web already uses in the browser.
8
+ * - Node.js (default): uses `cbor` with `decodeFirstSync` for synchronous
9
+ * decode, matching the calling code's expectations.
10
+ *
11
+ * Usage:
12
+ * 1. Call `await initCbor()` once before the first encode/decode call.
13
+ * ConnectionClient.init() does this automatically.
14
+ * 2. Use the exported `encode` / `decode` helpers directly.
15
+ */
16
+ import { createLogger } from "./logger.js";
17
+ // Create logger for CBOR compatibility layer
18
+ const logger = createLogger("CborCompat");
19
+ let _encode = null;
20
+ let _decode = null;
21
+ let _initPromise = null;
22
+ /**
23
+ * Initialise the CBOR codec for the current runtime environment.
24
+ * Safe to call multiple times — subsequent calls are no-ops.
25
+ */
26
+ export async function initCbor() {
27
+ if (_encode)
28
+ return;
29
+ if (_initPromise)
30
+ return _initPromise;
31
+ _initPromise = (async () => {
32
+ // Detect if running in browser environment
33
+ const isBrowser =
34
+ // @ts-ignore - window might not exist in Node.js type definitions
35
+ typeof window !== "undefined" &&
36
+ // @ts-ignore - window might not exist in Node.js type definitions
37
+ window !== null &&
38
+ // @ts-ignore - process might not exist in browser type definitions
39
+ (typeof process === "undefined" ||
40
+ // @ts-ignore - process.browser might not exist in type definitions
41
+ process?.browser === true);
42
+ if (isBrowser) {
43
+ // Browser: cbor-x — synchronous, no Node.js built-ins required
44
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
45
+ // @ts-ignore - cbor-x is an optional dependency, types are in src/types/cbor-x.d.ts
46
+ const cborx = await import("cbor-x");
47
+ const { encode, decode } = cborx.default ? cborx.default : cborx;
48
+ _encode = encode;
49
+ _decode = decode;
50
+ }
51
+ else {
52
+ // Node.js: cbor — use synchronous helpers
53
+ try {
54
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
55
+ // @ts-ignore — vite should not bundle this Node.js-only import
56
+ const mod = await import(/* @vite-ignore */ "cbor");
57
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
+ const cbor = mod.default ?? mod;
59
+ _encode = (v) => cbor.encode(v);
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ _decode = (data) => cbor.decodeFirstSync(data);
62
+ }
63
+ catch {
64
+ // cbor not available — fall back to cbor-x in Node.js too
65
+ logger.warn("[ShellX] cbor package not found, falling back to cbor-x");
66
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
67
+ // @ts-ignore - cbor-x is an optional dependency, types are in src/types/cbor-x.d.ts
68
+ const cborx = await import("cbor-x");
69
+ const { encode, decode } = cborx.default ? cborx.default : cborx;
70
+ _encode = encode;
71
+ _decode = decode;
72
+ }
73
+ }
74
+ })();
75
+ return _initPromise;
76
+ }
77
+ /** CBOR-encode a value. Throws if {@link initCbor} has not been awaited. */
78
+ export function cborEncode(value) {
79
+ if (!_encode) {
80
+ throw new Error("[ShellX] CBOR not initialised — await initCbor() before encoding");
81
+ }
82
+ return _encode(value);
83
+ }
84
+ /**
85
+ * Recursively convert BigInt values to Number.
86
+ *
87
+ * cbor-x (browser) decodes CBOR u64 integers as BigInt by default.
88
+ * Protocol types use plain `number`, so we normalise before returning.
89
+ * All timestamp values fit safely in a JS Number (< 2^53).
90
+ */
91
+ function normalizeBigInt(value) {
92
+ if (typeof value === "bigint")
93
+ return Number(value);
94
+ if (Array.isArray(value))
95
+ return value.map(normalizeBigInt);
96
+ if (value !== null && typeof value === "object") {
97
+ const out = {};
98
+ for (const k in value)
99
+ out[k] = normalizeBigInt(value[k]);
100
+ return out;
101
+ }
102
+ return value;
103
+ }
104
+ /** CBOR-decode a binary payload. Throws if {@link initCbor} has not been awaited. */
105
+ export function cborDecode(data) {
106
+ if (!_decode) {
107
+ throw new Error("[ShellX] CBOR not initialised — await initCbor() before decoding");
108
+ }
109
+ return normalizeBigInt(_decode(data));
110
+ }
111
+ //# sourceMappingURL=cbor-compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbor-compat.js","sourceRoot":"","sources":["../src/cbor-compat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Domain Manager - API domain configuration manager
3
+ *
4
+ * Dynamically selects appropriate API domain based on user geographic location
5
+ * Supports both browser and Node.js environments
6
+ */
7
+ export interface DomainConfig {
8
+ /** International domain */
9
+ international: string;
10
+ /** China domain */
11
+ china: string;
12
+ /** Protocol */
13
+ protocol: string;
14
+ }
15
+ /**
16
+ * Detect if user is in China
17
+ * Determines based on timezone, language, and system properties
18
+ */
19
+ export declare function isChineseUser(): boolean;
20
+ /**
21
+ * Get API base URL
22
+ * @param config Domain configuration (optional)
23
+ * @returns Complete API base URL
24
+ */
25
+ export declare function getApiBaseUrl(config?: DomainConfig): string;
26
+ /**
27
+ * Get WebSocket server URL
28
+ * Note: This function is for fallback scenarios only, should be obtained from API in actual use
29
+ * @param config Domain configuration (optional)
30
+ * @returns WebSocket server default domain (always uses international domain as fallback)
31
+ */
32
+ export declare function getWsServerUrl(config?: DomainConfig): string;
33
+ /**
34
+ * Build device API URL
35
+ * @param deviceId Device ID
36
+ * @param config Domain configuration (optional)
37
+ * @returns Complete device API URL
38
+ */
39
+ export declare function buildDeviceApiUrl(deviceId: string, config?: DomainConfig): string;
40
+ /**
41
+ * Build device registration API URL
42
+ * @param config Domain configuration (optional)
43
+ * @returns Device registration API URL
44
+ */
45
+ export declare function buildDeviceRegisterUrl(config?: DomainConfig): string;
46
+ /**
47
+ * Build device configuration API URL
48
+ * @param userSub User ID
49
+ * @param config Domain configuration (optional)
50
+ * @returns Device configuration API URL
51
+ */
52
+ export declare function buildDeviceConfigUrl(userSub: string, config?: DomainConfig): string;
53
+ /**
54
+ * Build token verification API URL
55
+ * @param authenticate Authentication identifier
56
+ * @param config Domain configuration (optional)
57
+ * @returns Token verification API URL
58
+ */
59
+ export declare function buildTokenVerifyUrl(authenticate: string, config?: DomainConfig): string;
60
+ /**
61
+ * Build token refresh API URL
62
+ * @param authenticate Authentication identifier
63
+ * @param config Domain configuration (optional)
64
+ * @returns Token refresh API URL
65
+ */
66
+ export declare function buildTokenRefreshUrl(authenticate: string, config?: DomainConfig): string;
67
+ /**
68
+ * Get current domain information (for debugging)
69
+ * @param config Domain configuration (optional)
70
+ * @returns Domain information string
71
+ */
72
+ export declare function getCurrentDomainInfo(config?: DomainConfig): string;
73
+ /**
74
+ * Create custom domain configuration
75
+ * @param internationalDomain International domain
76
+ * @param chinaDomain China domain
77
+ * @param protocol Protocol (defaults to https://)
78
+ * @returns Domain configuration object
79
+ */
80
+ export declare function createDomainConfig(internationalDomain: string, chinaDomain: string, protocol?: string): DomainConfig;
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Domain Manager - API domain configuration manager
3
+ *
4
+ * Dynamically selects appropriate API domain based on user geographic location
5
+ * Supports both browser and Node.js environments
6
+ */
7
+ import { createLogger } from "./logger.js";
8
+ // Create logger for DomainManager
9
+ const logger = createLogger("DomainManager");
10
+ const DEFAULT_DOMAIN_CONFIG = {
11
+ international: "shellx.ai",
12
+ china: "1251503967-fg4i5agck7.ap-guangzhou.tencentscf.com",
13
+ protocol: "https://",
14
+ };
15
+ /**
16
+ * Detect if user is in China
17
+ * Determines based on timezone, language, and system properties
18
+ */
19
+ export function isChineseUser() {
20
+ try {
21
+ // 1. Check if timezone is Asia/Shanghai
22
+ if (typeof Intl !== "undefined" && Intl.DateTimeFormat) {
23
+ const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
24
+ if (timeZone && timeZone.includes("Asia/Shanghai")) {
25
+ logger.debug("[DomainManager] Detected Chinese user by timezone:", timeZone);
26
+ return true;
27
+ }
28
+ }
29
+ // 2. Check system language settings
30
+ if (typeof navigator !== "undefined" && navigator.languages) {
31
+ // Check primary language
32
+ const primaryLang = navigator.language;
33
+ if (primaryLang && primaryLang.toLowerCase().startsWith("zh")) {
34
+ logger.debug("[DomainManager] Detected Chinese user by primary language:", primaryLang);
35
+ return true;
36
+ }
37
+ // Check all language settings
38
+ for (const lang of navigator.languages) {
39
+ if (lang.toLowerCase().startsWith("zh")) {
40
+ logger.debug("[DomainManager] Detected Chinese user by language list:", lang);
41
+ return true;
42
+ }
43
+ }
44
+ }
45
+ // 3. Check user agent string (as last resort)
46
+ if (typeof navigator !== "undefined" && navigator.userAgent) {
47
+ const ua = navigator.userAgent.toLowerCase();
48
+ // Check if contains Chinese-related identifiers or China region identifiers
49
+ if (ua.includes("zh-cn") || ua.includes("zh_cn") || ua.includes("china")) {
50
+ logger.debug("[DomainManager] Detected Chinese user by user agent");
51
+ return true;
52
+ }
53
+ }
54
+ // 4. Node.js environment detection
55
+ if (typeof process !== "undefined" && process.env) {
56
+ const timezone = process.env["TZ"];
57
+ const lang = process.env["LANG"] || process.env["LANGUAGE"];
58
+ if (timezone && timezone.includes("Asia/Shanghai")) {
59
+ logger.debug("[DomainManager] Detected Chinese user by Node.js timezone:", timezone);
60
+ return true;
61
+ }
62
+ if (lang && lang.toLowerCase().includes("zh")) {
63
+ logger.debug("[DomainManager] Detected Chinese user by Node.js language:", lang);
64
+ return true;
65
+ }
66
+ }
67
+ logger.debug("[DomainManager] Detected international user");
68
+ return false;
69
+ }
70
+ catch (error) {
71
+ logger.warn("[DomainManager] Error detecting user region, defaulting to international:", error);
72
+ return false;
73
+ }
74
+ }
75
+ /**
76
+ * Get API base URL
77
+ * @param config Domain configuration (optional)
78
+ * @returns Complete API base URL
79
+ */
80
+ export function getApiBaseUrl(config = DEFAULT_DOMAIN_CONFIG) {
81
+ const domain = isChineseUser() ? config.china : config.international;
82
+ return config.protocol + domain;
83
+ }
84
+ /**
85
+ * Get WebSocket server URL
86
+ * Note: This function is for fallback scenarios only, should be obtained from API in actual use
87
+ * @param config Domain configuration (optional)
88
+ * @returns WebSocket server default domain (always uses international domain as fallback)
89
+ */
90
+ export function getWsServerUrl(config = DEFAULT_DOMAIN_CONFIG) {
91
+ return config.international;
92
+ }
93
+ /**
94
+ * Build device API URL
95
+ * @param deviceId Device ID
96
+ * @param config Domain configuration (optional)
97
+ * @returns Complete device API URL
98
+ */
99
+ export function buildDeviceApiUrl(deviceId, config = DEFAULT_DOMAIN_CONFIG) {
100
+ return `${getApiBaseUrl(config)}/api/device/${deviceId}`;
101
+ }
102
+ /**
103
+ * Build device registration API URL
104
+ * @param config Domain configuration (optional)
105
+ * @returns Device registration API URL
106
+ */
107
+ export function buildDeviceRegisterUrl(config = DEFAULT_DOMAIN_CONFIG) {
108
+ return `${getApiBaseUrl(config)}/api/device/register`;
109
+ }
110
+ /**
111
+ * Build device configuration API URL
112
+ * @param userSub User ID
113
+ * @param config Domain configuration (optional)
114
+ * @returns Device configuration API URL
115
+ */
116
+ export function buildDeviceConfigUrl(userSub, config = DEFAULT_DOMAIN_CONFIG) {
117
+ return `${getApiBaseUrl(config)}/api/device/config/${userSub}`;
118
+ }
119
+ /**
120
+ * Build token verification API URL
121
+ * @param authenticate Authentication identifier
122
+ * @param config Domain configuration (optional)
123
+ * @returns Token verification API URL
124
+ */
125
+ export function buildTokenVerifyUrl(authenticate, config = DEFAULT_DOMAIN_CONFIG) {
126
+ return `${getApiBaseUrl(config)}/api/device/${authenticate}/token/verify`;
127
+ }
128
+ /**
129
+ * Build token refresh API URL
130
+ * @param authenticate Authentication identifier
131
+ * @param config Domain configuration (optional)
132
+ * @returns Token refresh API URL
133
+ */
134
+ export function buildTokenRefreshUrl(authenticate, config = DEFAULT_DOMAIN_CONFIG) {
135
+ return `${getApiBaseUrl(config)}/api/device/${authenticate}/token/refresh`;
136
+ }
137
+ /**
138
+ * Get current domain information (for debugging)
139
+ * @param config Domain configuration (optional)
140
+ * @returns Domain information string
141
+ */
142
+ export function getCurrentDomainInfo(config = DEFAULT_DOMAIN_CONFIG) {
143
+ const isChinese = isChineseUser();
144
+ const domain = isChinese ? config.china : config.international;
145
+ return `Region: ${isChinese ? "China" : "International"}, Domain: ${domain}, Full URL: ${getApiBaseUrl(config)}`;
146
+ }
147
+ /**
148
+ * Create custom domain configuration
149
+ * @param internationalDomain International domain
150
+ * @param chinaDomain China domain
151
+ * @param protocol Protocol (defaults to https://)
152
+ * @returns Domain configuration object
153
+ */
154
+ export function createDomainConfig(internationalDomain, chinaDomain, protocol = "https://") {
155
+ return {
156
+ international: internationalDomain,
157
+ china: chinaDomain,
158
+ protocol,
159
+ };
160
+ }
161
+ //# sourceMappingURL=domain-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-manager.js","sourceRoot":"","sources":["../src/domain-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,kCAAkC;AAClC,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAoB7C,MAAM,qBAAqB,GAAiB;IAC1C,aAAa,EAAE,WAAW;IAC1B,KAAK,EAAE,mDAAmD;IAC1D,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,wCAAwC;QACxC,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;YAClE,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE,QAAQ,CAAC,CAAC;gBAC7E,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YAC5D,yBAAyB;YACzB,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC;YACvC,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9D,MAAM,CAAC,KAAK,CAAC,4DAA4D,EAAE,WAAW,CAAC,CAAC;gBACxF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,8BAA8B;YAC9B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxC,MAAM,CAAC,KAAK,CAAC,yDAAyD,EAAE,IAAI,CAAC,CAAC;oBAC9E,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YAC5D,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC7C,4EAA4E;YAC5E,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzE,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAE5D,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,4DAA4D,EAAE,QAAQ,CAAC,CAAC;gBACrF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,MAAM,CAAC,KAAK,CAAC,4DAA4D,EAAE,IAAI,CAAC,CAAC;gBACjF,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CACT,2EAA2E,EAC3E,KAAK,CACN,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,SAAuB,qBAAqB;IACxE,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;IACrE,OAAO,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAuB,qBAAqB;IACzE,OAAO,MAAM,CAAC,aAAa,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,SAAuB,qBAAqB;IAE5C,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,eAAe,QAAQ,EAAE,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAuB,qBAAqB;IACjF,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,sBAAsB,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,SAAuB,qBAAqB;IAE5C,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,sBAAsB,OAAO,EAAE,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAoB,EACpB,SAAuB,qBAAqB;IAE5C,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,eAAe,YAAY,eAAe,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,YAAoB,EACpB,SAAuB,qBAAqB;IAE5C,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,eAAe,YAAY,gBAAgB,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAuB,qBAAqB;IAC/E,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;IAC/D,OAAO,WAAW,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,aAAa,MAAM,eAAe,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AACnH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,mBAA2B,EAC3B,WAAmB,EACnB,WAAmB,UAAU;IAE7B,OAAO;QACL,aAAa,EAAE,mBAAmB;QAClC,KAAK,EAAE,WAAW;QAClB,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * ErrorHandler - Unified error handling utilities for ShellX
3
+ *
4
+ * This module provides consistent error handling patterns across the codebase,
5
+ * ensuring all errors are properly formatted, logged, and returned.
6
+ */
7
+ import type { BaseResult } from "./types.js";
8
+ /**
9
+ * Error handler options
10
+ */
11
+ export interface ErrorHandlerOptions {
12
+ /** Default error message if error is unknown */
13
+ defaultErrorMessage?: string;
14
+ /** Whether to log errors to console */
15
+ logError?: boolean;
16
+ /** Log prefix for contextual information */
17
+ logPrefix?: string;
18
+ /** Context data to include in error */
19
+ context?: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * Error handler result with success/failure
23
+ */
24
+ export type ErrorHandlerResult<T> = T & BaseResult;
25
+ /**
26
+ * Safely extracts error message from unknown error
27
+ * @param error - Unknown error object
28
+ * @param defaultMessage - Default message if extraction fails
29
+ * @returns Error message string
30
+ */
31
+ export declare function extractErrorMessage(error: unknown, defaultMessage?: string): string;
32
+ /**
33
+ * Creates a standardized error result
34
+ * @param error - Error object or message
35
+ * @param startTime - Operation start time for duration calculation
36
+ * @param options - Error handler options
37
+ * @returns Standardized error result
38
+ */
39
+ export declare function createErrorResult<T extends BaseResult>(error: unknown, startTime: number, options?: ErrorHandlerOptions): T;
40
+ /**
41
+ * Creates a standardized success result
42
+ * @param data - Success data
43
+ * @param startTime - Operation start time
44
+ * @returns Standardized success result
45
+ */
46
+ export declare function createSuccessResult<T extends BaseResult>(data: Omit<T, "success" | "duration" | "timestamp">, startTime: number): T;
47
+ /**
48
+ * Wraps an async operation with standardized error handling
49
+ * @param operation - Async operation to execute
50
+ * @param startTime - Operation start time
51
+ * @param options - Error handler options
52
+ * @returns Promise resolving to result or error
53
+ */
54
+ export declare function handleOperation<T extends BaseResult>(operation: () => Promise<Omit<T, "success" | "duration" | "timestamp">>, startTime: number, options?: ErrorHandlerOptions): Promise<T>;
55
+ /**
56
+ * Validates required parameters and throws ValidationError if missing
57
+ * @param params - Parameters to validate
58
+ * @param paramName - Name of the parameter for error message
59
+ * @throws ValidationError if parameter is missing/invalid
60
+ */
61
+ export declare function validateRequired<T>(param: T | undefined | null, paramName: string): asserts param is T;
62
+ /**
63
+ * Validates one of multiple required parameters is present
64
+ * @param params - Object with parameters to validate
65
+ * @param requiredNames - Array of parameter names (at least one must be present)
66
+ * @throws ValidationError if none of the parameters are present
67
+ */
68
+ export declare function validateOneOfRequired(params: Record<string, unknown>, requiredNames: string[]): void;
69
+ /**
70
+ * Executes operation with retry and standardized error handling
71
+ * @param operation - Async operation to execute
72
+ * @param startTime - Operation start time
73
+ * @param options - Error handler options
74
+ * @returns Promise resolving to result or null if all retries fail
75
+ */
76
+ export declare function handleOperationWithRetry<T extends BaseResult>(operation: () => Promise<Omit<T, "success" | "duration" | "timestamp">>, startTime: number, options?: ErrorHandlerOptions & {
77
+ maxRetries?: number;
78
+ retryDelay?: number;
79
+ }): Promise<T | null>;
80
+ /**
81
+ * Wraps an error with additional context for better debugging
82
+ * @param error - Original error
83
+ * @param context - Additional context information
84
+ * @param operationName - Name of the operation that failed
85
+ * @returns Wrapped error with context
86
+ */
87
+ export declare function wrapErrorWithContext(error: unknown, context: Record<string, unknown>, operationName: string): Error;