peachsim 0.1.835 → 0.1.837

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 (80) hide show
  1. package/cli/commands/project-report.ts +4 -1
  2. package/cli/desktop-companion.ts +2 -0
  3. package/detox/index.ts +54 -30
  4. package/dist-lib/agent-daemon-client.cjs +1 -1
  5. package/dist-lib/agent-events.cjs +1 -1
  6. package/dist-lib/agent-identity.cjs +1 -1
  7. package/dist-lib/agent-sessions.cjs +1 -1
  8. package/dist-lib/attached-projects.cjs +1 -1
  9. package/dist-lib/auth/shared-session.cjs +1 -1
  10. package/dist-lib/backend-origin.cjs +1 -1
  11. package/dist-lib/beta.cjs +1 -1
  12. package/dist-lib/beta.mjs +1 -1
  13. package/dist-lib/bridge-constants.cjs +1 -1
  14. package/dist-lib/bridge-contract-input.cjs +1 -1
  15. package/dist-lib/bridge-contract-input.mjs +1 -1
  16. package/dist-lib/bridge-contract.cjs +1 -1
  17. package/dist-lib/bridge-contract.mjs +1 -1
  18. package/dist-lib/bundle-channel.cjs +1 -1
  19. package/dist-lib/capture-contract.cjs +1 -1
  20. package/dist-lib/capture-contract.mjs +1 -1
  21. package/dist-lib/cli-constants.cjs +1 -1
  22. package/dist-lib/cloud-contract.cjs +1 -1
  23. package/dist-lib/cloud-contract.mjs +1 -1
  24. package/dist-lib/cloud-test-args.cjs +1 -1
  25. package/dist-lib/cloud-test-args.mjs +1 -1
  26. package/dist-lib/cloud.cjs +1 -1
  27. package/dist-lib/cloud.mjs +1 -1
  28. package/dist-lib/config.cjs +1 -1
  29. package/dist-lib/detox/index.cjs +48 -29
  30. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  31. package/dist-lib/expo-swift-bundle.cjs +1 -1
  32. package/dist-lib/expo-swift-metadata.cjs +1 -1
  33. package/dist-lib/expo-swift-metadata.mjs +1 -1
  34. package/dist-lib/home-paths.cjs +1 -1
  35. package/dist-lib/host/bridge-host.cjs +1 -1
  36. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  37. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  38. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  39. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  40. package/dist-lib/host/websocket-proxy.cjs +1 -1
  41. package/dist-lib/index.cjs +1 -1
  42. package/dist-lib/jump-to-source-babel.cjs +1 -1
  43. package/dist-lib/jump-to-source-native.cjs +1 -1
  44. package/dist-lib/kotlin-host.cjs +1 -1
  45. package/dist-lib/menu.cjs +1 -1
  46. package/dist-lib/menu.mjs +1 -1
  47. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  48. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  49. package/dist-lib/metro-production-bundle.cjs +1 -1
  50. package/dist-lib/metro-production-bundle.mjs +1 -1
  51. package/dist-lib/metro.cjs +1 -1
  52. package/dist-lib/native-app-identity.cjs +1 -1
  53. package/dist-lib/native-app-identity.mjs +1 -1
  54. package/dist-lib/native-firebase-metadata.cjs +1 -1
  55. package/dist-lib/native-firebase-metadata.mjs +1 -1
  56. package/dist-lib/plist.cjs +1 -1
  57. package/dist-lib/plist.mjs +1 -1
  58. package/dist-lib/profiles.cjs +1 -1
  59. package/dist-lib/public-brand.cjs +1 -1
  60. package/dist-lib/react-native-host-modules.cjs +1 -1
  61. package/dist-lib/react-native-host-modules.mjs +1 -1
  62. package/dist-lib/render-mode.cjs +1 -1
  63. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  64. package/dist-lib/sdk.cjs +1 -1
  65. package/dist-lib/sdk.mjs +1 -1
  66. package/dist-lib/skills.cjs +1 -1
  67. package/dist-lib/swift-compile.cjs +1 -1
  68. package/dist-lib/swift-compile.mjs +1 -1
  69. package/dist-lib/swift-package.cjs +1 -1
  70. package/dist-lib/swift-package.mjs +1 -1
  71. package/dist-lib/swift-submit.cjs +1 -1
  72. package/dist-lib/swift-submit.mjs +1 -1
  73. package/dist-lib/swift-toolchain.cjs +1 -1
  74. package/dist-lib/swift.cjs +1 -1
  75. package/dist-lib/vite-swift.cjs +1 -1
  76. package/dist-lib/vite.cjs +1 -1
  77. package/dist-lib/worklet-executable.cjs +1 -1
  78. package/dist-lib/worklet-executable.mjs +1 -1
  79. package/package.json +1 -1
  80. package/src/desktop-host-delivery.ts +3 -0
@@ -304,7 +304,10 @@ export function createProjectReport(
304
304
  os: `${process.platform} ${release()}`,
305
305
  arch: process.arch,
306
306
  xcode:
307
- process.platform === 'darwin' ? toolVersion('xcodebuild', ['-version']) : null,
307
+ process.platform === 'darwin'
308
+ ? // runner-toolchain-platform: darwin
309
+ toolVersion('xcodebuild', ['-version'])
310
+ : null,
308
311
  node: toolVersion('node'),
309
312
  bun: toolVersion('bun'),
310
313
  peachCli: sanitizeProjectReportVersion(getCliVersion()),
@@ -136,6 +136,7 @@ function findMacApp(): DesktopCompanionInstall | null {
136
136
  }
137
137
 
138
138
  try {
139
+ // runner-toolchain-platform: darwin
139
140
  const result = execFileSync(
140
141
  'mdfind',
141
142
  [`kMDItemCFBundleIdentifier == "${PEACH_BUNDLE_ID}"`],
@@ -222,6 +223,7 @@ function findLinuxInstall(): DesktopCompanionInstall | null {
222
223
  function findWindowsInstall(): DesktopCompanionInstall | null {
223
224
  for (const hive of ['HKCU', 'HKLM']) {
224
225
  try {
226
+ // runner-toolchain-platform: win32
225
227
  const output = execFileSync(
226
228
  'reg',
227
229
  ['query', `${hive}\\Software\\Classes\\peach\\shell\\open\\command`, '/ve'],
package/detox/index.ts CHANGED
@@ -59,10 +59,10 @@ export type { SootSimElement } from './element-types'
59
59
 
60
60
  declare global {
61
61
  interface Window {
62
- // installed by takeScreenshotStagesFast; each input action calls it just
63
- // before handing its input to the engine so an input-anchored capture
64
- // starts its stage clock at that dispatch
65
- __sootsimAnchorTimedInput?: () => void
62
+ // installed by takeScreenshotStagesFast; each input action calls it with
63
+ // its capture token after successfully handing its input to the engine so
64
+ // only that capture's stages anchor at that dispatch.
65
+ __sootsimAnchorTimedInput?: (token: string) => void
66
66
  }
67
67
  }
68
68
 
@@ -749,22 +749,30 @@ async function getDefaultTapPoint(
749
749
  }
750
750
  }
751
751
 
752
- async function dispatchTapAtSootsimPoint(page: Page, x: number, y: number) {
752
+ async function dispatchTapAtSootsimPoint(
753
+ page: Page,
754
+ x: number,
755
+ y: number,
756
+ token?: string,
757
+ ) {
753
758
  await page.evaluate(
754
- async ({ x, y }) => {
759
+ async ({ x, y, token }) => {
755
760
  const interactTap = window.SootSim?.bridges?.interact?.tap
756
- window.__sootsimAnchorTimedInput?.()
757
761
  if (typeof interactTap === 'function') {
758
762
  const result = await interactTap(x, y)
759
- if (result && (typeof result !== 'object' || result.hit !== false)) return
763
+ if (result && (typeof result !== 'object' || result.hit !== false)) {
764
+ if (token) window.__sootsimAnchorTimedInput?.(token)
765
+ return
766
+ }
760
767
  }
761
768
  const tap = window.__sootsimTest?.tap
762
769
  if (typeof tap !== 'function') {
763
770
  throw new Error('sootsim tap bridge is not installed')
764
771
  }
765
772
  await tap(x, y)
773
+ if (token) window.__sootsimAnchorTimedInput?.(token)
766
774
  },
767
- { x, y },
775
+ { x, y, token },
768
776
  )
769
777
  }
770
778
 
@@ -1109,7 +1117,8 @@ function createSootSimElement(matcher: Matcher): SootSimElement {
1109
1117
  typeof point?.y === 'number'
1110
1118
  ? node.absolutePosition.y + point.y
1111
1119
  : (defaultPoint?.y ?? node.absolutePosition.y + node.layout.height / 2)
1112
- await dispatchTapAtSootsimPoint(page, targetSootSimX, targetSootSimY)
1120
+ const captureToken = (page as any).__sootsimCaptureToken
1121
+ await dispatchTapAtSootsimPoint(page, targetSootSimX, targetSootSimY, captureToken)
1113
1122
  if (_synchronizationEnabled) {
1114
1123
  await waitForSootsimIdle(page)
1115
1124
  }
@@ -1168,16 +1177,17 @@ function createSootSimElement(matcher: Matcher): SootSimElement {
1168
1177
  y: node.absolutePosition.y + pointOrDuration.y,
1169
1178
  }
1170
1179
  : getNodeCenter(node)
1180
+ const captureToken = (page as any).__sootsimCaptureToken
1171
1181
  await page.evaluate(
1172
- async ({ duration, x, y }) => {
1182
+ async ({ duration, x, y, token }) => {
1173
1183
  const longPress = window.SootSim?.bridges?.interact?.longPress
1174
1184
  if (typeof longPress !== 'function') {
1175
1185
  throw new Error('sootsim longPress bridge is not installed')
1176
1186
  }
1177
- window.__sootsimAnchorTimedInput?.()
1178
1187
  await longPress(x, y, duration)
1188
+ if (token) window.__sootsimAnchorTimedInput?.(token)
1179
1189
  },
1180
- { duration, x: target.x, y: target.y },
1190
+ { duration, x: target.x, y: target.y, token: captureToken },
1181
1191
  )
1182
1192
  await page.waitForTimeout(50)
1183
1193
  },
@@ -1437,8 +1447,9 @@ function createSootSimElement(matcher: Matcher): SootSimElement {
1437
1447
  const steps = speed === 'slow' ? 40 : 20
1438
1448
  const stepDelay = 1000 / 60
1439
1449
 
1450
+ const captureToken = (page as any).__sootsimCaptureToken
1440
1451
  await page.evaluate(
1441
- async ({ fromX, fromY, toX, toY, steps, stepMs }) => {
1452
+ async ({ fromX, fromY, toX, toY, steps, stepMs, token }) => {
1442
1453
  // the interact bridge, not __sootsimTest.drag. the test bridge's drag
1443
1454
  // runs the whole down/move/up loop through the tenant's own
1444
1455
  // dispatchPointer and never fans to the shell, where gesture-handler's
@@ -1451,8 +1462,8 @@ function createSootSimElement(matcher: Matcher): SootSimElement {
1451
1462
  if (typeof drag !== 'function') {
1452
1463
  throw new Error('sootsim interact bridge is not installed')
1453
1464
  }
1454
- window.__sootsimAnchorTimedInput?.()
1455
1465
  await drag(fromX, fromY, toX, toY, steps, stepMs)
1466
+ if (token) window.__sootsimAnchorTimedInput?.(token)
1456
1467
  },
1457
1468
  {
1458
1469
  fromX: startSootSimX,
@@ -1461,6 +1472,7 @@ function createSootSimElement(matcher: Matcher): SootSimElement {
1461
1472
  toY: endSootSimY,
1462
1473
  steps,
1463
1474
  stepMs: stepDelay,
1475
+ token: captureToken,
1464
1476
  },
1465
1477
  )
1466
1478
  await page.waitForTimeout(100)
@@ -1538,10 +1550,12 @@ function createSootSimElement(matcher: Matcher): SootSimElement {
1538
1550
  `setColumnToValue(${column}, ${JSON.stringify(value)}) could not resolve its picker row`,
1539
1551
  )
1540
1552
  }
1553
+ const captureToken = (page as any).__sootsimCaptureToken
1541
1554
  await dispatchTapAtSootsimPoint(
1542
1555
  page,
1543
1556
  tapTarget.target.absolutePosition.x + tapTarget.target.layout.width / 2,
1544
1557
  tapTarget.target.absolutePosition.y + tapTarget.target.layout.height / 2,
1558
+ captureToken,
1545
1559
  )
1546
1560
  },
1547
1561
 
@@ -2937,15 +2951,15 @@ export const device = {
2937
2951
  ready: false,
2938
2952
  }
2939
2953
  registry[input.token] = state
2940
- window.__sootsimAnchorTimedInput = () => {
2954
+ window.__sootsimAnchorTimedInput = (token: string) => {
2955
+ const capture = registry[token]
2956
+ if (!capture) return
2957
+ if (!capture.anchorOnInput || !capture.ready) return
2958
+ if (capture.anchorPerformanceMs !== null) return
2941
2959
  const anchorPerformanceMs = performance.now()
2942
2960
  const anchorWallMs = Date.now()
2943
- for (const capture of Object.values(registry)) {
2944
- if (!capture.anchorOnInput || !capture.ready) continue
2945
- if (capture.anchorPerformanceMs !== null) continue
2946
- capture.anchorPerformanceMs = anchorPerformanceMs
2947
- capture.anchorWallMs = anchorWallMs
2948
- }
2961
+ capture.anchorPerformanceMs = anchorPerformanceMs
2962
+ capture.anchorWallMs = anchorWallMs
2949
2963
  }
2950
2964
  // initial warm-up: ensure the worker has produced at least one
2951
2965
  // frame after the menu's portal mount before we start sampling.
@@ -3110,7 +3124,12 @@ export const device = {
3110
3124
  let captureAnchorMs: number
3111
3125
  if (anchorOnInput) {
3112
3126
  triggerStartMs = Date.now()
3113
- await Promise.resolve(options.trigger())
3127
+ ;(page as any).__sootsimCaptureToken = token
3128
+ try {
3129
+ await Promise.resolve(options.trigger())
3130
+ } finally {
3131
+ delete (page as any).__sootsimCaptureToken
3132
+ }
3114
3133
  triggerCompletedMs = Date.now()
3115
3134
  // the capture deletes its entry once every stage is sampled, which
3116
3135
  // can precede a long trigger's return; only a live entry can be unanchored
@@ -3309,21 +3328,25 @@ export const device = {
3309
3328
  if (point == null || typeof point === 'boolean') return
3310
3329
  const page = getPage()
3311
3330
  const { x, y } = point
3331
+ const captureToken = (page as any).__sootsimCaptureToken
3312
3332
  await page.evaluate(
3313
- async ({ x: tx, y: ty }) => {
3333
+ async ({ x: tx, y: ty, token }) => {
3314
3334
  const interactTap = window.SootSim?.bridges?.interact?.tap
3315
- window.__sootsimAnchorTimedInput?.()
3316
3335
  if (typeof interactTap === 'function') {
3317
3336
  const result = await interactTap(tx, ty)
3318
- if (result && (typeof result !== 'object' || result.hit !== false)) return
3337
+ if (result && (typeof result !== 'object' || result.hit !== false)) {
3338
+ if (token) window.__sootsimAnchorTimedInput?.(token)
3339
+ return
3340
+ }
3319
3341
  }
3320
3342
  const tap = window.__sootsimTest?.tap
3321
3343
  if (typeof tap !== 'function') {
3322
3344
  throw new Error('sootsim tap bridge is not installed')
3323
3345
  }
3324
3346
  await tap(tx, ty)
3347
+ if (token) window.__sootsimAnchorTimedInput?.(token)
3325
3348
  },
3326
- { x, y },
3349
+ { x, y, token: captureToken },
3327
3350
  )
3328
3351
  await page.waitForTimeout(50)
3329
3352
  if (_synchronizationEnabled) {
@@ -3336,19 +3359,20 @@ export const device = {
3336
3359
  async longPress(point: { x: number; y: number }, durationMs = 1000) {
3337
3360
  const page = getPage()
3338
3361
  const { x, y } = point
3362
+ const captureToken = (page as any).__sootsimCaptureToken
3339
3363
  await page.evaluate(
3340
- async ({ x: px, y: py, ms }) => {
3364
+ async ({ x: px, y: py, ms, token }) => {
3341
3365
  const longPress = window.SootSim?.bridges?.interact?.longPress
3342
3366
  if (typeof longPress !== 'function') {
3343
3367
  throw new Error('sootsim longPress bridge is not installed')
3344
3368
  }
3345
- window.__sootsimAnchorTimedInput?.()
3346
3369
  const hit = await longPress(px, py, ms)
3347
3370
  if (!hit) {
3348
3371
  throw new Error(`sootsim longPress missed at ${px},${py}`)
3349
3372
  }
3373
+ if (token) window.__sootsimAnchorTimedInput?.(token)
3350
3374
  },
3351
- { x, y, ms: durationMs },
3375
+ { x, y, ms: durationMs, token: captureToken },
3352
3376
  )
3353
3377
  await page.waitForTimeout(50)
3354
3378
  if (_synchronizationEnabled) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/beta.ts
4
4
  var IS_BETA = true;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var SIM_LONG_PRESS_MAX_MS = 5e3;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var REFUSED_PERFORM_STEP_TYPES = [
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/capture-contract.ts
4
4
  var RNX_SCREEN_CAPTURE_VERSION = 1;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/cloud-contract.ts
4
4
  var RNX_CLOUD_MAX_ARTIFACT_BYTES = 20 * 1024 * 1024;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/cloud-test-args.ts
4
4
  var CLOUD_TEST_ARGS_MAX_COUNT = 32;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -8485,22 +8485,25 @@ async function getDefaultTapPoint(page, nodeInfo) {
8485
8485
  y: top + (bottom - top) / 2
8486
8486
  };
8487
8487
  }
8488
- async function dispatchTapAtSootsimPoint(page, x, y) {
8488
+ async function dispatchTapAtSootsimPoint(page, x, y, token) {
8489
8489
  await page.evaluate(
8490
- async ({ x: x2, y: y2 }) => {
8490
+ async ({ x: x2, y: y2, token: token2 }) => {
8491
8491
  const interactTap = window.SootSim?.bridges?.interact?.tap;
8492
- window.__sootsimAnchorTimedInput?.();
8493
8492
  if (typeof interactTap === "function") {
8494
8493
  const result = await interactTap(x2, y2);
8495
- if (result && (typeof result !== "object" || result.hit !== false)) return;
8494
+ if (result && (typeof result !== "object" || result.hit !== false)) {
8495
+ if (token2) window.__sootsimAnchorTimedInput?.(token2);
8496
+ return;
8497
+ }
8496
8498
  }
8497
8499
  const tap = window.__sootsimTest?.tap;
8498
8500
  if (typeof tap !== "function") {
8499
8501
  throw new Error("sootsim tap bridge is not installed");
8500
8502
  }
8501
8503
  await tap(x2, y2);
8504
+ if (token2) window.__sootsimAnchorTimedInput?.(token2);
8502
8505
  },
8503
- { x, y }
8506
+ { x, y, token }
8504
8507
  );
8505
8508
  }
8506
8509
  async function isFocusedTextInputNode(page, nodeInfo) {
@@ -8763,7 +8766,8 @@ function createSootSimElement(matcher) {
8763
8766
  const defaultPoint = point ? null : await getDefaultTapPoint(page, node);
8764
8767
  const targetSootSimX = typeof point?.x === "number" ? node.absolutePosition.x + point.x : defaultPoint?.x ?? node.absolutePosition.x + node.layout.width / 2;
8765
8768
  const targetSootSimY = typeof point?.y === "number" ? node.absolutePosition.y + point.y : defaultPoint?.y ?? node.absolutePosition.y + node.layout.height / 2;
8766
- await dispatchTapAtSootsimPoint(page, targetSootSimX, targetSootSimY);
8769
+ const captureToken = page.__sootsimCaptureToken;
8770
+ await dispatchTapAtSootsimPoint(page, targetSootSimX, targetSootSimY, captureToken);
8767
8771
  if (_synchronizationEnabled) {
8768
8772
  await waitForSootsimIdle(page);
8769
8773
  }
@@ -8808,16 +8812,17 @@ function createSootSimElement(matcher) {
8808
8812
  x: node.absolutePosition.x + pointOrDuration.x,
8809
8813
  y: node.absolutePosition.y + pointOrDuration.y
8810
8814
  } : getNodeCenter(node);
8815
+ const captureToken = page.__sootsimCaptureToken;
8811
8816
  await page.evaluate(
8812
- async ({ duration: duration2, x, y }) => {
8817
+ async ({ duration: duration2, x, y, token }) => {
8813
8818
  const longPress = window.SootSim?.bridges?.interact?.longPress;
8814
8819
  if (typeof longPress !== "function") {
8815
8820
  throw new Error("sootsim longPress bridge is not installed");
8816
8821
  }
8817
- window.__sootsimAnchorTimedInput?.();
8818
8822
  await longPress(x, y, duration2);
8823
+ if (token) window.__sootsimAnchorTimedInput?.(token);
8819
8824
  },
8820
- { duration, x: target.x, y: target.y }
8825
+ { duration, x: target.x, y: target.y, token: captureToken }
8821
8826
  );
8822
8827
  await page.waitForTimeout(50);
8823
8828
  },
@@ -8990,14 +8995,15 @@ function createSootSimElement(matcher) {
8990
8995
  }
8991
8996
  const steps = speed === "slow" ? 40 : 20;
8992
8997
  const stepDelay = 1e3 / 60;
8998
+ const captureToken = page.__sootsimCaptureToken;
8993
8999
  await page.evaluate(
8994
- async ({ fromX, fromY, toX, toY, steps: steps2, stepMs }) => {
9000
+ async ({ fromX, fromY, toX, toY, steps: steps2, stepMs, token }) => {
8995
9001
  const drag = window.__sootsimInteract?.drag;
8996
9002
  if (typeof drag !== "function") {
8997
9003
  throw new Error("sootsim interact bridge is not installed");
8998
9004
  }
8999
- window.__sootsimAnchorTimedInput?.();
9000
9005
  await drag(fromX, fromY, toX, toY, steps2, stepMs);
9006
+ if (token) window.__sootsimAnchorTimedInput?.(token);
9001
9007
  },
9002
9008
  {
9003
9009
  fromX: startSootSimX,
@@ -9005,7 +9011,8 @@ function createSootSimElement(matcher) {
9005
9011
  toX: endSootSimX,
9006
9012
  toY: endSootSimY,
9007
9013
  steps,
9008
- stepMs: stepDelay
9014
+ stepMs: stepDelay,
9015
+ token: captureToken
9009
9016
  }
9010
9017
  );
9011
9018
  await page.waitForTimeout(100);
@@ -9065,10 +9072,12 @@ function createSootSimElement(matcher) {
9065
9072
  `setColumnToValue(${column}, ${JSON.stringify(value)}) could not resolve its picker row`
9066
9073
  );
9067
9074
  }
9075
+ const captureToken = page.__sootsimCaptureToken;
9068
9076
  await dispatchTapAtSootsimPoint(
9069
9077
  page,
9070
9078
  tapTarget.target.absolutePosition.x + tapTarget.target.layout.width / 2,
9071
- tapTarget.target.absolutePosition.y + tapTarget.target.layout.height / 2
9079
+ tapTarget.target.absolutePosition.y + tapTarget.target.layout.height / 2,
9080
+ captureToken
9072
9081
  );
9073
9082
  },
9074
9083
  async pinch(scale, speed = "fast", angle = 0) {
@@ -10002,15 +10011,15 @@ var device = {
10002
10011
  ready: false
10003
10012
  };
10004
10013
  registry[input.token] = state;
10005
- window.__sootsimAnchorTimedInput = () => {
10014
+ window.__sootsimAnchorTimedInput = (token2) => {
10015
+ const capture = registry[token2];
10016
+ if (!capture) return;
10017
+ if (!capture.anchorOnInput || !capture.ready) return;
10018
+ if (capture.anchorPerformanceMs !== null) return;
10006
10019
  const anchorPerformanceMs = performance.now();
10007
10020
  const anchorWallMs = Date.now();
10008
- for (const capture of Object.values(registry)) {
10009
- if (!capture.anchorOnInput || !capture.ready) continue;
10010
- if (capture.anchorPerformanceMs !== null) continue;
10011
- capture.anchorPerformanceMs = anchorPerformanceMs;
10012
- capture.anchorWallMs = anchorWallMs;
10013
- }
10021
+ capture.anchorPerformanceMs = anchorPerformanceMs;
10022
+ capture.anchorWallMs = anchorWallMs;
10014
10023
  };
10015
10024
  if (!input.skipWarmup) {
10016
10025
  await screenshot({ format: "png" });
@@ -10124,7 +10133,12 @@ var device = {
10124
10133
  let captureAnchorMs;
10125
10134
  if (anchorOnInput) {
10126
10135
  triggerStartMs = Date.now();
10127
- await Promise.resolve(options.trigger());
10136
+ page.__sootsimCaptureToken = token;
10137
+ try {
10138
+ await Promise.resolve(options.trigger());
10139
+ } finally {
10140
+ delete page.__sootsimCaptureToken;
10141
+ }
10128
10142
  triggerCompletedMs = Date.now();
10129
10143
  const unanchored = await page.evaluate(
10130
10144
  (captureToken) => window.__sootsimTimedCaptures?.[captureToken]?.anchorWallMs === null,
@@ -10275,21 +10289,25 @@ var device = {
10275
10289
  if (point == null || typeof point === "boolean") return;
10276
10290
  const page = getPage();
10277
10291
  const { x, y } = point;
10292
+ const captureToken = page.__sootsimCaptureToken;
10278
10293
  await page.evaluate(
10279
- async ({ x: tx, y: ty }) => {
10294
+ async ({ x: tx, y: ty, token }) => {
10280
10295
  const interactTap = window.SootSim?.bridges?.interact?.tap;
10281
- window.__sootsimAnchorTimedInput?.();
10282
10296
  if (typeof interactTap === "function") {
10283
10297
  const result = await interactTap(tx, ty);
10284
- if (result && (typeof result !== "object" || result.hit !== false)) return;
10298
+ if (result && (typeof result !== "object" || result.hit !== false)) {
10299
+ if (token) window.__sootsimAnchorTimedInput?.(token);
10300
+ return;
10301
+ }
10285
10302
  }
10286
10303
  const tap = window.__sootsimTest?.tap;
10287
10304
  if (typeof tap !== "function") {
10288
10305
  throw new Error("sootsim tap bridge is not installed");
10289
10306
  }
10290
10307
  await tap(tx, ty);
10308
+ if (token) window.__sootsimAnchorTimedInput?.(token);
10291
10309
  },
10292
- { x, y }
10310
+ { x, y, token: captureToken }
10293
10311
  );
10294
10312
  await page.waitForTimeout(50);
10295
10313
  if (_synchronizationEnabled) {
@@ -10301,19 +10319,20 @@ var device = {
10301
10319
  async longPress(point, durationMs = 1e3) {
10302
10320
  const page = getPage();
10303
10321
  const { x, y } = point;
10322
+ const captureToken = page.__sootsimCaptureToken;
10304
10323
  await page.evaluate(
10305
- async ({ x: px, y: py, ms }) => {
10324
+ async ({ x: px, y: py, ms, token }) => {
10306
10325
  const longPress = window.SootSim?.bridges?.interact?.longPress;
10307
10326
  if (typeof longPress !== "function") {
10308
10327
  throw new Error("sootsim longPress bridge is not installed");
10309
10328
  }
10310
- window.__sootsimAnchorTimedInput?.();
10311
10329
  const hit = await longPress(px, py, ms);
10312
10330
  if (!hit) {
10313
10331
  throw new Error(`sootsim longPress missed at ${px},${py}`);
10314
10332
  }
10333
+ if (token) window.__sootsimAnchorTimedInput?.(token);
10315
10334
  },
10316
- { x, y, ms: durationMs }
10335
+ { x, y, ms: durationMs, token: captureToken }
10317
10336
  );
10318
10337
  await page.waitForTimeout(50);
10319
10338
  if (_synchronizationEnabled) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/expoSwiftContract.ts
4
4
  function record(value) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/host/fetch-proxy-overrides.ts
4
4
  var FETCH_PROXY_NATIVE_USER_AGENT_HEADER = "x-sootsim-native-user-agent";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/dist-lib/menu.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/menu.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/public-brand.ts
4
4
  var name = "Peach";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/is-record.ts
4
4
  function isRecord(value) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/metro-production-bundle.ts
4
4
  var RNXSIM_METRO_MODULE_PATHS_PREFIX = "globalThis.__sootsimModulePaths=";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/native-app-identity.ts
4
4
  var NATIVE_APP_IDENTITY_PREFIX = "globalThis.__sootsimNativeAppIdentity=";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/native-firebase-metadata.ts
4
4
  var PREFIX = "globalThis.__peachNativeFirebaseConfig=";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/plist.ts
4
4
  import plist from "plist";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/react-native-host-modules.ts
4
4
  var REACT_NATIVE_PASSTHROUGH_SPECIFIERS = [
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/dist-lib/sdk.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/sdk.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-compile.ts
4
4
  import { execFile as execFile2, execFileSync } from "node:child_process";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-package.ts
4
4
  function isSwiftManifestFile(file) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-submit.ts
4
4
  var SWIFT_COMPILE_PATH = "/api/swift-compile";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.835 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.837 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/worklet-executable.ts
4
4
  import { parse } from "acorn";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peachsim",
3
- "version": "0.1.835",
3
+ "version": "0.1.837",
4
4
  "description": "Vite and Metro plugins, testing drivers, and SDK exports for peach.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -44,6 +44,7 @@ const HOST_REQUIREMENT =
44
44
 
45
45
  function verifyHost(dir: string): void {
46
46
  const app = path.join(dir, 'PeachDesktop.app')
47
+ // runner-toolchain-platform: darwin
47
48
  const signature = spawnSync('codesign', [
48
49
  '--verify',
49
50
  '--deep',
@@ -52,6 +53,7 @@ function verifyHost(dir: string): void {
52
53
  HOST_REQUIREMENT,
53
54
  app,
54
55
  ])
56
+ // runner-toolchain-platform: darwin
55
57
  const notarization = spawnSync('spctl', ['--assess', '--type', 'execute', app])
56
58
  if (signature.status !== 0 || notarization.status !== 0) {
57
59
  throw new Error(`${app} failed Developer ID or notarization verification`)
@@ -59,6 +61,7 @@ function verifyHost(dir: string): void {
59
61
  }
60
62
 
61
63
  function bundleValue(app: string, key: string): string | null {
64
+ // runner-toolchain-platform: darwin
62
65
  const read = spawnSync(
63
66
  'plutil',
64
67
  ['-extract', key, 'raw', '-o', '-', path.join(app, 'Contents/Info.plist')],