peachsim 0.1.2188 → 0.1.2190

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 (97) hide show
  1. package/cli/commands/daemon.ts +13 -1
  2. package/cli/commands/package.ts +1 -1
  3. package/cli/commands/setup.ts +4 -2
  4. package/cli/commands/shell-url.ts +1 -1
  5. package/cli/main.ts +2 -0
  6. package/dist-lib/agent-daemon-client.cjs +1 -1
  7. package/dist-lib/agent-events.cjs +1 -1
  8. package/dist-lib/attached-projects.cjs +1 -1
  9. package/dist-lib/auth/shared-session.cjs +1 -1
  10. package/dist-lib/backend-origin.cjs +1 -1
  11. package/dist-lib/beta.cjs +1 -1
  12. package/dist-lib/beta.mjs +1 -1
  13. package/dist-lib/bridge-constants.cjs +1 -1
  14. package/dist-lib/bridge-contract-input.cjs +1 -1
  15. package/dist-lib/bridge-contract-input.mjs +1 -1
  16. package/dist-lib/bridge-contract.cjs +1 -1
  17. package/dist-lib/bridge-contract.mjs +1 -1
  18. package/dist-lib/bundle-channel.cjs +53 -30
  19. package/dist-lib/capture-contract.cjs +1 -1
  20. package/dist-lib/capture-contract.mjs +1 -1
  21. package/dist-lib/cloud-contract.cjs +1 -1
  22. package/dist-lib/cloud-contract.mjs +1 -1
  23. package/dist-lib/cloud-test-args.cjs +1 -1
  24. package/dist-lib/cloud-test-args.mjs +1 -1
  25. package/dist-lib/cloud.cjs +1 -1
  26. package/dist-lib/cloud.mjs +1 -1
  27. package/dist-lib/config.cjs +1 -1
  28. package/dist-lib/config.mjs +1 -1
  29. package/dist-lib/detox/index.cjs +1 -1
  30. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  31. package/dist-lib/expo-swift-bundle.cjs +33 -27
  32. package/dist-lib/expo-swift-metadata.cjs +1 -1
  33. package/dist-lib/expo-swift-metadata.mjs +1 -1
  34. package/dist-lib/home-paths.cjs +1 -1
  35. package/dist-lib/host/bridge-host.cjs +53 -30
  36. package/dist-lib/host/fetch-proxy-handler.cjs +4 -4
  37. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  38. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  39. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  40. package/dist-lib/host/websocket-proxy.cjs +1 -1
  41. package/dist-lib/index.cjs +5 -5
  42. package/dist-lib/jump-to-source-babel.cjs +1 -1
  43. package/dist-lib/jump-to-source-native.cjs +1 -1
  44. package/dist-lib/kotlin-host.cjs +1 -1
  45. package/dist-lib/menu.cjs +1 -1
  46. package/dist-lib/menu.mjs +1 -1
  47. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  48. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  49. package/dist-lib/metro-production-bundle.cjs +1 -1
  50. package/dist-lib/metro-production-bundle.mjs +1 -1
  51. package/dist-lib/metro.cjs +5 -5
  52. package/dist-lib/native-app-identity-project.cjs +4 -4
  53. package/dist-lib/native-app-identity-project.mjs +4 -4
  54. package/dist-lib/native-app-identity.cjs +1 -1
  55. package/dist-lib/native-app-identity.mjs +1 -1
  56. package/dist-lib/native-firebase-metadata.cjs +1 -1
  57. package/dist-lib/native-firebase-metadata.mjs +1 -1
  58. package/dist-lib/pdfium-raster.cjs +1 -1
  59. package/dist-lib/pdfium-raster.mjs +1 -1
  60. package/dist-lib/plist.cjs +1 -1
  61. package/dist-lib/plist.mjs +1 -1
  62. package/dist-lib/profiles.cjs +1 -1
  63. package/dist-lib/public-brand.cjs +1 -1
  64. package/dist-lib/public-origins-lib-esm.json +24 -24
  65. package/dist-lib/public-origins-lib.json +53 -53
  66. package/dist-lib/react-native-host-modules.cjs +1 -1
  67. package/dist-lib/react-native-host-modules.mjs +1 -1
  68. package/dist-lib/reap-browser.cjs +1 -1
  69. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  70. package/dist-lib/sdk.cjs +1 -1
  71. package/dist-lib/sdk.mjs +1 -1
  72. package/dist-lib/skills.cjs +73 -34
  73. package/dist-lib/swift-compile.cjs +28 -22
  74. package/dist-lib/swift-compile.mjs +28 -22
  75. package/dist-lib/swift-package.cjs +1 -1
  76. package/dist-lib/swift-package.mjs +1 -1
  77. package/dist-lib/swift-submit.cjs +1 -1
  78. package/dist-lib/swift-submit.mjs +1 -1
  79. package/dist-lib/swift-toolchain.cjs +2 -2
  80. package/dist-lib/swift.cjs +1 -1
  81. package/dist-lib/vite-swift.cjs +31 -25
  82. package/dist-lib/vite.cjs +4 -4
  83. package/dist-lib/worklet-executable.cjs +1 -1
  84. package/dist-lib/worklet-executable.mjs +1 -1
  85. package/dist-types/packages/peach-engine/src/engine/computed-padding.d.ts +40 -0
  86. package/dist-types/packages/peach-engine/src/engine/layout-engine.d.ts +3 -0
  87. package/dist-types/packages/peach-engine/src/engine/yoga-layout.d.ts +60 -0
  88. package/dist-types/packages/peach-engine/src/render-worker/shell-tree-wire.d.ts +2 -0
  89. package/dist-types/packages/peach-engine/src/settings/device-spec-bus.d.ts +10 -0
  90. package/package.json +1 -1
  91. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UIFindSession.h +2 -12
  92. package/sdk/ios/System/Library/Frameworks/UIKitTypes.framework/Headers/UIKitTypes.h +12 -0
  93. package/src/podspec-sources.ts +21 -2
  94. package/src/swift-compile.ts +28 -18
  95. package/src/swift-guest-source-plan.ts +8 -4
  96. package/src/swift-toolchain.ts +3 -2
  97. package/src/xcode-project.ts +3 -1
@@ -207,15 +207,27 @@ export function getDaemonServiceStatus(): DaemonServiceStatus {
207
207
  }
208
208
  if (process.platform === 'linux') {
209
209
  const path = linuxUnitPath()
210
- return { supported: true, installed: existsSync(path), path }
210
+ return { supported: linuxUserManagerReachable(), installed: existsSync(path), path }
211
211
  }
212
212
  return { supported: false, installed: false }
213
213
  }
214
214
 
215
+ // systemctl --user reaches the user's systemd manager through this socket; a
216
+ // container, WSL without systemd or a login with no user session has none.
217
+ function linuxUserManagerReachable(): boolean {
218
+ const runtime = process.env.XDG_RUNTIME_DIR
219
+ return runtime ? existsSync(resolve(runtime, 'systemd/private')) : false
220
+ }
221
+
215
222
  export async function daemonInstall({ port, force }: { port: number; force: boolean }) {
216
223
  if (shouldSkipPersistentDaemon()) {
217
224
  throw new Error('background daemon setup is unavailable in this environment')
218
225
  }
226
+ if (process.platform === 'linux' && !linuxUserManagerReachable()) {
227
+ throw new Error(
228
+ 'background daemon setup is unavailable in this environment: no systemd user manager answers this session',
229
+ )
230
+ }
219
231
 
220
232
  const invocation = resolveDaemonInvocation()
221
233
  console.log(` binary: ${[invocation.executable, ...invocation.prefixArgs].join(' ')}`)
@@ -312,6 +312,7 @@ export async function runPackage(args: string[]): Promise<void> {
312
312
  // the app is assembled beside the output, so archives and the final move stay on its volume
313
313
  const staging = `${output}.${randomUUID()}`
314
314
  const temporary = path.join(staging, `${name}.app`)
315
+ fs.mkdirSync(path.dirname(output), { recursive: true })
315
316
  fs.mkdirSync(staging)
316
317
  const scratch = fs.mkdtempSync(path.join(os.tmpdir(), 'peach-package-'))
317
318
  const routes: AppPackageManifest['routes'] = {}
@@ -680,7 +681,6 @@ export async function runPackage(args: string[]): Promise<void> {
680
681
  }
681
682
  return stageHostLaunchMetadata(new URL(launchUrl), origin)
682
683
  })
683
- fs.mkdirSync(path.dirname(output), { recursive: true })
684
684
  execFileSync('/usr/bin/ditto', [host, temporary])
685
685
  const contents = path.join(temporary, 'Contents')
686
686
  const resources = path.join(contents, 'Resources')
@@ -359,8 +359,10 @@ async function decideService(
359
359
  if (!status.supported) {
360
360
  if (!options.json) {
361
361
  printPromptBlock('Background service', [
362
- 'The persistent service is currently available on macOS and Linux.',
363
- 'peach will start the bridge when needed on this platform.',
362
+ process.platform === 'linux'
363
+ ? 'The persistent service needs a systemd user session, which this login does not have.'
364
+ : 'The persistent service is currently available on macOS and Linux.',
365
+ 'peach will start the bridge when needed.',
364
366
  ])
365
367
  }
366
368
  return false
@@ -791,7 +791,7 @@ export async function buildShellUrl(
791
791
  legacyDefault ||
792
792
  configuredRenderer === 'paper'
793
793
  )
794
- throw new Error(
794
+ throw new CliUsageError(
795
795
  'unsupported-architecture: React Native apps require the new architecture. ' +
796
796
  (legacyDefault
797
797
  ? 'React Native ' + version + ' defaults to the legacy architecture. '
package/cli/main.ts CHANGED
@@ -69,6 +69,8 @@ async function handleTopLevelError(err: unknown): Promise<never> {
69
69
  msg.startsWith('non-interactive setup requires ') ||
70
70
  msg.startsWith('no live peach world serves ') ||
71
71
  msg.startsWith('peach bridge did not start within') ||
72
+ msg.startsWith('another Peach daemon wrote the lockfile during startup') ||
73
+ /^sim \S+ is locked by another cli/.test(msg) ||
72
74
  msg.startsWith(
73
75
  `package.json already defines scripts.${rnxPublicBrand.commandName} as `,
74
76
  ) ||
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (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
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (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
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (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
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -39,7 +39,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
39
39
  var define_SWIFT_COVERAGE_SOURCE_DIGESTS_default;
40
40
  var init_define_SWIFT_COVERAGE_SOURCE_DIGESTS = __esm({
41
41
  "<define:__SWIFT_COVERAGE_SOURCE_DIGESTS__>"() {
42
- define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "99e03b74c961d2449afd58c2cbc415ba91d1d469a4f89e461c137fd6c305b27c", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "4b7d4a715cdaf57468ead23f2ff9dce76d02c6a888d73d144d4baa2ae571ba3c", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "a2817a624e79c3fa231a2cc0282988cac3fe3a27cf4c5d9237c77a4bd031e217", "home-paths.ts": "f5583b61f8bdd81823b3b29ff519a48daf9993719f194ddb7de22218472e90f9", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "5f41cd0bd86cb0cffbfb0047348b963f81d5e51cb0e8dd574c739b1a27aa56de", "xcode-target-members.ts": "ad7589132bffab265e8a10b64e24484fe88b4a2b1cc0ee19a97f151a002eca77", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
42
+ define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "99e03b74c961d2449afd58c2cbc415ba91d1d469a4f89e461c137fd6c305b27c", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "4b7d4a715cdaf57468ead23f2ff9dce76d02c6a888d73d144d4baa2ae571ba3c", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "e7cf8a143d47ff86b4ee2db4a8266e96b100926104990dba795321bc5923df3e", "home-paths.ts": "f5583b61f8bdd81823b3b29ff519a48daf9993719f194ddb7de22218472e90f9", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "8ffd57670829ddd2b10e812defbd9016859744be88713c5ba65847aa6e26dff4", "xcode-target-members.ts": "ad7589132bffab265e8a10b64e24484fe88b4a2b1cc0ee19a97f151a002eca77", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
43
43
  }
44
44
  });
45
45
 
@@ -14793,7 +14793,7 @@ for arg in "$@"; do
14793
14793
  case $arg in
14794
14794
  @*)
14795
14795
  rsp=\${arg#@}
14796
- awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name3) => ` $0 == "\\"-l${name3}\\"" { next }`).join("")} { print }' "$rsp" > "$rsp.dedup"
14796
+ awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name3) => ` $0 == "\\"-l${name3}\\"" { next }`).join("")} $0 == "\\"-ObjC\\"" { next } { print }' "$rsp" > "$rsp.dedup"
14797
14797
  mv "$rsp.dedup" "$rsp"
14798
14798
  if [ "\${PEACH_DEFER_WASM_LINK:-}" = "1" ] && grep -q '"--start-lib"' "$rsp"; then
14799
14799
  cp "$rsp" ${JSON.stringify(import_node_path20.default.join(directory2, ".peach-link.rsp"))}
@@ -22773,9 +22773,12 @@ function guestSourceObjects(graph, buildDirectory, objects, generatedOwners) {
22773
22773
  (target) => target.sourceTarget === null ? [] : [target.sourceTarget]
22774
22774
  )
22775
22775
  );
22776
- const owners = new Map(
22777
- [...generatedOwners].map(([name3, owner]) => [swiftTargetModuleName(name3), owner])
22778
- );
22776
+ const owners = new Map([
22777
+ ...[...names].map((name3) => [swiftTargetModuleName(name3), name3]),
22778
+ ...[...generatedOwners].map(
22779
+ ([name3, owner]) => [swiftTargetModuleName(name3), owner]
22780
+ )
22781
+ ]);
22779
22782
  const libraries = new Map(
22780
22783
  graph.targets.flatMap(
22781
22784
  (target) => target.productType === "swiftpm.target.binary" && target.sourceTarget !== null ? [[target.productName, target.sourceTarget]] : []
@@ -28629,22 +28632,19 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
28629
28632
  allowExisting: true
28630
28633
  });
28631
28634
  if (modulemap.endsWith("/Modules/module.modulemap")) {
28632
- const headers = import_node_path41.default.posix.join(
28633
- import_node_path41.default.posix.dirname(import_node_path41.default.posix.dirname(modulemap)),
28634
- "Headers"
28635
- );
28636
- const mirrored = import_node_path41.default.posix.join(import_node_path41.default.posix.dirname(modulemap), "Headers");
28637
- for (const [, umbrella] of moduleContents.toString().matchAll(/\bumbrella\s+header\s+"([^"]+)"/g)) {
28638
- const source = settings.productHeaders[import_node_path41.default.posix.join(headers, umbrella)];
28639
- const contents = source === void 0 ? void 0 : input.files[source];
28640
- if (contents !== void 0)
28641
- stageTargetFile(
28642
- target.name,
28643
- import_node_path41.default.join(layout2.root, mirrored, umbrella),
28644
- contents,
28645
- { allowExisting: true }
28646
- );
28647
- }
28635
+ const framework = import_node_path41.default.posix.dirname(import_node_path41.default.posix.dirname(modulemap));
28636
+ for (const [, header] of moduleContents.toString().matchAll(/\bheader\s+"([^"]+)"/g))
28637
+ for (const folder of ["Headers", "PrivateHeaders"]) {
28638
+ const source = settings.productHeaders[import_node_path41.default.posix.join(framework, folder, header)];
28639
+ const contents = source === void 0 ? void 0 : input.files[source];
28640
+ if (contents !== void 0)
28641
+ stageTargetFile(
28642
+ target.name,
28643
+ import_node_path41.default.join(layout2.root, import_node_path41.default.posix.dirname(modulemap), folder, header),
28644
+ contents,
28645
+ { allowExisting: true }
28646
+ );
28647
+ }
28648
28648
  }
28649
28649
  if (nativeC && import_node_path41.default.posix.basename(modulemap) !== "module.modulemap") {
28650
28650
  stageTargetFile(
@@ -28996,7 +28996,13 @@ module ${moduleName2}.Swift {
28996
28996
  swiftModules.delete(name3);
28997
28997
  projectOverlayFrameworks.delete(name3);
28998
28998
  }
28999
+ const mixedModules = new Set(
29000
+ [...native].flatMap(
29001
+ ([name3, value]) => value.mixed ? [swiftTargetModuleName(name3)] : []
29002
+ )
29003
+ );
28999
29004
  for (const name3 of sourceModules) swiftModules.add(name3);
29005
+ for (const name3 of mixedModules) swiftModules.delete(name3);
29000
29006
  for (const [file, contents] of Object.entries(input.files))
29001
29007
  if (file.endsWith(".modulemap"))
29002
29008
  addSwiftOverlayFrameworks(contents, swiftModules, projectOverlayFrameworks);
@@ -30783,7 +30789,7 @@ var init_swift_compile = __esm({
30783
30789
  REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
30784
30790
  MULTI_MANIFEST_VERSION = 68;
30785
30791
  SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
30786
- compilerSourceDigest = true ? "02a45415d48ad9eb28df54607ec6601ccbe130e18dcc1522b7ad9adba9921f43" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
30792
+ compilerSourceDigest = true ? "382ff03994dc241ff825d788eb5f8eb92462420da0b20538d9fcc1ff79e096c6" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
30787
30793
  nativeCxxCompilerFlags = ["-fno-cxx-modules"];
30788
30794
  cFlagArray = (flags) => JSON.stringify(withoutGlogModuleMap(flags));
30789
30795
  cxxFlagArray = (flags) => JSON.stringify([...nativeCxxCompilerFlags, ...withoutGlogModuleMap(flags)]);
@@ -35084,7 +35090,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
35084
35090
  installName: settings2("LD_DYLIB_INSTALL_NAME") || null,
35085
35091
  buildVersion: {
35086
35092
  platform: settings2("PLATFORM_NAME") || null,
35087
- minimumOS: settings2("IPHONEOS_DEPLOYMENT_TARGET") || null,
35093
+ minimumOS: settings2("IPHONEOS_DEPLOYMENT_TARGET") || XCODE_DEFAULT_IOS_DEPLOYMENT_TARGET,
35088
35094
  sdk: settings2("SDK_VERSION") || null
35089
35095
  },
35090
35096
  machOType: settings2("MACH_O_TYPE") || null,
@@ -42998,7 +43004,7 @@ var init_swift_standin_digest = __esm({
42998
43004
  STANDIN_DIGEST_ENTRYPOINTS = ["swift-standins.ts", "swift-objc-compile.ts"];
42999
43005
  SPECIFIER = /from\s*['"]([^'"]+)['"]|import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
43000
43006
  standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
43001
- STANDIN_SOURCE_DIGEST = true ? "534310cfac2856971a0189d9835d2bc10e471963394e3c17bdc2815a82872e0f" : standinSourceDigest();
43007
+ STANDIN_SOURCE_DIGEST = true ? "8357df1eb62bbe4eb3a2bc4588867a6b75d1052c41e274e31fec2fde3700676e" : standinSourceDigest();
43002
43008
  }
43003
43009
  });
43004
43010
 
@@ -50931,7 +50937,8 @@ var init_podspec_sources = __esm({
50931
50937
  }
50932
50938
  or = () => this.binary(["||"], this.and);
50933
50939
  and = () => this.binary(["&&"], this.eq);
50934
- eq = () => this.binary(["==", "!="], this.shift);
50940
+ eq = () => this.binary(["==", "!="], this.compare);
50941
+ compare = () => this.binary(["<", ">", "<=", ">="], this.shift);
50935
50942
  shift = () => this.binary(["<<"], this.add);
50936
50943
  add = () => this.binary(["+", "-"], this.unary);
50937
50944
  unary = () => {
@@ -51086,6 +51093,8 @@ var init_podspec_sources = __esm({
51086
51093
  return { k: "hash", pairs: pairs2 };
51087
51094
  }
51088
51095
  if (tok.v === "::") return this.fail("top-level constant");
51096
+ if (tok.v === "$" && this.toks[this.i]?.t === "id")
51097
+ return { k: "fail", why: `global $${this.toks[this.i++].v}` };
51089
51098
  return this.fail(`unexpected ${tok.v}`);
51090
51099
  }
51091
51100
  }
@@ -51293,7 +51302,15 @@ var init_podspec_sources = __esm({
51293
51302
  }
51294
51303
  case "bin": {
51295
51304
  if (node.op === "||" || node.op === "&&") {
51296
- const l2 = this.ev(scope2, node.l);
51305
+ let l2;
51306
+ try {
51307
+ l2 = this.ev(scope2, node.l);
51308
+ } catch (error) {
51309
+ if (!recoverable(error)) throw error;
51310
+ const r2 = this.ev(scope2, node.r);
51311
+ if (truthy(r2) === (node.op === "||")) return r2;
51312
+ throw error;
51313
+ }
51297
51314
  return truthy(l2) === (node.op === "||") ? l2 : this.ev(scope2, node.r);
51298
51315
  }
51299
51316
  const l = this.ev(scope2, node.l);
@@ -51315,6 +51332,12 @@ var init_podspec_sources = __esm({
51315
51332
  l.push(r);
51316
51333
  return l;
51317
51334
  }
51335
+ if (typeof l === "number" && typeof r === "number") {
51336
+ if (node.op === "<") return l < r;
51337
+ if (node.op === ">") return l > r;
51338
+ if (node.op === "<=") return l <= r;
51339
+ if (node.op === ">=") return l >= r;
51340
+ }
51318
51341
  return this.fail(`operator ${node.op}`);
51319
51342
  }
51320
51343
  case "method": {
@@ -55045,7 +55068,7 @@ var init_nitro_superset = __esm({
55045
55068
  init_nitroContract();
55046
55069
  init_swift_standin_digest();
55047
55070
  NITRO_SUPERSET_ENTRY_NAME = "superset";
55048
- NITRO_COMPILER_DIGEST = true ? "27550a65811ef1563f5f017a27d184212227fe21c0d072293dfbeb52ad8dc860" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
55071
+ NITRO_COMPILER_DIGEST = true ? "08f63e84933af4bf3f615ede4cf05ae92d524792260ba4846d9fca311c5ab7e4" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
55049
55072
  nitroSupersetLock = parseLock(nitro_superset_lock_default);
55050
55073
  nitroSupersetKey = (inputs) => nativeEntryKey({ ...inputs, compiler: NITRO_COMPILER_DIGEST });
55051
55074
  published = /* @__PURE__ */ new Map();
@@ -56270,7 +56293,7 @@ var init_expo_native_compiler_digest = __esm({
56270
56293
 
56271
56294
  // src/expo-native-prebuilt.ts
56272
56295
  function expoNativeCompilerDigestValue() {
56273
- return true ? "bd7ed196b8d9a45a7a1309f73308d87e3eb00e970dcbc03c506b5262b3300967" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
56296
+ return true ? "347a3817790d125635d3da812f1b02e5afa65f685f34090eb75b530d62d0a28c" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
56274
56297
  }
56275
56298
  function readSources(value) {
56276
56299
  const sources = isRecord(value) ? value.sources : null;
@@ -57220,7 +57243,7 @@ var init_react_native_core = __esm({
57220
57243
  init_swift_distribution();
57221
57244
  init_swift_package();
57222
57245
  init_swiftContract();
57223
- recipe = true ? "ad88035f7f9d4bac52054fb8da3c9cce8606e49c7522c8c0556f8dc3cb900ebd" : reactNativeCoreDigest2(__sootsim_import_meta_dirname);
57246
+ recipe = true ? "3fd6f321c9bd4f9cede042a7cee967febbe9f87df3e90e8e2937322e8ee19455" : reactNativeCoreDigest2(__sootsim_import_meta_dirname);
57224
57247
  strings4 = (value) => isRecord(value) && Object.values(value).every((item) => typeof item === "string");
57225
57248
  }
57226
57249
  });
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (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
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/cloud-contract.ts
4
4
  var RNX_CLOUD_MAX_ARTIFACT_BYTES = 40761776;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/cloud-test-args.ts
4
4
  var CLOUD_TEST_ARGS_MAX_COUNT = 32;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (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
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // ../contrast-runtime-delivery/src/version.ts
4
4
  function isValidRuntimeVersion(value) {
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -39,7 +39,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
39
39
  var define_SWIFT_COVERAGE_SOURCE_DIGESTS_default;
40
40
  var init_define_SWIFT_COVERAGE_SOURCE_DIGESTS = __esm({
41
41
  "<define:__SWIFT_COVERAGE_SOURCE_DIGESTS__>"() {
42
- define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "99e03b74c961d2449afd58c2cbc415ba91d1d469a4f89e461c137fd6c305b27c", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "4b7d4a715cdaf57468ead23f2ff9dce76d02c6a888d73d144d4baa2ae571ba3c", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "a2817a624e79c3fa231a2cc0282988cac3fe3a27cf4c5d9237c77a4bd031e217", "home-paths.ts": "f5583b61f8bdd81823b3b29ff519a48daf9993719f194ddb7de22218472e90f9", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "5f41cd0bd86cb0cffbfb0047348b963f81d5e51cb0e8dd574c739b1a27aa56de", "xcode-target-members.ts": "ad7589132bffab265e8a10b64e24484fe88b4a2b1cc0ee19a97f151a002eca77", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
42
+ define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "99e03b74c961d2449afd58c2cbc415ba91d1d469a4f89e461c137fd6c305b27c", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "4b7d4a715cdaf57468ead23f2ff9dce76d02c6a888d73d144d4baa2ae571ba3c", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "e7cf8a143d47ff86b4ee2db4a8266e96b100926104990dba795321bc5923df3e", "home-paths.ts": "f5583b61f8bdd81823b3b29ff519a48daf9993719f194ddb7de22218472e90f9", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "8ffd57670829ddd2b10e812defbd9016859744be88713c5ba65847aa6e26dff4", "xcode-target-members.ts": "ad7589132bffab265e8a10b64e24484fe88b4a2b1cc0ee19a97f151a002eca77", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
43
43
  }
44
44
  });
45
45
 
@@ -11331,7 +11331,7 @@ for arg in "$@"; do
11331
11331
  case $arg in
11332
11332
  @*)
11333
11333
  rsp=\${arg#@}
11334
- awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name3) => ` $0 == "\\"-l${name3}\\"" { next }`).join("")} { print }' "$rsp" > "$rsp.dedup"
11334
+ awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name3) => ` $0 == "\\"-l${name3}\\"" { next }`).join("")} $0 == "\\"-ObjC\\"" { next } { print }' "$rsp" > "$rsp.dedup"
11335
11335
  mv "$rsp.dedup" "$rsp"
11336
11336
  if [ "\${PEACH_DEFER_WASM_LINK:-}" = "1" ] && grep -q '"--start-lib"' "$rsp"; then
11337
11337
  cp "$rsp" ${JSON.stringify(import_node_path24.default.join(directory, ".peach-link.rsp"))}
@@ -18946,9 +18946,12 @@ function guestSourceObjects(graph, buildDirectory, objects, generatedOwners) {
18946
18946
  (target) => target.sourceTarget === null ? [] : [target.sourceTarget]
18947
18947
  )
18948
18948
  );
18949
- const owners = new Map(
18950
- [...generatedOwners].map(([name3, owner]) => [swiftTargetModuleName(name3), owner])
18951
- );
18949
+ const owners = new Map([
18950
+ ...[...names].map((name3) => [swiftTargetModuleName(name3), name3]),
18951
+ ...[...generatedOwners].map(
18952
+ ([name3, owner]) => [swiftTargetModuleName(name3), owner]
18953
+ )
18954
+ ]);
18952
18955
  const libraries = new Map(
18953
18956
  graph.targets.flatMap(
18954
18957
  (target) => target.productType === "swiftpm.target.binary" && target.sourceTarget !== null ? [[target.productName, target.sourceTarget]] : []
@@ -23010,7 +23013,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
23010
23013
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
23011
23014
  var MULTI_MANIFEST_VERSION = 68;
23012
23015
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
23013
- var compilerSourceDigest = true ? "02a45415d48ad9eb28df54607ec6601ccbe130e18dcc1522b7ad9adba9921f43" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
23016
+ var compilerSourceDigest = true ? "382ff03994dc241ff825d788eb5f8eb92462420da0b20538d9fcc1ff79e096c6" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
23014
23017
  function swiftArtifactHash(input, release, moduleRoot) {
23015
23018
  const hash = (0, import_node_crypto19.createHash)("sha256");
23016
23019
  hash.update(`swift-compile
@@ -25413,22 +25416,19 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
25413
25416
  allowExisting: true
25414
25417
  });
25415
25418
  if (modulemap.endsWith("/Modules/module.modulemap")) {
25416
- const headers = import_node_path45.default.posix.join(
25417
- import_node_path45.default.posix.dirname(import_node_path45.default.posix.dirname(modulemap)),
25418
- "Headers"
25419
- );
25420
- const mirrored = import_node_path45.default.posix.join(import_node_path45.default.posix.dirname(modulemap), "Headers");
25421
- for (const [, umbrella] of moduleContents.toString().matchAll(/\bumbrella\s+header\s+"([^"]+)"/g)) {
25422
- const source = settings.productHeaders[import_node_path45.default.posix.join(headers, umbrella)];
25423
- const contents = source === void 0 ? void 0 : input.files[source];
25424
- if (contents !== void 0)
25425
- stageTargetFile(
25426
- target.name,
25427
- import_node_path45.default.join(layout2.root, mirrored, umbrella),
25428
- contents,
25429
- { allowExisting: true }
25430
- );
25431
- }
25419
+ const framework = import_node_path45.default.posix.dirname(import_node_path45.default.posix.dirname(modulemap));
25420
+ for (const [, header] of moduleContents.toString().matchAll(/\bheader\s+"([^"]+)"/g))
25421
+ for (const folder of ["Headers", "PrivateHeaders"]) {
25422
+ const source = settings.productHeaders[import_node_path45.default.posix.join(framework, folder, header)];
25423
+ const contents = source === void 0 ? void 0 : input.files[source];
25424
+ if (contents !== void 0)
25425
+ stageTargetFile(
25426
+ target.name,
25427
+ import_node_path45.default.join(layout2.root, import_node_path45.default.posix.dirname(modulemap), folder, header),
25428
+ contents,
25429
+ { allowExisting: true }
25430
+ );
25431
+ }
25432
25432
  }
25433
25433
  if (nativeC && import_node_path45.default.posix.basename(modulemap) !== "module.modulemap") {
25434
25434
  stageTargetFile(
@@ -25780,7 +25780,13 @@ module ${moduleName}.Swift {
25780
25780
  swiftModules.delete(name3);
25781
25781
  projectOverlayFrameworks.delete(name3);
25782
25782
  }
25783
+ const mixedModules = new Set(
25784
+ [...native].flatMap(
25785
+ ([name3, value]) => value.mixed ? [swiftTargetModuleName(name3)] : []
25786
+ )
25787
+ );
25783
25788
  for (const name3 of sourceModules) swiftModules.add(name3);
25789
+ for (const name3 of mixedModules) swiftModules.delete(name3);
25784
25790
  for (const [file, contents] of Object.entries(input.files))
25785
25791
  if (file.endsWith(".modulemap"))
25786
25792
  addSwiftOverlayFrameworks(contents, swiftModules, projectOverlayFrameworks);
@@ -30740,7 +30746,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
30740
30746
  installName: settings2("LD_DYLIB_INSTALL_NAME") || null,
30741
30747
  buildVersion: {
30742
30748
  platform: settings2("PLATFORM_NAME") || null,
30743
- minimumOS: settings2("IPHONEOS_DEPLOYMENT_TARGET") || null,
30749
+ minimumOS: settings2("IPHONEOS_DEPLOYMENT_TARGET") || XCODE_DEFAULT_IOS_DEPLOYMENT_TARGET,
30744
30750
  sdk: settings2("SDK_VERSION") || null
30745
30751
  },
30746
30752
  machOType: settings2("MACH_O_TYPE") || null,
@@ -32269,7 +32275,7 @@ function sourceClosureDigest(srcDir, entrypoints) {
32269
32275
  return hash.digest("hex");
32270
32276
  }
32271
32277
  var standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
32272
- var STANDIN_SOURCE_DIGEST = true ? "534310cfac2856971a0189d9835d2bc10e471963394e3c17bdc2815a82872e0f" : standinSourceDigest();
32278
+ var STANDIN_SOURCE_DIGEST = true ? "8357df1eb62bbe4eb3a2bc4588867a6b75d1052c41e274e31fec2fde3700676e" : standinSourceDigest();
32273
32279
 
32274
32280
  // src/expoSwiftContract.ts
32275
32281
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -32540,7 +32546,7 @@ async function packageTreeDigest(root) {
32540
32546
  // src/expo-native-prebuilt.ts
32541
32547
  var EXPO_NATIVE_ENTRY_NAME = "ios";
32542
32548
  function expoNativeCompilerDigestValue() {
32543
- return true ? "bd7ed196b8d9a45a7a1309f73308d87e3eb00e970dcbc03c506b5262b3300967" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
32549
+ return true ? "347a3817790d125635d3da812f1b02e5afa65f685f34090eb75b530d62d0a28c" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
32544
32550
  }
32545
32551
  var IDENTITY_SOURCE_SKIPS = 1 | 4 | 8 | 16 | 32 | 64 | 128 | 4096;
32546
32552
  function readSources(value) {
@@ -38519,7 +38525,7 @@ var import_node_fs74 = __toESM(require("node:fs"), 1);
38519
38525
  var import_node_module7 = require("node:module");
38520
38526
  var import_node_path71 = __toESM(require("node:path"), 1);
38521
38527
  var import_node_util13 = require("node:util");
38522
- var recipe = true ? "ad88035f7f9d4bac52054fb8da3c9cce8606e49c7522c8c0556f8dc3cb900ebd" : reactNativeCoreDigest2(__sootsim_import_meta_dirname);
38528
+ var recipe = true ? "3fd6f321c9bd4f9cede042a7cee967febbe9f87df3e90e8e2937322e8ee19455" : reactNativeCoreDigest2(__sootsim_import_meta_dirname);
38523
38529
  function reactNativeCoreFloor(reactNativeRoot) {
38524
38530
  const helpers = import_node_fs74.default.readFileSync(
38525
38531
  import_node_path71.default.join(reactNativeRoot, "scripts/cocoapods/helpers.rb"),
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2188 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2190 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;