@efffrida/vitest-pool 0.0.23 → 0.0.25
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/src/index.d.ts +17 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -114
- package/dist/src/index.js.map +1 -1
- package/package.json +11 -11
- package/src/index.ts +15 -138
package/dist/src/index.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import * as Schema from "effect/Schema";
|
|
2
2
|
import type * as VitestNode from "vitest/node";
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
* @category Schemas
|
|
6
|
+
*/
|
|
7
|
+
export declare const FridaSchema: Schema.Struct<{
|
|
4
8
|
readonly device: Schema.Union<readonly [Schema.Struct<{
|
|
5
9
|
readonly connection: Schema.Literal<"local">;
|
|
6
10
|
}>, Schema.Struct<{
|
|
@@ -22,15 +26,22 @@ declare const ConfigSchema: Schema.Struct<{
|
|
|
22
26
|
}>]>;
|
|
23
27
|
readonly attach: Schema.Union<readonly [Schema.Struct<{
|
|
24
28
|
readonly pid: Schema.Number;
|
|
29
|
+
readonly runtime: Schema.optional<Schema.Enum<typeof import("frida").ScriptRuntime>>;
|
|
30
|
+
readonly platform: Schema.optional<Schema.Enum<typeof import("frida").JsPlatform>>;
|
|
31
|
+
readonly realm: Schema.optional<Schema.Enum<typeof import("frida").Realm>>;
|
|
25
32
|
}>, Schema.Struct<{
|
|
26
33
|
readonly spawn: Schema.NonEmptyArray<Schema.String>;
|
|
27
34
|
readonly preSpawn: Schema.optional<Schema.Boolean>;
|
|
35
|
+
readonly runtime: Schema.optional<Schema.Enum<typeof import("frida").ScriptRuntime>>;
|
|
36
|
+
readonly platform: Schema.optional<Schema.Enum<typeof import("frida").JsPlatform>>;
|
|
37
|
+
readonly realm: Schema.optional<Schema.Enum<typeof import("frida").Realm>>;
|
|
28
38
|
}>, Schema.Struct<{
|
|
29
39
|
readonly attachFrontmost: Schema.Literal<true>;
|
|
30
|
-
readonly frontmostScope: Schema.optional<Schema.
|
|
40
|
+
readonly frontmostScope: Schema.optional<Schema.Enum<typeof import("frida").Scope>>;
|
|
41
|
+
readonly runtime: Schema.optional<Schema.Enum<typeof import("frida").ScriptRuntime>>;
|
|
42
|
+
readonly platform: Schema.optional<Schema.Enum<typeof import("frida").JsPlatform>>;
|
|
43
|
+
readonly realm: Schema.optional<Schema.Enum<typeof import("frida").Realm>>;
|
|
31
44
|
}>]>;
|
|
32
|
-
readonly runtime: Schema.optional<Schema.Literals<readonly ["default", "qjs", "v8"]>>;
|
|
33
|
-
readonly platform: Schema.optional<Schema.Literals<readonly ["gum", "browser", "neutral"]>>;
|
|
34
45
|
}>;
|
|
35
46
|
/**
|
|
36
47
|
* @since 1.0.0
|
|
@@ -44,7 +55,7 @@ export declare class FridaPoolWorker implements VitestNode.PoolWorker {
|
|
|
44
55
|
private readonly scriptContextPromise;
|
|
45
56
|
private readonly cancelables;
|
|
46
57
|
private sends;
|
|
47
|
-
constructor(poolOptions: VitestNode.PoolOptions, customOptions: Schema.Schema.Type<typeof
|
|
58
|
+
constructor(poolOptions: VitestNode.PoolOptions, customOptions: Schema.Schema.Type<typeof FridaSchema>);
|
|
48
59
|
start(): Promise<void>;
|
|
49
60
|
stop(): Promise<void>;
|
|
50
61
|
send(message: VitestNode.WorkerRequest): Promise<void>;
|
|
@@ -57,6 +68,5 @@ export declare class FridaPoolWorker implements VitestNode.PoolWorker {
|
|
|
57
68
|
* @since 1.0.0
|
|
58
69
|
* @category Tests
|
|
59
70
|
*/
|
|
60
|
-
export declare const createFridaPool: (customOptions: Schema.Codec.Encoded<typeof
|
|
61
|
-
export {};
|
|
71
|
+
export declare const createFridaPool: (customOptions: Schema.Codec.Encoded<typeof FridaSchema>) => VitestNode.PoolRunnerInitializer;
|
|
62
72
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAMxC,OAAO,KAAK,KAAK,UAAU,MAAM,aAAa,CAAC;AAQ/C;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGtB,CAAC;AAEH;;;GAGG;AACH,qBAAa,eAAgB,YAAW,UAAU,CAAC,UAAU;IACzD,SAAgB,IAAI,gBAAgB;IACpC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAoC;IAE5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAwD;IAC7E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAQnC;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsE;IAClG,OAAO,CAAC,KAAK,CAA+B;gBAEhC,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC;IAyDhG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5D,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAoDrD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAQvD,WAAW,CAAC,IAAI,EAAE,OAAO;IAKzB,SAAS,CAAC,IAAI,EAAE,OAAO;CAG1B;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GACxB,eAAe,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,KACxD,UAAU,CAAC,qBAMb,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,60 +1,27 @@
|
|
|
1
1
|
import * as Array from "effect/Array";
|
|
2
2
|
import * as Cause from "effect/Cause";
|
|
3
3
|
import * as Deferred from "effect/Deferred";
|
|
4
|
-
import * as Duration from "effect/Duration";
|
|
5
4
|
import * as Effect from "effect/Effect";
|
|
6
5
|
import * as Exit from "effect/Exit";
|
|
7
6
|
import * as FileSystem from "effect/FileSystem";
|
|
8
7
|
import * as Function from "effect/Function";
|
|
9
8
|
import * as Layer from "effect/Layer";
|
|
10
|
-
import * as Match from "effect/Match";
|
|
11
9
|
import * as Path from "effect/Path";
|
|
12
10
|
import * as Schema from "effect/Schema";
|
|
13
11
|
import * as Scope from "effect/Scope";
|
|
14
12
|
import * as Stream from "effect/Stream";
|
|
15
|
-
import * as ChildProcess from "effect/unstable/process/ChildProcess";
|
|
16
13
|
import * as NodeServices from "@effect/platform-node/NodeServices";
|
|
17
14
|
import * as FridaDevice from "@efffrida/frida-tools/FridaDevice";
|
|
18
15
|
import * as FridaScript from "@efffrida/frida-tools/FridaScript";
|
|
19
16
|
import * as FridaSession from "@efffrida/frida-tools/FridaSession";
|
|
20
17
|
import * as Flatted from "flatted";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}), /*#__PURE__*/Schema.Struct({
|
|
29
|
-
address: Schema.String,
|
|
30
|
-
connection: /*#__PURE__*/Schema.Literal("remote"),
|
|
31
|
-
token: /*#__PURE__*/Schema.optional(Schema.String),
|
|
32
|
-
origin: /*#__PURE__*/Schema.optional(Schema.String),
|
|
33
|
-
keepaliveInterval: /*#__PURE__*/Schema.optional(Schema.DurationFromMillis)
|
|
34
|
-
}), /*#__PURE__*/Schema.Struct({
|
|
35
|
-
emulatorName: Schema.String,
|
|
36
|
-
hidden: /*#__PURE__*/Schema.optional(Schema.Boolean),
|
|
37
|
-
adbExecutable: /*#__PURE__*/Schema.optional(Schema.String),
|
|
38
|
-
connection: /*#__PURE__*/Schema.Literal("android-emulator"),
|
|
39
|
-
fridaExecutable: /*#__PURE__*/Schema.optional(Schema.String),
|
|
40
|
-
emulatorExecutable: /*#__PURE__*/Schema.optional(Schema.String)
|
|
41
|
-
})]);
|
|
42
|
-
// Second, pick your session
|
|
43
|
-
const AttachSchema = /*#__PURE__*/Schema.Union([/*#__PURE__*/Schema.Struct({
|
|
44
|
-
pid: Schema.Number
|
|
45
|
-
}), /*#__PURE__*/Schema.Struct({
|
|
46
|
-
spawn: /*#__PURE__*/Schema.NonEmptyArray(Schema.String),
|
|
47
|
-
preSpawn: /*#__PURE__*/Schema.optional(Schema.Boolean)
|
|
48
|
-
}), /*#__PURE__*/Schema.Struct({
|
|
49
|
-
attachFrontmost: /*#__PURE__*/Schema.Literal(true),
|
|
50
|
-
frontmostScope: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Literals(["minimal", "metadata", "full"]))
|
|
51
|
-
})]);
|
|
52
|
-
// Third, pick your runtime and platform
|
|
53
|
-
const ConfigSchema = /*#__PURE__*/Schema.Struct({
|
|
54
|
-
device: DeviceSchema,
|
|
55
|
-
attach: AttachSchema,
|
|
56
|
-
runtime: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Literals(["default", "qjs", "v8"])),
|
|
57
|
-
platform: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Literals(["gum", "browser", "neutral"]))
|
|
18
|
+
/**
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
* @category Schemas
|
|
21
|
+
*/
|
|
22
|
+
export const FridaSchema = /*#__PURE__*/Schema.Struct({
|
|
23
|
+
device: FridaDevice.DeviceSchema,
|
|
24
|
+
attach: FridaSession.AttachSchema
|
|
58
25
|
});
|
|
59
26
|
/**
|
|
60
27
|
* @since 1.0.0
|
|
@@ -69,70 +36,8 @@ export class FridaPoolWorker {
|
|
|
69
36
|
cancelables = /*#__PURE__*/new Map();
|
|
70
37
|
sends = [];
|
|
71
38
|
constructor(poolOptions, customOptions) {
|
|
72
|
-
const
|
|
73
|
-
const
|
|
74
|
-
const DeviceLive = Match.value(customOptions.device).pipe(Match.when({
|
|
75
|
-
connection: "local"
|
|
76
|
-
}, () => FridaDevice.layerLocalDevice), Match.when({
|
|
77
|
-
connection: "usb"
|
|
78
|
-
}, ({
|
|
79
|
-
timeout
|
|
80
|
-
}) => FridaDevice.layerUsbDevice(timeout !== undefined ? {
|
|
81
|
-
timeout: Duration.toMillis(timeout)
|
|
82
|
-
} : {})), Match.when({
|
|
83
|
-
connection: "remote"
|
|
84
|
-
}, ({
|
|
85
|
-
address,
|
|
86
|
-
keepaliveInterval,
|
|
87
|
-
origin,
|
|
88
|
-
token
|
|
89
|
-
}) => FridaDevice.layerRemoteDevice(address, {
|
|
90
|
-
...(token !== undefined ? {
|
|
91
|
-
token
|
|
92
|
-
} : {}),
|
|
93
|
-
...(origin !== undefined ? {
|
|
94
|
-
origin
|
|
95
|
-
} : {}),
|
|
96
|
-
...(keepaliveInterval !== undefined ? {
|
|
97
|
-
keepaliveInterval: Duration.toMillis(keepaliveInterval)
|
|
98
|
-
} : {})
|
|
99
|
-
})), Match.when({
|
|
100
|
-
connection: "android-emulator"
|
|
101
|
-
}, ({
|
|
102
|
-
adbExecutable,
|
|
103
|
-
emulatorExecutable,
|
|
104
|
-
emulatorName,
|
|
105
|
-
fridaExecutable,
|
|
106
|
-
hidden
|
|
107
|
-
}) => FridaDevice.layerAndroidEmulatorDevice(emulatorName, {
|
|
108
|
-
hidden: hidden ?? undefined,
|
|
109
|
-
adbExecutable: adbExecutable ?? undefined,
|
|
110
|
-
fridaExecutable: fridaExecutable ?? undefined,
|
|
111
|
-
emulatorExecutable: emulatorExecutable ?? undefined
|
|
112
|
-
})), Match.exhaustive);
|
|
113
|
-
const SessionLive = Match.value(customOptions.attach).pipe(Match.when({
|
|
114
|
-
pid: Match.number
|
|
115
|
-
}, ({
|
|
116
|
-
pid
|
|
117
|
-
}) => FridaSession.layer(pid)), Match.when({
|
|
118
|
-
attachFrontmost: true
|
|
119
|
-
}, ({
|
|
120
|
-
frontmostScope
|
|
121
|
-
}) => {
|
|
122
|
-
return FridaSession.layerFrontmost(frontmostScope !== undefined ? {
|
|
123
|
-
scope: Match.value(frontmostScope).pipe(Match.when("minimal", () => Frida.Scope.Minimal), Match.when("metadata", () => Frida.Scope.Metadata), Match.when("full", () => Frida.Scope.Full), Match.exhaustive)
|
|
124
|
-
} : {});
|
|
125
|
-
}), Match.when({
|
|
126
|
-
preSpawn: true
|
|
127
|
-
}, ({
|
|
128
|
-
spawn
|
|
129
|
-
}) => Layer.unwrap(Effect.gen(function* () {
|
|
130
|
-
const [command, ...args] = spawn;
|
|
131
|
-
const handle = yield* ChildProcess.make(command, args);
|
|
132
|
-
return FridaSession.layer(handle.pid);
|
|
133
|
-
}))), Match.orElse(({
|
|
134
|
-
spawn
|
|
135
|
-
}) => FridaSession.layer(spawn)));
|
|
39
|
+
const DeviceLive = FridaDevice.DeviceLive(customOptions.device);
|
|
40
|
+
const SessionLive = FridaSession.SessionLive(customOptions.attach);
|
|
136
41
|
const FridaLive = Layer.provide(SessionLive, DeviceLive);
|
|
137
42
|
const ScriptLive = Effect.gen(function* () {
|
|
138
43
|
const path = yield* Path.Path;
|
|
@@ -161,15 +66,8 @@ export class FridaPoolWorker {
|
|
|
161
66
|
return await import("${file}")
|
|
162
67
|
}`), Array.join("\n"));
|
|
163
68
|
yield* fs.writeFileString(tempFile, baseAgent.replace(marker, newContent));
|
|
164
|
-
return
|
|
165
|
-
}).pipe(
|
|
166
|
-
...(FridaRuntime !== undefined ? {
|
|
167
|
-
runtime: FridaRuntime
|
|
168
|
-
} : {}),
|
|
169
|
-
...(FridaPlatform !== undefined ? {
|
|
170
|
-
platform: FridaPlatform
|
|
171
|
-
} : {})
|
|
172
|
-
})), Layer.unwrap, Layer.provide(FridaLive), Layer.provide(NodeServices.layer), Layer.satisfiesSuccessType());
|
|
69
|
+
return FridaScript.layer(tempFile);
|
|
70
|
+
}).pipe(Layer.unwrap, Layer.provide(FridaLive), Layer.provide(NodeServices.layer));
|
|
173
71
|
this.scope = Scope.makeUnsafe();
|
|
174
72
|
const prev = FridaPoolWorker.initQueue;
|
|
175
73
|
const runInit = () => ScriptLive.pipe(Layer.buildWithScope(this.scope), Effect.runPromiseExit);
|
|
@@ -244,7 +142,7 @@ export class FridaPoolWorker {
|
|
|
244
142
|
export const createFridaPool = customOptions => {
|
|
245
143
|
return {
|
|
246
144
|
name: "frida-pool",
|
|
247
|
-
createPoolWorker: options => new FridaPoolWorker(options, Schema.decodeUnknownSync(
|
|
145
|
+
createPoolWorker: options => new FridaPoolWorker(options, Schema.decodeUnknownSync(FridaSchema)(customOptions))
|
|
248
146
|
};
|
|
249
147
|
};
|
|
250
148
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Array","Cause","Deferred","Duration","Effect","Exit","FileSystem","Function","Layer","Match","Path","Schema","Scope","Stream","ChildProcess","NodeServices","FridaDevice","FridaScript","FridaSession","Flatted","Frida","DeviceSchema","Union","Struct","connection","Literal","timeout","optional","DurationFromMillis","address","String","token","origin","keepaliveInterval","emulatorName","hidden","Boolean","adbExecutable","fridaExecutable","emulatorExecutable","AttachSchema","pid","Number","spawn","NonEmptyArray","preSpawn","attachFrontmost","frontmostScope","Literals","ConfigSchema","device","attach","runtime","platform","FridaPoolWorker","name","initQueue","Promise","resolve","scope","scriptContext","undefined","scriptContextPromise","cancelables","Map","sends","constructor","poolOptions","customOptions","FridaRuntime","value","pipe","when","ScriptRuntime","V8","QJS","Default","exhaustive","FridaPlatform","JsPlatform","Gum","Browser","Neutral","DeviceLive","layerLocalDevice","layerUsbDevice","toMillis","layerRemoteDevice","layerAndroidEmulatorDevice","SessionLive","number","layer","layerFrontmost","Minimal","Metadata","Full","unwrap","gen","command","args","handle","make","orElse","FridaLive","provide","ScriptLive","path","fs","tempDir","join","project","config","root","makeDirectory","recursive","agentUrl","fromFileUrl","URL","import","meta","url","baseAgent","readFileString","tempFile","makeTempFileScoped","directory","prefix","suffix","setupFiles","testFiles","map","promise","globTestFiles","globalSetupFiles","isArray","globalSetup","marker","allFiles","flatten","newContent","file","writeFileString","replace","toFileUrl","satisfiesSuccessType","makeUnsafe","prev","runInit","buildWithScope","runPromiseExit","then","start","exit","isSuccess","prettyErrors","cause","stop","allSettled","cancelable","values","close","void","runPromise","clear","send","message","sendPromise","flatMap","fridaScript","callExport","runPromiseWith","push","filter","p","on","event","callback","set","runCallbackWith","runForEach","stream","input","sync","await","scriptError","onExit","hasInterruptsOnly","destroyed","Error","off","_event","get","delete","deserialize","data","parse","serialize","createFridaPool","createPoolWorker","options","decodeUnknownSync"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["Array","Cause","Deferred","Effect","Exit","FileSystem","Function","Layer","Path","Schema","Scope","Stream","NodeServices","FridaDevice","FridaScript","FridaSession","Flatted","FridaSchema","Struct","device","DeviceSchema","attach","AttachSchema","FridaPoolWorker","name","initQueue","Promise","resolve","scope","scriptContext","undefined","scriptContextPromise","cancelables","Map","sends","constructor","poolOptions","customOptions","DeviceLive","SessionLive","FridaLive","provide","ScriptLive","gen","path","fs","tempDir","join","project","config","root","makeDirectory","recursive","agentUrl","fromFileUrl","URL","import","meta","url","baseAgent","readFileString","tempFile","makeTempFileScoped","directory","prefix","suffix","setupFiles","testFiles","map","promise","globTestFiles","globalSetupFiles","isArray","globalSetup","make","marker","allFiles","flatten","newContent","pipe","file","writeFileString","replace","layer","unwrap","makeUnsafe","prev","runInit","buildWithScope","runPromiseExit","then","start","exit","isSuccess","value","prettyErrors","cause","stop","allSettled","cancelable","values","close","void","runPromise","clear","send","message","sendPromise","flatMap","fridaScript","callExport","runPromiseWith","push","filter","p","on","event","callback","set","runCallbackWith","runForEach","stream","input","sync","await","scriptError","onExit","hasInterruptsOnly","destroyed","Error","off","_event","get","delete","deserialize","data","parse","serialize","createFridaPool","createPoolWorker","options","decodeUnknownSync"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@efffrida/vitest-pool",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.25",
|
|
4
4
|
"description": "effect frida vitest-pool",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"effect-ts",
|
|
@@ -37,31 +37,31 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"frida": "17.10.1",
|
|
40
|
-
"ioredis": "5.11.
|
|
41
|
-
"@efffrida/frida-tools": "0.0.
|
|
40
|
+
"ioredis": "5.11.1",
|
|
41
|
+
"@efffrida/frida-tools": "0.0.35"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@effect/platform-node": "4.0.0-beta.69",
|
|
45
45
|
"@types/frida-gum": "19.4.0",
|
|
46
46
|
"@types/node": "25.9.1",
|
|
47
|
-
"@vitest/runner": "4.1.
|
|
48
|
-
"@vitest/utils": "4.1.
|
|
47
|
+
"@vitest/runner": "4.1.8",
|
|
48
|
+
"@vitest/utils": "4.1.8",
|
|
49
49
|
"birpc": "4.0.0",
|
|
50
50
|
"effect": "4.0.0-beta.69",
|
|
51
51
|
"flatted": "3.4.2",
|
|
52
|
-
"vite": "8.0.
|
|
53
|
-
"vitest": "4.1.
|
|
52
|
+
"vite": "8.0.16",
|
|
53
|
+
"vitest": "4.1.8",
|
|
54
54
|
"@efffrida/polyfills": "0.0.11"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
57
|
"@effect/platform-node": "4.0.0-beta.69",
|
|
58
|
-
"@vitest/runner": "4.1.
|
|
59
|
-
"@vitest/utils": "4.1.
|
|
58
|
+
"@vitest/runner": "4.1.8",
|
|
59
|
+
"@vitest/utils": "4.1.8",
|
|
60
60
|
"birpc": "4.0.0",
|
|
61
61
|
"effect": "4.0.0-beta.69",
|
|
62
62
|
"flatted": "3.4.2",
|
|
63
|
-
"vite": "8.0.
|
|
64
|
-
"vitest": "4.1.
|
|
63
|
+
"vite": "8.0.16",
|
|
64
|
+
"vitest": "4.1.8",
|
|
65
65
|
"@efffrida/polyfills": "0.0.11"
|
|
66
66
|
},
|
|
67
67
|
"tags": [
|
package/src/index.ts
CHANGED
|
@@ -4,18 +4,15 @@ import type * as PlatformError from "effect/PlatformError";
|
|
|
4
4
|
import * as Array from "effect/Array";
|
|
5
5
|
import * as Cause from "effect/Cause";
|
|
6
6
|
import * as Deferred from "effect/Deferred";
|
|
7
|
-
import * as Duration from "effect/Duration";
|
|
8
7
|
import * as Effect from "effect/Effect";
|
|
9
8
|
import * as Exit from "effect/Exit";
|
|
10
9
|
import * as FileSystem from "effect/FileSystem";
|
|
11
10
|
import * as Function from "effect/Function";
|
|
12
11
|
import * as Layer from "effect/Layer";
|
|
13
|
-
import * as Match from "effect/Match";
|
|
14
12
|
import * as Path from "effect/Path";
|
|
15
13
|
import * as Schema from "effect/Schema";
|
|
16
14
|
import * as Scope from "effect/Scope";
|
|
17
15
|
import * as Stream from "effect/Stream";
|
|
18
|
-
import * as ChildProcess from "effect/unstable/process/ChildProcess";
|
|
19
16
|
|
|
20
17
|
import type * as FridaDeviceAcquisitionError from "@efffrida/frida-tools/FridaDeviceAcquisitionError";
|
|
21
18
|
import type * as FridaSessionError from "@efffrida/frida-tools/FridaSessionError";
|
|
@@ -26,55 +23,14 @@ import * as FridaDevice from "@efffrida/frida-tools/FridaDevice";
|
|
|
26
23
|
import * as FridaScript from "@efffrida/frida-tools/FridaScript";
|
|
27
24
|
import * as FridaSession from "@efffrida/frida-tools/FridaSession";
|
|
28
25
|
import * as Flatted from "flatted";
|
|
29
|
-
import * as Frida from "frida";
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
timeout: Schema.optional(Schema.DurationFromMillis),
|
|
39
|
-
}),
|
|
40
|
-
Schema.Struct({
|
|
41
|
-
address: Schema.String,
|
|
42
|
-
connection: Schema.Literal("remote"),
|
|
43
|
-
token: Schema.optional(Schema.String),
|
|
44
|
-
origin: Schema.optional(Schema.String),
|
|
45
|
-
keepaliveInterval: Schema.optional(Schema.DurationFromMillis),
|
|
46
|
-
}),
|
|
47
|
-
Schema.Struct({
|
|
48
|
-
emulatorName: Schema.String,
|
|
49
|
-
hidden: Schema.optional(Schema.Boolean),
|
|
50
|
-
adbExecutable: Schema.optional(Schema.String),
|
|
51
|
-
connection: Schema.Literal("android-emulator"),
|
|
52
|
-
fridaExecutable: Schema.optional(Schema.String),
|
|
53
|
-
emulatorExecutable: Schema.optional(Schema.String),
|
|
54
|
-
}),
|
|
55
|
-
]);
|
|
56
|
-
|
|
57
|
-
// Second, pick your session
|
|
58
|
-
const AttachSchema = Schema.Union([
|
|
59
|
-
Schema.Struct({
|
|
60
|
-
pid: Schema.Number,
|
|
61
|
-
}),
|
|
62
|
-
Schema.Struct({
|
|
63
|
-
spawn: Schema.NonEmptyArray(Schema.String),
|
|
64
|
-
preSpawn: Schema.optional(Schema.Boolean),
|
|
65
|
-
}),
|
|
66
|
-
Schema.Struct({
|
|
67
|
-
attachFrontmost: Schema.Literal(true),
|
|
68
|
-
frontmostScope: Schema.optional(Schema.Literals(["minimal", "metadata", "full"])),
|
|
69
|
-
}),
|
|
70
|
-
]);
|
|
71
|
-
|
|
72
|
-
// Third, pick your runtime and platform
|
|
73
|
-
const ConfigSchema = Schema.Struct({
|
|
74
|
-
device: DeviceSchema,
|
|
75
|
-
attach: AttachSchema,
|
|
76
|
-
runtime: Schema.optional(Schema.Literals(["default", "qjs", "v8"])),
|
|
77
|
-
platform: Schema.optional(Schema.Literals(["gum", "browser", "neutral"])),
|
|
27
|
+
/**
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category Schemas
|
|
30
|
+
*/
|
|
31
|
+
export const FridaSchema = Schema.Struct({
|
|
32
|
+
device: FridaDevice.DeviceSchema,
|
|
33
|
+
attach: FridaSession.AttachSchema,
|
|
78
34
|
});
|
|
79
35
|
|
|
80
36
|
/**
|
|
@@ -100,79 +56,11 @@ export class FridaPoolWorker implements VitestNode.PoolWorker {
|
|
|
100
56
|
private readonly cancelables: Map<(arg: any) => void, (interrupter?: number) => void> = new Map();
|
|
101
57
|
private sends: Array<Promise<unknown>> = [];
|
|
102
58
|
|
|
103
|
-
constructor(poolOptions: VitestNode.PoolOptions, customOptions: Schema.Schema.Type<typeof
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
Match.when("v8", () => Frida.ScriptRuntime.V8),
|
|
107
|
-
Match.when("qjs", () => Frida.ScriptRuntime.QJS),
|
|
108
|
-
Match.when("default", () => Frida.ScriptRuntime.Default),
|
|
109
|
-
Match.exhaustive
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
const FridaPlatform = Match.value(customOptions.platform).pipe(
|
|
113
|
-
Match.when(undefined, () => undefined),
|
|
114
|
-
Match.when("gum", () => Frida.JsPlatform.Gum),
|
|
115
|
-
Match.when("browser", () => Frida.JsPlatform.Browser),
|
|
116
|
-
Match.when("neutral", () => Frida.JsPlatform.Neutral),
|
|
117
|
-
Match.exhaustive
|
|
118
|
-
);
|
|
119
|
-
|
|
120
|
-
const DeviceLive = Match.value(customOptions.device).pipe(
|
|
121
|
-
Match.when({ connection: "local" }, () => FridaDevice.layerLocalDevice),
|
|
122
|
-
Match.when({ connection: "usb" }, ({ timeout }) =>
|
|
123
|
-
FridaDevice.layerUsbDevice(timeout !== undefined ? { timeout: Duration.toMillis(timeout) } : {})
|
|
124
|
-
),
|
|
125
|
-
Match.when({ connection: "remote" }, ({ address, keepaliveInterval, origin, token }) =>
|
|
126
|
-
FridaDevice.layerRemoteDevice(address, {
|
|
127
|
-
...(token !== undefined ? { token } : {}),
|
|
128
|
-
...(origin !== undefined ? { origin } : {}),
|
|
129
|
-
...(keepaliveInterval !== undefined
|
|
130
|
-
? { keepaliveInterval: Duration.toMillis(keepaliveInterval) }
|
|
131
|
-
: {}),
|
|
132
|
-
})
|
|
133
|
-
),
|
|
134
|
-
Match.when(
|
|
135
|
-
{ connection: "android-emulator" },
|
|
136
|
-
({ adbExecutable, emulatorExecutable, emulatorName, fridaExecutable, hidden }) =>
|
|
137
|
-
FridaDevice.layerAndroidEmulatorDevice(emulatorName, {
|
|
138
|
-
hidden: hidden ?? undefined,
|
|
139
|
-
adbExecutable: adbExecutable ?? undefined,
|
|
140
|
-
fridaExecutable: fridaExecutable ?? undefined,
|
|
141
|
-
emulatorExecutable: emulatorExecutable ?? undefined,
|
|
142
|
-
})
|
|
143
|
-
),
|
|
144
|
-
Match.exhaustive
|
|
145
|
-
);
|
|
146
|
-
|
|
147
|
-
const SessionLive = Match.value(customOptions.attach).pipe(
|
|
148
|
-
Match.when({ pid: Match.number }, ({ pid }) => FridaSession.layer(pid)),
|
|
149
|
-
Match.when({ attachFrontmost: true }, ({ frontmostScope }) => {
|
|
150
|
-
return FridaSession.layerFrontmost(
|
|
151
|
-
frontmostScope !== undefined
|
|
152
|
-
? {
|
|
153
|
-
scope: Match.value(frontmostScope).pipe(
|
|
154
|
-
Match.when("minimal", () => Frida.Scope.Minimal),
|
|
155
|
-
Match.when("metadata", () => Frida.Scope.Metadata),
|
|
156
|
-
Match.when("full", () => Frida.Scope.Full),
|
|
157
|
-
Match.exhaustive
|
|
158
|
-
),
|
|
159
|
-
}
|
|
160
|
-
: {}
|
|
161
|
-
);
|
|
162
|
-
}),
|
|
163
|
-
Match.when({ preSpawn: true }, ({ spawn }) =>
|
|
164
|
-
Layer.unwrap(
|
|
165
|
-
Effect.gen(function* () {
|
|
166
|
-
const [command, ...args] = spawn;
|
|
167
|
-
const handle = yield* ChildProcess.make(command, args);
|
|
168
|
-
return FridaSession.layer(handle.pid);
|
|
169
|
-
})
|
|
170
|
-
)
|
|
171
|
-
),
|
|
172
|
-
Match.orElse(({ spawn }) => FridaSession.layer(spawn))
|
|
173
|
-
);
|
|
174
|
-
|
|
59
|
+
constructor(poolOptions: VitestNode.PoolOptions, customOptions: Schema.Schema.Type<typeof FridaSchema>) {
|
|
60
|
+
const DeviceLive = FridaDevice.DeviceLive(customOptions.device);
|
|
61
|
+
const SessionLive = FridaSession.SessionLive(customOptions.attach);
|
|
175
62
|
const FridaLive = Layer.provide(SessionLive, DeviceLive);
|
|
63
|
+
|
|
176
64
|
const ScriptLive = Effect.gen(function* () {
|
|
177
65
|
const path = yield* Path.Path;
|
|
178
66
|
const fs = yield* FileSystem.FileSystem;
|
|
@@ -212,19 +100,8 @@ export class FridaPoolWorker implements VitestNode.PoolWorker {
|
|
|
212
100
|
);
|
|
213
101
|
|
|
214
102
|
yield* fs.writeFileString(tempFile, baseAgent.replace(marker, newContent));
|
|
215
|
-
return
|
|
216
|
-
}).pipe(
|
|
217
|
-
Effect.map(
|
|
218
|
-
FridaScript.layer({
|
|
219
|
-
...(FridaRuntime !== undefined ? { runtime: FridaRuntime } : {}),
|
|
220
|
-
...(FridaPlatform !== undefined ? { platform: FridaPlatform } : {}),
|
|
221
|
-
})
|
|
222
|
-
),
|
|
223
|
-
Layer.unwrap,
|
|
224
|
-
Layer.provide(FridaLive),
|
|
225
|
-
Layer.provide(NodeServices.layer),
|
|
226
|
-
Layer.satisfiesSuccessType<FridaScript.FridaScript>()
|
|
227
|
-
);
|
|
103
|
+
return FridaScript.layer(tempFile);
|
|
104
|
+
}).pipe(Layer.unwrap, Layer.provide(FridaLive), Layer.provide(NodeServices.layer));
|
|
228
105
|
|
|
229
106
|
this.scope = Scope.makeUnsafe();
|
|
230
107
|
const prev = FridaPoolWorker.initQueue;
|
|
@@ -338,11 +215,11 @@ export class FridaPoolWorker implements VitestNode.PoolWorker {
|
|
|
338
215
|
* @category Tests
|
|
339
216
|
*/
|
|
340
217
|
export const createFridaPool = (
|
|
341
|
-
customOptions: Schema.Codec.Encoded<typeof
|
|
218
|
+
customOptions: Schema.Codec.Encoded<typeof FridaSchema>
|
|
342
219
|
): VitestNode.PoolRunnerInitializer => {
|
|
343
220
|
return {
|
|
344
221
|
name: "frida-pool",
|
|
345
222
|
createPoolWorker: (options: VitestNode.PoolOptions) =>
|
|
346
|
-
new FridaPoolWorker(options, Schema.decodeUnknownSync(
|
|
223
|
+
new FridaPoolWorker(options, Schema.decodeUnknownSync(FridaSchema)(customOptions)),
|
|
347
224
|
};
|
|
348
225
|
};
|