mobileboost-cli 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/.output/nitro.json +15 -0
- package/.output/public/assets/index-DcK8FECE.css +1 -0
- package/.output/public/assets/index-Deils465.js +444 -0
- package/.output/public/assets/main-5WzLXT-A.js +51 -0
- package/.output/public/assets/roboto-cyrillic-ext-wght-normal-3VVPul60.woff2 +0 -0
- package/.output/public/assets/roboto-cyrillic-wght-normal-B1tIhOr4.woff2 +0 -0
- package/.output/public/assets/roboto-greek-ext-wght-normal-DnPa8eh0.woff2 +0 -0
- package/.output/public/assets/roboto-greek-wght-normal-iaUSDqqS.woff2 +0 -0
- package/.output/public/assets/roboto-latin-ext-wght-normal-Dqr_DJ6L.woff2 +0 -0
- package/.output/public/assets/roboto-latin-wght-normal-CHnqiQTt.woff2 +0 -0
- package/.output/public/assets/roboto-math-wght-normal-CBNGtO38.woff2 +0 -0
- package/.output/public/assets/roboto-symbols-wght-normal-Bm5C9Z0M.woff2 +0 -0
- package/.output/public/assets/roboto-vietnamese-wght-normal-24ctNiOc.woff2 +0 -0
- package/.output/server/chunks/_/_tanstack-start-manifest_v-Chz34YFq.mjs +1 -0
- package/.output/server/chunks/_/actions-2SMY1JO3.mjs +1 -0
- package/.output/server/chunks/_/adb-CsX2v8FE.mjs +1 -0
- package/.output/server/chunks/_/adb-client-DwefjXbe.mjs +2 -0
- package/.output/server/chunks/_/agent-CeaBVldB.mjs +1 -0
- package/.output/server/chunks/_/ai-client-BtI1TeHN.mjs +1 -0
- package/.output/server/chunks/_/appium-BbkeYpmk.mjs +1 -0
- package/.output/server/chunks/_/appium-client-D-NjeB35.mjs +1 -0
- package/.output/server/chunks/_/cache-C5L90tGD.mjs +1 -0
- package/.output/server/chunks/_/client-CzCEo8ab.mjs +1 -0
- package/.output/server/chunks/_/describe-NXd8kuzS.mjs +1 -0
- package/.output/server/chunks/_/device-8ONaG49P.mjs +1 -0
- package/.output/server/chunks/_/files-CIdgnUJn.mjs +1 -0
- package/.output/server/chunks/_/hierarchy-Q35yGKlr.mjs +1 -0
- package/.output/server/chunks/_/hierarchy-helpers-DF8QSYE6.mjs +1 -0
- package/.output/server/chunks/_/index-BPmuBr-n.mjs +426 -0
- package/.output/server/chunks/_/ios-client-1xTZzFD8.mjs +1 -0
- package/.output/server/chunks/_/list-Dq_Nh07i.mjs +1 -0
- package/.output/server/chunks/_/router-vxnEMbKX.mjs +1 -0
- package/.output/server/chunks/_/screenshot-BD59si87.mjs +1 -0
- package/.output/server/chunks/_/server.mjs +3 -0
- package/.output/server/chunks/_/start-BClswEUm.mjs +1 -0
- package/.output/server/chunks/_/step-CEQtT3SD.mjs +1 -0
- package/.output/server/chunks/_/stores-C1dCcTeV.mjs +1 -0
- package/.output/server/index.mjs +7 -0
- package/.output/server/package.json +233 -0
- package/README.md +85 -0
- package/bin/mobileboost +2 -0
- package/dist/cli.js +28 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/doctor.js +77 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.js +44 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/studio.js +89 -0
- package/dist/commands/studio.js.map +1 -0
- package/package.json +101 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import inquirer from 'inquirer';
|
|
5
|
+
export async function init() {
|
|
6
|
+
console.log(chalk.blue('Initializing MobileBoost...'));
|
|
7
|
+
const configPath = path.join(process.cwd(), 'mobileboost.config.json');
|
|
8
|
+
const testsDir = path.join(process.cwd(), 'tests');
|
|
9
|
+
if (fs.existsSync(configPath)) {
|
|
10
|
+
const { overwrite } = await inquirer.prompt([{
|
|
11
|
+
type: 'confirm',
|
|
12
|
+
name: 'overwrite',
|
|
13
|
+
message: 'mobileboost.config.json already exists. Overwrite?',
|
|
14
|
+
default: false
|
|
15
|
+
}]);
|
|
16
|
+
if (!overwrite) {
|
|
17
|
+
console.log(chalk.yellow('Skipping initialization.'));
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const { apiKey } = await inquirer.prompt([{
|
|
22
|
+
type: 'input',
|
|
23
|
+
name: 'apiKey',
|
|
24
|
+
message: 'Enter your MobileBoost API Key (Org ID):',
|
|
25
|
+
validate: (input) => input.length > 0 ? true : 'API Key is required'
|
|
26
|
+
}]);
|
|
27
|
+
const defaultConfig = {
|
|
28
|
+
apiKey,
|
|
29
|
+
testDir: './tests',
|
|
30
|
+
driver: 'appium',
|
|
31
|
+
port: 8877
|
|
32
|
+
};
|
|
33
|
+
try {
|
|
34
|
+
await fs.writeJSON(configPath, defaultConfig, { spaces: 2 });
|
|
35
|
+
console.log(chalk.green(`Created ${configPath}`));
|
|
36
|
+
await fs.ensureDir(testsDir);
|
|
37
|
+
console.log(chalk.green(`Created ${testsDir} directory`));
|
|
38
|
+
console.log(chalk.bold('Initialization complete!'));
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
console.error(chalk.red('Error initializing project:'), err);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,IAAI;IACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,oDAAoD;gBAC7D,OAAO,EAAE,KAAK;aACjB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACtD,OAAO;QACX,CAAC;IACL,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,0CAA0C;YACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;SACvE,CAAC,CAAC,CAAC;IAEJ,MAAM,aAAa,GAAG;QAClB,MAAM;QACN,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;KACb,CAAC;IAEF,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC,CAAC;QAElD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,QAAQ,YAAY,CAAC,CAAC,CAAC;QAE1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import { spawn } from 'child_process';
|
|
5
|
+
import net from 'net';
|
|
6
|
+
// Helper to check if port is in use
|
|
7
|
+
function isPortInUse(port) {
|
|
8
|
+
return new Promise((resolve) => {
|
|
9
|
+
const server = net.createServer();
|
|
10
|
+
server.once('error', (err) => {
|
|
11
|
+
if (err.code === 'EADDRINUSE') {
|
|
12
|
+
resolve(true);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
resolve(false);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
server.once('listening', () => {
|
|
19
|
+
server.close();
|
|
20
|
+
resolve(false);
|
|
21
|
+
});
|
|
22
|
+
server.listen(port);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
// Start the TanStack Start SSR server from the build output if available.
|
|
26
|
+
// Fallback to the previous static server + tRPC if the build output is missing.
|
|
27
|
+
export async function studio() {
|
|
28
|
+
const defaultPort = 8877;
|
|
29
|
+
const port = Number(process.env.PORT || process.env.MB_STUDIO_PORT || defaultPort);
|
|
30
|
+
// Check and start Appium
|
|
31
|
+
const appiumPort = 4723;
|
|
32
|
+
if (await isPortInUse(appiumPort)) {
|
|
33
|
+
console.log(chalk.green(`Appium is already running on port ${appiumPort}.`));
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log(chalk.blue(`Starting Appium on port ${appiumPort}...`));
|
|
37
|
+
try {
|
|
38
|
+
const appium = spawn('appium', [], {
|
|
39
|
+
stdio: 'ignore', // Run in background, don't clutter output? Or inherit? User might want logs.
|
|
40
|
+
// Let's use ignore and detach if we want it to survive?
|
|
41
|
+
// But usually we want it to die with studio?
|
|
42
|
+
// Let's use inherit for now but maybe prefixed?
|
|
43
|
+
detached: false,
|
|
44
|
+
shell: true
|
|
45
|
+
});
|
|
46
|
+
console.log(chalk.green('Appium started.'));
|
|
47
|
+
appium.on('error', (err) => {
|
|
48
|
+
console.error(chalk.red('Failed to start Appium:'), err);
|
|
49
|
+
});
|
|
50
|
+
// Kill appium when process exits
|
|
51
|
+
process.on('SIGINT', () => appium.kill());
|
|
52
|
+
process.on('SIGTERM', () => appium.kill());
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
console.error(chalk.red('Could not start Appium. Make sure it is installed (npm install -g appium).'));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const serverEntry = path.resolve(process.cwd(), '.output/server/index.mjs');
|
|
59
|
+
if (fs.existsSync(serverEntry)) {
|
|
60
|
+
console.log(chalk.green('Detected TanStack Start build output.'));
|
|
61
|
+
console.log(chalk.gray(`Starting SSR server from ${serverEntry}`));
|
|
62
|
+
const child = spawn(process.execPath, [serverEntry], {
|
|
63
|
+
env: { ...process.env, PORT: String(port) },
|
|
64
|
+
stdio: 'inherit',
|
|
65
|
+
});
|
|
66
|
+
const stop = (signal) => {
|
|
67
|
+
console.log(chalk.yellow(`\nReceived ${signal}. Shutting down SSR server...`));
|
|
68
|
+
child.kill(signal);
|
|
69
|
+
};
|
|
70
|
+
process.on('SIGINT', stop);
|
|
71
|
+
process.on('SIGTERM', stop);
|
|
72
|
+
child.on('close', (code, signal) => {
|
|
73
|
+
if (signal) {
|
|
74
|
+
console.log(chalk.yellow(`SSR server stopped by signal: ${signal}`));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
console.log(chalk.gray(`SSR server exited with code ${code}`));
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
child.on('error', (err) => {
|
|
81
|
+
console.error(chalk.red('Failed to start SSR server:'), err);
|
|
82
|
+
});
|
|
83
|
+
console.log(chalk.green(`\nMobileBoost Studio (SSR) is running at:`));
|
|
84
|
+
console.log(chalk.cyan(`➜ http://localhost:${port}`));
|
|
85
|
+
console.log(chalk.gray('\nPress Ctrl+C to stop.'));
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=studio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.js","sourceRoot":"","sources":["../../src/commands/studio.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mobileboost-cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "CLI for agentic mobile testing",
|
|
5
|
+
"sideEffects": false,
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/cli.js",
|
|
8
|
+
"bin": {
|
|
9
|
+
"mobileboost": "./bin/mobileboost"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"dev": "vite dev",
|
|
13
|
+
"build": "vite build && npm run build:cli",
|
|
14
|
+
"build:cli": "tsc -p tsconfig.cli.json",
|
|
15
|
+
"preview": "vite preview",
|
|
16
|
+
"start": "node .output/server/index.mjs",
|
|
17
|
+
"start:cli": "node dist/cli.js",
|
|
18
|
+
"dev:cli": "ts-node src/cli.ts",
|
|
19
|
+
"prepublishOnly": "npm run build",
|
|
20
|
+
"postinstall": "cd .output/server && npm install --production"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"bin",
|
|
24
|
+
"dist",
|
|
25
|
+
".output/public",
|
|
26
|
+
".output/server/index.mjs",
|
|
27
|
+
".output/server/chunks",
|
|
28
|
+
".output/server/package.json",
|
|
29
|
+
".output/nitro.json"
|
|
30
|
+
],
|
|
31
|
+
"keywords": [
|
|
32
|
+
"cli",
|
|
33
|
+
"mobile",
|
|
34
|
+
"testing",
|
|
35
|
+
"appium",
|
|
36
|
+
"agentic",
|
|
37
|
+
"automation",
|
|
38
|
+
"ai",
|
|
39
|
+
"gptdriver",
|
|
40
|
+
"mobileboost"
|
|
41
|
+
],
|
|
42
|
+
"author": "",
|
|
43
|
+
"license": "ISC",
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@anthropic-ai/sdk": "^0.71.2",
|
|
46
|
+
"@emotion/cache": "^11.14.0",
|
|
47
|
+
"@emotion/react": "^11.14.0",
|
|
48
|
+
"@emotion/styled": "^11.14.0",
|
|
49
|
+
"@fontsource-variable/roboto": "^5.2.9",
|
|
50
|
+
"@google/generative-ai": "^0.24.1",
|
|
51
|
+
"@hello-pangea/dnd": "18.0.1",
|
|
52
|
+
"@mui/icons-material": "^7.3.6",
|
|
53
|
+
"@mui/material": "^7.3.6",
|
|
54
|
+
"@tanstack/eslint-config": "^0.3.4",
|
|
55
|
+
"@tanstack/react-devtools": "^0.8.4",
|
|
56
|
+
"@tanstack/react-form": "^1.27.3",
|
|
57
|
+
"@tanstack/react-form-devtools": "^0.2.6",
|
|
58
|
+
"@tanstack/react-query": "^5.90.0",
|
|
59
|
+
"@tanstack/react-query-devtools": "^5.90.0",
|
|
60
|
+
"@tanstack/react-router": "^1.140.1",
|
|
61
|
+
"@tanstack/react-router-devtools": "^1.140.1",
|
|
62
|
+
"@tanstack/react-router-ssr-query": "^1.140.1",
|
|
63
|
+
"@tanstack/react-start": "^1.140.3",
|
|
64
|
+
"@tanstack/react-store": "^0.8.0",
|
|
65
|
+
"chalk": "^5.6.2",
|
|
66
|
+
"commander": "^11.1.0",
|
|
67
|
+
"cors": "^2.8.5",
|
|
68
|
+
"execa": "^5.1.1",
|
|
69
|
+
"express": "^4.18.2",
|
|
70
|
+
"fs-extra": "^11.1.1",
|
|
71
|
+
"inquirer": "^8.2.5",
|
|
72
|
+
"nitro": "^3.0.1-alpha.1",
|
|
73
|
+
"open": "^11.0.0",
|
|
74
|
+
"ora": "^5.4.1",
|
|
75
|
+
"react": "^19.0.0",
|
|
76
|
+
"react-dom": "^19.0.0",
|
|
77
|
+
"redaxios": "^0.5.1",
|
|
78
|
+
"sharp": "^0.34.5",
|
|
79
|
+
"webdriverio": "^9.21.0",
|
|
80
|
+
"xml2js": "^0.6.2",
|
|
81
|
+
"zod": "^4.1.13"
|
|
82
|
+
},
|
|
83
|
+
"devDependencies": {
|
|
84
|
+
"@tanstack/devtools-vite": "^0.3.12",
|
|
85
|
+
"@types/cors": "^2.8.19",
|
|
86
|
+
"@types/express": "^4.17.21",
|
|
87
|
+
"@types/fs-extra": "^11.0.4",
|
|
88
|
+
"@types/inquirer": "^9.0.7",
|
|
89
|
+
"@types/node": "^22.5.4",
|
|
90
|
+
"@types/open": "^6.1.0",
|
|
91
|
+
"@types/react": "^19.0.8",
|
|
92
|
+
"@types/react-dom": "^19.0.3",
|
|
93
|
+
"@types/xml2js": "^0.4.14",
|
|
94
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
95
|
+
"postcss": "^8.5.1",
|
|
96
|
+
"ts-node": "^10.9.1",
|
|
97
|
+
"typescript": "^5.7.2",
|
|
98
|
+
"vite": "^7.1.7",
|
|
99
|
+
"vite-tsconfig-paths": "^5.1.4"
|
|
100
|
+
}
|
|
101
|
+
}
|