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":"shellx.js","sourceRoot":"","sources":["../src/shellx.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -8,28 +8,47 @@ export type BaseOptions = {
|
|
|
8
8
|
retry?: number;
|
|
9
9
|
waitAfterMs?: number;
|
|
10
10
|
};
|
|
11
|
+
export interface BaseResult {
|
|
12
|
+
success: boolean;
|
|
13
|
+
error?: string;
|
|
14
|
+
duration: number;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
}
|
|
11
17
|
export type Click = BaseOptions & {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
clickType?:
|
|
18
|
+
elementId?: string;
|
|
19
|
+
resourceId?: string;
|
|
20
|
+
text?: string;
|
|
21
|
+
class?: string;
|
|
22
|
+
x?: number;
|
|
23
|
+
y?: number;
|
|
24
|
+
clickType?: "single" | "long" | "double";
|
|
19
25
|
visible?: boolean;
|
|
20
26
|
clickable?: boolean;
|
|
21
27
|
};
|
|
28
|
+
export interface ClickResult extends BaseResult {
|
|
29
|
+
elementId?: string;
|
|
30
|
+
resourceId?: string;
|
|
31
|
+
text?: string;
|
|
32
|
+
class?: string;
|
|
33
|
+
x?: number;
|
|
34
|
+
y?: number;
|
|
35
|
+
clickType?: "single" | "long" | "double";
|
|
36
|
+
}
|
|
22
37
|
export type Input = BaseOptions & {
|
|
23
38
|
text: string;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
targetText?: string;
|
|
27
|
-
targetClass?: string;
|
|
39
|
+
elementId?: string;
|
|
40
|
+
resourceId?: string;
|
|
28
41
|
clear?: boolean;
|
|
29
42
|
hideKeyboard?: boolean;
|
|
30
43
|
visible?: boolean;
|
|
31
44
|
clickable?: boolean;
|
|
32
45
|
};
|
|
46
|
+
export interface InputResult extends BaseResult {
|
|
47
|
+
text: string;
|
|
48
|
+
elementId?: string;
|
|
49
|
+
resourceId?: string;
|
|
50
|
+
cleared?: boolean;
|
|
51
|
+
}
|
|
33
52
|
export type Swipe = BaseOptions & {
|
|
34
53
|
fromX: number;
|
|
35
54
|
fromY: number;
|
|
@@ -37,51 +56,49 @@ export type Swipe = BaseOptions & {
|
|
|
37
56
|
toY: number;
|
|
38
57
|
duration?: number;
|
|
39
58
|
};
|
|
59
|
+
export interface SwipeResult extends BaseResult {
|
|
60
|
+
fromX: number;
|
|
61
|
+
fromY: number;
|
|
62
|
+
toX: number;
|
|
63
|
+
toY: number;
|
|
64
|
+
}
|
|
40
65
|
export type Key = BaseOptions & {
|
|
41
66
|
key: string;
|
|
42
67
|
longPress?: boolean;
|
|
43
68
|
};
|
|
69
|
+
export interface KeyResult extends BaseResult {
|
|
70
|
+
key: string;
|
|
71
|
+
longPress?: boolean;
|
|
72
|
+
}
|
|
44
73
|
export type Wait = BaseOptions & {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
condition?:
|
|
74
|
+
elementId?: string;
|
|
75
|
+
resourceId?: string;
|
|
76
|
+
text?: string;
|
|
77
|
+
class?: string;
|
|
78
|
+
condition?: "visible" | "clickable" | "gone";
|
|
50
79
|
visible?: boolean;
|
|
51
80
|
clickable?: boolean;
|
|
52
81
|
};
|
|
82
|
+
export interface WaitResult extends BaseResult {
|
|
83
|
+
elementId?: string;
|
|
84
|
+
resourceId?: string;
|
|
85
|
+
text?: string;
|
|
86
|
+
class?: string;
|
|
87
|
+
condition?: "visible" | "clickable" | "gone";
|
|
88
|
+
found?: boolean;
|
|
89
|
+
}
|
|
53
90
|
export type Find = BaseOptions & {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
91
|
+
elementId?: string;
|
|
92
|
+
resourceId?: string;
|
|
93
|
+
text?: string;
|
|
94
|
+
class?: string;
|
|
58
95
|
multiple?: boolean;
|
|
59
96
|
maxResults?: number;
|
|
60
97
|
visible?: boolean;
|
|
61
98
|
clickable?: boolean;
|
|
62
99
|
pressClick?: boolean;
|
|
63
100
|
};
|
|
64
|
-
export
|
|
65
|
-
cmd: string;
|
|
66
|
-
};
|
|
67
|
-
export type AppInfo = BaseOptions & {
|
|
68
|
-
package: string;
|
|
69
|
-
};
|
|
70
|
-
export type Screenshot = BaseOptions & {
|
|
71
|
-
regionX?: number;
|
|
72
|
-
regionY?: number;
|
|
73
|
-
regionWidth?: number;
|
|
74
|
-
regionHeight?: number;
|
|
75
|
-
format?: 'png' | 'jpeg';
|
|
76
|
-
quality?: number;
|
|
77
|
-
};
|
|
78
|
-
export type ActionResult = {
|
|
79
|
-
success: boolean;
|
|
80
|
-
data?: any;
|
|
81
|
-
error?: string;
|
|
82
|
-
duration: number;
|
|
83
|
-
};
|
|
84
|
-
export type Element = {
|
|
101
|
+
export interface Element {
|
|
85
102
|
id: string;
|
|
86
103
|
text: string;
|
|
87
104
|
class: string;
|
|
@@ -91,37 +108,95 @@ export type Element = {
|
|
|
91
108
|
bottom: number;
|
|
92
109
|
visible: boolean;
|
|
93
110
|
clickable: boolean;
|
|
94
|
-
}
|
|
95
|
-
export
|
|
111
|
+
}
|
|
112
|
+
export interface FindResult extends BaseResult {
|
|
96
113
|
elements: Element[];
|
|
97
114
|
count: number;
|
|
98
|
-
success: boolean;
|
|
99
115
|
found: boolean;
|
|
116
|
+
}
|
|
117
|
+
export type Command = BaseOptions & {
|
|
118
|
+
cmd: string;
|
|
100
119
|
};
|
|
101
|
-
export
|
|
102
|
-
success: boolean;
|
|
120
|
+
export interface CommandResult extends BaseResult {
|
|
103
121
|
output: string;
|
|
104
|
-
error?: string;
|
|
105
122
|
exitCode?: number;
|
|
106
|
-
|
|
123
|
+
cmd: string;
|
|
124
|
+
}
|
|
125
|
+
export type Clipboard = BaseOptions & {
|
|
126
|
+
text?: string;
|
|
127
|
+
paste?: boolean;
|
|
128
|
+
get?: boolean;
|
|
129
|
+
};
|
|
130
|
+
export interface ClipboardResult extends BaseResult {
|
|
131
|
+
text?: string;
|
|
132
|
+
pasted?: boolean;
|
|
133
|
+
getCopied?: boolean;
|
|
134
|
+
}
|
|
135
|
+
export type AppInfo = BaseOptions & {
|
|
136
|
+
package: string;
|
|
137
|
+
};
|
|
138
|
+
export interface AppInfoResult extends BaseResult {
|
|
139
|
+
package: string;
|
|
140
|
+
appName?: string;
|
|
141
|
+
versionName?: string;
|
|
142
|
+
versionCode?: number;
|
|
143
|
+
enabled?: boolean;
|
|
144
|
+
}
|
|
145
|
+
export type Screenshot = BaseOptions & {
|
|
146
|
+
regionX?: number;
|
|
147
|
+
regionY?: number;
|
|
148
|
+
regionWidth?: number;
|
|
149
|
+
regionHeight?: number;
|
|
150
|
+
format?: "png" | "jpeg";
|
|
151
|
+
scale?: number;
|
|
152
|
+
quality?: number;
|
|
153
|
+
saveToFile?: boolean;
|
|
107
154
|
};
|
|
155
|
+
export interface ScreenshotResult extends BaseResult {
|
|
156
|
+
imagePath?: string;
|
|
157
|
+
imageData?: string;
|
|
158
|
+
format?: "png" | "jpeg";
|
|
159
|
+
width?: number;
|
|
160
|
+
height?: number;
|
|
161
|
+
}
|
|
162
|
+
export interface ScreenInfoResult extends BaseResult {
|
|
163
|
+
width?: number;
|
|
164
|
+
height?: number;
|
|
165
|
+
density?: number;
|
|
166
|
+
screenOn?: boolean;
|
|
167
|
+
screenUnlocked?: boolean;
|
|
168
|
+
foregroundApp?: string;
|
|
169
|
+
foregroundActivity?: string;
|
|
170
|
+
model?: string;
|
|
171
|
+
androidVersion?: string;
|
|
172
|
+
manufacturer?: string;
|
|
173
|
+
}
|
|
174
|
+
export type OperationResult = ClickResult | InputResult | SwipeResult | KeyResult | WaitResult | FindResult | CommandResult | ClipboardResult | AppInfoResult | ScreenshotResult | ScreenInfoResult;
|
|
108
175
|
export type Action = ({
|
|
109
|
-
type:
|
|
176
|
+
type: "click";
|
|
110
177
|
} & Click) | ({
|
|
111
|
-
type:
|
|
178
|
+
type: "input";
|
|
112
179
|
} & Input) | ({
|
|
113
|
-
type:
|
|
180
|
+
type: "swipe";
|
|
114
181
|
} & Swipe) | ({
|
|
115
|
-
type:
|
|
182
|
+
type: "key";
|
|
116
183
|
} & Key) | ({
|
|
117
|
-
type:
|
|
184
|
+
type: "wait";
|
|
118
185
|
} & Wait) | ({
|
|
119
|
-
type:
|
|
186
|
+
type: "find";
|
|
120
187
|
} & Find) | ({
|
|
121
|
-
type:
|
|
188
|
+
type: "command";
|
|
122
189
|
} & Command) | ({
|
|
123
|
-
type:
|
|
190
|
+
type: "clipboard";
|
|
191
|
+
} & Clipboard) | ({
|
|
192
|
+
type: "appInfo";
|
|
124
193
|
} & AppInfo) | ({
|
|
125
|
-
type:
|
|
194
|
+
type: "screenshot";
|
|
126
195
|
} & Screenshot);
|
|
127
196
|
export type Actions = Action[];
|
|
197
|
+
export interface ExecuteActionsResult {
|
|
198
|
+
results: OperationResult[];
|
|
199
|
+
successCount: number;
|
|
200
|
+
failureCount: number;
|
|
201
|
+
totalDuration: number;
|
|
202
|
+
}
|
package/dist/types.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// Concise ShellX type definitions
|
|
2
|
+
// To make it easier for AI models to understand parameters, all types are designed with the simplest flat structure
|
|
3
|
+
export {};
|
|
4
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,oHAAoH"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RetryHelper - A utility module for retrying failed operations
|
|
3
|
+
*
|
|
4
|
+
* This module provides a generic retry mechanism with configurable attempts,
|
|
5
|
+
* delays, and callbacks for handling retries and failures.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Options for retry logic
|
|
9
|
+
*/
|
|
10
|
+
export interface RetryOptions {
|
|
11
|
+
/** Maximum number of retry attempts (default: 3) */
|
|
12
|
+
retry?: number;
|
|
13
|
+
/** Delay in milliseconds between retry attempts (default: 1000) */
|
|
14
|
+
delay?: number;
|
|
15
|
+
/** Callback function called on each retry attempt */
|
|
16
|
+
onRetry?: (attempt: number, error: unknown) => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* RetryHelper class provides a generic retry mechanism for async operations
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const result = await RetryHelper.execute(
|
|
24
|
+
* async () => fetchData(),
|
|
25
|
+
* { retry: 3, delay: 1000 }
|
|
26
|
+
* );
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare class RetryHelper {
|
|
30
|
+
/**
|
|
31
|
+
* Execute an operation with retry logic
|
|
32
|
+
*
|
|
33
|
+
* @template T - The return type of the operation
|
|
34
|
+
* @param operation - The async operation to execute
|
|
35
|
+
* @param options - Retry configuration options
|
|
36
|
+
* @returns Promise that resolves to the operation result or undefined if all retries fail
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const result = await RetryHelper.execute(
|
|
41
|
+
* async () => await apiCall(),
|
|
42
|
+
* {
|
|
43
|
+
* retry: 5,
|
|
44
|
+
* delay: 2000,
|
|
45
|
+
* onRetry: (attempt, error) => console.log(`Attempt ${attempt} failed:`, error)
|
|
46
|
+
* }
|
|
47
|
+
* );
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
static execute<T>(operation: () => Promise<T>, options?: RetryOptions): Promise<T | undefined>;
|
|
51
|
+
/**
|
|
52
|
+
* Execute an operation with retry logic and throw error if all retries fail
|
|
53
|
+
*
|
|
54
|
+
* @template T - The return type of the operation
|
|
55
|
+
* @param operation - The async operation to execute
|
|
56
|
+
* @param options - Retry configuration options
|
|
57
|
+
* @returns Promise that resolves to the operation result
|
|
58
|
+
* @throws Error if all retry attempts fail
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* try {
|
|
63
|
+
* const result = await RetryHelper.executeOrThrow(
|
|
64
|
+
* async () => await apiCall(),
|
|
65
|
+
* { retry: 3, delay: 1000 }
|
|
66
|
+
* );
|
|
67
|
+
* } catch (error) {
|
|
68
|
+
* console.error('All attempts failed:', error);
|
|
69
|
+
* }
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
static executeOrThrow<T>(operation: () => Promise<T>, options?: RetryOptions): Promise<T>;
|
|
73
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RetryHelper - A utility module for retrying failed operations
|
|
3
|
+
*
|
|
4
|
+
* This module provides a generic retry mechanism with configurable attempts,
|
|
5
|
+
* delays, and callbacks for handling retries and failures.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* RetryHelper class provides a generic retry mechanism for async operations
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const result = await RetryHelper.execute(
|
|
13
|
+
* async () => fetchData(),
|
|
14
|
+
* { retry: 3, delay: 1000 }
|
|
15
|
+
* );
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class RetryHelper {
|
|
19
|
+
/**
|
|
20
|
+
* Execute an operation with retry logic
|
|
21
|
+
*
|
|
22
|
+
* @template T - The return type of the operation
|
|
23
|
+
* @param operation - The async operation to execute
|
|
24
|
+
* @param options - Retry configuration options
|
|
25
|
+
* @returns Promise that resolves to the operation result or undefined if all retries fail
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const result = await RetryHelper.execute(
|
|
30
|
+
* async () => await apiCall(),
|
|
31
|
+
* {
|
|
32
|
+
* retry: 5,
|
|
33
|
+
* delay: 2000,
|
|
34
|
+
* onRetry: (attempt, error) => console.log(`Attempt ${attempt} failed:`, error)
|
|
35
|
+
* }
|
|
36
|
+
* );
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
static async execute(operation, options = {}) {
|
|
40
|
+
const { retry = 3, delay = 1000, onRetry } = options;
|
|
41
|
+
for (let attempt = 1; attempt <= retry; attempt++) {
|
|
42
|
+
try {
|
|
43
|
+
return await operation();
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
// Check if this is the last attempt
|
|
47
|
+
if (attempt === retry) {
|
|
48
|
+
console.log(`❌ [Retry] Failed after ${retry} attempts, returning undefined:`, error);
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
// Call retry callback if provided
|
|
52
|
+
if (onRetry) {
|
|
53
|
+
onRetry(attempt, error);
|
|
54
|
+
}
|
|
55
|
+
// Log retry attempt
|
|
56
|
+
console.log(`🔄 [Retry] Attempt ${attempt} failed, retrying in ${delay}ms...`);
|
|
57
|
+
// Wait before next attempt
|
|
58
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Execute an operation with retry logic and throw error if all retries fail
|
|
65
|
+
*
|
|
66
|
+
* @template T - The return type of the operation
|
|
67
|
+
* @param operation - The async operation to execute
|
|
68
|
+
* @param options - Retry configuration options
|
|
69
|
+
* @returns Promise that resolves to the operation result
|
|
70
|
+
* @throws Error if all retry attempts fail
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* try {
|
|
75
|
+
* const result = await RetryHelper.executeOrThrow(
|
|
76
|
+
* async () => await apiCall(),
|
|
77
|
+
* { retry: 3, delay: 1000 }
|
|
78
|
+
* );
|
|
79
|
+
* } catch (error) {
|
|
80
|
+
* console.error('All attempts failed:', error);
|
|
81
|
+
* }
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
static async executeOrThrow(operation, options = {}) {
|
|
85
|
+
const result = await this.execute(operation, options);
|
|
86
|
+
if (result === undefined) {
|
|
87
|
+
throw new Error(`Operation failed after ${options.retry || 3} attempts`);
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=retry-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry-helper.js","sourceRoot":"","sources":["../../src/utils/retry-helper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IACtB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,SAA2B,EAC3B,UAAwB,EAAE;QAE1B,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAErD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,EAAE,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,oCAAoC;gBACpC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,iCAAiC,EAAE,KAAK,CAAC,CAAC;oBACrF,OAAO,SAAS,CAAC;gBACnB,CAAC;gBAED,kCAAkC;gBAClC,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBAED,oBAAoB;gBACpB,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,wBAAwB,KAAK,OAAO,CAAC,CAAC;gBAE/E,2BAA2B;gBAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,SAA2B,EAC3B,UAAwB,EAAE;QAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export declare const wait: (ms: number) => Promise<void>;
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Safely get environment variable, compatible with both browser and Node.js environments
|
|
4
4
|
*/
|
|
5
5
|
export declare function getEnvVar(key: string): string | undefined;
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Safely set environment variable, compatible with both browser and Node.js environments
|
|
8
8
|
*/
|
|
9
9
|
export declare function setEnvVar(key: string, value: string): void;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Safely delete environment variable, compatible with both browser and Node.js environments
|
|
12
12
|
*/
|
|
13
13
|
export declare function deleteEnvVar(key: string): void;
|
package/dist/utils.js
CHANGED
|
@@ -1,48 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wait = void 0;
|
|
4
|
-
exports.getEnvVar = getEnvVar;
|
|
5
|
-
exports.setEnvVar = setEnvVar;
|
|
6
|
-
exports.deleteEnvVar = deleteEnvVar;
|
|
7
|
-
const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
8
|
-
exports.wait = wait;
|
|
1
|
+
export const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
9
2
|
/**
|
|
10
|
-
*
|
|
3
|
+
* Safely get environment variable, compatible with both browser and Node.js environments
|
|
11
4
|
*/
|
|
12
|
-
function getEnvVar(key) {
|
|
13
|
-
if (typeof process !==
|
|
5
|
+
export function getEnvVar(key) {
|
|
6
|
+
if (typeof process !== "undefined" && process.env) {
|
|
14
7
|
return process.env[key];
|
|
15
8
|
}
|
|
16
|
-
else if (typeof window !==
|
|
9
|
+
else if (typeof window !== "undefined" && window.localStorage) {
|
|
17
10
|
const item = window.localStorage.getItem(key);
|
|
18
11
|
if (item) {
|
|
19
|
-
console.log("
|
|
12
|
+
console.log("Retrieved environment variable from localStorage:", key);
|
|
20
13
|
return item;
|
|
21
14
|
}
|
|
22
15
|
}
|
|
23
16
|
return undefined;
|
|
24
17
|
}
|
|
25
18
|
/**
|
|
26
|
-
*
|
|
19
|
+
* Safely set environment variable, compatible with both browser and Node.js environments
|
|
27
20
|
*/
|
|
28
|
-
function setEnvVar(key, value) {
|
|
29
|
-
if (typeof process !==
|
|
21
|
+
export function setEnvVar(key, value) {
|
|
22
|
+
if (typeof process !== "undefined" && process.env) {
|
|
30
23
|
process.env[key] = value;
|
|
31
24
|
}
|
|
32
|
-
else if (typeof window !==
|
|
25
|
+
else if (typeof window !== "undefined" && window.localStorage) {
|
|
33
26
|
window.localStorage.setItem(key, value);
|
|
34
|
-
console.log("
|
|
27
|
+
console.log("Saved environment variable:", key, value);
|
|
35
28
|
}
|
|
36
29
|
}
|
|
37
30
|
/**
|
|
38
|
-
*
|
|
31
|
+
* Safely delete environment variable, compatible with both browser and Node.js environments
|
|
39
32
|
*/
|
|
40
|
-
function deleteEnvVar(key) {
|
|
41
|
-
if (typeof process !==
|
|
33
|
+
export function deleteEnvVar(key) {
|
|
34
|
+
if (typeof process !== "undefined" && process.env) {
|
|
42
35
|
delete process.env[key];
|
|
43
36
|
}
|
|
44
|
-
else if (typeof window !==
|
|
37
|
+
else if (typeof window !== "undefined" && window.localStorage) {
|
|
45
38
|
window.localStorage.removeItem(key);
|
|
46
|
-
console.log("
|
|
39
|
+
console.log("Deleted environment variable:", key);
|
|
47
40
|
}
|
|
48
41
|
}
|
|
42
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAU,EAAiB,EAAE,CAChD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,mDAAmD,EAAE,GAAG,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,KAAa;IAClD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAChE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAChE,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}
|