@swmansion/argent 0.29.1-next.22 → 0.29.1-next.24
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/bin/argent-android-devtools-0.3.0.apk +0 -0
- package/bin/darwin/ax-service +0 -0
- package/bin/darwin/tvos-ax-service +0 -0
- package/bin/darwin/tvos-hid-daemon +0 -0
- package/bin/tcp/ax-service +0 -0
- package/dist/cli-cmds.mjs +1 -1
- package/dist/installer.mjs +1 -1
- package/dist/tool-server.cjs +138 -34
- package/dylibs/libArgentInjectionBootstrap.dylib +0 -0
- package/dylibs/libKeyboardPatch.dylib +0 -0
- package/dylibs/libNativeDevtoolsIos.dylib +0 -0
- package/dylibs/tcp/libArgentInjectionBootstrap.dylib +0 -0
- package/dylibs/tcp/libKeyboardPatch.dylib +0 -0
- package/dylibs/tcp/libNativeDevtoolsIos.dylib +0 -0
- package/dylibs/tvos/libArgentInjectionBootstrap.dylib +0 -0
- package/dylibs/tvos/libKeyboardPatch.dylib +0 -0
- package/dylibs/tvos/libNativeDevtoolsIos.dylib +0 -0
- package/package.json +1 -1
|
Binary file
|
package/bin/darwin/ax-service
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/bin/tcp/ax-service
CHANGED
|
Binary file
|
package/dist/cli-cmds.mjs
CHANGED
|
@@ -35549,7 +35549,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
35549
35549
|
var SESSION_ID2 = randomUUID5();
|
|
35550
35550
|
function readCliVersion() {
|
|
35551
35551
|
if (true) {
|
|
35552
|
-
return "0.29.1-next.
|
|
35552
|
+
return "0.29.1-next.24";
|
|
35553
35553
|
}
|
|
35554
35554
|
return "0.0.0";
|
|
35555
35555
|
}
|
package/dist/installer.mjs
CHANGED
|
@@ -16875,7 +16875,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
16875
16875
|
var SESSION_ID = randomUUID4();
|
|
16876
16876
|
function readCliVersion() {
|
|
16877
16877
|
if (true) {
|
|
16878
|
-
return "0.29.1-next.
|
|
16878
|
+
return "0.29.1-next.24";
|
|
16879
16879
|
}
|
|
16880
16880
|
return "0.0.0";
|
|
16881
16881
|
}
|
package/dist/tool-server.cjs
CHANGED
|
@@ -100766,7 +100766,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
100766
100766
|
var SESSION_ID = (0, import_node_crypto3.randomUUID)();
|
|
100767
100767
|
function readCliVersion() {
|
|
100768
100768
|
if (true) {
|
|
100769
|
-
return "0.29.1-next.
|
|
100769
|
+
return "0.29.1-next.24";
|
|
100770
100770
|
}
|
|
100771
100771
|
return "0.0.0";
|
|
100772
100772
|
}
|
|
@@ -128117,6 +128117,7 @@ function androidDevtoolsRef(device) {
|
|
|
128117
128117
|
}
|
|
128118
128118
|
var READY_TIMEOUT_MS2 = 3e4;
|
|
128119
128119
|
var EXIT_GRACE_MS = 200;
|
|
128120
|
+
var HELPER_EXIT_TIMEOUT_MS = 3e3;
|
|
128120
128121
|
var HELPER_PORT_MARKER = /^INSTRUMENTATION_STATUS:\s*port=(\d+)/;
|
|
128121
128122
|
var ADB_FORWARD_PORT_MARKER = /^(\d+)\s*$/;
|
|
128122
128123
|
var HELPER_STATUS_MARKER = /^INSTRUMENTATION_STATUS:\s*Error=/;
|
|
@@ -128358,13 +128359,38 @@ var androidDevtoolsBlueprint = {
|
|
|
128358
128359
|
const spawned = await spawnHelperWithRepair(serial);
|
|
128359
128360
|
let ready2 = false;
|
|
128360
128361
|
let disposed = false;
|
|
128362
|
+
let procExited = false;
|
|
128363
|
+
spawned.proc.once("exit", () => {
|
|
128364
|
+
procExited = true;
|
|
128365
|
+
});
|
|
128366
|
+
let generation = 0;
|
|
128367
|
+
let activeGeneration = 0;
|
|
128368
|
+
let socketLost = false;
|
|
128369
|
+
let clientClosed = false;
|
|
128370
|
+
let reconnecting = null;
|
|
128371
|
+
const onClientClosed = (gen, err) => {
|
|
128372
|
+
if (gen !== activeGeneration) return;
|
|
128373
|
+
clientClosed = true;
|
|
128374
|
+
if (disposed) return;
|
|
128375
|
+
if (!procExited && getFailureSignal(err)?.error_code === FAILURE_CODES.ANDROID_DEVTOOLS_SOCKET_CLOSED) {
|
|
128376
|
+
socketLost = true;
|
|
128377
|
+
return;
|
|
128378
|
+
}
|
|
128379
|
+
events.emit("terminated", err);
|
|
128380
|
+
};
|
|
128381
|
+
const openClient = async () => {
|
|
128382
|
+
const gen = ++generation;
|
|
128383
|
+
const opened = await connectAndroidDevtoolsClient(
|
|
128384
|
+
spawned.localPort,
|
|
128385
|
+
(err) => onClientClosed(gen, err)
|
|
128386
|
+
);
|
|
128387
|
+
return { client: opened, gen };
|
|
128388
|
+
};
|
|
128361
128389
|
let client2;
|
|
128362
128390
|
try {
|
|
128363
|
-
|
|
128364
|
-
|
|
128365
|
-
|
|
128366
|
-
}
|
|
128367
|
-
});
|
|
128391
|
+
const opened = await openClient();
|
|
128392
|
+
client2 = opened.client;
|
|
128393
|
+
activeGeneration = opened.gen;
|
|
128368
128394
|
} catch (err) {
|
|
128369
128395
|
try {
|
|
128370
128396
|
spawned.proc.kill();
|
|
@@ -128404,10 +128430,60 @@ var androidDevtoolsBlueprint = {
|
|
|
128404
128430
|
spawned.proc.on("error", (err) => {
|
|
128405
128431
|
if (!disposed) events.emit("terminated", err);
|
|
128406
128432
|
});
|
|
128433
|
+
const reconnect = async () => {
|
|
128434
|
+
let opened;
|
|
128435
|
+
try {
|
|
128436
|
+
opened = await openClient();
|
|
128437
|
+
await opened.client.request("ping");
|
|
128438
|
+
} catch (err) {
|
|
128439
|
+
opened?.client.close();
|
|
128440
|
+
if (!disposed) events.emit("terminated", err instanceof Error ? err : void 0);
|
|
128441
|
+
throw err;
|
|
128442
|
+
}
|
|
128443
|
+
if (disposed) {
|
|
128444
|
+
opened.client.close();
|
|
128445
|
+
throw new FailureError("AndroidDevtools client closed", {
|
|
128446
|
+
error_code: FAILURE_CODES.ANDROID_DEVTOOLS_RPC_CLIENT_CLOSED,
|
|
128447
|
+
failure_stage: "android_devtools_rpc_reconnect",
|
|
128448
|
+
failure_area: "tool_server",
|
|
128449
|
+
error_kind: "subprocess"
|
|
128450
|
+
});
|
|
128451
|
+
}
|
|
128452
|
+
client2 = opened.client;
|
|
128453
|
+
activeGeneration = opened.gen;
|
|
128454
|
+
socketLost = false;
|
|
128455
|
+
clientClosed = false;
|
|
128456
|
+
return client2;
|
|
128457
|
+
};
|
|
128458
|
+
const waitForHelperExit = (timeoutMs) => new Promise((resolve16) => {
|
|
128459
|
+
if (procExited) return resolve16();
|
|
128460
|
+
const timer = setTimeout(resolve16, timeoutMs);
|
|
128461
|
+
spawned.proc.once("exit", () => {
|
|
128462
|
+
clearTimeout(timer);
|
|
128463
|
+
resolve16();
|
|
128464
|
+
});
|
|
128465
|
+
});
|
|
128466
|
+
const request3 = async (method, params) => {
|
|
128467
|
+
let current = client2;
|
|
128468
|
+
if (socketLost && !disposed && !procExited) {
|
|
128469
|
+
reconnecting ??= reconnect().finally(() => {
|
|
128470
|
+
reconnecting = null;
|
|
128471
|
+
});
|
|
128472
|
+
current = await reconnecting;
|
|
128473
|
+
}
|
|
128474
|
+
try {
|
|
128475
|
+
return await current.request(method, params);
|
|
128476
|
+
} catch (err) {
|
|
128477
|
+
if (!disposed && getFailureSignal(err)?.error_code === FAILURE_CODES.ANDROID_DEVTOOLS_RPC_ERROR && err instanceof Error && err.message.includes("UiAutomation not connected")) {
|
|
128478
|
+
events.emit("terminated", err);
|
|
128479
|
+
}
|
|
128480
|
+
throw err;
|
|
128481
|
+
}
|
|
128482
|
+
};
|
|
128407
128483
|
const api = {
|
|
128408
128484
|
isReady: () => ready2 && !disposed,
|
|
128409
128485
|
getHierarchy(getOpts = {}) {
|
|
128410
|
-
return
|
|
128486
|
+
return request3("getHierarchy", {
|
|
128411
128487
|
waitForIdleMs: getOpts.waitForIdleMs ?? 500,
|
|
128412
128488
|
maxDepth: getOpts.maxDepth ?? 128,
|
|
128413
128489
|
maxNodes: getOpts.maxNodes ?? 5e3,
|
|
@@ -128415,15 +128491,15 @@ var androidDevtoolsBlueprint = {
|
|
|
128415
128491
|
});
|
|
128416
128492
|
},
|
|
128417
128493
|
getScreenSize() {
|
|
128418
|
-
return
|
|
128494
|
+
return request3("getScreenSize");
|
|
128419
128495
|
},
|
|
128420
128496
|
ping() {
|
|
128421
|
-
return
|
|
128497
|
+
return request3("ping");
|
|
128422
128498
|
},
|
|
128423
128499
|
async setText(text, setOpts = {}) {
|
|
128424
128500
|
let result;
|
|
128425
128501
|
try {
|
|
128426
|
-
result = await
|
|
128502
|
+
result = await request3("setText", {
|
|
128427
128503
|
text,
|
|
128428
128504
|
...setOpts.check ? { check: true } : {}
|
|
128429
128505
|
});
|
|
@@ -128455,19 +128531,41 @@ var androidDevtoolsBlueprint = {
|
|
|
128455
128531
|
dispose: async () => {
|
|
128456
128532
|
disposed = true;
|
|
128457
128533
|
ready2 = false;
|
|
128458
|
-
|
|
128459
|
-
|
|
128460
|
-
|
|
128461
|
-
|
|
128462
|
-
|
|
128463
|
-
|
|
128464
|
-
|
|
128465
|
-
|
|
128534
|
+
let opening;
|
|
128535
|
+
let acknowledged = false;
|
|
128536
|
+
if (!procExited) {
|
|
128537
|
+
let timer;
|
|
128538
|
+
try {
|
|
128539
|
+
await Promise.race([
|
|
128540
|
+
(async () => {
|
|
128541
|
+
let target = client2;
|
|
128542
|
+
if (clientClosed) {
|
|
128543
|
+
opening = openClient();
|
|
128544
|
+
target = (await opening).client;
|
|
128545
|
+
}
|
|
128546
|
+
await target.request("shutdown");
|
|
128547
|
+
})(),
|
|
128548
|
+
new Promise((_, reject) => {
|
|
128549
|
+
timer = setTimeout(() => reject(new Error("shutdown timeout")), 1e3);
|
|
128550
|
+
})
|
|
128551
|
+
]);
|
|
128552
|
+
acknowledged = true;
|
|
128553
|
+
} catch {
|
|
128554
|
+
} finally {
|
|
128555
|
+
clearTimeout(timer);
|
|
128556
|
+
}
|
|
128466
128557
|
}
|
|
128558
|
+
if (acknowledged) await waitForHelperExit(HELPER_EXIT_TIMEOUT_MS);
|
|
128559
|
+
void opening?.then(
|
|
128560
|
+
(opened) => opened.client.close(),
|
|
128561
|
+
() => void 0
|
|
128562
|
+
);
|
|
128467
128563
|
client2.close();
|
|
128468
|
-
|
|
128469
|
-
|
|
128470
|
-
|
|
128564
|
+
if (!procExited) {
|
|
128565
|
+
try {
|
|
128566
|
+
spawned.proc.kill();
|
|
128567
|
+
} catch {
|
|
128568
|
+
}
|
|
128471
128569
|
}
|
|
128472
128570
|
await removeAdbForward(serial, spawned.localPort);
|
|
128473
128571
|
},
|
|
@@ -134819,7 +134917,7 @@ var NETWORK_INTERCEPTOR_SCRIPT = `(function() {
|
|
|
134819
134917
|
if (outcome === 'error') {
|
|
134820
134918
|
var text = '';
|
|
134821
134919
|
try { if (xhr.responseType === '' || xhr.responseType === 'text') text = xhr.responseText; } catch (e) {}
|
|
134822
|
-
return fail(rec, text ? String(text) : 'Network
|
|
134920
|
+
return fail(rec, text ? String(text) : 'Network request failed');
|
|
134823
134921
|
}
|
|
134824
134922
|
// RN sets responseURL only after it announces HEADERS_RECEIVED: this is the final URL.
|
|
134825
134923
|
if (rec.entry.response && xhr.responseURL) rec.entry.response.url = xhr.responseURL;
|
|
@@ -142414,18 +142512,19 @@ function parseDeviceStates(stdout) {
|
|
|
142414
142512
|
function parseSnapshot(stdout) {
|
|
142415
142513
|
const screenOn = !/mScreenOnFully=false/.test(stdout);
|
|
142416
142514
|
const wakefulness = /mWakefulness=([A-Za-z]+)/.exec(stdout)?.[1];
|
|
142515
|
+
const keyguard = /isKeyguardShowing=([a-z]+)/.exec(stdout)?.[1];
|
|
142417
142516
|
return {
|
|
142418
142517
|
state: /^\s*(\d+)\s*$/m.exec(stdout)?.[1],
|
|
142419
142518
|
screenOn,
|
|
142420
142519
|
awake: wakefulness ? !/^(Asleep|Dozing)$/.test(wakefulness) : screenOn,
|
|
142421
|
-
keyguard:
|
|
142520
|
+
keyguard: keyguard === void 0 ? void 0 : keyguard === "true"
|
|
142422
142521
|
};
|
|
142423
142522
|
}
|
|
142424
142523
|
async function readSnapshot(serial) {
|
|
142425
142524
|
return parseSnapshot(
|
|
142426
142525
|
await shell(
|
|
142427
142526
|
serial,
|
|
142428
|
-
"cmd device_state print-state; dumpsys window displays | grep -o 'mScreenOnFully=[a-z]*'; dumpsys power | grep -o 'mWakefulness=[A-Za-z]*'; dumpsys window | grep -o 'isKeyguardShowing=[a-z]*'"
|
|
142527
|
+
"cmd device_state print-state; dumpsys window displays | grep -o 'mScreenOnFully=[a-z]*'; dumpsys power | grep -o 'mWakefulness=[A-Za-z]*'; dumpsys window | grep -o 'isKeyguardShowing=[a-z]*'; true"
|
|
142429
142528
|
)
|
|
142430
142529
|
);
|
|
142431
142530
|
}
|
|
@@ -142461,12 +142560,16 @@ async function dismissFoldLockScreen(serial, signal) {
|
|
|
142461
142560
|
let lastAttempt = -Infinity;
|
|
142462
142561
|
const deadline = Date.now() + DISMISS_TIMEOUT_MS;
|
|
142463
142562
|
for (; ; ) {
|
|
142464
|
-
|
|
142563
|
+
const { keyguard } = await readSnapshot(serial);
|
|
142564
|
+
if (keyguard === false) {
|
|
142465
142565
|
if (++clear >= STABLE_READS) return void 0;
|
|
142466
142566
|
} else {
|
|
142467
142567
|
clear = 0;
|
|
142468
|
-
if (Date.now() >= deadline)
|
|
142469
|
-
|
|
142568
|
+
if (Date.now() >= deadline) {
|
|
142569
|
+
if (keyguard) break;
|
|
142570
|
+
return void 0;
|
|
142571
|
+
}
|
|
142572
|
+
if (keyguard && attempts < MAX_DISMISS_ATTEMPTS && Date.now() - lastAttempt >= DISMISS_SPACING_MS) {
|
|
142470
142573
|
attempts++;
|
|
142471
142574
|
lastAttempt = Date.now();
|
|
142472
142575
|
await shell(serial, "wm dismiss-keyguard");
|
|
@@ -142542,9 +142645,15 @@ async function fold(serial, params, device, signal) {
|
|
|
142542
142645
|
const stateName = last?.state !== void 0 ? byId.get(last.state) ?? last.state : "unknown";
|
|
142543
142646
|
const darkAwake = last?.state !== void 0 && last.awake && !last.screenOn;
|
|
142544
142647
|
const budget = `${SETTLE_TIMEOUT_MS2 / 1e3} s`;
|
|
142648
|
+
let lockScreen = last?.keyguard ?? false;
|
|
142649
|
+
let lockScreenWarning;
|
|
142650
|
+
if (stateName === "CLOSED" && !before.keyguard && last?.awake) {
|
|
142651
|
+
lockScreen = false;
|
|
142652
|
+
lockScreenWarning = await dismissFoldLockScreen(serial, signal);
|
|
142653
|
+
}
|
|
142545
142654
|
if (!settled && expected !== void 0) {
|
|
142546
142655
|
throw failed(
|
|
142547
|
-
last?.state === expected ? `${serial} reached device state ${stateName} for the ${params.posture} posture, but the device is awake and the screen did not stay on within ${budget}. Take a screenshot before the next action.` : `${serial} did not reach the ${params.posture} posture: the guest still reports device state ${stateName}. Fold again; a screenshot shows what the device renders.`,
|
|
142656
|
+
last?.state === expected ? `${serial} reached device state ${stateName} for the ${params.posture} posture, but the device is awake and the screen did not stay on within ${budget}. Take a screenshot before the next action.` + (lockScreenWarning ? ` ${lockScreenWarning}` : "") : `${serial} did not reach the ${params.posture} posture: the guest still reports device state ${stateName}. Fold again; a screenshot shows what the device renders.`,
|
|
142548
142657
|
"android_fold_unverified"
|
|
142549
142658
|
);
|
|
142550
142659
|
}
|
|
@@ -142558,12 +142667,7 @@ async function fold(serial, params, device, signal) {
|
|
|
142558
142667
|
`The screen did not hold steady within ${budget}. Take a screenshot before the next action.`
|
|
142559
142668
|
);
|
|
142560
142669
|
}
|
|
142561
|
-
|
|
142562
|
-
if (stateName === "CLOSED" && !before.keyguard && last?.awake) {
|
|
142563
|
-
lockScreen = false;
|
|
142564
|
-
const warning = await dismissFoldLockScreen(serial, signal);
|
|
142565
|
-
if (warning) warnings.push(warning);
|
|
142566
|
-
}
|
|
142670
|
+
if (lockScreenWarning) warnings.push(lockScreenWarning);
|
|
142567
142671
|
const screenOff = settled && last !== void 0 && !last.screenOn;
|
|
142568
142672
|
if (screenOff && lockScreen) {
|
|
142569
142673
|
warnings.push(
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED