rnxsim 0.1.521 → 0.1.522

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 (54) hide show
  1. package/dist-lib/agent-daemon-client.cjs +1 -1
  2. package/dist-lib/agent-events.cjs +1 -1
  3. package/dist-lib/agent-identity.cjs +1 -1
  4. package/dist-lib/agent-sessions.cjs +1 -1
  5. package/dist-lib/attached-projects.cjs +1 -1
  6. package/dist-lib/auth/shared-session.cjs +1 -1
  7. package/dist-lib/backend-origin.cjs +1 -1
  8. package/dist-lib/beta.cjs +1 -1
  9. package/dist-lib/beta.mjs +1 -1
  10. package/dist-lib/bridge-constants.cjs +1 -1
  11. package/dist-lib/bridge-contract-input.cjs +1 -1
  12. package/dist-lib/bridge-contract-input.mjs +1 -1
  13. package/dist-lib/bridge-contract.cjs +1 -1
  14. package/dist-lib/bridge-contract.mjs +1 -1
  15. package/dist-lib/capture-contract.cjs +1 -1
  16. package/dist-lib/capture-contract.mjs +1 -1
  17. package/dist-lib/cli-constants.cjs +1 -1
  18. package/dist-lib/cloud-contract.cjs +1 -1
  19. package/dist-lib/cloud-contract.mjs +1 -1
  20. package/dist-lib/cloud.cjs +1 -1
  21. package/dist-lib/cloud.mjs +1 -1
  22. package/dist-lib/config.cjs +1 -1
  23. package/dist-lib/detox/index.cjs +1 -1
  24. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  25. package/dist-lib/home-paths.cjs +1 -1
  26. package/dist-lib/host/bridge-host.cjs +7 -3
  27. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  28. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  29. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  30. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  31. package/dist-lib/host/websocket-proxy.cjs +1 -1
  32. package/dist-lib/index.cjs +1 -1
  33. package/dist-lib/jump-to-source-babel.cjs +1 -1
  34. package/dist-lib/jump-to-source-native.cjs +1 -1
  35. package/dist-lib/menu.cjs +1 -1
  36. package/dist-lib/menu.mjs +1 -1
  37. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  38. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  39. package/dist-lib/metro-production-bundle.cjs +1 -1
  40. package/dist-lib/metro-production-bundle.mjs +1 -1
  41. package/dist-lib/metro.cjs +1 -1
  42. package/dist-lib/profiles.cjs +1 -1
  43. package/dist-lib/public-brand.cjs +1 -1
  44. package/dist-lib/react-native-host-modules.cjs +1 -1
  45. package/dist-lib/react-native-host-modules.mjs +1 -1
  46. package/dist-lib/render-mode.cjs +1 -1
  47. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  48. package/dist-lib/sdk.cjs +1 -1
  49. package/dist-lib/sdk.mjs +1 -1
  50. package/dist-lib/skills.cjs +7 -3
  51. package/dist-lib/swift.cjs +27 -2
  52. package/dist-lib/vite.cjs +33 -22
  53. package/package.json +1 -1
  54. package/src/vite-plugin-swift.ts +59 -23
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var REFUSED_PERFORM_STEP_TYPES = [
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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;
@@ -1204,14 +1204,18 @@ var init_devices = __esm({
1204
1204
  width: 402,
1205
1205
  height: 874,
1206
1206
  scale: 3,
1207
- statusBarHeight: 59,
1207
+ // 62, measured off the ios 26.4 simulator for this model: a view pinned to
1208
+ // the top of the safe area starts its ink at 186px at 3x. the 16 pro has
1209
+ // the same 402x874 panel and the 17 pro max the same island, and both
1210
+ // already say 62; this entry was the table's only 59.
1211
+ statusBarHeight: 62,
1208
1212
  homeIndicatorHeight: 34,
1209
1213
  cornerRadius: cornerRadii(61),
1210
1214
  continuousCornerRadius: cornerRadii(84.661),
1211
1215
  // display border 1.44mm plus the visible flat housing rail.
1212
1216
  frameInsets: uniformFrameInsets(15.3),
1213
1217
  dynamicIsland: { width: 126, height: 38, top: 14 },
1214
- safeAreaInsets: { top: 59, bottom: 34, left: 0, right: 0 },
1218
+ safeAreaInsets: { top: 62, bottom: 34, left: 0, right: 0 },
1215
1219
  iosVersion: "26.4",
1216
1220
  keyboardHeight: 308,
1217
1221
  physicalPPI: 460,
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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;
@@ -25266,14 +25266,18 @@ var init_devices = __esm({
25266
25266
  width: 402,
25267
25267
  height: 874,
25268
25268
  scale: 3,
25269
- statusBarHeight: 59,
25269
+ // 62, measured off the ios 26.4 simulator for this model: a view pinned to
25270
+ // the top of the safe area starts its ink at 186px at 3x. the 16 pro has
25271
+ // the same 402x874 panel and the 17 pro max the same island, and both
25272
+ // already say 62; this entry was the table's only 59.
25273
+ statusBarHeight: 62,
25270
25274
  homeIndicatorHeight: 34,
25271
25275
  cornerRadius: cornerRadii(61),
25272
25276
  continuousCornerRadius: cornerRadii(84.661),
25273
25277
  // display border 1.44mm plus the visible flat housing rail.
25274
25278
  frameInsets: uniformFrameInsets(15.3),
25275
25279
  dynamicIsland: { width: 126, height: 38, top: 14 },
25276
- safeAreaInsets: { top: 59, bottom: 34, left: 0, right: 0 },
25280
+ safeAreaInsets: { top: 62, bottom: 34, left: 0, right: 0 },
25277
25281
  iosVersion: "26.4",
25278
25282
  keyboardHeight: 308,
25279
25283
  physicalPPI: 460,
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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;
@@ -1075,6 +1075,26 @@ function NavigationStackHost({ node, deliver }) {
1075
1075
  screen.id
1076
1076
  )) });
1077
1077
  }
1078
+ var REGULAR_WIDTH = 768;
1079
+ function SplitViewHost({
1080
+ node,
1081
+ deliver,
1082
+ cache
1083
+ }) {
1084
+ const { width } = (0, import_react_native.useWindowDimensions)();
1085
+ const screens = (node.c ?? []).filter((child) => child.t === "NavigationScreen");
1086
+ if (width < REGULAR_WIDTH) {
1087
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, { style: NAVIGATOR_FILL, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NavigationStackHost, { node, deliver }) });
1088
+ }
1089
+ const sidebar = screens[0];
1090
+ const pushed = screens.slice(1);
1091
+ const detailProp = node.p?.detail;
1092
+ const detail = isRecord(detailProp) && detailProp.t === "SplitDetail" ? readNodes(detailProp.c) : [];
1093
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react_native.View, { style: { flex: 1, flexDirection: "row", alignSelf: "stretch" }, children: [
1094
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, { style: { width: 320 }, children: sidebar ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NavigationStackHost, { node: { ...node, c: [sidebar] }, deliver }) : null }),
1095
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, { style: { flex: 1 }, children: pushed.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NavigationStackHost, { node: { ...node, c: pushed }, deliver }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: detail.map((child) => renderNode(child, deliver, cache)) }) })
1096
+ ] });
1097
+ }
1078
1098
  function renderNode(node, deliver, cache) {
1079
1099
  const cached = cache?.entries.get(node.id);
1080
1100
  if (cached && sameNode(cached.node, node)) return cached.element;
@@ -1090,6 +1110,9 @@ function buildNode(node, deliver, cache) {
1090
1110
  if (node.t === "NavigationStack") {
1091
1111
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, { style: NAVIGATOR_FILL, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NavigationStackHost, { node, deliver }) }, node.id);
1092
1112
  }
1113
+ if (node.t === "NavigationSplitView") {
1114
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SplitViewHost, { node, deliver, cache }, node.id);
1115
+ }
1093
1116
  if (node.t === "NavigationLink") {
1094
1117
  return (0, import_react.createElement)(
1095
1118
  import_ui.Button,
@@ -1127,7 +1150,9 @@ function SwiftTree({
1127
1150
  import_ui.Host,
1128
1151
  {
1129
1152
  style: { flex: 1 },
1130
- ignoreSafeArea: tree.some((node) => node.t === "NavigationStack"),
1153
+ ignoreSafeArea: tree.some(
1154
+ (node) => node.t === "NavigationStack" || node.t === "NavigationSplitView"
1155
+ ),
1131
1156
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_native.NavigationIndependentTree, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_native.NavigationContainer, { children: tree.map((node) => renderNode(node, deliver, cache)) }) })
1132
1157
  }
1133
1158
  )
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.521 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.522 | (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;
@@ -848,6 +848,11 @@ function builtArtifact(packagePath) {
848
848
  }
849
849
  return import_node_path4.default.join(binDir, artifacts[0]);
850
850
  }
851
+ function streamText(value) {
852
+ if (typeof value === "string") return value.trim();
853
+ if (Buffer.isBuffer(value)) return value.toString("utf8").trim();
854
+ return "";
855
+ }
851
856
  async function compile(packagePath, stamp) {
852
857
  const swift = import_node_path4.default.join(TOOLCHAIN_BIN, "swift");
853
858
  if (!import_node_fs3.default.existsSync(swift)) {
@@ -872,10 +877,13 @@ async function compile(packagePath, stamp) {
872
877
  { maxBuffer: 64 * 1024 * 1024 }
873
878
  );
874
879
  } catch (error) {
875
- throw new Error(
876
- `swift build failed for ${packagePath}
877
- ${error instanceof Error ? error.message : String(error)}`
878
- );
880
+ const streams = error && typeof error === "object" ? [
881
+ streamText(Reflect.get(error, "stdout")),
882
+ streamText(Reflect.get(error, "stderr"))
883
+ ].filter(Boolean) : [];
884
+ const detail = streams.length > 0 ? streams.join("\n") : error instanceof Error ? error.message : String(error);
885
+ throw new Error(`swift build failed for ${packagePath}
886
+ ${detail}`);
879
887
  }
880
888
  const bytes = import_node_fs3.default.readFileSync(builtArtifact(packagePath));
881
889
  return {
@@ -887,7 +895,13 @@ ${error instanceof Error ? error.message : String(error)}`
887
895
  function artifactFor(project) {
888
896
  const stamp = sourceStamp(project.packagePath);
889
897
  if (project.artifact?.stamp === stamp) return Promise.resolve(project.artifact);
890
- project.building ??= compile(project.packagePath, stamp).then(
898
+ if (project.building) {
899
+ const running = project.building;
900
+ if (running.stamp === stamp) return running.promise;
901
+ const again = () => artifactFor(project);
902
+ return running.promise.then(again, again);
903
+ }
904
+ const promise = compile(project.packagePath, stamp).then(
891
905
  (artifact) => {
892
906
  project.artifact = artifact;
893
907
  project.building = null;
@@ -898,7 +912,8 @@ function artifactFor(project) {
898
912
  throw error;
899
913
  }
900
914
  );
901
- return project.building;
915
+ project.building = { stamp, promise };
916
+ return promise;
902
917
  }
903
918
  function packageFor(file) {
904
919
  let dir = import_node_path4.default.dirname(file);
@@ -938,6 +953,7 @@ function swiftPlugin(options = {}) {
938
953
  async load(id) {
939
954
  if (!id.startsWith(VIRTUAL_PREFIX)) return null;
940
955
  const file = id.slice(VIRTUAL_PREFIX.length);
956
+ if (!import_node_fs3.default.existsSync(file)) throw new Error(`swift source ${file} no longer exists`);
941
957
  const packagePath = options.packagePath ?? packageFor(file);
942
958
  const project = projectFor(packagePath);
943
959
  for (const source of sourceFiles(packagePath)) this.addWatchFile(source);
@@ -974,22 +990,17 @@ function swiftPlugin(options = {}) {
974
990
  next();
975
991
  return;
976
992
  }
977
- void (async () => {
978
- for (const project of projects.values()) {
979
- const artifact = await artifactFor(project);
980
- if (url === `${ARTIFACT_PATH}${artifact.hash}.wasm`) {
981
- res.setHeader("access-control-allow-origin", "*");
982
- res.setHeader("content-type", "application/wasm");
983
- res.end(artifact.bytes);
984
- return;
985
- }
993
+ for (const project of projects.values()) {
994
+ const artifact = project.artifact;
995
+ if (artifact && url === `${ARTIFACT_PATH}${artifact.hash}.wasm`) {
996
+ res.setHeader("access-control-allow-origin", "*");
997
+ res.setHeader("content-type", "application/wasm");
998
+ res.end(artifact.bytes);
999
+ return;
986
1000
  }
987
- res.statusCode = 404;
988
- res.end("swift artifact is stale");
989
- })().catch((error) => {
990
- res.statusCode = 500;
991
- res.end(error instanceof Error ? error.message : String(error));
992
- });
1001
+ }
1002
+ res.statusCode = 404;
1003
+ res.end("swift artifact is stale");
993
1004
  });
994
1005
  }
995
1006
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rnxsim",
3
- "version": "0.1.521",
3
+ "version": "0.1.522",
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",
@@ -47,7 +47,8 @@ interface SwiftArtifact {
47
47
  interface SwiftProject {
48
48
  packagePath: string
49
49
  artifact: SwiftArtifact | null
50
- building: Promise<SwiftArtifact> | null
50
+ // the build in flight and the sources it was started from
51
+ building: { stamp: string; promise: Promise<SwiftArtifact> } | null
51
52
  }
52
53
 
53
54
  // a project is its swiftpm package: the build, the artifact, and the dev
@@ -156,6 +157,12 @@ function builtArtifact(packagePath: string): string {
156
157
  return path.join(binDir, artifacts[0])
157
158
  }
158
159
 
160
+ function streamText(value: unknown): string {
161
+ if (typeof value === 'string') return value.trim()
162
+ if (Buffer.isBuffer(value)) return value.toString('utf8').trim()
163
+ return ''
164
+ }
165
+
159
166
  async function compile(packagePath: string, stamp: string): Promise<SwiftArtifact> {
160
167
  const swift = path.join(TOOLCHAIN_BIN, 'swift')
161
168
  if (!fs.existsSync(swift)) {
@@ -180,9 +187,24 @@ async function compile(packagePath: string, stamp: string): Promise<SwiftArtifac
180
187
  { maxBuffer: 64 * 1024 * 1024 },
181
188
  )
182
189
  } catch (error) {
183
- throw new Error(
184
- `swift build failed for ${packagePath}\n${error instanceof Error ? error.message : String(error)}`,
185
- )
190
+ // `swift build` prints the compiler's diagnostics on stdout and swiftpm's
191
+ // own on stderr; the failure's message holds only the command line, so
192
+ // both streams are what names the line that broke. stdout leads because
193
+ // compiler diagnostics are what the editor needs to show.
194
+ const streams =
195
+ error && typeof error === 'object'
196
+ ? [
197
+ streamText(Reflect.get(error, 'stdout')),
198
+ streamText(Reflect.get(error, 'stderr')),
199
+ ].filter(Boolean)
200
+ : []
201
+ const detail =
202
+ streams.length > 0
203
+ ? streams.join('\n')
204
+ : error instanceof Error
205
+ ? error.message
206
+ : String(error)
207
+ throw new Error(`swift build failed for ${packagePath}\n${detail}`)
186
208
  }
187
209
  const bytes = fs.readFileSync(builtArtifact(packagePath))
188
210
  return {
@@ -195,7 +217,17 @@ async function compile(packagePath: string, stamp: string): Promise<SwiftArtifac
195
217
  function artifactFor(project: SwiftProject): Promise<SwiftArtifact> {
196
218
  const stamp = sourceStamp(project.packagePath)
197
219
  if (project.artifact?.stamp === stamp) return Promise.resolve(project.artifact)
198
- project.building ??= compile(project.packagePath, stamp).then(
220
+ if (project.building) {
221
+ // a second edit during a build: the build in flight was started from
222
+ // older sources, so its artifact is not the answer for these. wait it out
223
+ // and ask again, which starts the build these sources need; joining it
224
+ // would emit the older artifact and nothing would trigger another load.
225
+ const running = project.building
226
+ if (running.stamp === stamp) return running.promise
227
+ const again = () => artifactFor(project)
228
+ return running.promise.then(again, again)
229
+ }
230
+ const promise = compile(project.packagePath, stamp).then(
199
231
  (artifact) => {
200
232
  project.artifact = artifact
201
233
  project.building = null
@@ -206,7 +238,8 @@ function artifactFor(project: SwiftProject): Promise<SwiftArtifact> {
206
238
  throw error
207
239
  },
208
240
  )
209
- return project.building
241
+ project.building = { stamp, promise }
242
+ return promise
210
243
  }
211
244
 
212
245
  // the swiftpm package that owns an imported file: the nearest directory at
@@ -274,6 +307,10 @@ export function swiftPlugin(options: SwiftPluginOptions = {}): Plugin {
274
307
  async load(id) {
275
308
  if (!id.startsWith(VIRTUAL_PREFIX)) return null
276
309
  const file = id.slice(VIRTUAL_PREFIX.length)
310
+ // the module is the whole package's artifact, so an import of a file
311
+ // that was deleted would keep answering with it. a deleted .tsx fails
312
+ // its importer; so does a deleted .swift.
313
+ if (!fs.existsSync(file)) throw new Error(`swift source ${file} no longer exists`)
277
314
  const packagePath = options.packagePath ?? packageFor(file)
278
315
  const project = projectFor(packagePath)
279
316
  // every source in the package is a dependency of this module, so a
@@ -332,24 +369,23 @@ export function swiftPlugin(options: SwiftPluginOptions = {}): Plugin {
332
369
  // the url names a content hash, not a package: the request is answered
333
370
  // by whichever known project built it, so a React Native app whose
334
371
  // swift package sits below its root serves the same path its imports
335
- // compiled.
336
- void (async () => {
337
- for (const project of projects.values()) {
338
- const artifact = await artifactFor(project)
339
- if (url === `${ARTIFACT_PATH}${artifact.hash}.wasm`) {
340
- // the tenant worker's origin is the shell, never this dev server
341
- res.setHeader('access-control-allow-origin', '*')
342
- res.setHeader('content-type', 'application/wasm')
343
- res.end(artifact.bytes)
344
- return
345
- }
372
+ // compiled. served from what is already built, never rebuilt here: the
373
+ // page only knows a hash that `load` emitted, and `load` under a compile
374
+ // error emits the last good hash, whose bytes are still the project's
375
+ // artifact. rebuilding would fail that fetch with the compile error and
376
+ // fail every other project's artifact with it.
377
+ for (const project of projects.values()) {
378
+ const artifact = project.artifact
379
+ if (artifact && url === `${ARTIFACT_PATH}${artifact.hash}.wasm`) {
380
+ // the tenant worker's origin is the shell, never this dev server
381
+ res.setHeader('access-control-allow-origin', '*')
382
+ res.setHeader('content-type', 'application/wasm')
383
+ res.end(artifact.bytes)
384
+ return
346
385
  }
347
- res.statusCode = 404
348
- res.end('swift artifact is stale')
349
- })().catch((error: unknown) => {
350
- res.statusCode = 500
351
- res.end(error instanceof Error ? error.message : String(error))
352
- })
386
+ }
387
+ res.statusCode = 404
388
+ res.end('swift artifact is stale')
353
389
  })
354
390
  },
355
391
  }