@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/src/index.js CHANGED
@@ -1,130 +1,102 @@
1
- import * as NodeContext from "@effect/platform-node/NodeContext";
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 Esbuild from "esbuild";
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
- class DeviceSchema extends /*#__PURE__*/Schema.Union(/*#__PURE__*/Schema.Struct({
26
- device: /*#__PURE__*/Schema.Literal("local")
23
+ const DeviceSchema = /*#__PURE__*/Schema.Union([/*#__PURE__*/Schema.Struct({
24
+ connection: /*#__PURE__*/Schema.Literal("local")
27
25
  }), /*#__PURE__*/Schema.Struct({
28
- device: /*#__PURE__*/Schema.Literal("usb"),
29
- timeout: /*#__PURE__*/Schema.optionalWith(Schema.DurationFromMillis, {
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
- device: /*#__PURE__*/Schema.Literal("remote"),
35
- token: /*#__PURE__*/Schema.optionalWith(Schema.String, {
36
- nullable: true
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
- device: /*#__PURE__*/Schema.Literal("android-emulator"),
47
- hidden: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
48
- nullable: true
49
- }),
50
- adbExecutable: /*#__PURE__*/Schema.optionalWith(Schema.String, {
51
- nullable: true
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
- class AttachSchema extends /*#__PURE__*/Schema.Union(/*#__PURE__*/Schema.Struct({
62
- attach: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.brand("pid"))
43
+ const AttachSchema = /*#__PURE__*/Schema.Union([/*#__PURE__*/Schema.Struct({
44
+ pid: Schema.Number
63
45
  }), /*#__PURE__*/Schema.Struct({
64
- spawn: /*#__PURE__*/Schema.NonEmptyArrayEnsure(Schema.String),
65
- preSpawn: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
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.optionalWith(/*#__PURE__*/Schema.Literal("minimal", "metadata", "full"), {
71
- nullable: true
72
- })
73
- })) {}
50
+ frontmostScope: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Literals(["minimal", "metadata", "full"]))
51
+ })]);
74
52
  // Third, pick your runtime and platform
75
- class ConfigSchema extends /*#__PURE__*/Schema.Struct({
76
- runtime: Schema.optionalWith(Schema.Literal("default", "qjs", "v8"), {
77
- nullable: true
78
- }),
79
- platform: Schema.optionalWith(Schema.Literal("gum", "browser", "neutral"), {
80
- nullable: true
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
- agentTemplatePath = /*#__PURE__*/new URL("../frida/agent.ts", import.meta.url);
90
- poolOptions;
91
- customOptions;
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
- this.poolOptions = poolOptions;
98
- this.customOptions = customOptions;
99
- this.cancelables = new Map();
100
- this.managedRuntime = undefined;
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
- device: "usb"
76
+ connection: "usb"
111
77
  }, ({
112
78
  timeout
113
- }) => FridaDevice.layerUsbDevice({
114
- timeout: timeout ? Duration.toMillis(timeout) : undefined
115
- })), Match.when({
116
- device: "remote"
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
- origin,
125
- keepaliveInterval: keepaliveInterval ? Duration.toSeconds(keepaliveInterval) : undefined
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
- device: "android-emulator"
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(this.customOptions).pipe(Match.when({
141
- attach: Match.number
112
+ const SessionLive = Match.value(customOptions.attach).pipe(Match.when({
113
+ pid: Match.number
142
114
  }, ({
143
- attach
144
- }) => FridaSession.layer(attach)), Match.when({
115
+ pid
116
+ }) => FridaSession.layer(pid)), Match.when({
145
117
  attachFrontmost: true
146
118
  }, ({
147
119
  frontmostScope
148
- }) => FridaSession.layerFrontmost({
149
- scope: frontmostScope
150
- })), Match.when({
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.unwrapScoped(Effect.gen(function* () {
155
- const executor = yield* CommandExecutor.CommandExecutor;
156
- const command = Command.make(...spawn);
157
- const process = yield* executor.start(command);
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).pipe(Layer.provide(NodeContext.layer));
163
- const ScriptLive = FridaScript.layer(tempAgentUrl, {
164
- externals: ["jsdom", "happy-dom", "@edge-runtime/vm"],
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
- }).pipe(Layer.provide(FridaLive));
172
- this.managedRuntime = ManagedRuntime.make(ScriptLive);
173
- const exit = await this.managedRuntime.runPromiseExit(Effect.void);
174
- if (Exit.isSuccess(exit)) return;
175
- const prettyError = Cause.prettyErrors(exit.cause);
176
- throw prettyError[0];
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 sendPromise = this.managedRuntime.runPromiseExit(Effect.flatMap(FridaScript.FridaScript, fridaScript => fridaScript.callExport("onMessage", Schema.Void)(message)));
187
- this.sends.push(sendPromise);
188
- const exit = await sendPromise;
189
- this.sends = this.sends.filter(p => p !== sendPromise);
190
- if (Exit.isSuccess(exit)) return;
191
- const prettyError = Cause.prettyErrors(exit.cause);
192
- throw prettyError[0];
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
- cancelable = this.managedRuntime.runCallback(Effect.flatMap(FridaScript.FridaScript, fridaScript => Stream.run(fridaScript.stream, sink)));
202
- break;
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
- cancelable = this.managedRuntime.runCallback(Effect.flatMap(FridaScript.FridaScript, fridaScript => Deferred.await(fridaScript.scriptError)), {
205
- onExit: exit => Exit.isSuccess(exit) ? callback(exit.value) : !Cause.isInterruptedOnly(exit.cause) ? callback(exit.cause) : {}
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
- cancelable = this.managedRuntime.runCallback(Effect.flatMap(FridaScript.FridaScript, fridaScript => Deferred.await(fridaScript.destroyed)), {
210
- onExit: () => callback(void 0)
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, decoded)
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
@@ -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":"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","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":"AAEA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,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,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,YAAY,MAAM,sCAAsC;AAIpE,OAAO,KAAKC,YAAY,MAAM,oCAAoC;AAClE,OAAO,KAAKC,WAAW,MAAM,mCAAmC;AAChE,OAAO,KAAKC,WAAW,MAAM,mCAAmC;AAChE,OAAO,KAAKC,YAAY,MAAM,oCAAoC;AAClE,OAAO,KAAKC,OAAO,MAAM,SAAS;AAClC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B;AACA,MAAMC,YAAY,gBAAGV,MAAM,CAACW,KAAK,CAAC,cAC9BX,MAAM,CAACY,MAAM,CAAC;EACVC,UAAU,eAAEb,MAAM,CAACc,OAAO,CAAC,OAAO;CACrC,CAAC,eACFd,MAAM,CAACY,MAAM,CAAC;EACVC,UAAU,eAAEb,MAAM,CAACc,OAAO,CAAC,KAAK,CAAC;EACjCC,OAAO,eAAEf,MAAM,CAACgB,QAAQ,CAAChB,MAAM,CAACiB,kBAAkB;CACrD,CAAC,eACFjB,MAAM,CAACY,MAAM,CAAC;EACVM,OAAO,EAAElB,MAAM,CAACmB,MAAM;EACtBN,UAAU,eAAEb,MAAM,CAACc,OAAO,CAAC,QAAQ,CAAC;EACpCM,KAAK,eAAEpB,MAAM,CAACgB,QAAQ,CAAChB,MAAM,CAACmB,MAAM,CAAC;EACrCE,MAAM,eAAErB,MAAM,CAACgB,QAAQ,CAAChB,MAAM,CAACmB,MAAM,CAAC;EACtCG,iBAAiB,eAAEtB,MAAM,CAACgB,QAAQ,CAAChB,MAAM,CAACiB,kBAAkB;CAC/D,CAAC,eACFjB,MAAM,CAACY,MAAM,CAAC;EACVW,YAAY,EAAEvB,MAAM,CAACmB,MAAM;EAC3BK,MAAM,eAAExB,MAAM,CAACgB,QAAQ,CAAChB,MAAM,CAACyB,OAAO,CAAC;EACvCC,aAAa,eAAE1B,MAAM,CAACgB,QAAQ,CAAChB,MAAM,CAACmB,MAAM,CAAC;EAC7CN,UAAU,eAAEb,MAAM,CAACc,OAAO,CAAC,kBAAkB,CAAC;EAC9Ca,eAAe,eAAE3B,MAAM,CAACgB,QAAQ,CAAChB,MAAM,CAACmB,MAAM,CAAC;EAC/CS,kBAAkB,eAAE5B,MAAM,CAACgB,QAAQ,CAAChB,MAAM,CAACmB,MAAM;CACpD,CAAC,CACL,CAAC;AAEF;AACA,MAAMU,YAAY,gBAAG7B,MAAM,CAACW,KAAK,CAAC,cAC9BX,MAAM,CAACY,MAAM,CAAC;EACVkB,GAAG,EAAE9B,MAAM,CAAC+B;CACf,CAAC,eACF/B,MAAM,CAACY,MAAM,CAAC;EACVoB,KAAK,eAAEhC,MAAM,CAACiC,aAAa,CAACjC,MAAM,CAACmB,MAAM,CAAC;EAC1Ce,QAAQ,eAAElC,MAAM,CAACgB,QAAQ,CAAChB,MAAM,CAACyB,OAAO;CAC3C,CAAC,eACFzB,MAAM,CAACY,MAAM,CAAC;EACVuB,eAAe,eAAEnC,MAAM,CAACc,OAAO,CAAC,IAAI,CAAC;EACrCsB,cAAc,eAAEpC,MAAM,CAACgB,QAAQ,cAAChB,MAAM,CAACqC,QAAQ,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;CACnF,CAAC,CACL,CAAC;AAEF;AACA,MAAMC,YAAY,gBAAGtC,MAAM,CAACY,MAAM,CAAC;EAC/B2B,MAAM,EAAE7B,YAAY;EACpB8B,MAAM,EAAEX,YAAY;EACpBY,OAAO,eAAEzC,MAAM,CAACgB,QAAQ,cAAChB,MAAM,CAACqC,QAAQ,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;EACnEK,QAAQ,eAAE1C,MAAM,CAACgB,QAAQ,cAAChB,MAAM,CAACqC,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;CAC3E,CAAC;AAEF;;;;AAIA,OAAM,MAAOM,eAAe;EACRC,IAAI,GAAG,YAAY;EAC3B,OAAOC,SAAS,gBAAkBC,OAAO,CAACC,OAAO,EAAE;EAE1CC,KAAK;EACLC,aAAa;EACbC,WAAW,gBAA4D,IAAIC,GAAG,EAAE;EAEzFC,KAAK,GAA4B,EAAE;EAE3CC,YAAYC,WAAmC,EAAEC,aAAsD;IACnG,MAAMC,YAAY,GAAG1D,KAAK,CAAC2D,KAAK,CAACF,aAAa,CAACd,OAAO,CAAC,CAACiB,IAAI,CACxD5D,KAAK,CAAC6D,IAAI,CAACC,SAAS,EAAE,MAAMA,SAAS,CAAC,EACtC9D,KAAK,CAAC6D,IAAI,CAAC,IAAI,EAAE,MAAMlD,KAAK,CAACoD,aAAa,CAACC,EAAE,CAAC,EAC9ChE,KAAK,CAAC6D,IAAI,CAAC,KAAK,EAAE,MAAMlD,KAAK,CAACoD,aAAa,CAACE,GAAG,CAAC,EAChDjE,KAAK,CAAC6D,IAAI,CAAC,SAAS,EAAE,MAAMlD,KAAK,CAACoD,aAAa,CAACG,OAAO,CAAC,EACxDlE,KAAK,CAACmE,UAAU,CACnB;IAED,MAAMC,aAAa,GAAGpE,KAAK,CAAC2D,KAAK,CAACF,aAAa,CAACb,QAAQ,CAAC,CAACgB,IAAI,CAC1D5D,KAAK,CAAC6D,IAAI,CAACC,SAAS,EAAE,MAAMA,SAAS,CAAC,EACtC9D,KAAK,CAAC6D,IAAI,CAAC,KAAK,EAAE,MAAMlD,KAAK,CAAC0D,UAAU,CAACC,GAAG,CAAC,EAC7CtE,KAAK,CAAC6D,IAAI,CAAC,SAAS,EAAE,MAAMlD,KAAK,CAAC0D,UAAU,CAACE,OAAO,CAAC,EACrDvE,KAAK,CAAC6D,IAAI,CAAC,SAAS,EAAE,MAAMlD,KAAK,CAAC0D,UAAU,CAACG,OAAO,CAAC,EACrDxE,KAAK,CAACmE,UAAU,CACnB;IAED,MAAMM,UAAU,GAAGzE,KAAK,CAAC2D,KAAK,CAACF,aAAa,CAAChB,MAAM,CAAC,CAACmB,IAAI,CACrD5D,KAAK,CAAC6D,IAAI,CAAC;MAAE9C,UAAU,EAAE;IAAO,CAAE,EAAE,MAAMR,WAAW,CAACmE,gBAAgB,CAAC,EACvE1E,KAAK,CAAC6D,IAAI,CAAC;MAAE9C,UAAU,EAAE;IAAK,CAAE,EAAE,CAAC;MAAEE;IAAO,CAAE,KAC1CV,WAAW,CAACoE,cAAc,CAAC1D,OAAO,KAAK6C,SAAS,GAAG;MAAE7C,OAAO,EAAEvB,QAAQ,CAACkF,QAAQ,CAAC3D,OAAO;IAAC,CAAE,GAAG,EAAE,CAAC,CACnG,EACDjB,KAAK,CAAC6D,IAAI,CAAC;MAAE9C,UAAU,EAAE;IAAQ,CAAE,EAAE,CAAC;MAAEK,OAAO;MAAEI,iBAAiB;MAAED,MAAM;MAAED;IAAK,CAAE,KAC/Ef,WAAW,CAACsE,iBAAiB,CAACzD,OAAO,EAAE;MACnC,IAAIE,KAAK,KAAKwC,SAAS,GAAG;QAAExC;MAAK,CAAE,GAAG,EAAE,CAAC;MACzC,IAAIC,MAAM,KAAKuC,SAAS,GAAG;QAAEvC;MAAM,CAAE,GAAG,EAAE,CAAC;MAC3C,IAAIC,iBAAiB,KAAKsC,SAAS,GAC7B;QAAEtC,iBAAiB,EAAE9B,QAAQ,CAACkF,QAAQ,CAACpD,iBAAiB;MAAC,CAAE,GAC3D,EAAE;KACX,CAAC,CACL,EACDxB,KAAK,CAAC6D,IAAI,CACN;MAAE9C,UAAU,EAAE;IAAkB,CAAE,EAClC,CAAC;MAAEa,aAAa;MAAEE,kBAAkB;MAAEL,YAAY;MAAEI,eAAe;MAAEH;IAAM,CAAE,KACzEnB,WAAW,CAACuE,0BAA0B,CAACrD,YAAY,EAAE;MACjDC,MAAM,EAAEA,MAAM,IAAIoC,SAAS;MAC3BlC,aAAa,EAAEA,aAAa,IAAIkC,SAAS;MACzCjC,eAAe,EAAEA,eAAe,IAAIiC,SAAS;MAC7ChC,kBAAkB,EAAEA,kBAAkB,IAAIgC;KAC7C,CAAC,CACT,EACD9D,KAAK,CAACmE,UAAU,CACnB;IAED,MAAMY,WAAW,GAAG/E,KAAK,CAAC2D,KAAK,CAACF,aAAa,CAACf,MAAM,CAAC,CAACkB,IAAI,CACtD5D,KAAK,CAAC6D,IAAI,CAAC;MAAE7B,GAAG,EAAEhC,KAAK,CAACgF;IAAM,CAAE,EAAE,CAAC;MAAEhD;IAAG,CAAE,KAAKvB,YAAY,CAACwE,KAAK,CAACjD,GAAG,CAAC,CAAC,EACvEhC,KAAK,CAAC6D,IAAI,CAAC;MAAExB,eAAe,EAAE;IAAI,CAAE,EAAE,CAAC;MAAEC;IAAc,CAAE,KAAI;MACzD,OAAO7B,YAAY,CAACyE,cAAc,CAC9B5C,cAAc,KAAKwB,SAAS,GACtB;QACIZ,KAAK,EAAElD,KAAK,CAAC2D,KAAK,CAACrB,cAAc,CAAC,CAACsB,IAAI,CACnC5D,KAAK,CAAC6D,IAAI,CAAC,SAAS,EAAE,MAAMlD,KAAK,CAACR,KAAK,CAACgF,OAAO,CAAC,EAChDnF,KAAK,CAAC6D,IAAI,CAAC,UAAU,EAAE,MAAMlD,KAAK,CAACR,KAAK,CAACiF,QAAQ,CAAC,EAClDpF,KAAK,CAAC6D,IAAI,CAAC,MAAM,EAAE,MAAMlD,KAAK,CAACR,KAAK,CAACkF,IAAI,CAAC,EAC1CrF,KAAK,CAACmE,UAAU;OAEvB,GACD,EAAE,CACX;IACL,CAAC,CAAC,EACFnE,KAAK,CAAC6D,IAAI,CAAC;MAAEzB,QAAQ,EAAE;IAAI,CAAE,EAAE,CAAC;MAAEF;IAAK,CAAE,KACrCnC,KAAK,CAACuF,MAAM,CACR3F,MAAM,CAAC4F,GAAG,CAAC,aAAS;MAChB,MAAM,CAACC,OAAO,EAAE,GAAGC,IAAI,CAAC,GAAGvD,KAAK;MAChC,MAAMwD,MAAM,GAAG,OAAOrF,YAAY,CAACsF,IAAI,CAACH,OAAO,EAAEC,IAAI,CAAC;MACtD,OAAOhF,YAAY,CAACwE,KAAK,CAACS,MAAM,CAAC1D,GAAG,CAAC;IACzC,CAAC,CAAC,CACL,CACJ,EACDhC,KAAK,CAAC4F,MAAM,CAAC,CAAC;MAAE1D;IAAK,CAAE,KAAKzB,YAAY,CAACwE,KAAK,CAAC/C,KAAK,CAAC,CAAC,CACzD;IAED,MAAM2D,SAAS,GAAG9F,KAAK,CAAC+F,OAAO,CAACf,WAAW,EAAEN,UAAU,CAAC;IACxD,MAAMsB,UAAU,GAAGpG,MAAM,CAAC4F,GAAG,CAAC,aAAS;MACnC,MAAMS,IAAI,GAAG,OAAO/F,IAAI,CAACA,IAAI;MAC7B,MAAMgG,EAAE,GAAG,OAAOpG,UAAU,CAACA,UAAU;MAEvC,MAAMqG,OAAO,GAAGF,IAAI,CAACG,IAAI,CAAC3C,WAAW,CAAC4C,OAAO,CAACC,MAAM,CAACC,IAAI,EAAE,MAAM,CAAC;MAClE,OAAOL,EAAE,CAACM,aAAa,CAACL,OAAO,EAAE;QAAEM,SAAS,EAAE;MAAI,CAAE,CAAC;MAErD,MAAMC,QAAQ,GAAG,OAAOT,IAAI,CAACU,WAAW,CAAC,IAAIC,GAAG,CAAC,mBAAmB,EAAEC,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;MACvF,MAAMC,SAAS,GAAG,OAAOd,EAAE,CAACe,cAAc,CAACP,QAAQ,CAAC;MACpD,MAAMQ,QAAQ,GAAG,OAAOhB,EAAE,CAACiB,kBAAkB,CAAC;QAC1CC,SAAS,EAAEjB,OAAO;QAClBkB,MAAM,EAAE,2BAA2B;QACnCC,MAAM,EAAE;OACX,CAAC;MAEF,MAAMC,UAAU,GAAG9D,WAAW,CAAC4C,OAAO,CAACC,MAAM,CAACiB,UAAU;MACxD,MAAMC,SAAS,GAAG,OAAO5H,MAAM,CAAC6H,GAAG,CAC/B7H,MAAM,CAAC8H,OAAO,CAAC,MAAMjE,WAAW,CAAC4C,OAAO,CAACsB,aAAa,EAAE,CAAC,EACzD,CAAC;QAAEH;MAAS,CAAE,KAAKA,SAAS,CAC/B;MACD,MAAMI,gBAAgB,GAAGpI,KAAK,CAACqI,OAAO,CAACpE,WAAW,CAAC4C,OAAO,CAACC,MAAM,CAACwB,WAAW,CAAC,GACxErE,WAAW,CAAC4C,OAAO,CAACC,MAAM,CAACwB,WAAW,GACtCtI,KAAK,CAACoG,IAAI,CAACnC,WAAW,CAAC4C,OAAO,CAACC,MAAM,CAACwB,WAAW,CAAC;MAExD,MAAMC,MAAM,GAAG,yCAAyC;MACxD,MAAMC,QAAQ,GAAGxI,KAAK,CAACyI,OAAO,CAAC,CAACV,UAAU,EAAEC,SAAS,EAAEI,gBAAgB,CAAC,CAAC;MACzE,MAAMM,UAAU,GAAGnI,QAAQ,CAAC8D,IAAI,CAC5BmE,QAAQ,EACRxI,KAAK,CAACiI,GAAG,CACJU,IAAI,IAAK;yCACWA,IAAI;;mDAEMA,IAAI;0BAC7B,CACT,EACD3I,KAAK,CAAC4G,IAAI,CAAC,IAAI,CAAC,CACnB;MAED,OAAOF,EAAE,CAACkC,eAAe,CAAClB,QAAQ,EAAEF,SAAS,CAACqB,OAAO,CAACN,MAAM,EAAEG,UAAU,CAAC,CAAC;MAC1E,OAAO,OAAOjC,IAAI,CAACqC,SAAS,CAACpB,QAAQ,CAAC;IAC1C,CAAC,CAAC,CAACrD,IAAI,CACHjE,MAAM,CAAC6H,GAAG,CACNhH,WAAW,CAACyE,KAAK,CAAC;MACd,IAAIvB,YAAY,KAAKI,SAAS,GAAG;QAAEnB,OAAO,EAAEe;MAAY,CAAE,GAAG,EAAE,CAAC;MAChE,IAAIU,aAAa,KAAKN,SAAS,GAAG;QAAElB,QAAQ,EAAEwB;MAAa,CAAE,GAAG,EAAE;KACrE,CAAC,CACL,EACDrE,KAAK,CAACuF,MAAM,EACZvF,KAAK,CAAC+F,OAAO,CAACD,SAAS,CAAC,EACxB9F,KAAK,CAAC+F,OAAO,CAACxF,YAAY,CAAC2E,KAAK,CAAC,EACjClF,KAAK,CAACuI,oBAAoB,EAA2B,CACxD;IAED,IAAI,CAACpF,KAAK,GAAG/C,KAAK,CAACoI,UAAU,EAAE;IAC/B,MAAMC,IAAI,GAAG3F,eAAe,CAACE,SAAS;IACtC,MAAM0F,OAAO,GAAGA,CAAA,KAAM1C,UAAU,CAACnC,IAAI,CAAC7D,KAAK,CAAC2I,cAAc,CAAC,IAAI,CAACxF,KAAK,CAAC,EAAEvD,MAAM,CAACgJ,UAAU,CAAC;IAC1F,IAAI,CAACxF,aAAa,GAAGqF,IAAI,CAACI,IAAI,CAACH,OAAO,EAAEA,OAAO,CAAC;IAChD5F,eAAe,CAACE,SAAS,GAAG,IAAI,CAACI,aAAa,CAACyF,IAAI,CAC/C,MAAM9E,SAAS,EACf,MAAMA,SAAS,CAClB;EACL;EAEA,MAAM+E,KAAKA,CAAA;IACP,MAAM,IAAI,CAAC1F,aAAa;EAC5B;EAEA,MAAM2F,IAAIA,CAAA;IACN,MAAM9F,OAAO,CAAC+F,UAAU,CAAC,IAAI,CAACzF,KAAK,CAAC;IACpC,KAAK,MAAM0F,UAAU,IAAI,IAAI,CAAC5F,WAAW,CAAC6F,MAAM,EAAE,EAAED,UAAU,EAAE;IAChE,MAAM7I,KAAK,CAAC+I,KAAK,CAAC,IAAI,CAAChG,KAAK,EAAEtD,IAAI,CAACuJ,IAAI,CAAC,CAACvF,IAAI,CAACjE,MAAM,CAACgJ,UAAU,CAAC;IAChE,IAAI,CAACvF,WAAW,CAACgG,KAAK,EAAE;EAC5B;EAEA,MAAMC,IAAIA,CAACC,OAAiC;IACxC,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACpG,aAAa;IACxC,IAAIqG,WAAW,GAAqB1F,SAAU;IAE9C,IAAI;MACA0F,WAAW,GAAG7J,MAAM,CAAC8J,OAAO,CAACjJ,WAAW,CAACA,WAAW,EAAGkJ,WAAW,IAC9DA,WAAW,CAACC,UAAU,CAAC,WAAW,CAAC,CAACL,OAAO,CAAC,CAC/C,CAAC1F,IAAI,CAACjE,MAAM,CAACiK,cAAc,CAACL,OAAO,CAAC,CAAC;MACtC,IAAI,CAACjG,KAAK,CAACuG,IAAI,CAACL,WAAW,CAAC;MAC5B,MAAMA,WAAW;IACrB,CAAC,SAAS;MACN,IAAI,CAAClG,KAAK,GAAG,IAAI,CAACA,KAAK,CAACwG,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAKP,WAAW,CAAC;IAC5D;EACJ;EAEAQ,EAAEA,CAACC,KAAa,EAAEC,QAA4B;IAC1C,QAAQD,KAAK;MACT,KAAK,SAAS;QAAE;UACZ,IAAI,CAAC9G,aAAa,CAACyF,IAAI,CAAEuB,GAAG,IAAI;YAC5B,IAAI,CAAC/G,WAAW,CAACgH,GAAG,CAChBF,QAAQ,EACRvK,MAAM,CAAC0K,eAAe,CAACF,GAAG,CAAC,CACvBxK,MAAM,CAAC8J,OAAO,CAACjJ,WAAW,CAACA,WAAW,EAAGkJ,WAAW,IAChDtJ,MAAM,CAACkK,UAAU,CAACZ,WAAW,CAACa,MAAM,EAAGC,KAAK,IACxC7K,MAAM,CAAC8K,IAAI,CAAC,MAAMP,QAAQ,CAACM,KAAK,CAAClB,OAAO,CAAC,CAAC,CAC7C,CACJ,CACJ,CACJ;UACL,CAAC,CAAC;UAEF;QACJ;MAEA,KAAK,OAAO;QACR,IAAI,CAACnG,aAAa,CAACyF,IAAI,CAAEuB,GAAG,IAAI;UAC5B,IAAI,CAAC/G,WAAW,CAACgH,GAAG,CAChBF,QAAQ,EACRvK,MAAM,CAAC0K,eAAe,CAACF,GAAG,CAAC,CACvBxK,MAAM,CAAC8J,OAAO,CAACjJ,WAAW,CAACA,WAAW,EAAGkJ,WAAW,IAChDjK,QAAQ,CAACiL,KAAK,CAAChB,WAAW,CAACiB,WAAW,CAAC,CAC1C,EACD;YACIC,MAAM,EAAGC,IAAI,IAAI;cACb,IAAIjL,IAAI,CAACkL,SAAS,CAACD,IAAI,CAAC,EAAE;gBACtBX,QAAQ,CAACW,IAAI,CAAClH,KAAK,CAAC;cACxB,CAAC,MAAM,IAAI,CAACnE,KAAK,CAACuL,iBAAiB,CAACF,IAAI,CAACG,KAAK,CAAC,EAAE;gBAC7Cd,QAAQ,CAACW,IAAI,CAACG,KAAK,CAAC;cACxB;YACJ;WACH,CACJ,CACJ;QACL,CAAC,CAAC;QAEF;MAEJ,KAAK,MAAM;QACP,IAAI,CAAC7H,aAAa,CAACyF,IAAI,CAAEuB,GAAG,IAAI;UAC5B,IAAI,CAAC/G,WAAW,CAACgH,GAAG,CAChBF,QAAQ,EACRvK,MAAM,CAAC0K,eAAe,CAACF,GAAG,CAAC,CACvBxK,MAAM,CAAC8J,OAAO,CAACjJ,WAAW,CAACA,WAAW,EAAGkJ,WAAW,IAChDjK,QAAQ,CAACiL,KAAK,CAAChB,WAAW,CAACuB,SAAS,CAAC,CACxC,EACD;YAAEL,MAAM,EAAEA,CAAA,KAAMV,QAAQ,CAAC,KAAK,CAAC;UAAC,CAAE,CACrC,CACJ;QACL,CAAC,CAAC;QAEF;MAEJ;QACI,MAAM,IAAIgB,KAAK,CAAC,SAASjB,KAAK,mCAAmC,CAAC;IAC1E;EACJ;EAEAkB,GAAGA,CAACC,MAAc,EAAElB,QAA4B;IAC5C,MAAMlB,UAAU,GAAG,IAAI,CAAC5F,WAAW,CAACiI,GAAG,CAACnB,QAAQ,CAAC;IACjD,IAAIlB,UAAU,KAAKlF,SAAS,EAAE;MAC1B,IAAI,CAACV,WAAW,CAACkI,MAAM,CAACpB,QAAQ,CAAC;MACjClB,UAAU,EAAE;IAChB;EACJ;EAEAuC,WAAWA,CAACC,IAAa;IACrB,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE,OAAOA,IAAI,CAAC,KACrC,OAAO9K,OAAO,CAAC+K,KAAK,CAACD,IAAI,CAAC;EACnC;EAEAE,SAASA,CAACF,IAAa;IACnB,OAAOA,IAAI;EACf;;AAGJ;;;;AAIA,OAAO,MAAMG,eAAe,GACxBlI,aAAwD,IACtB;EAClC,OAAO;IACHX,IAAI,EAAE,YAAY;IAClB8I,gBAAgB,EAAGC,OAA+B,IAC9C,IAAIhJ,eAAe,CAACgJ,OAAO,EAAE3L,MAAM,CAAC4L,iBAAiB,CAACtJ,YAAY,CAAC,CAACiB,aAAa,CAAC;GACzF;AACL,CAAC","ignoreList":[]}