@midscene/android 1.10.2-beta-20260706032158.0 → 1.10.3

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/es/cli.mjs CHANGED
@@ -1300,19 +1300,12 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1300
1300
  x: element.center[0],
1301
1301
  y: element.center[1]
1302
1302
  });
1303
+ await this.ensureYadb();
1303
1304
  const adb = await this.getAdb();
1304
- const displayArg = this.getDisplayArg();
1305
- const isNonDefaultDisplay = 'number' == typeof this.options?.displayId && 0 !== this.options.displayId;
1306
1305
  const IME_STRATEGY = (this.options?.imeStrategy || globalConfigManager.getEnvConfigValue(MIDSCENE_ANDROID_IME_STRATEGY)) ?? IME_STRATEGY_YADB_FOR_NON_ASCII;
1307
- if (isNonDefaultDisplay) {
1308
- const keys = [];
1309
- for(let i = 0; i < 100; i++)keys.push('67', '112');
1310
- await adb.shell(`input${displayArg} keyevent ${keys.join(' ')}`);
1311
- } else if (IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII) {
1312
- await this.ensureYadb();
1313
- await adb.clearTextField(100);
1314
- } else {
1315
- await this.ensureYadb();
1306
+ if (IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII) await adb.clearTextField(100);
1307
+ else {
1308
+ this.warnYadbOnNonDefaultDisplay('keyboard clear');
1316
1309
  await adb.shell('app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -keyboardClear');
1317
1310
  }
1318
1311
  if (await adb.isSoftKeyboardPresent()) return;
@@ -1484,24 +1477,13 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1484
1477
  const adb = await this.getAdb();
1485
1478
  const IME_STRATEGY = (this.options?.imeStrategy || globalConfigManager.getEnvConfigValue(MIDSCENE_ANDROID_IME_STRATEGY)) ?? IME_STRATEGY_YADB_FOR_NON_ASCII;
1486
1479
  const shouldAutoDismissKeyboard = options?.autoDismissKeyboard ?? this.options?.autoDismissKeyboard ?? true;
1487
- const typeDelay = options?.keyboardTypeDelay ?? this.options?.keyboardTypeDelay;
1488
- const isNonDefaultDisplay = 'number' == typeof this.options?.displayId && 0 !== this.options.displayId;
1489
- const useYadb = !isNonDefaultDisplay && (IME_STRATEGY === IME_STRATEGY_ALWAYS_YADB || IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII && this.shouldUseYadbForText(text));
1480
+ const useYadb = IME_STRATEGY === IME_STRATEGY_ALWAYS_YADB || IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII && this.shouldUseYadbForText(text);
1490
1481
  if (useYadb) await this.execYadb(escapeForShell(text));
1491
1482
  else {
1492
- const displayArg = this.getDisplayArg();
1493
1483
  const segments = text.split('\n');
1494
1484
  for(let i = 0; i < segments.length; i++){
1495
- if (segments[i].length > 0) if (typeDelay && typeDelay > 0) for (const ch of segments[i]){
1496
- const escaped = ' ' === ch ? '%s' : ch;
1497
- await adb.shell(`input${displayArg} text ${escaped}`);
1498
- await sleep(typeDelay);
1499
- }
1500
- else {
1501
- const escaped = segments[i].replace(/ /g, '%s');
1502
- await adb.shell(`input${displayArg} text ${escaped}`);
1503
- }
1504
- if (i < segments.length - 1) await adb.shell(`input${displayArg} keyevent 66`);
1485
+ if (segments[i].length > 0) await adb.inputText(segments[i]);
1486
+ if (i < segments.length - 1) await adb.keyevent(66);
1505
1487
  }
1506
1488
  }
1507
1489
  if (true === shouldAutoDismissKeyboard) await this.hideKeyboard(options);
@@ -1541,13 +1523,12 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1541
1523
  End: 123
1542
1524
  };
1543
1525
  const adb = await this.getAdb();
1544
- const displayArg = this.getDisplayArg();
1545
1526
  const normalizedKey = this.normalizeKeyName(key);
1546
1527
  const keyCode = keyCodeMap[normalizedKey];
1547
- if (void 0 !== keyCode) await adb.shell(`input${displayArg} keyevent ${keyCode}`);
1528
+ if (void 0 !== keyCode) await adb.keyevent(keyCode);
1548
1529
  else if (1 === key.length) {
1549
1530
  const asciiCode = key.toUpperCase().charCodeAt(0);
1550
- if (asciiCode >= 65 && asciiCode <= 90) await adb.shell(`input${displayArg} keyevent ${asciiCode - 36}`);
1531
+ if (asciiCode >= 65 && asciiCode <= 90) await adb.keyevent(asciiCode - 36);
1551
1532
  }
1552
1533
  }
1553
1534
  async tapPoint(point) {
@@ -1741,7 +1722,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1741
1722
  4
1742
1723
  ];
1743
1724
  for (const keyCode of keyCodes){
1744
- await adb.shell(`input${this.getDisplayArg()} keyevent ${keyCode}`);
1725
+ await adb.keyevent(keyCode);
1745
1726
  const startTime = Date.now();
1746
1727
  const intervalMs = 100;
1747
1728
  while(Date.now() - startTime < timeoutMs){
@@ -2087,7 +2068,7 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
2087
2068
  const tools = new AndroidMidsceneTools();
2088
2069
  runToolsCLI(tools, 'midscene-android', {
2089
2070
  stripPrefix: 'android_',
2090
- version: "1.10.2-beta-20260706032158.0",
2071
+ version: "1.10.3",
2091
2072
  extraCommands: createReportCliCommands()
2092
2073
  }).catch((e)=>{
2093
2074
  process.exit(reportCLIError(e));
package/dist/es/index.mjs CHANGED
@@ -1203,19 +1203,12 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1203
1203
  x: element.center[0],
1204
1204
  y: element.center[1]
1205
1205
  });
1206
+ await this.ensureYadb();
1206
1207
  const adb = await this.getAdb();
1207
- const displayArg = this.getDisplayArg();
1208
- const isNonDefaultDisplay = 'number' == typeof this.options?.displayId && 0 !== this.options.displayId;
1209
1208
  const IME_STRATEGY = (this.options?.imeStrategy || globalConfigManager.getEnvConfigValue(MIDSCENE_ANDROID_IME_STRATEGY)) ?? IME_STRATEGY_YADB_FOR_NON_ASCII;
1210
- if (isNonDefaultDisplay) {
1211
- const keys = [];
1212
- for(let i = 0; i < 100; i++)keys.push('67', '112');
1213
- await adb.shell(`input${displayArg} keyevent ${keys.join(' ')}`);
1214
- } else if (IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII) {
1215
- await this.ensureYadb();
1216
- await adb.clearTextField(100);
1217
- } else {
1218
- await this.ensureYadb();
1209
+ if (IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII) await adb.clearTextField(100);
1210
+ else {
1211
+ this.warnYadbOnNonDefaultDisplay('keyboard clear');
1219
1212
  await adb.shell('app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -keyboardClear');
1220
1213
  }
1221
1214
  if (await adb.isSoftKeyboardPresent()) return;
@@ -1387,24 +1380,13 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1387
1380
  const adb = await this.getAdb();
1388
1381
  const IME_STRATEGY = (this.options?.imeStrategy || globalConfigManager.getEnvConfigValue(MIDSCENE_ANDROID_IME_STRATEGY)) ?? IME_STRATEGY_YADB_FOR_NON_ASCII;
1389
1382
  const shouldAutoDismissKeyboard = options?.autoDismissKeyboard ?? this.options?.autoDismissKeyboard ?? true;
1390
- const typeDelay = options?.keyboardTypeDelay ?? this.options?.keyboardTypeDelay;
1391
- const isNonDefaultDisplay = 'number' == typeof this.options?.displayId && 0 !== this.options.displayId;
1392
- const useYadb = !isNonDefaultDisplay && (IME_STRATEGY === IME_STRATEGY_ALWAYS_YADB || IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII && this.shouldUseYadbForText(text));
1383
+ const useYadb = IME_STRATEGY === IME_STRATEGY_ALWAYS_YADB || IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII && this.shouldUseYadbForText(text);
1393
1384
  if (useYadb) await this.execYadb(escapeForShell(text));
1394
1385
  else {
1395
- const displayArg = this.getDisplayArg();
1396
1386
  const segments = text.split('\n');
1397
1387
  for(let i = 0; i < segments.length; i++){
1398
- if (segments[i].length > 0) if (typeDelay && typeDelay > 0) for (const ch of segments[i]){
1399
- const escaped = ' ' === ch ? '%s' : ch;
1400
- await adb.shell(`input${displayArg} text ${escaped}`);
1401
- await sleep(typeDelay);
1402
- }
1403
- else {
1404
- const escaped = segments[i].replace(/ /g, '%s');
1405
- await adb.shell(`input${displayArg} text ${escaped}`);
1406
- }
1407
- if (i < segments.length - 1) await adb.shell(`input${displayArg} keyevent 66`);
1388
+ if (segments[i].length > 0) await adb.inputText(segments[i]);
1389
+ if (i < segments.length - 1) await adb.keyevent(66);
1408
1390
  }
1409
1391
  }
1410
1392
  if (true === shouldAutoDismissKeyboard) await this.hideKeyboard(options);
@@ -1444,13 +1426,12 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1444
1426
  End: 123
1445
1427
  };
1446
1428
  const adb = await this.getAdb();
1447
- const displayArg = this.getDisplayArg();
1448
1429
  const normalizedKey = this.normalizeKeyName(key);
1449
1430
  const keyCode = keyCodeMap[normalizedKey];
1450
- if (void 0 !== keyCode) await adb.shell(`input${displayArg} keyevent ${keyCode}`);
1431
+ if (void 0 !== keyCode) await adb.keyevent(keyCode);
1451
1432
  else if (1 === key.length) {
1452
1433
  const asciiCode = key.toUpperCase().charCodeAt(0);
1453
- if (asciiCode >= 65 && asciiCode <= 90) await adb.shell(`input${displayArg} keyevent ${asciiCode - 36}`);
1434
+ if (asciiCode >= 65 && asciiCode <= 90) await adb.keyevent(asciiCode - 36);
1454
1435
  }
1455
1436
  }
1456
1437
  async tapPoint(point) {
@@ -1644,7 +1625,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1644
1625
  4
1645
1626
  ];
1646
1627
  for (const keyCode of keyCodes){
1647
- await adb.shell(`input${this.getDisplayArg()} keyevent ${keyCode}`);
1628
+ await adb.keyevent(keyCode);
1648
1629
  const startTime = Date.now();
1649
1630
  const intervalMs = 100;
1650
1631
  while(Date.now() - startTime < timeoutMs){
package/dist/lib/cli.js CHANGED
@@ -1315,19 +1315,12 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1315
1315
  x: element.center[0],
1316
1316
  y: element.center[1]
1317
1317
  });
1318
+ await this.ensureYadb();
1318
1319
  const adb = await this.getAdb();
1319
- const displayArg = this.getDisplayArg();
1320
- const isNonDefaultDisplay = 'number' == typeof this.options?.displayId && 0 !== this.options.displayId;
1321
1320
  const IME_STRATEGY = (this.options?.imeStrategy || env_namespaceObject.globalConfigManager.getEnvConfigValue(env_namespaceObject.MIDSCENE_ANDROID_IME_STRATEGY)) ?? IME_STRATEGY_YADB_FOR_NON_ASCII;
1322
- if (isNonDefaultDisplay) {
1323
- const keys = [];
1324
- for(let i = 0; i < 100; i++)keys.push('67', '112');
1325
- await adb.shell(`input${displayArg} keyevent ${keys.join(' ')}`);
1326
- } else if (IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII) {
1327
- await this.ensureYadb();
1328
- await adb.clearTextField(100);
1329
- } else {
1330
- await this.ensureYadb();
1321
+ if (IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII) await adb.clearTextField(100);
1322
+ else {
1323
+ this.warnYadbOnNonDefaultDisplay('keyboard clear');
1331
1324
  await adb.shell('app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -keyboardClear');
1332
1325
  }
1333
1326
  if (await adb.isSoftKeyboardPresent()) return;
@@ -1499,24 +1492,13 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1499
1492
  const adb = await this.getAdb();
1500
1493
  const IME_STRATEGY = (this.options?.imeStrategy || env_namespaceObject.globalConfigManager.getEnvConfigValue(env_namespaceObject.MIDSCENE_ANDROID_IME_STRATEGY)) ?? IME_STRATEGY_YADB_FOR_NON_ASCII;
1501
1494
  const shouldAutoDismissKeyboard = options?.autoDismissKeyboard ?? this.options?.autoDismissKeyboard ?? true;
1502
- const typeDelay = options?.keyboardTypeDelay ?? this.options?.keyboardTypeDelay;
1503
- const isNonDefaultDisplay = 'number' == typeof this.options?.displayId && 0 !== this.options.displayId;
1504
- const useYadb = !isNonDefaultDisplay && (IME_STRATEGY === IME_STRATEGY_ALWAYS_YADB || IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII && this.shouldUseYadbForText(text));
1495
+ const useYadb = IME_STRATEGY === IME_STRATEGY_ALWAYS_YADB || IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII && this.shouldUseYadbForText(text);
1505
1496
  if (useYadb) await this.execYadb(escapeForShell(text));
1506
1497
  else {
1507
- const displayArg = this.getDisplayArg();
1508
1498
  const segments = text.split('\n');
1509
1499
  for(let i = 0; i < segments.length; i++){
1510
- if (segments[i].length > 0) if (typeDelay && typeDelay > 0) for (const ch of segments[i]){
1511
- const escaped = ' ' === ch ? '%s' : ch;
1512
- await adb.shell(`input${displayArg} text ${escaped}`);
1513
- await (0, core_utils_namespaceObject.sleep)(typeDelay);
1514
- }
1515
- else {
1516
- const escaped = segments[i].replace(/ /g, '%s');
1517
- await adb.shell(`input${displayArg} text ${escaped}`);
1518
- }
1519
- if (i < segments.length - 1) await adb.shell(`input${displayArg} keyevent 66`);
1500
+ if (segments[i].length > 0) await adb.inputText(segments[i]);
1501
+ if (i < segments.length - 1) await adb.keyevent(66);
1520
1502
  }
1521
1503
  }
1522
1504
  if (true === shouldAutoDismissKeyboard) await this.hideKeyboard(options);
@@ -1556,13 +1538,12 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1556
1538
  End: 123
1557
1539
  };
1558
1540
  const adb = await this.getAdb();
1559
- const displayArg = this.getDisplayArg();
1560
1541
  const normalizedKey = this.normalizeKeyName(key);
1561
1542
  const keyCode = keyCodeMap[normalizedKey];
1562
- if (void 0 !== keyCode) await adb.shell(`input${displayArg} keyevent ${keyCode}`);
1543
+ if (void 0 !== keyCode) await adb.keyevent(keyCode);
1563
1544
  else if (1 === key.length) {
1564
1545
  const asciiCode = key.toUpperCase().charCodeAt(0);
1565
- if (asciiCode >= 65 && asciiCode <= 90) await adb.shell(`input${displayArg} keyevent ${asciiCode - 36}`);
1546
+ if (asciiCode >= 65 && asciiCode <= 90) await adb.keyevent(asciiCode - 36);
1566
1547
  }
1567
1548
  }
1568
1549
  async tapPoint(point) {
@@ -1756,7 +1737,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1756
1737
  4
1757
1738
  ];
1758
1739
  for (const keyCode of keyCodes){
1759
- await adb.shell(`input${this.getDisplayArg()} keyevent ${keyCode}`);
1740
+ await adb.keyevent(keyCode);
1760
1741
  const startTime = Date.now();
1761
1742
  const intervalMs = 100;
1762
1743
  while(Date.now() - startTime < timeoutMs){
@@ -2102,7 +2083,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
2102
2083
  const tools = new AndroidMidsceneTools();
2103
2084
  (0, cli_namespaceObject.runToolsCLI)(tools, 'midscene-android', {
2104
2085
  stripPrefix: 'android_',
2105
- version: "1.10.2-beta-20260706032158.0",
2086
+ version: "1.10.3",
2106
2087
  extraCommands: (0, core_namespaceObject.createReportCliCommands)()
2107
2088
  }).catch((e)=>{
2108
2089
  process.exit((0, cli_namespaceObject.reportCLIError)(e));
package/dist/lib/index.js CHANGED
@@ -1236,19 +1236,12 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1236
1236
  x: element.center[0],
1237
1237
  y: element.center[1]
1238
1238
  });
1239
+ await this.ensureYadb();
1239
1240
  const adb = await this.getAdb();
1240
- const displayArg = this.getDisplayArg();
1241
- const isNonDefaultDisplay = 'number' == typeof this.options?.displayId && 0 !== this.options.displayId;
1242
1241
  const IME_STRATEGY = (this.options?.imeStrategy || env_namespaceObject.globalConfigManager.getEnvConfigValue(env_namespaceObject.MIDSCENE_ANDROID_IME_STRATEGY)) ?? IME_STRATEGY_YADB_FOR_NON_ASCII;
1243
- if (isNonDefaultDisplay) {
1244
- const keys = [];
1245
- for(let i = 0; i < 100; i++)keys.push('67', '112');
1246
- await adb.shell(`input${displayArg} keyevent ${keys.join(' ')}`);
1247
- } else if (IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII) {
1248
- await this.ensureYadb();
1249
- await adb.clearTextField(100);
1250
- } else {
1251
- await this.ensureYadb();
1242
+ if (IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII) await adb.clearTextField(100);
1243
+ else {
1244
+ this.warnYadbOnNonDefaultDisplay('keyboard clear');
1252
1245
  await adb.shell('app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -keyboardClear');
1253
1246
  }
1254
1247
  if (await adb.isSoftKeyboardPresent()) return;
@@ -1420,24 +1413,13 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1420
1413
  const adb = await this.getAdb();
1421
1414
  const IME_STRATEGY = (this.options?.imeStrategy || env_namespaceObject.globalConfigManager.getEnvConfigValue(env_namespaceObject.MIDSCENE_ANDROID_IME_STRATEGY)) ?? IME_STRATEGY_YADB_FOR_NON_ASCII;
1422
1415
  const shouldAutoDismissKeyboard = options?.autoDismissKeyboard ?? this.options?.autoDismissKeyboard ?? true;
1423
- const typeDelay = options?.keyboardTypeDelay ?? this.options?.keyboardTypeDelay;
1424
- const isNonDefaultDisplay = 'number' == typeof this.options?.displayId && 0 !== this.options.displayId;
1425
- const useYadb = !isNonDefaultDisplay && (IME_STRATEGY === IME_STRATEGY_ALWAYS_YADB || IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII && this.shouldUseYadbForText(text));
1416
+ const useYadb = IME_STRATEGY === IME_STRATEGY_ALWAYS_YADB || IME_STRATEGY === IME_STRATEGY_YADB_FOR_NON_ASCII && this.shouldUseYadbForText(text);
1426
1417
  if (useYadb) await this.execYadb(escapeForShell(text));
1427
1418
  else {
1428
- const displayArg = this.getDisplayArg();
1429
1419
  const segments = text.split('\n');
1430
1420
  for(let i = 0; i < segments.length; i++){
1431
- if (segments[i].length > 0) if (typeDelay && typeDelay > 0) for (const ch of segments[i]){
1432
- const escaped = ' ' === ch ? '%s' : ch;
1433
- await adb.shell(`input${displayArg} text ${escaped}`);
1434
- await (0, utils_namespaceObject.sleep)(typeDelay);
1435
- }
1436
- else {
1437
- const escaped = segments[i].replace(/ /g, '%s');
1438
- await adb.shell(`input${displayArg} text ${escaped}`);
1439
- }
1440
- if (i < segments.length - 1) await adb.shell(`input${displayArg} keyevent 66`);
1421
+ if (segments[i].length > 0) await adb.inputText(segments[i]);
1422
+ if (i < segments.length - 1) await adb.keyevent(66);
1441
1423
  }
1442
1424
  }
1443
1425
  if (true === shouldAutoDismissKeyboard) await this.hideKeyboard(options);
@@ -1477,13 +1459,12 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1477
1459
  End: 123
1478
1460
  };
1479
1461
  const adb = await this.getAdb();
1480
- const displayArg = this.getDisplayArg();
1481
1462
  const normalizedKey = this.normalizeKeyName(key);
1482
1463
  const keyCode = keyCodeMap[normalizedKey];
1483
- if (void 0 !== keyCode) await adb.shell(`input${displayArg} keyevent ${keyCode}`);
1464
+ if (void 0 !== keyCode) await adb.keyevent(keyCode);
1484
1465
  else if (1 === key.length) {
1485
1466
  const asciiCode = key.toUpperCase().charCodeAt(0);
1486
- if (asciiCode >= 65 && asciiCode <= 90) await adb.shell(`input${displayArg} keyevent ${asciiCode - 36}`);
1467
+ if (asciiCode >= 65 && asciiCode <= 90) await adb.keyevent(asciiCode - 36);
1487
1468
  }
1488
1469
  }
1489
1470
  async tapPoint(point) {
@@ -1677,7 +1658,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1677
1658
  4
1678
1659
  ];
1679
1660
  for (const keyCode of keyCodes){
1680
- await adb.shell(`input${this.getDisplayArg()} keyevent ${keyCode}`);
1661
+ await adb.keyevent(keyCode);
1681
1662
  const startTime = Date.now();
1682
1663
  const intervalMs = 100;
1683
1664
  while(Date.now() - startTime < timeoutMs){
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@midscene/android",
3
- "version": "1.10.2-beta-20260706032158.0",
3
+ "version": "1.10.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/web-infra-dev/midscene.git",
@@ -41,8 +41,8 @@
41
41
  "@yume-chan/stream-extra": "2.1.0",
42
42
  "appium-adb": "12.12.1",
43
43
  "sharp": "^0.34.3",
44
- "@midscene/core": "1.10.2-beta-20260706032158.0",
45
- "@midscene/shared": "1.10.2-beta-20260706032158.0"
44
+ "@midscene/core": "1.10.3",
45
+ "@midscene/shared": "1.10.3"
46
46
  },
47
47
  "optionalDependencies": {
48
48
  "@ffmpeg-installer/ffmpeg": "^1.1.0"
@@ -56,7 +56,7 @@
56
56
  "undici": "^6.0.0",
57
57
  "vitest": "3.0.5",
58
58
  "zod": "^3.25.1",
59
- "@midscene/playground": "1.10.2-beta-20260706032158.0"
59
+ "@midscene/playground": "1.10.3"
60
60
  },
61
61
  "license": "MIT",
62
62
  "scripts": {