peachsim 0.1.638 → 0.1.639

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 (80) hide show
  1. package/cli/command-registry.ts +1 -0
  2. package/cli/commands/control.ts +42 -5
  3. package/cli/commands/swift.ts +326 -0
  4. package/cli/main.ts +11 -0
  5. package/cli/outbound-endpoints.ts +5 -1
  6. package/dist-lib/agent-daemon-client.cjs +1 -1
  7. package/dist-lib/agent-events.cjs +1 -1
  8. package/dist-lib/agent-identity.cjs +1 -1
  9. package/dist-lib/agent-sessions.cjs +1 -1
  10. package/dist-lib/attached-projects.cjs +1 -1
  11. package/dist-lib/auth/shared-session.cjs +1 -1
  12. package/dist-lib/backend-origin.cjs +1 -1
  13. package/dist-lib/beta.cjs +1 -1
  14. package/dist-lib/beta.mjs +1 -1
  15. package/dist-lib/bridge-constants.cjs +1 -1
  16. package/dist-lib/bridge-contract-input.cjs +1 -1
  17. package/dist-lib/bridge-contract-input.mjs +1 -1
  18. package/dist-lib/bridge-contract.cjs +1 -1
  19. package/dist-lib/bridge-contract.mjs +1 -1
  20. package/dist-lib/capture-contract.cjs +1 -1
  21. package/dist-lib/capture-contract.mjs +1 -1
  22. package/dist-lib/cli-constants.cjs +1 -1
  23. package/dist-lib/cloud-contract.cjs +1 -1
  24. package/dist-lib/cloud-contract.mjs +1 -1
  25. package/dist-lib/cloud-test-args.cjs +1 -1
  26. package/dist-lib/cloud-test-args.mjs +1 -1
  27. package/dist-lib/cloud.cjs +1 -1
  28. package/dist-lib/cloud.mjs +1 -1
  29. package/dist-lib/config.cjs +1 -1
  30. package/dist-lib/detox/index.cjs +1 -1
  31. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  32. package/dist-lib/home-paths.cjs +1 -1
  33. package/dist-lib/host/bridge-host.cjs +1 -1
  34. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  35. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  36. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  37. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  38. package/dist-lib/host/websocket-proxy.cjs +1 -1
  39. package/dist-lib/index.cjs +13 -4
  40. package/dist-lib/jump-to-source-babel.cjs +1 -1
  41. package/dist-lib/jump-to-source-native.cjs +1 -1
  42. package/dist-lib/kotlin-host.cjs +1 -1
  43. package/dist-lib/menu.cjs +1 -1
  44. package/dist-lib/menu.mjs +1 -1
  45. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  46. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  47. package/dist-lib/metro-production-bundle.cjs +1 -1
  48. package/dist-lib/metro-production-bundle.mjs +1 -1
  49. package/dist-lib/metro.cjs +1 -1
  50. package/dist-lib/native-app-identity.cjs +1 -1
  51. package/dist-lib/native-app-identity.mjs +1 -1
  52. package/dist-lib/profiles.cjs +1 -1
  53. package/dist-lib/public-brand.cjs +1 -1
  54. package/dist-lib/react-native-host-modules.cjs +1 -1
  55. package/dist-lib/react-native-host-modules.mjs +1 -1
  56. package/dist-lib/render-mode.cjs +1 -1
  57. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  58. package/dist-lib/sdk.cjs +1 -1
  59. package/dist-lib/sdk.mjs +1 -1
  60. package/dist-lib/skills.cjs +48 -33
  61. package/dist-lib/swift-compile.cjs +1 -1
  62. package/dist-lib/swift-compile.mjs +1 -1
  63. package/dist-lib/swift-package.cjs +1 -1
  64. package/dist-lib/swift-package.mjs +1 -1
  65. package/dist-lib/swift-submit.cjs +89 -8
  66. package/dist-lib/swift-submit.mjs +78 -8
  67. package/dist-lib/swift.cjs +16 -33308
  68. package/dist-lib/vite-swift.cjs +422 -247
  69. package/dist-lib/vite.cjs +13 -4
  70. package/package.json +1 -1
  71. package/skills/contrast/SKILL.md +1 -0
  72. package/src/assetCatalogContract.ts +16 -0
  73. package/src/metro-runtime-source.ts +15 -0
  74. package/src/swift-guest.ts +51 -0
  75. package/src/swift-host.ts +900 -0
  76. package/src/swift-submit.ts +97 -6
  77. package/src/swift.ts +36 -8
  78. package/src/swiftContract.ts +52 -0
  79. package/src/vite-plugin-one.ts +4 -3
  80. package/src/vite-plugin-swift.ts +43 -755
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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;
@@ -4247,8 +4247,16 @@ function streamFile(res, stream) {
4247
4247
  stream.pipe(res);
4248
4248
  }
4249
4249
 
4250
- // src/vite-plugin-one.ts
4250
+ // src/swift-submit.ts
4251
+ var SWIFT_PACKAGE_PATH = "/__peach/swift-package/";
4251
4252
  var SWIFT_HMR_PATH = "/__peach/swift-hmr";
4253
+ var MAX_SWIFT_COMPILE_SOURCE_BYTES = 2 * 1024 * 1024;
4254
+ var MAX_SWIFT_COMPILE_RESOURCE_BYTES = 2 * 1024 * 1024;
4255
+ var MAX_SWIFT_COMPILE_RESOURCE_TOTAL_BYTES = 8 * 1024 * 1024;
4256
+ var MAX_SWIFT_COMPILE_IMAGE_BYTES = 4 * 1024 * 1024;
4257
+ var MAX_SWIFT_COMPILE_IMAGE_TOTAL_BYTES = 16 * 1024 * 1024;
4258
+
4259
+ // src/vite-plugin-one.ts
4252
4260
  var SWIFT_ROUTE_PREFIX = "/__peach/swift";
4253
4261
  var swiftHost;
4254
4262
  var loadSwiftHost = () => swiftHost ??= import("peachsim/vite-swift");
@@ -4350,7 +4358,8 @@ function rnxPlugin(options = {}) {
4350
4358
  if (!served) next();
4351
4359
  }).catch(next);
4352
4360
  });
4353
- server.watcher.on("change", (file) => {
4361
+ server.watcher.on("all", (event, file) => {
4362
+ if (event !== "add" && event !== "unlink" && event !== "change") return;
4354
4363
  if (activeSwiftPackages.size === 0) return;
4355
4364
  const moduleRoot = moduleRootFor();
4356
4365
  let packages;
@@ -4398,7 +4407,7 @@ function rnxPlugin(options = {}) {
4398
4407
  if (!pathname.startsWith(SWIFT_ROUTE_PREFIX)) return next();
4399
4408
  loadSwiftHost().then((host) => {
4400
4409
  if (host.serveSwiftPackageAsset(pathname, res)) return;
4401
- const prefix3 = "/__peach/swift-package/";
4410
+ const prefix3 = SWIFT_PACKAGE_PATH;
4402
4411
  if (!pathname.startsWith(prefix3)) return next();
4403
4412
  if (!swiftSockets) {
4404
4413
  res.statusCode = 501;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/public-brand.ts
4
4
  var name = "Peach";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/is-record.ts
4
4
  function isRecord(value) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/native-app-identity.ts
4
4
  var NATIVE_APP_IDENTITY_PREFIX = "globalThis.__sootsimNativeAppIdentity=";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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;
@@ -4447,6 +4447,8 @@ var init_supported_native_packages = __esm({
4447
4447
  // seam
4448
4448
  "@metamask/native-utils",
4449
4449
  // seam+coverage
4450
+ "@metamask/react-native-search-api",
4451
+ // seam+coverage
4450
4452
  "@metamask/react-native-webview",
4451
4453
  // seam
4452
4454
  "@mhpdev/react-native-haptics",
@@ -4807,6 +4809,8 @@ var init_supported_native_packages = __esm({
4807
4809
  // coverage
4808
4810
  "react-native-auto-skeleton",
4809
4811
  // seam
4812
+ "react-native-background-fetch",
4813
+ // seam+coverage
4810
4814
  "react-native-background-geolocation",
4811
4815
  // seam
4812
4816
  "react-native-background-timer",
@@ -5001,6 +5005,8 @@ var init_supported_native_packages = __esm({
5001
5005
  // seam
5002
5006
  "react-native-nitro-buffer",
5003
5007
  // seam+coverage
5008
+ "react-native-nitro-cookies",
5009
+ // seam
5004
5010
  "react-native-nitro-device-info",
5005
5011
  // seam
5006
5012
  "react-native-nitro-fetch",
@@ -6882,10 +6888,10 @@ var init_registry = __esm({
6882
6888
  versions: [
6883
6889
  {
6884
6890
  range: ">=4.4.0",
6885
- coverage: 0.75,
6886
- note: "static BackgroundFetch API with status constants, task scheduling state, callback wiring, and finish/start/stop semantics",
6887
- working: "STATUS_* and NETWORK_TYPE_* constants, configure, scheduleTask, registerHeadlessTask, start, stop, finish, status promise/callback forms, fetch/timeout callback dispatch",
6888
- missing: "actual iOS/Android background execution, BGTaskScheduler/TSBackgroundFetch wakeups, headless JS launch while suspended"
6891
+ coverage: 0.9,
6892
+ note: "native-seam: index.js runs unchanged from the bundle; only the RNBackgroundFetch module is ours, answering as TSBackgroundFetch does on the iOS simulator: configure/start/status resolve UIBackgroundRefreshStatusAvailable (2), scheduleTask rejects because BGTaskScheduler is unavailable (or the identifier is not in BGTaskSchedulerPermittedIdentifiers), and no fetch event fires, as none fires on the simulator without Xcode",
6893
+ working: "configure, start, stop, finish, status (promise and callback forms), scheduleTask rejection with the simulator message, the real STATUS_* and NETWORK_TYPE_* constants and NativeEventEmitter wiring",
6894
+ missing: "Xcode's Simulate Background Fetch has no Peach equivalent; Android mode answers as iOS (headless tasks, JobScheduler)"
6889
6895
  }
6890
6896
  ]
6891
6897
  },
@@ -7976,10 +7982,10 @@ var init_registry = __esm({
7976
7982
  versions: [
7977
7983
  {
7978
7984
  range: ">=1.0.0",
7979
- coverage: 0.75,
7980
- note: "iOS Search API wrapper with in-memory Spotlight/app-history state and native event helper surface",
7981
- working: "default SearchApi instance, spotlight/app-history event listener helpers, indexSpotlightItem(s), delete by identifiers/domains, deleteAll, indexAppHistoryItem",
7982
- missing: "real CoreSpotlight indexing, NSUserActivity handoff/continueUserActivity delivery from iOS, and public index integration"
7985
+ coverage: 0.9,
7986
+ note: "native-seam: index.js runs unchanged from the bundle; only SearchApiManager is ours, resolving every index, delete and user-activity call as CoreSpotlight completes them on the iOS simulator",
7987
+ working: "indexSpotlightItem(s), deleteSpotlightItemsWithIdentifiers/InDomains, deleteAllSpotlightItems, indexAppHistoryItem, and the real event emitter wiring",
7988
+ missing: "Peach has no Spotlight search or Handoff, so spotlightSearchItemTapped and appHistorySearchItemTapped never fire"
7983
7989
  }
7984
7990
  ]
7985
7991
  },
@@ -9126,11 +9132,11 @@ var init_registry = __esm({
9126
9132
  stubType: "native",
9127
9133
  versions: [
9128
9134
  {
9129
- range: ">=1.0.0",
9135
+ range: ">=1.2.0",
9130
9136
  coverage: 0.85,
9131
- note: "document.cookie backed; get/set/remove/clearAll fully functional in browser",
9132
- working: "get, getAll, set (with path/domain/expires/secure options), remove (with path/domain options), clearAll, Cookie interface",
9133
- missing: "httpOnly attribute (not settable via document.cookie by design), SameSite option, URL-scoped cookie reading (always reads all document.cookie)"
9137
+ note: "native-seam: the package's JS runs unchanged from the bundle; only the NitroCookies hybrid object is ours, following NitroCookies.swift over the app's one cookie jar (shared with @react-native-cookies/cookies): HTTPCookieStorage and a separate WebKit store, the Swift domain-only matching, fractional-seconds-only expiry parsing, the 400-day expiry cap, httpOnly cookies gaining a dotted domain, and the NSError descriptions Nitro hands to JS",
9138
+ working: "every sync and async method: get/getSync, set/setSync, setMany/setManySync, getCookieHeader/getCookieHeaderSync, setFromResponse/setFromResponseSync, clearByName/clearByNameSync, getAll, clearAll, flush, removeSessionCookies, with useWebKit",
9139
+ missing: "getFromResponse makes the request but returns no cookies (a browser fetch hides Set-Cookie); the jar's iteration order for getAll and the Cookie header follows insertion, where HTTPCookieStorage orders by its own rule; the jar is not the one fetch sends"
9134
9140
  }
9135
9141
  ]
9136
9142
  },
@@ -9210,22 +9216,6 @@ var init_registry = __esm({
9210
9216
  }
9211
9217
  ]
9212
9218
  },
9213
- "@welldone-software/why-did-you-render": {
9214
- category: "Device & Platform",
9215
- // pure JS (no native code), but deliberately intercepted: see the note
9216
- // below. do not "restore the real package" — it patches React internals
9217
- // and takes the bridged React down with it.
9218
- stubType: "native",
9219
- shipsNativeCode: false,
9220
- versions: [
9221
- {
9222
- range: ">=8.0.0",
9223
- coverage: 0,
9224
- note: "the reference iOS simulator performs this package's behavior. Peach currently provides only this unsupported shape: intentional noop : wdyr mutates React internals and crashes sootsim's bridged React. imports and API shape receive no behavior credit",
9225
- working: "default export callable as wdyr(React, opts) without error"
9226
- }
9227
- ]
9228
- },
9229
9219
  "react-native-pure-jwt": {
9230
9220
  category: "Auth & Payments",
9231
9221
  stubType: "native",
@@ -34643,6 +34633,7 @@ var init_command_registry = __esm({
34643
34633
  "android",
34644
34634
  "remote",
34645
34635
  "preview",
34636
+ "swift",
34646
34637
  "box",
34647
34638
  "list",
34648
34639
  "use",
@@ -35233,7 +35224,7 @@ function resolveDriverHeadless(args, driverId) {
35233
35224
  function normalizeKnownTarget(target) {
35234
35225
  return target.trim();
35235
35226
  }
35236
- async function ensureBridgeForOpen(preferredPort, explicitPort = false) {
35227
+ async function ensureBridgeForOpen(preferredPort, explicitPort = false, resources) {
35237
35228
  const lock = readDaemonLockfile();
35238
35229
  assertExplicitBridgeLock(preferredPort, explicitPort, lock);
35239
35230
  const preferredWorld = worldForBridgePort(preferredPort);
@@ -35255,6 +35246,10 @@ async function ensureBridgeForOpen(preferredPort, explicitPort = false) {
35255
35246
  }
35256
35247
  await ensureRuntimeForOpen();
35257
35248
  const child = spawnSootsim(["serve", "--quiet", "--port", String(preferredPort)]);
35249
+ if (resources) {
35250
+ resources.bridge = child;
35251
+ resources.port = preferredPort;
35252
+ }
35258
35253
  let childExit = null;
35259
35254
  child.once("exit", (code, signal) => {
35260
35255
  childExit = String(code ?? signal ?? "unknown");
@@ -35275,6 +35270,10 @@ async function ensureBridgeForOpen(preferredPort, explicitPort = false) {
35275
35270
  console.error(
35276
35271
  ` Started a local bridge on port ${selectedPort}. Run \`peach daemon install\` to keep it ready between commands.`
35277
35272
  );
35273
+ if (resources) {
35274
+ resources.bridgeReady = true;
35275
+ resources.port = selectedPort;
35276
+ }
35278
35277
  return selectedPort;
35279
35278
  }
35280
35279
  if (childExit) {
@@ -35771,6 +35770,7 @@ async function waitForSimMatchOrHostExit(wsPort, commandTimeoutMs, predicate, ho
35771
35770
  const watchHost = !!hostPid && Number.isInteger(hostPid) && hostPid > 1;
35772
35771
  const hostExited = () => watchHost && hostPid !== void 0 && !isProcessAlive2(hostPid);
35773
35772
  for (let i = 0; i < attempts; i++) {
35773
+ opts.signal?.throwIfAborted();
35774
35774
  if (hostExited()) {
35775
35775
  return { kind: "host-exit" };
35776
35776
  }
@@ -36203,7 +36203,14 @@ async function runOpenCommand(args, opts = {}) {
36203
36203
  parsed.wsPort = pinned.port;
36204
36204
  }
36205
36205
  }
36206
- parsed.wsPort = await ensureBridgeForOpen(parsed.wsPort, parsed.explicitPort);
36206
+ opts.signal?.throwIfAborted();
36207
+ parsed.wsPort = await ensureBridgeForOpen(
36208
+ parsed.wsPort,
36209
+ parsed.explicitPort,
36210
+ opts.resources
36211
+ );
36212
+ if (opts.resources) opts.resources.port = parsed.wsPort;
36213
+ opts.signal?.throwIfAborted();
36207
36214
  const requestedDriverId = args.find((_, i) => args[i - 1] === "--driver") || "";
36208
36215
  if (requestedDriverId && !isDriverId(requestedDriverId)) {
36209
36216
  console.error(
@@ -36423,7 +36430,7 @@ async function runOpenCommand(args, opts = {}) {
36423
36430
  }
36424
36431
  const configuredBaseUrl = applyRNXConfigToUrl(baseUrl, runtimeConfig);
36425
36432
  const openUrl2 = await buildOpenUrl(target, configuredBaseUrl, token, buildShellUrlOpts);
36426
- const ownerPid = getStableOwnerPid();
36433
+ const ownerPid = opts.ownerPid ?? getStableOwnerPid();
36427
36434
  if (!ownerPid) {
36428
36435
  console.error(
36429
36436
  " could not resolve a stable owning process; refusing unsupervised sim host"
@@ -36436,6 +36443,7 @@ async function runOpenCommand(args, opts = {}) {
36436
36443
  rnxExit(1);
36437
36444
  }
36438
36445
  const connectWait = resolveDriverConnectWaitOptions();
36446
+ opts.signal?.throwIfAborted();
36439
36447
  const result = await driver.launch({
36440
36448
  url: openUrl2,
36441
36449
  // the shell serves the sim page but its WS bridge may have drifted off
@@ -36454,6 +36462,8 @@ async function runOpenCommand(args, opts = {}) {
36454
36462
  viewport: explicitViewport ?? (deviceFitBox ? { width: deviceFitBox.width + 120, height: deviceFitBox.height + 60 } : void 0),
36455
36463
  connectTimeoutMs: connectWait.hostTimeoutMs
36456
36464
  });
36465
+ if (opts.resources) opts.resources.driver = { ...result, driverId };
36466
+ opts.signal?.throwIfAborted();
36457
36467
  if (!result.launched) {
36458
36468
  console.error(` ${driver.name} driver: ${result.message}`);
36459
36469
  rnxExit(1);
@@ -36463,7 +36473,11 @@ async function runOpenCommand(args, opts = {}) {
36463
36473
  parsed.commandTimeoutMs,
36464
36474
  simMatchesToken,
36465
36475
  result.pid,
36466
- { attempts: connectWait.attempts, intervalMs: connectWait.intervalMs }
36476
+ {
36477
+ attempts: connectWait.attempts,
36478
+ intervalMs: connectWait.intervalMs,
36479
+ signal: opts.signal
36480
+ }
36467
36481
  );
36468
36482
  if (outcome.kind === "host-exit") {
36469
36483
  printDriverDiagnosticLogTail(result);
@@ -36485,6 +36499,7 @@ async function runOpenCommand(args, opts = {}) {
36485
36499
  rnxExit(1);
36486
36500
  }
36487
36501
  const match = outcome.sim;
36502
+ if (opts.resources) opts.resources.simId = match.id;
36488
36503
  saveCurrentSimId(match.id);
36489
36504
  signalDriverLaunchConnected(result);
36490
36505
  printOpenedSim(openUrl2, match, `${driver.name} driver`, quiet);
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-compile.ts
4
4
  import { execFile as execFile2 } from "node:child_process";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (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.638 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.639 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-package.ts
4
4
  function isSwiftManifestFile(file) {