@skrillex1224/android-toolkit 0.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/README.md +56 -0
- package/entrys/node.js +24 -0
- package/index.js +1 -0
- package/package.json +24 -0
- package/scripts/postinstall.js +72 -0
- package/src/apify-kit.js +177 -0
- package/src/constants.js +24 -0
- package/src/context.js +98 -0
- package/src/device.js +344 -0
- package/src/errors.js +37 -0
- package/src/frida-client.js +429 -0
- package/src/internals/frida/webview_event_agent.js +223 -0
- package/src/launch.js +52 -0
- package/src/logger.js +53 -0
package/src/logger.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const defaultLogger = {
|
|
2
|
+
info: (...args) => console.error(...args),
|
|
3
|
+
warning: (...args) => console.error(...args),
|
|
4
|
+
warn: (...args) => console.error(...args),
|
|
5
|
+
error: (...args) => console.error(...args),
|
|
6
|
+
debug: (...args) => console.error(...args)
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
let activeLogger = defaultLogger;
|
|
10
|
+
|
|
11
|
+
function write(level, message, detail = '') {
|
|
12
|
+
const line = detail ? `[android-toolkit] ${message} ${detail}` : `[android-toolkit] ${message}`;
|
|
13
|
+
const writer = activeLogger[level] || activeLogger.info || console.error;
|
|
14
|
+
writer.call(activeLogger, line);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// 轻量 Logger,接口风格跟 playwright-toolkit 接近。
|
|
18
|
+
// 当前 android-toolkit 先不引入 crawlee/apify 依赖,避免 native actor 在本地运行时额外装包。
|
|
19
|
+
export const Logger = {
|
|
20
|
+
setLogger(logger) {
|
|
21
|
+
activeLogger = logger || defaultLogger;
|
|
22
|
+
},
|
|
23
|
+
start(message, detail = '') {
|
|
24
|
+
write('info', `▶ ${message}`, detail);
|
|
25
|
+
},
|
|
26
|
+
success(message, detail = '') {
|
|
27
|
+
write('info', `✓ ${message}`, detail);
|
|
28
|
+
},
|
|
29
|
+
fail(message, error = '') {
|
|
30
|
+
const detail = error?.message || String(error || '');
|
|
31
|
+
write('error', `✗ ${message}`, detail);
|
|
32
|
+
},
|
|
33
|
+
warn(message, detail = '') {
|
|
34
|
+
write('warn', `⚠ ${message}`, detail);
|
|
35
|
+
},
|
|
36
|
+
info(message, detail = '') {
|
|
37
|
+
write('info', message, detail);
|
|
38
|
+
},
|
|
39
|
+
useTemplate() {
|
|
40
|
+
return {
|
|
41
|
+
taskStart: (detail) => Logger.start('任务开始', detail),
|
|
42
|
+
taskSuccess: (detail) => Logger.success('任务完成', detail),
|
|
43
|
+
taskFail: (detail, error) => Logger.fail(`任务失败 ${detail || ''}`.trim(), error),
|
|
44
|
+
stepStart: (step) => Logger.start(`[Step] ${step}`),
|
|
45
|
+
stepSuccess: (step) => Logger.success(`[Step] ${step}`),
|
|
46
|
+
stepFail: (step, error) => Logger.fail(`[Step] ${step}`, error)
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export function sleep(ms) {
|
|
52
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
53
|
+
}
|