shellx-ai 1.0.12 → 1.1.0
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 +586 -0
- package/dist/automation/element-finder.d.ts +189 -0
- package/dist/automation/element-finder.js +322 -0
- package/dist/automation/element-finder.js.map +1 -0
- package/dist/automation/ui-action-handler.d.ts +330 -0
- package/dist/automation/ui-action-handler.js +873 -0
- package/dist/automation/ui-action-handler.js.map +1 -0
- package/dist/cbor-compat.d.ts +27 -0
- package/dist/cbor-compat.js +108 -0
- package/dist/cbor-compat.js.map +1 -0
- package/dist/domain-manager.d.ts +80 -0
- package/dist/domain-manager.js +158 -0
- package/dist/domain-manager.js.map +1 -0
- package/dist/error-handler.d.ts +87 -0
- package/dist/error-handler.js +148 -0
- package/dist/error-handler.js.map +1 -0
- package/dist/errors.d.ts +114 -0
- package/dist/errors.js +139 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +163 -54
- package/dist/index.js +706 -480
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +81 -0
- package/dist/logger.js +128 -0
- package/dist/logger.js.map +1 -0
- package/dist/protocol.d.ts +147 -31
- package/dist/protocol.js +2 -2
- package/dist/protocol.js.map +1 -0
- package/dist/shell/output-buffer.d.ts +152 -0
- package/dist/shell/output-buffer.js +163 -0
- package/dist/shell/output-buffer.js.map +1 -0
- package/dist/shell/shell-command-executor.d.ts +182 -0
- package/dist/shell/shell-command-executor.js +348 -0
- package/dist/shell/shell-command-executor.js.map +1 -0
- package/dist/shellx.d.ts +681 -178
- package/dist/shellx.js +762 -1159
- package/dist/shellx.js.map +1 -0
- package/dist/types.d.ts +132 -57
- package/dist/types.js +4 -4
- package/dist/types.js.map +1 -0
- package/dist/utils/retry-helper.d.ts +73 -0
- package/dist/utils/retry-helper.js +92 -0
- package/dist/utils/retry-helper.js.map +1 -0
- package/dist/utils.d.ts +3 -3
- package/dist/utils.js +17 -23
- package/dist/utils.js.map +1 -0
- 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,108 @@
|
|
|
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
|
+
let _encode = null;
|
|
17
|
+
let _decode = null;
|
|
18
|
+
let _initPromise = null;
|
|
19
|
+
/**
|
|
20
|
+
* Initialise the CBOR codec for the current runtime environment.
|
|
21
|
+
* Safe to call multiple times — subsequent calls are no-ops.
|
|
22
|
+
*/
|
|
23
|
+
export async function initCbor() {
|
|
24
|
+
if (_encode)
|
|
25
|
+
return;
|
|
26
|
+
if (_initPromise)
|
|
27
|
+
return _initPromise;
|
|
28
|
+
_initPromise = (async () => {
|
|
29
|
+
// Detect if running in browser environment
|
|
30
|
+
const isBrowser =
|
|
31
|
+
// @ts-ignore - window might not exist in Node.js type definitions
|
|
32
|
+
typeof window !== "undefined" &&
|
|
33
|
+
// @ts-ignore - window might not exist in Node.js type definitions
|
|
34
|
+
window !== null &&
|
|
35
|
+
// @ts-ignore - process might not exist in browser type definitions
|
|
36
|
+
(typeof process === "undefined" ||
|
|
37
|
+
// @ts-ignore - process.browser might not exist in type definitions
|
|
38
|
+
process?.browser === true);
|
|
39
|
+
if (isBrowser) {
|
|
40
|
+
// Browser: cbor-x — synchronous, no Node.js built-ins required
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
42
|
+
// @ts-ignore - cbor-x is an optional dependency, types are in src/types/cbor-x.d.ts
|
|
43
|
+
const cborx = await import("cbor-x");
|
|
44
|
+
const { encode, decode } = cborx.default ? cborx.default : cborx;
|
|
45
|
+
_encode = encode;
|
|
46
|
+
_decode = decode;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
// Node.js: cbor — use synchronous helpers
|
|
50
|
+
try {
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
52
|
+
// @ts-ignore — vite should not bundle this Node.js-only import
|
|
53
|
+
const mod = await import(/* @vite-ignore */ "cbor");
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
55
|
+
const cbor = mod.default ?? mod;
|
|
56
|
+
_encode = (v) => cbor.encode(v);
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
+
_decode = (data) => cbor.decodeFirstSync(data);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// cbor not available — fall back to cbor-x in Node.js too
|
|
62
|
+
console.warn("[ShellX] cbor package not found, falling back to cbor-x");
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
64
|
+
// @ts-ignore - cbor-x is an optional dependency, types are in src/types/cbor-x.d.ts
|
|
65
|
+
const cborx = await import("cbor-x");
|
|
66
|
+
const { encode, decode } = cborx.default ? cborx.default : cborx;
|
|
67
|
+
_encode = encode;
|
|
68
|
+
_decode = decode;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
})();
|
|
72
|
+
return _initPromise;
|
|
73
|
+
}
|
|
74
|
+
/** CBOR-encode a value. Throws if {@link initCbor} has not been awaited. */
|
|
75
|
+
export function cborEncode(value) {
|
|
76
|
+
if (!_encode) {
|
|
77
|
+
throw new Error("[ShellX] CBOR not initialised — await initCbor() before encoding");
|
|
78
|
+
}
|
|
79
|
+
return _encode(value);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Recursively convert BigInt values to Number.
|
|
83
|
+
*
|
|
84
|
+
* cbor-x (browser) decodes CBOR u64 integers as BigInt by default.
|
|
85
|
+
* Protocol types use plain `number`, so we normalise before returning.
|
|
86
|
+
* All timestamp values fit safely in a JS Number (< 2^53).
|
|
87
|
+
*/
|
|
88
|
+
function normalizeBigInt(value) {
|
|
89
|
+
if (typeof value === "bigint")
|
|
90
|
+
return Number(value);
|
|
91
|
+
if (Array.isArray(value))
|
|
92
|
+
return value.map(normalizeBigInt);
|
|
93
|
+
if (value !== null && typeof value === "object") {
|
|
94
|
+
const out = {};
|
|
95
|
+
for (const k in value)
|
|
96
|
+
out[k] = normalizeBigInt(value[k]);
|
|
97
|
+
return out;
|
|
98
|
+
}
|
|
99
|
+
return value;
|
|
100
|
+
}
|
|
101
|
+
/** CBOR-decode a binary payload. Throws if {@link initCbor} has not been awaited. */
|
|
102
|
+
export function cborDecode(data) {
|
|
103
|
+
if (!_decode) {
|
|
104
|
+
throw new Error("[ShellX] CBOR not initialised — await initCbor() before decoding");
|
|
105
|
+
}
|
|
106
|
+
return normalizeBigInt(_decode(data));
|
|
107
|
+
}
|
|
108
|
+
//# 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,158 @@
|
|
|
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
|
+
const DEFAULT_DOMAIN_CONFIG = {
|
|
8
|
+
international: "shellx.ai",
|
|
9
|
+
china: "1251503967-fg4i5agck7.ap-guangzhou.tencentscf.com",
|
|
10
|
+
protocol: "https://",
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Detect if user is in China
|
|
14
|
+
* Determines based on timezone, language, and system properties
|
|
15
|
+
*/
|
|
16
|
+
export function isChineseUser() {
|
|
17
|
+
try {
|
|
18
|
+
// 1. Check if timezone is Asia/Shanghai
|
|
19
|
+
if (typeof Intl !== "undefined" && Intl.DateTimeFormat) {
|
|
20
|
+
const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
21
|
+
if (timeZone && timeZone.includes("Asia/Shanghai")) {
|
|
22
|
+
console.log("[DomainManager] Detected Chinese user by timezone:", timeZone);
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// 2. Check system language settings
|
|
27
|
+
if (typeof navigator !== "undefined" && navigator.languages) {
|
|
28
|
+
// Check primary language
|
|
29
|
+
const primaryLang = navigator.language;
|
|
30
|
+
if (primaryLang && primaryLang.toLowerCase().startsWith("zh")) {
|
|
31
|
+
console.log("[DomainManager] Detected Chinese user by primary language:", primaryLang);
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
// Check all language settings
|
|
35
|
+
for (const lang of navigator.languages) {
|
|
36
|
+
if (lang.toLowerCase().startsWith("zh")) {
|
|
37
|
+
console.log("[DomainManager] Detected Chinese user by language list:", lang);
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// 3. Check user agent string (as last resort)
|
|
43
|
+
if (typeof navigator !== "undefined" && navigator.userAgent) {
|
|
44
|
+
const ua = navigator.userAgent.toLowerCase();
|
|
45
|
+
// Check if contains Chinese-related identifiers or China region identifiers
|
|
46
|
+
if (ua.includes("zh-cn") || ua.includes("zh_cn") || ua.includes("china")) {
|
|
47
|
+
console.log("[DomainManager] Detected Chinese user by user agent");
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// 4. Node.js environment detection
|
|
52
|
+
if (typeof process !== "undefined" && process.env) {
|
|
53
|
+
const timezone = process.env["TZ"];
|
|
54
|
+
const lang = process.env["LANG"] || process.env["LANGUAGE"];
|
|
55
|
+
if (timezone && timezone.includes("Asia/Shanghai")) {
|
|
56
|
+
console.log("[DomainManager] Detected Chinese user by Node.js timezone:", timezone);
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
if (lang && lang.toLowerCase().includes("zh")) {
|
|
60
|
+
console.log("[DomainManager] Detected Chinese user by Node.js language:", lang);
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
console.log("[DomainManager] Detected international user");
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
console.warn("[DomainManager] Error detecting user region, defaulting to international:", error);
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get API base URL
|
|
74
|
+
* @param config Domain configuration (optional)
|
|
75
|
+
* @returns Complete API base URL
|
|
76
|
+
*/
|
|
77
|
+
export function getApiBaseUrl(config = DEFAULT_DOMAIN_CONFIG) {
|
|
78
|
+
const domain = isChineseUser() ? config.china : config.international;
|
|
79
|
+
return config.protocol + domain;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get WebSocket server URL
|
|
83
|
+
* Note: This function is for fallback scenarios only, should be obtained from API in actual use
|
|
84
|
+
* @param config Domain configuration (optional)
|
|
85
|
+
* @returns WebSocket server default domain (always uses international domain as fallback)
|
|
86
|
+
*/
|
|
87
|
+
export function getWsServerUrl(config = DEFAULT_DOMAIN_CONFIG) {
|
|
88
|
+
return config.international;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Build device API URL
|
|
92
|
+
* @param deviceId Device ID
|
|
93
|
+
* @param config Domain configuration (optional)
|
|
94
|
+
* @returns Complete device API URL
|
|
95
|
+
*/
|
|
96
|
+
export function buildDeviceApiUrl(deviceId, config = DEFAULT_DOMAIN_CONFIG) {
|
|
97
|
+
return `${getApiBaseUrl(config)}/api/device/${deviceId}`;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Build device registration API URL
|
|
101
|
+
* @param config Domain configuration (optional)
|
|
102
|
+
* @returns Device registration API URL
|
|
103
|
+
*/
|
|
104
|
+
export function buildDeviceRegisterUrl(config = DEFAULT_DOMAIN_CONFIG) {
|
|
105
|
+
return `${getApiBaseUrl(config)}/api/device/register`;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Build device configuration API URL
|
|
109
|
+
* @param userSub User ID
|
|
110
|
+
* @param config Domain configuration (optional)
|
|
111
|
+
* @returns Device configuration API URL
|
|
112
|
+
*/
|
|
113
|
+
export function buildDeviceConfigUrl(userSub, config = DEFAULT_DOMAIN_CONFIG) {
|
|
114
|
+
return `${getApiBaseUrl(config)}/api/device/config/${userSub}`;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Build token verification API URL
|
|
118
|
+
* @param authenticate Authentication identifier
|
|
119
|
+
* @param config Domain configuration (optional)
|
|
120
|
+
* @returns Token verification API URL
|
|
121
|
+
*/
|
|
122
|
+
export function buildTokenVerifyUrl(authenticate, config = DEFAULT_DOMAIN_CONFIG) {
|
|
123
|
+
return `${getApiBaseUrl(config)}/api/device/${authenticate}/token/verify`;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Build token refresh API URL
|
|
127
|
+
* @param authenticate Authentication identifier
|
|
128
|
+
* @param config Domain configuration (optional)
|
|
129
|
+
* @returns Token refresh API URL
|
|
130
|
+
*/
|
|
131
|
+
export function buildTokenRefreshUrl(authenticate, config = DEFAULT_DOMAIN_CONFIG) {
|
|
132
|
+
return `${getApiBaseUrl(config)}/api/device/${authenticate}/token/refresh`;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get current domain information (for debugging)
|
|
136
|
+
* @param config Domain configuration (optional)
|
|
137
|
+
* @returns Domain information string
|
|
138
|
+
*/
|
|
139
|
+
export function getCurrentDomainInfo(config = DEFAULT_DOMAIN_CONFIG) {
|
|
140
|
+
const isChinese = isChineseUser();
|
|
141
|
+
const domain = isChinese ? config.china : config.international;
|
|
142
|
+
return `Region: ${isChinese ? "China" : "International"}, Domain: ${domain}, Full URL: ${getApiBaseUrl(config)}`;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Create custom domain configuration
|
|
146
|
+
* @param internationalDomain International domain
|
|
147
|
+
* @param chinaDomain China domain
|
|
148
|
+
* @param protocol Protocol (defaults to https://)
|
|
149
|
+
* @returns Domain configuration object
|
|
150
|
+
*/
|
|
151
|
+
export function createDomainConfig(internationalDomain, chinaDomain, protocol = "https://") {
|
|
152
|
+
return {
|
|
153
|
+
international: internationalDomain,
|
|
154
|
+
china: chinaDomain,
|
|
155
|
+
protocol,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=domain-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-manager.js","sourceRoot":"","sources":["../src/domain-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|