@efffrida/vitest-pool 0.0.11 → 0.0.13

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.
@@ -11,26 +11,26 @@ const testFiles = {};
11
11
  // in the module scope.
12
12
  let runPromise;
13
13
  let setupContext;
14
- // How to post messages to the parent process - use flatted to handle circular references
15
- const postMessage = message => send(flattedStringify(message, (_key, value) => {
16
- /** @see https://github.com/vitest-dev/vitest/blob/372e86fdef381038a2c4999fc9007dd7292a0628/packages/vitest/src/node/ast-collect.ts#L216-L236 */
17
- if (value !== null && typeof value === "object" && "name" in value && "message" in value && "stack" in value && typeof value.stack !== "string") {
18
- return {
19
- ...value,
20
- stack: value.stack === undefined ? undefined : JSON.stringify(value.stack)
21
- };
22
- } else {
23
- return value;
24
- }
25
- }));
26
- const postWorkerResponse = response => postMessage({
27
- ...response,
28
- __vitest_worker_response__: true
29
- });
14
+ // How to post messages to the parent process - use flatted to handle circular
15
+ // references
16
+ const postMessage = message => {
17
+ send(flattedStringify(message, (_key, value) => {
18
+ /** @see https://github.com/vitest-dev/vitest/blob/372e86fdef381038a2c4999fc9007dd7292a0628/packages/vitest/src/node/ast-collect.ts#L216-L236 */
19
+ if (value !== null && typeof value === "object" && "name" in value && "message" in value && "stack" in value && typeof value.stack !== "string") {
20
+ return {
21
+ ...value,
22
+ stack: value.stack === undefined ? undefined : JSON.stringify(value.stack)
23
+ };
24
+ } else {
25
+ return value;
26
+ }
27
+ }));
28
+ };
30
29
  // Collections of listeners
31
30
  const cleanupListeners = /*#__PURE__*/new Set();
32
31
  const cancelListeners = /*#__PURE__*/new Set();
33
32
  const messageListeners = /*#__PURE__*/new Set();
33
+ // Bidirectional rpc
34
34
  const birpc = /*#__PURE__*/createBirpc({
35
35
  async onCancel(reason) {
36
36
  await Promise.allSettled([...cancelListeners.values()].map(listener => listener(reason)));
@@ -40,9 +40,9 @@ const birpc = /*#__PURE__*/createBirpc({
40
40
  serialize: data => data,
41
41
  deserialize: data => data,
42
42
  // How to send and receive messages.
43
- post: postMessage,
44
- on: rpcListener => messageListeners.add(rpcListener),
45
43
  off: rpcListener => messageListeners.delete(rpcListener),
44
+ on: rpcListener => messageListeners.add(rpcListener),
45
+ post: postMessage,
46
46
  // Names of remote functions that do not need response.
47
47
  // These are fire-and-forget messages to the vitest pool coordinator.
48
48
  eventNames: ["onUserConsoleLog", "onCollected", "onCancel"],
@@ -107,9 +107,10 @@ rpc.exports["onMessage"] = async message => {
107
107
  rpc: birpc,
108
108
  projectName: config.name ?? ""
109
109
  };
110
- return postWorkerResponse({
111
- type: "started"
112
- });
110
+ return {
111
+ type: "started",
112
+ __vitest_worker_response__: true
113
+ };
113
114
  }
114
115
  case "stop":
115
116
  {
@@ -123,18 +124,20 @@ rpc.exports["onMessage"] = async message => {
123
124
  await Promise.allSettled([...cleanupListeners.values()].map(listener => listener()));
124
125
  cancelListeners.clear();
125
126
  cleanupListeners.clear();
126
- return postWorkerResponse({
127
- type: "stopped"
128
- });
127
+ return {
128
+ type: "stopped",
129
+ __vitest_worker_response__: true
130
+ };
129
131
  }
130
132
  case "run":
131
133
  case "collect":
132
134
  {
133
135
  if (runPromise !== undefined) {
134
- return postWorkerResponse({
136
+ return {
135
137
  type: "testfileFinished",
138
+ __vitest_worker_response__: true,
136
139
  error: serializeError("Worker is already running tests")
137
- });
140
+ };
138
141
  }
139
142
  /** @see https://github.com/vitest-dev/vitest/blob/4f58c77147796d48bf70579222a577df977300f8/packages/vitest/src/runtime/worker.ts#L28-L49 */
140
143
  provideWorkerState(globalThis, {
@@ -202,12 +205,7 @@ rpc.exports["onMessage"] = async message => {
202
205
  globalThis.__node_vm = nodeVm;
203
206
  globalThis.__vitest = vitestModule;
204
207
  globalThis.__vitest_runner = vitestRunnerModule;
205
- // TODO: warning if file not found
206
- const source64 = testFiles[file];
207
- if (source64 === undefined) {
208
- return;
209
- }
210
- const source = Buffer.from(source64, "base64").toString("utf-8");
208
+ const source = Buffer.from(testFiles[file], "base64").toString("utf-8");
211
209
  await Script.load(file, source);
212
210
  }
213
211
  };
@@ -216,14 +214,16 @@ rpc.exports["onMessage"] = async message => {
216
214
  runPromise = entrypoint([file], patchTestRunner(testRunner));
217
215
  await runPromise;
218
216
  }
219
- postWorkerResponse({
220
- type: "testfileFinished"
221
- });
217
+ return {
218
+ type: "testfileFinished",
219
+ __vitest_worker_response__: true
220
+ };
222
221
  } catch (error) {
223
- postWorkerResponse({
222
+ return {
224
223
  type: "testfileFinished",
224
+ __vitest_worker_response__: true,
225
225
  error: serializeError(error)
226
- });
226
+ };
227
227
  } finally {
228
228
  runPromise = undefined;
229
229
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","names":["collectTests","startTests","serializeError","createStackString","parseStacktrace","createBirpc","stringify","flattedStringify","EvaluatedModules","testFiles","runPromise","setupContext","postMessage","message","send","_key","value","stack","undefined","JSON","postWorkerResponse","response","__vitest_worker_response__","cleanupListeners","Set","cancelListeners","messageListeners","birpc","onCancel","reason","Promise","allSettled","values","map","listener","serialize","data","deserialize","post","on","rpcListener","add","off","delete","eventNames","timeout","provideWorkerState","context","state","NAME_WORKER_STATE","Object","defineProperty","configurable","writable","enumerable","patchTestRunner","testRunner","originalOnTaskUpdate","onTaskUpdate","task","events","call","originalOnCollectStart","onCollectStart","file","onQueued","originalOnCollected","onCollected","files","rpc","exports","isWorkerRequest","u","__vitest_worker_request__","forEach","type","process","env","VITEST_POOL_ID","String","poolId","VITEST_WORKER_ID","workerId","config","environment","pool","projectName","name","$rejectPendingCalls","method","reject","clear","error","globalThis","durations","prepare","ctx","providedContext","metaEnv","resolvingModules","moduleExecutionInfo","Map","evaluatedModules","onCleanup","onFilterStackTrace","entrypoint","importFile","nodeAssert","nodeBuffer","nodeCrypto","diagnosticsChannel","nodeEvents","nodeFs","nodeNet","nodeOs","nodePath","nodeProcess","nodeStream","nodeTimers","nodeTty","nodeUrl","nodeUtil","nodeVm","vitestModule","vitestRunnerModule","__node_assert","__node_buffer","__node_crypto","__node_diagnosticsChannel","__node_events","__node_fs","__node_net","__node_os","__node_path","__node_process","__node_stream","__node_timers","__node_tty","__node_url","__node_util","__node_vm","__vitest","__vitest_runner","source64","source","Buffer","from","toString","Script","load"],"sources":["../../frida/agent.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,qBAAqB;AAK5B,SAASA,YAAY,EAAEC,UAAU,QAAQ,gBAAgB;AACzD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,iBAAiB,EAAEC,eAAe,QAAQ,0BAA0B;AAC7E,SAASC,WAAW,QAAQ,OAAO;AACnC,SAASC,SAAS,IAAIC,gBAAgB,QAAQ,SAAS;AACvD,SAASC,gBAAgB,QAAQ,QAAQ;AAEzC,MAAMC,SAAS,GAA2B,EAAE;AAE5C;AACA;AACA;AACA,IAAIC,UAAwC;AAC5C,IAAIC,YAAyF;AAE7F;AACA,MAAMC,WAAW,GAAIC,OAAgB,IACjCC,IAAI,CACAP,gBAAgB,CAACM,OAAO,EAAE,CAACE,IAAY,EAAEC,KAAc,KAAa;EAChE;EACA,IACIA,KAAK,KAAK,IAAI,IACd,OAAOA,KAAK,KAAK,QAAQ,IACzB,MAAM,IAAIA,KAAK,IACf,SAAS,IAAIA,KAAK,IAClB,OAAO,IAAIA,KAAK,IAChB,OAAOA,KAAK,CAACC,KAAK,KAAK,QAAQ,EACjC;IACE,OAAO;MACH,GAAGD,KAAK;MACRC,KAAK,EAAED,KAAK,CAACC,KAAK,KAAKC,SAAS,GAAGA,SAAS,GAAGC,IAAI,CAACb,SAAS,CAACU,KAAK,CAACC,KAAK;KAC5E;EACL,CAAC,MAAM;IACH,OAAOD,KAAK;EAChB;AACJ,CAAC,CAAC,CACL;AACL,MAAMI,kBAAkB,GAAIC,QAA4D,IACpFT,WAAW,CAAC;EAAE,GAAGS,QAAQ;EAAEC,0BAA0B,EAAE;AAAI,CAAE,CAAC;AAElE;AACA,MAAMC,gBAAgB,gBAAG,IAAIC,GAAG,EAAiB;AACjD,MAAMC,eAAe,gBAAG,IAAID,GAAG,EAAqC;AACpE,MAAME,gBAAgB,gBAAG,IAAIF,GAAG,EAA8C;AAC9E,MAAMG,KAAK,gBAAGtB,WAAW,CACrB;EACI,MAAMuB,QAAQA,CAACC,MAAoB;IAC/B,MAAMC,OAAO,CAACC,UAAU,CAAC,CAAC,GAAGN,eAAe,CAACO,MAAM,EAAE,CAAC,CAACC,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACL,MAAM,CAAC,CAAC,CAAC;EAC/F;CACH,EACD;EACI;EACAM,SAAS,EAAGC,IAAI,IAAKA,IAAI;EACzBC,WAAW,EAAGD,IAAI,IAAKA,IAAI;EAE3B;EACAE,IAAI,EAAE1B,WAAW;EACjB2B,EAAE,EAAGC,WAAW,IAAKd,gBAAgB,CAACe,GAAG,CAACD,WAAW,CAAC;EACtDE,GAAG,EAAGF,WAAW,IAAKd,gBAAgB,CAACiB,MAAM,CAACH,WAAW,CAAC;EAE1D;EACA;EACAI,UAAU,EAAE,CAAC,kBAAkB,EAAE,aAAa,EAAE,UAAU,CAAC;EAE3D;EACAC,OAAO,EAAE,CAAC;CACb,CACJ;AAED;AACA,SAASC,kBAAkBA,CAACC,OAAgB,EAAEC,KAAwB;EAClE,MAAMC,iBAAiB,GAAG,mBAAmB;EAC7CC,MAAM,CAACC,cAAc,CAACJ,OAAO,EAAEE,iBAAiB,EAAE;IAC9CjC,KAAK,EAAEgC,KAAK;IACZI,YAAY,EAAE,IAAI;IAClBC,QAAQ,EAAE,IAAI;IACdC,UAAU,EAAE;GACf,CAAC;EACF,OAAON,KAAK;AAChB;AAEA;AACA,SAASO,eAAeA,CAACC,UAAwB;EAC7C,MAAMC,oBAAoB,GAAGD,UAAU,CAACE,YAAY;EACpDF,UAAU,CAACE,YAAY,GAAG,OAAOC,IAAI,EAAEC,MAAM,KAAI;IAC7C,MAAMjC,KAAK,CAAC+B,YAAY,CAACC,IAAI,EAAEC,MAAM,CAAC;IACtC,MAAMH,oBAAoB,EAAEI,IAAI,CAACL,UAAU,EAAEG,IAAI,EAAEC,MAAM,CAAC;EAC9D,CAAC;EAED,MAAME,sBAAsB,GAAGN,UAAU,CAACO,cAAc;EACxDP,UAAU,CAACO,cAAc,GAAG,MAAOC,IAAI,IAAI;IACvC,MAAMrC,KAAK,CAACsC,QAAQ,CAACD,IAAI,CAAC;IAC1B,MAAMF,sBAAsB,EAAED,IAAI,CAACL,UAAU,EAAEQ,IAAI,CAAC;EACxD,CAAC;EAED,MAAME,mBAAmB,GAAGV,UAAU,CAACW,WAAW;EAClDX,UAAU,CAACW,WAAW,GAAG,MAAOC,KAAK,IAAI;IACrC,MAAMzC,KAAK,CAACwC,WAAW,CAACC,KAAK,CAAC;IAC9B,MAAMF,mBAAmB,EAAEL,IAAI,CAACL,UAAU,EAAEY,KAAK,CAAC;EACtD,CAAC;EAED,OAAOZ,UAAU;AACrB;AAEA;AACAa,GAAG,CAACC,OAAO,CAAC,WAAW,CAAC,GAAG,MAAOzD,OAAgB,IAAmB;EACjE;EACA,MAAM0D,eAAe,GAAIC,CAAU,IAC/B,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAI,2BAA2B,IAAIA,CAAC,IAAIA,CAAC,CAACC,yBAAyB,KAAK,IAAI;EAEnH;EACA,IAAI,CAACF,eAAe,CAAC1D,OAAO,CAAC,EAAE;IAC3B,OAAOa,gBAAgB,CAACgD,OAAO,CAAExC,QAAQ,IAAI;MACzCA,QAAQ,CAACrB,OAAO,CAAC;IACrB,CAAC,CAAC;EACN;EAEA;EACA,QAAQA,OAAO,CAAC8D,IAAI;IAChB,KAAK,OAAO;MAAE;QACVC,OAAO,CAACC,GAAG,CAACC,cAAc,GAAGC,MAAM,CAAClE,OAAO,CAACmE,MAAM,CAAC;QACnDJ,OAAO,CAACC,GAAG,CAACI,gBAAgB,GAAGF,MAAM,CAAClE,OAAO,CAACqE,QAAQ,CAAC;QACvD,MAAM;UAAEC,MAAM;UAAEC,WAAW;UAAEC;QAAI,CAAE,GAAGxE,OAAO,CAACkC,OAAO;QACrDpC,YAAY,GAAG;UAAEyE,WAAW;UAAED,MAAM;UAAEE,IAAI;UAAEhB,GAAG,EAAE1C,KAAK;UAAE2D,WAAW,EAAEH,MAAM,CAACI,IAAI,IAAI;QAAE,CAAE;QACxF,OAAOnE,kBAAkB,CAAC;UAAEuD,IAAI,EAAE;QAAS,CAAE,CAAC;MAClD;IAEA,KAAK,MAAM;MAAE;QACT,IAAIjE,UAAU,KAAKQ,SAAS,EAAE,MAAMR,UAAU;QAC9C,MAAMoB,OAAO,CAACC,UAAU,CACpBpB,YAAY,CAAC0D,GAAG,CAACmB,mBAAmB,CAAC,CAAC;UAAEC,MAAM;UAAEC;QAAM,CAAE,KAAI;UACxDA,MAAM,CAAC,qBAAqBD,MAAM,cAAc,CAAC;QACrD,CAAC,CAAC,CACL;QACD,MAAM3D,OAAO,CAACC,UAAU,CAAC,CAAC,GAAGR,gBAAgB,CAACS,MAAM,EAAE,CAAC,CAACC,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,EAAE,CAAC,CAAC;QACtFT,eAAe,CAACkE,KAAK,EAAE;QACvBpE,gBAAgB,CAACoE,KAAK,EAAE;QACxB,OAAOvE,kBAAkB,CAAC;UAAEuD,IAAI,EAAE;QAAS,CAAE,CAAC;MAClD;IAEA,KAAK,KAAK;IACV,KAAK,SAAS;MAAE;QACZ,IAAIjE,UAAU,KAAKQ,SAAS,EAAE;UAC1B,OAAOE,kBAAkB,CAAC;YACtBuD,IAAI,EAAE,kBAAkB;YACxBiB,KAAK,EAAE1F,cAAc,CAAC,iCAAiC;WAC1D,CAAC;QACN;QAEA;QACA4C,kBAAkB,CAAC+C,UAAU,EAAE;UAC3BxB,GAAG,EAAE1C,KAAK;UACVyD,WAAW,EAAE,IAAK;UAClBD,MAAM,EAAExE,YAAY,CAACwE,MAAM;UAC3BW,SAAS,EAAE;YAAEV,WAAW,EAAE,CAAC;YAAEW,OAAO,EAAE;UAAC,CAAE;UACzCC,GAAG,EAAE;YAAE,GAAGrF,YAAY;YAAE,GAAGE,OAAO,CAACkC;UAAO,CAAE;UAC5CkD,eAAe,EAAEpF,OAAO,CAACkC,OAAO,CAACkD,eAAe;UAChDC,OAAO,EAAEtB,OAAO,CAACC,GAAmC;UAEpDsB,gBAAgB,EAAE,IAAI3E,GAAG,EAAE;UAAE;UAC7B4E,mBAAmB,EAAE,IAAIC,GAAG,EAAE;UAAE;UAChCC,gBAAgB,EAAE,IAAI9F,gBAAgB,EAAE;UAAE;UAE1CoB,QAAQ,EAAGM,QAAQ,IAAKT,eAAe,CAACgB,GAAG,CAACP,QAAQ,CAAC;UACrDqE,SAAS,EAAGrE,QAAQ,IAAKX,gBAAgB,CAACkB,GAAG,CAACP,QAAQ,CAAC;UACvDsE,kBAAkB,EAAGvF,KAAK,IAAKd,iBAAiB,CAACC,eAAe,CAACa,KAAK,CAAC;SAC9C,CAAC;QAE9B;QACA,MAAMwF,UAAU,GAAG5F,OAAO,CAAC8D,IAAI,KAAK,KAAK,GAAG1E,UAAU,GAAGD,YAAY;QACrE,MAAMwD,UAAU,GAAiB;UAC7B2B,MAAM,EAAExE,YAAY,CAACwE,MAAgC;UACrDuB,UAAU,EAAE,MAAO1C,IAAY,IAAmB;YAC9C,MAAM2C,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YAC9C,MAAMC,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YAC9C,MAAMC,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YAC9C,MAAMC,kBAAkB,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC;YACnE,MAAMC,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YAC9C,MAAMC,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACtC,MAAMC,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;YACxC,MAAMC,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACtC,MAAMC,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YAC1C,MAAMC,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC;YAChD,MAAMC,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YAC9C,MAAMC,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YAC9C,MAAMC,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;YACxC,MAAMC,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;YACxC,MAAMC,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YAC1C,MAAMC,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACtC,MAAMC,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YAC3C,MAAMC,kBAAkB,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;YAExD/B,UAAkB,CAACgC,aAAa,GAAGlB,UAAU;YAC7Cd,UAAkB,CAACiC,aAAa,GAAGlB,UAAU;YAC7Cf,UAAkB,CAACkC,aAAa,GAAGlB,UAAU;YAC7ChB,UAAkB,CAACmC,yBAAyB,GAAGlB,kBAAkB;YACjEjB,UAAkB,CAACoC,aAAa,GAAGlB,UAAU;YAC7ClB,UAAkB,CAACqC,SAAS,GAAGlB,MAAM;YACrCnB,UAAkB,CAACsC,UAAU,GAAGlB,OAAO;YACvCpB,UAAkB,CAACuC,SAAS,GAAGlB,MAAM;YACrCrB,UAAkB,CAACwC,WAAW,GAAGlB,QAAQ;YACzCtB,UAAkB,CAACyC,cAAc,GAAGlB,WAAW;YAC/CvB,UAAkB,CAAC0C,aAAa,GAAGlB,UAAU;YAC7CxB,UAAkB,CAAC2C,aAAa,GAAGlB,UAAU;YAC7CzB,UAAkB,CAAC4C,UAAU,GAAGlB,OAAO;YACvC1B,UAAkB,CAAC6C,UAAU,GAAGlB,OAAO;YACvC3B,UAAkB,CAAC8C,WAAW,GAAGlB,QAAQ;YACzC5B,UAAkB,CAAC+C,SAAS,GAAGlB,MAAM;YACrC7B,UAAkB,CAACgD,QAAQ,GAAGlB,YAAY;YAC1C9B,UAAkB,CAACiD,eAAe,GAAGlB,kBAAkB;YAExD;YACA,MAAMmB,QAAQ,GAAGtI,SAAS,CAACuD,IAAI,CAAC;YAChC,IAAI+E,QAAQ,KAAK7H,SAAS,EAAE;cACxB;YACJ;YAEA,MAAM8H,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACH,QAAQ,EAAE,QAAQ,CAAC,CAACI,QAAQ,CAAC,OAAO,CAAC;YAChE,MAAMC,MAAM,CAACC,IAAI,CAACrF,IAAI,EAAEgF,MAAM,CAAC;UACnC;SACH;QAED,IAAI;UACA,KAAK,MAAMhF,IAAI,IAAInD,OAAO,CAACkC,OAAO,CAACqB,KAAK,EAAE;YACtC1D,UAAU,GAAG+F,UAAU,CAAC,CAACzC,IAAI,CAAC,EAAET,eAAe,CAACC,UAAU,CAAC,CAAC;YAC5D,MAAM9C,UAAU;UACpB;UACAU,kBAAkB,CAAC;YAAEuD,IAAI,EAAE;UAAkB,CAAE,CAAC;QACpD,CAAC,CAAC,OAAOiB,KAAc,EAAE;UACrBxE,kBAAkB,CAAC;YAAEuD,IAAI,EAAE,kBAAkB;YAAEiB,KAAK,EAAE1F,cAAc,CAAC0F,KAAK;UAAC,CAAE,CAAC;QAClF,CAAC,SAAS;UACNlF,UAAU,GAAGQ,SAAS;QAC1B;MACJ;EACJ;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"agent.js","names":["collectTests","startTests","serializeError","createStackString","parseStacktrace","createBirpc","stringify","flattedStringify","EvaluatedModules","testFiles","runPromise","setupContext","postMessage","message","send","_key","value","stack","undefined","JSON","cleanupListeners","Set","cancelListeners","messageListeners","birpc","onCancel","reason","Promise","allSettled","values","map","listener","serialize","data","deserialize","off","rpcListener","delete","on","add","post","eventNames","timeout","provideWorkerState","context","state","NAME_WORKER_STATE","Object","defineProperty","configurable","writable","enumerable","patchTestRunner","testRunner","originalOnTaskUpdate","onTaskUpdate","task","events","call","originalOnCollectStart","onCollectStart","file","onQueued","originalOnCollected","onCollected","files","rpc","exports","isWorkerRequest","u","__vitest_worker_request__","forEach","type","process","env","VITEST_POOL_ID","String","poolId","VITEST_WORKER_ID","workerId","config","environment","pool","projectName","name","__vitest_worker_response__","$rejectPendingCalls","method","reject","clear","error","globalThis","durations","prepare","ctx","providedContext","metaEnv","resolvingModules","moduleExecutionInfo","Map","evaluatedModules","onCleanup","onFilterStackTrace","entrypoint","importFile","nodeAssert","nodeBuffer","nodeCrypto","diagnosticsChannel","nodeEvents","nodeFs","nodeNet","nodeOs","nodePath","nodeProcess","nodeStream","nodeTimers","nodeTty","nodeUrl","nodeUtil","nodeVm","vitestModule","vitestRunnerModule","__node_assert","__node_buffer","__node_crypto","__node_diagnosticsChannel","__node_events","__node_fs","__node_net","__node_os","__node_path","__node_process","__node_stream","__node_timers","__node_tty","__node_url","__node_util","__node_vm","__vitest","__vitest_runner","source","Buffer","from","toString","Script","load"],"sources":["../../frida/agent.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,81 +1,52 @@
1
- import type * as VitestNode from "vitest/node";
2
1
  import * as Schema from "effect/Schema";
3
- declare const DeviceSchema_base: Schema.Union<[Schema.Struct<{
4
- device: Schema.Literal<["local"]>;
5
- }>, Schema.Struct<{
6
- device: Schema.Literal<["usb"]>;
7
- timeout: Schema.optionalWith<typeof Schema.DurationFromMillis, {
8
- nullable: true;
9
- }>;
10
- }>, Schema.Struct<{
11
- address: typeof Schema.String;
12
- device: Schema.Literal<["remote"]>;
13
- token: Schema.optionalWith<typeof Schema.String, {
14
- nullable: true;
15
- }>;
16
- origin: Schema.optionalWith<typeof Schema.String, {
17
- nullable: true;
18
- }>;
19
- keepaliveInterval: Schema.optionalWith<typeof Schema.DurationFromMillis, {
20
- nullable: true;
21
- }>;
22
- }>, Schema.Struct<{
23
- emulatorName: typeof Schema.String;
24
- device: Schema.Literal<["android-emulator"]>;
25
- hidden: Schema.optionalWith<typeof Schema.Boolean, {
26
- nullable: true;
27
- }>;
28
- adbExecutable: Schema.optionalWith<typeof Schema.String, {
29
- nullable: true;
30
- }>;
31
- fridaExecutable: Schema.optionalWith<typeof Schema.String, {
32
- nullable: true;
33
- }>;
34
- emulatorExecutable: Schema.optionalWith<typeof Schema.String, {
35
- nullable: true;
36
- }>;
37
- }>]>;
38
- declare class DeviceSchema extends DeviceSchema_base {
39
- }
40
- declare const AttachSchema_base: Schema.Union<[Schema.Struct<{
41
- attach: Schema.brand<typeof Schema.Number, "pid">;
42
- }>, Schema.Struct<{
43
- spawn: Schema.NonEmptyArrayEnsure<typeof Schema.String>;
44
- preSpawn: Schema.optionalWith<typeof Schema.Boolean, {
45
- nullable: true;
46
- }>;
47
- }>, Schema.Struct<{
48
- attachFrontmost: Schema.Literal<[true]>;
49
- frontmostScope: Schema.optionalWith<Schema.Literal<["minimal", "metadata", "full"]>, {
50
- nullable: true;
51
- }>;
52
- }>]>;
53
- declare class AttachSchema extends AttachSchema_base {
54
- }
55
- declare const ConfigSchema_base: Schema.extend<Schema.extend<Schema.Struct<{
56
- runtime: Schema.optionalWith<Schema.Literal<["default", "qjs", "v8"]>, {
57
- nullable: true;
58
- }>;
59
- platform: Schema.optionalWith<Schema.Literal<["gum", "browser", "neutral"]>, {
60
- nullable: true;
61
- }>;
62
- }>, typeof DeviceSchema>, typeof AttachSchema>;
63
- declare class ConfigSchema extends ConfigSchema_base {
64
- }
2
+ import type * as VitestNode from "vitest/node";
3
+ declare const ConfigSchema: Schema.Struct<{
4
+ readonly device: Schema.Union<readonly [Schema.Struct<{
5
+ readonly connection: Schema.Literal<"local">;
6
+ }>, Schema.Struct<{
7
+ readonly connection: Schema.Literal<"usb">;
8
+ readonly timeout: Schema.optional<Schema.DurationFromMillis>;
9
+ }>, Schema.Struct<{
10
+ readonly address: Schema.String;
11
+ readonly connection: Schema.Literal<"remote">;
12
+ readonly token: Schema.optional<Schema.String>;
13
+ readonly origin: Schema.optional<Schema.String>;
14
+ readonly keepaliveInterval: Schema.optional<Schema.DurationFromMillis>;
15
+ }>, Schema.Struct<{
16
+ readonly emulatorName: Schema.String;
17
+ readonly hidden: Schema.optional<Schema.Boolean>;
18
+ readonly adbExecutable: Schema.optional<Schema.String>;
19
+ readonly connection: Schema.Literal<"android-emulator">;
20
+ readonly fridaExecutable: Schema.optional<Schema.String>;
21
+ readonly emulatorExecutable: Schema.optional<Schema.String>;
22
+ }>]>;
23
+ readonly attach: Schema.Union<readonly [Schema.Struct<{
24
+ readonly pid: Schema.Number;
25
+ }>, Schema.Struct<{
26
+ readonly spawn: Schema.NonEmptyArray<Schema.String>;
27
+ readonly preSpawn: Schema.optional<Schema.Boolean>;
28
+ }>, Schema.Struct<{
29
+ readonly attachFrontmost: Schema.Literal<true>;
30
+ readonly frontmostScope: Schema.optional<Schema.Literals<readonly ["minimal", "metadata", "full"]>>;
31
+ }>]>;
32
+ readonly runtime: Schema.optional<Schema.Literals<readonly ["default", "qjs", "v8"]>>;
33
+ readonly platform: Schema.optional<Schema.Literals<readonly ["gum", "browser", "neutral"]>>;
34
+ }>;
65
35
  /**
66
36
  * @since 1.0.0
67
37
  * @category Tests
68
38
  */
69
39
  export declare class FridaPoolWorker implements VitestNode.PoolWorker {
70
- readonly name = "frida-pool";
71
40
  readonly agentTemplatePath: URL;
72
- private readonly poolOptions;
41
+ readonly name = "frida-pool";
73
42
  private readonly customOptions;
74
43
  private readonly cancelables;
75
44
  private modifiedAgentScope;
76
45
  private managedRuntime;
77
46
  private sends;
78
- constructor(poolOptions: VitestNode.PoolOptions, customOptions: Schema.Schema.Type<ConfigSchema>);
47
+ private compiledAgentUrlPromise;
48
+ private messageCallback;
49
+ constructor(poolOptions: VitestNode.PoolOptions, customOptions: Schema.Schema.Type<typeof ConfigSchema>);
79
50
  start(): Promise<void>;
80
51
  stop(): Promise<void>;
81
52
  send(message: VitestNode.WorkerRequest): Promise<void>;
@@ -88,6 +59,6 @@ export declare class FridaPoolWorker implements VitestNode.PoolWorker {
88
59
  * @since 1.0.0
89
60
  * @category Tests
90
61
  */
91
- export declare const createFridaPool: (customOptions: Schema.Schema.Encoded<ConfigSchema>) => VitestNode.PoolRunnerInitializer;
62
+ export declare const createFridaPool: (customOptions: Schema.Codec.Encoded<typeof ConfigSchema>) => VitestNode.PoolRunnerInitializer;
92
63
  export {};
93
64
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,UAAU,MAAM,aAAa,CAAC;AAkB/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASxC,cAAM,YAAa,SAAQ,iBAuB1B;CAAG;;;;;;;;;;;;;;AAGJ,cAAM,YAAa,SAAQ,iBAY1B;CAAG;;;;;;;;;AAGJ,cAAM,YAAa,SAAQ,iBAIwC;CAAG;AAEtE;;;GAGG;AACH,qBAAa,eAAgB,YAAW,UAAU,CAAC,UAAU;IACzD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,iBAAiB,MAAiD;IAE3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IAEjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAQ1B;IAEF,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,cAAc,CAON;IAChB,OAAO,CAAC,KAAK,CAUN;gBAEK,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAQ1F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmFtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5D,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAkDrD,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,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KACnD,UAAU,CAAC,qBAMb,CAAC"}
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;AAoD/C,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKhB,CAAC;AAEH;;;GAGG;AACH,qBAAa,eAAgB,YAAW,UAAU,CAAC,UAAU;IACzD,QAAQ,CAAC,iBAAiB,MAAiD;IAC3E,QAAQ,CAAC,IAAI,gBAAgB;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IAExE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0D;IAEtF,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,cAAc,CAA8E;IACpG,OAAO,CAAC,KAAK,CAAmD;IAChE,OAAO,CAAC,uBAAuB,CAAe;IAC9C,OAAO,CAAC,eAAe,CAAmC;gBAE9C,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC;IAYjG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8EtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB5D,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAqDrD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAWvD,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,YAAY,CAAC,KACzD,UAAU,CAAC,qBAMb,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,119 +1,97 @@
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";
9
1
  import * as Cause from "effect/Cause";
10
2
  import * as Deferred from "effect/Deferred";
11
3
  import * as Duration from "effect/Duration";
12
4
  import * as Effect from "effect/Effect";
13
5
  import * as Exit from "effect/Exit";
6
+ import * as FileSystem from "effect/FileSystem";
14
7
  import * as Layer from "effect/Layer";
15
8
  import * as ManagedRuntime from "effect/ManagedRuntime";
16
9
  import * as Match from "effect/Match";
10
+ import * as Path from "effect/Path";
17
11
  import * as Schema from "effect/Schema";
18
12
  import * as Scope from "effect/Scope";
19
13
  import * as Sink from "effect/Sink";
20
14
  import * as Stream from "effect/Stream";
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";
21
20
  import * as Esbuild from "esbuild";
22
21
  import * as Flatted from "flatted";
23
22
  import * as Frida from "frida";
24
23
  // First, pick your device
25
- class DeviceSchema extends /*#__PURE__*/Schema.Union(/*#__PURE__*/Schema.Struct({
26
- device: /*#__PURE__*/Schema.Literal("local")
24
+ const DeviceSchema = /*#__PURE__*/Schema.Union([/*#__PURE__*/Schema.Struct({
25
+ connection: /*#__PURE__*/Schema.Literal("local")
27
26
  }), /*#__PURE__*/Schema.Struct({
28
- device: /*#__PURE__*/Schema.Literal("usb"),
29
- timeout: /*#__PURE__*/Schema.optionalWith(Schema.DurationFromMillis, {
30
- nullable: true
31
- })
27
+ connection: /*#__PURE__*/Schema.Literal("usb"),
28
+ timeout: /*#__PURE__*/Schema.optional(Schema.DurationFromMillis)
32
29
  }), /*#__PURE__*/Schema.Struct({
33
30
  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
- })
31
+ connection: /*#__PURE__*/Schema.Literal("remote"),
32
+ token: /*#__PURE__*/Schema.optional(Schema.String),
33
+ origin: /*#__PURE__*/Schema.optional(Schema.String),
34
+ keepaliveInterval: /*#__PURE__*/Schema.optional(Schema.DurationFromMillis)
44
35
  }), /*#__PURE__*/Schema.Struct({
45
36
  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
- })) {}
37
+ hidden: /*#__PURE__*/Schema.optional(Schema.Boolean),
38
+ adbExecutable: /*#__PURE__*/Schema.optional(Schema.String),
39
+ connection: /*#__PURE__*/Schema.Literal("android-emulator"),
40
+ fridaExecutable: /*#__PURE__*/Schema.optional(Schema.String),
41
+ emulatorExecutable: /*#__PURE__*/Schema.optional(Schema.String)
42
+ })]);
60
43
  // Second, pick your session
61
- class AttachSchema extends /*#__PURE__*/Schema.Union(/*#__PURE__*/Schema.Struct({
62
- attach: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.brand("pid"))
44
+ const AttachSchema = /*#__PURE__*/Schema.Union([/*#__PURE__*/Schema.Struct({
45
+ pid: Schema.Number
63
46
  }), /*#__PURE__*/Schema.Struct({
64
- spawn: /*#__PURE__*/Schema.NonEmptyArrayEnsure(Schema.String),
65
- preSpawn: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
66
- nullable: true
67
- })
47
+ spawn: /*#__PURE__*/Schema.NonEmptyArray(Schema.String),
48
+ preSpawn: /*#__PURE__*/Schema.optional(Schema.Boolean)
68
49
  }), /*#__PURE__*/Schema.Struct({
69
50
  attachFrontmost: /*#__PURE__*/Schema.Literal(true),
70
- frontmostScope: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Literal("minimal", "metadata", "full"), {
71
- nullable: true
72
- })
73
- })) {}
51
+ frontmostScope: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Literals(["minimal", "metadata", "full"]))
52
+ })]);
74
53
  // 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)) {}
54
+ const ConfigSchema = /*#__PURE__*/Schema.Struct({
55
+ device: DeviceSchema,
56
+ attach: AttachSchema,
57
+ runtime: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Literals(["default", "qjs", "v8"])),
58
+ platform: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Literals(["gum", "browser", "neutral"]))
59
+ });
83
60
  /**
84
61
  * @since 1.0.0
85
62
  * @category Tests
86
63
  */
87
64
  export class FridaPoolWorker {
88
- name = "frida-pool";
89
65
  agentTemplatePath = /*#__PURE__*/new URL("../frida/agent.ts", import.meta.url);
90
- poolOptions;
66
+ name = "frida-pool";
91
67
  customOptions;
92
68
  cancelables;
93
69
  modifiedAgentScope;
94
70
  managedRuntime;
95
71
  sends = [];
72
+ compiledAgentUrlPromise;
73
+ messageCallback;
96
74
  constructor(poolOptions, customOptions) {
97
- this.poolOptions = poolOptions;
98
75
  this.customOptions = customOptions;
99
76
  this.cancelables = new Map();
100
77
  this.managedRuntime = undefined;
101
78
  this.modifiedAgentScope = Effect.runSync(Scope.make());
79
+ this.compiledAgentUrlPromise = compileTestFiles(this.agentTemplatePath, poolOptions).pipe(Scope.provide(this.modifiedAgentScope), Effect.provide(NodeServices.layer), Effect.runPromise);
102
80
  }
103
81
  async start() {
104
- const tempAgentUrl = await compileTestFiles(this.agentTemplatePath, this.poolOptions).pipe(Scope.extend(this.modifiedAgentScope), Effect.provide(NodeContext.layer), Effect.runPromise);
82
+ const tempAgentUrl = await this.compiledAgentUrlPromise;
105
83
  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
84
  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"
85
+ const DeviceLive = Match.value(this.customOptions.device).pipe(Match.when({
86
+ connection: "local"
109
87
  }, () => FridaDevice.layerLocalDevice), Match.when({
110
- device: "usb"
88
+ connection: "usb"
111
89
  }, ({
112
90
  timeout
113
91
  }) => FridaDevice.layerUsbDevice({
114
92
  timeout: timeout ? Duration.toMillis(timeout) : undefined
115
93
  })), Match.when({
116
- device: "remote"
94
+ connection: "remote"
117
95
  }, ({
118
96
  address,
119
97
  keepaliveInterval,
@@ -124,7 +102,7 @@ export class FridaPoolWorker {
124
102
  origin,
125
103
  keepaliveInterval: keepaliveInterval ? Duration.toSeconds(keepaliveInterval) : undefined
126
104
  })), Match.when({
127
- device: "android-emulator"
105
+ connection: "android-emulator"
128
106
  }, ({
129
107
  adbExecutable,
130
108
  emulatorExecutable,
@@ -132,16 +110,16 @@ export class FridaPoolWorker {
132
110
  fridaExecutable,
133
111
  hidden
134
112
  }) => FridaDevice.layerAndroidEmulatorDevice(emulatorName, {
135
- hidden,
136
- adbExecutable,
137
- fridaExecutable,
138
- emulatorExecutable
113
+ hidden: hidden ?? undefined,
114
+ adbExecutable: adbExecutable ?? undefined,
115
+ fridaExecutable: fridaExecutable ?? undefined,
116
+ emulatorExecutable: emulatorExecutable ?? undefined
139
117
  })), Match.exhaustive);
140
- const SessionLive = Match.value(this.customOptions).pipe(Match.when({
141
- attach: Match.number
118
+ const SessionLive = Match.value(this.customOptions.attach).pipe(Match.when({
119
+ pid: Match.number
142
120
  }, ({
143
- attach
144
- }) => FridaSession.layer(attach)), Match.when({
121
+ pid
122
+ }) => FridaSession.layer(pid)), Match.when({
145
123
  attachFrontmost: true
146
124
  }, ({
147
125
  frontmostScope
@@ -151,15 +129,14 @@ export class FridaPoolWorker {
151
129
  preSpawn: true
152
130
  }, ({
153
131
  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);
132
+ }) => Layer.unwrap(Effect.gen(function* () {
133
+ const [command, ...args] = spawn;
134
+ const handle = yield* ChildProcess.make(command, args);
135
+ return FridaSession.layer(handle.pid);
159
136
  }))), Match.orElse(({
160
137
  spawn
161
138
  }) => FridaSession.layer(spawn)));
162
- const FridaLive = Layer.provide(SessionLive, DeviceLive).pipe(Layer.provide(NodeContext.layer));
139
+ const FridaLive = Layer.provide(SessionLive, DeviceLive).pipe(Layer.provide(NodeServices.layer));
163
140
  const ScriptLive = FridaScript.layer(tempAgentUrl, {
164
141
  externals: ["jsdom", "happy-dom", "@edge-runtime/vm"],
165
142
  ...(FridaRuntime !== undefined ? {
@@ -178,31 +155,39 @@ export class FridaPoolWorker {
178
155
  async stop() {
179
156
  for (const cancelable of this.cancelables.values()) cancelable();
180
157
  this.cancelables.clear();
181
- // await Promise.allSettled(this.sends);
158
+ await Promise.allSettled(this.sends);
182
159
  await this.managedRuntime.dispose();
183
160
  await Effect.runPromise(Scope.close(this.modifiedAgentScope, Exit.void));
184
161
  }
185
162
  async send(message) {
186
- const sendPromise = this.managedRuntime.runPromiseExit(Effect.flatMap(FridaScript.FridaScript, fridaScript => fridaScript.callExport("onMessage", Schema.Void)(message)));
163
+ const sendPromise = this.managedRuntime.runPromiseExit(Effect.flatMap(FridaScript.FridaScript, fridaScript => fridaScript.callExport("onMessage")(message)));
187
164
  this.sends.push(sendPromise);
188
165
  const exit = await sendPromise;
189
166
  this.sends = this.sends.filter(p => p !== sendPromise);
190
- if (Exit.isSuccess(exit)) return;
167
+ if (Exit.isSuccess(exit)) {
168
+ if (exit.value !== null && exit.value !== undefined) {
169
+ this.messageCallback?.(exit.value);
170
+ }
171
+ return;
172
+ }
191
173
  const prettyError = Cause.prettyErrors(exit.cause);
192
174
  throw prettyError[0];
193
175
  }
194
176
  on(event, callback) {
195
177
  let cancelable;
196
- const sink = Sink.forEach(input => Effect.sync(() => {
197
- callback(input.message);
198
- }));
199
178
  switch (event) {
200
179
  case "message":
201
- cancelable = this.managedRuntime.runCallback(Effect.flatMap(FridaScript.FridaScript, fridaScript => Stream.run(fridaScript.stream, sink)));
202
- break;
180
+ {
181
+ this.messageCallback = callback;
182
+ const sink = Sink.forEach(input => Effect.sync(() => {
183
+ callback(input.message);
184
+ }));
185
+ cancelable = this.managedRuntime.runCallback(Effect.flatMap(FridaScript.FridaScript, fridaScript => Stream.run(fridaScript.stream, sink)));
186
+ break;
187
+ }
203
188
  case "error":
204
189
  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) : {}
190
+ onExit: exit => Exit.isSuccess(exit) ? callback(exit.value) : !Cause.hasInterruptsOnly(exit.cause) ? callback(exit.cause) : {}
206
191
  });
207
192
  break;
208
193
  case "exit":
@@ -221,6 +206,9 @@ export class FridaPoolWorker {
221
206
  this.cancelables.delete(callback);
222
207
  cancelable();
223
208
  }
209
+ if (this.messageCallback === callback) {
210
+ this.messageCallback = undefined;
211
+ }
224
212
  }
225
213
  deserialize(data) {
226
214
  if (typeof data !== "string") return data;else return Flatted.parse(data);
@@ -393,10 +381,12 @@ const compileTestFiles = /*#__PURE__*/Effect.fnUntraced(function* (agentTemplate
393
381
  const path = yield* Path.Path;
394
382
  const fs = yield* FileSystem.FileSystem;
395
383
  const url = yield* path.fromFileUrl(agentTemplatePath);
396
- const testFiles = poolOptions.project.testFilesList ?? [];
384
+ const testFilesList = poolOptions.project.testFilesList ?? [];
385
+ const setupFiles = poolOptions.project.config.setupFiles ?? [];
386
+ const allFiles = [...new Set([...setupFiles, ...testFilesList])];
397
387
  const testFilesMap = {};
398
388
  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) {
389
+ for (const testFile of allFiles) {
400
390
  const result = yield* Effect.promise(() => Esbuild.build({
401
391
  bundle: true,
402
392
  write: false,
@@ -407,7 +397,7 @@ const compileTestFiles = /*#__PURE__*/Effect.fnUntraced(function* (agentTemplate
407
397
  plugins: [vitestGlobalsPlugin]
408
398
  }));
409
399
  if (!result.outputFiles || result.outputFiles.length === 0) {
410
- return yield* Effect.dieMessage(`esbuild produced no output for ${testFile}`);
400
+ return yield* Effect.die(new Error(`esbuild produced no output for ${testFile}`));
411
401
  } else {
412
402
  testFilesMap[testFile] = Buffer.from(result.outputFiles[0].text).toString("base64");
413
403
  }
@@ -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":["Cause","Deferred","Duration","Effect","Exit","FileSystem","Layer","ManagedRuntime","Match","Path","Schema","Scope","Sink","Stream","ChildProcess","NodeServices","FridaDevice","FridaScript","FridaSession","Esbuild","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","agentTemplatePath","URL","import","meta","url","name","customOptions","cancelables","modifiedAgentScope","managedRuntime","sends","compiledAgentUrlPromise","messageCallback","constructor","poolOptions","Map","undefined","runSync","make","compileTestFiles","pipe","provide","layer","runPromise","start","tempAgentUrl","FridaRuntime","value","when","ScriptRuntime","V8","QJS","Default","exhaustive","FridaPlatform","JsPlatform","Gum","Browser","Neutral","DeviceLive","layerLocalDevice","layerUsbDevice","toMillis","layerRemoteDevice","toSeconds","layerAndroidEmulatorDevice","SessionLive","number","layerFrontmost","scope","unwrap","gen","command","args","handle","orElse","FridaLive","ScriptLive","externals","exit","runPromiseExit","void","isSuccess","prettyError","prettyErrors","cause","stop","cancelable","values","clear","Promise","allSettled","dispose","close","send","message","sendPromise","flatMap","fridaScript","callExport","push","filter","p","on","event","callback","sink","forEach","input","sync","runCallback","run","stream","await","scriptError","onExit","hasInterruptsOnly","destroyed","Error","set","off","_event","get","delete","deserialize","data","parse","serialize","createFridaPool","decoded","decodeUnknownSync","createPoolWorker","options","vitestGlobalsPlugin","setup","build","onResolve","path","namespace","onLoad","loader","contents","globalName","nodeModuleMap","assert","buffer","crypto","diagnostics_channel","events","fs","net","os","process","timers","tty","util","vm","replace","fnUntraced","fromFileUrl","testFilesList","project","setupFiles","config","allFiles","Set","testFilesMap","esbuildPlatform","whenOr","orElseAbsurd","testFile","result","promise","bundle","write","format","target","entryPoints","plugins","outputFiles","length","die","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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@efffrida/vitest-pool",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "description": "effect frida vitest-pool",
5
5
  "keywords": [
6
6
  "effect-ts",
@@ -31,7 +31,8 @@
31
31
  "./internal/*": null
32
32
  },
33
33
  "publishConfig": {
34
- "access": "public"
34
+ "access": "public",
35
+ "provenance": true
35
36
  },
36
37
  "dependencies": {
37
38
  "@vitest/runner": "4.1.6",
@@ -39,28 +40,23 @@
39
40
  "birpc": "4.0.0",
40
41
  "esbuild": "0.28.0",
41
42
  "flatted": "3.4.2",
42
- "@efffrida/frida-tools": "0.0.26",
43
- "@efffrida/polyfills": "0.0.5"
43
+ "ioredis": "5.10.1",
44
+ "@efffrida/frida-tools": "0.0.28",
45
+ "@efffrida/polyfills": "0.0.7"
44
46
  },
45
47
  "devDependencies": {
46
- "@effect/cluster": "0.58.2",
47
- "@effect/experimental": "0.60.0",
48
- "@effect/platform": "0.96.1",
49
- "@effect/platform-node": "0.106.0",
50
- "@effect/rpc": "0.75.1",
51
- "@effect/sql": "0.51.1",
52
- "@effect/workflow": "0.18.1",
48
+ "@effect/platform-node": "4.0.0-beta.66",
53
49
  "@types/frida-gum": "19.1.0",
54
- "@types/node": "25.7.0",
55
- "effect": "3.21.2",
56
- "frida": "17.9.8",
50
+ "@types/node": "25.9.0",
51
+ "effect": "4.0.0-beta.66",
52
+ "frida": "17.9.10",
57
53
  "vitest": "4.1.6"
58
54
  },
59
55
  "peerDependencies": {
60
- "@effect/platform": "0.96.1",
56
+ "@effect/platform-node": "4.0.0-beta.66",
61
57
  "@vitest/runner": "4.1.6",
62
58
  "@vitest/utils": "4.1.6",
63
- "effect": "3.21.2",
59
+ "effect": "4.0.0-beta.66",
64
60
  "vitest": "4.1.6"
65
61
  },
66
62
  "tags": [
package/src/index.ts CHANGED
@@ -1,139 +1,112 @@
1
- import type * as PlatformError from "@effect/platform/Error";
2
- import type * as FridaDeviceAcquisitionError from "@efffrida/frida-tools/FridaDeviceAcquisitionError";
3
- import type * as FridaSessionError from "@efffrida/frida-tools/FridaSessionError";
4
1
  import type * as Option from "effect/Option";
5
- import type * as ParseResult from "effect/ParseResult";
6
- import type * as Runtime from "effect/Runtime";
7
- import type * as VitestNode from "vitest/node";
8
2
 
9
- import * as NodeContext from "@effect/platform-node/NodeContext";
10
- import * as Command from "@effect/platform/Command";
11
- import * as CommandExecutor from "@effect/platform/CommandExecutor";
12
- import * as FileSystem from "@effect/platform/FileSystem";
13
- import * as Path from "@effect/platform/Path";
14
- import * as FridaDevice from "@efffrida/frida-tools/FridaDevice";
15
- import * as FridaScript from "@efffrida/frida-tools/FridaScript";
16
- import * as FridaSession from "@efffrida/frida-tools/FridaSession";
17
3
  import * as Cause from "effect/Cause";
18
4
  import * as Deferred from "effect/Deferred";
19
5
  import * as Duration from "effect/Duration";
20
6
  import * as Effect from "effect/Effect";
21
7
  import * as Exit from "effect/Exit";
8
+ import * as FileSystem from "effect/FileSystem";
22
9
  import * as Layer from "effect/Layer";
23
10
  import * as ManagedRuntime from "effect/ManagedRuntime";
24
11
  import * as Match from "effect/Match";
12
+ import * as Path from "effect/Path";
25
13
  import * as Schema from "effect/Schema";
26
14
  import * as Scope from "effect/Scope";
27
15
  import * as Sink from "effect/Sink";
28
16
  import * as Stream from "effect/Stream";
17
+ import * as ChildProcess from "effect/unstable/process/ChildProcess";
18
+
19
+ import type * as VitestNode from "vitest/node";
20
+
21
+ import * as NodeServices from "@effect/platform-node/NodeServices";
22
+ import * as FridaDevice from "@efffrida/frida-tools/FridaDevice";
23
+ import * as FridaScript from "@efffrida/frida-tools/FridaScript";
24
+ import * as FridaSession from "@efffrida/frida-tools/FridaSession";
29
25
  import * as Esbuild from "esbuild";
30
26
  import * as Flatted from "flatted";
31
27
  import * as Frida from "frida";
32
28
 
33
29
  // First, pick your device
34
- class DeviceSchema extends Schema.Union(
30
+ const DeviceSchema = Schema.Union([
35
31
  Schema.Struct({
36
- device: Schema.Literal("local"),
32
+ connection: Schema.Literal("local"),
37
33
  }),
38
34
  Schema.Struct({
39
- device: Schema.Literal("usb"),
40
- timeout: Schema.optionalWith(Schema.DurationFromMillis, { nullable: true }),
35
+ connection: Schema.Literal("usb"),
36
+ timeout: Schema.optional(Schema.DurationFromMillis),
41
37
  }),
42
38
  Schema.Struct({
43
39
  address: Schema.String,
44
- device: Schema.Literal("remote"),
45
- token: Schema.optionalWith(Schema.String, { nullable: true }),
46
- origin: Schema.optionalWith(Schema.String, { nullable: true }),
47
- keepaliveInterval: Schema.optionalWith(Schema.DurationFromMillis, { nullable: true }),
40
+ connection: Schema.Literal("remote"),
41
+ token: Schema.optional(Schema.String),
42
+ origin: Schema.optional(Schema.String),
43
+ keepaliveInterval: Schema.optional(Schema.DurationFromMillis),
48
44
  }),
49
45
  Schema.Struct({
50
46
  emulatorName: Schema.String,
51
- device: Schema.Literal("android-emulator"),
52
- hidden: Schema.optionalWith(Schema.Boolean, { nullable: true }),
53
- adbExecutable: Schema.optionalWith(Schema.String, { nullable: true }),
54
- fridaExecutable: Schema.optionalWith(Schema.String, { nullable: true }),
55
- emulatorExecutable: Schema.optionalWith(Schema.String, { nullable: true }),
56
- })
57
- ) {}
47
+ hidden: Schema.optional(Schema.Boolean),
48
+ adbExecutable: Schema.optional(Schema.String),
49
+ connection: Schema.Literal("android-emulator"),
50
+ fridaExecutable: Schema.optional(Schema.String),
51
+ emulatorExecutable: Schema.optional(Schema.String),
52
+ }),
53
+ ]);
58
54
 
59
55
  // Second, pick your session
60
- class AttachSchema extends Schema.Union(
56
+ const AttachSchema = Schema.Union([
61
57
  Schema.Struct({
62
- attach: Schema.Number.pipe(Schema.brand("pid")),
58
+ pid: Schema.Number,
63
59
  }),
64
60
  Schema.Struct({
65
- spawn: Schema.NonEmptyArrayEnsure(Schema.String),
66
- preSpawn: Schema.optionalWith(Schema.Boolean, { nullable: true }),
61
+ spawn: Schema.NonEmptyArray(Schema.String),
62
+ preSpawn: Schema.optional(Schema.Boolean),
67
63
  }),
68
64
  Schema.Struct({
69
65
  attachFrontmost: Schema.Literal(true),
70
- frontmostScope: Schema.optionalWith(Schema.Literal("minimal", "metadata", "full"), { nullable: true }),
71
- })
72
- ) {}
66
+ frontmostScope: Schema.optional(Schema.Literals(["minimal", "metadata", "full"])),
67
+ }),
68
+ ]);
73
69
 
74
70
  // Third, pick your runtime and platform
75
- class ConfigSchema extends Schema.Struct({
76
- runtime: Schema.optionalWith(Schema.Literal("default", "qjs", "v8"), { nullable: true }),
77
- platform: Schema.optionalWith(Schema.Literal("gum", "browser", "neutral"), { nullable: true }),
78
- })
79
- .pipe(Schema.extend(DeviceSchema), Schema.extend(AttachSchema)) {}
71
+ const ConfigSchema = Schema.Struct({
72
+ device: DeviceSchema,
73
+ attach: AttachSchema,
74
+ runtime: Schema.optional(Schema.Literals(["default", "qjs", "v8"])),
75
+ platform: Schema.optional(Schema.Literals(["gum", "browser", "neutral"])),
76
+ });
80
77
 
81
78
  /**
82
79
  * @since 1.0.0
83
80
  * @category Tests
84
81
  */
85
82
  export class FridaPoolWorker implements VitestNode.PoolWorker {
86
- readonly name = "frida-pool";
87
83
  readonly agentTemplatePath = new URL("../frida/agent.ts", import.meta.url);
84
+ readonly name = "frida-pool";
85
+
86
+ private readonly customOptions: Schema.Schema.Type<typeof ConfigSchema>;
87
+
88
+ private readonly cancelables: Map<(arg: any) => void, (interrupter?: number) => void>;
88
89
 
89
- private readonly poolOptions: VitestNode.PoolOptions;
90
- private readonly customOptions: Schema.Schema.Type<ConfigSchema>;
91
-
92
- private readonly cancelables: Map<
93
- (arg: any) => void,
94
- Runtime.Cancel<
95
- unknown,
96
- | FridaDeviceAcquisitionError.FridaDeviceAcquisitionError
97
- | PlatformError.PlatformError
98
- | FridaSessionError.FridaSessionError
99
- >
100
- >;
101
-
102
- private modifiedAgentScope: Scope.CloseableScope;
103
- private managedRuntime:
104
- | ManagedRuntime.ManagedRuntime<
105
- FridaScript.FridaScript,
106
- | FridaDeviceAcquisitionError.FridaDeviceAcquisitionError
107
- | PlatformError.PlatformError
108
- | FridaSessionError.FridaSessionError
109
- >
110
- | undefined;
111
- private sends: Array<
112
- Promise<
113
- Exit.Exit<
114
- void,
115
- | FridaDeviceAcquisitionError.FridaDeviceAcquisitionError
116
- | PlatformError.PlatformError
117
- | FridaSessionError.FridaSessionError
118
- | ParseResult.ParseError
119
- >
120
- >
121
- > = [];
122
-
123
- constructor(poolOptions: VitestNode.PoolOptions, customOptions: Schema.Schema.Type<ConfigSchema>) {
124
- this.poolOptions = poolOptions;
90
+ private modifiedAgentScope: Scope.Closeable;
91
+ private managedRuntime: ManagedRuntime.ManagedRuntime<FridaScript.FridaScript, unknown> | undefined;
92
+ private sends: Array<Promise<Exit.Exit<unknown, unknown>>> = [];
93
+ private compiledAgentUrlPromise: Promise<URL>;
94
+ private messageCallback: ((arg: any) => void) | undefined;
95
+
96
+ constructor(poolOptions: VitestNode.PoolOptions, customOptions: Schema.Schema.Type<typeof ConfigSchema>) {
125
97
  this.customOptions = customOptions;
126
98
  this.cancelables = new Map();
127
99
  this.managedRuntime = undefined;
128
100
  this.modifiedAgentScope = Effect.runSync(Scope.make());
101
+ this.compiledAgentUrlPromise = compileTestFiles(this.agentTemplatePath, poolOptions).pipe(
102
+ Scope.provide(this.modifiedAgentScope),
103
+ Effect.provide(NodeServices.layer),
104
+ Effect.runPromise
105
+ );
129
106
  }
130
107
 
131
108
  async start(): Promise<void> {
132
- const tempAgentUrl = await compileTestFiles(this.agentTemplatePath, this.poolOptions).pipe(
133
- Scope.extend(this.modifiedAgentScope),
134
- Effect.provide(NodeContext.layer),
135
- Effect.runPromise
136
- );
109
+ const tempAgentUrl = await this.compiledAgentUrlPromise;
137
110
 
138
111
  const FridaRuntime = Match.value(this.customOptions.runtime).pipe(
139
112
  Match.when(undefined, () => undefined),
@@ -151,14 +124,14 @@ export class FridaPoolWorker implements VitestNode.PoolWorker {
151
124
  Match.exhaustive
152
125
  );
153
126
 
154
- const DeviceLive = Match.value(this.customOptions).pipe(
155
- Match.when({ device: "local" }, () => FridaDevice.layerLocalDevice),
156
- Match.when({ device: "usb" }, ({ timeout }) =>
127
+ const DeviceLive = Match.value(this.customOptions.device).pipe(
128
+ Match.when({ connection: "local" }, () => FridaDevice.layerLocalDevice),
129
+ Match.when({ connection: "usb" }, ({ timeout }) =>
157
130
  FridaDevice.layerUsbDevice({
158
131
  timeout: timeout ? Duration.toMillis(timeout) : undefined,
159
132
  } as Frida.GetDeviceOptions)
160
133
  ),
161
- Match.when({ device: "remote" }, ({ address, keepaliveInterval, origin, token }) =>
134
+ Match.when({ connection: "remote" }, ({ address, keepaliveInterval, origin, token }) =>
162
135
  FridaDevice.layerRemoteDevice(address, {
163
136
  token,
164
137
  origin,
@@ -166,37 +139,36 @@ export class FridaPoolWorker implements VitestNode.PoolWorker {
166
139
  } as Frida.RemoteDeviceOptions)
167
140
  ),
168
141
  Match.when(
169
- { device: "android-emulator" },
142
+ { connection: "android-emulator" },
170
143
  ({ adbExecutable, emulatorExecutable, emulatorName, fridaExecutable, hidden }) =>
171
144
  FridaDevice.layerAndroidEmulatorDevice(emulatorName, {
172
- hidden,
173
- adbExecutable,
174
- fridaExecutable,
175
- emulatorExecutable,
145
+ hidden: hidden ?? undefined,
146
+ adbExecutable: adbExecutable ?? undefined,
147
+ fridaExecutable: fridaExecutable ?? undefined,
148
+ emulatorExecutable: emulatorExecutable ?? undefined,
176
149
  })
177
150
  ),
178
151
  Match.exhaustive
179
152
  );
180
153
 
181
- const SessionLive = Match.value(this.customOptions).pipe(
182
- Match.when({ attach: Match.number }, ({ attach }) => FridaSession.layer(attach)),
154
+ const SessionLive = Match.value(this.customOptions.attach).pipe(
155
+ Match.when({ pid: Match.number }, ({ pid }) => FridaSession.layer(pid)),
183
156
  Match.when({ attachFrontmost: true }, ({ frontmostScope }) =>
184
157
  FridaSession.layerFrontmost({ scope: frontmostScope } as Frida.FrontmostQueryOptions)
185
158
  ),
186
159
  Match.when({ preSpawn: true }, ({ spawn }) =>
187
- Layer.unwrapScoped(
160
+ Layer.unwrap(
188
161
  Effect.gen(function* () {
189
- const executor = yield* CommandExecutor.CommandExecutor;
190
- const command = Command.make(...spawn);
191
- const process = yield* executor.start(command);
192
- return FridaSession.layer(process.pid);
162
+ const [command, ...args] = spawn;
163
+ const handle = yield* ChildProcess.make(command, args);
164
+ return FridaSession.layer(handle.pid);
193
165
  })
194
166
  )
195
167
  ),
196
168
  Match.orElse(({ spawn }) => FridaSession.layer(spawn))
197
169
  );
198
170
 
199
- const FridaLive = Layer.provide(SessionLive, DeviceLive).pipe(Layer.provide(NodeContext.layer));
171
+ const FridaLive = Layer.provide(SessionLive, DeviceLive).pipe(Layer.provide(NodeServices.layer));
200
172
  const ScriptLive = FridaScript.layer(tempAgentUrl, {
201
173
  externals: ["jsdom", "happy-dom", "@edge-runtime/vm"],
202
174
  ...(FridaRuntime !== undefined ? { runtime: FridaRuntime } : {}),
@@ -214,59 +186,65 @@ export class FridaPoolWorker implements VitestNode.PoolWorker {
214
186
  async stop(): Promise<void> {
215
187
  for (const cancelable of this.cancelables.values()) cancelable();
216
188
  this.cancelables.clear();
217
- // await Promise.allSettled(this.sends);
189
+ await Promise.allSettled(this.sends);
218
190
  await this.managedRuntime!.dispose();
219
191
  await Effect.runPromise(Scope.close(this.modifiedAgentScope, Exit.void));
220
192
  }
221
193
 
222
194
  async send(message: VitestNode.WorkerRequest): Promise<void> {
223
195
  const sendPromise = this.managedRuntime!.runPromiseExit(
224
- Effect.flatMap(FridaScript.FridaScript, (fridaScript) =>
225
- fridaScript.callExport("onMessage", Schema.Void)(message)
226
- )
196
+ Effect.flatMap(FridaScript.FridaScript, (fridaScript) => fridaScript.callExport("onMessage")(message))
227
197
  );
228
198
 
229
199
  this.sends.push(sendPromise);
230
200
  const exit = await sendPromise;
231
201
  this.sends = this.sends.filter((p) => p !== sendPromise);
232
- if (Exit.isSuccess(exit)) return;
202
+ if (Exit.isSuccess(exit)) {
203
+ if (exit.value !== null && exit.value !== undefined) {
204
+ this.messageCallback?.(exit.value);
205
+ }
206
+ return;
207
+ }
233
208
  const prettyError = Cause.prettyErrors(exit.cause);
234
209
  throw prettyError[0];
235
210
  }
236
211
 
237
212
  on(event: string, callback: (arg: any) => void): void {
238
- let cancelable!: Runtime.Cancel<
239
- unknown,
240
- | FridaDeviceAcquisitionError.FridaDeviceAcquisitionError
241
- | PlatformError.PlatformError
242
- | FridaSessionError.FridaSessionError
243
- >;
244
-
245
- const sink = Sink.forEach<
246
- {
247
- message: unknown;
248
- data: Option.Option<Buffer<ArrayBufferLike>>;
249
- },
250
- void,
251
- never,
252
- never
253
- >((input) =>
254
- Effect.sync(() => {
255
- callback(input.message);
256
- })
257
- );
213
+ let cancelable!: (interrupter?: number) => void;
258
214
 
259
215
  switch (event) {
260
- case "message":
216
+ case "message": {
217
+ this.messageCallback = callback;
218
+ const sink = Sink.forEach<
219
+ {
220
+ message: unknown;
221
+ data: Option.Option<Buffer<ArrayBufferLike>>;
222
+ },
223
+ void,
224
+ never,
225
+ never
226
+ >((input) =>
227
+ Effect.sync(() => {
228
+ callback(input.message);
229
+ })
230
+ );
261
231
  cancelable = this.managedRuntime!.runCallback(
262
232
  Effect.flatMap(FridaScript.FridaScript, (fridaScript) => Stream.run(fridaScript.stream, sink))
263
233
  );
264
234
  break;
235
+ }
265
236
 
266
237
  case "error":
267
238
  cancelable = this.managedRuntime!.runCallback(
268
239
  Effect.flatMap(FridaScript.FridaScript, (fridaScript) => Deferred.await(fridaScript.scriptError)),
269
- { onExit: (exit) => (Exit.isSuccess(exit) ? callback(exit.value) : !Cause.isInterruptedOnly(exit.cause) ? callback(exit.cause) : {}) }
240
+ {
241
+ onExit: (exit) =>
242
+ Exit.isSuccess(exit)
243
+ ? callback(exit.value)
244
+ : !Cause.hasInterruptsOnly(exit.cause)
245
+ ? callback(exit.cause)
246
+ : {},
247
+ }
270
248
  );
271
249
  break;
272
250
 
@@ -290,6 +268,9 @@ export class FridaPoolWorker implements VitestNode.PoolWorker {
290
268
  this.cancelables.delete(callback);
291
269
  cancelable();
292
270
  }
271
+ if (this.messageCallback === callback) {
272
+ this.messageCallback = undefined;
273
+ }
293
274
  }
294
275
 
295
276
  deserialize(data: unknown) {
@@ -307,7 +288,7 @@ export class FridaPoolWorker implements VitestNode.PoolWorker {
307
288
  * @category Tests
308
289
  */
309
290
  export const createFridaPool = (
310
- customOptions: Schema.Schema.Encoded<ConfigSchema>
291
+ customOptions: Schema.Codec.Encoded<typeof ConfigSchema>
311
292
  ): VitestNode.PoolRunnerInitializer => {
312
293
  const decoded = Schema.decodeUnknownSync(ConfigSchema)(customOptions);
313
294
  return {
@@ -459,13 +440,15 @@ const vitestGlobalsPlugin: Esbuild.Plugin = {
459
440
  const compileTestFiles = Effect.fnUntraced(function* (
460
441
  agentTemplatePath: URL,
461
442
  poolOptions: VitestNode.PoolOptions,
462
- customOptions?: Schema.Schema.Type<ConfigSchema> | undefined
463
- ): Effect.fn.Return<URL, PlatformError.PlatformError, Path.Path | FileSystem.FileSystem | Scope.Scope> {
443
+ customOptions?: Schema.Schema.Type<typeof ConfigSchema> | undefined
444
+ ) {
464
445
  const path = yield* Path.Path;
465
446
  const fs = yield* FileSystem.FileSystem;
466
447
  const url = yield* path.fromFileUrl(agentTemplatePath);
467
448
 
468
- const testFiles: Array<string> = (poolOptions.project as any).testFilesList ?? [];
449
+ const testFilesList: Array<string> = (poolOptions.project as any).testFilesList ?? [];
450
+ const setupFiles: Array<string> = poolOptions.project.config.setupFiles ?? [];
451
+ const allFiles = [...new Set([...setupFiles, ...testFilesList])];
469
452
  const testFilesMap: Record<string, string> = {};
470
453
 
471
454
  const esbuildPlatform = Match.value(customOptions?.platform).pipe(
@@ -475,7 +458,7 @@ const compileTestFiles = Effect.fnUntraced(function* (
475
458
  Match.orElseAbsurd
476
459
  );
477
460
 
478
- for (const testFile of testFiles) {
461
+ for (const testFile of allFiles) {
479
462
  const result = yield* Effect.promise(() =>
480
463
  Esbuild.build({
481
464
  bundle: true,
@@ -489,7 +472,7 @@ const compileTestFiles = Effect.fnUntraced(function* (
489
472
  );
490
473
 
491
474
  if (!result.outputFiles || result.outputFiles.length === 0) {
492
- return yield* Effect.dieMessage(`esbuild produced no output for ${testFile}`);
475
+ return yield* Effect.die(new Error(`esbuild produced no output for ${testFile}`));
493
476
  } else {
494
477
  testFilesMap[testFile] = Buffer.from(result.outputFiles[0].text).toString("base64");
495
478
  }