droid-cli 1.0.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 +268 -0
- package/dist/commands/build.d.ts +12 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +375 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/device.d.ts +2 -0
- package/dist/commands/device.d.ts.map +1 -0
- package/dist/commands/device.js +177 -0
- package/dist/commands/device.js.map +1 -0
- package/dist/commands/gradle.d.ts +11 -0
- package/dist/commands/gradle.d.ts.map +1 -0
- package/dist/commands/gradle.js +147 -0
- package/dist/commands/gradle.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +231 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/logcat.d.ts +6 -0
- package/dist/commands/logcat.d.ts.map +1 -0
- package/dist/commands/logcat.js +131 -0
- package/dist/commands/logcat.js.map +1 -0
- package/dist/commands/variant.d.ts +3 -0
- package/dist/commands/variant.d.ts.map +1 -0
- package/dist/commands/variant.js +77 -0
- package/dist/commands/variant.js.map +1 -0
- package/dist/config/config-manager.d.ts +33 -0
- package/dist/config/config-manager.d.ts.map +1 -0
- package/dist/config/config-manager.js +219 -0
- package/dist/config/config-manager.js.map +1 -0
- package/dist/config/schema.d.ts +21 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +41 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/adb.d.ts +48 -0
- package/dist/core/adb.d.ts.map +1 -0
- package/dist/core/adb.js +431 -0
- package/dist/core/adb.js.map +1 -0
- package/dist/core/android-project.d.ts +25 -0
- package/dist/core/android-project.d.ts.map +1 -0
- package/dist/core/android-project.js +155 -0
- package/dist/core/android-project.js.map +1 -0
- package/dist/core/gradle-wrapper.d.ts +21 -0
- package/dist/core/gradle-wrapper.d.ts.map +1 -0
- package/dist/core/gradle-wrapper.js +221 -0
- package/dist/core/gradle-wrapper.js.map +1 -0
- package/dist/core/terminal.d.ts +20 -0
- package/dist/core/terminal.d.ts.map +1 -0
- package/dist/core/terminal.js +186 -0
- package/dist/core/terminal.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +167 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/interactive-menu.d.ts +2 -0
- package/dist/ui/interactive-menu.d.ts.map +1 -0
- package/dist/ui/interactive-menu.js +272 -0
- package/dist/ui/interactive-menu.js.map +1 -0
- package/dist/ui/logger.d.ts +20 -0
- package/dist/ui/logger.d.ts.map +1 -0
- package/dist/ui/logger.js +59 -0
- package/dist/ui/logger.js.map +1 -0
- package/dist/utils/process.d.ts +53 -0
- package/dist/utils/process.d.ts.map +1 -0
- package/dist/utils/process.js +62 -0
- package/dist/utils/process.js.map +1 -0
- package/dist/utils/validators.d.ts +11 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +84 -0
- package/dist/utils/validators.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logcatCommand = logcatCommand;
|
|
4
|
+
const logger_1 = require("../ui/logger");
|
|
5
|
+
const adb_1 = require("../core/adb");
|
|
6
|
+
const android_project_1 = require("../core/android-project");
|
|
7
|
+
const config_manager_1 = require("../config/config-manager");
|
|
8
|
+
const terminal_1 = require("../core/terminal");
|
|
9
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
10
|
+
async function logcatCommand(options = {}) {
|
|
11
|
+
try {
|
|
12
|
+
logger_1.Logger.step('Setting up logcat monitoring...');
|
|
13
|
+
// Load configuration
|
|
14
|
+
const configManager = config_manager_1.ConfigManager.getInstance();
|
|
15
|
+
const config = await configManager.load();
|
|
16
|
+
// Detect Android project
|
|
17
|
+
const project = await android_project_1.AndroidProject.detect(configManager.getProjectPath());
|
|
18
|
+
if (!project) {
|
|
19
|
+
logger_1.Logger.error('No Android project found. Please run this command from an Android project directory or run "droid-cli init" first.');
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
const projectInfo = project.getInfo();
|
|
23
|
+
if (!projectInfo) {
|
|
24
|
+
logger_1.Logger.error('Failed to load Android project information.');
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
// Get ADB manager and check devices
|
|
28
|
+
const adbManager = adb_1.AdbManager.getInstance();
|
|
29
|
+
const devices = await adbManager.getDevices();
|
|
30
|
+
const availableDevices = adbManager.getAvailableDevices();
|
|
31
|
+
if (availableDevices.length === 0) {
|
|
32
|
+
logger_1.Logger.error('No devices available. Please connect a device or start an emulator.');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
// Determine target device
|
|
36
|
+
let targetDeviceId = options.device || config.selectedDevice;
|
|
37
|
+
if (!targetDeviceId || !availableDevices.find(d => d.id === targetDeviceId)) {
|
|
38
|
+
if (availableDevices.length === 1) {
|
|
39
|
+
targetDeviceId = availableDevices[0].id;
|
|
40
|
+
logger_1.Logger.info(`Using device: ${availableDevices[0].name} (${targetDeviceId})`);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Let user select device
|
|
44
|
+
const deviceChoices = availableDevices.map(device => ({
|
|
45
|
+
name: `${device.name} (${device.id}) - API ${device.apiLevel || 'Unknown'}`,
|
|
46
|
+
value: device.id,
|
|
47
|
+
}));
|
|
48
|
+
targetDeviceId = await (0, prompts_1.select)({
|
|
49
|
+
message: 'Select device for logcat:',
|
|
50
|
+
choices: deviceChoices,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const targetDevice = adbManager.getDeviceById(targetDeviceId);
|
|
55
|
+
if (!targetDevice) {
|
|
56
|
+
logger_1.Logger.error(`Device ${targetDeviceId} not found or not available.`);
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
logger_1.Logger.device(`Target device: ${targetDevice.name} (${targetDevice.id})`);
|
|
60
|
+
// Build logcat command
|
|
61
|
+
const logcatArgs = [
|
|
62
|
+
'-s', targetDevice.id,
|
|
63
|
+
'logcat'
|
|
64
|
+
];
|
|
65
|
+
// Filter by package name to show only app logs
|
|
66
|
+
if (projectInfo.packageName !== 'unknown') {
|
|
67
|
+
logcatArgs.push(`${projectInfo.packageName}:V`, '*:S');
|
|
68
|
+
logger_1.Logger.info(`Filtering logs for package: ${projectInfo.packageName}`);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
logger_1.Logger.warn('Package name unknown, showing all logs');
|
|
72
|
+
}
|
|
73
|
+
// Clear logcat if configured
|
|
74
|
+
if (config.logcat.clearOnStart) {
|
|
75
|
+
logger_1.Logger.info('Clearing existing logcat...');
|
|
76
|
+
await adbManager.checkAdbAvailable(); // Ensure ADB is available
|
|
77
|
+
const result = await require('../utils/process').ProcessManager.run('adb', [
|
|
78
|
+
'-s', targetDevice.id,
|
|
79
|
+
'logcat', '-c'
|
|
80
|
+
]);
|
|
81
|
+
if (result.success) {
|
|
82
|
+
logger_1.Logger.success('Logcat cleared');
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
logger_1.Logger.warn('Failed to clear logcat, continuing anyway...');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Determine terminal to use
|
|
89
|
+
let terminalType = config.terminal;
|
|
90
|
+
if (terminalType === 'auto') {
|
|
91
|
+
const detectedTerminal = await terminal_1.TerminalManager.detectTerminal();
|
|
92
|
+
if (!detectedTerminal) {
|
|
93
|
+
logger_1.Logger.error('No supported terminal detected');
|
|
94
|
+
logger_1.Logger.info('Please set a specific terminal in your droid-cli.json config');
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
terminalType = detectedTerminal;
|
|
98
|
+
}
|
|
99
|
+
// Spawn terminal with logcat
|
|
100
|
+
const title = `Logcat - ${projectInfo.packageName} (${targetDevice.name})`;
|
|
101
|
+
logger_1.Logger.step(`Opening logcat in ${terminalType}...`);
|
|
102
|
+
const success = await terminal_1.TerminalManager.spawnTerminal('adb', logcatArgs, {
|
|
103
|
+
title,
|
|
104
|
+
terminal: terminalType,
|
|
105
|
+
});
|
|
106
|
+
if (success) {
|
|
107
|
+
logger_1.Logger.success('Logcat opened in new terminal window');
|
|
108
|
+
logger_1.Logger.info('Press Ctrl+C in the terminal to stop logcat');
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
logger_1.Logger.error('Failed to open terminal');
|
|
112
|
+
logger_1.Logger.info('You can manually run the following command:');
|
|
113
|
+
logger_1.Logger.info(`adb ${logcatArgs.join(' ')}`);
|
|
114
|
+
// Fallback: run logcat in current terminal
|
|
115
|
+
logger_1.Logger.step('Running logcat in current terminal (press Ctrl+C to stop)...');
|
|
116
|
+
const logcatProcess = require('../utils/process').ProcessManager.spawn('adb', logcatArgs);
|
|
117
|
+
// Handle process termination
|
|
118
|
+
process.on('SIGINT', () => {
|
|
119
|
+
logger_1.Logger.info('Stopping logcat...');
|
|
120
|
+
logcatProcess.kill('SIGINT');
|
|
121
|
+
process.exit(0);
|
|
122
|
+
});
|
|
123
|
+
await logcatProcess;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
logger_1.Logger.error('Logcat command failed:', error);
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=logcat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logcat.js","sourceRoot":"","sources":["../../src/commands/logcat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variant.d.ts","sourceRoot":"","sources":["../../src/commands/variant.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,kBAqDnC;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2B1D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.variantCommand = variantCommand;
|
|
4
|
+
exports.selectBuildVariant = selectBuildVariant;
|
|
5
|
+
const logger_1 = require("../ui/logger");
|
|
6
|
+
const android_project_1 = require("../core/android-project");
|
|
7
|
+
const config_manager_1 = require("../config/config-manager");
|
|
8
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
9
|
+
async function variantCommand() {
|
|
10
|
+
try {
|
|
11
|
+
logger_1.Logger.step('Selecting build variant...');
|
|
12
|
+
// Load configuration
|
|
13
|
+
const configManager = config_manager_1.ConfigManager.getInstance();
|
|
14
|
+
const config = await configManager.load();
|
|
15
|
+
// Detect Android project
|
|
16
|
+
const project = await android_project_1.AndroidProject.detect(configManager.getProjectPath());
|
|
17
|
+
if (!project) {
|
|
18
|
+
logger_1.Logger.error('No Android project found. Please run this command from an Android project directory or run "droid-cli init" first.');
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
const projectInfo = project.getInfo();
|
|
22
|
+
if (!projectInfo) {
|
|
23
|
+
logger_1.Logger.error('Failed to load Android project information.');
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
const availableVariants = project.getBuildVariants();
|
|
27
|
+
logger_1.Logger.info(`Current default variant: ${config.defaultVariant}`);
|
|
28
|
+
logger_1.Logger.info(`Available variants: ${availableVariants.join(', ')}`);
|
|
29
|
+
const variantChoices = availableVariants.map(variant => ({
|
|
30
|
+
name: `${variant.charAt(0).toUpperCase() + variant.slice(1)}${variant === config.defaultVariant ? ' (current)' : ''}`,
|
|
31
|
+
value: variant,
|
|
32
|
+
}));
|
|
33
|
+
const selectedVariant = await (0, prompts_1.select)({
|
|
34
|
+
message: 'Select new default build variant:',
|
|
35
|
+
choices: variantChoices,
|
|
36
|
+
default: config.defaultVariant,
|
|
37
|
+
});
|
|
38
|
+
if (selectedVariant === config.defaultVariant) {
|
|
39
|
+
logger_1.Logger.info(`Variant remains: ${selectedVariant}`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// Update config
|
|
43
|
+
config.defaultVariant = selectedVariant;
|
|
44
|
+
configManager.set(config);
|
|
45
|
+
await configManager.save();
|
|
46
|
+
logger_1.Logger.success(`Default build variant changed to: ${selectedVariant}`);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
logger_1.Logger.error('Variant command failed:', error);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function selectBuildVariant() {
|
|
54
|
+
try {
|
|
55
|
+
const configManager = config_manager_1.ConfigManager.getInstance();
|
|
56
|
+
const config = await configManager.load();
|
|
57
|
+
const project = await android_project_1.AndroidProject.detect(configManager.getProjectPath());
|
|
58
|
+
if (!project) {
|
|
59
|
+
throw new Error('No Android project found');
|
|
60
|
+
}
|
|
61
|
+
const availableVariants = project.getBuildVariants();
|
|
62
|
+
const variantChoices = availableVariants.map(variant => ({
|
|
63
|
+
name: variant.charAt(0).toUpperCase() + variant.slice(1),
|
|
64
|
+
value: variant,
|
|
65
|
+
}));
|
|
66
|
+
return await (0, prompts_1.select)({
|
|
67
|
+
message: 'Select build variant:',
|
|
68
|
+
choices: variantChoices,
|
|
69
|
+
default: config.defaultVariant,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
logger_1.Logger.error('Failed to select build variant:', error);
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=variant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variant.js","sourceRoot":"","sources":["../../src/commands/variant.ts"],"names":[],"mappings":";;AAKA,wCAqDC;AAED,gDA2BC;AAvFD,yCAAsC;AACtC,6DAAyD;AACzD,6DAAyD;AACzD,+CAA2C;AAEpC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,eAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAE1C,qBAAqB;QACrB,MAAM,aAAa,GAAG,8BAAa,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAE1C,yBAAyB;QACzB,MAAM,OAAO,GAAG,MAAM,gCAAc,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,eAAM,CAAC,KAAK,CAAC,oHAAoH,CAAC,CAAC;YACnI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,eAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAErD,eAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QACjE,eAAM,CAAC,IAAI,CAAC,uBAAuB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnE,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE;YACrH,KAAK,EAAE,OAAO;SACf,CAAC,CAAC,CAAC;QAEJ,MAAM,eAAe,GAAG,MAAM,IAAA,gBAAM,EAAC;YACnC,OAAO,EAAE,mCAAmC;YAC5C,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,MAAM,CAAC,cAAc;SAC/B,CAAC,CAAC;QAEH,IAAI,eAAe,KAAK,MAAM,CAAC,cAAc,EAAE,CAAC;YAC9C,eAAM,CAAC,IAAI,CAAC,oBAAoB,eAAe,EAAE,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,gBAAgB;QAChB,MAAM,CAAC,cAAc,GAAG,eAAe,CAAC;QACxC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAE3B,eAAM,CAAC,OAAO,CAAC,qCAAqC,eAAe,EAAE,CAAC,CAAC;IAEzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,8BAAa,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAE1C,MAAM,OAAO,GAAG,MAAM,gCAAc,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAErD,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,KAAK,EAAE,OAAO;SACf,CAAC,CAAC,CAAC;QAEJ,OAAO,MAAM,IAAA,gBAAM,EAAC;YAClB,OAAO,EAAE,uBAAuB;YAChC,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,MAAM,CAAC,cAAc;SAC/B,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { AndroidCliConfig } from './schema';
|
|
2
|
+
export declare class ConfigManager {
|
|
3
|
+
private static instance;
|
|
4
|
+
private config;
|
|
5
|
+
private configPath;
|
|
6
|
+
private projectRoot;
|
|
7
|
+
private constructor();
|
|
8
|
+
static getInstance(projectRoot?: string): ConfigManager;
|
|
9
|
+
load(): Promise<AndroidCliConfig>;
|
|
10
|
+
save(): Promise<void>;
|
|
11
|
+
get(): AndroidCliConfig;
|
|
12
|
+
set(updates: Partial<AndroidCliConfig>): void;
|
|
13
|
+
getProjectPath(): string;
|
|
14
|
+
getDefaultVariant(): string;
|
|
15
|
+
getTerminal(): string;
|
|
16
|
+
getCustomGradleTasks(): string[];
|
|
17
|
+
isBuildCacheEnabled(): boolean;
|
|
18
|
+
getBuildCacheMaxSize(): string;
|
|
19
|
+
shouldClearLogcatOnStart(): boolean;
|
|
20
|
+
shouldColorizeLogcat(): boolean;
|
|
21
|
+
getSelectedDevice(): string | undefined;
|
|
22
|
+
setSelectedDevice(deviceId: string): void;
|
|
23
|
+
exists(): Promise<boolean>;
|
|
24
|
+
getConfigPath(): string;
|
|
25
|
+
private extractValidConfig;
|
|
26
|
+
private autoDetectProjectSettings;
|
|
27
|
+
reset(): Promise<void>;
|
|
28
|
+
validate(): {
|
|
29
|
+
valid: boolean;
|
|
30
|
+
errors: string[];
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=config-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAyC,MAAM,UAAU,CAAC;AAInF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;IAMP,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa;IAOjD,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAiCjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B,GAAG,IAAI,gBAAgB;IAIvB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAI7C,cAAc,IAAI,MAAM;IAIxB,iBAAiB,IAAI,MAAM;IAI3B,WAAW,IAAI,MAAM;IAIrB,oBAAoB,IAAI,MAAM,EAAE;IAIhC,mBAAmB,IAAI,OAAO;IAI9B,oBAAoB,IAAI,MAAM;IAI9B,wBAAwB,IAAI,OAAO;IAInC,oBAAoB,IAAI,OAAO;IAI/B,iBAAiB,IAAI,MAAM,GAAG,SAAS;IAIvC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,kBAAkB;YA4CZ,yBAAyB;IA0BjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,QAAQ,IAAI;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAejD"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ConfigManager = void 0;
|
|
37
|
+
const fs = __importStar(require("fs-extra"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const schema_1 = require("./schema");
|
|
40
|
+
const logger_1 = require("../ui/logger");
|
|
41
|
+
const android_project_1 = require("../core/android-project");
|
|
42
|
+
class ConfigManager {
|
|
43
|
+
constructor(projectRoot = process.cwd()) {
|
|
44
|
+
this.projectRoot = projectRoot;
|
|
45
|
+
this.configPath = path.join(projectRoot, 'droid-cli.json');
|
|
46
|
+
this.config = { ...schema_1.defaultConfig };
|
|
47
|
+
}
|
|
48
|
+
static getInstance(projectRoot) {
|
|
49
|
+
if (!ConfigManager.instance || (projectRoot && projectRoot !== ConfigManager.instance.projectRoot)) {
|
|
50
|
+
ConfigManager.instance = new ConfigManager(projectRoot);
|
|
51
|
+
}
|
|
52
|
+
return ConfigManager.instance;
|
|
53
|
+
}
|
|
54
|
+
async load() {
|
|
55
|
+
try {
|
|
56
|
+
if (await fs.pathExists(this.configPath)) {
|
|
57
|
+
logger_1.Logger.debug(`Loading config from: ${this.configPath}`);
|
|
58
|
+
const configData = await fs.readJson(this.configPath);
|
|
59
|
+
const { error, value } = schema_1.androidCliConfigSchema.validate(configData, {
|
|
60
|
+
allowUnknown: false,
|
|
61
|
+
abortEarly: false,
|
|
62
|
+
});
|
|
63
|
+
if (error) {
|
|
64
|
+
logger_1.Logger.warn('Config validation errors:', error.details.map(d => d.message).join(', '));
|
|
65
|
+
logger_1.Logger.warn('Using default config with valid values merged');
|
|
66
|
+
// Merge valid values with defaults
|
|
67
|
+
this.config = { ...schema_1.defaultConfig, ...this.extractValidConfig(configData) };
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.config = value;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
logger_1.Logger.debug('No config file found, using defaults');
|
|
75
|
+
await this.autoDetectProjectSettings();
|
|
76
|
+
}
|
|
77
|
+
return this.config;
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
logger_1.Logger.error('Error loading config:', error);
|
|
81
|
+
logger_1.Logger.info('Using default configuration');
|
|
82
|
+
return this.config;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async save() {
|
|
86
|
+
try {
|
|
87
|
+
logger_1.Logger.debug(`Saving config to: ${this.configPath}`);
|
|
88
|
+
await fs.ensureDir(path.dirname(this.configPath));
|
|
89
|
+
await fs.writeJson(this.configPath, this.config, { spaces: 2 });
|
|
90
|
+
logger_1.Logger.success('Configuration saved');
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
logger_1.Logger.error('Error saving config:', error);
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
get() {
|
|
98
|
+
return { ...this.config };
|
|
99
|
+
}
|
|
100
|
+
set(updates) {
|
|
101
|
+
this.config = { ...this.config, ...updates };
|
|
102
|
+
}
|
|
103
|
+
getProjectPath() {
|
|
104
|
+
return path.resolve(this.projectRoot, this.config.projectPath);
|
|
105
|
+
}
|
|
106
|
+
getDefaultVariant() {
|
|
107
|
+
return this.config.defaultVariant;
|
|
108
|
+
}
|
|
109
|
+
getTerminal() {
|
|
110
|
+
return this.config.terminal;
|
|
111
|
+
}
|
|
112
|
+
getCustomGradleTasks() {
|
|
113
|
+
return this.config.gradleTasks.custom;
|
|
114
|
+
}
|
|
115
|
+
isBuildCacheEnabled() {
|
|
116
|
+
return this.config.buildCache.enabled;
|
|
117
|
+
}
|
|
118
|
+
getBuildCacheMaxSize() {
|
|
119
|
+
return this.config.buildCache.maxSize;
|
|
120
|
+
}
|
|
121
|
+
shouldClearLogcatOnStart() {
|
|
122
|
+
return this.config.logcat.clearOnStart;
|
|
123
|
+
}
|
|
124
|
+
shouldColorizeLogcat() {
|
|
125
|
+
return this.config.logcat.colorize;
|
|
126
|
+
}
|
|
127
|
+
getSelectedDevice() {
|
|
128
|
+
return this.config.selectedDevice;
|
|
129
|
+
}
|
|
130
|
+
setSelectedDevice(deviceId) {
|
|
131
|
+
this.config.selectedDevice = deviceId;
|
|
132
|
+
}
|
|
133
|
+
async exists() {
|
|
134
|
+
return await fs.pathExists(this.configPath);
|
|
135
|
+
}
|
|
136
|
+
getConfigPath() {
|
|
137
|
+
return this.configPath;
|
|
138
|
+
}
|
|
139
|
+
extractValidConfig(configData) {
|
|
140
|
+
const validConfig = {};
|
|
141
|
+
if (typeof configData.projectPath === 'string') {
|
|
142
|
+
validConfig.projectPath = configData.projectPath;
|
|
143
|
+
}
|
|
144
|
+
if (['debug', 'release'].includes(configData.defaultVariant)) {
|
|
145
|
+
validConfig.defaultVariant = configData.defaultVariant;
|
|
146
|
+
}
|
|
147
|
+
if (typeof configData.terminal === 'string') {
|
|
148
|
+
validConfig.terminal = configData.terminal;
|
|
149
|
+
}
|
|
150
|
+
if (configData.gradleTasks && Array.isArray(configData.gradleTasks.custom)) {
|
|
151
|
+
validConfig.gradleTasks = {
|
|
152
|
+
custom: configData.gradleTasks.custom.filter((task) => typeof task === 'string'),
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
if (configData.buildCache && typeof configData.buildCache === 'object') {
|
|
156
|
+
validConfig.buildCache = {
|
|
157
|
+
enabled: Boolean(configData.buildCache.enabled),
|
|
158
|
+
maxSize: typeof configData.buildCache.maxSize === 'string'
|
|
159
|
+
? configData.buildCache.maxSize
|
|
160
|
+
: schema_1.defaultConfig.buildCache.maxSize,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
if (configData.logcat && typeof configData.logcat === 'object') {
|
|
164
|
+
validConfig.logcat = {
|
|
165
|
+
clearOnStart: Boolean(configData.logcat.clearOnStart),
|
|
166
|
+
colorize: Boolean(configData.logcat.colorize),
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
if (typeof configData.selectedDevice === 'string') {
|
|
170
|
+
validConfig.selectedDevice = configData.selectedDevice;
|
|
171
|
+
}
|
|
172
|
+
return validConfig;
|
|
173
|
+
}
|
|
174
|
+
async autoDetectProjectSettings() {
|
|
175
|
+
try {
|
|
176
|
+
const project = await android_project_1.AndroidProject.detect(this.projectRoot);
|
|
177
|
+
if (project) {
|
|
178
|
+
const projectInfo = project.getInfo();
|
|
179
|
+
if (projectInfo) {
|
|
180
|
+
// Update config with detected project settings
|
|
181
|
+
this.config.projectPath = path.relative(this.projectRoot, projectInfo.rootPath) || './';
|
|
182
|
+
// Set default variant based on available variants
|
|
183
|
+
const variants = project.getBuildVariants();
|
|
184
|
+
if (variants.includes('debug')) {
|
|
185
|
+
this.config.defaultVariant = 'debug';
|
|
186
|
+
}
|
|
187
|
+
else if (variants.length > 0) {
|
|
188
|
+
this.config.defaultVariant = variants[0];
|
|
189
|
+
}
|
|
190
|
+
logger_1.Logger.info('Auto-detected Android project settings');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
logger_1.Logger.debug('Failed to auto-detect project settings:', error);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
async reset() {
|
|
199
|
+
this.config = { ...schema_1.defaultConfig };
|
|
200
|
+
await this.autoDetectProjectSettings();
|
|
201
|
+
await this.save();
|
|
202
|
+
logger_1.Logger.success('Configuration reset to defaults');
|
|
203
|
+
}
|
|
204
|
+
validate() {
|
|
205
|
+
const { error } = schema_1.androidCliConfigSchema.validate(this.config, {
|
|
206
|
+
allowUnknown: false,
|
|
207
|
+
abortEarly: false,
|
|
208
|
+
});
|
|
209
|
+
if (error) {
|
|
210
|
+
return {
|
|
211
|
+
valid: false,
|
|
212
|
+
errors: error.details.map(d => d.message),
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
return { valid: true, errors: [] };
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
exports.ConfigManager = ConfigManager;
|
|
219
|
+
//# sourceMappingURL=config-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Joi from 'joi';
|
|
2
|
+
export interface AndroidCliConfig {
|
|
3
|
+
projectPath: string;
|
|
4
|
+
defaultVariant: string;
|
|
5
|
+
terminal: string;
|
|
6
|
+
gradleTasks: {
|
|
7
|
+
custom: string[];
|
|
8
|
+
};
|
|
9
|
+
buildCache: {
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
maxSize: string;
|
|
12
|
+
};
|
|
13
|
+
logcat: {
|
|
14
|
+
clearOnStart: boolean;
|
|
15
|
+
colorize: boolean;
|
|
16
|
+
};
|
|
17
|
+
selectedDevice?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const androidCliConfigSchema: Joi.ObjectSchema<AndroidCliConfig>;
|
|
20
|
+
export declare const defaultConfig: AndroidCliConfig;
|
|
21
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,sBAAsB,oCAgBjC,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,gBAe3B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.defaultConfig = exports.androidCliConfigSchema = void 0;
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
|
+
exports.androidCliConfigSchema = joi_1.default.object({
|
|
9
|
+
projectPath: joi_1.default.string().required().description('Path to the Android project directory'),
|
|
10
|
+
defaultVariant: joi_1.default.string().valid('debug', 'release').default('debug').description('Default build variant'),
|
|
11
|
+
terminal: joi_1.default.string().default('auto').description('Terminal application to use for logcat'),
|
|
12
|
+
gradleTasks: joi_1.default.object({
|
|
13
|
+
custom: joi_1.default.array().items(joi_1.default.string()).default([]).description('Custom gradle tasks'),
|
|
14
|
+
}).default({ custom: [] }),
|
|
15
|
+
buildCache: joi_1.default.object({
|
|
16
|
+
enabled: joi_1.default.boolean().default(true).description('Enable build caching'),
|
|
17
|
+
maxSize: joi_1.default.string().default('1GB').description('Maximum cache size'),
|
|
18
|
+
}).default({ enabled: true, maxSize: '1GB' }),
|
|
19
|
+
logcat: joi_1.default.object({
|
|
20
|
+
clearOnStart: joi_1.default.boolean().default(true).description('Clear logcat on start'),
|
|
21
|
+
colorize: joi_1.default.boolean().default(true).description('Colorize logcat output'),
|
|
22
|
+
}).default({ clearOnStart: true, colorize: true }),
|
|
23
|
+
selectedDevice: joi_1.default.string().optional().description('Last selected device ID'),
|
|
24
|
+
});
|
|
25
|
+
exports.defaultConfig = {
|
|
26
|
+
projectPath: './app',
|
|
27
|
+
defaultVariant: 'debug',
|
|
28
|
+
terminal: 'auto',
|
|
29
|
+
gradleTasks: {
|
|
30
|
+
custom: [],
|
|
31
|
+
},
|
|
32
|
+
buildCache: {
|
|
33
|
+
enabled: true,
|
|
34
|
+
maxSize: '1GB',
|
|
35
|
+
},
|
|
36
|
+
logcat: {
|
|
37
|
+
clearOnStart: true,
|
|
38
|
+
colorize: true,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAoBT,QAAA,sBAAsB,GAAG,aAAG,CAAC,MAAM,CAAmB;IACjE,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,uCAAuC,CAAC;IACzF,cAAc,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC;IAC5G,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,wCAAwC,CAAC;IAC5F,WAAW,EAAE,aAAG,CAAC,MAAM,CAAC;QACtB,MAAM,EAAE,aAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC;KACvF,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1B,UAAU,EAAE,aAAG,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC;QACxE,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC;KACvE,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7C,MAAM,EAAE,aAAG,CAAC,MAAM,CAAC;QACjB,YAAY,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC;QAC9E,QAAQ,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC;KAC5E,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClD,cAAc,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,yBAAyB,CAAC;CAC/E,CAAC,CAAC;AAEU,QAAA,aAAa,GAAqB;IAC7C,WAAW,EAAE,OAAO;IACpB,cAAc,EAAE,OAAO;IACvB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE;QACX,MAAM,EAAE,EAAE;KACX;IACD,UAAU,EAAE;QACV,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK;KACf;IACD,MAAM,EAAE;QACN,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;KACf;CACF,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export interface InstallResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
error?: string;
|
|
4
|
+
errorType?: 'INSUFFICIENT_STORAGE' | 'DUPLICATE_PACKAGE' | 'PERMISSION_DENIED' | 'INVALID_APK' | 'UNKNOWN';
|
|
5
|
+
suggestion?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface AndroidDevice {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
state: 'device' | 'offline' | 'unauthorized';
|
|
11
|
+
type: 'emulator' | 'device';
|
|
12
|
+
apiLevel?: number;
|
|
13
|
+
model?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface AvailableEmulator {
|
|
16
|
+
name: string;
|
|
17
|
+
displayName: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class AdbManager {
|
|
20
|
+
private static instance;
|
|
21
|
+
private devices;
|
|
22
|
+
static getInstance(): AdbManager;
|
|
23
|
+
checkAdbAvailable(): Promise<boolean>;
|
|
24
|
+
getDevices(): Promise<AndroidDevice[]>;
|
|
25
|
+
private parseDevicesList;
|
|
26
|
+
private getDeviceName;
|
|
27
|
+
private getDeviceProperties;
|
|
28
|
+
installApk(deviceId: string, apkPath: string): Promise<InstallResult>;
|
|
29
|
+
private analyzeInstallError;
|
|
30
|
+
uninstallApp(deviceId: string, packageName: string): Promise<boolean>;
|
|
31
|
+
getStorageInfo(deviceId: string): Promise<{
|
|
32
|
+
total: string;
|
|
33
|
+
available: string;
|
|
34
|
+
} | null>;
|
|
35
|
+
private formatBytes;
|
|
36
|
+
launchApp(deviceId: string, packageName: string, activityName?: string): Promise<boolean>;
|
|
37
|
+
private getMainActivity;
|
|
38
|
+
private activityExists;
|
|
39
|
+
clearAppData(deviceId: string, packageName: string): Promise<boolean>;
|
|
40
|
+
getDeviceById(deviceId: string): AndroidDevice | null;
|
|
41
|
+
getAvailableDevices(): AndroidDevice[];
|
|
42
|
+
getPhysicalDevices(): AndroidDevice[];
|
|
43
|
+
getRunningEmulators(): AndroidDevice[];
|
|
44
|
+
getAvailableEmulators(): Promise<AvailableEmulator[]>;
|
|
45
|
+
startEmulator(emulatorName: string): Promise<boolean>;
|
|
46
|
+
checkEmulatorCommand(): Promise<boolean>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=adb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adb.d.ts","sourceRoot":"","sources":["../../src/core/adb.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,aAAa,GAAG,SAAS,CAAC;IAC3G,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAC;IAC7C,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa;IACpC,OAAO,CAAC,OAAO,CAAuB;IAEtC,MAAM,CAAC,WAAW,IAAI,UAAU;IAO1B,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAQrC,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAwB9B,gBAAgB;YA4ChB,aAAa;YAiBb,mBAAmB;IAiC3B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAsC3E,OAAO,CAAC,mBAAmB;IA+CrB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BrE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAiC5F,OAAO,CAAC,WAAW;IAQb,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAkCjF,eAAe;YAiCf,cAAc;IAatB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0B3E,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAIrD,mBAAmB,IAAI,aAAa,EAAE;IAItC,kBAAkB,IAAI,aAAa,EAAE;IAIrC,mBAAmB,IAAI,aAAa,EAAE;IAIhC,qBAAqB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA8BrD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6CrD,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;CAG/C"}
|