@testdroid-ai/cli 0.1.2
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/dist/adb/adb-path-resolver.d.ts +6 -0
- package/dist/adb/adb-path-resolver.d.ts.map +1 -0
- package/dist/adb/adb-path-resolver.js +93 -0
- package/dist/adb/adb-path-resolver.js.map +1 -0
- package/dist/adb/adb-shell.d.ts +29 -0
- package/dist/adb/adb-shell.d.ts.map +1 -0
- package/dist/adb/adb-shell.js +128 -0
- package/dist/adb/adb-shell.js.map +1 -0
- package/dist/adb/detector.d.ts +12 -0
- package/dist/adb/detector.d.ts.map +1 -0
- package/dist/adb/detector.js +44 -0
- package/dist/adb/detector.js.map +1 -0
- package/dist/adb/device-tracker.d.ts +23 -0
- package/dist/adb/device-tracker.d.ts.map +1 -0
- package/dist/adb/device-tracker.js +134 -0
- package/dist/adb/device-tracker.js.map +1 -0
- package/dist/adb/emulator-detector.d.ts +11 -0
- package/dist/adb/emulator-detector.d.ts.map +1 -0
- package/dist/adb/emulator-detector.js +54 -0
- package/dist/adb/emulator-detector.js.map +1 -0
- package/dist/appium/health-check.d.ts +6 -0
- package/dist/appium/health-check.d.ts.map +1 -0
- package/dist/appium/health-check.js +61 -0
- package/dist/appium/health-check.js.map +1 -0
- package/dist/appium/session-manager.d.ts +15 -0
- package/dist/appium/session-manager.d.ts.map +1 -0
- package/dist/appium/session-manager.js +82 -0
- package/dist/appium/session-manager.js.map +1 -0
- package/dist/auth/credential-store.d.ts +31 -0
- package/dist/auth/credential-store.d.ts.map +1 -0
- package/dist/auth/credential-store.js +154 -0
- package/dist/auth/credential-store.js.map +1 -0
- package/dist/auth/pairing-auth.d.ts +26 -0
- package/dist/auth/pairing-auth.d.ts.map +1 -0
- package/dist/auth/pairing-auth.js +177 -0
- package/dist/auth/pairing-auth.js.map +1 -0
- package/dist/auth/token-manager.d.ts +20 -0
- package/dist/auth/token-manager.d.ts.map +1 -0
- package/dist/auth/token-manager.js +101 -0
- package/dist/auth/token-manager.js.map +1 -0
- package/dist/commands/connect.d.ts +9 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +270 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/devices.d.ts +2 -0
- package/dist/commands/devices.d.ts.map +1 -0
- package/dist/commands/devices.js +52 -0
- package/dist/commands/devices.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +214 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/mirror.d.ts +2 -0
- package/dist/commands/mirror.d.ts.map +1 -0
- package/dist/commands/mirror.js +77 -0
- package/dist/commands/mirror.js.map +1 -0
- package/dist/commands/prompt.d.ts +12 -0
- package/dist/commands/prompt.d.ts.map +1 -0
- package/dist/commands/prompt.js +174 -0
- package/dist/commands/prompt.js.map +1 -0
- package/dist/commands/record.d.ts +7 -0
- package/dist/commands/record.d.ts.map +1 -0
- package/dist/commands/record.js +129 -0
- package/dist/commands/record.js.map +1 -0
- package/dist/commands/run.d.ts +16 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +271 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/setup.d.ts +6 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +50 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +32 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/healing/ai-adapter.d.ts +44 -0
- package/dist/healing/ai-adapter.d.ts.map +1 -0
- package/dist/healing/ai-adapter.js +87 -0
- package/dist/healing/ai-adapter.js.map +1 -0
- package/dist/healing/healer.d.ts +109 -0
- package/dist/healing/healer.d.ts.map +1 -0
- package/dist/healing/healer.js +475 -0
- package/dist/healing/healer.js.map +1 -0
- package/dist/healing/similarity.d.ts +63 -0
- package/dist/healing/similarity.d.ts.map +1 -0
- package/dist/healing/similarity.js +172 -0
- package/dist/healing/similarity.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +107 -0
- package/dist/index.js.map +1 -0
- package/dist/recording/capture-strategies/capture-strategy.interface.d.ts +6 -0
- package/dist/recording/capture-strategies/capture-strategy.interface.d.ts.map +1 -0
- package/dist/recording/capture-strategies/capture-strategy.interface.js +3 -0
- package/dist/recording/capture-strategies/capture-strategy.interface.js.map +1 -0
- package/dist/recording/capture-strategies/getevent.strategy.d.ts +27 -0
- package/dist/recording/capture-strategies/getevent.strategy.d.ts.map +1 -0
- package/dist/recording/capture-strategies/getevent.strategy.js +163 -0
- package/dist/recording/capture-strategies/getevent.strategy.js.map +1 -0
- package/dist/recording/capture-strategies/key-capture.strategy.d.ts +16 -0
- package/dist/recording/capture-strategies/key-capture.strategy.d.ts.map +1 -0
- package/dist/recording/capture-strategies/key-capture.strategy.js +67 -0
- package/dist/recording/capture-strategies/key-capture.strategy.js.map +1 -0
- package/dist/recording/capture-strategies/logcat-capture.strategy.d.ts +32 -0
- package/dist/recording/capture-strategies/logcat-capture.strategy.d.ts.map +1 -0
- package/dist/recording/capture-strategies/logcat-capture.strategy.js +176 -0
- package/dist/recording/capture-strategies/logcat-capture.strategy.js.map +1 -0
- package/dist/recording/confidence-scorer.d.ts +13 -0
- package/dist/recording/confidence-scorer.d.ts.map +1 -0
- package/dist/recording/confidence-scorer.js +34 -0
- package/dist/recording/confidence-scorer.js.map +1 -0
- package/dist/recording/event-capture.d.ts +40 -0
- package/dist/recording/event-capture.d.ts.map +1 -0
- package/dist/recording/event-capture.js +168 -0
- package/dist/recording/event-capture.js.map +1 -0
- package/dist/recording/recorder.d.ts +32 -0
- package/dist/recording/recorder.d.ts.map +1 -0
- package/dist/recording/recorder.js +107 -0
- package/dist/recording/recorder.js.map +1 -0
- package/dist/runner/adb-executor.d.ts +116 -0
- package/dist/runner/adb-executor.d.ts.map +1 -0
- package/dist/runner/adb-executor.js +323 -0
- package/dist/runner/adb-executor.js.map +1 -0
- package/dist/runner/appium-executor.d.ts +35 -0
- package/dist/runner/appium-executor.d.ts.map +1 -0
- package/dist/runner/appium-executor.js +191 -0
- package/dist/runner/appium-executor.js.map +1 -0
- package/dist/runner/parse-strategies/appium-default.strategy.d.ts +12 -0
- package/dist/runner/parse-strategies/appium-default.strategy.d.ts.map +1 -0
- package/dist/runner/parse-strategies/appium-default.strategy.js +342 -0
- package/dist/runner/parse-strategies/appium-default.strategy.js.map +1 -0
- package/dist/runner/parse-strategies/index.d.ts +7 -0
- package/dist/runner/parse-strategies/index.d.ts.map +1 -0
- package/dist/runner/parse-strategies/index.js +14 -0
- package/dist/runner/parse-strategies/index.js.map +1 -0
- package/dist/runner/parse-strategies/java.strategy.d.ts +8 -0
- package/dist/runner/parse-strategies/java.strategy.d.ts.map +1 -0
- package/dist/runner/parse-strategies/java.strategy.js +170 -0
- package/dist/runner/parse-strategies/java.strategy.js.map +1 -0
- package/dist/runner/parse-strategies/maestro.strategy.d.ts +8 -0
- package/dist/runner/parse-strategies/maestro.strategy.d.ts.map +1 -0
- package/dist/runner/parse-strategies/maestro.strategy.js +105 -0
- package/dist/runner/parse-strategies/maestro.strategy.js.map +1 -0
- package/dist/runner/parse-strategies/python.strategy.d.ts +8 -0
- package/dist/runner/parse-strategies/python.strategy.d.ts.map +1 -0
- package/dist/runner/parse-strategies/python.strategy.js +140 -0
- package/dist/runner/parse-strategies/python.strategy.js.map +1 -0
- package/dist/runner/parse-strategies/robot.strategy.d.ts +8 -0
- package/dist/runner/parse-strategies/robot.strategy.d.ts.map +1 -0
- package/dist/runner/parse-strategies/robot.strategy.js +81 -0
- package/dist/runner/parse-strategies/robot.strategy.js.map +1 -0
- package/dist/runner/parse-strategies/types.d.ts +17 -0
- package/dist/runner/parse-strategies/types.d.ts.map +1 -0
- package/dist/runner/parse-strategies/types.js +3 -0
- package/dist/runner/parse-strategies/types.js.map +1 -0
- package/dist/runner/parse-strategies/utils.d.ts +39 -0
- package/dist/runner/parse-strategies/utils.d.ts.map +1 -0
- package/dist/runner/parse-strategies/utils.js +217 -0
- package/dist/runner/parse-strategies/utils.js.map +1 -0
- package/dist/runner/script-parser.d.ts +43 -0
- package/dist/runner/script-parser.d.ts.map +1 -0
- package/dist/runner/script-parser.js +68 -0
- package/dist/runner/script-parser.js.map +1 -0
- package/dist/runner/selector-resolver.d.ts +87 -0
- package/dist/runner/selector-resolver.d.ts.map +1 -0
- package/dist/runner/selector-resolver.js +206 -0
- package/dist/runner/selector-resolver.js.map +1 -0
- package/dist/runner/step-executor.d.ts +112 -0
- package/dist/runner/step-executor.d.ts.map +1 -0
- package/dist/runner/step-executor.js +518 -0
- package/dist/runner/step-executor.js.map +1 -0
- package/dist/runner/test-runner.d.ts +89 -0
- package/dist/runner/test-runner.d.ts.map +1 -0
- package/dist/runner/test-runner.js +320 -0
- package/dist/runner/test-runner.js.map +1 -0
- package/dist/scrcpy/launcher.d.ts +16 -0
- package/dist/scrcpy/launcher.d.ts.map +1 -0
- package/dist/scrcpy/launcher.js +87 -0
- package/dist/scrcpy/launcher.js.map +1 -0
- package/dist/services/device-poller.d.ts +10 -0
- package/dist/services/device-poller.d.ts.map +1 -0
- package/dist/services/device-poller.js +44 -0
- package/dist/services/device-poller.js.map +1 -0
- package/dist/services/execution-manager.d.ts +18 -0
- package/dist/services/execution-manager.d.ts.map +1 -0
- package/dist/services/execution-manager.js +185 -0
- package/dist/services/execution-manager.js.map +1 -0
- package/dist/services/recording-manager.d.ts +13 -0
- package/dist/services/recording-manager.d.ts.map +1 -0
- package/dist/services/recording-manager.js +234 -0
- package/dist/services/recording-manager.js.map +1 -0
- package/dist/setup/adb-installer.d.ts +8 -0
- package/dist/setup/adb-installer.d.ts.map +1 -0
- package/dist/setup/adb-installer.js +115 -0
- package/dist/setup/adb-installer.js.map +1 -0
- package/dist/setup/appium-installer.d.ts +8 -0
- package/dist/setup/appium-installer.d.ts.map +1 -0
- package/dist/setup/appium-installer.js +113 -0
- package/dist/setup/appium-installer.js.map +1 -0
- package/dist/setup/base-installer.d.ts +33 -0
- package/dist/setup/base-installer.d.ts.map +1 -0
- package/dist/setup/base-installer.js +170 -0
- package/dist/setup/base-installer.js.map +1 -0
- package/dist/setup/build-tools-installer.d.ts +8 -0
- package/dist/setup/build-tools-installer.d.ts.map +1 -0
- package/dist/setup/build-tools-installer.js +109 -0
- package/dist/setup/build-tools-installer.js.map +1 -0
- package/dist/setup/java-installer.d.ts +8 -0
- package/dist/setup/java-installer.d.ts.map +1 -0
- package/dist/setup/java-installer.js +132 -0
- package/dist/setup/java-installer.js.map +1 -0
- package/dist/setup/paths.d.ts +12 -0
- package/dist/setup/paths.d.ts.map +1 -0
- package/dist/setup/paths.js +90 -0
- package/dist/setup/paths.js.map +1 -0
- package/dist/setup/scrcpy-installer.d.ts +8 -0
- package/dist/setup/scrcpy-installer.d.ts.map +1 -0
- package/dist/setup/scrcpy-installer.js +143 -0
- package/dist/setup/scrcpy-installer.js.map +1 -0
- package/dist/setup/setup-manager.d.ts +18 -0
- package/dist/setup/setup-manager.d.ts.map +1 -0
- package/dist/setup/setup-manager.js +113 -0
- package/dist/setup/setup-manager.js.map +1 -0
- package/dist/ws/socket.d.ts +38 -0
- package/dist/ws/socket.d.ts.map +1 -0
- package/dist/ws/socket.js +91 -0
- package/dist/ws/socket.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,191 @@
|
|
|
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.AppiumExecutor = void 0;
|
|
37
|
+
/**
|
|
38
|
+
* Executor de passos de teste via Appium/WebDriverIO.
|
|
39
|
+
*
|
|
40
|
+
* Conecta a um Appium server e executa acoes usando W3C WebDriver protocol.
|
|
41
|
+
* Todos os imports de webdriverio sao dinamicos (Decision D2).
|
|
42
|
+
*/
|
|
43
|
+
class AppiumExecutor {
|
|
44
|
+
serial;
|
|
45
|
+
appiumUrl;
|
|
46
|
+
driver = null;
|
|
47
|
+
constructor(serial, appiumUrl) {
|
|
48
|
+
this.serial = serial;
|
|
49
|
+
this.appiumUrl = appiumUrl;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Conecta ao Appium server e cria sessao WebDriver.
|
|
53
|
+
*/
|
|
54
|
+
async connect() {
|
|
55
|
+
const { remote } = await Promise.resolve().then(() => __importStar(require('webdriverio')));
|
|
56
|
+
const parsed = new URL(this.appiumUrl);
|
|
57
|
+
this.driver = await remote({
|
|
58
|
+
hostname: parsed.hostname,
|
|
59
|
+
port: Number(parsed.port) || 4723,
|
|
60
|
+
path: '/',
|
|
61
|
+
capabilities: {
|
|
62
|
+
platformName: 'Android',
|
|
63
|
+
'appium:automationName': 'UiAutomator2',
|
|
64
|
+
'appium:udid': this.serial,
|
|
65
|
+
'appium:noReset': true,
|
|
66
|
+
'appium:autoLaunch': false,
|
|
67
|
+
'appium:newCommandTimeout': 600,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Executa um passo de teste individual via WebDriverIO.
|
|
73
|
+
* Acessa parametros via step.params (Decision D4).
|
|
74
|
+
*/
|
|
75
|
+
async executeStep(step) {
|
|
76
|
+
const start = Date.now();
|
|
77
|
+
const p = step.params;
|
|
78
|
+
try {
|
|
79
|
+
switch (step.action) {
|
|
80
|
+
case 'tap':
|
|
81
|
+
if (p.selector) {
|
|
82
|
+
const el = await this.driver.$(`android=new UiSelector().resourceId("${p.selector}")`);
|
|
83
|
+
await el.click();
|
|
84
|
+
}
|
|
85
|
+
else if (p.x !== undefined && p.y !== undefined) {
|
|
86
|
+
await this.driver.action('pointer').move({ x: p.x, y: p.y }).down().up().perform();
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
89
|
+
case 'long_press':
|
|
90
|
+
if (p.selector) {
|
|
91
|
+
const el = await this.driver.$(`android=new UiSelector().resourceId("${p.selector}")`);
|
|
92
|
+
// W3C Actions (touchAction is deprecated in WebDriverIO 9)
|
|
93
|
+
await this.driver.action('pointer').move({ origin: el }).down().pause(p.duration || 1000).up().perform();
|
|
94
|
+
}
|
|
95
|
+
else if (p.x !== undefined && p.y !== undefined) {
|
|
96
|
+
await this.driver.action('pointer').move({ x: p.x, y: p.y }).down().pause(p.duration || 1000).up().perform();
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
case 'type_text':
|
|
100
|
+
if (p.selector) {
|
|
101
|
+
const el = await this.driver.$(`android=new UiSelector().resourceId("${p.selector}")`);
|
|
102
|
+
await el.setValue(p.text || '');
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
const active = await this.driver.getActiveElement();
|
|
106
|
+
await active.setValue(p.text || '');
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
case 'swipe':
|
|
110
|
+
await this.driver.action('pointer')
|
|
111
|
+
.move({ x: p.x1, y: p.y1 }).down()
|
|
112
|
+
.move({ x: p.x2, y: p.y2, duration: p.duration || 300 })
|
|
113
|
+
.up().perform();
|
|
114
|
+
break;
|
|
115
|
+
case 'press_back':
|
|
116
|
+
await this.driver.back();
|
|
117
|
+
break;
|
|
118
|
+
case 'press_home':
|
|
119
|
+
await this.driver.execute('mobile: pressKey', { keycode: 3 });
|
|
120
|
+
break;
|
|
121
|
+
case 'press_key':
|
|
122
|
+
await this.driver.execute('mobile: pressKey', { keycode: p.keycode || 0 });
|
|
123
|
+
break;
|
|
124
|
+
case 'launch_app':
|
|
125
|
+
if (p.packageName) {
|
|
126
|
+
await this.driver.execute('mobile: shell', {
|
|
127
|
+
command: 'monkey',
|
|
128
|
+
args: ['-p', p.packageName, '-c', 'android.intent.category.LAUNCHER', '1'],
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
break;
|
|
132
|
+
case 'wait':
|
|
133
|
+
await new Promise(r => setTimeout(r, p.ms || p.duration || 1000));
|
|
134
|
+
break;
|
|
135
|
+
case 'assert_element':
|
|
136
|
+
if (p.selector) {
|
|
137
|
+
const el = await this.driver.$(`android=new UiSelector().resourceId("${p.selector}")`);
|
|
138
|
+
if (!(await el.isExisting()))
|
|
139
|
+
throw new Error(`Elemento nao encontrado: ${p.selector}`);
|
|
140
|
+
}
|
|
141
|
+
break;
|
|
142
|
+
case 'assert_text': {
|
|
143
|
+
const source = await this.driver.getPageSource();
|
|
144
|
+
if (!source.includes(p.text || ''))
|
|
145
|
+
throw new Error(`Texto nao encontrado: "${p.text}"`);
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
case 'pinch':
|
|
149
|
+
await this.driver.execute('mobile: pinchCloseGesture', {
|
|
150
|
+
left: (p.centerX || 540) - 100, top: (p.centerY || 960) - 100,
|
|
151
|
+
width: 200, height: 200, percent: p.scale || 0.5,
|
|
152
|
+
});
|
|
153
|
+
break;
|
|
154
|
+
case 'zoom':
|
|
155
|
+
await this.driver.execute('mobile: pinchOpenGesture', {
|
|
156
|
+
left: (p.centerX || 540) - 100, top: (p.centerY || 960) - 100,
|
|
157
|
+
width: 200, height: 200, percent: p.scale || 2.0,
|
|
158
|
+
});
|
|
159
|
+
break;
|
|
160
|
+
case 'rotate':
|
|
161
|
+
// UiAutomator2 doesn't natively support rotate gesture
|
|
162
|
+
console.warn(' ⚠ Rotate gesture nao suportado via Appium UiAutomator2');
|
|
163
|
+
break;
|
|
164
|
+
default:
|
|
165
|
+
console.warn(` ⚠ Acao desconhecida ignorada: ${step.action}`);
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
return { success: true, duration: Date.now() - start };
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
return { success: false, error: err.message, duration: Date.now() - start };
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Retorna a instancia do driver WebDriverIO (ou null se nao conectado).
|
|
176
|
+
*/
|
|
177
|
+
getDriver() {
|
|
178
|
+
return this.driver;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Encerra a sessao WebDriver.
|
|
182
|
+
*/
|
|
183
|
+
async disconnect() {
|
|
184
|
+
if (this.driver) {
|
|
185
|
+
await this.driver.deleteSession().catch(() => { });
|
|
186
|
+
this.driver = null;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
exports.AppiumExecutor = AppiumExecutor;
|
|
191
|
+
//# sourceMappingURL=appium-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appium-executor.js","sourceRoot":"","sources":["../../src/runner/appium-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TestStep } from '../script-parser';
|
|
2
|
+
import { ParseStrategy, ParseContext } from './types';
|
|
3
|
+
export declare class AppiumDefaultStrategy implements ParseStrategy {
|
|
4
|
+
name: string;
|
|
5
|
+
detect(_code: string): boolean;
|
|
6
|
+
parse(code: string, _context: ParseContext): TestStep[];
|
|
7
|
+
/**
|
|
8
|
+
* Tenta interpretar uma unica linha como um passo de teste.
|
|
9
|
+
*/
|
|
10
|
+
private parseLine;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=appium-default.strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appium-default.strategy.d.ts","sourceRoot":"","sources":["../../../src/runner/parse-strategies/appium-default.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGtD,qBAAa,qBAAsB,YAAW,aAAa;IACzD,IAAI,SAAoB;IAExB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,QAAQ,EAAE;IAuBvD;;OAEG;IACH,OAAO,CAAC,SAAS;CAqXlB"}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppiumDefaultStrategy = void 0;
|
|
4
|
+
const utils_1 = require("./utils");
|
|
5
|
+
class AppiumDefaultStrategy {
|
|
6
|
+
name = 'appium-default';
|
|
7
|
+
detect(_code) {
|
|
8
|
+
return true; // fallback — always matches
|
|
9
|
+
}
|
|
10
|
+
parse(code, _context) {
|
|
11
|
+
const resolved = (0, utils_1.resolveVariables)(code);
|
|
12
|
+
const lines = resolved.split('\n');
|
|
13
|
+
const steps = [];
|
|
14
|
+
for (let i = 0; i < lines.length; i++) {
|
|
15
|
+
const line = lines[i];
|
|
16
|
+
const trimmed = line.trim();
|
|
17
|
+
const lineNumber = i + 1;
|
|
18
|
+
if ((0, utils_1.shouldSkipLine)(trimmed)) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const step = this.parseLine(trimmed, lineNumber, lines, i);
|
|
22
|
+
if (step) {
|
|
23
|
+
steps.push(step);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return steps;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Tenta interpretar uma unica linha como um passo de teste.
|
|
30
|
+
*/
|
|
31
|
+
parseLine(line, lineNumber, allLines, index) {
|
|
32
|
+
// --- Appium: inline .click() ---
|
|
33
|
+
// Covers: await driver.$('sel').click()
|
|
34
|
+
// await $('sel').click()
|
|
35
|
+
// await (await driver.$('sel')).click()
|
|
36
|
+
const inlineClickMatch = line.match(/(?:driver\.)?\$\((['"`])(.*?)\1\)(?:\))?\.click\(\)/);
|
|
37
|
+
if (inlineClickMatch) {
|
|
38
|
+
const selector = (0, utils_1.cleanSelector)(`'${inlineClickMatch[2]}'`);
|
|
39
|
+
return { action: 'tap', params: { selector }, line: lineNumber, raw: line };
|
|
40
|
+
}
|
|
41
|
+
// --- Appium: inline .setValue() / .addValue() ---
|
|
42
|
+
const inlineSetValueMatch = line.match(/(?:driver\.)?\$\((['"`])(.*?)\1\)(?:\))?\.(?:setValue|addValue)\((['"`])(.*?)\3\)/);
|
|
43
|
+
if (inlineSetValueMatch) {
|
|
44
|
+
const selector = (0, utils_1.cleanSelector)(`'${inlineSetValueMatch[2]}'`);
|
|
45
|
+
return { action: 'type_text', params: { selector, text: inlineSetValueMatch[4] }, line: lineNumber, raw: line };
|
|
46
|
+
}
|
|
47
|
+
// --- Appium: variable pattern ---
|
|
48
|
+
// const loginBtn = await driver.$('selector'); OR const loginBtn = await $('selector');
|
|
49
|
+
// await loginBtn.waitForDisplayed();
|
|
50
|
+
// await loginBtn.click();
|
|
51
|
+
const varAssignMatch = line.match(/const (\w+)\s*=\s*await (?:driver\.)?\$\((['"`])(.*?)\2\)/);
|
|
52
|
+
if (varAssignMatch) {
|
|
53
|
+
const varName = varAssignMatch[1];
|
|
54
|
+
const selector = (0, utils_1.cleanSelector)(`'${varAssignMatch[3]}'`);
|
|
55
|
+
for (let j = index + 1; j < allLines.length && j < index + 20; j++) {
|
|
56
|
+
const nl = allLines[j].trim();
|
|
57
|
+
if (!nl || nl.startsWith('//') || nl.startsWith('console.'))
|
|
58
|
+
continue;
|
|
59
|
+
if (nl.includes(`${varName}.click()`)) {
|
|
60
|
+
return { action: 'tap', params: { selector }, line: lineNumber, raw: `${line}\n${nl}` };
|
|
61
|
+
}
|
|
62
|
+
if (nl.includes(`${varName}.setValue(`) || nl.includes(`${varName}.addValue(`)) {
|
|
63
|
+
const tm = nl.match(/\.(?:setValue|addValue)\((['"`])(.*?)\1\)/);
|
|
64
|
+
return { action: 'type_text', params: { selector, text: tm ? tm[2] : '' }, line: lineNumber, raw: `${line}\n${nl}` };
|
|
65
|
+
}
|
|
66
|
+
if (nl.includes(`${varName}.touchAction`)) {
|
|
67
|
+
return { action: 'long_press', params: { selector }, line: lineNumber, raw: line };
|
|
68
|
+
}
|
|
69
|
+
// Skip waits, expects, assertions, console.log, clear, getText - keep looking for action
|
|
70
|
+
if (nl.includes(`${varName}.waitFor`) || nl.includes('expect(') || nl.includes(`${varName}.isDisplayed`)
|
|
71
|
+
|| nl.includes(`${varName}.clearValue`) || nl.includes(`${varName}.getText`) || nl.includes(`${varName}.clear(`)
|
|
72
|
+
|| nl.startsWith('const ') || nl.includes('.toContain(') || nl.includes('.toBe('))
|
|
73
|
+
continue;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
// --- Playwright: variable pattern ---
|
|
79
|
+
// const el1 = device.locator('[resource-id="..."]');
|
|
80
|
+
// await expect(el1).toBeVisible(...);
|
|
81
|
+
// await el1.click();
|
|
82
|
+
const pwVarMatch = line.match(/const (\w+)\s*=\s*device\.locator\(([^)]+)\)/);
|
|
83
|
+
if (pwVarMatch) {
|
|
84
|
+
const varName = pwVarMatch[1];
|
|
85
|
+
const selector = (0, utils_1.cleanSelector)(pwVarMatch[2]);
|
|
86
|
+
for (let j = index + 1; j < allLines.length && j < index + 10; j++) {
|
|
87
|
+
const nl = allLines[j].trim();
|
|
88
|
+
if (!nl || nl.startsWith('//') || nl.startsWith('console.') || nl.includes('expect(')
|
|
89
|
+
|| nl.includes('.toBeVisible') || nl.includes('.toContain') || nl.startsWith('const ')
|
|
90
|
+
|| nl.includes('waitForTimeout'))
|
|
91
|
+
continue;
|
|
92
|
+
if (nl.includes(`${varName}.click()`)) {
|
|
93
|
+
return { action: 'tap', params: { selector }, line: lineNumber, raw: `${line}\n${nl}` };
|
|
94
|
+
}
|
|
95
|
+
if (nl.includes(`${varName}.fill(`)) {
|
|
96
|
+
const tm = nl.match(/\.fill\((['"])(.*?)\1\)/);
|
|
97
|
+
return { action: 'type_text', params: { selector, text: tm ? tm[2] : '' }, line: lineNumber, raw: `${line}\n${nl}` };
|
|
98
|
+
}
|
|
99
|
+
if (nl.includes(`${varName}.tap(`)) {
|
|
100
|
+
return { action: 'long_press', params: { selector }, line: lineNumber, raw: `${line}\n${nl}` };
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
// --- Appium: driver.touchAction tap com coordenadas ---
|
|
107
|
+
// await driver.touchAction({ action: 'tap', x: 540, y: 1200 });
|
|
108
|
+
const touchTapMatch = line.match(/driver\.touchAction\(\{\s*action:\s*'tap',\s*x:\s*(\d+),\s*y:\s*(\d+)/);
|
|
109
|
+
if (touchTapMatch) {
|
|
110
|
+
return {
|
|
111
|
+
action: 'tap',
|
|
112
|
+
params: {
|
|
113
|
+
x: parseInt(touchTapMatch[1], 10),
|
|
114
|
+
y: parseInt(touchTapMatch[2], 10),
|
|
115
|
+
},
|
|
116
|
+
line: lineNumber,
|
|
117
|
+
raw: line,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
// --- Appium: driver.touchAction longPress com coordenadas ---
|
|
121
|
+
const longPressMatch = line.match(/action:\s*'longPress',\s*x:\s*(\d+),\s*y:\s*(\d+)/);
|
|
122
|
+
if (longPressMatch) {
|
|
123
|
+
return {
|
|
124
|
+
action: 'long_press',
|
|
125
|
+
params: {
|
|
126
|
+
x: parseInt(longPressMatch[1], 10),
|
|
127
|
+
y: parseInt(longPressMatch[2], 10),
|
|
128
|
+
},
|
|
129
|
+
line: lineNumber,
|
|
130
|
+
raw: line,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
// --- Appium: driver.touchAction swipe (press/moveTo) ---
|
|
134
|
+
const pressMatch = line.match(/action:\s*'press',\s*x:\s*(\d+),\s*y:\s*(\d+)/);
|
|
135
|
+
if (pressMatch) {
|
|
136
|
+
// Procura moveTo nas proximas linhas
|
|
137
|
+
const moveToLine = (0, utils_1.findLineContaining)(allLines, index, "action: 'moveTo'");
|
|
138
|
+
if (moveToLine) {
|
|
139
|
+
const moveMatch = moveToLine.match(/action:\s*'moveTo',\s*x:\s*(\d+),\s*y:\s*(\d+)/);
|
|
140
|
+
if (moveMatch) {
|
|
141
|
+
return {
|
|
142
|
+
action: 'swipe',
|
|
143
|
+
params: {
|
|
144
|
+
x1: parseInt(pressMatch[1], 10),
|
|
145
|
+
y1: parseInt(pressMatch[2], 10),
|
|
146
|
+
x2: parseInt(moveMatch[1], 10),
|
|
147
|
+
y2: parseInt(moveMatch[2], 10),
|
|
148
|
+
},
|
|
149
|
+
line: lineNumber,
|
|
150
|
+
raw: line,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// --- Appium: W3C pointer action swipe (driver.action('pointer',...).move().down()...) ---
|
|
156
|
+
const pointerActionMatch = line.match(/\.action\(\s*'pointer'/);
|
|
157
|
+
if (pointerActionMatch) {
|
|
158
|
+
// Collect the full multi-line chain (.move, .down, .pause, .move, .up, .perform)
|
|
159
|
+
const block = (0, utils_1.collectBlock)(allLines, index, 10);
|
|
160
|
+
// Extract the two .move() calls: first is start position, second is end position
|
|
161
|
+
const moves = [...block.matchAll(/\.move\(\s*\{\s*x:\s*(\d+),\s*y:\s*(\d+)/g)];
|
|
162
|
+
if (moves.length >= 2) {
|
|
163
|
+
return {
|
|
164
|
+
action: 'swipe',
|
|
165
|
+
params: {
|
|
166
|
+
x1: parseInt(moves[0][1], 10),
|
|
167
|
+
y1: parseInt(moves[0][2], 10),
|
|
168
|
+
x2: parseInt(moves[1][1], 10),
|
|
169
|
+
y2: parseInt(moves[1][2], 10),
|
|
170
|
+
},
|
|
171
|
+
line: lineNumber,
|
|
172
|
+
raw: block,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// --- Appium: driver.pressKeyCode ---
|
|
177
|
+
const keyCodeMatch = line.match(/driver\.pressKeyCode\((\d+)\)/);
|
|
178
|
+
if (keyCodeMatch) {
|
|
179
|
+
const keycode = parseInt(keyCodeMatch[1], 10);
|
|
180
|
+
if (keycode === 4) {
|
|
181
|
+
return {
|
|
182
|
+
action: 'press_back',
|
|
183
|
+
params: {},
|
|
184
|
+
line: lineNumber,
|
|
185
|
+
raw: line,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
if (keycode === 3) {
|
|
189
|
+
return {
|
|
190
|
+
action: 'press_home',
|
|
191
|
+
params: {},
|
|
192
|
+
line: lineNumber,
|
|
193
|
+
raw: line,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
action: 'press_key',
|
|
198
|
+
params: { keycode },
|
|
199
|
+
line: lineNumber,
|
|
200
|
+
raw: line,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
// --- Appium: driver.pause / browser.pause ---
|
|
204
|
+
const pauseMatch = line.match(/(?:driver|browser)\.pause\((\d+)\)/);
|
|
205
|
+
if (pauseMatch) {
|
|
206
|
+
return {
|
|
207
|
+
action: 'wait',
|
|
208
|
+
params: { ms: parseInt(pauseMatch[1], 10) },
|
|
209
|
+
line: lineNumber,
|
|
210
|
+
raw: line,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
// --- Playwright: device.locator(...).click() ---
|
|
214
|
+
const pwClickMatch = line.match(/device\.locator\(([^)]+)\)\.click\(\)/);
|
|
215
|
+
if (pwClickMatch) {
|
|
216
|
+
const selector = (0, utils_1.cleanSelector)(pwClickMatch[1]);
|
|
217
|
+
return {
|
|
218
|
+
action: 'tap',
|
|
219
|
+
params: { selector },
|
|
220
|
+
line: lineNumber,
|
|
221
|
+
raw: line,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
// --- Playwright: device.locator(...).fill('text') ---
|
|
225
|
+
const pwFillMatch = line.match(/device\.locator\(([^)]+)\)\.fill\('([^']*)'\)/);
|
|
226
|
+
if (pwFillMatch) {
|
|
227
|
+
const selector = (0, utils_1.cleanSelector)(pwFillMatch[1]);
|
|
228
|
+
return {
|
|
229
|
+
action: 'type_text',
|
|
230
|
+
params: { selector, text: pwFillMatch[2] },
|
|
231
|
+
line: lineNumber,
|
|
232
|
+
raw: line,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
// --- Playwright: device.locator(...).tap({ duration: 1000 }) ---
|
|
236
|
+
const pwLongPressMatch = line.match(/device\.locator\(([^)]+)\)\.tap\(\{\s*duration:\s*(\d+)/);
|
|
237
|
+
if (pwLongPressMatch) {
|
|
238
|
+
const selector = (0, utils_1.cleanSelector)(pwLongPressMatch[1]);
|
|
239
|
+
return {
|
|
240
|
+
action: 'long_press',
|
|
241
|
+
params: { selector },
|
|
242
|
+
line: lineNumber,
|
|
243
|
+
raw: line,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
// --- Playwright: device.tap({ x, y }) ---
|
|
247
|
+
const pwTapMatch = line.match(/device\.tap\(\{\s*x:\s*(\d+),\s*y:\s*(\d+)/);
|
|
248
|
+
if (pwTapMatch) {
|
|
249
|
+
return {
|
|
250
|
+
action: 'tap',
|
|
251
|
+
params: {
|
|
252
|
+
x: parseInt(pwTapMatch[1], 10),
|
|
253
|
+
y: parseInt(pwTapMatch[2], 10),
|
|
254
|
+
},
|
|
255
|
+
line: lineNumber,
|
|
256
|
+
raw: line,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
// --- Playwright: device.swipe({...}) ---
|
|
260
|
+
const pwSwipeMatch = line.match(/device\.swipe\(\{/);
|
|
261
|
+
if (pwSwipeMatch) {
|
|
262
|
+
// Extrair coordenadas das linhas seguintes
|
|
263
|
+
const block = (0, utils_1.collectBlock)(allLines, index, 6);
|
|
264
|
+
const startXM = block.match(/startX:\s*(\d+)/);
|
|
265
|
+
const startYM = block.match(/startY:\s*(\d+)/);
|
|
266
|
+
const endXM = block.match(/endX:\s*(\d+)/);
|
|
267
|
+
const endYM = block.match(/endY:\s*(\d+)/);
|
|
268
|
+
return {
|
|
269
|
+
action: 'swipe',
|
|
270
|
+
params: {
|
|
271
|
+
x1: startXM ? parseInt(startXM[1], 10) : 0,
|
|
272
|
+
y1: startYM ? parseInt(startYM[1], 10) : 0,
|
|
273
|
+
x2: endXM ? parseInt(endXM[1], 10) : 0,
|
|
274
|
+
y2: endYM ? parseInt(endYM[1], 10) : 0,
|
|
275
|
+
},
|
|
276
|
+
line: lineNumber,
|
|
277
|
+
raw: line,
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
// --- Playwright: device.pressKey ---
|
|
281
|
+
const pwKeyMatch = line.match(/device\.pressKey\('(\w+)'\)/);
|
|
282
|
+
if (pwKeyMatch) {
|
|
283
|
+
const key = pwKeyMatch[1];
|
|
284
|
+
if (key === 'Back') {
|
|
285
|
+
return {
|
|
286
|
+
action: 'press_back',
|
|
287
|
+
params: {},
|
|
288
|
+
line: lineNumber,
|
|
289
|
+
raw: line,
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
if (key === 'Home') {
|
|
293
|
+
return {
|
|
294
|
+
action: 'press_home',
|
|
295
|
+
params: {},
|
|
296
|
+
line: lineNumber,
|
|
297
|
+
raw: line,
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
return {
|
|
301
|
+
action: 'press_key',
|
|
302
|
+
params: { key },
|
|
303
|
+
line: lineNumber,
|
|
304
|
+
raw: line,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
// --- Playwright: device.waitForTimeout ---
|
|
308
|
+
const pwWaitMatch = line.match(/device\.waitForTimeout\((\d+)\)/);
|
|
309
|
+
if (pwWaitMatch) {
|
|
310
|
+
return {
|
|
311
|
+
action: 'wait',
|
|
312
|
+
params: { ms: parseInt(pwWaitMatch[1], 10) },
|
|
313
|
+
line: lineNumber,
|
|
314
|
+
raw: line,
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
// --- expect(...).toExist() / expect(...).toBeDisplayed() ---
|
|
318
|
+
const expectMatch = line.match(/expect\(.*driver\.\$\(([^)]+)\).*\)\.(toExist|toBeDisplayed)\(\)/);
|
|
319
|
+
if (expectMatch) {
|
|
320
|
+
const selector = (0, utils_1.cleanSelector)(expectMatch[1]);
|
|
321
|
+
return {
|
|
322
|
+
action: 'assert_element',
|
|
323
|
+
params: { selector },
|
|
324
|
+
line: lineNumber,
|
|
325
|
+
raw: line,
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
// --- expect(...).toHaveText(...) ---
|
|
329
|
+
const expectTextMatch = line.match(/expect\(.*\)\.(toHaveText|toHaveTextContaining)\('([^']*)'\)/);
|
|
330
|
+
if (expectTextMatch) {
|
|
331
|
+
return {
|
|
332
|
+
action: 'assert_text',
|
|
333
|
+
params: { text: expectTextMatch[2] },
|
|
334
|
+
line: lineNumber,
|
|
335
|
+
raw: line,
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
exports.AppiumDefaultStrategy = AppiumDefaultStrategy;
|
|
342
|
+
//# sourceMappingURL=appium-default.strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appium-default.strategy.js","sourceRoot":"","sources":["../../../src/runner/parse-strategies/appium-default.strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { MaestroStrategy } from './maestro.strategy';
|
|
2
|
+
export { JavaStrategy } from './java.strategy';
|
|
3
|
+
export { RobotStrategy } from './robot.strategy';
|
|
4
|
+
export { PythonStrategy } from './python.strategy';
|
|
5
|
+
export { AppiumDefaultStrategy } from './appium-default.strategy';
|
|
6
|
+
export type { ParseStrategy, ParseContext } from './types';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runner/parse-strategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppiumDefaultStrategy = exports.PythonStrategy = exports.RobotStrategy = exports.JavaStrategy = exports.MaestroStrategy = void 0;
|
|
4
|
+
var maestro_strategy_1 = require("./maestro.strategy");
|
|
5
|
+
Object.defineProperty(exports, "MaestroStrategy", { enumerable: true, get: function () { return maestro_strategy_1.MaestroStrategy; } });
|
|
6
|
+
var java_strategy_1 = require("./java.strategy");
|
|
7
|
+
Object.defineProperty(exports, "JavaStrategy", { enumerable: true, get: function () { return java_strategy_1.JavaStrategy; } });
|
|
8
|
+
var robot_strategy_1 = require("./robot.strategy");
|
|
9
|
+
Object.defineProperty(exports, "RobotStrategy", { enumerable: true, get: function () { return robot_strategy_1.RobotStrategy; } });
|
|
10
|
+
var python_strategy_1 = require("./python.strategy");
|
|
11
|
+
Object.defineProperty(exports, "PythonStrategy", { enumerable: true, get: function () { return python_strategy_1.PythonStrategy; } });
|
|
12
|
+
var appium_default_strategy_1 = require("./appium-default.strategy");
|
|
13
|
+
Object.defineProperty(exports, "AppiumDefaultStrategy", { enumerable: true, get: function () { return appium_default_strategy_1.AppiumDefaultStrategy; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runner/parse-strategies/index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TestStep } from '../script-parser';
|
|
2
|
+
import { ParseStrategy, ParseContext } from './types';
|
|
3
|
+
export declare class JavaStrategy implements ParseStrategy {
|
|
4
|
+
name: string;
|
|
5
|
+
detect(code: string): boolean;
|
|
6
|
+
parse(code: string, _context: ParseContext): TestStep[];
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=java.strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"java.strategy.d.ts","sourceRoot":"","sources":["../../../src/runner/parse-strategies/java.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGtD,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAI,SAAU;IAEd,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAM7B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,QAAQ,EAAE;CA6JxD"}
|