@8bitbish/screenshot-service 1.3.15 → 1.5.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../setup/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../setup/install.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,22 @@
1
+ export declare const PYTHON_CANDIDATES: string[];
2
+ /** Forget the cached interpreter — call after installing or upgrading Python. */
3
+ export declare function clearPythonCache(): void;
1
4
  /**
2
5
  * Returns the path to the first python binary that has pymobiledevice3 installed,
3
6
  * or null if none found. Never throws — use {@link findPythonOrThrow} when an
4
7
  * exception is the right behaviour.
8
+ *
9
+ * Blocks the event loop while probing. Prefer {@link findPythonAsync} from any
10
+ * async context — in an Electron main process this call freezes the UI.
5
11
  */
6
12
  export declare function findPython(): string | null;
13
+ /**
14
+ * Non-blocking {@link findPython}. Same result and same cache; probes are
15
+ * spawned asynchronously so the host's event loop keeps running.
16
+ */
17
+ export declare function findPythonAsync(): Promise<string | null>;
18
+ /** Non-blocking {@link findPythonOrThrow}. */
19
+ export declare function findPythonAsyncOrThrow(): Promise<string>;
7
20
  export declare function findPythonOrThrow(): string;
8
21
  /** Returns the path to a python3 binary (with or without pymobiledevice3), or null. */
9
22
  export declare function findAnyPython3(): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../setup/python.ts"],"names":[],"mappings":"AAoCA;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAQ1C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED,uFAAuF;AACvF,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAQ9C"}
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../setup/python.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,iBAAiB,UAwB7B,CAAC;AAgCF,iFAAiF;AACjF,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAU1C;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAU9D;AAED,8CAA8C;AAC9C,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAQ9D;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED,uFAAuF;AACvF,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAQ9C"}
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PYTHON_CANDIDATES = void 0;
4
+ exports.clearPythonCache = clearPythonCache;
3
5
  exports.findPython = findPython;
6
+ exports.findPythonAsync = findPythonAsync;
7
+ exports.findPythonAsyncOrThrow = findPythonAsyncOrThrow;
4
8
  exports.findPythonOrThrow = findPythonOrThrow;
5
9
  exports.findAnyPython3 = findAnyPython3;
6
10
  const child_process_1 = require("child_process");
11
+ const util_1 = require("util");
12
+ const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
7
13
  // Candidate python binaries to try, in preference order. Newer versions first so
8
14
  // users on 3.14+ get picked up automatically when those land.
9
15
  //
@@ -12,7 +18,7 @@ const child_process_1 = require("child_process");
12
18
  // link symlinks into `/opt/homebrew/bin`. If the user has an unlinked install
13
19
  // (e.g. brew refused to clobber files at `/usr/local/bin/pip3.13`), the keg
14
20
  // path is still a working python.
15
- const PYTHON_CANDIDATES = [
21
+ exports.PYTHON_CANDIDATES = [
16
22
  "/opt/homebrew/opt/python@3.14/bin/python3.14",
17
23
  "/usr/local/opt/python@3.14/bin/python3.14",
18
24
  "/opt/homebrew/bin/python3.14",
@@ -37,20 +43,87 @@ const PYTHON_CANDIDATES = [
37
43
  "/usr/local/bin/python3",
38
44
  "python3",
39
45
  ];
46
+ // ── Resolution cache ─────────────────────────────────────────────────────────
47
+ // Probing means spawning a Python per candidate. On a configured Mac that is
48
+ // cheap (an early candidate matches, the misses are instant ENOENT), but on one
49
+ // where pymobiledevice3 is not installed anywhere we walk all 23 and pay a full
50
+ // interpreter start for each that exists — comfortably over a second.
51
+ //
52
+ // That mattered enough to freeze a host app: findPython() is called on every
53
+ // capture AND from checkIosSetup() at launch, synchronously, so an unconfigured
54
+ // machine locked its UI rather than showing the error explaining what to do.
55
+ //
56
+ // A hit is cached for the process lifetime. A miss is cached only briefly, so
57
+ // finishing the setup wizard is picked up without a restart.
58
+ const MISS_TTL_MS = 5000;
59
+ let cachedHit = null;
60
+ let cachedMissAt = 0;
61
+ function cacheLookup() {
62
+ if (cachedHit !== null)
63
+ return { hit: true, value: cachedHit };
64
+ if (cachedMissAt && Date.now() - cachedMissAt < MISS_TTL_MS) {
65
+ return { hit: true, value: null };
66
+ }
67
+ return { hit: false };
68
+ }
69
+ function cacheStore(value) {
70
+ if (value === null)
71
+ cachedMissAt = Date.now();
72
+ else
73
+ cachedHit = value;
74
+ return value;
75
+ }
76
+ /** Forget the cached interpreter — call after installing or upgrading Python. */
77
+ function clearPythonCache() {
78
+ cachedHit = null;
79
+ cachedMissAt = 0;
80
+ }
40
81
  /**
41
82
  * Returns the path to the first python binary that has pymobiledevice3 installed,
42
83
  * or null if none found. Never throws — use {@link findPythonOrThrow} when an
43
84
  * exception is the right behaviour.
85
+ *
86
+ * Blocks the event loop while probing. Prefer {@link findPythonAsync} from any
87
+ * async context — in an Electron main process this call freezes the UI.
44
88
  */
45
89
  function findPython() {
46
- for (const p of PYTHON_CANDIDATES) {
90
+ const c = cacheLookup();
91
+ if (c.hit)
92
+ return c.value;
93
+ for (const p of exports.PYTHON_CANDIDATES) {
47
94
  try {
48
95
  (0, child_process_1.execFileSync)(p, ["-c", "import pymobiledevice3"], { stdio: "ignore" });
49
- return p;
96
+ return cacheStore(p);
50
97
  }
51
98
  catch { }
52
99
  }
53
- return null;
100
+ return cacheStore(null);
101
+ }
102
+ /**
103
+ * Non-blocking {@link findPython}. Same result and same cache; probes are
104
+ * spawned asynchronously so the host's event loop keeps running.
105
+ */
106
+ async function findPythonAsync() {
107
+ const c = cacheLookup();
108
+ if (c.hit)
109
+ return c.value;
110
+ for (const p of exports.PYTHON_CANDIDATES) {
111
+ try {
112
+ await execFileAsync(p, ["-c", "import pymobiledevice3"], { timeout: 5000 });
113
+ return cacheStore(p);
114
+ }
115
+ catch { }
116
+ }
117
+ return cacheStore(null);
118
+ }
119
+ /** Non-blocking {@link findPythonOrThrow}. */
120
+ async function findPythonAsyncOrThrow() {
121
+ const p = await findPythonAsync();
122
+ if (p)
123
+ return p;
124
+ throw new Error("Python 3.11+ with pymobiledevice3 not found. Run the iOS setup wizard " +
125
+ "(Device management → iOS), or from a terminal:\n" +
126
+ " npx @8bitbish/screenshot-service setup-ios");
54
127
  }
55
128
  function findPythonOrThrow() {
56
129
  const p = findPython();
@@ -61,7 +134,7 @@ function findPythonOrThrow() {
61
134
  }
62
135
  /** Returns the path to a python3 binary (with or without pymobiledevice3), or null. */
63
136
  function findAnyPython3() {
64
- for (const p of PYTHON_CANDIDATES) {
137
+ for (const p of exports.PYTHON_CANDIDATES) {
65
138
  try {
66
139
  (0, child_process_1.execFileSync)(p, ["--version"], { stdio: "ignore" });
67
140
  return p;
@@ -1 +1 @@
1
- {"version":3,"file":"python.js","sourceRoot":"","sources":["../../setup/python.ts"],"names":[],"mappings":";;AAyCA,gCAQC;AAED,8CAOC;AAGD,wCAQC;AArED,iDAA6C;AAE7C,iFAAiF;AACjF,8DAA8D;AAC9D,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,kCAAkC;AAClC,MAAM,iBAAiB,GAAG;IACxB,8CAA8C;IAC9C,2CAA2C;IAC3C,8BAA8B;IAC9B,2BAA2B;IAC3B,YAAY;IACZ,8CAA8C;IAC9C,2CAA2C;IAC3C,8BAA8B;IAC9B,2BAA2B;IAC3B,YAAY;IACZ,8CAA8C;IAC9C,2CAA2C;IAC3C,8BAA8B;IAC9B,2BAA2B;IAC3B,YAAY;IACZ,8CAA8C;IAC9C,2CAA2C;IAC3C,8BAA8B;IAC9B,2BAA2B;IAC3B,YAAY;IACZ,2BAA2B;IAC3B,wBAAwB;IACxB,SAAS;CACV,CAAC;AAEF;;;;GAIG;AACH,SAAgB,UAAU;IACxB,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,IAAA,4BAAY,EAAC,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,iBAAiB;IAC/B,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChB,MAAM,IAAI,KAAK,CACb,uEAAuE;QACvE,8CAA8C,CAC/C,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,SAAgB,cAAc;IAC5B,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,IAAA,4BAAY,EAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../setup/python.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ export declare const TUNNELD_LABEL = "com.screenshot-service.tunneld";
2
+ export declare const TUNNELD_PLIST_PATH = "/Library/LaunchDaemons/com.screenshot-service.tunneld.plist";
3
+ export declare const TUNNELD_WRAPPER_PATH = "/usr/local/libexec/screenshot-service-tunneld";
4
+ export declare const TUNNELD_SUDOERS_PATH = "/etc/sudoers.d/screenshot-service";
5
+ export declare const TUNNELD_LOG_PATH = "/var/log/screenshot-service-tunneld.log";
6
+ /**
7
+ * Bump when the wrapper or plist content changes in a way that needs
8
+ * reinstalling. Stamped into the wrapper and compared during detection, so an
9
+ * app update can notice a machine running an older daemon and offer to
10
+ * refresh it. Without this, an installed daemon is invisible to upgrades and
11
+ * drifts indefinitely.
12
+ */
13
+ export declare const TUNNELD_CONFIG_VERSION = 1;
14
+ /**
15
+ * launchd's minimum gap between respawns, in seconds. Stops a crash-looping
16
+ * tunneld from spinning the CPU.
17
+ *
18
+ * Exported because any caller waiting for a restart must allow MORE than this
19
+ * — a health budget shorter than the throttle reports failure moments before
20
+ * the daemon actually comes back. Derive the budget from this constant rather
21
+ * than hardcoding a number that silently drifts out of step with the plist.
22
+ */
23
+ export declare const TUNNELD_THROTTLE_SECONDS = 10;
24
+ export declare function wrapperScript(): string;
25
+ export declare function plistXml(): string;
26
+ export interface TunnelDaemonStatus {
27
+ /** plist and wrapper both present. */
28
+ present: boolean;
29
+ /** Present, but installed from an older TUNNELD_CONFIG_VERSION. */
30
+ stale: boolean;
31
+ /** Present AND current — nothing to do. */
32
+ ok: boolean;
33
+ }
34
+ /**
35
+ * Detects the daemon WITHOUT root. Deliberately does not shell out to
36
+ * `launchctl print`, which needs root for the system domain — the wizard runs
37
+ * unprivileged and must be able to answer "is this machine set up?" on every
38
+ * launch without prompting.
39
+ *
40
+ * Liveness isn't checked here: whether the socket is currently listening is a
41
+ * runtime question (answered by isTunnelHealthy) and a transient failure
42
+ * shouldn't make the wizard claim the machine is unconfigured.
43
+ */
44
+ export declare function tunnelDaemonStatus(): TunnelDaemonStatus;
45
+ /**
46
+ * The privileged half, as a bash script for runAsAdmin(). One admin prompt
47
+ * installs the wrapper, the plist and the sudoers rule, then (re)loads the job.
48
+ *
49
+ * The sudoers rule is deliberately tiny — it exists ONLY so the host app can
50
+ * revive a wedged tunnel without a password. It replaces the old broad rule at
51
+ * the same path, so installing this also retires that grant.
52
+ *
53
+ * `visudo -cf` before installing is not optional: a malformed file in
54
+ * /etc/sudoers.d can break sudo for the whole machine, and this runs as root.
55
+ */
56
+ export declare function installScript(): string;
57
+ //# sourceMappingURL=tunneld.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunneld.d.ts","sourceRoot":"","sources":["../../setup/tunneld.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,aAAa,mCAAmC,CAAC;AAC9D,eAAO,MAAM,kBAAkB,gEAAkD,CAAC;AAClF,eAAO,MAAM,oBAAoB,kDAAkD,CAAC;AACpF,eAAO,MAAM,oBAAoB,sCAAsC,CAAC;AACxE,eAAO,MAAM,gBAAgB,4CAA4C,CAAC;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAc3C,wBAAgB,aAAa,IAAI,MAAM,CAoBtC;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAwBjC;AAED,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,KAAK,EAAE,OAAO,CAAC;IACf,2CAA2C;IAC3C,EAAE,EAAE,OAAO,CAAC;CACb;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CAavD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAuCtC"}
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ // ── The tunneld LaunchDaemon ─────────────────────────────────────────────────
3
+ //
4
+ // pymobiledevice3's RemoteXPC tunnel (`remote tunneld`) needs root, and every
5
+ // iOS capture needs the tunnel. The original design started it on demand with
6
+ // `sudo` from inside the host app and relied on a NOPASSWD sudoers rule to
7
+ // avoid a password prompt. That rule was keyed to BOTH the username and the
8
+ // absolute python path, so it broke in three routine ways:
9
+ //
10
+ // 1. A second account on the same Mac isn't covered by the rule.
11
+ // 2. `brew upgrade python` moves the interpreter and orphans the rule.
12
+ // 3. A wedged tunneld needs `sudo pkill`, which can't prompt either — the
13
+ // host app is forced to tell the user to open Terminal.
14
+ //
15
+ // Failure mode for all three is identical and unhelpful: the host app spawns
16
+ // sudo with stdin closed, sudo can't ask for a password, and the caller sits
17
+ // there until the health poll times out.
18
+ //
19
+ // So the daemon inverts the ownership. launchd runs the tunnel as root from
20
+ // boot, KeepAlive restarts it if it dies, and the host app never invokes sudo
21
+ // on the capture path at all — it just health-checks a socket that is already
22
+ // listening. Captures get faster as a side effect: the tunnel is warm before
23
+ // the app launches instead of being established on first use.
24
+ //
25
+ // Two details that matter:
26
+ //
27
+ // * The plist points at a WRAPPER, not at a python. The wrapper resolves the
28
+ // interpreter at each launch, so a python upgrade can't orphan the daemon
29
+ // the way it orphaned the sudoers rule. Baking a path into the plist would
30
+ // just relocate bug #2.
31
+ // * The wrapper MUST be installed root:wheel 0755. A user-writable script
32
+ // executed by root is a privilege escalation, not a convenience.
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ exports.TUNNELD_THROTTLE_SECONDS = exports.TUNNELD_CONFIG_VERSION = exports.TUNNELD_LOG_PATH = exports.TUNNELD_SUDOERS_PATH = exports.TUNNELD_WRAPPER_PATH = exports.TUNNELD_PLIST_PATH = exports.TUNNELD_LABEL = void 0;
35
+ exports.wrapperScript = wrapperScript;
36
+ exports.plistXml = plistXml;
37
+ exports.tunnelDaemonStatus = tunnelDaemonStatus;
38
+ exports.installScript = installScript;
39
+ const fs_1 = require("fs");
40
+ const python_1 = require("./python");
41
+ exports.TUNNELD_LABEL = "com.screenshot-service.tunneld";
42
+ exports.TUNNELD_PLIST_PATH = `/Library/LaunchDaemons/${exports.TUNNELD_LABEL}.plist`;
43
+ exports.TUNNELD_WRAPPER_PATH = "/usr/local/libexec/screenshot-service-tunneld";
44
+ exports.TUNNELD_SUDOERS_PATH = "/etc/sudoers.d/screenshot-service";
45
+ exports.TUNNELD_LOG_PATH = "/var/log/screenshot-service-tunneld.log";
46
+ /**
47
+ * Bump when the wrapper or plist content changes in a way that needs
48
+ * reinstalling. Stamped into the wrapper and compared during detection, so an
49
+ * app update can notice a machine running an older daemon and offer to
50
+ * refresh it. Without this, an installed daemon is invisible to upgrades and
51
+ * drifts indefinitely.
52
+ */
53
+ exports.TUNNELD_CONFIG_VERSION = 1;
54
+ /**
55
+ * launchd's minimum gap between respawns, in seconds. Stops a crash-looping
56
+ * tunneld from spinning the CPU.
57
+ *
58
+ * Exported because any caller waiting for a restart must allow MORE than this
59
+ * — a health budget shorter than the throttle reports failure moments before
60
+ * the daemon actually comes back. Derive the budget from this constant rather
61
+ * than hardcoding a number that silently drifts out of step with the plist.
62
+ */
63
+ exports.TUNNELD_THROTTLE_SECONDS = 10;
64
+ /**
65
+ * The wrapper searches the same list findPython() does — imported rather than
66
+ * copied, because a divergent copy silently breaks the machines the extra
67
+ * entries exist for (brew's python@X.Y formulae are keg-only and are not
68
+ * always symlinked into /opt/homebrew/bin).
69
+ *
70
+ * Bare names are dropped: launchd gives a daemon a minimal PATH, so they would
71
+ * not resolve the way they do in a login shell — and PATH-dependent lookup in
72
+ * a root process is a bad idea regardless.
73
+ */
74
+ const WRAPPER_PYTHON_CANDIDATES = python_1.PYTHON_CANDIDATES.filter(p => p.startsWith("/"));
75
+ function wrapperScript() {
76
+ return `#!/bin/sh
77
+ # screenshot-service tunneld launcher — installed by the setup wizard.
78
+ # Resolves the Python interpreter at every launch so a \`brew upgrade python\`
79
+ # cannot orphan the LaunchDaemon. Do not edit; reinstall from the app instead.
80
+ # TUNNELD_CONFIG_VERSION=${exports.TUNNELD_CONFIG_VERSION}
81
+ set -eu
82
+
83
+ for p in ${WRAPPER_PYTHON_CANDIDATES.join(" \\\n ")}
84
+ do
85
+ [ -x "$p" ] || continue
86
+ if "$p" -c 'import sys,pymobiledevice3; sys.exit(0 if sys.version_info>=(3,11) else 1)' 2>/dev/null; then
87
+ echo "[tunneld] using $p" >&2
88
+ exec "$p" -m pymobiledevice3 remote tunneld "$@"
89
+ fi
90
+ done
91
+
92
+ echo "[tunneld] no Python 3.11+ with pymobiledevice3 found" >&2
93
+ exit 1
94
+ `;
95
+ }
96
+ function plistXml() {
97
+ return `<?xml version="1.0" encoding="UTF-8"?>
98
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
99
+ <plist version="1.0">
100
+ <dict>
101
+ <key>Label</key>
102
+ <string>${exports.TUNNELD_LABEL}</string>
103
+ <key>ProgramArguments</key>
104
+ <array>
105
+ <string>${exports.TUNNELD_WRAPPER_PATH}</string>
106
+ </array>
107
+ <key>RunAtLoad</key>
108
+ <true/>
109
+ <key>KeepAlive</key>
110
+ <true/>
111
+ <key>ThrottleInterval</key>
112
+ <integer>${exports.TUNNELD_THROTTLE_SECONDS}</integer>
113
+ <key>StandardOutPath</key>
114
+ <string>${exports.TUNNELD_LOG_PATH}</string>
115
+ <key>StandardErrorPath</key>
116
+ <string>${exports.TUNNELD_LOG_PATH}</string>
117
+ </dict>
118
+ </plist>
119
+ `;
120
+ }
121
+ /**
122
+ * Detects the daemon WITHOUT root. Deliberately does not shell out to
123
+ * `launchctl print`, which needs root for the system domain — the wizard runs
124
+ * unprivileged and must be able to answer "is this machine set up?" on every
125
+ * launch without prompting.
126
+ *
127
+ * Liveness isn't checked here: whether the socket is currently listening is a
128
+ * runtime question (answered by isTunnelHealthy) and a transient failure
129
+ * shouldn't make the wizard claim the machine is unconfigured.
130
+ */
131
+ function tunnelDaemonStatus() {
132
+ if (!(0, fs_1.existsSync)(exports.TUNNELD_PLIST_PATH) || !(0, fs_1.existsSync)(exports.TUNNELD_WRAPPER_PATH)) {
133
+ return { present: false, stale: false, ok: false };
134
+ }
135
+ let installedVersion = 0;
136
+ try {
137
+ const m = /TUNNELD_CONFIG_VERSION=(\d+)/.exec((0, fs_1.readFileSync)(exports.TUNNELD_WRAPPER_PATH, "utf8"));
138
+ if (m)
139
+ installedVersion = Number(m[1]);
140
+ }
141
+ catch {
142
+ // Unreadable wrapper — treat as stale so the wizard reinstalls it.
143
+ }
144
+ const stale = installedVersion !== exports.TUNNELD_CONFIG_VERSION;
145
+ return { present: true, stale, ok: !stale };
146
+ }
147
+ /**
148
+ * The privileged half, as a bash script for runAsAdmin(). One admin prompt
149
+ * installs the wrapper, the plist and the sudoers rule, then (re)loads the job.
150
+ *
151
+ * The sudoers rule is deliberately tiny — it exists ONLY so the host app can
152
+ * revive a wedged tunnel without a password. It replaces the old broad rule at
153
+ * the same path, so installing this also retires that grant.
154
+ *
155
+ * `visudo -cf` before installing is not optional: a malformed file in
156
+ * /etc/sudoers.d can break sudo for the whole machine, and this runs as root.
157
+ */
158
+ function installScript() {
159
+ const rule = `%admin ALL=(ALL) NOPASSWD: /bin/launchctl kickstart -k system/${exports.TUNNELD_LABEL}`;
160
+ return [
161
+ // runAsAdmin() already prepends `set -e`; kept out of here so the emitted
162
+ // script doesn't carry a duplicate.
163
+ `TMP="$(mktemp -d)"`,
164
+ `trap 'rm -rf "$TMP"' EXIT`,
165
+ ``,
166
+ `cat > "$TMP/wrapper" <<'SS_WRAPPER_EOF'`,
167
+ wrapperScript(),
168
+ `SS_WRAPPER_EOF`,
169
+ ``,
170
+ `cat > "$TMP/plist" <<'SS_PLIST_EOF'`,
171
+ plistXml(),
172
+ `SS_PLIST_EOF`,
173
+ ``,
174
+ `install -d -o root -g wheel -m 755 /usr/local/libexec`,
175
+ `install -o root -g wheel -m 755 "$TMP/wrapper" '${exports.TUNNELD_WRAPPER_PATH}'`,
176
+ `install -o root -g wheel -m 644 "$TMP/plist" '${exports.TUNNELD_PLIST_PATH}'`,
177
+ ``,
178
+ `# Validate before installing — a bad sudoers file breaks sudo machine-wide.`,
179
+ `printf '%s\\n' '${rule}' > "$TMP/sudoers"`,
180
+ `visudo -cf "$TMP/sudoers"`,
181
+ `install -o root -g wheel -m 440 "$TMP/sudoers" '${exports.TUNNELD_SUDOERS_PATH}'`,
182
+ ``,
183
+ `# bootout fails when the job isn't loaded; that's the fresh-install case.`,
184
+ `launchctl bootout system/${exports.TUNNELD_LABEL} 2>/dev/null || true`,
185
+ ``,
186
+ `# bootout is ASYNCHRONOUS. Bootstrapping while the previous job is still`,
187
+ `# unloading fails with "Bootstrap failed: 5: Input/output error" — and`,
188
+ `# only on machines that already had the daemon, i.e. exactly the upgrade`,
189
+ `# path. Wait for the label to actually leave the domain first.`,
190
+ `for _ in $(seq 1 25); do`,
191
+ ` launchctl print system/${exports.TUNNELD_LABEL} >/dev/null 2>&1 || break`,
192
+ ` sleep 0.2`,
193
+ `done`,
194
+ ``,
195
+ `launchctl bootstrap system '${exports.TUNNELD_PLIST_PATH}'`,
196
+ ].join("\n");
197
+ }
198
+ //# sourceMappingURL=tunneld.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunneld.js","sourceRoot":"","sources":["../../setup/tunneld.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface IosSetupStatus {
5
5
  pymobiledevice3: boolean;
6
6
  libimobiledevice: boolean;
7
7
  sudoers: boolean;
8
+ tunnelDaemon: boolean;
8
9
  deviceVisible: boolean;
9
10
  ok: boolean;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../setup/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../setup/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IAGjB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -1044,8 +1044,8 @@
1044
1044
  renderStep(list, { id: 'python', label: 'Python', status: status.pymobiledevice3 ? 'done' : 'error' });
1045
1045
  renderStep(list, { id: 'pmd3', label: 'pymobiledevice3', status: status.pymobiledevice3 ? 'done' : 'error' });
1046
1046
  renderStep(list, { id: 'libimobiledevice', label: 'libimobiledevice', status: status.libimobiledevice ? 'done' : 'error' });
1047
- renderStep(list, { id: 'sudoers', label: 'Passwordless tunnel', status: status.sudoers ? 'done' : 'pending',
1048
- detail: status.sudoers ? '' : 'Optional — you can skip and enter your Mac password each session.' });
1047
+ renderStep(list, { id: 'tunneld', label: 'Background tunnel service', status: status.tunnelDaemon ? 'done' : 'error',
1048
+ detail: status.tunnelDaemon ? '' : 'Runs the device tunnel from startup, so captures never wait on a password.' });
1049
1049
 
1050
1050
  btnPrimary.style.display = '';
1051
1051
  if (!status.ok) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@8bitbish/screenshot-service",
3
- "version": "1.3.15",
3
+ "version": "1.5.0",
4
4
  "description": "Capture screenshots and recordings from connected iPhone and Android devices, with a built-in visual setup wizard.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,7 +21,10 @@
21
21
  "bin": {
22
22
  "screenshot-service": "bin/setup.js"
23
23
  },
24
- "files": ["dist", "bin"],
24
+ "files": [
25
+ "dist",
26
+ "bin"
27
+ ],
25
28
  "publishConfig": {
26
29
  "access": "public"
27
30
  },