@8bitbish/screenshot-service 1.1.1 → 1.2.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.
package/dist/device.d.ts CHANGED
@@ -11,6 +11,18 @@ export interface ForegroundApp {
11
11
  /** Builds pymobiledevice3 args with optional `--udid` targeting a specific device. */
12
12
  export declare function pmd3Args(udid: string | null, ...args: string[]): string[];
13
13
  export declare const MODEL_NAMES: Record<string, string>;
14
+ /**
15
+ * Returns whether Developer Mode is currently ON for the given iPhone.
16
+ * Resolves to false on any failure (device not trusted, command errors, etc.) — best-effort.
17
+ */
18
+ export declare function getDeveloperModeStatus(python: string, udid?: string | null): Promise<boolean>;
19
+ /**
20
+ * Triggers the Developer Mode enable flow on the iPhone. The device must be
21
+ * paired and trusted first. After this call the iPhone shows a system prompt
22
+ * for the user to confirm + restart. Resolves when the request was sent; the
23
+ * actual state change happens after the user's on-device confirmation.
24
+ */
25
+ export declare function enableDeveloperMode(python: string, udid?: string | null): Promise<void>;
14
26
  export declare function getDeviceInfo(python: string, udid?: string | null): Promise<DeviceInfo>;
15
27
  /**
16
28
  * Returns the foreground app at time of call.
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../device.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEzE;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2B9C,CAAC;AAEF,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBnG;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA2BhH"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../device.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEzE;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2B9C,CAAC;AAEF;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CASzG;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAInG;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBnG;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA2BhH"}
package/dist/device.js CHANGED
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MODEL_NAMES = void 0;
4
4
  exports.pmd3Args = pmd3Args;
5
+ exports.getDeveloperModeStatus = getDeveloperModeStatus;
6
+ exports.enableDeveloperMode = enableDeveloperMode;
5
7
  exports.getDeviceInfo = getDeviceInfo;
6
8
  exports.getForegroundApp = getForegroundApp;
7
9
  const child_process_1 = require("child_process");
@@ -40,6 +42,28 @@ exports.MODEL_NAMES = {
40
42
  "iPhone17,3": "iPhone 16",
41
43
  "iPhone17,4": "iPhone 16 Plus",
42
44
  };
45
+ /**
46
+ * Returns whether Developer Mode is currently ON for the given iPhone.
47
+ * Resolves to false on any failure (device not trusted, command errors, etc.) — best-effort.
48
+ */
49
+ async function getDeveloperModeStatus(python, udid = null) {
50
+ try {
51
+ const { stdout } = await execFileAsync(python, pmd3Args(udid, "amfi", "developer-mode-status"), { timeout: 5000 });
52
+ return /true/i.test(stdout.trim());
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ }
58
+ /**
59
+ * Triggers the Developer Mode enable flow on the iPhone. The device must be
60
+ * paired and trusted first. After this call the iPhone shows a system prompt
61
+ * for the user to confirm + restart. Resolves when the request was sent; the
62
+ * actual state change happens after the user's on-device confirmation.
63
+ */
64
+ async function enableDeveloperMode(python, udid = null) {
65
+ await execFileAsync(python, pmd3Args(udid, "amfi", "enable-developer-mode"), { timeout: 10000 });
66
+ }
43
67
  async function getDeviceInfo(python, udid = null) {
44
68
  // usbmux list returns ALL connected devices; pick the one matching udid, else the first.
45
69
  const { stdout } = await execFileAsync(python, [...PMD3, "usbmux", "list"], { timeout: 5000 });
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../device.ts"],"names":[],"mappings":";;;AAmBA,4BAEC;AAmCD,wDASC;AAQD,kDAIC;AAED,sCAmBC;AAOD,4CA2BC;AApID,iDAAyC;AACzC,+BAAiC;AAEjC,MAAM,aAAa,GAAG,IAAA,gBAAS,EAAC,wBAAQ,CAAC,CAAC;AAC1C,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AAcvC,sFAAsF;AACtF,SAAgB,QAAQ,CAAC,IAAmB,EAAE,GAAG,IAAc;IAC7D,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACxE,CAAC;AAEY,QAAA,WAAW,GAA2B;IACjD,YAAY,EAAG,WAAW;IAC1B,YAAY,EAAG,eAAe;IAC9B,YAAY,EAAG,mBAAmB;IAClC,YAAY,EAAG,qBAAqB;IACpC,YAAY,EAAG,gBAAgB;IAC/B,YAAY,EAAG,WAAW;IAC1B,YAAY,EAAG,eAAe;IAC9B,YAAY,EAAG,mBAAmB;IAClC,YAAY,EAAG,eAAe;IAC9B,YAAY,EAAG,mBAAmB;IAClC,YAAY,EAAG,gBAAgB;IAC/B,YAAY,EAAG,WAAW;IAC1B,YAAY,EAAG,qBAAqB;IACpC,YAAY,EAAG,WAAW;IAC1B,YAAY,EAAG,gBAAgB;IAC/B,YAAY,EAAG,eAAe;IAC9B,YAAY,EAAG,mBAAmB;IAClC,YAAY,EAAG,WAAW;IAC1B,YAAY,EAAG,gBAAgB;IAC/B,YAAY,EAAG,eAAe;IAC9B,YAAY,EAAG,mBAAmB;IAClC,YAAY,EAAG,YAAY;IAC3B,YAAY,EAAG,eAAe;IAC9B,YAAY,EAAG,mBAAmB;IAClC,YAAY,EAAG,WAAW;IAC1B,YAAY,EAAG,gBAAgB;CAChC,CAAC;AAEF;;;GAGG;AACI,KAAK,UAAU,sBAAsB,CAAC,MAAc,EAAE,OAAsB,IAAI;IACrF,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,uBAAuB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAC3E,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,mBAAmB,CAAC,MAAc,EAAE,OAAsB,IAAI;IAClF,MAAM,aAAa,CACjB,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,uBAAuB,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAC5E,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,OAAsB,IAAI;IAC5E,yFAAyF;IACzF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,MAAM,EACN,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAC3B,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAE/F,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,CAAC;IAEtE,OAAO;QACL,KAAK,EAAO,CAAC,CAAC,WAAW;QACzB,IAAI,EAAQ,mBAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW;QACvD,UAAU,EAAE,CAAC,CAAC,cAAc;KAC7B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,OAAsB,IAAI;IAC/E,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAC3E,CAAC;QACF,MAAM,KAAK,GAA8B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE5D,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAErB,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAO,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,iFAAiF;QACjF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAC1C,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CACrE,CAAC;QACF,MAAM,IAAI,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,4BAA4B,CAAkB,IAAI,IAAI,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAA6B,IAAI,IAAI,CAAC;QAC1E,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC;QAEhF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -100,8 +100,11 @@ export interface ConnectedDevice {
100
100
  softwareVersion: string;
101
101
  /** True if a screenshot/recording call would succeed right now. */
102
102
  available: boolean;
103
- /** Human-readable reason if unavailable (e.g. "screen off"). */
103
+ /** Human-readable reason if unavailable (e.g. "screen off", "developer mode off"). */
104
104
  unavailableReason?: string;
105
+ /** iOS only: whether Developer Mode is enabled. Required for screenshots/recordings.
106
+ * Undefined for Android. */
107
+ developerMode?: boolean;
105
108
  }
106
109
  /**
107
110
  * List every connected device across iOS and Android, with friendly names.
@@ -113,4 +116,19 @@ export interface ConnectedDevice {
113
116
  * to a single entry.
114
117
  */
115
118
  export declare function listDevices(): Promise<ConnectedDevice[]>;
119
+ /**
120
+ * Trigger the Developer Mode enable flow on a specific iPhone.
121
+ *
122
+ * The device must already be paired and trusted. After this call resolves, the
123
+ * iPhone shows a system prompt: "Developer Mode required — Restart". The user
124
+ * must tap through on the device and complete the post-restart confirmation
125
+ * (tap Turn On + enter passcode). Once Developer Mode is on, the device's
126
+ * `developerMode` field in listDevices() flips to true.
127
+ *
128
+ * @param options.deviceId UDID of the iPhone to target. Omit to target the
129
+ * first connected iPhone (rare; usually pass an id).
130
+ */
131
+ export declare function enableIosDeveloperMode(options?: {
132
+ deviceId?: string;
133
+ }): Promise<void>;
116
134
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ exports.triggerAndroidScreenshot = triggerAndroidScreenshot;
9
9
  exports.fetchLatestPhoneRecording = fetchLatestPhoneRecording;
10
10
  exports.fetchLatestAndroidRecording = fetchLatestAndroidRecording;
11
11
  exports.listDevices = listDevices;
12
+ exports.enableIosDeveloperMode = enableIosDeveloperMode;
12
13
  const child_process_1 = require("child_process");
13
14
  const util_1 = require("util");
14
15
  const promises_1 = require("fs/promises");
@@ -219,8 +220,12 @@ async function pickEndpoint(adb, lines, deviceId) {
219
220
  // Should not happen if lines.length > 0, but be defensive.
220
221
  return endpoints[0];
221
222
  }
222
- if (wakeScore(ranked[0].wakefulness) <= 1) {
223
- throw new Error(`Connected Android device${ranked.length > 1 ? "s are" : " is"} asleep. Wake the screen and retry.`);
223
+ // Auto-pick requires Awake. Dozing produces an Always-On Display screenshot which is rarely useful.
224
+ // To capture a sleeping/dozing phone deliberately, pass deviceId explicitly to bypass this check.
225
+ if (ranked[0].wakefulness !== "Awake") {
226
+ const state = ranked[0].wakefulness || "off";
227
+ throw new Error(`Connected Android device${ranked.length > 1 ? "s are" : " is"} not awake (${state}). ` +
228
+ `Wake the screen and retry, or pass a deviceId explicitly to capture anyway.`);
224
229
  }
225
230
  return ranked[0].endpoint;
226
231
  }
@@ -453,15 +458,22 @@ async function listIosDevices() {
453
458
  try {
454
459
  const { stdout } = await execFileAsync(python, [...PMD3, "usbmux", "list"], { timeout: 5000 });
455
460
  const devices = JSON.parse(stdout);
456
- return devices.map(d => ({
457
- id: d.Identifier,
458
- platform: "ios",
459
- name: device_1.MODEL_NAMES[d.ProductType] ?? d.ProductType,
460
- nickname: d.DeviceName?.trim() || undefined,
461
- model: d.ProductType,
462
- softwareVersion: `iOS ${d.ProductVersion}`,
463
- available: true, // usbmux list only returns currently-reachable devices
464
- }));
461
+ // Probe each iPhone's Developer Mode state in parallel — screenshots require it.
462
+ const devModes = await Promise.all(devices.map(d => (0, device_1.getDeveloperModeStatus)(python, d.Identifier)));
463
+ return devices.map((d, i) => {
464
+ const developerMode = devModes[i];
465
+ return {
466
+ id: d.Identifier,
467
+ platform: "ios",
468
+ name: device_1.MODEL_NAMES[d.ProductType] ?? d.ProductType,
469
+ nickname: d.DeviceName?.trim() || undefined,
470
+ model: d.ProductType,
471
+ softwareVersion: `iOS ${d.ProductVersion}`,
472
+ available: developerMode,
473
+ unavailableReason: developerMode ? undefined : "developer mode off",
474
+ developerMode,
475
+ };
476
+ });
465
477
  }
466
478
  catch {
467
479
  return [];
@@ -501,7 +513,20 @@ async function listAndroidDevices() {
501
513
  const infos = await Promise.all(unique.map(p => (0, android_device_1.getAndroidDeviceInfo)(adb, p.endpoint).catch(() => null)));
502
514
  return unique.map((probe, i) => {
503
515
  const info = infos[i];
504
- const awake = probe.wakefulness === "Awake" || probe.wakefulness === "Dreaming" || probe.wakefulness === "Dozing";
516
+ // Only "Awake" counts as actively usable. On Samsung with Always-On Display,
517
+ // a screen-off phone reports "Dozing" — to the user it's off, so treat as unavailable.
518
+ const available = probe.wakefulness === "Awake";
519
+ let unavailableReason;
520
+ if (!available) {
521
+ if (probe.wakefulness === "Dozing")
522
+ unavailableReason = "screen off (ambient display)";
523
+ else if (probe.wakefulness === "Dreaming")
524
+ unavailableReason = "screensaver active";
525
+ else if (probe.wakefulness === "Asleep")
526
+ unavailableReason = "screen off";
527
+ else
528
+ unavailableReason = "screen off";
529
+ }
505
530
  return {
506
531
  id: probe.physicalSerial,
507
532
  platform: "android",
@@ -509,8 +534,8 @@ async function listAndroidDevices() {
509
534
  nickname: probe.nickname || undefined,
510
535
  model: info?.model ?? "",
511
536
  softwareVersion: info?.softwareVersion ?? "",
512
- available: awake,
513
- unavailableReason: awake ? undefined : (probe.wakefulness === "Asleep" ? "screen off" : "unknown state"),
537
+ available,
538
+ unavailableReason,
514
539
  };
515
540
  });
516
541
  }
@@ -527,4 +552,23 @@ async function listDevices() {
527
552
  const [ios, android] = await Promise.all([listIosDevices(), listAndroidDevices()]);
528
553
  return [...ios, ...android];
529
554
  }
555
+ // ── Developer Mode (iOS) ─────────────────────────────────────────────────────
556
+ /**
557
+ * Trigger the Developer Mode enable flow on a specific iPhone.
558
+ *
559
+ * The device must already be paired and trusted. After this call resolves, the
560
+ * iPhone shows a system prompt: "Developer Mode required — Restart". The user
561
+ * must tap through on the device and complete the post-restart confirmation
562
+ * (tap Turn On + enter passcode). Once Developer Mode is on, the device's
563
+ * `developerMode` field in listDevices() flips to true.
564
+ *
565
+ * @param options.deviceId UDID of the iPhone to target. Omit to target the
566
+ * first connected iPhone (rare; usually pass an id).
567
+ */
568
+ async function enableIosDeveloperMode(options) {
569
+ const udid = options?.deviceId ?? null;
570
+ const python = findPython();
571
+ await startTunnel().catch(() => { }); // best-effort; amfi works over USB without tunnel
572
+ await (0, device_1.enableDeveloperMode)(python, udid);
573
+ }
530
574
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../wizard/index.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,UAAU,EAAE,aAAa,CAAC;IAC1C,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../wizard/index.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,UAAU,EAAE,aAAa,CAAC;IAC1C,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF/E"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSetupWindow = createSetupWindow;
4
4
  const path_1 = require("path");
5
5
  const setup_1 = require("../setup");
6
+ const index_1 = require("../index");
6
7
  let cachedElectron = null;
7
8
  function loadElectron() {
8
9
  if (cachedElectron)
@@ -63,6 +64,8 @@ async function createSetupWindow(opts) {
63
64
  checkAndroid: `wizard:${win.id}:check-android`,
64
65
  installAndroid: `wizard:${win.id}:install-android`,
65
66
  pairAndroid: `wizard:${win.id}:pair-android`,
67
+ listDevices: `wizard:${win.id}:list-devices`,
68
+ enableIosDevMode: `wizard:${win.id}:enable-ios-dev-mode`,
66
69
  close: `wizard:${win.id}:close`,
67
70
  };
68
71
  // Expose channel names to renderer via initial-load query (read by preload).
@@ -89,6 +92,10 @@ async function createSetupWindow(opts) {
89
92
  win.webContents.send(`${channels.pairAndroid}:progress`, p);
90
93
  });
91
94
  });
95
+ ipcMain.handle(channels.listDevices, async () => (0, index_1.listDevices)());
96
+ ipcMain.handle(channels.enableIosDevMode, async (_e, deviceId) => {
97
+ await (0, index_1.enableIosDeveloperMode)({ deviceId });
98
+ });
92
99
  ipcMain.handle(channels.close, async () => {
93
100
  if (!win.isDestroyed())
94
101
  win.close();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../wizard/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../wizard/index.ts"],"names":[],"mappings":"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"}
@@ -49,5 +49,7 @@ contextBridge.exposeInMainWorld('wizard', {
49
49
  onInstallAndroidProgress: (cb) => onProgress('installAndroid', cb),
50
50
  pairAndroid: (opts) => invoke('pairAndroid', opts),
51
51
  onPairAndroidProgress: (cb) => onProgress('pairAndroid', cb),
52
+ listDevices: () => invoke('listDevices'),
53
+ enableIosDevMode:(deviceId) => invoke('enableIosDevMode', deviceId),
52
54
  close: () => invoke('close'),
53
55
  });
@@ -256,6 +256,93 @@
256
256
  margin: 12px 0;
257
257
  white-space: pre-wrap;
258
258
  }
259
+ /* Device manager rows */
260
+ .device-list { list-style: none; padding: 0; margin: 16px 0 20px; }
261
+ .device-row {
262
+ display: flex;
263
+ align-items: center;
264
+ gap: 12px;
265
+ padding: 14px 16px;
266
+ background: var(--panel);
267
+ border: 1px solid var(--border);
268
+ border-radius: 10px;
269
+ margin-bottom: 8px;
270
+ transition: background 1.5s ease, border-color 1.5s ease;
271
+ }
272
+ .device-row .dot {
273
+ flex: 0 0 10px;
274
+ width: 10px;
275
+ height: 10px;
276
+ border-radius: 999px;
277
+ background: var(--ok);
278
+ box-shadow: 0 0 0 0 rgba(61, 220, 151, 0);
279
+ }
280
+ .device-row.unavailable .dot {
281
+ background: transparent;
282
+ border: 1.5px solid var(--muted);
283
+ }
284
+ .device-row .body { flex: 1; min-width: 0; }
285
+ .device-row .name { font-weight: 600; font-size: 14.5px; }
286
+ .device-row .nickname { color: var(--muted); font-size: 12.5px; margin-left: 6px; }
287
+ .device-row .subtitle { color: var(--muted); font-size: 12.5px; margin-top: 2px; }
288
+ .device-row .status {
289
+ color: var(--muted);
290
+ font-size: 12px;
291
+ text-transform: uppercase;
292
+ letter-spacing: 0.06em;
293
+ }
294
+ .device-row.unavailable { opacity: 0.6; }
295
+ .device-row.needs-action {
296
+ opacity: 1;
297
+ border-color: rgba(241, 192, 98, 0.55);
298
+ background: rgba(241, 192, 98, 0.06);
299
+ }
300
+ .device-row.needs-action .dot {
301
+ background: var(--warn);
302
+ border: 0;
303
+ }
304
+ .device-row .row-action {
305
+ background: var(--warn);
306
+ color: #1a1d23;
307
+ border: 0;
308
+ border-radius: 6px;
309
+ padding: 6px 12px;
310
+ font: inherit;
311
+ font-weight: 600;
312
+ font-size: 12.5px;
313
+ cursor: pointer;
314
+ transition: background 0.12s ease, opacity 0.12s ease;
315
+ }
316
+ .device-row .row-action:hover { background: #ffcc70; }
317
+ .device-row .row-action:disabled { opacity: 0.5; cursor: default; }
318
+ .device-row .row-pending {
319
+ color: var(--warn);
320
+ font-size: 12px;
321
+ font-weight: 500;
322
+ }
323
+ .device-row.flash-new {
324
+ background: rgba(61, 220, 151, 0.14);
325
+ border-color: rgba(61, 220, 151, 0.55);
326
+ }
327
+ .empty-state {
328
+ padding: 26px 18px;
329
+ text-align: center;
330
+ border: 1px dashed var(--border);
331
+ border-radius: 12px;
332
+ color: var(--muted);
333
+ margin: 16px 0 20px;
334
+ }
335
+ .add-row {
336
+ display: flex;
337
+ gap: 10px;
338
+ }
339
+ .btn.ghost {
340
+ background: transparent;
341
+ color: var(--accent);
342
+ border: 1px solid var(--accent);
343
+ padding: 8px 14px;
344
+ }
345
+ .btn.ghost:hover { background: rgba(79, 139, 255, 0.10); }
259
346
  @keyframes spin { to { transform: rotate(360deg); } }
260
347
  ::-webkit-scrollbar { width: 8px; height: 8px; }
261
348
  ::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }
@@ -353,6 +440,17 @@
353
440
  <div class="error-box" id="pair-error" style="display: none"></div>
354
441
  </section>
355
442
 
443
+ <!-- Screen: device manager (home screen after install) -->
444
+ <section class="screen" id="screen-device-manager">
445
+ <p class="lede" id="dm-lede">Your devices.</p>
446
+ <p class="muted" id="dm-sub">These are connected right now. Add as many as you want.</p>
447
+ <ul class="device-list" id="device-list"></ul>
448
+ <div class="empty-state" id="device-empty" style="display: none"></div>
449
+ <div class="add-row">
450
+ <button class="btn ghost" id="btn-add-device">+ Add another device</button>
451
+ </div>
452
+ </section>
453
+
356
454
  <!-- Screen: done -->
357
455
  <section class="screen" id="screen-done">
358
456
  <div class="big-check">✓</div>
@@ -371,28 +469,30 @@
371
469
  (() => {
372
470
  const $ = (id) => document.getElementById(id);
373
471
  const screens = {
374
- detect: $('screen-detect'),
375
- install: $('screen-install'),
376
- iosDevice: $('screen-ios-device'),
377
- androidChoice: $('screen-android-choice'),
378
- androidUsb: $('screen-android-usb'),
379
- androidWireless:$('screen-android-wireless'),
380
- done: $('screen-done'),
472
+ detect: $('screen-detect'),
473
+ install: $('screen-install'),
474
+ iosDevice: $('screen-ios-device'),
475
+ androidChoice: $('screen-android-choice'),
476
+ androidUsb: $('screen-android-usb'),
477
+ androidWireless: $('screen-android-wireless'),
478
+ deviceManager: $('screen-device-manager'),
479
+ done: $('screen-done'),
381
480
  };
382
- const stepPill = $('step-pill');
481
+ const stepPill = $('step-pill');
383
482
  const btnPrimary = $('btn-primary');
384
- const btnBack = $('btn-back');
483
+ const btnBack = $('btn-back');
385
484
 
386
- let platform = null; // 'ios' | 'android'
387
- let lastIosStatus = null;
388
- let lastAndroidStatus = null;
389
- let history = [];
485
+ let platform = null; // 'ios' | 'android'
486
+ let lastDevices = []; // most recent listDevices() result
487
+ let pendingAddSnapshot = null; // Set<string> of device IDs at the moment user clicked "+ Add"
488
+ let history = [];
489
+ const devModeRequested = new Set(); // device IDs for which we've already sent enableIosDevMode
390
490
 
391
491
  function show(name, label) {
392
492
  for (const k in screens) screens[k].classList.remove('active');
393
493
  screens[name].classList.add('active');
394
494
  stepPill.textContent = label;
395
- btnBack.style.visibility = history.length ? 'visible' : 'hidden';
495
+ btnBack.style.visibility = history.length > 1 ? 'visible' : 'hidden';
396
496
  }
397
497
 
398
498
  function navigate(name, label) {
@@ -404,10 +504,13 @@
404
504
  if (history.length <= 1) return;
405
505
  history.pop();
406
506
  const prev = history[history.length - 1];
507
+ pendingAddSnapshot = null; // bail out of "add device" mode
407
508
  show(prev.name, prev.label);
509
+ // If we backed into the device manager, re-enter so its polling/buttons re-arm.
510
+ if (prev.name === 'deviceManager') runDeviceManager();
408
511
  });
409
512
 
410
- // ── Step list renderer ─────────────────────────────────────────────────────
513
+ // ── Generic helpers ───────────────────────────────────────────────────────
411
514
  function renderStep(listEl, p) {
412
515
  let li = listEl.querySelector(`[data-id="${p.id}"]`);
413
516
  if (!li) {
@@ -423,9 +526,8 @@
423
526
  if (p.detail) detail.textContent = p.detail; else detail.textContent = '';
424
527
  }
425
528
 
426
- // ── Log tail ────────────────────────────────────────────────────────────────
427
529
  const logContent = $('log-content');
428
- const logToggle = $('log-toggle');
530
+ const logToggle = $('log-toggle');
429
531
  logToggle.addEventListener('click', () => {
430
532
  const open = logContent.classList.toggle('open');
431
533
  logToggle.textContent = open ? 'Hide details' : 'Show details';
@@ -435,57 +537,201 @@
435
537
  logContent.scrollTop = logContent.scrollHeight;
436
538
  }
437
539
 
438
- // ── Live device polling ─────────────────────────────────────────────────────
439
- // Polls every 1.5s while a "waiting for device" screen is active. Auto-advances
440
- // to the done screen the moment the device shows up — no clicking required.
441
540
  let livePollHandle = null;
442
541
  function stopLivePoll() {
443
542
  if (livePollHandle) { clearInterval(livePollHandle); livePollHandle = null; }
444
543
  }
445
- function startLivePoll(screenEl, check, onDetected) {
544
+ function startLivePoll(screenEl, tick, intervalMs = 1500) {
446
545
  stopLivePoll();
447
546
  livePollHandle = setInterval(async () => {
448
547
  if (!screenEl.classList.contains('active')) { stopLivePoll(); return; }
449
- try {
450
- const status = await check();
451
- if (onDetected(status)) {
452
- stopLivePoll();
453
- }
454
- } catch {}
455
- }, 1500);
548
+ try { await tick(); } catch {}
549
+ }, intervalMs);
550
+ }
551
+
552
+ // ── Device manager (the home screen after install) ──────────────────────────
553
+
554
+ /** Renders a single ConnectedDevice row. */
555
+ function renderDeviceRow(listEl, d, justAddedIds) {
556
+ const existing = listEl.querySelector(`[data-id="${d.id}"]`);
557
+ const li = existing || document.createElement('li');
558
+ li.dataset.id = d.id;
559
+
560
+ const needsDevMode = d.platform === 'ios' && d.developerMode === false;
561
+ const flashNew = justAddedIds.has(d.id);
562
+
563
+ li.className = 'device-row' +
564
+ (needsDevMode ? ' needs-action' : (d.available ? '' : ' unavailable')) +
565
+ (flashNew ? ' flash-new' : '');
566
+
567
+ // Right side: button (dev-mode action) OR status (when unavailable for other reason) OR nothing
568
+ let rightSide = '';
569
+ if (needsDevMode) {
570
+ if (devModeRequested.has(d.id)) {
571
+ rightSide = `<span class="row-pending">Check your iPhone…</span>`;
572
+ } else {
573
+ rightSide = `<button class="row-action" data-action="enable-dev-mode">Turn on Developer Mode</button>`;
574
+ }
575
+ } else if (!d.available && d.unavailableReason) {
576
+ rightSide = `<span class="status">${escapeHtml(d.unavailableReason)}</span>`;
577
+ }
578
+
579
+ li.innerHTML =
580
+ `<span class="dot"></span>` +
581
+ `<span class="body">` +
582
+ `<div><span class="name">${escapeHtml(d.nickname || d.name)}</span>${d.nickname ? `<span class="nickname">${escapeHtml(d.name)}</span>` : ''}</div>` +
583
+ `<div class="subtitle">${escapeHtml(d.model || '')}${d.softwareVersion ? ' · ' + escapeHtml(d.softwareVersion) : ''}</div>` +
584
+ `</span>` +
585
+ rightSide;
586
+
587
+ if (!existing) listEl.appendChild(li);
588
+
589
+ // Wire the action button (idempotent — re-attached on every render)
590
+ const actionBtn = li.querySelector('button.row-action');
591
+ if (actionBtn) {
592
+ actionBtn.onclick = () => sendEnableDevMode(d.id, actionBtn);
593
+ }
594
+ }
595
+
596
+ async function sendEnableDevMode(deviceId, buttonEl) {
597
+ buttonEl.disabled = true;
598
+ buttonEl.textContent = 'Sending…';
599
+ try {
600
+ await window.wizard.enableIosDevMode(deviceId);
601
+ devModeRequested.add(deviceId);
602
+ // Re-render the row immediately so the button swaps to "Check your iPhone…"
603
+ const li = $('device-list').querySelector(`[data-id="${deviceId}"]`);
604
+ if (li) {
605
+ const fresh = lastDevices.find(x => x.id === deviceId);
606
+ if (fresh) renderDeviceRow($('device-list'), fresh, new Set());
607
+ }
608
+ } catch (err) {
609
+ buttonEl.disabled = false;
610
+ buttonEl.textContent = 'Try again';
611
+ alert(`Couldn't enable Developer Mode: ${err.message || err}`);
612
+ }
613
+ }
614
+ function escapeHtml(s) {
615
+ return String(s).replace(/[&<>"']/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[c]));
616
+ }
617
+
618
+ /** Returns the IDs of devices currently visible on `platform`. */
619
+ function deviceIdsFor(plat) {
620
+ return new Set(lastDevices.filter(d => d.platform === plat).map(d => d.id));
621
+ }
622
+
623
+ /** Refresh the device manager list. Returns the fresh list. */
624
+ async function refreshDeviceManager(justAddedIds = new Set()) {
625
+ const devs = await window.wizard.listDevices();
626
+ lastDevices = devs;
627
+ // Clear "request sent" state for any iPhone whose Developer Mode has flipped to ON.
628
+ for (const id of Array.from(devModeRequested)) {
629
+ const d = devs.find(x => x.id === id);
630
+ if (!d || d.developerMode === true) devModeRequested.delete(id);
631
+ }
632
+ const mine = devs.filter(d => d.platform === platform);
633
+ const listEl = $('device-list');
634
+ const emptyEl = $('device-empty');
635
+
636
+ // Remove rows for devices that vanished
637
+ const presentIds = new Set(mine.map(d => d.id));
638
+ for (const li of Array.from(listEl.querySelectorAll('.device-row'))) {
639
+ if (!presentIds.has(li.dataset.id)) li.remove();
640
+ }
641
+
642
+ if (mine.length === 0) {
643
+ listEl.style.display = 'none';
644
+ emptyEl.style.display = '';
645
+ emptyEl.textContent = platform === 'ios'
646
+ ? "No iPhones connected yet. Click “+ Add another iPhone” to get started."
647
+ : "No Android devices connected yet. Click “+ Add another Android device” to get started.";
648
+ } else {
649
+ listEl.style.display = '';
650
+ emptyEl.style.display = 'none';
651
+ for (const d of mine) renderDeviceRow(listEl, d, justAddedIds);
652
+ }
653
+ return mine;
654
+ }
655
+
656
+ function enterDeviceManagerScreen() {
657
+ if (history[history.length - 1]?.name !== 'deviceManager') {
658
+ navigate('deviceManager', platform === 'ios' ? 'Your iPhones' : 'Your Android devices');
659
+ } else {
660
+ show('deviceManager', platform === 'ios' ? 'Your iPhones' : 'Your Android devices');
661
+ }
456
662
  }
457
663
 
458
- // ── iOS flow ────────────────────────────────────────────────────────────────
664
+ /** Activate the device manager screen with its polling and buttons. */
665
+ async function runDeviceManager(justAddedIds = new Set()) {
666
+ enterDeviceManagerScreen();
667
+ pendingAddSnapshot = null;
668
+ btnPrimary.style.display = '';
669
+ btnPrimary.disabled = false;
670
+ btnPrimary.textContent = 'Finish';
671
+ btnPrimary.onclick = finish;
672
+ $('dm-lede').textContent = platform === 'ios' ? 'Your iPhones' : 'Your Android devices';
673
+ $('dm-sub').textContent = platform === 'ios'
674
+ ? 'Connected right now. Add as many as you want.'
675
+ : 'Connected right now. USB and wireless both work.';
676
+ $('btn-add-device').textContent = platform === 'ios' ? '+ Add another iPhone' : '+ Add another Android device';
677
+ $('btn-add-device').onclick = beginAddDevice;
678
+
679
+ await refreshDeviceManager(justAddedIds);
680
+
681
+ // Poll every 2s while this screen is active so disconnects/reconnects
682
+ // surface without user action.
683
+ startLivePoll(screens.deviceManager, () => refreshDeviceManager(), 2000);
684
+ }
685
+
686
+ /** Snapshot current device IDs and navigate into the appropriate add-flow. */
687
+ function beginAddDevice() {
688
+ pendingAddSnapshot = deviceIdsFor(platform);
689
+ if (platform === 'ios') {
690
+ navigate('iosDevice', 'Add an iPhone');
691
+ } else {
692
+ navigate('androidChoice', 'Add an Android');
693
+ }
694
+ }
695
+
696
+ /** Polled on iOS trust / Android USB screens — when a NEW device appears, return to manager. */
697
+ async function pollForNewDevice() {
698
+ const devs = await window.wizard.listDevices();
699
+ lastDevices = devs;
700
+ if (!pendingAddSnapshot) return;
701
+ const newOne = devs.find(d => d.platform === platform && !pendingAddSnapshot.has(d.id));
702
+ if (newOne) {
703
+ const justAdded = new Set([newOne.id]);
704
+ pendingAddSnapshot = null;
705
+ stopLivePoll();
706
+ runDeviceManager(justAdded);
707
+ }
708
+ }
709
+
710
+ // ── iOS flow ──────────────────────────────────────────────────────────────
459
711
  async function runIosDetect() {
460
- navigate('detect', 'Step 1 of 3');
712
+ navigate('detect', 'Checking');
461
713
  btnPrimary.style.display = 'none';
462
714
  const status = await window.wizard.checkIos();
463
- lastIosStatus = status;
464
715
  const list = $('detect-list');
465
716
  list.innerHTML = '';
466
- renderStep(list, { id: 'brew', label: 'Homebrew', status: status.brew ? 'done' : 'error' });
467
- renderStep(list, { id: 'python', label: 'Python', status: status.pymobiledevice3 ? 'done' : 'error' });
468
- renderStep(list, { id: 'pmd3', label: 'pymobiledevice3', status: status.pymobiledevice3 ? 'done' : 'error' });
469
- renderStep(list, { id: 'sudoers', label: 'Passwordless tunnel', status: status.sudoers ? 'done' : 'pending', detail: status.sudoers ? '' : 'Optional — you can skip and enter your Mac password each session.' });
470
- renderStep(list, { id: 'device', label: 'iPhone connected', status: status.deviceVisible ? 'done' : 'pending', detail: status.deviceVisible ? '' : 'Plug in your iPhone and tap Trust.' });
717
+ renderStep(list, { id: 'brew', label: 'Homebrew', status: status.brew ? 'done' : 'error' });
718
+ renderStep(list, { id: 'python', label: 'Python', status: status.pymobiledevice3 ? 'done' : 'error' });
719
+ renderStep(list, { id: 'pmd3', label: 'pymobiledevice3', status: status.pymobiledevice3 ? 'done' : 'error' });
720
+ renderStep(list, { id: 'sudoers', label: 'Passwordless tunnel', status: status.sudoers ? 'done' : 'pending',
721
+ detail: status.sudoers ? '' : 'Optional you can skip and enter your Mac password each session.' });
471
722
 
472
723
  btnPrimary.style.display = '';
473
724
  if (!status.ok) {
474
725
  btnPrimary.textContent = 'Install missing tools';
475
726
  btnPrimary.onclick = runIosInstall;
476
- } else if (!status.deviceVisible) {
477
- btnPrimary.textContent = 'Continue';
478
- btnPrimary.onclick = () => navigate('iosDevice', 'Step 2 of 3');
479
727
  } else {
480
- btnPrimary.textContent = 'Finish';
481
- btnPrimary.onclick = finish;
482
- $('done-detail').textContent = 'Your iPhone is connected and ready.';
483
- navigate('done', 'Done');
728
+ // Deps OK — skip straight to the device manager.
729
+ runDeviceManager();
484
730
  }
485
731
  }
486
732
 
487
733
  async function runIosInstall() {
488
- navigate('install', 'Step 2 of 3');
734
+ navigate('install', 'Installing');
489
735
  $('install-list').innerHTML = '';
490
736
  $('install-error').style.display = 'none';
491
737
  btnPrimary.disabled = true;
@@ -495,12 +741,10 @@
495
741
  renderStep($('install-list'), p);
496
742
  if (p.log) appendLog(p.log);
497
743
  });
498
-
499
744
  try {
500
745
  await window.wizard.installIos();
501
746
  btnPrimary.disabled = false;
502
- btnPrimary.textContent = 'Continue';
503
- btnPrimary.onclick = () => navigate('iosDevice', 'Step 3 of 3');
747
+ runDeviceManager();
504
748
  } catch (err) {
505
749
  btnPrimary.disabled = false;
506
750
  btnPrimary.textContent = 'Retry';
@@ -512,63 +756,38 @@
512
756
  }
513
757
  }
514
758
 
515
- // Re-check after iOS device step
516
- async function recheckIos() {
517
- const status = await window.wizard.checkIos();
518
- if (status.deviceVisible) {
519
- $('done-detail').textContent = 'Your iPhone is connected and ready.';
520
- navigate('done', 'Done');
521
- btnPrimary.textContent = 'Finish';
522
- btnPrimary.onclick = finish;
523
- } else {
524
- $('install-error').textContent = "Still can't see your iPhone. Make sure it's plugged in, unlocked, and you tapped Trust.";
525
- $('install-error').style.display = '';
526
- }
527
- }
528
-
529
- // ── Android flow ───────────────────────────────────────────────────────────
759
+ // ── Android flow ──────────────────────────────────────────────────────────
530
760
  async function runAndroidDetect() {
531
- navigate('detect', 'Step 1 of 3');
761
+ navigate('detect', 'Checking');
532
762
  btnPrimary.style.display = 'none';
533
763
  const status = await window.wizard.checkAndroid();
534
- lastAndroidStatus = status;
535
764
  const list = $('detect-list');
536
765
  list.innerHTML = '';
537
766
  renderStep(list, { id: 'adb', label: 'ADB (Android Debug Bridge)', status: status.adb ? 'done' : 'error' });
538
- renderStep(list, { id: 'device', label: 'Android device', status: status.deviceConnected ? 'done' : 'pending' });
539
767
 
540
768
  btnPrimary.style.display = '';
541
769
  if (!status.adb) {
542
770
  btnPrimary.textContent = 'Install ADB';
543
771
  btnPrimary.onclick = runAndroidInstall;
544
- } else if (!status.deviceConnected) {
545
- btnPrimary.textContent = 'Connect a device';
546
- btnPrimary.onclick = () => navigate('androidChoice', 'Step 2 of 3');
547
772
  } else {
548
- $('done-detail').textContent = 'Your Android device is connected and ready.';
549
- navigate('done', 'Done');
550
- btnPrimary.textContent = 'Finish';
551
- btnPrimary.onclick = finish;
773
+ runDeviceManager();
552
774
  }
553
775
  }
554
776
 
555
777
  async function runAndroidInstall() {
556
- navigate('install', 'Step 2 of 3');
778
+ navigate('install', 'Installing');
557
779
  $('install-list').innerHTML = '';
558
780
  $('install-error').style.display = 'none';
559
781
  btnPrimary.disabled = true;
560
782
  btnPrimary.textContent = 'Installing…';
561
-
562
783
  const off = window.wizard.onInstallAndroidProgress((p) => {
563
784
  renderStep($('install-list'), p);
564
785
  if (p.log) appendLog(p.log);
565
786
  });
566
-
567
787
  try {
568
788
  await window.wizard.installAndroid();
569
789
  btnPrimary.disabled = false;
570
- btnPrimary.textContent = 'Connect a device';
571
- btnPrimary.onclick = () => navigate('androidChoice', 'Step 3 of 3');
790
+ runDeviceManager();
572
791
  } catch (err) {
573
792
  btnPrimary.disabled = false;
574
793
  btnPrimary.textContent = 'Retry';
@@ -580,47 +799,29 @@
580
799
  }
581
800
  }
582
801
 
802
+ // USB / wireless choice
583
803
  document.querySelectorAll('.choice').forEach(btn => {
584
804
  btn.addEventListener('click', () => {
585
805
  const conn = btn.dataset.conn;
586
806
  if (conn === 'usb') {
587
- navigate('androidUsb', 'Step 3 of 3');
588
- btnPrimary.textContent = 'Check again';
589
- btnPrimary.onclick = recheckAndroid;
590
- // Auto-advance the moment ADB sees the phone — no clicking required.
591
- startLivePoll(
592
- screens.androidUsb,
593
- () => window.wizard.checkAndroid(),
594
- (status) => {
595
- if (!status.deviceConnected) return false;
596
- $('done-detail').textContent = 'Your Android device is connected and ready.';
597
- navigate('done', 'Done');
598
- btnPrimary.textContent = 'Finish';
599
- btnPrimary.onclick = finish;
600
- return true;
601
- }
602
- );
807
+ navigate('androidUsb', 'Add via USB');
808
+ btnPrimary.style.display = 'none';
809
+ startLivePoll(screens.androidUsb, pollForNewDevice);
603
810
  } else {
604
- navigate('androidWireless', 'Step 3 of 3');
811
+ // Clear form so this is a fresh entry — subsequent adds don't show stale credentials.
812
+ $('pair-ip').value = '';
813
+ $('pair-port').value = '';
814
+ $('pair-code').value = '';
815
+ $('pair-error').style.display = 'none';
816
+ $('pair-list').innerHTML = '';
817
+ navigate('androidWireless', 'Add via WiFi');
818
+ btnPrimary.style.display = '';
605
819
  btnPrimary.textContent = 'Pair device';
606
820
  btnPrimary.onclick = runAndroidPair;
607
821
  }
608
822
  });
609
823
  });
610
824
 
611
- async function recheckAndroid() {
612
- const status = await window.wizard.checkAndroid();
613
- if (status.deviceConnected) {
614
- $('done-detail').textContent = 'Your Android device is connected and ready.';
615
- navigate('done', 'Done');
616
- btnPrimary.textContent = 'Finish';
617
- btnPrimary.onclick = finish;
618
- } else {
619
- $('install-error').textContent = "No device detected yet. Check the cable, allow USB debugging on the phone, and try again.";
620
- $('install-error').style.display = '';
621
- }
622
- }
623
-
624
825
  async function runAndroidPair() {
625
826
  const ip = $('pair-ip').value.trim();
626
827
  const port = $('pair-port').value.trim();
@@ -637,14 +838,18 @@
637
838
  const off = window.wizard.onPairAndroidProgress((p) => {
638
839
  renderStep($('pair-list'), p);
639
840
  });
640
-
641
841
  try {
642
842
  await window.wizard.pairAndroid({ ip, port, code });
643
843
  btnPrimary.disabled = false;
644
- $('done-detail').textContent = 'Your Android device is paired and ready.';
645
- navigate('done', 'Done');
646
- btnPrimary.textContent = 'Finish';
647
- btnPrimary.onclick = finish;
844
+ // Refresh devices and return to manager with the new device highlighted (if it appeared).
845
+ const before = pendingAddSnapshot || deviceIdsFor(platform);
846
+ const devs = await window.wizard.listDevices();
847
+ lastDevices = devs;
848
+ const justAdded = new Set(
849
+ devs.filter(d => d.platform === platform && !before.has(d.id)).map(d => d.id)
850
+ );
851
+ pendingAddSnapshot = null;
852
+ runDeviceManager(justAdded);
648
853
  } catch (err) {
649
854
  btnPrimary.disabled = false;
650
855
  btnPrimary.textContent = 'Try again';
@@ -660,34 +865,18 @@
660
865
  window.wizard.close();
661
866
  }
662
867
 
663
- // ── Boot ────────────────────────────────────────────────────────────────────
868
+ // ── Boot ──────────────────────────────────────────────────────────────────
664
869
  window.wizard.init().then(({ platform: p }) => {
665
870
  platform = p;
666
871
  $('title').textContent = p === 'ios' ? 'Set up iPhone capture' : 'Set up Android capture';
667
872
 
668
- // When user clicks "Check again" on a device screen, route to the right recheck.
669
- btnPrimary.addEventListener('click', () => {/* per-screen handlers attach onclick directly */});
670
-
671
873
  if (p === 'ios') {
672
874
  runIosDetect();
673
- // When iosDevice screen activates: keep "Check again" as a manual fallback
674
- // AND start live polling so the wizard auto-advances the moment trust is granted.
875
+ // iOS trust screen poll listDevices() for a NEW device (diff against snapshot).
675
876
  const obs = new MutationObserver(() => {
676
877
  if (screens.iosDevice.classList.contains('active')) {
677
- btnPrimary.textContent = 'Check again';
678
- btnPrimary.onclick = recheckIos;
679
- startLivePoll(
680
- screens.iosDevice,
681
- () => window.wizard.checkIos(),
682
- (status) => {
683
- if (!status.deviceVisible) return false;
684
- $('done-detail').textContent = 'Your iPhone is connected and ready.';
685
- navigate('done', 'Done');
686
- btnPrimary.textContent = 'Finish';
687
- btnPrimary.onclick = finish;
688
- return true;
689
- }
690
- );
878
+ btnPrimary.style.display = 'none';
879
+ startLivePoll(screens.iosDevice, pollForNewDevice);
691
880
  }
692
881
  });
693
882
  obs.observe(screens.iosDevice, { attributes: true, attributeFilter: ['class'] });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@8bitbish/screenshot-service",
3
- "version": "1.1.1",
3
+ "version": "1.2.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",