rnxsim 0.1.473 → 0.1.474
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/inspect/core.ts +2 -2
- package/cli/commands/inspect/wait-selector.ts +12 -4
- 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 +8 -5
- package/dist-lib/bridge-contract-input.mjs +8 -5
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +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.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +12 -4
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +1 -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/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/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 +2 -2
- package/dist-lib/sdk.mjs +2 -2
- package/dist-lib/skills.cjs +63 -9
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/src/bridge-contract-input.ts +12 -4
- package/src/bridge-contract.ts +8 -1
|
@@ -1146,7 +1146,7 @@ export async function inspectWaitSelector(
|
|
|
1146
1146
|
bridge: InspectBridge,
|
|
1147
1147
|
testId: string,
|
|
1148
1148
|
timeoutMs = 5000,
|
|
1149
|
-
opts: { gone?: boolean } = {},
|
|
1149
|
+
opts: { gone?: boolean; structural?: boolean } = {},
|
|
1150
1150
|
): Promise<{ found: boolean; node?: SimSemanticNode; elapsed: number }> {
|
|
1151
1151
|
const gone = opts.gone === true
|
|
1152
1152
|
const result: SemanticWaitResult = await bridge.send(
|
|
@@ -1154,7 +1154,7 @@ export async function inspectWaitSelector(
|
|
|
1154
1154
|
type: 'waitFor',
|
|
1155
1155
|
waitForOptions: {
|
|
1156
1156
|
condition: {
|
|
1157
|
-
type: gone ? 'absent' : 'present',
|
|
1157
|
+
type: gone ? 'absent' : opts.structural === true ? 'mounted' : 'present',
|
|
1158
1158
|
selector: { testID: testId },
|
|
1159
1159
|
},
|
|
1160
1160
|
timeoutMs,
|
|
@@ -2,9 +2,13 @@ import { rnxExit } from '../../run-rnx'
|
|
|
2
2
|
import { inspectWaitSelector } from './core'
|
|
3
3
|
import type { WsBridge } from '../../ws-bridge'
|
|
4
4
|
|
|
5
|
-
// blocks until a node with the given testID is
|
|
6
|
-
// `--gone` — until it is absent.
|
|
7
|
-
//
|
|
5
|
+
// blocks until a node with the given testID is visible and laid out, or — with
|
|
6
|
+
// `--gone` — until it is absent. `--structural` drops the visibility test and
|
|
7
|
+
// waits only for the node to exist, which is what a marker rendered as proof
|
|
8
|
+
// (a build id, a launch phase) needs: it is 1x1 and painted under the app, so
|
|
9
|
+
// it is permanently occluded and the visible check can never match it. the
|
|
10
|
+
// engine owns the polling loop and this handler sends one request, then
|
|
11
|
+
// reports.
|
|
8
12
|
export async function runWaitSelectorSubcommand(opts: {
|
|
9
13
|
bridge: WsBridge
|
|
10
14
|
args: string[]
|
|
@@ -14,16 +18,20 @@ export async function runWaitSelectorSubcommand(opts: {
|
|
|
14
18
|
const { bridge, args, positional, inspectUsage } = opts
|
|
15
19
|
const testId = positional[1]
|
|
16
20
|
if (!testId) {
|
|
17
|
-
console.error(
|
|
21
|
+
console.error(
|
|
22
|
+
inspectUsage('selector', '<testid> [--max-ms 5000] [--gone] [--structural]'),
|
|
23
|
+
)
|
|
18
24
|
rnxExit(1)
|
|
19
25
|
}
|
|
20
26
|
const maxMsIdx = args.indexOf('--max-ms')
|
|
21
27
|
const timeoutMs =
|
|
22
28
|
maxMsIdx >= 0 && args[maxMsIdx + 1] ? Math.max(100, Number(args[maxMsIdx + 1])) : 5000
|
|
23
29
|
const gone = args.includes('--gone')
|
|
30
|
+
const structural = args.includes('--structural')
|
|
24
31
|
|
|
25
32
|
const { found, node, elapsed } = await inspectWaitSelector(bridge, testId, timeoutMs, {
|
|
26
33
|
gone,
|
|
34
|
+
structural,
|
|
27
35
|
})
|
|
28
36
|
|
|
29
37
|
if (gone) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -196,8 +196,11 @@ function parsePerformStep(value, index) {
|
|
|
196
196
|
case "waitFor": {
|
|
197
197
|
const timeoutMs = semanticWaitTimeout(step, path);
|
|
198
198
|
const condition = step.condition === void 0 ? void 0 : stringValue(step.condition, `${path}.condition`);
|
|
199
|
-
if (condition !== void 0 && condition !== "present" && condition !== "absent") {
|
|
200
|
-
return validationFailure(
|
|
199
|
+
if (condition !== void 0 && condition !== "present" && condition !== "mounted" && condition !== "absent") {
|
|
200
|
+
return validationFailure(
|
|
201
|
+
`${path}.condition`,
|
|
202
|
+
"must be present, mounted, or absent"
|
|
203
|
+
);
|
|
201
204
|
}
|
|
202
205
|
const selector = step.testID === void 0 ? { id: stringValue(step.id, `${path}.id`) } : { testID: stringValue(step.testID, `${path}.testID`) };
|
|
203
206
|
return {
|
|
@@ -303,10 +306,10 @@ function parseSemanticWaitOptions(value) {
|
|
|
303
306
|
...timeoutMs === void 0 ? {} : { timeoutMs }
|
|
304
307
|
};
|
|
305
308
|
}
|
|
306
|
-
if (type !== "present" && type !== "absent") {
|
|
309
|
+
if (type !== "present" && type !== "mounted" && type !== "absent") {
|
|
307
310
|
return validationFailure(
|
|
308
311
|
"waitFor.condition.type",
|
|
309
|
-
"must be ready, present, or absent"
|
|
312
|
+
"must be ready, present, mounted, or absent"
|
|
310
313
|
);
|
|
311
314
|
}
|
|
312
315
|
return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/bridge-contract.ts
|
|
4
4
|
var SIM_LONG_PRESS_MAX_MS = 5e3;
|
|
@@ -161,8 +161,11 @@ function parsePerformStep(value, index) {
|
|
|
161
161
|
case "waitFor": {
|
|
162
162
|
const timeoutMs = semanticWaitTimeout(step, path);
|
|
163
163
|
const condition = step.condition === void 0 ? void 0 : stringValue(step.condition, `${path}.condition`);
|
|
164
|
-
if (condition !== void 0 && condition !== "present" && condition !== "absent") {
|
|
165
|
-
return validationFailure(
|
|
164
|
+
if (condition !== void 0 && condition !== "present" && condition !== "mounted" && condition !== "absent") {
|
|
165
|
+
return validationFailure(
|
|
166
|
+
`${path}.condition`,
|
|
167
|
+
"must be present, mounted, or absent"
|
|
168
|
+
);
|
|
166
169
|
}
|
|
167
170
|
const selector = step.testID === void 0 ? { id: stringValue(step.id, `${path}.id`) } : { testID: stringValue(step.testID, `${path}.testID`) };
|
|
168
171
|
return {
|
|
@@ -268,10 +271,10 @@ function parseSemanticWaitOptions(value) {
|
|
|
268
271
|
...timeoutMs === void 0 ? {} : { timeoutMs }
|
|
269
272
|
};
|
|
270
273
|
}
|
|
271
|
-
if (type !== "present" && type !== "absent") {
|
|
274
|
+
if (type !== "present" && type !== "mounted" && type !== "absent") {
|
|
272
275
|
return validationFailure(
|
|
273
276
|
"waitFor.condition.type",
|
|
274
|
-
"must be ready, present, or absent"
|
|
277
|
+
"must be ready, present, mounted, or absent"
|
|
275
278
|
);
|
|
276
279
|
}
|
|
277
280
|
return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -265,7 +265,8 @@ function processIdentity(pid) {
|
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
267
|
function softwareChromeAllowed(runtime = currentRuntime()) {
|
|
268
|
-
|
|
268
|
+
if (runtime.platform !== "linux") return false;
|
|
269
|
+
return runtime.env.GITHUB_ACTIONS === "true" && runtime.env.RUNNER_OS === "Linux" || runtime.env.CONTRAST_CF_FACTORY_CONTAINER === "1";
|
|
269
270
|
}
|
|
270
271
|
function isSoftwareRendererArgument(value) {
|
|
271
272
|
const arg = String(value);
|
|
@@ -708,7 +709,7 @@ function softwareChromeLaunchOptions(opts) {
|
|
|
708
709
|
}
|
|
709
710
|
const callerArgs = Array.isArray(opts.args) ? opts.args.map(String) : [];
|
|
710
711
|
const unmanagedCallerArgs = callerArgs.filter((arg) => {
|
|
711
|
-
return !arg.startsWith("--use-angle=") && arg !== "--enable-gpu" && arg !== "--enable-gpu-rasterization" && arg !== "--enable-zero-copy" && arg !== "--ignore-gpu-blocklist" && !/^--enable-unsafe-webgpu(?:=.*)?$/i.test(arg) && !/^--enable-unsafe-swiftshader(?:=.*)?$/i.test(arg);
|
|
712
|
+
return !arg.startsWith("--use-angle=") && arg !== "--enable-gpu" && arg !== "--enable-gpu-rasterization" && arg !== "--enable-zero-copy" && arg !== "--ignore-gpu-blocklist" && arg !== "--disable-gpu-watchdog" && !/^--enable-unsafe-webgpu(?:=.*)?$/i.test(arg) && !/^--enable-unsafe-swiftshader(?:=.*)?$/i.test(arg);
|
|
712
713
|
});
|
|
713
714
|
const software = {
|
|
714
715
|
...opts,
|
|
@@ -721,7 +722,14 @@ function softwareChromeLaunchOptions(opts) {
|
|
|
721
722
|
...unmanagedCallerArgs,
|
|
722
723
|
"--use-angle=swiftshader",
|
|
723
724
|
"--enable-unsafe-swiftshader",
|
|
724
|
-
"--enable-unsafe-webgpu"
|
|
725
|
+
"--enable-unsafe-webgpu",
|
|
726
|
+
// the GPU watchdog kills the GPU process when a task outlives its
|
|
727
|
+
// timeout. SwiftShader precompiling Graphite pipelines on two CPU cores
|
|
728
|
+
// legitimately outlives it, and the compositor then fails with "graphite
|
|
729
|
+
// device was lost while precompiling pipelines" although nothing hung.
|
|
730
|
+
// the cost: a genuinely wedged GPU process now holds its job until the
|
|
731
|
+
// job's own timeout instead of dying fast.
|
|
732
|
+
"--disable-gpu-watchdog"
|
|
725
733
|
],
|
|
726
734
|
["Vulkan"]
|
|
727
735
|
)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/host/fetch-proxy-overrides.ts
|
|
4
4
|
var FETCH_PROXY_BROWSER_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/dist-lib/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } 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.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -787,7 +787,7 @@ async function inspectWaitSelector(bridge, testId, timeoutMs = 5e3, opts = {}) {
|
|
|
787
787
|
type: "waitFor",
|
|
788
788
|
waitForOptions: {
|
|
789
789
|
condition: {
|
|
790
|
-
type: gone ? "absent" : "present",
|
|
790
|
+
type: gone ? "absent" : opts.structural === true ? "mounted" : "present",
|
|
791
791
|
selector: { testID: testId }
|
|
792
792
|
},
|
|
793
793
|
timeoutMs
|
package/dist-lib/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (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);
|
|
@@ -691,7 +691,7 @@ async function inspectWaitSelector(bridge, testId, timeoutMs = 5e3, opts = {}) {
|
|
|
691
691
|
type: "waitFor",
|
|
692
692
|
waitForOptions: {
|
|
693
693
|
condition: {
|
|
694
|
-
type: gone ? "absent" : "present",
|
|
694
|
+
type: gone ? "absent" : opts.structural === true ? "mounted" : "present",
|
|
695
695
|
selector: { testID: testId }
|
|
696
696
|
},
|
|
697
697
|
timeoutMs
|
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -57,7 +57,8 @@ function processIdentity(pid) {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
function softwareChromeAllowed(runtime = currentRuntime()) {
|
|
60
|
-
|
|
60
|
+
if (runtime.platform !== "linux") return false;
|
|
61
|
+
return runtime.env.GITHUB_ACTIONS === "true" && runtime.env.RUNNER_OS === "Linux" || runtime.env.CONTRAST_CF_FACTORY_CONTAINER === "1";
|
|
61
62
|
}
|
|
62
63
|
function isSoftwareRendererArgument(value) {
|
|
63
64
|
const arg = String(value);
|
|
@@ -482,7 +483,7 @@ function softwareChromeLaunchOptions(opts) {
|
|
|
482
483
|
}
|
|
483
484
|
const callerArgs = Array.isArray(opts.args) ? opts.args.map(String) : [];
|
|
484
485
|
const unmanagedCallerArgs = callerArgs.filter((arg) => {
|
|
485
|
-
return !arg.startsWith("--use-angle=") && arg !== "--enable-gpu" && arg !== "--enable-gpu-rasterization" && arg !== "--enable-zero-copy" && arg !== "--ignore-gpu-blocklist" && !/^--enable-unsafe-webgpu(?:=.*)?$/i.test(arg) && !/^--enable-unsafe-swiftshader(?:=.*)?$/i.test(arg);
|
|
486
|
+
return !arg.startsWith("--use-angle=") && arg !== "--enable-gpu" && arg !== "--enable-gpu-rasterization" && arg !== "--enable-zero-copy" && arg !== "--ignore-gpu-blocklist" && arg !== "--disable-gpu-watchdog" && !/^--enable-unsafe-webgpu(?:=.*)?$/i.test(arg) && !/^--enable-unsafe-swiftshader(?:=.*)?$/i.test(arg);
|
|
486
487
|
});
|
|
487
488
|
const software = {
|
|
488
489
|
...opts,
|
|
@@ -495,7 +496,14 @@ function softwareChromeLaunchOptions(opts) {
|
|
|
495
496
|
...unmanagedCallerArgs,
|
|
496
497
|
"--use-angle=swiftshader",
|
|
497
498
|
"--enable-unsafe-swiftshader",
|
|
498
|
-
"--enable-unsafe-webgpu"
|
|
499
|
+
"--enable-unsafe-webgpu",
|
|
500
|
+
// the GPU watchdog kills the GPU process when a task outlives its
|
|
501
|
+
// timeout. SwiftShader precompiling Graphite pipelines on two CPU cores
|
|
502
|
+
// legitimately outlives it, and the compositor then fails with "graphite
|
|
503
|
+
// device was lost while precompiling pipelines" although nothing hung.
|
|
504
|
+
// the cost: a genuinely wedged GPU process now holds its job until the
|
|
505
|
+
// job's own timeout instead of dying fast.
|
|
506
|
+
"--disable-gpu-watchdog"
|
|
499
507
|
],
|
|
500
508
|
["Vulkan"]
|
|
501
509
|
)
|
|
@@ -4198,7 +4206,53 @@ var init_capability_outcomes2 = __esm({
|
|
|
4198
4206
|
"react-native-safe-area-context": {
|
|
4199
4207
|
exactTestedVersion: "5.7.0",
|
|
4200
4208
|
supportedVersionRange: ">=4.0.0",
|
|
4201
|
-
lastMeasured:
|
|
4209
|
+
lastMeasured: {
|
|
4210
|
+
byWeighting: {
|
|
4211
|
+
strict: {
|
|
4212
|
+
android: {
|
|
4213
|
+
passedWeight: 0,
|
|
4214
|
+
failedWeight: 0,
|
|
4215
|
+
unassessedWeight: 13,
|
|
4216
|
+
totalWeight: 13,
|
|
4217
|
+
assessedWeight: 0,
|
|
4218
|
+
compatibility: null,
|
|
4219
|
+
assessed: 0
|
|
4220
|
+
},
|
|
4221
|
+
ios: {
|
|
4222
|
+
passedWeight: 0,
|
|
4223
|
+
failedWeight: 0,
|
|
4224
|
+
unassessedWeight: 13,
|
|
4225
|
+
totalWeight: 13,
|
|
4226
|
+
assessedWeight: 0,
|
|
4227
|
+
compatibility: null,
|
|
4228
|
+
assessed: 0
|
|
4229
|
+
}
|
|
4230
|
+
},
|
|
4231
|
+
usage: {
|
|
4232
|
+
android: {
|
|
4233
|
+
passedWeight: 0,
|
|
4234
|
+
failedWeight: 0,
|
|
4235
|
+
unassessedWeight: 389,
|
|
4236
|
+
totalWeight: 389,
|
|
4237
|
+
assessedWeight: 0,
|
|
4238
|
+
compatibility: null,
|
|
4239
|
+
assessed: 0
|
|
4240
|
+
},
|
|
4241
|
+
ios: {
|
|
4242
|
+
passedWeight: 0,
|
|
4243
|
+
failedWeight: 0,
|
|
4244
|
+
unassessedWeight: 389,
|
|
4245
|
+
totalWeight: 389,
|
|
4246
|
+
assessedWeight: 0,
|
|
4247
|
+
compatibility: null,
|
|
4248
|
+
assessed: 0
|
|
4249
|
+
}
|
|
4250
|
+
}
|
|
4251
|
+
},
|
|
4252
|
+
capturedAt: "2026-09-10T08:03:06.591Z",
|
|
4253
|
+
receipts: ["safe-area-initial-insets-2026-09-09-p40993-r2"],
|
|
4254
|
+
sourceCommit: "a13aa54553c70fd1ab96e3cfaaf0d81d58bc19ea"
|
|
4255
|
+
},
|
|
4202
4256
|
unmatchedReferenceCount: 74,
|
|
4203
4257
|
byPlatform: {
|
|
4204
4258
|
android: {
|
|
@@ -5935,8 +5989,8 @@ var init_registry = __esm({
|
|
|
5935
5989
|
id: "provider-and-window-metrics",
|
|
5936
5990
|
usage: 3,
|
|
5937
5991
|
importance: 3,
|
|
5938
|
-
estimate:
|
|
5939
|
-
rationale: "SafeAreaProvider and
|
|
5992
|
+
estimate: 1,
|
|
5993
|
+
rationale: "SafeAreaProvider, initialWindowMetrics and the deprecated initialWindowSafeAreaInsets constant expose live frame and inset values from the device-spec and keyboard sources. The inspected provider and window-metric path has no app-facing behavior gap."
|
|
5940
5994
|
},
|
|
5941
5995
|
{
|
|
5942
5996
|
id: "edge-aware-layout",
|
|
@@ -5962,8 +6016,8 @@ var init_registry = __esm({
|
|
|
5962
6016
|
],
|
|
5963
6017
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-safe-area-context"],
|
|
5964
6018
|
note: "live device/system-bar/ime metrics, edges/mode padding, hooks",
|
|
5965
|
-
working: "SafeAreaProvider with live Android system-bar and IME-resized frame metrics, SafeAreaView (edges/mode padding/margin), useSafeAreaInsets, useSafeAreaFrame, SafeAreaInsetsContext, SafeAreaFrameContext, initialWindowMetrics, SafeAreaListener onInsetsChange, withSafeAreaInsets HOC",
|
|
5966
|
-
missing: "
|
|
6019
|
+
working: "SafeAreaProvider with live Android system-bar and IME-resized frame metrics, SafeAreaView (edges/mode padding/margin), useSafeAreaInsets, useSafeAreaFrame, SafeAreaInsetsContext, SafeAreaFrameContext, initialWindowMetrics, initialWindowSafeAreaInsets, SafeAreaListener onInsetsChange, withSafeAreaInsets HOC",
|
|
6020
|
+
missing: "rotation-specific provider frame deltas remain unassessed"
|
|
5967
6021
|
}
|
|
5968
6022
|
]
|
|
5969
6023
|
},
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.474 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/package.json
CHANGED
|
@@ -206,8 +206,16 @@ export function parsePerformStep(value: unknown, index: number): SimPerformStep
|
|
|
206
206
|
step.condition === undefined
|
|
207
207
|
? undefined
|
|
208
208
|
: stringValue(step.condition, `${path}.condition`)
|
|
209
|
-
if (
|
|
210
|
-
|
|
209
|
+
if (
|
|
210
|
+
condition !== undefined &&
|
|
211
|
+
condition !== 'present' &&
|
|
212
|
+
condition !== 'mounted' &&
|
|
213
|
+
condition !== 'absent'
|
|
214
|
+
) {
|
|
215
|
+
return validationFailure(
|
|
216
|
+
`${path}.condition`,
|
|
217
|
+
'must be present, mounted, or absent',
|
|
218
|
+
)
|
|
211
219
|
}
|
|
212
220
|
const selector =
|
|
213
221
|
step.testID === undefined
|
|
@@ -331,10 +339,10 @@ export function parseSemanticWaitOptions(value: unknown): SemanticWaitOptions {
|
|
|
331
339
|
...(timeoutMs === undefined ? {} : { timeoutMs }),
|
|
332
340
|
}
|
|
333
341
|
}
|
|
334
|
-
if (type !== 'present' && type !== 'absent') {
|
|
342
|
+
if (type !== 'present' && type !== 'mounted' && type !== 'absent') {
|
|
335
343
|
return validationFailure(
|
|
336
344
|
'waitFor.condition.type',
|
|
337
|
-
'must be ready, present, or absent',
|
|
345
|
+
'must be ready, present, mounted, or absent',
|
|
338
346
|
)
|
|
339
347
|
}
|
|
340
348
|
return {
|
package/src/bridge-contract.ts
CHANGED
|
@@ -159,7 +159,7 @@ export type PerformStep =
|
|
|
159
159
|
type: 'waitFor'
|
|
160
160
|
testID?: string
|
|
161
161
|
id?: string
|
|
162
|
-
condition?: 'present' | 'absent'
|
|
162
|
+
condition?: 'present' | 'mounted' | 'absent'
|
|
163
163
|
timeoutMs?: number
|
|
164
164
|
}
|
|
165
165
|
|
|
@@ -202,9 +202,16 @@ export interface PerformResult {
|
|
|
202
202
|
// waitFor — engine-side semantic condition polling
|
|
203
203
|
// ---------------------------------------------------------------------------
|
|
204
204
|
|
|
205
|
+
// `present` is what a person can see: the node must survive the occlusion pass,
|
|
206
|
+
// so a button behind a sheet does not count. `mounted` asks only whether the
|
|
207
|
+
// node exists and is laid out, which is the right question for a marker the app
|
|
208
|
+
// renders as proof of something (a build id, a launch phase) rather than as
|
|
209
|
+
// something to look at — those are 1x1 and painted under the whole app, so they
|
|
210
|
+
// are permanently occluded and `present` can never match one.
|
|
205
211
|
export type SemanticWaitCondition =
|
|
206
212
|
| { type: 'ready' }
|
|
207
213
|
| { type: 'present'; selector: SimSemanticResolveSelector }
|
|
214
|
+
| { type: 'mounted'; selector: SimSemanticResolveSelector }
|
|
208
215
|
| { type: 'absent'; selector: SimSemanticResolveSelector }
|
|
209
216
|
|
|
210
217
|
export interface SemanticWaitOptions {
|