* feat: add Frida instrumentation support * fix: resolve Frida CI checks * test: cover Frida contract validation branches * docs: link Frida instrumentation guide * fix(frida): handle cancellation cleanup safely * fix(frida): address PR review findings * fix(frida): preserve resume and message observations * fix(ci): use canonical registry for rolldown * fix(frida): declare foreign code effects * fix(frida): retain failed startup resources for cleanup retries Keep failed startup session and spawn handles owned until detach, resume, and remote lease cleanup complete. Serialize retries and release each remote reference once. Await CLI provider cleanup while preserving the primary failure and any completed observations. Add regressions for retained startup resources, concurrent cleanup, shared remote leases, and CLI cleanup outcomes. Validation: 41 focused tests pass on the PR head and its latest-main integration; serial static and docs checks pass. Real Linux Frida 17.23.2 workflows and the native spawn/controlled-failure cleanup probe pass. Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing) --------- Co-authored-by: N0zoM1z0 <1705004398@qq.com>
29 lines
940 B
TypeScript
29 lines
940 B
TypeScript
import type {
|
|
Device as VendorDevice,
|
|
DeviceManager as VendorDeviceManager,
|
|
Script as VendorScript,
|
|
Session as VendorSession,
|
|
} from "../../node_modules/frida/build/src/frida_binding.js";
|
|
import type { Device, DeviceManager, Script, Session } from "frida";
|
|
|
|
type Assert<Condition extends true> = Condition;
|
|
|
|
type VendorDeviceManagerFitsShim = Assert<
|
|
VendorDeviceManager extends DeviceManager ? true : false
|
|
>;
|
|
type VendorDeviceFitsShim = Assert<VendorDevice extends Device ? true : false>;
|
|
type VendorSessionFitsShim = Assert<
|
|
VendorSession extends Session ? true : false
|
|
>;
|
|
type VendorScriptFitsShim = Assert<VendorScript extends Script ? true : false>;
|
|
|
|
// These aliases intentionally fail when the pinned Frida API narrows incompatibly.
|
|
const compatibility: readonly [
|
|
VendorDeviceManagerFitsShim,
|
|
VendorDeviceFitsShim,
|
|
VendorSessionFitsShim,
|
|
VendorScriptFitsShim,
|
|
] = [true, true, true, true];
|
|
|
|
void compatibility;
|