rnxsim 0.1.457 → 0.1.458

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 (53) hide show
  1. package/detox/index.ts +12 -1
  2. package/dist-lib/agent-daemon-client.cjs +1 -1
  3. package/dist-lib/agent-events.cjs +1 -1
  4. package/dist-lib/agent-identity.cjs +1 -1
  5. package/dist-lib/agent-sessions.cjs +1 -1
  6. package/dist-lib/attached-projects.cjs +1 -1
  7. package/dist-lib/auth/shared-session.cjs +1 -1
  8. package/dist-lib/backend-origin.cjs +1 -1
  9. package/dist-lib/beta.cjs +1 -1
  10. package/dist-lib/beta.mjs +1 -1
  11. package/dist-lib/bridge-constants.cjs +1 -1
  12. package/dist-lib/bridge-contract-input.cjs +1 -1
  13. package/dist-lib/bridge-contract-input.mjs +1 -1
  14. package/dist-lib/bridge-contract.cjs +1 -1
  15. package/dist-lib/bridge-contract.mjs +1 -1
  16. package/dist-lib/capture-contract.cjs +1 -1
  17. package/dist-lib/capture-contract.mjs +1 -1
  18. package/dist-lib/cli-constants.cjs +1 -1
  19. package/dist-lib/cloud-contract.cjs +1 -1
  20. package/dist-lib/cloud-contract.mjs +1 -1
  21. package/dist-lib/cloud.cjs +1 -1
  22. package/dist-lib/cloud.mjs +1 -1
  23. package/dist-lib/config.cjs +1 -1
  24. package/dist-lib/detox/index.cjs +15 -2
  25. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  26. package/dist-lib/home-paths.cjs +1 -1
  27. package/dist-lib/host/bridge-host.cjs +1 -1
  28. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  29. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  30. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  31. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  32. package/dist-lib/host/websocket-proxy.cjs +1 -1
  33. package/dist-lib/index.cjs +1 -1
  34. package/dist-lib/jump-to-source-babel.cjs +1 -1
  35. package/dist-lib/jump-to-source-native.cjs +1 -1
  36. package/dist-lib/menu.cjs +1 -1
  37. package/dist-lib/menu.mjs +1 -1
  38. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  39. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  40. package/dist-lib/metro-production-bundle.cjs +1 -1
  41. package/dist-lib/metro-production-bundle.mjs +1 -1
  42. package/dist-lib/metro.cjs +1 -1
  43. package/dist-lib/profiles.cjs +1 -1
  44. package/dist-lib/public-brand.cjs +1 -1
  45. package/dist-lib/react-native-host-modules.cjs +1 -1
  46. package/dist-lib/react-native-host-modules.mjs +1 -1
  47. package/dist-lib/render-mode.cjs +1 -1
  48. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  49. package/dist-lib/sdk.cjs +1 -1
  50. package/dist-lib/sdk.mjs +1 -1
  51. package/dist-lib/skills.cjs +37 -33
  52. package/dist-lib/vite.cjs +1 -1
  53. package/package.json +1 -1
package/detox/index.ts CHANGED
@@ -1333,7 +1333,7 @@ export const device = {
1333
1333
  // scoped reaper owns the whole Chrome process tree if Detox is interrupted.
1334
1334
  const launched = await launchReapedChromeScoped(
1335
1335
  (options) => chromium.launch(options),
1336
- { headless: true },
1336
+ { headless: true, ignoreDefaultArgs: ['--disable-popup-blocking'] },
1337
1337
  )
1338
1338
  _browser = launched.browser
1339
1339
  _reapBrowserNow = launched.reapNow
@@ -2322,6 +2322,17 @@ export const device = {
2322
2322
  }
2323
2323
  },
2324
2324
 
2325
+ // a real browser key press. host.ts turns window keydown into the
2326
+ // `sootsim:hostKey` shell event that overlays listen to, so this drives the
2327
+ // same path a desktop user does for keys no device button covers (Escape).
2328
+ async pressKey(key: string) {
2329
+ const page = getPage()
2330
+ await page.keyboard.press(key)
2331
+ if (_synchronizationEnabled) {
2332
+ await waitForSootsimIdle(page)
2333
+ }
2334
+ },
2335
+
2325
2336
  // raw coordinate tap, bypassing the element-based visibility/hit-test path.
2326
2337
  // mirrors detox 20.x device.tap({ x, y }) on real iOS — used when the
2327
2338
  // target is occluded by a native UIWindow (e.g. UIMenu's dim layer) so
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var SIM_LONG_PRESS_DEFAULT_MS = 500;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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;
@@ -731,6 +731,9 @@ function softwareChromeLaunchOptions(opts) {
731
731
  return software;
732
732
  }
733
733
  function chromeLaunchOptions(opts = {}, runtime = currentRuntime()) {
734
+ if (signalShutdownClaimed) {
735
+ opts = { ...opts, handleSIGINT: false, handleSIGTERM: false, handleSIGHUP: false };
736
+ }
734
737
  return softwareChromeAllowed(runtime) ? softwareChromeLaunchOptions(opts) : gpuChromeLaunchOptions(opts, runtime);
735
738
  }
736
739
  async function launchReapedChromeScoped(launch, opts = {}, rendererTarget, policy = {}) {
@@ -2741,7 +2744,7 @@ var device = {
2741
2744
  if (!_browser) {
2742
2745
  const launched = await launchReapedChromeScoped(
2743
2746
  (options) => import_playwright.chromium.launch(options),
2744
- { headless: true }
2747
+ { headless: true, ignoreDefaultArgs: ["--disable-popup-blocking"] }
2745
2748
  );
2746
2749
  _browser = launched.browser;
2747
2750
  _reapBrowserNow = launched.reapNow;
@@ -3380,6 +3383,16 @@ var device = {
3380
3383
  await waitForSootsimIdle(page);
3381
3384
  }
3382
3385
  },
3386
+ // a real browser key press. host.ts turns window keydown into the
3387
+ // `sootsim:hostKey` shell event that overlays listen to, so this drives the
3388
+ // same path a desktop user does for keys no device button covers (Escape).
3389
+ async pressKey(key) {
3390
+ const page = getPage();
3391
+ await page.keyboard.press(key);
3392
+ if (_synchronizationEnabled) {
3393
+ await waitForSootsimIdle(page);
3394
+ }
3395
+ },
3383
3396
  // raw coordinate tap, bypassing the element-based visibility/hit-test path.
3384
3397
  // mirrors detox 20.x device.tap({ x, y }) on real iOS — used when the
3385
3398
  // target is occluded by a native UIWindow (e.g. UIMenu's dim layer) so
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/public-brand.ts
4
4
  var name = "rnx";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/metro-fingerprint-registry.ts
4
4
  var RNX_METRO_FINGERPRINT_SCHEMA_VERSION = 2;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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/sdk.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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;
@@ -505,6 +505,9 @@ function softwareChromeLaunchOptions(opts) {
505
505
  return software;
506
506
  }
507
507
  function chromeLaunchOptions(opts = {}, runtime = currentRuntime()) {
508
+ if (signalShutdownClaimed) {
509
+ opts = { ...opts, handleSIGINT: false, handleSIGTERM: false, handleSIGHUP: false };
510
+ }
508
511
  return softwareChromeAllowed(runtime) ? softwareChromeLaunchOptions(opts) : gpuChromeLaunchOptions(opts, runtime);
509
512
  }
510
513
  async function launchReapedChrome(launch3, opts = {}, rendererTarget, policy = {}) {
@@ -3895,6 +3898,8 @@ var init_supported_native_packages = __esm({
3895
3898
  // coverage
3896
3899
  "@react-native-community/masked-view",
3897
3900
  // coverage
3901
+ "@react-native-community/netinfo",
3902
+ // coverage
3898
3903
  "@react-native-community/slider",
3899
3904
  // coverage
3900
3905
  "@react-native-documents/picker",
@@ -4248,7 +4253,7 @@ var init_supported_native_packages = __esm({
4248
4253
  "react-native-splash-screen",
4249
4254
  // coverage
4250
4255
  "react-native-svg",
4251
- // preset+visual-proof
4256
+ // preset+visual-proof+coverage
4252
4257
  "react-native-system-bars",
4253
4258
  // coverage
4254
4259
  "react-native-teleport",
@@ -4738,15 +4743,15 @@ var init_registry = __esm({
4738
4743
  id: "definitions-references-and-clipping",
4739
4744
  usage: 2,
4740
4745
  importance: 2,
4741
- estimate: 0.85,
4742
- rationale: "Defs, Use, Symbol, Mask, and ClipPath references are supported, while Pattern, Marker, and ForeignObject nodes are skipped by the CanvasKit renderer. Apps using those nodes do not see their referenced fill, marker geometry, or embedded native content."
4746
+ estimate: 0.95,
4747
+ rationale: "Defs, Use, Symbol, Mask, ClipPath, Pattern fills and Marker geometry render. The remaining 5% judgment allowance covers absent ForeignObject content, limited marker hosts and unverified context paint inheritance, and pattern non-scaling strokes using the tile matrix."
4743
4748
  },
4744
4749
  {
4745
4750
  id: "text-and-text-paths",
4746
4751
  usage: 1,
4747
4752
  importance: 2,
4748
- estimate: 0.85,
4749
- rationale: "Text and TSpan render through the SVG host path. TextPath is represented as a host type but skipped by the renderer, so text that should follow a path is not visible along that path."
4753
+ estimate: 0.92,
4754
+ rationale: "Text, TSpan and shaped TextPath glyphs render, including offsets, anchors, curves and spans. The remaining 8% judgment allowance covers advanced path text layout, per-glyph positioning, objectBoundingBox paints and font or emoji fallback parity."
4750
4755
  },
4751
4756
  {
4752
4757
  id: "xml-and-document-helpers",
@@ -4765,8 +4770,8 @@ var init_registry = __esm({
4765
4770
  ],
4766
4771
  capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-svg"],
4767
4772
  note: "CanvasKit rendering for shapes, text, XML, gradients, references, masks, clipping, and images; native SVG filters and geometry queries are unsupported",
4768
- working: "Svg, Path, Circle, Rect, Line, Ellipse, Polygon, Polyline, G, Text, TSpan, Defs, LinearGradient and RadialGradient with objectBoundingBox/userSpaceOnUse coordinates, focal points and gradientTransform, Stop, Mask, ClipPath, Image, Use and Symbol references, SvgXml, SvgUri, SvgAst, SvgFromXml, SvgCss, parse, fetchText, camelCase, shape transforms, fill/stroke/opacity/dasharray, currentColor, viewBox scaling",
4769
- missing: "native SVG filter components and toDataURL, hit-testing, path-metric, bounding-box, and matrix methods refuse calls; Pattern, Marker, ForeignObject, and TextPath do not render"
4773
+ working: "Svg, Path, Circle, Rect, Line, Ellipse, Polygon, Polyline, G, Text, TSpan, TextPath shaped glyphs along referenced paths, Defs, Pattern fills, Marker geometry on paths/lines/polylines/polygons, LinearGradient and RadialGradient with objectBoundingBox/userSpaceOnUse coordinates, focal points and gradientTransform, Stop, Mask, ClipPath, Image, Use and Symbol references, SvgXml, SvgUri, SvgAst, SvgFromXml, SvgCss, parse, fetchText, camelCase, shape transforms, fill/stroke/opacity/dasharray, currentColor, viewBox scaling",
4774
+ missing: "native SVG filter components and toDataURL, hit-testing, path-metric, bounding-box, and matrix methods refuse calls; ForeignObject does not render; marker context paints remain unverified; TextPath advanced layout, per-glyph positioning and objectBoundingBox paints are unsupported; pattern non-scaling strokes use the tile matrix; no font or emoji fallback parity claim"
4770
4775
  }
4771
4776
  ]
4772
4777
  },
@@ -4789,8 +4794,8 @@ var init_registry = __esm({
4789
4794
  id: "batched-operations",
4790
4795
  usage: 3,
4791
4796
  importance: 3,
4792
- estimate: 0.92,
4793
- rationale: "batch reads and writes work; multiGet returns an empty string for missing keys instead of null, estimated as 8% of batch workflows"
4797
+ estimate: 1,
4798
+ rationale: "upstream batch reads preserve null for absent keys and empty strings for stored values; batch writes run through the tenant storage seam"
4794
4799
  },
4795
4800
  {
4796
4801
  id: "merge-json",
@@ -4815,8 +4820,7 @@ var init_registry = __esm({
4815
4820
  }
4816
4821
  ],
4817
4822
  capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["@react-native-async-storage/async-storage"],
4818
- note: "native-seam only \u2014 upstream AsyncStorage JS runs from the bundle and resolves RNCAsyncStorage, which persists through tenant localStorage",
4819
- missing: "multiGet returns an empty string for absent keys instead of null; ordinary getItem returns null correctly"
4823
+ note: "native-seam only \u2014 upstream AsyncStorage JS runs from the bundle and resolves RNCAsyncStorage, which persists through tenant localStorage"
4820
4824
  }
4821
4825
  ]
4822
4826
  },
@@ -4847,8 +4851,8 @@ var init_registry = __esm({
4847
4851
  id: "navigation-controls",
4848
4852
  usage: 3,
4849
4853
  importance: 3,
4850
- estimate: 0.62,
4851
- rationale: "reload and injection work, while history, stop, interception, and failed-navigation behavior are incomplete"
4854
+ estimate: 0.7,
4855
+ rationale: "Reload and injection work. HTML fragment navigation now follows the observed iOS URL and callback sequence, and local link requests expose decisions with matching payloads. The remaining 30% judgment allowance retains initial-load interception, remote history, stop-loading, failed navigation and form requests."
4852
4856
  },
4853
4857
  {
4854
4858
  id: "layout-scroll-presentation",
@@ -4874,9 +4878,9 @@ var init_registry = __esm({
4874
4878
  ],
4875
4879
  capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-webview"],
4876
4880
  strictCoverage: REACT_NATIVE_WEBVIEW_STRICT_COVERAGE,
4877
- note: "native-seam only: the published package runs unchanged and routes RNCWebView through the tenant-to-shell hosted iframe surface. the implementation estimate uses reviewed feature weights; the separate equal-surface strict diagnostic includes the shared, iOS, and Android public prop and ref surface. paired native and SootSim runtime conformance covers local HTML, base URL, URI loading, load and navigation callbacks, both injection phases, two-way messaging, imperative URI reload and injection, content scrolling, parent translation, and onOpenWindow target delivery.",
4878
- working: "source.uri/source.html/source.baseUrl, Chromium cross-origin URI loading under the shell COEP, same-origin URI cookies, source.html persistent localStorage, document-start ReactNativeWebView bootstrap and injectedJavaScriptBeforeContentLoaded/injectedJavaScript on source.html, strict ReactNativeWebView.postMessage bridge envelope in both directions, onMessage synthetic event with navigation fields, onOpenWindow target delivery for source.html, successful onLoad/Start/End and onNavigationStateChange, ref.reload on URI pages, ref.injectJavaScript/postMessage, internal content scrolling, renderLoading, javaScriptEnabled sandbox, layout, inherited clipping and visibility, parked/live presentation",
4879
- missing: "Safari/WebKit cross-origin URI pages without COEP-compatible response headers remain permanently loading because WebKit ignores iframe credentialless; Chromium credentialless cross-origin URI frames send no credentials, including cookies set by their own origin, and use ephemeral storage; iframe pixels in canvas screenshots; script injection, ReactNativeWebView bootstrap, and onOpenWindow for remote pages, which get no bridge at all because a browser cannot script a cross-origin frame; cross-origin ref.goBack/goForward/stopLoading and truthful canGoBack/canGoForward values; failed HTTP/refused navigation callbacks (onError/onHttpError and renderError); onShouldStartLoadWithRequest, allowsBackForwardNavigationGestures, userAgent, dataDetectorTypes, cacheEnabled, incognito, scalesPageToFit, originWhitelist enforcement"
4881
+ note: "native-seam only: the published package runs unchanged and routes RNCWebView through the tenant-to-shell hosted iframe surface. the implementation estimate uses reviewed feature weights; the separate equal-surface strict diagnostic includes the shared, iOS, and Android public prop and ref surface. paired native and SootSim runtime conformance covers local HTML, base URL, URI loading, load and navigation callbacks, both injection phases, two-way messaging, imperative URI reload and injection, local HTML fragment navigation and link-request decisions, content scrolling, parent translation, and onOpenWindow target delivery.",
4882
+ working: "source.uri/source.html/source.baseUrl, Chromium cross-origin URI loading under the shell COEP, same-origin URI cookies, source.html persistent localStorage, document-start ReactNativeWebView bootstrap and injectedJavaScriptBeforeContentLoaded/injectedJavaScript on source.html, strict ReactNativeWebView.postMessage bridge envelope in both directions, onMessage synthetic event with navigation fields, onOpenWindow target delivery for source.html, successful onLoad/Start/End and onNavigationStateChange, ref.reload on URI pages, ref.injectJavaScript/postMessage, local HTML fragment URL/callback behavior, onShouldStartLoadWithRequest for local link clicks with native-shaped request and loading payloads, internal content scrolling, renderLoading, javaScriptEnabled sandbox, layout, inherited clipping and visibility, parked/live presentation",
4883
+ missing: "Safari/WebKit cross-origin URI pages without COEP-compatible response headers remain permanently loading because WebKit ignores iframe credentialless; Chromium credentialless cross-origin URI frames send no credentials, including cookies set by their own origin, and use ephemeral storage; iframe pixels in canvas screenshots; script injection, ReactNativeWebView bootstrap, and onOpenWindow for remote pages, which get no bridge at all because a browser cannot script a cross-origin frame; cross-origin ref.goBack/goForward/stopLoading and truthful canGoBack/canGoForward values; failed HTTP/refused navigation callbacks (onError/onHttpError and renderError); initial-load and form onShouldStartLoadWithRequest callbacks, allowsBackForwardNavigationGestures, userAgent, dataDetectorTypes, cacheEnabled, incognito, scalesPageToFit, originWhitelist enforcement"
4880
4884
  }
4881
4885
  ]
4882
4886
  },
@@ -4954,42 +4958,42 @@ var init_registry = __esm({
4954
4958
  id: "status-observation",
4955
4959
  usage: 3,
4956
4960
  importance: 3,
4957
- estimate: 0.9,
4958
- rationale: "fetch, the hook, and browser events expose online and offline state, but listeners do not receive the upstream initial snapshot"
4961
+ estimate: 1,
4962
+ rationale: "upstream fetch, hooks, and listeners receive the host network snapshot, including the initial subscription notification"
4959
4963
  },
4960
4964
  {
4961
4965
  id: "global-singleton",
4962
4966
  usage: 3,
4963
4967
  importance: 3,
4964
- estimate: 0.7,
4965
- rationale: "the facade supplies fetch and listeners but omits configure and refresh from the upstream singleton"
4968
+ estimate: 1,
4969
+ rationale: "the published singleton supplies configure, fetch, refresh, and subscription replacement over the native network seam"
4966
4970
  },
4967
4971
  {
4968
4972
  id: "hooks",
4969
4973
  usage: 3,
4970
4974
  importance: 2,
4971
- estimate: 0.55,
4972
- rationale: "useNetInfo works, while useNetInfoInstance and configuration handling are absent"
4975
+ estimate: 1,
4976
+ rationale: "published useNetInfo and useNetInfoInstance retain configuration, refresh, pause, resume, and subscription cleanup"
4973
4977
  },
4974
4978
  {
4975
4979
  id: "state-fidelity",
4976
4980
  usage: 2,
4977
4981
  importance: 2,
4978
- estimate: 0.55,
4979
- rationale: "type is reduced to wifi or none and details is always null"
4982
+ estimate: 0.75,
4983
+ rationale: "browser transport hints and data-saving state populate the upstream snapshot; native network identifiers and metrics remain unavailable, and reachability follows navigator.onLine"
4980
4984
  },
4981
4985
  {
4982
4986
  id: "public-enums",
4983
4987
  usage: 1,
4984
4988
  importance: 1,
4985
4989
  estimate: 1,
4986
- rationale: "The public runtime state-type enum is present; TypeScript-only exports do not require runtime implementations."
4990
+ rationale: "upstream NetInfoStateType and NetInfoCellularGeneration runtime enums are present"
4987
4991
  }
4988
4992
  ],
4989
4993
  capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["@react-native-community/netinfo"],
4990
- note: "navigator.onLine backed with online/offline event listeners",
4991
- working: "fetch, useNetInfo, addEventListener, NetInfoStateType",
4992
- missing: 'configure, refresh, useNetInfoInstance, hook configuration, and initial listener notification are absent; details is always null and type is limited to "wifi" or "none"'
4994
+ note: "published upstream JavaScript runs over the host-backed RNCNetInfo native seam; feature estimates cover browser-hosted network behavior",
4995
+ working: "fetch, refresh, configure, initial and subsequent listener notifications, useNetInfo, useNetInfoInstance, and upstream runtime enums",
4996
+ missing: "native network identifiers and metrics are unavailable; transport hints depend on browser support, and default Internet reachability mirrors navigator.onLine rather than probing a remote endpoint"
4993
4997
  }
4994
4998
  ]
4995
4999
  },
@@ -5307,10 +5311,10 @@ var init_registry = __esm({
5307
5311
  versions: [
5308
5312
  {
5309
5313
  range: ">=12.0.0",
5310
- coverage: 0.65,
5311
- note: "the published package runs unchanged; openBrowserAsync hands the URL to the host browser, browser-list and lifecycle methods preserve their public result shapes, and an auth popup that the hosted worker cannot retain resolves with a clean cancel result instead of throwing. the 65% score reflects those observed browser-hosted behaviors, not a working native auth-session controller.",
5312
- working: "openBrowserAsync host handoff, dismissBrowser result, warmUpAsync, coolDownAsync, mayInitWithUrlAsync, published non-Android getCustomTabsSupportingBrowsersAsync shape with empty arrays and undefined browser packages, clean auth-session cancel when the hosted worker cannot retain its popup, maybeCompleteAuthSession status, and upstream enums and option processing",
5313
- missing: "an embedded SFSafariViewController or Chrome Custom Tab, closing the host browser tab from dismissBrowser, retaining an auth popup for successful callback and redirect delivery, cookie isolation, and native styling controls"
5314
+ coverage: 0.8,
5315
+ note: "the published package runs unchanged; ordinary browser opens hand off to the host, and host-owned auth sessions deliver successful callback URLs, explicit user cancellation, programmatic dismissal, and replacement. the 80% implementation estimate follows the mounted published-package test under cross-origin isolation and ordinary popup blocking; native browser presentation and unrestricted redirect schemes remain unsupported.",
5316
+ working: "openBrowserAsync host handoff, dismissBrowser result, warmUpAsync, coolDownAsync, mayInitWithUrlAsync, published non-Android getCustomTabsSupportingBrowsersAsync shape, openAuthSessionAsync success with callback URL, explicit host Cancel Sign-In, dismissAuthSession and replacement dismissal, identity-matched callback and control cleanup, preservation of guest alerts during sign-in, and upstream enums and option processing",
5317
+ missing: "embedded SFSafariViewController or Chrome Custom Tab, native styling and cookie isolation, closing an ordinary handed-off host tab from dismissBrowser, custom-scheme or foreign-origin auth callbacks, and observing abandonment after browser isolation severs the popup proxy. auth requires a same-origin HTTP(S) callback and user activation allowed by popup policy; an abandoned isolated provider requires the visible host cancel control"
5314
5318
  }
5315
5319
  ]
5316
5320
  },
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.457 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.458 | (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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rnxsim",
3
- "version": "0.1.457",
3
+ "version": "0.1.458",
4
4
  "description": "Vite and Metro plugins, testing drivers, and SDK exports for rnx.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "SEE LICENSE IN LICENSE",