@efffrida/vitest-pool 0.0.12 → 0.0.14
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/frida/agent.js +19 -74
- package/dist/frida/agent.js.map +1 -1
- package/dist/src/index.d.ts +38 -70
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +146 -316
- package/dist/src/index.js.map +1 -1
- package/package.json +19 -20
- package/src/index.ts +215 -382
package/dist/src/index.js
CHANGED
|
@@ -1,130 +1,102 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as Command from "@effect/platform/Command";
|
|
3
|
-
import * as CommandExecutor from "@effect/platform/CommandExecutor";
|
|
4
|
-
import * as FileSystem from "@effect/platform/FileSystem";
|
|
5
|
-
import * as Path from "@effect/platform/Path";
|
|
6
|
-
import * as FridaDevice from "@efffrida/frida-tools/FridaDevice";
|
|
7
|
-
import * as FridaScript from "@efffrida/frida-tools/FridaScript";
|
|
8
|
-
import * as FridaSession from "@efffrida/frida-tools/FridaSession";
|
|
1
|
+
import * as Array from "effect/Array";
|
|
9
2
|
import * as Cause from "effect/Cause";
|
|
10
3
|
import * as Deferred from "effect/Deferred";
|
|
11
4
|
import * as Duration from "effect/Duration";
|
|
12
5
|
import * as Effect from "effect/Effect";
|
|
13
6
|
import * as Exit from "effect/Exit";
|
|
7
|
+
import * as FileSystem from "effect/FileSystem";
|
|
8
|
+
import * as Function from "effect/Function";
|
|
14
9
|
import * as Layer from "effect/Layer";
|
|
15
|
-
import * as ManagedRuntime from "effect/ManagedRuntime";
|
|
16
10
|
import * as Match from "effect/Match";
|
|
11
|
+
import * as Path from "effect/Path";
|
|
17
12
|
import * as Schema from "effect/Schema";
|
|
18
13
|
import * as Scope from "effect/Scope";
|
|
19
|
-
import * as Sink from "effect/Sink";
|
|
20
14
|
import * as Stream from "effect/Stream";
|
|
21
|
-
import * as
|
|
15
|
+
import * as ChildProcess from "effect/unstable/process/ChildProcess";
|
|
16
|
+
import * as NodeServices from "@effect/platform-node/NodeServices";
|
|
17
|
+
import * as FridaDevice from "@efffrida/frida-tools/FridaDevice";
|
|
18
|
+
import * as FridaScript from "@efffrida/frida-tools/FridaScript";
|
|
19
|
+
import * as FridaSession from "@efffrida/frida-tools/FridaSession";
|
|
22
20
|
import * as Flatted from "flatted";
|
|
23
21
|
import * as Frida from "frida";
|
|
24
22
|
// First, pick your device
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
const DeviceSchema = /*#__PURE__*/Schema.Union([/*#__PURE__*/Schema.Struct({
|
|
24
|
+
connection: /*#__PURE__*/Schema.Literal("local")
|
|
27
25
|
}), /*#__PURE__*/Schema.Struct({
|
|
28
|
-
|
|
29
|
-
timeout: /*#__PURE__*/Schema.
|
|
30
|
-
nullable: true
|
|
31
|
-
})
|
|
26
|
+
connection: /*#__PURE__*/Schema.Literal("usb"),
|
|
27
|
+
timeout: /*#__PURE__*/Schema.optional(Schema.DurationFromMillis)
|
|
32
28
|
}), /*#__PURE__*/Schema.Struct({
|
|
33
29
|
address: Schema.String,
|
|
34
|
-
|
|
35
|
-
token: /*#__PURE__*/Schema.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
origin: /*#__PURE__*/Schema.optionalWith(Schema.String, {
|
|
39
|
-
nullable: true
|
|
40
|
-
}),
|
|
41
|
-
keepaliveInterval: /*#__PURE__*/Schema.optionalWith(Schema.DurationFromMillis, {
|
|
42
|
-
nullable: true
|
|
43
|
-
})
|
|
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)
|
|
44
34
|
}), /*#__PURE__*/Schema.Struct({
|
|
45
35
|
emulatorName: Schema.String,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}),
|
|
53
|
-
fridaExecutable: /*#__PURE__*/Schema.optionalWith(Schema.String, {
|
|
54
|
-
nullable: true
|
|
55
|
-
}),
|
|
56
|
-
emulatorExecutable: /*#__PURE__*/Schema.optionalWith(Schema.String, {
|
|
57
|
-
nullable: true
|
|
58
|
-
})
|
|
59
|
-
})) {}
|
|
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
|
+
})]);
|
|
60
42
|
// Second, pick your session
|
|
61
|
-
|
|
62
|
-
|
|
43
|
+
const AttachSchema = /*#__PURE__*/Schema.Union([/*#__PURE__*/Schema.Struct({
|
|
44
|
+
pid: Schema.Number
|
|
63
45
|
}), /*#__PURE__*/Schema.Struct({
|
|
64
|
-
spawn: /*#__PURE__*/Schema.
|
|
65
|
-
preSpawn: /*#__PURE__*/Schema.
|
|
66
|
-
nullable: true
|
|
67
|
-
})
|
|
46
|
+
spawn: /*#__PURE__*/Schema.NonEmptyArray(Schema.String),
|
|
47
|
+
preSpawn: /*#__PURE__*/Schema.optional(Schema.Boolean)
|
|
68
48
|
}), /*#__PURE__*/Schema.Struct({
|
|
69
49
|
attachFrontmost: /*#__PURE__*/Schema.Literal(true),
|
|
70
|
-
frontmostScope: /*#__PURE__*/Schema.
|
|
71
|
-
|
|
72
|
-
})
|
|
73
|
-
})) {}
|
|
50
|
+
frontmostScope: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Literals(["minimal", "metadata", "full"]))
|
|
51
|
+
})]);
|
|
74
52
|
// Third, pick your runtime and platform
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
platform: Schema.
|
|
80
|
-
|
|
81
|
-
})
|
|
82
|
-
}).pipe(/*#__PURE__*/Schema.extend(DeviceSchema), /*#__PURE__*/Schema.extend(AttachSchema)) {}
|
|
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"]))
|
|
58
|
+
});
|
|
83
59
|
/**
|
|
84
60
|
* @since 1.0.0
|
|
85
61
|
* @category Tests
|
|
86
62
|
*/
|
|
87
63
|
export class FridaPoolWorker {
|
|
88
64
|
name = "frida-pool";
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
cancelables;
|
|
93
|
-
modifiedAgentScope;
|
|
94
|
-
managedRuntime;
|
|
65
|
+
static initQueue = /*#__PURE__*/Promise.resolve();
|
|
66
|
+
scope;
|
|
67
|
+
scriptContext;
|
|
68
|
+
cancelables = /*#__PURE__*/new Map();
|
|
95
69
|
sends = [];
|
|
96
70
|
constructor(poolOptions, customOptions) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
this.modifiedAgentScope = Effect.runSync(Scope.make());
|
|
102
|
-
}
|
|
103
|
-
async start() {
|
|
104
|
-
const tempAgentUrl = await compileTestFiles(this.agentTemplatePath, this.poolOptions).pipe(Scope.extend(this.modifiedAgentScope), Effect.provide(NodeContext.layer), Effect.runPromise);
|
|
105
|
-
const FridaRuntime = Match.value(this.customOptions.runtime).pipe(Match.when(undefined, () => undefined), Match.when("v8", () => Frida.ScriptRuntime.V8), Match.when("qjs", () => Frida.ScriptRuntime.QJS), Match.when("default", () => Frida.ScriptRuntime.Default), Match.exhaustive);
|
|
106
|
-
const FridaPlatform = Match.value(this.customOptions.platform).pipe(Match.when(undefined, () => undefined), Match.when("gum", () => Frida.JsPlatform.Gum), Match.when("browser", () => Frida.JsPlatform.Browser), Match.when("neutral", () => Frida.JsPlatform.Neutral), Match.exhaustive);
|
|
107
|
-
const DeviceLive = Match.value(this.customOptions).pipe(Match.when({
|
|
108
|
-
device: "local"
|
|
71
|
+
const FridaRuntime = Match.value(customOptions.runtime).pipe(Match.when(undefined, () => undefined), Match.when("v8", () => Frida.ScriptRuntime.V8), Match.when("qjs", () => Frida.ScriptRuntime.QJS), Match.when("default", () => Frida.ScriptRuntime.Default), Match.exhaustive);
|
|
72
|
+
const FridaPlatform = Match.value(customOptions.platform).pipe(Match.when(undefined, () => undefined), Match.when("gum", () => Frida.JsPlatform.Gum), Match.when("browser", () => Frida.JsPlatform.Browser), Match.when("neutral", () => Frida.JsPlatform.Neutral), Match.exhaustive);
|
|
73
|
+
const DeviceLive = Match.value(customOptions.device).pipe(Match.when({
|
|
74
|
+
connection: "local"
|
|
109
75
|
}, () => FridaDevice.layerLocalDevice), Match.when({
|
|
110
|
-
|
|
76
|
+
connection: "usb"
|
|
111
77
|
}, ({
|
|
112
78
|
timeout
|
|
113
|
-
}) => FridaDevice.layerUsbDevice({
|
|
114
|
-
timeout:
|
|
115
|
-
})), Match.when({
|
|
116
|
-
|
|
79
|
+
}) => FridaDevice.layerUsbDevice(timeout !== undefined ? {
|
|
80
|
+
timeout: Duration.toMillis(timeout)
|
|
81
|
+
} : {})), Match.when({
|
|
82
|
+
connection: "remote"
|
|
117
83
|
}, ({
|
|
118
84
|
address,
|
|
119
85
|
keepaliveInterval,
|
|
120
86
|
origin,
|
|
121
87
|
token
|
|
122
88
|
}) => FridaDevice.layerRemoteDevice(address, {
|
|
123
|
-
token
|
|
124
|
-
|
|
125
|
-
|
|
89
|
+
...(token !== undefined ? {
|
|
90
|
+
token
|
|
91
|
+
} : {}),
|
|
92
|
+
...(origin !== undefined ? {
|
|
93
|
+
origin
|
|
94
|
+
} : {}),
|
|
95
|
+
...(keepaliveInterval !== undefined ? {
|
|
96
|
+
keepaliveInterval: Duration.toMillis(keepaliveInterval)
|
|
97
|
+
} : {})
|
|
126
98
|
})), Match.when({
|
|
127
|
-
|
|
99
|
+
connection: "android-emulator"
|
|
128
100
|
}, ({
|
|
129
101
|
adbExecutable,
|
|
130
102
|
emulatorExecutable,
|
|
@@ -132,88 +104,129 @@ export class FridaPoolWorker {
|
|
|
132
104
|
fridaExecutable,
|
|
133
105
|
hidden
|
|
134
106
|
}) => FridaDevice.layerAndroidEmulatorDevice(emulatorName, {
|
|
135
|
-
hidden,
|
|
136
|
-
adbExecutable,
|
|
137
|
-
fridaExecutable,
|
|
138
|
-
emulatorExecutable
|
|
107
|
+
hidden: hidden ?? undefined,
|
|
108
|
+
adbExecutable: adbExecutable ?? undefined,
|
|
109
|
+
fridaExecutable: fridaExecutable ?? undefined,
|
|
110
|
+
emulatorExecutable: emulatorExecutable ?? undefined
|
|
139
111
|
})), Match.exhaustive);
|
|
140
|
-
const SessionLive = Match.value(
|
|
141
|
-
|
|
112
|
+
const SessionLive = Match.value(customOptions.attach).pipe(Match.when({
|
|
113
|
+
pid: Match.number
|
|
142
114
|
}, ({
|
|
143
|
-
|
|
144
|
-
}) => FridaSession.layer(
|
|
115
|
+
pid
|
|
116
|
+
}) => FridaSession.layer(pid)), Match.when({
|
|
145
117
|
attachFrontmost: true
|
|
146
118
|
}, ({
|
|
147
119
|
frontmostScope
|
|
148
|
-
}) =>
|
|
149
|
-
|
|
150
|
-
|
|
120
|
+
}) => {
|
|
121
|
+
return FridaSession.layerFrontmost(frontmostScope !== undefined ? {
|
|
122
|
+
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)
|
|
123
|
+
} : {});
|
|
124
|
+
}), Match.when({
|
|
151
125
|
preSpawn: true
|
|
152
126
|
}, ({
|
|
153
127
|
spawn
|
|
154
|
-
}) => Layer.
|
|
155
|
-
const
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
return FridaSession.layer(process.pid);
|
|
128
|
+
}) => Layer.unwrap(Effect.gen(function* () {
|
|
129
|
+
const [command, ...args] = spawn;
|
|
130
|
+
const handle = yield* ChildProcess.make(command, args);
|
|
131
|
+
return FridaSession.layer(handle.pid);
|
|
159
132
|
}))), Match.orElse(({
|
|
160
133
|
spawn
|
|
161
134
|
}) => FridaSession.layer(spawn)));
|
|
162
|
-
const FridaLive = Layer.provide(SessionLive, DeviceLive)
|
|
163
|
-
const ScriptLive =
|
|
164
|
-
|
|
135
|
+
const FridaLive = Layer.provide(SessionLive, DeviceLive);
|
|
136
|
+
const ScriptLive = Effect.gen(function* () {
|
|
137
|
+
const path = yield* Path.Path;
|
|
138
|
+
const fs = yield* FileSystem.FileSystem;
|
|
139
|
+
const tempDir = path.join(poolOptions.project.config.root, "temp");
|
|
140
|
+
yield* fs.makeDirectory(tempDir, {
|
|
141
|
+
recursive: true
|
|
142
|
+
});
|
|
143
|
+
const agentUrl = yield* path.fromFileUrl(new URL("../frida/agent.ts", import.meta.url));
|
|
144
|
+
const baseAgent = yield* fs.readFileString(agentUrl);
|
|
145
|
+
const tempFile = yield* fs.makeTempFileScoped({
|
|
146
|
+
directory: tempDir,
|
|
147
|
+
prefix: ".vitest-frida-pool-agent-",
|
|
148
|
+
suffix: ".ts"
|
|
149
|
+
});
|
|
150
|
+
const setupFiles = poolOptions.project.config.setupFiles;
|
|
151
|
+
const testFiles = yield* Effect.map(Effect.promise(() => poolOptions.project.globTestFiles()), ({
|
|
152
|
+
testFiles
|
|
153
|
+
}) => testFiles);
|
|
154
|
+
const globalSetupFiles = Array.isArray(poolOptions.project.config.globalSetup) ? poolOptions.project.config.globalSetup : Array.make(poolOptions.project.config.globalSetup);
|
|
155
|
+
const marker = "// @efffrida/vitest-pool/agent/file-map";
|
|
156
|
+
const allFiles = Array.flatten([setupFiles, testFiles, globalSetupFiles]);
|
|
157
|
+
const newContent = Function.pipe(allFiles, Array.map(file => `
|
|
158
|
+
if (_file === "${file}") {
|
|
159
|
+
// @ts-ignore
|
|
160
|
+
return await import("${file}")
|
|
161
|
+
}`), Array.join("\n"));
|
|
162
|
+
yield* fs.writeFileString(tempFile, baseAgent.replace(marker, newContent));
|
|
163
|
+
return yield* path.toFileUrl(tempFile);
|
|
164
|
+
}).pipe(Effect.map(FridaScript.layer({
|
|
165
165
|
...(FridaRuntime !== undefined ? {
|
|
166
166
|
runtime: FridaRuntime
|
|
167
167
|
} : {}),
|
|
168
168
|
...(FridaPlatform !== undefined ? {
|
|
169
169
|
platform: FridaPlatform
|
|
170
170
|
} : {})
|
|
171
|
-
}).
|
|
172
|
-
this.
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
171
|
+
})), Layer.unwrap, Layer.provide(FridaLive), Layer.provide(NodeServices.layer), Layer.satisfiesSuccessType());
|
|
172
|
+
this.scope = Scope.makeUnsafe();
|
|
173
|
+
const prev = FridaPoolWorker.initQueue;
|
|
174
|
+
const runInit = () => ScriptLive.pipe(Layer.buildWithScope(this.scope), Effect.runPromise);
|
|
175
|
+
this.scriptContext = prev.then(runInit, runInit);
|
|
176
|
+
FridaPoolWorker.initQueue = this.scriptContext.then(() => undefined, () => undefined);
|
|
177
|
+
}
|
|
178
|
+
async start() {
|
|
179
|
+
await this.scriptContext;
|
|
177
180
|
}
|
|
178
181
|
async stop() {
|
|
182
|
+
await Promise.allSettled(this.sends);
|
|
179
183
|
for (const cancelable of this.cancelables.values()) cancelable();
|
|
184
|
+
await Scope.close(this.scope, Exit.void).pipe(Effect.runPromise);
|
|
180
185
|
this.cancelables.clear();
|
|
181
|
-
// await Promise.allSettled(this.sends);
|
|
182
|
-
await this.managedRuntime.dispose();
|
|
183
|
-
await Effect.runPromise(Scope.close(this.modifiedAgentScope, Exit.void));
|
|
184
186
|
}
|
|
185
187
|
async send(message) {
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
188
|
+
const context = await this.scriptContext;
|
|
189
|
+
let sendPromise = undefined;
|
|
190
|
+
try {
|
|
191
|
+
sendPromise = Effect.flatMap(FridaScript.FridaScript, fridaScript => fridaScript.callExport("onMessage")(message)).pipe(Effect.runPromiseWith(context));
|
|
192
|
+
this.sends.push(sendPromise);
|
|
193
|
+
await sendPromise;
|
|
194
|
+
} finally {
|
|
195
|
+
this.sends = this.sends.filter(p => p !== sendPromise);
|
|
196
|
+
}
|
|
193
197
|
}
|
|
194
198
|
on(event, callback) {
|
|
195
|
-
let cancelable;
|
|
196
|
-
const sink = Sink.forEach(input => Effect.sync(() => {
|
|
197
|
-
callback(input.message);
|
|
198
|
-
}));
|
|
199
199
|
switch (event) {
|
|
200
200
|
case "message":
|
|
201
|
-
|
|
202
|
-
|
|
201
|
+
{
|
|
202
|
+
this.scriptContext.then(ctx => {
|
|
203
|
+
this.cancelables.set(callback, Effect.runCallbackWith(ctx)(Effect.flatMap(FridaScript.FridaScript, fridaScript => Stream.runForEach(fridaScript.stream, input => Effect.sync(() => callback(input.message))))));
|
|
204
|
+
});
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
203
207
|
case "error":
|
|
204
|
-
|
|
205
|
-
|
|
208
|
+
this.scriptContext.then(ctx => {
|
|
209
|
+
this.cancelables.set(callback, Effect.runCallbackWith(ctx)(Effect.flatMap(FridaScript.FridaScript, fridaScript => Deferred.await(fridaScript.scriptError)), {
|
|
210
|
+
onExit: exit => {
|
|
211
|
+
if (Exit.isSuccess(exit)) {
|
|
212
|
+
callback(exit.value);
|
|
213
|
+
} else if (!Cause.hasInterruptsOnly(exit.cause)) {
|
|
214
|
+
callback(exit.cause);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}));
|
|
206
218
|
});
|
|
207
219
|
break;
|
|
208
220
|
case "exit":
|
|
209
|
-
|
|
210
|
-
|
|
221
|
+
this.scriptContext.then(ctx => {
|
|
222
|
+
this.cancelables.set(callback, Effect.runCallbackWith(ctx)(Effect.flatMap(FridaScript.FridaScript, fridaScript => Deferred.await(fridaScript.destroyed)), {
|
|
223
|
+
onExit: () => callback(void 0)
|
|
224
|
+
}));
|
|
211
225
|
});
|
|
212
226
|
break;
|
|
213
227
|
default:
|
|
214
228
|
throw new Error(`Event ${event} not supported in FridaPoolWorker`);
|
|
215
229
|
}
|
|
216
|
-
this.cancelables.set(callback, cancelable);
|
|
217
230
|
}
|
|
218
231
|
off(_event, callback) {
|
|
219
232
|
const cancelable = this.cancelables.get(callback);
|
|
@@ -234,192 +247,9 @@ export class FridaPoolWorker {
|
|
|
234
247
|
* @category Tests
|
|
235
248
|
*/
|
|
236
249
|
export const createFridaPool = customOptions => {
|
|
237
|
-
const decoded = Schema.decodeUnknownSync(ConfigSchema)(customOptions);
|
|
238
250
|
return {
|
|
239
251
|
name: "frida-pool",
|
|
240
|
-
createPoolWorker: options => new FridaPoolWorker(options,
|
|
252
|
+
createPoolWorker: options => new FridaPoolWorker(options, Schema.decodeUnknownSync(ConfigSchema)(customOptions))
|
|
241
253
|
};
|
|
242
254
|
};
|
|
243
|
-
/** @internal */
|
|
244
|
-
const vitestGlobalsPlugin = {
|
|
245
|
-
name: "vitest-globals",
|
|
246
|
-
setup(build) {
|
|
247
|
-
// Handle vitest and @vitest/* imports
|
|
248
|
-
build.onResolve({
|
|
249
|
-
filter: /^(vitest|@vitest\/.*)$/
|
|
250
|
-
}, args => ({
|
|
251
|
-
path: args.path,
|
|
252
|
-
namespace: "vitest-globals"
|
|
253
|
-
}));
|
|
254
|
-
build.onLoad({
|
|
255
|
-
filter: /.*/,
|
|
256
|
-
namespace: "vitest-globals"
|
|
257
|
-
}, args => {
|
|
258
|
-
if (args.path === "vitest") {
|
|
259
|
-
return {
|
|
260
|
-
loader: "js",
|
|
261
|
-
contents: "export * from 'VITEST_GLOBAL';\nexport { default } from 'VITEST_GLOBAL';"
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
if (args.path === "@vitest/runner") {
|
|
265
|
-
return {
|
|
266
|
-
loader: "js",
|
|
267
|
-
contents: "export * from 'VITEST_RUNNER_GLOBAL';\nexport { default } from 'VITEST_RUNNER_GLOBAL';"
|
|
268
|
-
};
|
|
269
|
-
}
|
|
270
|
-
return {
|
|
271
|
-
loader: "js",
|
|
272
|
-
contents: "export * from 'VITEST_GLOBAL';\nexport { default } from 'VITEST_GLOBAL';"
|
|
273
|
-
};
|
|
274
|
-
});
|
|
275
|
-
build.onResolve({
|
|
276
|
-
filter: /^VITEST_(GLOBAL|RUNNER_GLOBAL)$/
|
|
277
|
-
}, args => ({
|
|
278
|
-
path: args.path,
|
|
279
|
-
namespace: "vitest-synthetic"
|
|
280
|
-
}));
|
|
281
|
-
build.onLoad({
|
|
282
|
-
filter: /.*/,
|
|
283
|
-
namespace: "vitest-synthetic"
|
|
284
|
-
}, args => {
|
|
285
|
-
const globalName = args.path === "VITEST_GLOBAL" ? "__vitest" : "__vitest_runner";
|
|
286
|
-
return {
|
|
287
|
-
loader: "js",
|
|
288
|
-
contents: `
|
|
289
|
-
const g = globalThis.${globalName};
|
|
290
|
-
export default g;
|
|
291
|
-
export const {
|
|
292
|
-
describe, it, test, expect, vi, beforeAll, afterAll,
|
|
293
|
-
beforeEach, afterEach, suite, bench, assert
|
|
294
|
-
} = g;
|
|
295
|
-
`
|
|
296
|
-
};
|
|
297
|
-
});
|
|
298
|
-
// Handle Node.js built-in modules - redirect to globals set up by the agent
|
|
299
|
-
// The agent imports these from frida-compile's shims and exposes them as globals
|
|
300
|
-
const nodeModuleMap = {
|
|
301
|
-
"node:assert": "__node_assert",
|
|
302
|
-
"node:buffer": "__node_buffer",
|
|
303
|
-
"node:crypto": "__node_crypto",
|
|
304
|
-
"node:diagnostics_channel": "__node_diagnosticsChannel",
|
|
305
|
-
"node:events": "__node_events",
|
|
306
|
-
"node:fs": "__node_fs",
|
|
307
|
-
"node:net": "__node_net",
|
|
308
|
-
"node:os": "__node_os",
|
|
309
|
-
"node:path": "__node_path",
|
|
310
|
-
"node:process": "__node_process",
|
|
311
|
-
"node:stream": "__node_stream",
|
|
312
|
-
"node:timers": "__node_timers",
|
|
313
|
-
"node:tty": "__node_tty",
|
|
314
|
-
"node:url": "__node_url",
|
|
315
|
-
"node:util": "__node_util",
|
|
316
|
-
"node:vm": "__node_vm",
|
|
317
|
-
assert: "__node_assert",
|
|
318
|
-
buffer: "__node_buffer",
|
|
319
|
-
crypto: "__node_crypto",
|
|
320
|
-
diagnostics_channel: "__node_diagnosticsChannel",
|
|
321
|
-
events: "__node_events",
|
|
322
|
-
fs: "__node_fs",
|
|
323
|
-
net: "__node_net",
|
|
324
|
-
os: "__node_os",
|
|
325
|
-
path: "__node_path",
|
|
326
|
-
process: "__node_process",
|
|
327
|
-
stream: "__node_stream",
|
|
328
|
-
timers: "__node_timers",
|
|
329
|
-
tty: "__node_tty",
|
|
330
|
-
url: "__node_url",
|
|
331
|
-
util: "__node_util",
|
|
332
|
-
vm: "__node_vm"
|
|
333
|
-
};
|
|
334
|
-
build.onResolve({
|
|
335
|
-
filter: /^(node:)?(assert|buffer|crypto|diagnostics_channel|events|fs|net|os|path|process|stream|timers|tty|url|util|vm)$/
|
|
336
|
-
}, args => ({
|
|
337
|
-
path: args.path,
|
|
338
|
-
namespace: "node-globals"
|
|
339
|
-
}));
|
|
340
|
-
build.onLoad({
|
|
341
|
-
filter: /.*/,
|
|
342
|
-
namespace: "node-globals"
|
|
343
|
-
}, args => {
|
|
344
|
-
const globalName = nodeModuleMap[args.path];
|
|
345
|
-
if (!globalName) {
|
|
346
|
-
return {
|
|
347
|
-
loader: "js",
|
|
348
|
-
contents: "export default {};"
|
|
349
|
-
};
|
|
350
|
-
}
|
|
351
|
-
return {
|
|
352
|
-
loader: "js",
|
|
353
|
-
contents: `
|
|
354
|
-
const m = globalThis.${globalName};
|
|
355
|
-
export default m;
|
|
356
|
-
export const { Buffer } = m.Buffer ? m : { Buffer: m.default?.Buffer };
|
|
357
|
-
export * from 'NODE_MODULE_REEXPORT_${globalName}';
|
|
358
|
-
`
|
|
359
|
-
};
|
|
360
|
-
});
|
|
361
|
-
// Handle re-exports from node modules
|
|
362
|
-
build.onResolve({
|
|
363
|
-
filter: /^NODE_MODULE_REEXPORT_/
|
|
364
|
-
}, args => ({
|
|
365
|
-
path: args.path,
|
|
366
|
-
namespace: "node-reexport"
|
|
367
|
-
}));
|
|
368
|
-
build.onLoad({
|
|
369
|
-
filter: /.*/,
|
|
370
|
-
namespace: "node-reexport"
|
|
371
|
-
}, args => {
|
|
372
|
-
const globalName = args.path.replace("NODE_MODULE_REEXPORT_", "");
|
|
373
|
-
return {
|
|
374
|
-
loader: "js",
|
|
375
|
-
contents: `
|
|
376
|
-
const m = globalThis.${globalName};
|
|
377
|
-
const mod = m.default || m;
|
|
378
|
-
for (const key in mod) {
|
|
379
|
-
if (key !== 'default') {
|
|
380
|
-
Object.defineProperty(exports, key, {
|
|
381
|
-
enumerable: true,
|
|
382
|
-
get: () => mod[key]
|
|
383
|
-
});
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
`
|
|
387
|
-
};
|
|
388
|
-
});
|
|
389
|
-
}
|
|
390
|
-
};
|
|
391
|
-
/** @internal */
|
|
392
|
-
const compileTestFiles = /*#__PURE__*/Effect.fnUntraced(function* (agentTemplatePath, poolOptions, customOptions) {
|
|
393
|
-
const path = yield* Path.Path;
|
|
394
|
-
const fs = yield* FileSystem.FileSystem;
|
|
395
|
-
const url = yield* path.fromFileUrl(agentTemplatePath);
|
|
396
|
-
const testFiles = poolOptions.project.testFilesList ?? [];
|
|
397
|
-
const testFilesMap = {};
|
|
398
|
-
const esbuildPlatform = Match.value(customOptions?.platform).pipe(Match.when("browser", () => "browser"), Match.when("neutral", () => "neutral"), Match.whenOr("gum", undefined, () => "node"), Match.orElseAbsurd);
|
|
399
|
-
for (const testFile of testFiles) {
|
|
400
|
-
const result = yield* Effect.promise(() => Esbuild.build({
|
|
401
|
-
bundle: true,
|
|
402
|
-
write: false,
|
|
403
|
-
format: "esm",
|
|
404
|
-
platform: esbuildPlatform,
|
|
405
|
-
target: "es2020",
|
|
406
|
-
entryPoints: [testFile],
|
|
407
|
-
plugins: [vitestGlobalsPlugin]
|
|
408
|
-
}));
|
|
409
|
-
if (!result.outputFiles || result.outputFiles.length === 0) {
|
|
410
|
-
return yield* Effect.dieMessage(`esbuild produced no output for ${testFile}`);
|
|
411
|
-
} else {
|
|
412
|
-
testFilesMap[testFile] = Buffer.from(result.outputFiles[0].text).toString("base64");
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
const agentTemplateContents = yield* fs.readFileString(url);
|
|
416
|
-
const modifiedAgentContents = agentTemplateContents.replace(/^const testFiles: Record<string, string> = \{\};$/m, `const testFiles: Record<string, string> = ${JSON.stringify(testFilesMap, null, 4)};`);
|
|
417
|
-
const tempAgentPath = yield* fs.makeTempFileScoped({
|
|
418
|
-
suffix: ".ts",
|
|
419
|
-
prefix: ".agent-",
|
|
420
|
-
directory: path.dirname(url)
|
|
421
|
-
});
|
|
422
|
-
yield* fs.writeFileString(tempAgentPath, modifiedAgentContents);
|
|
423
|
-
return yield* path.toFileUrl(tempAgentPath);
|
|
424
|
-
});
|
|
425
255
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["NodeContext","Command","CommandExecutor","FileSystem","Path","FridaDevice","FridaScript","FridaSession","Cause","Deferred","Duration","Effect","Exit","Layer","ManagedRuntime","Match","Schema","Scope","Sink","Stream","Esbuild","Flatted","Frida","DeviceSchema","Union","Struct","device","Literal","timeout","optionalWith","DurationFromMillis","nullable","address","String","token","origin","keepaliveInterval","emulatorName","hidden","Boolean","adbExecutable","fridaExecutable","emulatorExecutable","AttachSchema","attach","Number","pipe","brand","spawn","NonEmptyArrayEnsure","preSpawn","attachFrontmost","frontmostScope","ConfigSchema","runtime","platform","extend","FridaPoolWorker","name","agentTemplatePath","URL","import","meta","url","poolOptions","customOptions","cancelables","modifiedAgentScope","managedRuntime","sends","constructor","Map","undefined","runSync","make","start","tempAgentUrl","compileTestFiles","provide","layer","runPromise","FridaRuntime","value","when","ScriptRuntime","V8","QJS","Default","exhaustive","FridaPlatform","JsPlatform","Gum","Browser","Neutral","DeviceLive","layerLocalDevice","layerUsbDevice","toMillis","layerRemoteDevice","toSeconds","layerAndroidEmulatorDevice","SessionLive","number","layerFrontmost","scope","unwrapScoped","gen","executor","command","process","pid","orElse","FridaLive","ScriptLive","externals","exit","runPromiseExit","void","isSuccess","prettyError","prettyErrors","cause","stop","cancelable","values","clear","dispose","close","send","message","sendPromise","flatMap","fridaScript","callExport","Void","push","filter","p","on","event","callback","sink","forEach","input","sync","runCallback","run","stream","await","scriptError","onExit","isInterruptedOnly","destroyed","Error","set","off","_event","get","delete","deserialize","data","parse","serialize","createFridaPool","decoded","decodeUnknownSync","createPoolWorker","options","vitestGlobalsPlugin","setup","build","onResolve","args","path","namespace","onLoad","loader","contents","globalName","nodeModuleMap","assert","buffer","crypto","diagnostics_channel","events","fs","net","os","timers","tty","util","vm","replace","fnUntraced","fromFileUrl","testFiles","project","testFilesList","testFilesMap","esbuildPlatform","whenOr","orElseAbsurd","testFile","result","promise","bundle","write","format","target","entryPoints","plugins","outputFiles","length","dieMessage","Buffer","from","text","toString","agentTemplateContents","readFileString","modifiedAgentContents","JSON","stringify","tempAgentPath","makeTempFileScoped","suffix","prefix","directory","dirname","writeFileString","toFileUrl"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAQA,OAAO,KAAKA,WAAW,MAAM,mCAAmC;AAChE,OAAO,KAAKC,OAAO,MAAM,0BAA0B;AACnD,OAAO,KAAKC,eAAe,MAAM,kCAAkC;AACnE,OAAO,KAAKC,UAAU,MAAM,6BAA6B;AACzD,OAAO,KAAKC,IAAI,MAAM,uBAAuB;AAC7C,OAAO,KAAKC,WAAW,MAAM,mCAAmC;AAChE,OAAO,KAAKC,WAAW,MAAM,mCAAmC;AAChE,OAAO,KAAKC,YAAY,MAAM,oCAAoC;AAClE,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,cAAc,MAAM,uBAAuB;AACvD,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,SAAS;AAClC,OAAO,KAAKC,OAAO,MAAM,SAAS;AAClC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B;AACA,MAAMC,YAAa,sBAAQP,MAAM,CAACQ,KAAK,cACnCR,MAAM,CAACS,MAAM,CAAC;EACVC,MAAM,eAAEV,MAAM,CAACW,OAAO,CAAC,OAAO;CACjC,CAAC,eACFX,MAAM,CAACS,MAAM,CAAC;EACVC,MAAM,eAAEV,MAAM,CAACW,OAAO,CAAC,KAAK,CAAC;EAC7BC,OAAO,eAAEZ,MAAM,CAACa,YAAY,CAACb,MAAM,CAACc,kBAAkB,EAAE;IAAEC,QAAQ,EAAE;EAAI,CAAE;CAC7E,CAAC,eACFf,MAAM,CAACS,MAAM,CAAC;EACVO,OAAO,EAAEhB,MAAM,CAACiB,MAAM;EACtBP,MAAM,eAAEV,MAAM,CAACW,OAAO,CAAC,QAAQ,CAAC;EAChCO,KAAK,eAAElB,MAAM,CAACa,YAAY,CAACb,MAAM,CAACiB,MAAM,EAAE;IAAEF,QAAQ,EAAE;EAAI,CAAE,CAAC;EAC7DI,MAAM,eAAEnB,MAAM,CAACa,YAAY,CAACb,MAAM,CAACiB,MAAM,EAAE;IAAEF,QAAQ,EAAE;EAAI,CAAE,CAAC;EAC9DK,iBAAiB,eAAEpB,MAAM,CAACa,YAAY,CAACb,MAAM,CAACc,kBAAkB,EAAE;IAAEC,QAAQ,EAAE;EAAI,CAAE;CACvF,CAAC,eACFf,MAAM,CAACS,MAAM,CAAC;EACVY,YAAY,EAAErB,MAAM,CAACiB,MAAM;EAC3BP,MAAM,eAAEV,MAAM,CAACW,OAAO,CAAC,kBAAkB,CAAC;EAC1CW,MAAM,eAAEtB,MAAM,CAACa,YAAY,CAACb,MAAM,CAACuB,OAAO,EAAE;IAAER,QAAQ,EAAE;EAAI,CAAE,CAAC;EAC/DS,aAAa,eAAExB,MAAM,CAACa,YAAY,CAACb,MAAM,CAACiB,MAAM,EAAE;IAAEF,QAAQ,EAAE;EAAI,CAAE,CAAC;EACrEU,eAAe,eAAEzB,MAAM,CAACa,YAAY,CAACb,MAAM,CAACiB,MAAM,EAAE;IAAEF,QAAQ,EAAE;EAAI,CAAE,CAAC;EACvEW,kBAAkB,eAAE1B,MAAM,CAACa,YAAY,CAACb,MAAM,CAACiB,MAAM,EAAE;IAAEF,QAAQ,EAAE;EAAI,CAAE;CAC5E,CAAC,CACL;AAED;AACA,MAAMY,YAAa,sBAAQ3B,MAAM,CAACQ,KAAK,cACnCR,MAAM,CAACS,MAAM,CAAC;EACVmB,MAAM,eAAE5B,MAAM,CAAC6B,MAAM,CAACC,IAAI,cAAC9B,MAAM,CAAC+B,KAAK,CAAC,KAAK,CAAC;CACjD,CAAC,eACF/B,MAAM,CAACS,MAAM,CAAC;EACVuB,KAAK,eAAEhC,MAAM,CAACiC,mBAAmB,CAACjC,MAAM,CAACiB,MAAM,CAAC;EAChDiB,QAAQ,eAAElC,MAAM,CAACa,YAAY,CAACb,MAAM,CAACuB,OAAO,EAAE;IAAER,QAAQ,EAAE;EAAI,CAAE;CACnE,CAAC,eACFf,MAAM,CAACS,MAAM,CAAC;EACV0B,eAAe,eAAEnC,MAAM,CAACW,OAAO,CAAC,IAAI,CAAC;EACrCyB,cAAc,eAAEpC,MAAM,CAACa,YAAY,cAACb,MAAM,CAACW,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;IAAEI,QAAQ,EAAE;EAAI,CAAE;CACxG,CAAC,CACL;AAED;AACA,MAAMsB,YAAa,sBAAQrC,MAAM,CAACS,MAAM,CAAC;EACrC6B,OAAO,EAAEtC,MAAM,CAACa,YAAY,CAACb,MAAM,CAACW,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE;IAAEI,QAAQ,EAAE;EAAI,CAAE,CAAC;EACxFwB,QAAQ,EAAEvC,MAAM,CAACa,YAAY,CAACb,MAAM,CAACW,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;IAAEI,QAAQ,EAAE;EAAI,CAAE;CAChG,CAAC,CACGe,IAAI,cAAC9B,MAAM,CAACwC,MAAM,CAACjC,YAAY,CAAC,eAAEP,MAAM,CAACwC,MAAM,CAACb,YAAY,CAAC,CAAC;AAEnE;;;;AAIA,OAAM,MAAOc,eAAe;EACfC,IAAI,GAAG,YAAY;EACnBC,iBAAiB,gBAAG,IAAIC,GAAG,CAAC,mBAAmB,EAAEC,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;EAEzDC,WAAW;EACXC,aAAa;EAEbC,WAAW;EAUpBC,kBAAkB;EAClBC,cAAc;EAQdC,KAAK,GAUT,EAAE;EAENC,YAAYN,WAAmC,EAAEC,aAA+C;IAC5F,IAAI,CAACD,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,WAAW,GAAG,IAAIK,GAAG,EAAE;IAC5B,IAAI,CAACH,cAAc,GAAGI,SAAS;IAC/B,IAAI,CAACL,kBAAkB,GAAGxD,MAAM,CAAC8D,OAAO,CAACxD,KAAK,CAACyD,IAAI,EAAE,CAAC;EAC1D;EAEA,MAAMC,KAAKA,CAAA;IACP,MAAMC,YAAY,GAAG,MAAMC,gBAAgB,CAAC,IAAI,CAAClB,iBAAiB,EAAE,IAAI,CAACK,WAAW,CAAC,CAAClB,IAAI,CACtF7B,KAAK,CAACuC,MAAM,CAAC,IAAI,CAACW,kBAAkB,CAAC,EACrCxD,MAAM,CAACmE,OAAO,CAAC9E,WAAW,CAAC+E,KAAK,CAAC,EACjCpE,MAAM,CAACqE,UAAU,CACpB;IAED,MAAMC,YAAY,GAAGlE,KAAK,CAACmE,KAAK,CAAC,IAAI,CAACjB,aAAa,CAACX,OAAO,CAAC,CAACR,IAAI,CAC7D/B,KAAK,CAACoE,IAAI,CAACX,SAAS,EAAE,MAAMA,SAAS,CAAC,EACtCzD,KAAK,CAACoE,IAAI,CAAC,IAAI,EAAE,MAAM7D,KAAK,CAAC8D,aAAa,CAACC,EAAE,CAAC,EAC9CtE,KAAK,CAACoE,IAAI,CAAC,KAAK,EAAE,MAAM7D,KAAK,CAAC8D,aAAa,CAACE,GAAG,CAAC,EAChDvE,KAAK,CAACoE,IAAI,CAAC,SAAS,EAAE,MAAM7D,KAAK,CAAC8D,aAAa,CAACG,OAAO,CAAC,EACxDxE,KAAK,CAACyE,UAAU,CACnB;IAED,MAAMC,aAAa,GAAG1E,KAAK,CAACmE,KAAK,CAAC,IAAI,CAACjB,aAAa,CAACV,QAAQ,CAAC,CAACT,IAAI,CAC/D/B,KAAK,CAACoE,IAAI,CAACX,SAAS,EAAE,MAAMA,SAAS,CAAC,EACtCzD,KAAK,CAACoE,IAAI,CAAC,KAAK,EAAE,MAAM7D,KAAK,CAACoE,UAAU,CAACC,GAAG,CAAC,EAC7C5E,KAAK,CAACoE,IAAI,CAAC,SAAS,EAAE,MAAM7D,KAAK,CAACoE,UAAU,CAACE,OAAO,CAAC,EACrD7E,KAAK,CAACoE,IAAI,CAAC,SAAS,EAAE,MAAM7D,KAAK,CAACoE,UAAU,CAACG,OAAO,CAAC,EACrD9E,KAAK,CAACyE,UAAU,CACnB;IAED,MAAMM,UAAU,GAAG/E,KAAK,CAACmE,KAAK,CAAC,IAAI,CAACjB,aAAa,CAAC,CAACnB,IAAI,CACnD/B,KAAK,CAACoE,IAAI,CAAC;MAAEzD,MAAM,EAAE;IAAO,CAAE,EAAE,MAAMrB,WAAW,CAAC0F,gBAAgB,CAAC,EACnEhF,KAAK,CAACoE,IAAI,CAAC;MAAEzD,MAAM,EAAE;IAAK,CAAE,EAAE,CAAC;MAAEE;IAAO,CAAE,KACtCvB,WAAW,CAAC2F,cAAc,CAAC;MACvBpE,OAAO,EAAEA,OAAO,GAAGlB,QAAQ,CAACuF,QAAQ,CAACrE,OAAO,CAAC,GAAG4C;KACzB,CAAC,CAC/B,EACDzD,KAAK,CAACoE,IAAI,CAAC;MAAEzD,MAAM,EAAE;IAAQ,CAAE,EAAE,CAAC;MAAEM,OAAO;MAAEI,iBAAiB;MAAED,MAAM;MAAED;IAAK,CAAE,KAC3E7B,WAAW,CAAC6F,iBAAiB,CAAClE,OAAO,EAAE;MACnCE,KAAK;MACLC,MAAM;MACNC,iBAAiB,EAAEA,iBAAiB,GAAG1B,QAAQ,CAACyF,SAAS,CAAC/D,iBAAiB,CAAC,GAAGoC;KACrD,CAAC,CAClC,EACDzD,KAAK,CAACoE,IAAI,CACN;MAAEzD,MAAM,EAAE;IAAkB,CAAE,EAC9B,CAAC;MAAEc,aAAa;MAAEE,kBAAkB;MAAEL,YAAY;MAAEI,eAAe;MAAEH;IAAM,CAAE,KACzEjC,WAAW,CAAC+F,0BAA0B,CAAC/D,YAAY,EAAE;MACjDC,MAAM;MACNE,aAAa;MACbC,eAAe;MACfC;KACH,CAAC,CACT,EACD3B,KAAK,CAACyE,UAAU,CACnB;IAED,MAAMa,WAAW,GAAGtF,KAAK,CAACmE,KAAK,CAAC,IAAI,CAACjB,aAAa,CAAC,CAACnB,IAAI,CACpD/B,KAAK,CAACoE,IAAI,CAAC;MAAEvC,MAAM,EAAE7B,KAAK,CAACuF;IAAM,CAAE,EAAE,CAAC;MAAE1D;IAAM,CAAE,KAAKrC,YAAY,CAACwE,KAAK,CAACnC,MAAM,CAAC,CAAC,EAChF7B,KAAK,CAACoE,IAAI,CAAC;MAAEhC,eAAe,EAAE;IAAI,CAAE,EAAE,CAAC;MAAEC;IAAc,CAAE,KACrD7C,YAAY,CAACgG,cAAc,CAAC;MAAEC,KAAK,EAAEpD;IAAc,CAAiC,CAAC,CACxF,EACDrC,KAAK,CAACoE,IAAI,CAAC;MAAEjC,QAAQ,EAAE;IAAI,CAAE,EAAE,CAAC;MAAEF;IAAK,CAAE,KACrCnC,KAAK,CAAC4F,YAAY,CACd9F,MAAM,CAAC+F,GAAG,CAAC,aAAS;MAChB,MAAMC,QAAQ,GAAG,OAAOzG,eAAe,CAACA,eAAe;MACvD,MAAM0G,OAAO,GAAG3G,OAAO,CAACyE,IAAI,CAAC,GAAG1B,KAAK,CAAC;MACtC,MAAM6D,OAAO,GAAG,OAAOF,QAAQ,CAAChC,KAAK,CAACiC,OAAO,CAAC;MAC9C,OAAOrG,YAAY,CAACwE,KAAK,CAAC8B,OAAO,CAACC,GAAG,CAAC;IAC1C,CAAC,CAAC,CACL,CACJ,EACD/F,KAAK,CAACgG,MAAM,CAAC,CAAC;MAAE/D;IAAK,CAAE,KAAKzC,YAAY,CAACwE,KAAK,CAAC/B,KAAK,CAAC,CAAC,CACzD;IAED,MAAMgE,SAAS,GAAGnG,KAAK,CAACiE,OAAO,CAACuB,WAAW,EAAEP,UAAU,CAAC,CAAChD,IAAI,CAACjC,KAAK,CAACiE,OAAO,CAAC9E,WAAW,CAAC+E,KAAK,CAAC,CAAC;IAC/F,MAAMkC,UAAU,GAAG3G,WAAW,CAACyE,KAAK,CAACH,YAAY,EAAE;MAC/CsC,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,kBAAkB,CAAC;MACrD,IAAIjC,YAAY,KAAKT,SAAS,GAAG;QAAElB,OAAO,EAAE2B;MAAY,CAAE,GAAG,EAAE,CAAC;MAChE,IAAIQ,aAAa,KAAKjB,SAAS,GAAG;QAAEjB,QAAQ,EAAEkC;MAAa,CAAE,GAAG,EAAE;KACrE,CAAC,CAAC3C,IAAI,CAACjC,KAAK,CAACiE,OAAO,CAACkC,SAAS,CAAC,CAAC;IAEjC,IAAI,CAAC5C,cAAc,GAAGtD,cAAc,CAAC4D,IAAI,CAACuC,UAAU,CAAC;IAErD,MAAME,IAAI,GAAG,MAAM,IAAI,CAAC/C,cAAc,CAACgD,cAAc,CAACzG,MAAM,CAAC0G,IAAI,CAAC;IAClE,IAAIzG,IAAI,CAAC0G,SAAS,CAACH,IAAI,CAAC,EAAE;IAC1B,MAAMI,WAAW,GAAG/G,KAAK,CAACgH,YAAY,CAACL,IAAI,CAACM,KAAK,CAAC;IAClD,MAAMF,WAAW,CAAC,CAAC,CAAC;EACxB;EAEA,MAAMG,IAAIA,CAAA;IACN,KAAK,MAAMC,UAAU,IAAI,IAAI,CAACzD,WAAW,CAAC0D,MAAM,EAAE,EAAED,UAAU,EAAE;IAChE,IAAI,CAACzD,WAAW,CAAC2D,KAAK,EAAE;IACxB;IACA,MAAM,IAAI,CAACzD,cAAe,CAAC0D,OAAO,EAAE;IACpC,MAAMnH,MAAM,CAACqE,UAAU,CAAC/D,KAAK,CAAC8G,KAAK,CAAC,IAAI,CAAC5D,kBAAkB,EAAEvD,IAAI,CAACyG,IAAI,CAAC,CAAC;EAC5E;EAEA,MAAMW,IAAIA,CAACC,OAAiC;IACxC,MAAMC,WAAW,GAAG,IAAI,CAAC9D,cAAe,CAACgD,cAAc,CACnDzG,MAAM,CAACwH,OAAO,CAAC7H,WAAW,CAACA,WAAW,EAAG8H,WAAW,IAChDA,WAAW,CAACC,UAAU,CAAC,WAAW,EAAErH,MAAM,CAACsH,IAAI,CAAC,CAACL,OAAO,CAAC,CAC5D,CACJ;IAED,IAAI,CAAC5D,KAAK,CAACkE,IAAI,CAACL,WAAW,CAAC;IAC5B,MAAMf,IAAI,GAAG,MAAMe,WAAW;IAC9B,IAAI,CAAC7D,KAAK,GAAG,IAAI,CAACA,KAAK,CAACmE,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAKP,WAAW,CAAC;IACxD,IAAItH,IAAI,CAAC0G,SAAS,CAACH,IAAI,CAAC,EAAE;IAC1B,MAAMI,WAAW,GAAG/G,KAAK,CAACgH,YAAY,CAACL,IAAI,CAACM,KAAK,CAAC;IAClD,MAAMF,WAAW,CAAC,CAAC,CAAC;EACxB;EAEAmB,EAAEA,CAACC,KAAa,EAAEC,QAA4B;IAC1C,IAAIjB,UAKH;IAED,MAAMkB,IAAI,GAAG3H,IAAI,CAAC4H,OAAO,CAQtBC,KAAK,IACJpI,MAAM,CAACqI,IAAI,CAAC,MAAK;MACbJ,QAAQ,CAACG,KAAK,CAACd,OAAO,CAAC;IAC3B,CAAC,CAAC,CACL;IAED,QAAQU,KAAK;MACT,KAAK,SAAS;QACVhB,UAAU,GAAG,IAAI,CAACvD,cAAe,CAAC6E,WAAW,CACzCtI,MAAM,CAACwH,OAAO,CAAC7H,WAAW,CAACA,WAAW,EAAG8H,WAAW,IAAKjH,MAAM,CAAC+H,GAAG,CAACd,WAAW,CAACe,MAAM,EAAEN,IAAI,CAAC,CAAC,CACjG;QACD;MAEJ,KAAK,OAAO;QACRlB,UAAU,GAAG,IAAI,CAACvD,cAAe,CAAC6E,WAAW,CACzCtI,MAAM,CAACwH,OAAO,CAAC7H,WAAW,CAACA,WAAW,EAAG8H,WAAW,IAAK3H,QAAQ,CAAC2I,KAAK,CAAChB,WAAW,CAACiB,WAAW,CAAC,CAAC,EACjG;UAAEC,MAAM,EAAGnC,IAAI,IAAMvG,IAAI,CAAC0G,SAAS,CAACH,IAAI,CAAC,GAAGyB,QAAQ,CAACzB,IAAI,CAACjC,KAAK,CAAC,GAAG,CAAC1E,KAAK,CAAC+I,iBAAiB,CAACpC,IAAI,CAACM,KAAK,CAAC,GAAGmB,QAAQ,CAACzB,IAAI,CAACM,KAAK,CAAC,GAAG;QAAG,CAAE,CACzI;QACD;MAEJ,KAAK,MAAM;QACPE,UAAU,GAAG,IAAI,CAACvD,cAAe,CAAC6E,WAAW,CACzCtI,MAAM,CAACwH,OAAO,CAAC7H,WAAW,CAACA,WAAW,EAAG8H,WAAW,IAAK3H,QAAQ,CAAC2I,KAAK,CAAChB,WAAW,CAACoB,SAAS,CAAC,CAAC,EAC/F;UAAEF,MAAM,EAAEA,CAAA,KAAMV,QAAQ,CAAC,KAAK,CAAC;QAAC,CAAE,CACrC;QACD;MAEJ;QACI,MAAM,IAAIa,KAAK,CAAC,SAASd,KAAK,mCAAmC,CAAC;IAC1E;IAEA,IAAI,CAACzE,WAAW,CAACwF,GAAG,CAACd,QAAQ,EAAEjB,UAAU,CAAC;EAC9C;EAEAgC,GAAGA,CAACC,MAAc,EAAEhB,QAA4B;IAC5C,MAAMjB,UAAU,GAAG,IAAI,CAACzD,WAAW,CAAC2F,GAAG,CAACjB,QAAQ,CAAC;IACjD,IAAIjB,UAAU,KAAKnD,SAAS,EAAE;MAC1B,IAAI,CAACN,WAAW,CAAC4F,MAAM,CAAClB,QAAQ,CAAC;MACjCjB,UAAU,EAAE;IAChB;EACJ;EAEAoC,WAAWA,CAACC,IAAa;IACrB,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE,OAAOA,IAAI,CAAC,KACrC,OAAO3I,OAAO,CAAC4I,KAAK,CAACD,IAAI,CAAC;EACnC;EAEAE,SAASA,CAACF,IAAa;IACnB,OAAOA,IAAI;EACf;;AAGJ;;;;AAIA,OAAO,MAAMG,eAAe,GACxBlG,aAAkD,IAChB;EAClC,MAAMmG,OAAO,GAAGpJ,MAAM,CAACqJ,iBAAiB,CAAChH,YAAY,CAAC,CAACY,aAAa,CAAC;EACrE,OAAO;IACHP,IAAI,EAAE,YAAY;IAClB4G,gBAAgB,EAAGC,OAA+B,IAAK,IAAI9G,eAAe,CAAC8G,OAAO,EAAEH,OAAO;GAC9F;AACL,CAAC;AAED;AACA,MAAMI,mBAAmB,GAAmB;EACxC9G,IAAI,EAAE,gBAAgB;EACtB+G,KAAKA,CAACC,KAAK;IACP;IACAA,KAAK,CAACC,SAAS,CAAC;MAAEnC,MAAM,EAAE;IAAwB,CAAE,EAAGoC,IAAI,KAAM;MAC7DC,IAAI,EAAED,IAAI,CAACC,IAAI;MACfC,SAAS,EAAE;KACd,CAAC,CAAC;IAEHJ,KAAK,CAACK,MAAM,CAAC;MAAEvC,MAAM,EAAE,IAAI;MAAEsC,SAAS,EAAE;IAAgB,CAAE,EAAGF,IAAI,IAAI;MACjE,IAAIA,IAAI,CAACC,IAAI,KAAK,QAAQ,EAAE;QACxB,OAAO;UACHG,MAAM,EAAE,IAAI;UACZC,QAAQ,EAAE;SACb;MACL;MACA,IAAIL,IAAI,CAACC,IAAI,KAAK,gBAAgB,EAAE;QAChC,OAAO;UACHG,MAAM,EAAE,IAAI;UACZC,QAAQ,EAAE;SACb;MACL;MACA,OAAO;QACHD,MAAM,EAAE,IAAI;QACZC,QAAQ,EAAE;OACb;IACL,CAAC,CAAC;IAEFP,KAAK,CAACC,SAAS,CAAC;MAAEnC,MAAM,EAAE;IAAiC,CAAE,EAAGoC,IAAI,KAAM;MACtEC,IAAI,EAAED,IAAI,CAACC,IAAI;MACfC,SAAS,EAAE;KACd,CAAC,CAAC;IAEHJ,KAAK,CAACK,MAAM,CAAC;MAAEvC,MAAM,EAAE,IAAI;MAAEsC,SAAS,EAAE;IAAkB,CAAE,EAAGF,IAAI,IAAI;MACnE,MAAMM,UAAU,GAAGN,IAAI,CAACC,IAAI,KAAK,eAAe,GAAG,UAAU,GAAG,iBAAiB;MACjF,OAAO;QACHG,MAAM,EAAE,IAAI;QACZC,QAAQ,EAAE;2CACiBC,UAAU;;;;;;;OAOxC;IACL,CAAC,CAAC;IAEF;IACA;IACA,MAAMC,aAAa,GAA2B;MAC1C,aAAa,EAAE,eAAe;MAC9B,aAAa,EAAE,eAAe;MAC9B,aAAa,EAAE,eAAe;MAC9B,0BAA0B,EAAE,2BAA2B;MACvD,aAAa,EAAE,eAAe;MAC9B,SAAS,EAAE,WAAW;MACtB,UAAU,EAAE,YAAY;MACxB,SAAS,EAAE,WAAW;MACtB,WAAW,EAAE,aAAa;MAC1B,cAAc,EAAE,gBAAgB;MAChC,aAAa,EAAE,eAAe;MAC9B,aAAa,EAAE,eAAe;MAC9B,UAAU,EAAE,YAAY;MACxB,UAAU,EAAE,YAAY;MACxB,WAAW,EAAE,aAAa;MAC1B,SAAS,EAAE,WAAW;MACtBC,MAAM,EAAE,eAAe;MACvBC,MAAM,EAAE,eAAe;MACvBC,MAAM,EAAE,eAAe;MACvBC,mBAAmB,EAAE,2BAA2B;MAChDC,MAAM,EAAE,eAAe;MACvBC,EAAE,EAAE,WAAW;MACfC,GAAG,EAAE,YAAY;MACjBC,EAAE,EAAE,WAAW;MACfd,IAAI,EAAE,aAAa;MACnBhE,OAAO,EAAE,gBAAgB;MACzBsC,MAAM,EAAE,eAAe;MACvByC,MAAM,EAAE,eAAe;MACvBC,GAAG,EAAE,YAAY;MACjB9H,GAAG,EAAE,YAAY;MACjB+H,IAAI,EAAE,aAAa;MACnBC,EAAE,EAAE;KACP;IAEDrB,KAAK,CAACC,SAAS,CACX;MACInC,MAAM,EAAE;KACX,EACAoC,IAAI,KAAM;MACPC,IAAI,EAAED,IAAI,CAACC,IAAI;MACfC,SAAS,EAAE;KACd,CAAC,CACL;IAEDJ,KAAK,CAACK,MAAM,CAAC;MAAEvC,MAAM,EAAE,IAAI;MAAEsC,SAAS,EAAE;IAAc,CAAE,EAAGF,IAAI,IAAI;MAC/D,MAAMM,UAAU,GAAGC,aAAa,CAACP,IAAI,CAACC,IAAI,CAAC;MAC3C,IAAI,CAACK,UAAU,EAAE;QACb,OAAO;UAAEF,MAAM,EAAE,IAAI;UAAEC,QAAQ,EAAE;QAAoB,CAAE;MAC3D;MACA,OAAO;QACHD,MAAM,EAAE,IAAI;QACZC,QAAQ,EAAE;2CACiBC,UAAU;;;0DAGKA,UAAU;;OAEvD;IACL,CAAC,CAAC;IAEF;IACAR,KAAK,CAACC,SAAS,CAAC;MAAEnC,MAAM,EAAE;IAAwB,CAAE,EAAGoC,IAAI,KAAM;MAC7DC,IAAI,EAAED,IAAI,CAACC,IAAI;MACfC,SAAS,EAAE;KACd,CAAC,CAAC;IAEHJ,KAAK,CAACK,MAAM,CAAC;MAAEvC,MAAM,EAAE,IAAI;MAAEsC,SAAS,EAAE;IAAe,CAAE,EAAGF,IAAI,IAAI;MAChE,MAAMM,UAAU,GAAGN,IAAI,CAACC,IAAI,CAACmB,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;MACjE,OAAO;QACHhB,MAAM,EAAE,IAAI;QACZC,QAAQ,EAAE;2CACiBC,UAAU;;;;;;;;;;;OAWxC;IACL,CAAC,CAAC;EACN;CACH;AAED;AACA,MAAMrG,gBAAgB,gBAAGlE,MAAM,CAACsL,UAAU,CAAC,WACvCtI,iBAAsB,EACtBK,WAAmC,EACnCC,aAA4D;EAE5D,MAAM4G,IAAI,GAAG,OAAOzK,IAAI,CAACA,IAAI;EAC7B,MAAMqL,EAAE,GAAG,OAAOtL,UAAU,CAACA,UAAU;EACvC,MAAM4D,GAAG,GAAG,OAAO8G,IAAI,CAACqB,WAAW,CAACvI,iBAAiB,CAAC;EAEtD,MAAMwI,SAAS,GAAmBnI,WAAW,CAACoI,OAAe,CAACC,aAAa,IAAI,EAAE;EACjF,MAAMC,YAAY,GAA2B,EAAE;EAE/C,MAAMC,eAAe,GAAGxL,KAAK,CAACmE,KAAK,CAACjB,aAAa,EAAEV,QAAQ,CAAC,CAACT,IAAI,CAC7D/B,KAAK,CAACoE,IAAI,CAAC,SAAS,EAAE,MAAM,SAAkB,CAAC,EAC/CpE,KAAK,CAACoE,IAAI,CAAC,SAAS,EAAE,MAAM,SAAkB,CAAC,EAC/CpE,KAAK,CAACyL,MAAM,CAAC,KAAK,EAAEhI,SAAS,EAAE,MAAM,MAAe,CAAC,EACrDzD,KAAK,CAAC0L,YAAY,CACrB;EAED,KAAK,MAAMC,QAAQ,IAAIP,SAAS,EAAE;IAC9B,MAAMQ,MAAM,GAAG,OAAOhM,MAAM,CAACiM,OAAO,CAAC,MACjCxL,OAAO,CAACsJ,KAAK,CAAC;MACVmC,MAAM,EAAE,IAAI;MACZC,KAAK,EAAE,KAAK;MACZC,MAAM,EAAE,KAAK;MACbxJ,QAAQ,EAAEgJ,eAAe;MACzBS,MAAM,EAAE,QAAQ;MAChBC,WAAW,EAAE,CAACP,QAAQ,CAAC;MACvBQ,OAAO,EAAE,CAAC1C,mBAAmB;KAChC,CAAC,CACL;IAED,IAAI,CAACmC,MAAM,CAACQ,WAAW,IAAIR,MAAM,CAACQ,WAAW,CAACC,MAAM,KAAK,CAAC,EAAE;MACxD,OAAO,OAAOzM,MAAM,CAAC0M,UAAU,CAAC,kCAAkCX,QAAQ,EAAE,CAAC;IACjF,CAAC,MAAM;MACHJ,YAAY,CAACI,QAAQ,CAAC,GAAGY,MAAM,CAACC,IAAI,CAACZ,MAAM,CAACQ,WAAW,CAAC,CAAC,CAAC,CAACK,IAAI,CAAC,CAACC,QAAQ,CAAC,QAAQ,CAAC;IACvF;EACJ;EAEA,MAAMC,qBAAqB,GAAG,OAAOjC,EAAE,CAACkC,cAAc,CAAC5J,GAAG,CAAC;EAC3D,MAAM6J,qBAAqB,GAAGF,qBAAqB,CAAC1B,OAAO,CACvD,oDAAoD,EACpD,6CAA6C6B,IAAI,CAACC,SAAS,CAACxB,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CACxF;EAED,MAAMyB,aAAa,GAAG,OAAOtC,EAAE,CAACuC,kBAAkB,CAAC;IAC/CC,MAAM,EAAE,KAAK;IACbC,MAAM,EAAE,SAAS;IACjBC,SAAS,EAAEtD,IAAI,CAACuD,OAAO,CAACrK,GAAG;GAC9B,CAAC;EAEF,OAAO0H,EAAE,CAAC4C,eAAe,CAACN,aAAa,EAAEH,qBAAqB,CAAC;EAC/D,OAAO,OAAO/C,IAAI,CAACyD,SAAS,CAACP,aAAa,CAAC;AAC/C,CAAC,CAAC","ignoreList":[]}
|
|
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","cancelables","Map","sends","constructor","poolOptions","customOptions","FridaRuntime","value","pipe","when","undefined","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","runPromise","then","start","stop","allSettled","cancelable","values","close","void","clear","send","message","context","sendPromise","flatMap","fridaScript","callExport","runPromiseWith","push","filter","p","on","event","callback","ctx","set","runCallbackWith","runForEach","stream","input","sync","await","scriptError","onExit","exit","isSuccess","hasInterruptsOnly","cause","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":[]}
|