@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.
Files changed (229) hide show
  1. package/dist/adb/adb-path-resolver.d.ts +6 -0
  2. package/dist/adb/adb-path-resolver.d.ts.map +1 -0
  3. package/dist/adb/adb-path-resolver.js +93 -0
  4. package/dist/adb/adb-path-resolver.js.map +1 -0
  5. package/dist/adb/adb-shell.d.ts +29 -0
  6. package/dist/adb/adb-shell.d.ts.map +1 -0
  7. package/dist/adb/adb-shell.js +128 -0
  8. package/dist/adb/adb-shell.js.map +1 -0
  9. package/dist/adb/detector.d.ts +12 -0
  10. package/dist/adb/detector.d.ts.map +1 -0
  11. package/dist/adb/detector.js +44 -0
  12. package/dist/adb/detector.js.map +1 -0
  13. package/dist/adb/device-tracker.d.ts +23 -0
  14. package/dist/adb/device-tracker.d.ts.map +1 -0
  15. package/dist/adb/device-tracker.js +134 -0
  16. package/dist/adb/device-tracker.js.map +1 -0
  17. package/dist/adb/emulator-detector.d.ts +11 -0
  18. package/dist/adb/emulator-detector.d.ts.map +1 -0
  19. package/dist/adb/emulator-detector.js +54 -0
  20. package/dist/adb/emulator-detector.js.map +1 -0
  21. package/dist/appium/health-check.d.ts +6 -0
  22. package/dist/appium/health-check.d.ts.map +1 -0
  23. package/dist/appium/health-check.js +61 -0
  24. package/dist/appium/health-check.js.map +1 -0
  25. package/dist/appium/session-manager.d.ts +15 -0
  26. package/dist/appium/session-manager.d.ts.map +1 -0
  27. package/dist/appium/session-manager.js +82 -0
  28. package/dist/appium/session-manager.js.map +1 -0
  29. package/dist/auth/credential-store.d.ts +31 -0
  30. package/dist/auth/credential-store.d.ts.map +1 -0
  31. package/dist/auth/credential-store.js +154 -0
  32. package/dist/auth/credential-store.js.map +1 -0
  33. package/dist/auth/pairing-auth.d.ts +26 -0
  34. package/dist/auth/pairing-auth.d.ts.map +1 -0
  35. package/dist/auth/pairing-auth.js +177 -0
  36. package/dist/auth/pairing-auth.js.map +1 -0
  37. package/dist/auth/token-manager.d.ts +20 -0
  38. package/dist/auth/token-manager.d.ts.map +1 -0
  39. package/dist/auth/token-manager.js +101 -0
  40. package/dist/auth/token-manager.js.map +1 -0
  41. package/dist/commands/connect.d.ts +9 -0
  42. package/dist/commands/connect.d.ts.map +1 -0
  43. package/dist/commands/connect.js +270 -0
  44. package/dist/commands/connect.js.map +1 -0
  45. package/dist/commands/devices.d.ts +2 -0
  46. package/dist/commands/devices.d.ts.map +1 -0
  47. package/dist/commands/devices.js +52 -0
  48. package/dist/commands/devices.js.map +1 -0
  49. package/dist/commands/doctor.d.ts +2 -0
  50. package/dist/commands/doctor.d.ts.map +1 -0
  51. package/dist/commands/doctor.js +214 -0
  52. package/dist/commands/doctor.js.map +1 -0
  53. package/dist/commands/mirror.d.ts +2 -0
  54. package/dist/commands/mirror.d.ts.map +1 -0
  55. package/dist/commands/mirror.js +77 -0
  56. package/dist/commands/mirror.js.map +1 -0
  57. package/dist/commands/prompt.d.ts +12 -0
  58. package/dist/commands/prompt.d.ts.map +1 -0
  59. package/dist/commands/prompt.js +174 -0
  60. package/dist/commands/prompt.js.map +1 -0
  61. package/dist/commands/record.d.ts +7 -0
  62. package/dist/commands/record.d.ts.map +1 -0
  63. package/dist/commands/record.js +129 -0
  64. package/dist/commands/record.js.map +1 -0
  65. package/dist/commands/run.d.ts +16 -0
  66. package/dist/commands/run.d.ts.map +1 -0
  67. package/dist/commands/run.js +271 -0
  68. package/dist/commands/run.js.map +1 -0
  69. package/dist/commands/setup.d.ts +6 -0
  70. package/dist/commands/setup.d.ts.map +1 -0
  71. package/dist/commands/setup.js +50 -0
  72. package/dist/commands/setup.js.map +1 -0
  73. package/dist/commands/status.d.ts +2 -0
  74. package/dist/commands/status.d.ts.map +1 -0
  75. package/dist/commands/status.js +32 -0
  76. package/dist/commands/status.js.map +1 -0
  77. package/dist/healing/ai-adapter.d.ts +44 -0
  78. package/dist/healing/ai-adapter.d.ts.map +1 -0
  79. package/dist/healing/ai-adapter.js +87 -0
  80. package/dist/healing/ai-adapter.js.map +1 -0
  81. package/dist/healing/healer.d.ts +109 -0
  82. package/dist/healing/healer.d.ts.map +1 -0
  83. package/dist/healing/healer.js +475 -0
  84. package/dist/healing/healer.js.map +1 -0
  85. package/dist/healing/similarity.d.ts +63 -0
  86. package/dist/healing/similarity.d.ts.map +1 -0
  87. package/dist/healing/similarity.js +172 -0
  88. package/dist/healing/similarity.js.map +1 -0
  89. package/dist/index.d.ts +3 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js +107 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/recording/capture-strategies/capture-strategy.interface.d.ts +6 -0
  94. package/dist/recording/capture-strategies/capture-strategy.interface.d.ts.map +1 -0
  95. package/dist/recording/capture-strategies/capture-strategy.interface.js +3 -0
  96. package/dist/recording/capture-strategies/capture-strategy.interface.js.map +1 -0
  97. package/dist/recording/capture-strategies/getevent.strategy.d.ts +27 -0
  98. package/dist/recording/capture-strategies/getevent.strategy.d.ts.map +1 -0
  99. package/dist/recording/capture-strategies/getevent.strategy.js +163 -0
  100. package/dist/recording/capture-strategies/getevent.strategy.js.map +1 -0
  101. package/dist/recording/capture-strategies/key-capture.strategy.d.ts +16 -0
  102. package/dist/recording/capture-strategies/key-capture.strategy.d.ts.map +1 -0
  103. package/dist/recording/capture-strategies/key-capture.strategy.js +67 -0
  104. package/dist/recording/capture-strategies/key-capture.strategy.js.map +1 -0
  105. package/dist/recording/capture-strategies/logcat-capture.strategy.d.ts +32 -0
  106. package/dist/recording/capture-strategies/logcat-capture.strategy.d.ts.map +1 -0
  107. package/dist/recording/capture-strategies/logcat-capture.strategy.js +176 -0
  108. package/dist/recording/capture-strategies/logcat-capture.strategy.js.map +1 -0
  109. package/dist/recording/confidence-scorer.d.ts +13 -0
  110. package/dist/recording/confidence-scorer.d.ts.map +1 -0
  111. package/dist/recording/confidence-scorer.js +34 -0
  112. package/dist/recording/confidence-scorer.js.map +1 -0
  113. package/dist/recording/event-capture.d.ts +40 -0
  114. package/dist/recording/event-capture.d.ts.map +1 -0
  115. package/dist/recording/event-capture.js +168 -0
  116. package/dist/recording/event-capture.js.map +1 -0
  117. package/dist/recording/recorder.d.ts +32 -0
  118. package/dist/recording/recorder.d.ts.map +1 -0
  119. package/dist/recording/recorder.js +107 -0
  120. package/dist/recording/recorder.js.map +1 -0
  121. package/dist/runner/adb-executor.d.ts +116 -0
  122. package/dist/runner/adb-executor.d.ts.map +1 -0
  123. package/dist/runner/adb-executor.js +323 -0
  124. package/dist/runner/adb-executor.js.map +1 -0
  125. package/dist/runner/appium-executor.d.ts +35 -0
  126. package/dist/runner/appium-executor.d.ts.map +1 -0
  127. package/dist/runner/appium-executor.js +191 -0
  128. package/dist/runner/appium-executor.js.map +1 -0
  129. package/dist/runner/parse-strategies/appium-default.strategy.d.ts +12 -0
  130. package/dist/runner/parse-strategies/appium-default.strategy.d.ts.map +1 -0
  131. package/dist/runner/parse-strategies/appium-default.strategy.js +342 -0
  132. package/dist/runner/parse-strategies/appium-default.strategy.js.map +1 -0
  133. package/dist/runner/parse-strategies/index.d.ts +7 -0
  134. package/dist/runner/parse-strategies/index.d.ts.map +1 -0
  135. package/dist/runner/parse-strategies/index.js +14 -0
  136. package/dist/runner/parse-strategies/index.js.map +1 -0
  137. package/dist/runner/parse-strategies/java.strategy.d.ts +8 -0
  138. package/dist/runner/parse-strategies/java.strategy.d.ts.map +1 -0
  139. package/dist/runner/parse-strategies/java.strategy.js +170 -0
  140. package/dist/runner/parse-strategies/java.strategy.js.map +1 -0
  141. package/dist/runner/parse-strategies/maestro.strategy.d.ts +8 -0
  142. package/dist/runner/parse-strategies/maestro.strategy.d.ts.map +1 -0
  143. package/dist/runner/parse-strategies/maestro.strategy.js +105 -0
  144. package/dist/runner/parse-strategies/maestro.strategy.js.map +1 -0
  145. package/dist/runner/parse-strategies/python.strategy.d.ts +8 -0
  146. package/dist/runner/parse-strategies/python.strategy.d.ts.map +1 -0
  147. package/dist/runner/parse-strategies/python.strategy.js +140 -0
  148. package/dist/runner/parse-strategies/python.strategy.js.map +1 -0
  149. package/dist/runner/parse-strategies/robot.strategy.d.ts +8 -0
  150. package/dist/runner/parse-strategies/robot.strategy.d.ts.map +1 -0
  151. package/dist/runner/parse-strategies/robot.strategy.js +81 -0
  152. package/dist/runner/parse-strategies/robot.strategy.js.map +1 -0
  153. package/dist/runner/parse-strategies/types.d.ts +17 -0
  154. package/dist/runner/parse-strategies/types.d.ts.map +1 -0
  155. package/dist/runner/parse-strategies/types.js +3 -0
  156. package/dist/runner/parse-strategies/types.js.map +1 -0
  157. package/dist/runner/parse-strategies/utils.d.ts +39 -0
  158. package/dist/runner/parse-strategies/utils.d.ts.map +1 -0
  159. package/dist/runner/parse-strategies/utils.js +217 -0
  160. package/dist/runner/parse-strategies/utils.js.map +1 -0
  161. package/dist/runner/script-parser.d.ts +43 -0
  162. package/dist/runner/script-parser.d.ts.map +1 -0
  163. package/dist/runner/script-parser.js +68 -0
  164. package/dist/runner/script-parser.js.map +1 -0
  165. package/dist/runner/selector-resolver.d.ts +87 -0
  166. package/dist/runner/selector-resolver.d.ts.map +1 -0
  167. package/dist/runner/selector-resolver.js +206 -0
  168. package/dist/runner/selector-resolver.js.map +1 -0
  169. package/dist/runner/step-executor.d.ts +112 -0
  170. package/dist/runner/step-executor.d.ts.map +1 -0
  171. package/dist/runner/step-executor.js +518 -0
  172. package/dist/runner/step-executor.js.map +1 -0
  173. package/dist/runner/test-runner.d.ts +89 -0
  174. package/dist/runner/test-runner.d.ts.map +1 -0
  175. package/dist/runner/test-runner.js +320 -0
  176. package/dist/runner/test-runner.js.map +1 -0
  177. package/dist/scrcpy/launcher.d.ts +16 -0
  178. package/dist/scrcpy/launcher.d.ts.map +1 -0
  179. package/dist/scrcpy/launcher.js +87 -0
  180. package/dist/scrcpy/launcher.js.map +1 -0
  181. package/dist/services/device-poller.d.ts +10 -0
  182. package/dist/services/device-poller.d.ts.map +1 -0
  183. package/dist/services/device-poller.js +44 -0
  184. package/dist/services/device-poller.js.map +1 -0
  185. package/dist/services/execution-manager.d.ts +18 -0
  186. package/dist/services/execution-manager.d.ts.map +1 -0
  187. package/dist/services/execution-manager.js +185 -0
  188. package/dist/services/execution-manager.js.map +1 -0
  189. package/dist/services/recording-manager.d.ts +13 -0
  190. package/dist/services/recording-manager.d.ts.map +1 -0
  191. package/dist/services/recording-manager.js +234 -0
  192. package/dist/services/recording-manager.js.map +1 -0
  193. package/dist/setup/adb-installer.d.ts +8 -0
  194. package/dist/setup/adb-installer.d.ts.map +1 -0
  195. package/dist/setup/adb-installer.js +115 -0
  196. package/dist/setup/adb-installer.js.map +1 -0
  197. package/dist/setup/appium-installer.d.ts +8 -0
  198. package/dist/setup/appium-installer.d.ts.map +1 -0
  199. package/dist/setup/appium-installer.js +113 -0
  200. package/dist/setup/appium-installer.js.map +1 -0
  201. package/dist/setup/base-installer.d.ts +33 -0
  202. package/dist/setup/base-installer.d.ts.map +1 -0
  203. package/dist/setup/base-installer.js +170 -0
  204. package/dist/setup/base-installer.js.map +1 -0
  205. package/dist/setup/build-tools-installer.d.ts +8 -0
  206. package/dist/setup/build-tools-installer.d.ts.map +1 -0
  207. package/dist/setup/build-tools-installer.js +109 -0
  208. package/dist/setup/build-tools-installer.js.map +1 -0
  209. package/dist/setup/java-installer.d.ts +8 -0
  210. package/dist/setup/java-installer.d.ts.map +1 -0
  211. package/dist/setup/java-installer.js +132 -0
  212. package/dist/setup/java-installer.js.map +1 -0
  213. package/dist/setup/paths.d.ts +12 -0
  214. package/dist/setup/paths.d.ts.map +1 -0
  215. package/dist/setup/paths.js +90 -0
  216. package/dist/setup/paths.js.map +1 -0
  217. package/dist/setup/scrcpy-installer.d.ts +8 -0
  218. package/dist/setup/scrcpy-installer.d.ts.map +1 -0
  219. package/dist/setup/scrcpy-installer.js +143 -0
  220. package/dist/setup/scrcpy-installer.js.map +1 -0
  221. package/dist/setup/setup-manager.d.ts +18 -0
  222. package/dist/setup/setup-manager.d.ts.map +1 -0
  223. package/dist/setup/setup-manager.js +113 -0
  224. package/dist/setup/setup-manager.js.map +1 -0
  225. package/dist/ws/socket.d.ts +38 -0
  226. package/dist/ws/socket.d.ts.map +1 -0
  227. package/dist/ws/socket.js +91 -0
  228. package/dist/ws/socket.js.map +1 -0
  229. 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"}