@tapflowio/ios-agent 0.30.0 → 0.31.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.
Files changed (51) hide show
  1. package/bin/guest-helper +0 -0
  2. package/bin/screencapture-helper +0 -0
  3. package/dist/DeviceChromeLoader.d.ts +28 -1
  4. package/dist/DeviceChromeLoader.d.ts.map +1 -1
  5. package/dist/DeviceChromeLoader.js +118 -37
  6. package/dist/DeviceChromeLoader.js.map +1 -1
  7. package/dist/FoldableInput.d.ts +58 -0
  8. package/dist/FoldableInput.d.ts.map +1 -0
  9. package/dist/FoldableInput.js +166 -0
  10. package/dist/FoldableInput.js.map +1 -0
  11. package/dist/GuestHelper.d.ts +109 -0
  12. package/dist/GuestHelper.d.ts.map +1 -0
  13. package/dist/GuestHelper.js +437 -0
  14. package/dist/GuestHelper.js.map +1 -0
  15. package/dist/IOSAgent.d.ts +119 -2
  16. package/dist/IOSAgent.d.ts.map +1 -1
  17. package/dist/IOSAgent.js +586 -24
  18. package/dist/IOSAgent.js.map +1 -1
  19. package/dist/InputChannel.d.ts +38 -0
  20. package/dist/InputChannel.d.ts.map +1 -0
  21. package/dist/InputChannel.js +7 -0
  22. package/dist/InputChannel.js.map +1 -0
  23. package/dist/PanelState.d.ts +72 -0
  24. package/dist/PanelState.d.ts.map +1 -0
  25. package/dist/PanelState.js +192 -0
  26. package/dist/PanelState.js.map +1 -0
  27. package/dist/PhysicalOrientation.d.ts +58 -0
  28. package/dist/PhysicalOrientation.d.ts.map +1 -0
  29. package/dist/PhysicalOrientation.js +155 -0
  30. package/dist/PhysicalOrientation.js.map +1 -0
  31. package/dist/ScreenCaptureStreamer.d.ts +12 -1
  32. package/dist/ScreenCaptureStreamer.d.ts.map +1 -1
  33. package/dist/ScreenCaptureStreamer.js +28 -3
  34. package/dist/ScreenCaptureStreamer.js.map +1 -1
  35. package/dist/SimctlWrapper.d.ts +18 -1
  36. package/dist/SimctlWrapper.d.ts.map +1 -1
  37. package/dist/SimctlWrapper.js +43 -1
  38. package/dist/SimctlWrapper.js.map +1 -1
  39. package/dist/TouchHelper.d.ts +3 -2
  40. package/dist/TouchHelper.d.ts.map +1 -1
  41. package/dist/TouchHelper.js +4 -6
  42. package/dist/TouchHelper.js.map +1 -1
  43. package/dist/TypePanels.d.ts +33 -0
  44. package/dist/TypePanels.d.ts.map +1 -0
  45. package/dist/TypePanels.js +68 -0
  46. package/dist/TypePanels.js.map +1 -0
  47. package/dist/panels.d.ts +52 -0
  48. package/dist/panels.d.ts.map +1 -0
  49. package/dist/panels.js +68 -0
  50. package/dist/panels.js.map +1 -0
  51. package/package.json +6 -5
Binary file
Binary file
@@ -2,11 +2,27 @@ import type { ChromeData, ChromeButton, ChromeRect } from '@tapflowio/protocol';
2
2
  /** Runs a tool and resolves its stdout. Killing on timeout ends the swift interpreter too: the `swift`
3
3
  * driver execs into `swift-frontend` under the same pid (measured). */
4
4
  export type ChromeRunner = (cmd: string, args: string[], timeoutMs: number, signal: AbortSignal) => Promise<Buffer>;
5
+ /** Quarter turns clockwise to draw a button's artwork at, so it lies in the frame's own space. */
6
+ type ArtTurn = 0 | 90 | 180 | 270;
5
7
  type ScreenSize = {
6
8
  width: number;
7
9
  height: number;
8
10
  };
9
11
  export declare function screenSizeFromDeviceType(profile: unknown, capabilities: unknown): ScreenSize | null;
12
+ type CornerRadii = {
13
+ topLeft: number;
14
+ topRight: number;
15
+ bottomRight: number;
16
+ bottomLeft: number;
17
+ };
18
+ /** What a device type's `capabilities.plist` says about one of its panels, found by that panel's frame. */
19
+ export interface PanelDisplay {
20
+ /** The panel's `nativeOrientation`, which its frame is drawn in and its buttons' artwork is not. */
21
+ artTurn: ArtTurn;
22
+ /** Its screen's corners in points, or null when the plist does not state all four. */
23
+ cornerRadii: CornerRadii | null;
24
+ }
25
+ export declare function panelDisplayFromCapabilities(capabilities: unknown, chromeId: string): PanelDisplay | null;
10
26
  export interface DeviceChromeLoaderOptions {
11
27
  run?: ChromeRunner;
12
28
  chromeMapPath?: string;
@@ -16,6 +32,12 @@ export interface DeviceChromeLoaderOptions {
16
32
  cacheDir?: string;
17
33
  loadBudgetMs?: number;
18
34
  }
35
+ /** One panel of a multi-panel device, for `DeviceChromeLoader.load`. `width`/`height` are points. */
36
+ export interface ChromePanel {
37
+ chromeId: string;
38
+ width: number;
39
+ height: number;
40
+ }
19
41
  export declare class DeviceChromeLoader {
20
42
  private readonly run;
21
43
  private readonly chromeMapPath;
@@ -30,7 +52,12 @@ export declare class DeviceChromeLoader {
30
52
  private readonly loads;
31
53
  private deviceTypes;
32
54
  constructor(options?: DeviceChromeLoaderOptions);
33
- load(typeIdentifier: string): Promise<ChromeData | null>;
55
+ /**
56
+ * `panel` picks one panel of a multi-panel device (iPhone Duo): its own DeviceKit frame and its size in
57
+ * points, from `simctl io enumerate`. Without it the frame is the device model's, which is the only one
58
+ * every other device has.
59
+ */
60
+ load(typeIdentifier: string, panel?: ChromePanel): Promise<ChromeData | null>;
34
61
  /** Once per process when it succeeds: it used to run twice on every boot. */
35
62
  private listDeviceTypes;
36
63
  private loadUncached;
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceChromeLoader.d.ts","sourceRoot":"","sources":["../src/DeviceChromeLoader.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAgB/E;wEACwE;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAkjBnH,KAAK,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAmBnD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAiBnG;AAgFD,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC;;;6EAGyE;IACzE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgD;IACtE,OAAO,CAAC,WAAW,CAAgC;gBAEvC,OAAO,GAAE,yBAA8B;IASnD,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAgBxD,6EAA6E;YAC/D,eAAe;YAQf,YAAY;CAyM3B;AAED,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"DeviceChromeLoader.d.ts","sourceRoot":"","sources":["../src/DeviceChromeLoader.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAgB/E;wEACwE;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAqGnH,kGAAkG;AAClG,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAA;AAqejC,KAAK,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAmBnD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAiBnG;AAED,KAAK,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjG,2GAA2G;AAC3G,MAAM,WAAW,YAAY;IAC3B,oGAAoG;IACpG,OAAO,EAAE,OAAO,CAAA;IAChB,sFAAsF;IACtF,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;CAChC;AAMD,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAczG;AA4GD,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,qGAAqG;AACrG,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC;;;6EAGyE;IACzE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgD;IACtE,OAAO,CAAC,WAAW,CAAgC;gBAEvC,OAAO,GAAE,yBAA8B;IASnD;;;;OAIG;IACH,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAkB7E,6EAA6E;YAC/D,eAAe;YAQf,YAAY;CA+M3B;AAED,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,CAAA"}
@@ -52,10 +52,15 @@ async function renderSwift(ctx, script, inputs, outPath) {
52
52
  // compositeW/H = device body dimensions in 1× PDF pts (before button margin expansion).
53
53
  // For composite PDF: pdfSize.width / pdfSize.height.
54
54
  // For nine-slice: leftWidth+screenW+rightWidth / topHeight+screenH+bottomHeight.
55
- // leftWidth/rightWidth: bezel sizes; top/bottom-anchor x offsets are measured from
56
- // the screen edge (after bezel), so we add leftWidth for leading and subtract
57
- // rightWidth for trailing to convert to canvas coordinates.
58
- async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compositeH, scale = 2, leftWidth = 0, rightWidth = 0) {
55
+ // rightWidth: the trailing bezel, which a trailing top-anchor x offset is measured from.
56
+ // artTurn: how far to turn every button's artwork — a frame drawn in its panel's native orientation
57
+ // (`nativeOrientation` in capabilities.plist) still ships its buttons drawn upright for the person holding
58
+ // the device. Measured on the iPhone Duo's unfolded frame (phone14, native 270): its volume art is 63×16 on
59
+ // a left anchor and its power 16×107 on a top one, each a quarter turn from the edge it is placed on.
60
+ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compositeH, scale = 2, rightWidth = 0, artTurn = 0) {
61
+ // A quarter-turned artwork swaps its sides, and every margin and offset below is measured on the turned one.
62
+ const quarter = artTurn === 90 || artTurn === 270;
63
+ const turned = (size) => quarter ? { width: size.height, height: size.width } : size;
59
64
  const margins = { left: 0, top: 0, right: 0, bottom: 0 };
60
65
  const infos = [];
61
66
  for (const inp of inputs) {
@@ -65,7 +70,7 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
65
70
  if (!existsSync(pdfPath))
66
71
  continue;
67
72
  try {
68
- const size = await getSipsSize(ctx, pdfPath);
73
+ const size = turned(await getSipsSize(ctx, pdfPath));
69
74
  const roll = inp.offsets.rollover ?? inp.offsets.normal;
70
75
  infos.push({ input: inp, w: size.width, h: size.height, roll });
71
76
  }
@@ -118,10 +123,14 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
118
123
  break;
119
124
  }
120
125
  case 'top': {
126
+ // Leading: roll.x is the button's leading edge from the frame's own, as roll.y is for a left-anchored
127
+ // one. Measured against DeviceHub on the iPhone Duo's unfolded frame (phone14), whose power button sits
128
+ // at 243 ±8 pt: this puts it at 249.5, where the previous reading (leftWidth + roll.x − w/2, fitted by
129
+ // eye to an iPad's nine-slice frame) put it at 159.5. On that iPad the two differ by w − leftWidth, 5 pt.
121
130
  const align = inp.align ?? 'leading';
122
131
  centerX = align === 'center' ? mL + compositeW / 2 + roll.x
123
132
  : align === 'trailing' ? mL + (compositeW - rightWidth) + roll.x
124
- : mL + leftWidth + roll.x - w / 2;
133
+ : mL + roll.x + w / 2;
125
134
  topY = mT + roll.y;
126
135
  break;
127
136
  }
@@ -138,6 +147,7 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
138
147
  topLeftX: btnTopLeftX,
139
148
  topLeftY: btnTopLeftY,
140
149
  onTop: inp.onTop ?? false,
150
+ turn: artTurn,
141
151
  });
142
152
  // imageDown: pressed state PDF at the same position as the normal button
143
153
  let pressed = null;
@@ -145,9 +155,10 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
145
155
  const downPath = join(resourcesDir, `${inp.imageDown}.pdf`);
146
156
  if (existsSync(downPath)) {
147
157
  try {
148
- const downSize = await getSipsSize(ctx, downPath);
158
+ const downSize = turned(await getSipsSize(ctx, downPath));
149
159
  pressed = {
150
160
  pdfPath: downPath,
161
+ turn: artTurn,
151
162
  topLeftX: btnTopLeftX,
152
163
  topLeftY: btnTopLeftY,
153
164
  pdfW: downSize.width,
@@ -182,7 +193,7 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
182
193
  const align = inp.align ?? 'leading';
183
194
  normalCX = align === 'center' ? mL + compositeW / 2 + nx
184
195
  : align === 'trailing' ? mL + (compositeW - rightWidth) + nx
185
- : mL + leftWidth + nx - w / 2;
196
+ : mL + nx + w / 2;
186
197
  normalCY = mT + ny - h / 2;
187
198
  break;
188
199
  }
@@ -218,22 +229,24 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
218
229
  // ---------------------------------------------------------------------------
219
230
  // Single PDF → PNG at 2× (used for pressed-state button images)
220
231
  // ---------------------------------------------------------------------------
221
- function renderPdfToPng(ctx, pdfPath, outPath) {
232
+ function renderPdfToPng(ctx, pdfPath, outPath, turn = 0) {
222
233
  const SCRIPT = `
223
234
  import Foundation
224
235
  import CoreGraphics
225
236
  import ImageIO
226
237
 
227
238
  let src = CommandLine.arguments[1]
228
- let dst = CommandLine.arguments[2]
239
+ let turn = Int(CommandLine.arguments[2]) ?? 0
240
+ let dst = CommandLine.arguments[3]
229
241
  let scale: CGFloat = 2
230
242
 
231
243
  guard let doc = CGPDFDocument(URL(fileURLWithPath: src) as CFURL),
232
244
  let page = doc.page(at: 1) else { exit(1) }
233
245
 
234
246
  let box = page.getBoxRect(.mediaBox)
235
- let w = max(1, Int(ceil(box.width * scale)))
236
- let h = max(1, Int(ceil(box.height * scale)))
247
+ let quarter = turn == 90 || turn == 270
248
+ let w = max(1, Int(ceil((quarter ? box.height : box.width) * scale)))
249
+ let h = max(1, Int(ceil((quarter ? box.width : box.height) * scale)))
237
250
 
238
251
  let ctx = CGContext(
239
252
  data: nil, width: w, height: h,
@@ -242,6 +255,13 @@ let ctx = CGContext(
242
255
  bitmapInfo: CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue).rawValue
243
256
  )!
244
257
  ctx.scaleBy(x: scale, y: scale)
258
+ // Clockwise as the picture is seen. CoreGraphics' y axis points up, so a positive angle turns it counterclockwise.
259
+ switch turn {
260
+ case 90: ctx.translateBy(x: 0, y: box.width); ctx.rotate(by: -.pi / 2)
261
+ case 180: ctx.translateBy(x: box.width, y: box.height); ctx.rotate(by: .pi)
262
+ case 270: ctx.translateBy(x: box.height, y: 0); ctx.rotate(by: .pi / 2)
263
+ default: break
264
+ }
245
265
  ctx.drawPDFPage(page)
246
266
 
247
267
  let img = ctx.makeImage()!
@@ -249,7 +269,7 @@ let dest = CGImageDestinationCreateWithURL(URL(fileURLWithPath: dst) as CFURL, "
249
269
  CGImageDestinationAddImage(dest, img, nil)
250
270
  CGImageDestinationFinalize(dest)
251
271
  `;
252
- return renderSwift(ctx, SCRIPT, [pdfPath], outPath);
272
+ return renderSwift(ctx, SCRIPT, [pdfPath, String(turn)], outPath);
253
273
  }
254
274
  // ---------------------------------------------------------------------------
255
275
  // Frame PNG rendering — composite PDF path
@@ -509,6 +529,53 @@ export function screenSizeFromDeviceType(profile, capabilities) {
509
529
  }
510
530
  return null;
511
531
  }
532
+ // Xcode 27 states per display what a multi-panel device needs and the frame does not: each corner's radius,
533
+ // and the orientation the panel is natively drawn in. Matched on `chromeIdentifier`, the same id
534
+ // `simctl io enumerate` reports for the panel. An orientation that is not a quarter turn reads as none, which
535
+ // is what every frame was drawn with before this.
536
+ export function panelDisplayFromCapabilities(capabilities, chromeId) {
537
+ const displays = capabilities?.capabilities?.displays;
538
+ if (!Array.isArray(displays))
539
+ return null;
540
+ const display = displays.find((d) => d?.chromeIdentifier === chromeId);
541
+ if (!display)
542
+ return null;
543
+ const turn = display.nativeOrientation;
544
+ const artTurn = turn === 90 || turn === 180 || turn === 270 ? turn : 0;
545
+ const corner = (key) => typeof display[key] === 'number' && display[key] >= 0 ? display[key] : null;
546
+ const [topLeft, topRight, bottomRight, bottomLeft] = ['cornerRadiusUL', 'cornerRadiusUR', 'cornerRadiusLR', 'cornerRadiusLL'].map(corner);
547
+ const cornerRadii = topLeft !== null && topRight !== null && bottomRight !== null && bottomLeft !== null
548
+ ? { topLeft, topRight, bottomRight, bottomLeft }
549
+ : null;
550
+ return { artTurn, cornerRadii };
551
+ }
552
+ async function loadPanelDisplay(ctx, profilesDir, name, chromeId) {
553
+ try {
554
+ if (!name)
555
+ return null;
556
+ const path = join(profilesDir, `${name}.simdevicetype`, 'Contents', 'Resources', 'capabilities.plist');
557
+ return existsSync(path) ? panelDisplayFromCapabilities(await readPlistAsJson(ctx, path), chromeId) : null;
558
+ }
559
+ catch {
560
+ return null;
561
+ }
562
+ }
563
+ /**
564
+ * The screen's corner fields. With the panel's own corners known they win over the frame's outline less its
565
+ * bezel, which holds for an ordinary iPhone (phone11: 80 − 18 = 62, its stated 62) and not for the Duo
566
+ * (phone14: 100 − 17 = 83 against 55; phone15: one 54 against 8 at the hinge and 59 outside). The stated
567
+ * points are scaled into the frame's space, which on phone14 is 626 wide for a 669 pt screen.
568
+ */
569
+ function cornerFields(display, fromFrame1x, framePerPoint, scale) {
570
+ const stated = display?.cornerRadii;
571
+ if (!stated)
572
+ return { screenCornerRadius: Math.round(fromFrame1x * scale) };
573
+ const px = (r) => Math.round(r * framePerPoint * scale);
574
+ const radii = { topLeft: px(stated.topLeft), topRight: px(stated.topRight), bottomRight: px(stated.bottomRight), bottomLeft: px(stated.bottomLeft) };
575
+ const largest = Math.max(radii.topLeft, radii.topRight, radii.bottomRight, radii.bottomLeft);
576
+ const uniform = Object.values(radii).every((r) => r === largest);
577
+ return uniform ? { screenCornerRadius: largest } : { screenCornerRadius: largest, screenCornerRadii: radii };
578
+ }
512
579
  async function loadProfileScreenSize(ctx, profilesDir, name) {
513
580
  try {
514
581
  if (!name)
@@ -531,12 +598,12 @@ async function attachButtonPngs(ctx, buttons, drawData, chromeName) {
531
598
  for (let i = 0; i < buttons.length; i++) {
532
599
  if (i >= drawData.length)
533
600
  continue;
534
- const pdfPath = drawData[i].pdfPath;
535
- const cacheKey = `tapflow-btn-normal-${chromeName}-${i}.png`;
601
+ const { pdfPath, turn } = drawData[i];
602
+ const cacheKey = `tapflow-btn-normal-${chromeName}-${i}${turn ? `-t${turn}` : ''}.png`;
536
603
  const outPath = join(ctx.cacheDir, cacheKey);
537
604
  try {
538
605
  if (!existsSync(outPath) || statSync(pdfPath).mtimeMs > statSync(outPath).mtimeMs) {
539
- await renderPdfToPng(ctx, pdfPath, outPath);
606
+ await renderPdfToPng(ctx, pdfPath, outPath, turn);
540
607
  }
541
608
  buttons[i].buttonPng = readFileSync(outPath).toString('base64');
542
609
  }
@@ -553,11 +620,11 @@ async function attachPressedPngs(ctx, buttons, pressedData, chromeName, scale) {
553
620
  const pd = pressedData[i];
554
621
  if (!pd)
555
622
  continue;
556
- const cacheKey = `tapflow-btn-pressed-${chromeName}-${i}.png`;
623
+ const cacheKey = `tapflow-btn-pressed-${chromeName}-${i}${pd.turn ? `-t${pd.turn}` : ''}.png`;
557
624
  const outPath = join(ctx.cacheDir, cacheKey);
558
625
  try {
559
626
  if (!existsSync(outPath) || statSync(pd.pdfPath).mtimeMs > statSync(outPath).mtimeMs) {
560
- await renderPdfToPng(ctx, pd.pdfPath, outPath);
627
+ await renderPdfToPng(ctx, pd.pdfPath, outPath, pd.turn);
561
628
  }
562
629
  buttons[i].pressedPng = readFileSync(outPath).toString('base64');
563
630
  buttons[i].pressedRect = {
@@ -593,21 +660,28 @@ export class DeviceChromeLoader {
593
660
  this.cacheDir = options.cacheDir ?? tmpdir();
594
661
  this.loadBudgetMs = options.loadBudgetMs ?? LOAD_BUDGET_MS;
595
662
  }
596
- load(typeIdentifier) {
597
- const pending = this.loads.get(typeIdentifier);
663
+ /**
664
+ * `panel` picks one panel of a multi-panel device (iPhone Duo): its own DeviceKit frame and its size in
665
+ * points, from `simctl io enumerate`. Without it the frame is the device model's, which is the only one
666
+ * every other device has.
667
+ */
668
+ load(typeIdentifier, panel) {
669
+ // Keyed by the panel's frame too: the Duo's two panels are two chromes of one device type.
670
+ const key = panel ? `${typeIdentifier}#${panel.chromeId}` : typeIdentifier;
671
+ const pending = this.loads.get(key);
598
672
  if (pending)
599
673
  return pending;
600
674
  const budget = new AbortController();
601
675
  const timer = setTimeout(() => budget.abort(), this.loadBudgetMs);
602
676
  timer.unref?.();
603
677
  const ctx = { run: this.run, signal: budget.signal, cacheDir: this.cacheDir, incomplete: false };
604
- const loading = this.loadUncached(typeIdentifier, ctx).catch(() => null).finally(() => clearTimeout(timer));
605
- this.loads.set(typeIdentifier, loading);
678
+ const loading = this.loadUncached(typeIdentifier, ctx, panel).catch(() => null).finally(() => clearTimeout(timer));
679
+ this.loads.set(key, loading);
606
680
  // A load that skipped a button still gives this boot a device, but is not kept: the budget usually runs
607
681
  // out in the button renders, and remembering that result would hide those buttons until a restart. What
608
682
  // did render is on disk, so the next boot picks up where this one stopped.
609
683
  void loading.then((chrome) => { if (!chrome || ctx.incomplete)
610
- this.loads.delete(typeIdentifier); });
684
+ this.loads.delete(key); });
611
685
  return loading;
612
686
  }
613
687
  /** Once per process when it succeeds: it used to run twice on every boot. */
@@ -619,18 +693,24 @@ export class DeviceChromeLoader {
619
693
  this.deviceTypes = types;
620
694
  return types;
621
695
  }
622
- async loadUncached(typeIdentifier, ctx) {
696
+ async loadUncached(typeIdentifier, ctx, panel) {
623
697
  try {
624
698
  const types = await this.listDeviceTypes(ctx);
625
699
  const typeInfo = types.find(t => t.identifier === typeIdentifier);
626
- const modelId = typeInfo?.modelIdentifier;
627
- if (!modelId)
628
- return null;
629
- const chromeMap = await readPlistAsJson(ctx, this.chromeMapPath);
630
- const entry = chromeMap[modelId];
631
- if (!entry)
632
- return null;
633
- const chromeName = entry.ChromeIdentifier.split('.').pop();
700
+ let chromeIdentifier = panel?.chromeId;
701
+ if (!chromeIdentifier) {
702
+ const modelId = typeInfo?.modelIdentifier;
703
+ if (!modelId)
704
+ return null;
705
+ const chromeMap = await readPlistAsJson(ctx, this.chromeMapPath);
706
+ const entry = chromeMap[modelId];
707
+ if (!entry)
708
+ return null;
709
+ chromeIdentifier = entry.ChromeIdentifier;
710
+ }
711
+ const chromeName = chromeIdentifier.split('.').pop();
712
+ // Only a panel load asks: a single-panel device keeps the frame-derived corners it always had.
713
+ const display = panel ? await loadPanelDisplay(ctx, this.profilesDir, typeInfo?.name, panel.chromeId) : null;
634
714
  const resourcesDir = join(this.chromeDir, `${chromeName}.devicechrome`, 'Contents', 'Resources');
635
715
  const chromeJsonPath = join(resourcesDir, 'chrome.json');
636
716
  if (!existsSync(chromeJsonPath))
@@ -656,7 +736,7 @@ export class DeviceChromeLoader {
656
736
  const screenH = pdfSize.height - topHeight - bottomHeight;
657
737
  const bezelInset = Math.max(leftWidth, topHeight);
658
738
  const screenCornerRadius1x = Math.max(0, outerRadius - bezelInset);
659
- const { margins: btnM, drawData, buttons, pressedData } = await computeButtonLayout(ctx, rawInputs, resourcesDir, pdfSize.width, pdfSize.height, scale, leftWidth, rightWidth);
739
+ const { margins: btnM, drawData, buttons, pressedData } = await computeButtonLayout(ctx, rawInputs, resourcesDir, pdfSize.width, pdfSize.height, scale, rightWidth, display?.artTurn);
660
740
  const expandedW = pdfSize.width + btnM.left + btnM.right;
661
741
  const expandedH = pdfSize.height + btnM.top + btnM.bottom;
662
742
  // v3: buttons excluded from framePng — rendered separately as CSS-animated overlays.
@@ -687,7 +767,7 @@ export class DeviceChromeLoader {
687
767
  bottom: Math.round(paddingBottom * scale),
688
768
  },
689
769
  screenRect,
690
- screenCornerRadius: Math.round(screenCornerRadius1x * scale),
770
+ ...cornerFields(display, screenCornerRadius1x, panel ? screenW / panel.width : 1, scale),
691
771
  logicalWidth: Math.round(screenW),
692
772
  logicalHeight: Math.round(screenH),
693
773
  buttons,
@@ -724,7 +804,8 @@ export class DeviceChromeLoader {
724
804
  const cornerW = cornerSize.width;
725
805
  const cornerH = cornerSize.height; // should equal topHeight from sizing
726
806
  // Get logical screen dimensions from the device type's plists
727
- const screenSize = await loadProfileScreenSize(ctx, this.profilesDir, typeInfo?.name);
807
+ // A panel brings its own size: the device type's plists describe one panel, and on the Duo the cover.
808
+ const screenSize = panel ? { width: panel.width, height: panel.height } : await loadProfileScreenSize(ctx, this.profilesDir, typeInfo?.name);
728
809
  if (!screenSize)
729
810
  return null;
730
811
  const screenW = screenSize.width;
@@ -734,7 +815,7 @@ export class DeviceChromeLoader {
734
815
  const compositeH = topHeight + screenH + bottomHeight;
735
816
  const bezelInset = Math.max(leftWidth, topHeight);
736
817
  const screenCornerRadius1x = Math.max(0, outerRadius - bezelInset);
737
- const { margins: btnM, drawData, buttons, pressedData } = await computeButtonLayout(ctx, rawInputs, resourcesDir, compositeW, compositeH, scale, leftWidth, rightWidth);
818
+ const { margins: btnM, drawData, buttons, pressedData } = await computeButtonLayout(ctx, rawInputs, resourcesDir, compositeW, compositeH, scale, rightWidth, display?.artTurn);
738
819
  const expandedW = compositeW + btnM.left + btnM.right;
739
820
  const expandedH = compositeH + btnM.top + btnM.bottom;
740
821
  // nb = no-buttons: buttons excluded from framePng, rendered separately as CSS-animated overlays
@@ -766,7 +847,7 @@ export class DeviceChromeLoader {
766
847
  bottom: Math.round(paddingBottom * scale),
767
848
  },
768
849
  screenRect,
769
- screenCornerRadius: Math.round(screenCornerRadius1x * scale),
850
+ ...cornerFields(display, screenCornerRadius1x, 1, scale),
770
851
  logicalWidth: screenW,
771
852
  logicalHeight: screenH,
772
853
  buttons,
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceChromeLoader.js","sourceRoot":"","sources":["../src/DeviceChromeLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeviceChromeLoader.js","sourceRoot":"","sources":["../src/DeviceChromeLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { type InputChannel } from './InputChannel.js';
2
+ import type { GuestHelper } from './GuestHelper.js';
3
+ /**
4
+ * A gesture that starts within this fraction of any screen edge carries `FromEdgeTip`, which is what makes
5
+ * SpringBoard treat a swipe as a system gesture (home, app switcher). Measured on the Duo's cover: a home
6
+ * flick works from 7% of the bottom edge and not from 12%, because the system checks the start point
7
+ * itself — so the flag on a touch it does not consider an edge changes nothing, and a tap that carries it
8
+ * stays a tap. The threshold can therefore be generous. It is the same for all four edges, which also makes
9
+ * it independent of how the panel's UI is rotated inside its buffer.
10
+ */
11
+ export declare const EDGE_FRACTION = 0.08;
12
+ export interface FoldableInputDeps {
13
+ /** The device's guest helper, owned by IOSAgent outside `DeviceState`, or null if there is none. */
14
+ guest: () => GuestHelper | null;
15
+ /** The display UUID of the panel the device is showing, or null when it is not known yet. */
16
+ litScreen: () => string | null;
17
+ minContactMs?: number;
18
+ }
19
+ /**
20
+ * `InputChannel` for a device with more than one integrated panel, through `guest-helper` inside the
21
+ * simulator. Coordinates arrive normalized to the lit panel's framebuffer — the same space TouchHelper
22
+ * gets — and go to that panel's virtual touchscreen as they are: measured on the unfolded panel, whose UI
23
+ * is turned inside a portrait buffer, buffer coordinates land where they point.
24
+ */
25
+ export declare class FoldableInput implements InputChannel {
26
+ private readonly deps;
27
+ private gesture;
28
+ private touchStartedAt;
29
+ private stopped;
30
+ private heldEnd;
31
+ constructor(deps: FoldableInputDeps);
32
+ start(): void;
33
+ stop(): void;
34
+ inputState(): 'ready' | 'starting' | 'unavailable';
35
+ ownsGesture(): boolean;
36
+ touchStart(x: number, y: number): boolean;
37
+ touchMove(x: number, y: number): boolean;
38
+ touchEnd(): boolean;
39
+ /** TouchHelper's minimum contact, for the same reason (a client sends down and up back to back). */
40
+ touchEndAfterMinContact(): Promise<boolean>;
41
+ pinchStart(x1: number, y1: number, x2: number, y2: number): boolean;
42
+ pinchMove(x1: number, y1: number, x2: number, y2: number): boolean;
43
+ pinchEnd(): boolean;
44
+ sendKey(usage: number, modifiers?: number): boolean;
45
+ pressButton(usagePage: number, usage: number): boolean;
46
+ pressButtonDown(usagePage: number, usage: number): boolean;
47
+ pressButtonUp(usagePage: number, usage: number): boolean;
48
+ pressLegacyButton(code: number): boolean;
49
+ /** The panel a new gesture goes to, fixed for the gesture: a fold mid-drag finishes the drag where it began. */
50
+ private open;
51
+ /**
52
+ * A key or button, acked on the write like TouchHelper's: the helper plays it and answers later, and
53
+ * waiting on that would change what an ack means. A refusal it reports afterwards is logged.
54
+ */
55
+ private fire;
56
+ private releaseHeldEnd;
57
+ }
58
+ //# sourceMappingURL=FoldableInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FoldableInput.d.ts","sourceRoot":"","sources":["../src/FoldableInput.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAInD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,OAAO,CAAA;AAiBjC,MAAM,WAAW,iBAAiB;IAChC,oGAAoG;IACpG,KAAK,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IAC/B,6FAA6F;IAC7F,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,YAAY;IAMpC,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAA0F;gBAE5E,IAAI,EAAE,iBAAiB;IAEpD,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAMZ,UAAU,IAAI,OAAO,GAAG,UAAU,GAAG,aAAa;IAQlD,WAAW,IAAI,OAAO;IAItB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAOzC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAOxC,QAAQ,IAAI,OAAO;IAOnB,oGAAoG;IACpG,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;IAa3C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAOnE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAOlE,QAAQ,IAAI,OAAO;IAQnB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,OAAO;IAO9C,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAItD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAI1D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAIxD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKxC,gHAAgH;IAChH,OAAO,CAAC,IAAI;IASZ;;;OAGG;IACH,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,cAAc;CAOvB"}