mirror of
https://github.com/callstack/agent-device.git
synced 2026-09-14 20:06:34 +08:00
b15121ffc8
* test(ios): add snapshot convergence evidence harness * fix(ios): satisfy benchmark CI guards * fix(ios): constrain benchmark proxy routes * fix(ios-benchmark): enforce cell admission evidence * fix(ios-benchmark): protect benchmark state ownership * fix(ios-benchmark): use proxy port flag * fix(ios-benchmark): let proxy choose an ephemeral port * test(ios-benchmark): keep CLI process seam local * fix(ios-benchmark): parse proxy startup envelope * fix(ios-benchmark): bind proxy lease to simulator * fix(ios-benchmark): keep fresh proxy CLI sessions isolated * fix(ios-benchmark): preserve async timeout evidence * docs(ios-benchmark): retain exact-head evidence * test(ios): reveal offscreen alert fixture controls * test(ios): reset alert between relaunch samples * test(ios): admit native alert snapshots * docs(ios): publish snapshot convergence corpus * chore(ios): format benchmark evidence * fix(ios-benchmark): admit proxy fixture anchors * docs(ios): republish exact-head benchmark corpus * fix(size): make publish asset evidence hermetic * style(size): format package evidence test * test(size): update publish preparation contracts * fix: retire stale utils layering zone * test: pin shared publish asset owner * test: verify preserved size reporter closure * fix: move mutation ownership to snapshot module * test(ios): add snapshot convergence evidence harness * fix(ios): satisfy benchmark CI guards * fix(ios): constrain benchmark proxy routes * fix(ios-benchmark): enforce cell admission evidence * fix(ios-benchmark): protect benchmark state ownership * fix(ios-benchmark): use proxy port flag * fix(ios-benchmark): let proxy choose an ephemeral port * test(ios-benchmark): keep CLI process seam local * fix(ios-benchmark): parse proxy startup envelope * fix(ios-benchmark): bind proxy lease to simulator * fix(ios-benchmark): keep fresh proxy CLI sessions isolated * fix(ios-benchmark): preserve async timeout evidence * docs(ios-benchmark): retain exact-head evidence * test(ios): reveal offscreen alert fixture controls * test(ios): reset alert between relaunch samples * test(ios): admit native alert snapshots * docs(ios): publish snapshot convergence corpus * chore(ios): format benchmark evidence * fix(ios-benchmark): admit proxy fixture anchors * docs(ios): republish exact-head benchmark corpus * fix(size): make publish asset evidence hermetic * test(size): update publish preparation contracts * fix: keep git-state gates out of mutation sandboxes
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { asRecord, readString } from './result-values.ts';
|
|
|
|
export type ProxyStartup = {
|
|
proxyBaseUrl: string;
|
|
agentDeviceBaseUrl: string;
|
|
token: string;
|
|
stateDir: string;
|
|
};
|
|
|
|
export function findProxyStartup(output: string): ProxyStartup | undefined {
|
|
const wholeOutput = parseProxyStartup(output);
|
|
if (wholeOutput) return wholeOutput;
|
|
for (const line of output.split('\n')) {
|
|
const startup = parseProxyStartup(line);
|
|
if (startup) return startup;
|
|
}
|
|
return undefined;
|
|
}
|
|
|
|
function parseProxyStartup(value: string): ProxyStartup | undefined {
|
|
const record = asRecord(asRecord(parseJson(value))?.data);
|
|
if (!record) return undefined;
|
|
const values = ['proxyBaseUrl', 'agentDeviceBaseUrl', 'token', 'stateDir'].map((key) =>
|
|
readString(record[key]),
|
|
);
|
|
if (values.some((value) => value === undefined)) return undefined;
|
|
return {
|
|
proxyBaseUrl: values[0]!,
|
|
agentDeviceBaseUrl: values[1]!,
|
|
token: values[2]!,
|
|
stateDir: values[3]!,
|
|
};
|
|
}
|
|
|
|
function parseJson(value: string): unknown {
|
|
try {
|
|
return JSON.parse(value.trim());
|
|
} catch {
|
|
return undefined;
|
|
}
|
|
}
|