rnxsim 0.1.480 → 0.1.481

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 (55) hide show
  1. package/cli/commands/detox.ts +5 -6
  2. package/detox/index.ts +22 -0
  3. package/dist-lib/agent-daemon-client.cjs +1 -1
  4. package/dist-lib/agent-events.cjs +1 -1
  5. package/dist-lib/agent-identity.cjs +1 -1
  6. package/dist-lib/agent-sessions.cjs +1 -1
  7. package/dist-lib/attached-projects.cjs +1 -1
  8. package/dist-lib/auth/shared-session.cjs +1 -1
  9. package/dist-lib/backend-origin.cjs +1 -1
  10. package/dist-lib/beta.cjs +1 -1
  11. package/dist-lib/beta.mjs +1 -1
  12. package/dist-lib/bridge-constants.cjs +1 -1
  13. package/dist-lib/bridge-contract-input.cjs +1 -1
  14. package/dist-lib/bridge-contract-input.mjs +1 -1
  15. package/dist-lib/bridge-contract.cjs +1 -1
  16. package/dist-lib/bridge-contract.mjs +1 -1
  17. package/dist-lib/capture-contract.cjs +1 -1
  18. package/dist-lib/capture-contract.mjs +1 -1
  19. package/dist-lib/cli-constants.cjs +1 -1
  20. package/dist-lib/cloud-contract.cjs +1 -1
  21. package/dist-lib/cloud-contract.mjs +1 -1
  22. package/dist-lib/cloud.cjs +1 -1
  23. package/dist-lib/cloud.mjs +1 -1
  24. package/dist-lib/config.cjs +1 -1
  25. package/dist-lib/detox/index.cjs +85 -1
  26. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  27. package/dist-lib/home-paths.cjs +1 -1
  28. package/dist-lib/host/bridge-host.cjs +2 -2
  29. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  30. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  31. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  32. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  33. package/dist-lib/host/websocket-proxy.cjs +1 -1
  34. package/dist-lib/index.cjs +1 -1
  35. package/dist-lib/jump-to-source-babel.cjs +1 -1
  36. package/dist-lib/jump-to-source-native.cjs +1 -1
  37. package/dist-lib/menu.cjs +1 -1
  38. package/dist-lib/menu.mjs +1 -1
  39. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  40. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  41. package/dist-lib/metro-production-bundle.cjs +1 -1
  42. package/dist-lib/metro-production-bundle.mjs +1 -1
  43. package/dist-lib/metro.cjs +1 -1
  44. package/dist-lib/profiles.cjs +1 -1
  45. package/dist-lib/public-brand.cjs +1 -1
  46. package/dist-lib/react-native-host-modules.cjs +1 -1
  47. package/dist-lib/react-native-host-modules.mjs +1 -1
  48. package/dist-lib/render-mode.cjs +1 -1
  49. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  50. package/dist-lib/sdk.cjs +1 -1
  51. package/dist-lib/sdk.mjs +1 -1
  52. package/dist-lib/skills.cjs +14 -11
  53. package/dist-lib/vite.cjs +1 -1
  54. package/package.json +1 -1
  55. package/src/vite-plugin.ts +1 -0
@@ -215,12 +215,11 @@ export async function runDetox(args: string[], opts: RunDetoxOpts = {}): Promise
215
215
  console.log(` port: ${port}${headed ? ' (headed)' : ''}`)
216
216
  if (localConfig) console.log(` config: ${localConfig}`)
217
217
 
218
- // proof capture retains several full-resolution frames while jest tears its
219
- // browser down. node 24.16.0's maglev collector can crash in
220
- // ClearStaleLeftTrimmedPointerVisitor after every assertion has passed.
221
- // the conformance lane pins that exact node runtime, so disable only its
222
- // unstable optimization tier. normal user detox runs keep their own node
223
- // defaults and still resolve jest through npx.
218
+ // proof capture runs under the repo's pinned node runtime. its v8 collector
219
+ // can crash in ClearStaleLeftTrimmedPointerVisitor before jest reports a
220
+ // result or after a passing line. keep the existing proof-only no-maglev
221
+ // mode while that upstream runtime fault is investigated. normal user detox
222
+ // runs retain their node defaults and resolve jest through npx.
224
223
  const proofCapture =
225
224
  process.env.CONFORMANCE_PROOF === '1' || !!process.env.CONFORMANCE_PROOF_DIR
226
225
  const command = proofCapture ? 'node' : 'npx'
package/detox/index.ts CHANGED
@@ -6,6 +6,10 @@ import * as fs from 'fs'
6
6
  import * as path from 'path'
7
7
  import { chromium } from 'playwright'
8
8
  import { launchReapedChromeScoped } from '../../../scripts/lib/reap-browser'
9
+ import {
10
+ readBrowserCompositeCaptureRequest,
11
+ resolveBrowserCompositeCdpClip,
12
+ } from '../../sootsim-engine/src/capture/browser-composite'
9
13
  import { pollUntil } from '../src/poll-until'
10
14
  import {
11
15
  createExpect,
@@ -1359,6 +1363,24 @@ export const device = {
1359
1363
  }
1360
1364
  }
1361
1365
  _context = await _browser.newContext(contextOpts)
1366
+ await _context.exposeBinding('__sootsimHostCapture', async (source, value) => {
1367
+ const request = readBrowserCompositeCaptureRequest(value)
1368
+ const session = await source.page.context().newCDPSession(source.page)
1369
+ try {
1370
+ const result = await session.send('Page.captureScreenshot', {
1371
+ format: 'png',
1372
+ fromSurface: true,
1373
+ captureBeyondViewport: true,
1374
+ clip: resolveBrowserCompositeCdpClip(
1375
+ request,
1376
+ await session.send('Page.getLayoutMetrics'),
1377
+ ),
1378
+ })
1379
+ return 'data:image/png;base64,' + result.data
1380
+ } finally {
1381
+ await session.detach()
1382
+ }
1383
+ })
1362
1384
  _page = await _context.newPage()
1363
1385
  contextIdentity = ++nextContextIdentity
1364
1386
  }
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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;
@@ -756,6 +756,72 @@ async function launchReapedChromeScoped(launch, opts = {}, rendererTarget, polic
756
756
  );
757
757
  }
758
758
 
759
+ // ../sootsim-engine/src/capture/browser-composite.ts
760
+ function resolveBrowserCompositeCdpClip(request, metrics) {
761
+ if (!metrics || typeof metrics !== "object") {
762
+ throw new Error("browser composite capture requires CDP layout metrics");
763
+ }
764
+ const physical = Reflect.get(metrics, "layoutViewport");
765
+ const css = Reflect.get(metrics, "cssLayoutViewport");
766
+ if (!physical || typeof physical !== "object" || !css || typeof css !== "object") {
767
+ throw new Error("browser composite capture requires physical and CSS viewports");
768
+ }
769
+ const physicalWidth = Reflect.get(physical, "clientWidth");
770
+ const cssWidth = Reflect.get(css, "clientWidth");
771
+ if (typeof physicalWidth !== "number" || !Number.isFinite(physicalWidth) || physicalWidth <= 0 || typeof cssWidth !== "number" || !Number.isFinite(cssWidth) || cssWidth <= 0) {
772
+ throw new Error("browser composite capture requires positive viewport widths");
773
+ }
774
+ const devicePixelRatio = physicalWidth / cssWidth;
775
+ const padding = 1;
776
+ return {
777
+ x: request.rect.x - padding,
778
+ y: request.rect.y - padding,
779
+ width: request.rect.width + padding * 2,
780
+ height: request.rect.height + padding * 2,
781
+ scale: request.outputWidth / request.rect.width / devicePixelRatio
782
+ };
783
+ }
784
+ function readBrowserCompositeCaptureRequest(value) {
785
+ if (!value || typeof value !== "object") {
786
+ throw new Error("browser composite capture request must be an object");
787
+ }
788
+ const rect = Reflect.get(value, "rect");
789
+ if (!rect || typeof rect !== "object") {
790
+ throw new Error("browser composite capture request requires a rect");
791
+ }
792
+ const request = {
793
+ rect: {
794
+ x: Reflect.get(rect, "x"),
795
+ y: Reflect.get(rect, "y"),
796
+ width: Reflect.get(rect, "width"),
797
+ height: Reflect.get(rect, "height")
798
+ },
799
+ outputWidth: Reflect.get(value, "outputWidth"),
800
+ outputHeight: Reflect.get(value, "outputHeight")
801
+ };
802
+ const positions = [request.rect.x, request.rect.y];
803
+ const dimensions = [
804
+ request.rect.width,
805
+ request.rect.height,
806
+ request.outputWidth,
807
+ request.outputHeight
808
+ ];
809
+ if (positions.some((number) => typeof number !== "number" || !Number.isFinite(number))) {
810
+ throw new Error("browser composite capture request positions must be finite");
811
+ }
812
+ if (dimensions.some(
813
+ (number) => typeof number !== "number" || !Number.isFinite(number) || number <= 0
814
+ ) || !Number.isInteger(request.outputWidth) || !Number.isInteger(request.outputHeight)) {
815
+ throw new Error("browser composite capture request dimensions must be positive");
816
+ }
817
+ const scaleX = request.outputWidth / request.rect.width;
818
+ const scaleY = request.outputHeight / request.rect.height;
819
+ if (Math.abs(scaleX - scaleY) > 1e-3) {
820
+ throw new Error("browser composite capture output scale must be uniform");
821
+ }
822
+ return request;
823
+ }
824
+
759
825
  // src/poll-until.ts
760
826
  async function pollUntil(read, ready, options) {
761
827
  if (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0) {
@@ -2777,6 +2843,24 @@ var device = {
2777
2843
  };
2778
2844
  }
2779
2845
  _context = await _browser.newContext(contextOpts);
2846
+ await _context.exposeBinding("__sootsimHostCapture", async (source, value) => {
2847
+ const request = readBrowserCompositeCaptureRequest(value);
2848
+ const session = await source.page.context().newCDPSession(source.page);
2849
+ try {
2850
+ const result = await session.send("Page.captureScreenshot", {
2851
+ format: "png",
2852
+ fromSurface: true,
2853
+ captureBeyondViewport: true,
2854
+ clip: resolveBrowserCompositeCdpClip(
2855
+ request,
2856
+ await session.send("Page.getLayoutMetrics")
2857
+ )
2858
+ });
2859
+ return "data:image/png;base64," + result.data;
2860
+ } finally {
2861
+ await session.detach();
2862
+ }
2863
+ });
2780
2864
  _page = await _context.newPage();
2781
2865
  contextIdentity = ++nextContextIdentity;
2782
2866
  }
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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;
@@ -2995,7 +2995,7 @@ function isHermesBytecodeText(source) {
2995
2995
  const second = source.charCodeAt(1);
2996
2996
  const third = source.charCodeAt(2);
2997
2997
  const fourth = source.charCodeAt(3);
2998
- return (first === 198 || first === 65533) && second === 31 && (third === 188 || third === 65533) && fourth === 3 || source.includes("\0") && !source.includes("__d(");
2998
+ return (first === 198 || first === 65533) && second === 31 && (third === 188 || third === 65533) && fourth === 3;
2999
2999
  }
3000
3000
  async function fingerprintBlindMetroBundle(source) {
3001
3001
  if (isHermesBytecodeText(source)) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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;
@@ -3697,13 +3697,13 @@ var init_capability_outcomes2 = __esm({
3697
3697
  assessed: 0
3698
3698
  },
3699
3699
  ios: {
3700
- passedWeight: 180,
3700
+ passedWeight: 179,
3701
3701
  failedWeight: 0,
3702
- unassessedWeight: 1027,
3702
+ unassessedWeight: 1028,
3703
3703
  totalWeight: 1207,
3704
- assessedWeight: 180,
3704
+ assessedWeight: 179,
3705
3705
  compatibility: 1,
3706
- assessed: 0.1491300745650373
3706
+ assessed: 0.14830157415078707
3707
3707
  }
3708
3708
  },
3709
3709
  usage: {
@@ -3717,13 +3717,13 @@ var init_capability_outcomes2 = __esm({
3717
3717
  assessed: 0
3718
3718
  },
3719
3719
  ios: {
3720
- passedWeight: 8422,
3720
+ passedWeight: 8420,
3721
3721
  failedWeight: 0,
3722
- unassessedWeight: 24028,
3722
+ unassessedWeight: 24030,
3723
3723
  totalWeight: 32450,
3724
- assessedWeight: 8422,
3724
+ assessedWeight: 8420,
3725
3725
  compatibility: 1,
3726
- assessed: 0.259537750385208
3726
+ assessed: 0.25947611710323576
3727
3727
  }
3728
3728
  }
3729
3729
  },
@@ -4369,7 +4369,10 @@ var init_capability_outcomes2 = __esm({
4369
4369
  }
4370
4370
  },
4371
4371
  capturedAt: "2026-09-08T06:14:31.559Z",
4372
- receipts: ["retained-essentials-react-native-screens-r22458-20260908"],
4372
+ receipts: [
4373
+ "retained-essentials-react-native-screens-r22458-20260908",
4374
+ "screens-sheets-paired-clean-p40993"
4375
+ ],
4373
4376
  sourceCommit: "ea3eb82eeea6f6925ae708b7028cb577ad37f36a"
4374
4377
  },
4375
4378
  unmatchedReferenceCount: 0,
@@ -27072,7 +27075,7 @@ function isHermesBytecodeText(source) {
27072
27075
  const second = source.charCodeAt(1);
27073
27076
  const third = source.charCodeAt(2);
27074
27077
  const fourth = source.charCodeAt(3);
27075
- return (first === 198 || first === 65533) && second === 31 && (third === 188 || third === 65533) && fourth === 3 || source.includes("\0") && !source.includes("__d(");
27078
+ return (first === 198 || first === 65533) && second === 31 && (third === 188 || third === 65533) && fourth === 3;
27076
27079
  }
27077
27080
  async function fingerprintBlindMetroBundle(source) {
27078
27081
  if (isHermesBytecodeText(source)) {
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.480 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.481 | (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.480",
3
+ "version": "0.1.481",
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",
@@ -505,6 +505,7 @@ const ENGINE_WORKER_BOOT_CLOSURES: WorkerBootClosure[] = [
505
505
  // when adding font work here, or both caps take the parser again.
506
506
  { entry: 'src/render-worker/shell-worker-entry.ts', maxBytes: 3_260_000 },
507
507
  { entry: 'src/render-worker/compositor-worker-entry.ts', maxBytes: 1_080_000 },
508
+ { entry: 'src/render-worker/compositor-worker-ganesh-entry.ts', maxBytes: 1_820_000 },
508
509
  ]
509
510
 
510
511
  export function workerBootChunkPlugin(closures: WorkerBootClosure[]): Plugin {