peachsim 0.1.836 → 0.1.838
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/cli/commands/control.ts +6 -0
- package/detox/index.ts +54 -30
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/bundle-channel.cjs +1 -1
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud-test-args.cjs +1 -1
- package/dist-lib/cloud-test-args.mjs +1 -1
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +48 -29
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +1 -1
- package/dist-lib/expo-swift-metadata.cjs +1 -1
- package/dist-lib/expo-swift-metadata.mjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +5 -1
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +1 -1
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/kotlin-host.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/native-app-identity.cjs +1 -1
- package/dist-lib/native-app-identity.mjs +1 -1
- package/dist-lib/native-firebase-metadata.cjs +1 -1
- package/dist-lib/native-firebase-metadata.mjs +1 -1
- package/dist-lib/plist.cjs +1 -1
- package/dist-lib/plist.mjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +9 -1
- package/dist-lib/swift-compile.cjs +1 -1
- package/dist-lib/swift-compile.mjs +1 -1
- package/dist-lib/swift-package.cjs +1 -1
- package/dist-lib/swift-package.mjs +1 -1
- package/dist-lib/swift-submit.cjs +1 -1
- package/dist-lib/swift-submit.mjs +1 -1
- package/dist-lib/swift-toolchain.cjs +1 -1
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +1 -1
- package/dist-lib/vite.cjs +1 -1
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/package.json +1 -1
package/cli/commands/control.ts
CHANGED
|
@@ -863,6 +863,8 @@ async function splashImageReachable(imageUrl: string): Promise<boolean> {
|
|
|
863
863
|
}
|
|
864
864
|
|
|
865
865
|
export interface BuildShellUrlOptions {
|
|
866
|
+
// manifest and asset origin provided by an authenticated recorder proxy.
|
|
867
|
+
bundleOriginOverride?: string
|
|
866
868
|
// marks native host windows so the bridge can reuse a CLI-opened desktop sim.
|
|
867
869
|
hostDriver?: 'desktop'
|
|
868
870
|
// when set, forces the metro `hot` query on the resolved bundle URL. true
|
|
@@ -946,6 +948,8 @@ export async function buildShellUrl(
|
|
|
946
948
|
project,
|
|
947
949
|
)
|
|
948
950
|
const expoStamped = new URL(stamped)
|
|
951
|
+
if (opts.bundleOriginOverride)
|
|
952
|
+
expoStamped.searchParams.set('bundleOriginOverride', opts.bundleOriginOverride)
|
|
949
953
|
if (opts.hostDriver) expoStamped.searchParams.set('peachHostDriver', opts.hostDriver)
|
|
950
954
|
if (expoRoot) {
|
|
951
955
|
const world = resolveBridgeWorld()
|
|
@@ -1532,6 +1536,7 @@ export async function runOpenCommand(
|
|
|
1532
1536
|
],
|
|
1533
1537
|
stripValueFlags: [
|
|
1534
1538
|
'--base-url',
|
|
1539
|
+
'--bundle-origin',
|
|
1535
1540
|
'--replace',
|
|
1536
1541
|
'--driver',
|
|
1537
1542
|
'--profile',
|
|
@@ -1851,6 +1856,7 @@ export async function runOpenCommand(
|
|
|
1851
1856
|
}
|
|
1852
1857
|
|
|
1853
1858
|
const buildShellUrlOpts: BuildShellUrlOptions = {
|
|
1859
|
+
bundleOriginOverride: args.find((_, i) => args[i - 1] === '--bundle-origin'),
|
|
1854
1860
|
hot: hotMode,
|
|
1855
1861
|
hostDriver: driverId === 'desktop' ? 'desktop' : undefined,
|
|
1856
1862
|
device: deviceArg,
|
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
|
|
63
|
-
//
|
|
64
|
-
//
|
|
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(
|
|
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))
|
|
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
|
-
|
|
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
|
-
|
|
2944
|
-
|
|
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
|
-
|
|
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))
|
|
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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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/cloud.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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/cloud.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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);
|
package/dist-lib/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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))
|
|
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
|
-
|
|
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
|
-
|
|
10009
|
-
|
|
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
|
-
|
|
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))
|
|
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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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;
|
|
@@ -2470,6 +2470,10 @@ function getDevice(model, posture, orientation, landscapeSide) {
|
|
|
2470
2470
|
// below to the app across the whole window and none above it
|
|
2471
2471
|
// (plans/contrast/duo-platform.md)
|
|
2472
2472
|
systemTopEdgeHeight: 20,
|
|
2473
|
+
// reservedRegions' system-control occlusion on the ios 27.1 duo
|
|
2474
|
+
// simulator's open display; taps at x 900, y 10..60 never reach the app
|
|
2475
|
+
// and y 130 does (plans/contrast/duo-platform.md)
|
|
2476
|
+
systemControlRegion: isRotatedPortrait ? { x: 585, y: 0, width: 84, height: 120 } : { x: 867, y: 0, width: 84, height: 120 },
|
|
2473
2477
|
orientation: resolvedOrientation,
|
|
2474
2478
|
// open inner display in landscape carries the same trailing column as
|
|
2475
2479
|
// the closed outer display, so it takes the same 84pt inset: a ~50pt
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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/kotlin-host.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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/plist.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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/plist.mjs
CHANGED
package/dist-lib/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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/render-mode.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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);
|
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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;
|
|
@@ -41571,6 +41571,10 @@ function getDevice(model, posture, orientation, landscapeSide) {
|
|
|
41571
41571
|
// below to the app across the whole window and none above it
|
|
41572
41572
|
// (plans/contrast/duo-platform.md)
|
|
41573
41573
|
systemTopEdgeHeight: 20,
|
|
41574
|
+
// reservedRegions' system-control occlusion on the ios 27.1 duo
|
|
41575
|
+
// simulator's open display; taps at x 900, y 10..60 never reach the app
|
|
41576
|
+
// and y 130 does (plans/contrast/duo-platform.md)
|
|
41577
|
+
systemControlRegion: isRotatedPortrait ? { x: 585, y: 0, width: 84, height: 120 } : { x: 867, y: 0, width: 84, height: 120 },
|
|
41574
41578
|
orientation: resolvedOrientation,
|
|
41575
41579
|
// open inner display in landscape carries the same trailing column as
|
|
41576
41580
|
// the closed outer display, so it takes the same 84pt inset: a ~50pt
|
|
@@ -53974,6 +53978,8 @@ async function buildShellUrl(target, baseUrl = resolveDefaultShellBaseUrl(), opt
|
|
|
53974
53978
|
project
|
|
53975
53979
|
);
|
|
53976
53980
|
const expoStamped = new URL(stamped);
|
|
53981
|
+
if (opts.bundleOriginOverride)
|
|
53982
|
+
expoStamped.searchParams.set("bundleOriginOverride", opts.bundleOriginOverride);
|
|
53977
53983
|
if (opts.hostDriver) expoStamped.searchParams.set("peachHostDriver", opts.hostDriver);
|
|
53978
53984
|
if (expoRoot) {
|
|
53979
53985
|
const world = resolveBridgeWorld();
|
|
@@ -54416,6 +54422,7 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
54416
54422
|
],
|
|
54417
54423
|
stripValueFlags: [
|
|
54418
54424
|
"--base-url",
|
|
54425
|
+
"--bundle-origin",
|
|
54419
54426
|
"--replace",
|
|
54420
54427
|
"--driver",
|
|
54421
54428
|
"--profile",
|
|
@@ -54636,6 +54643,7 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
54636
54643
|
}
|
|
54637
54644
|
}
|
|
54638
54645
|
const buildShellUrlOpts = {
|
|
54646
|
+
bundleOriginOverride: args.find((_, i) => args[i - 1] === "--bundle-origin"),
|
|
54639
54647
|
hot: hotMode,
|
|
54640
54648
|
hostDriver: driverId === "desktop" ? "desktop" : void 0,
|
|
54641
54649
|
device: deviceArg,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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/swift.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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/vite-swift.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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.
|
|
1
|
+
/*! rnx v0.1.838 | (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;
|