@qawolf/run-globals-android 1.2.0 → 1.2.1

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,7 +11,16 @@ export type PassAudioAsMicrophoneInputOptions = z.input<typeof passAudioAsMicrop
11
11
  *
12
12
  * The emulator routes host audio into its microphone, and `ffplay` performs the
13
13
  * playback on the runner host. This wraps the playback flags so flow authors do
14
- * not have to know them.
14
+ * not have to know them, and enables the emulator's host-microphone toggle
15
+ * first, so a flow never has to.
16
+ *
17
+ * **Playback is synchronous, so flow order matters.** This resolves only once
18
+ * `ffplay` has finished, which means the app has to be recording *before* it is
19
+ * called. Awaiting it first plays the whole file into a microphone nobody is
20
+ * listening to, and the recording that follows captures silence. `delaySeconds`
21
+ * does not work around that either, since it is awaited inline as well. Start
22
+ * the app recording first, then call this; or hold the promise and await it
23
+ * after the app has started.
15
24
  *
16
25
  * @param options playback options
17
26
  * @param runCommandOptions optional options forwarded to runCommand
@@ -1 +1 @@
1
- {"version":3,"file":"passAudioAsMicrophoneInput.d.ts","sourceRoot":"","sources":["../../src/emulator/passAudioAsMicrophoneInput.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,iBAAiB,EAAc,MAAM,iBAAiB,CAAC;AAErE,QAAA,MAAM,iCAAiC;;;;iBAWrC,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,iCAAiC,CACzC,CAAC;AAUF;;;;;;;;;;;;;;;;GAgBG;AAQH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,EAC1C,iBAAiB,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
1
+ {"version":3,"file":"passAudioAsMicrophoneInput.d.ts","sourceRoot":"","sources":["../../src/emulator/passAudioAsMicrophoneInput.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,iBAAiB,EAAc,MAAM,iBAAiB,CAAC;AAErE,QAAA,MAAM,iCAAiC;;;;iBAWrC,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,iCAAiC,CACzC,CAAC;AAUF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,EAC1C,iBAAiB,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC,CAgCjB"}
@@ -1,5 +1,6 @@
1
1
  import ms from "ms";
2
2
  import { z } from "zod";
3
+ import { adb } from "./adb.js";
3
4
  import { runCommand } from "./runCommand.js";
4
5
  const passAudioAsMicrophoneInputOptions = z.object({
5
6
  /** File path on the runner host, or URL, for the audio to play. */
@@ -25,7 +26,16 @@ const timeoutMarginSeconds = 30;
25
26
  *
26
27
  * The emulator routes host audio into its microphone, and `ffplay` performs the
27
28
  * playback on the runner host. This wraps the playback flags so flow authors do
28
- * not have to know them.
29
+ * not have to know them, and enables the emulator's host-microphone toggle
30
+ * first, so a flow never has to.
31
+ *
32
+ * **Playback is synchronous, so flow order matters.** This resolves only once
33
+ * `ffplay` has finished, which means the app has to be recording *before* it is
34
+ * called. Awaiting it first plays the whole file into a microphone nobody is
35
+ * listening to, and the recording that follows captures silence. `delaySeconds`
36
+ * does not work around that either, since it is awaited inline as well. Start
37
+ * the app recording first, then call this; or hold the promise and await it
38
+ * after the app has started.
29
39
  *
30
40
  * @param options playback options
31
41
  * @param runCommandOptions optional options forwarded to runCommand
@@ -46,6 +56,10 @@ const timeoutMarginSeconds = 30;
46
56
  // autocomplete.
47
57
  export async function passAudioAsMicrophoneInput(options, runCommandOptions) {
48
58
  const { data, delaySeconds, durationSeconds } = passAudioAsMicrophoneInputOptions.parse(options);
59
+ // Without this the guest records silence: `-allow-host-audio` only lets QEMU open the
60
+ // record stream, and this toggle is what forwards it to the guest. It defaults to off
61
+ // and resets on every emulator start, so set it every time. The command is idempotent.
62
+ await adb("emu avd hostmicon");
49
63
  if (delaySeconds)
50
64
  await new Promise((resolve) => setTimeout(resolve, delaySeconds * 1000));
51
65
  const args = [
@@ -1 +1 @@
1
- {"version":3,"file":"passAudioAsMicrophoneInput.js","sourceRoot":"","sources":["../../src/emulator/passAudioAsMicrophoneInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAA0B,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,mEAAmE;IACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,+CAA+C;IAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACjD;;;;OAIG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAMH;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC;;;;;;;;;;;;;;;;GAgBG;AACH,iFAAiF;AACjF,+EAA+E;AAC/E,6EAA6E;AAC7E,uEAAuE;AACvE,gFAAgF;AAChF,6EAA6E;AAC7E,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAA0C,EAC1C,iBAAmD;IAEnD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,GAC3C,iCAAiC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnD,IAAI,YAAY;QACd,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IAE3E,MAAM,IAAI,GAAG;QACX,SAAS;QACT,WAAW;QACX,cAAc;QACd,WAAW;QACX,OAAO;QACP,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,IAAI;KACL,CAAC;IAEF,MAAM,OAAO,GACX,eAAe,KAAK,SAAS;QAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,GAAG,oBAAoB,CAAC,GAAG,IAAI,CAAC;QACrE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEf,OAAO,MAAM,UAAU,CAAC,QAAQ,EAAE;QAChC,IAAI;QACJ,OAAO;QACP,GAAG,iBAAiB;KACrB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"passAudioAsMicrophoneInput.js","sourceRoot":"","sources":["../../src/emulator/passAudioAsMicrophoneInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAA0B,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,mEAAmE;IACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,+CAA+C;IAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACjD;;;;OAIG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAMH;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,iFAAiF;AACjF,+EAA+E;AAC/E,6EAA6E;AAC7E,uEAAuE;AACvE,gFAAgF;AAChF,6EAA6E;AAC7E,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAA0C,EAC1C,iBAAmD;IAEnD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,GAC3C,iCAAiC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnD,sFAAsF;IACtF,sFAAsF;IACtF,uFAAuF;IACvF,MAAM,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAE/B,IAAI,YAAY;QACd,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IAE3E,MAAM,IAAI,GAAG;QACX,SAAS;QACT,WAAW;QACX,cAAc;QACd,WAAW;QACX,OAAO;QACP,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,IAAI;KACL,CAAC;IAEF,MAAM,OAAO,GACX,eAAe,KAAK,SAAS;QAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,GAAG,oBAAoB,CAAC,GAAG,IAAI,CAAC;QACrE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEf,OAAO,MAAM,UAAU,CAAC,QAAQ,EAAE;QAChC,IAAI;QACJ,OAAO;QACP,GAAG,iBAAiB;KACrB,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runCommand.d.ts","sourceRoot":"","sources":["../../src/emulator/runCommand.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;iBAM5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAuCjB"}
1
+ {"version":3,"file":"runCommand.d.ts","sourceRoot":"","sources":["../../src/emulator/runCommand.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;iBAM5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAyCjB"}
@@ -40,6 +40,8 @@ export async function runCommand(command, options = {}) {
40
40
  // We can't be totally sure, but SIGTERM usually means the command timed out
41
41
  if (signal === "SIGTERM")
42
42
  throw Error("Command timed out");
43
+ if (all === undefined)
44
+ throw Error("Expected combined output from execa");
43
45
  return all;
44
46
  }
45
47
  //# sourceMappingURL=runCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/emulator/runCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,UAA6B,EAAE;IAE/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAElE,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEvD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE;QAC/D,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAE9D,gEAAgE;QAChE,iDAAiD;QACjD,GAAG,EAAE;YACH,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC7B,IAAI,EACF,OAAO;gBACP,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;SAC1C;QAED,4BAA4B;QAC5B,GAAG,EAAE,IAAI;QAET,uDAAuD;QACvD,SAAS,EAAE,KAAK;QAEhB,yEAAyE;QACzE,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;IAEH,4EAA4E;IAC5E,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAE3D,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/emulator/runCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,UAA6B,EAAE;IAE/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAElE,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEvD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE;QAC/D,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAE9D,gEAAgE;QAChE,iDAAiD;QACjD,GAAG,EAAE;YACH,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC7B,IAAI,EACF,OAAO;gBACP,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;SAC1C;QAED,4BAA4B;QAC5B,GAAG,EAAE,IAAI;QAET,uDAAuD;QACvD,SAAS,EAAE,KAAK;QAEhB,yEAAyE;QACzE,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;IAEH,4EAA4E;IAC5E,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAE3D,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE1E,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -80,7 +80,16 @@ export type PassAudioAsMicrophoneInputOptions = z.input<typeof passAudioAsMicrop
80
80
  *
81
81
  * The emulator routes host audio into its microphone, and `ffplay` performs the
82
82
  * playback on the runner host. This wraps the playback flags so flow authors do
83
- * not have to know them.
83
+ * not have to know them, and enables the emulator's host-microphone toggle
84
+ * first, so a flow never has to.
85
+ *
86
+ * **Playback is synchronous, so flow order matters.** This resolves only once
87
+ * `ffplay` has finished, which means the app has to be recording *before* it is
88
+ * called. Awaiting it first plays the whole file into a microphone nobody is
89
+ * listening to, and the recording that follows captures silence. `delaySeconds`
90
+ * does not work around that either, since it is awaited inline as well. Start
91
+ * the app recording first, then call this; or hold the promise and await it
92
+ * after the app has started.
84
93
  *
85
94
  * @param options playback options
86
95
  * @param runCommandOptions optional options forwarded to runCommand
@@ -184,64 +193,6 @@ type VirtualSceneImageOptions$1 = z.input<typeof VirtualSceneImageOptions>;
184
193
  * @throws if the command failed
185
194
  */
186
195
  export declare function setVirtualSceneImage(options: VirtualSceneImageOptions$1, runCommandOptions?: Omit<RunCommandOptions, "args">): Promise<string>;
187
- declare module "enzyme-shallow-equal" {
188
- export default function shallowEqual(objA: unknown, objB: unknown): boolean;
189
- }
190
- declare module "http-compression" {
191
- import type { IncomingMessage, ServerResponse } from "node:http";
192
- type Options = {
193
- brotli?: boolean;
194
- gzip?: boolean;
195
- level?: number;
196
- mimes?: RegExp;
197
- threshold?: number;
198
- };
199
- type Handler = (req: IncomingMessage, res: ServerResponse) => void;
200
- export default function compression(options?: Options): Handler;
201
- }
202
- declare module "parse-prometheus-text-format" {
203
- export default function parsePrometheusTextFormat(text: string): {
204
- metrics: {
205
- value: string;
206
- }[];
207
- name: string;
208
- }[];
209
- }
210
- declare module "react" {
211
- namespace JSX {
212
- // The entire namespace is deprecated in React, but VS Code doe not
213
- // show the deprecation annotation on the namespace, so we add them
214
- // on individual namespace members.
215
- /**
216
- * @deprecated Usually you want ReactNode from react instead. If you really think you need JSX.Element, explicitly import it from react.
217
- */
218
- interface Element extends JSX.Element {
219
- // Prevent this from being an empty interface,
220
- // which is then collapsed and does not pass
221
- // the @deprecated annotation when using.
222
- _dummy?: unknown;
223
- }
224
- }
225
- }
226
- type DefaultEventsMap = {
227
- [event: string]: (...args: unknown[]) => void;
228
- };
229
- type EventsMap = {
230
- [event: string]: unknown;
231
- };
232
- declare module "socket.io-client" {
233
- interface Socket<ListenEvents extends EventsMap = DefaultEventsMap, EmitEvents extends EventsMap = ListenEvents> extends BaseSocket<ListenEvents, EmitEvents> {
234
- timeout(ms: number): Socket<ListenEvents, EmitEvents> & {
235
- /**
236
- * disallow emit, since it is not correctly typed
237
- * after this change.
238
- *
239
- * use emitWithAck instead.
240
- */
241
- emit: never;
242
- };
243
- }
244
- }
245
196
 
246
197
  export {
247
198
  GeoLocationOptions$1 as GeoLocationOptions,
package/package.json CHANGED
@@ -1,10 +1,15 @@
1
1
  {
2
2
  "name": "@qawolf/run-globals-android",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "private": false,
5
5
  "license": "MIT",
6
- "sideEffects": false,
6
+ "files": [
7
+ "/dist",
8
+ "/LICENSE",
9
+ "/README.md"
10
+ ],
7
11
  "type": "module",
12
+ "sideEffects": false,
8
13
  "exports": {
9
14
  ".": {
10
15
  "types": "./dist/index.d.ts",
@@ -15,25 +20,20 @@
15
20
  "import": "./dist/emulator/index.js"
16
21
  }
17
22
  },
18
- "files": [
19
- "/dist",
20
- "/LICENSE",
21
- "/README.md"
22
- ],
23
23
  "scripts": {
24
24
  "build": "rm -rf ./dist && tsc -p tsconfig.build.json && npm run build:dts",
25
25
  "build:dts": "dts-bundle-generator --config dts.config.json",
26
- "lint:ci": "npm run lint:non-fixable; NON_FIXABLE_EXIT=$?; npm run lint:fixable && exit $NON_FIXABLE_EXIT",
27
- "lint:dev": "npm run lint:fixable",
28
- "lint:fixable": "eslint . --ext cjs,cts,js,jsx,mjs,ts,tsx --fix --quiet && prettier --write .",
29
- "lint:non-fixable": "dpdm --exit-code circular:1 --no-tree --no-warning --transform --include='.*' --exclude='/(dist|node_modules)/' '**/*'",
26
+ "lint:ci": "npm run lint:first-half; FIRST_HALF_EXIT=$?; npm run lint:second-half && exit $FIRST_HALF_EXIT",
27
+ "lint:dev": "npm run lint:first-half",
28
+ "lint:first-half": "oxlint . --fix --quiet --report-unused-disable-directives --type-aware && oxfmt --write .",
29
+ "lint:second-half": "dpdm --exit-code circular:1 --no-tree --no-warning --transform --include='.*' --exclude='/(dist|node_modules)/' '**/*'",
30
30
  "prepublishOnly": "nx run run-globals-android:build",
31
31
  "test": "NODE_OPTIONS=\"--experimental-vm-modules\" NODE_NO_WARNINGS=1 jest",
32
32
  "test:watch": "npm run test -- --watch",
33
33
  "tsc:check": "tsc"
34
34
  },
35
35
  "dependencies": {
36
- "execa": "^9.3.1",
36
+ "execa": "^9.6.1",
37
37
  "ms": "^3.0.0-canary.202508261828",
38
38
  "tslib": "^2.5.3",
39
39
  "zod": "^4.1.11"
@@ -43,11 +43,6 @@
43
43
  "typescript": "^5.9.3"
44
44
  },
45
45
  "engines": {
46
- "node": ">=22.22.0 <25"
47
- },
48
- "nx": {
49
- "targets": {
50
- "npm:publish": {}
51
- }
46
+ "node": ">=20.19.0 <25"
52
47
  }
53
48
  }
package/dist/typings.d.ts DELETED
@@ -1,62 +0,0 @@
1
- // Generated by dts-bundle-generator v9.5.1
2
-
3
- declare module "enzyme-shallow-equal" {
4
- export default function shallowEqual(objA: unknown, objB: unknown): boolean;
5
- }
6
- declare module "http-compression" {
7
- import type { IncomingMessage, ServerResponse } from "node:http";
8
- type Options = {
9
- brotli?: boolean;
10
- gzip?: boolean;
11
- level?: number;
12
- mimes?: RegExp;
13
- threshold?: number;
14
- };
15
- type Handler = (req: IncomingMessage, res: ServerResponse) => void;
16
- export default function compression(options?: Options): Handler;
17
- }
18
- declare module "parse-prometheus-text-format" {
19
- export default function parsePrometheusTextFormat(text: string): {
20
- metrics: {
21
- value: string;
22
- }[];
23
- name: string;
24
- }[];
25
- }
26
- declare module "react" {
27
- namespace JSX {
28
- // The entire namespace is deprecated in React, but VS Code doe not
29
- // show the deprecation annotation on the namespace, so we add them
30
- // on individual namespace members.
31
- /**
32
- * @deprecated Usually you want ReactNode from react instead. If you really think you need JSX.Element, explicitly import it from react.
33
- */
34
- interface Element extends JSX.Element {
35
- // Prevent this from being an empty interface,
36
- // which is then collapsed and does not pass
37
- // the @deprecated annotation when using.
38
- _dummy?: unknown;
39
- }
40
- }
41
- }
42
- type DefaultEventsMap = {
43
- [event: string]: (...args: unknown[]) => void;
44
- };
45
- type EventsMap = {
46
- [event: string]: unknown;
47
- };
48
- declare module "socket.io-client" {
49
- interface Socket<ListenEvents extends EventsMap = DefaultEventsMap, EmitEvents extends EventsMap = ListenEvents> extends BaseSocket<ListenEvents, EmitEvents> {
50
- timeout(ms: number): Socket<ListenEvents, EmitEvents> & {
51
- /**
52
- * disallow emit, since it is not correctly typed
53
- * after this change.
54
- *
55
- * use emitWithAck instead.
56
- */
57
- emit: never;
58
- };
59
- }
60
- }
61
-
62
- export {};