peachsim 0.1.2187 → 0.1.2189

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 (86) 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/attached-projects.cjs +1 -1
  4. package/dist-lib/auth/shared-session.cjs +1 -1
  5. package/dist-lib/backend-origin.cjs +1 -1
  6. package/dist-lib/beta.cjs +1 -1
  7. package/dist-lib/beta.mjs +1 -1
  8. package/dist-lib/bridge-constants.cjs +1 -1
  9. package/dist-lib/bridge-contract-input.cjs +1 -1
  10. package/dist-lib/bridge-contract-input.mjs +1 -1
  11. package/dist-lib/bridge-contract.cjs +1 -1
  12. package/dist-lib/bridge-contract.mjs +1 -1
  13. package/dist-lib/bundle-channel.cjs +33 -27
  14. package/dist-lib/capture-contract.cjs +1 -1
  15. package/dist-lib/capture-contract.mjs +1 -1
  16. package/dist-lib/cloud-contract.cjs +1 -1
  17. package/dist-lib/cloud-contract.mjs +1 -1
  18. package/dist-lib/cloud-test-args.cjs +1 -1
  19. package/dist-lib/cloud-test-args.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/config.mjs +1 -1
  24. package/dist-lib/detox/index.cjs +1 -1
  25. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  26. package/dist-lib/expo-swift-bundle.cjs +32 -26
  27. package/dist-lib/expo-swift-metadata.cjs +1 -1
  28. package/dist-lib/expo-swift-metadata.mjs +1 -1
  29. package/dist-lib/home-paths.cjs +1 -1
  30. package/dist-lib/host/bridge-host.cjs +33 -27
  31. package/dist-lib/host/fetch-proxy-handler.cjs +4 -4
  32. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  33. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  34. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  35. package/dist-lib/host/websocket-proxy.cjs +1 -1
  36. package/dist-lib/index.cjs +5 -5
  37. package/dist-lib/jump-to-source-babel.cjs +1 -1
  38. package/dist-lib/jump-to-source-native.cjs +1 -1
  39. package/dist-lib/kotlin-host.cjs +1 -1
  40. package/dist-lib/menu.cjs +1 -1
  41. package/dist-lib/menu.mjs +1 -1
  42. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  43. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  44. package/dist-lib/metro-production-bundle.cjs +1 -1
  45. package/dist-lib/metro-production-bundle.mjs +1 -1
  46. package/dist-lib/metro.cjs +5 -5
  47. package/dist-lib/native-app-identity-project.cjs +4 -4
  48. package/dist-lib/native-app-identity-project.mjs +4 -4
  49. package/dist-lib/native-app-identity.cjs +1 -1
  50. package/dist-lib/native-app-identity.mjs +1 -1
  51. package/dist-lib/native-firebase-metadata.cjs +1 -1
  52. package/dist-lib/native-firebase-metadata.mjs +1 -1
  53. package/dist-lib/pdfium-raster.cjs +1 -1
  54. package/dist-lib/pdfium-raster.mjs +1 -1
  55. package/dist-lib/plist.cjs +1 -1
  56. package/dist-lib/plist.mjs +1 -1
  57. package/dist-lib/profiles.cjs +1 -1
  58. package/dist-lib/public-brand.cjs +1 -1
  59. package/dist-lib/public-origins-lib-esm.json +24 -24
  60. package/dist-lib/public-origins-lib.json +53 -53
  61. package/dist-lib/react-native-host-modules.cjs +1 -1
  62. package/dist-lib/react-native-host-modules.mjs +1 -1
  63. package/dist-lib/reap-browser.cjs +1 -1
  64. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  65. package/dist-lib/sdk.cjs +1 -1
  66. package/dist-lib/sdk.mjs +1 -1
  67. package/dist-lib/skills.cjs +33 -27
  68. package/dist-lib/swift-compile.cjs +28 -22
  69. package/dist-lib/swift-compile.mjs +28 -22
  70. package/dist-lib/swift-package.cjs +1 -1
  71. package/dist-lib/swift-package.mjs +1 -1
  72. package/dist-lib/swift-submit.cjs +1 -1
  73. package/dist-lib/swift-submit.mjs +1 -1
  74. package/dist-lib/swift-toolchain.cjs +4 -2
  75. package/dist-lib/swift.cjs +1 -1
  76. package/dist-lib/vite-swift.cjs +31 -25
  77. package/dist-lib/vite.cjs +4 -4
  78. package/dist-lib/worklet-executable.cjs +1 -1
  79. package/dist-lib/worklet-executable.mjs +1 -1
  80. package/dist-types/packages/peach-engine/src/engine/node.d.ts +1 -1
  81. package/package.json +1 -1
  82. package/src/swift-compile.ts +28 -18
  83. package/src/swift-distribution-contract.ts +72 -0
  84. package/src/swift-guest-source-plan.ts +8 -4
  85. package/src/swift-toolchain.ts +4 -3
  86. package/src/xcode-project.ts +3 -1
package/dist-lib/sdk.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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": "65a0698bf022ace2f4254f3f891828dedf403d61c102238e242084a2279e04eb", "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
 
@@ -42188,7 +42188,7 @@ for arg in "$@"; do
42188
42188
  case $arg in
42189
42189
  @*)
42190
42190
  rsp=\${arg#@}
42191
- awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name3) => ` $0 == "\\"-l${name3}\\"" { next }`).join("")} { print }' "$rsp" > "$rsp.dedup"
42191
+ awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name3) => ` $0 == "\\"-l${name3}\\"" { next }`).join("")} $0 == "\\"-ObjC\\"" { next } { print }' "$rsp" > "$rsp.dedup"
42192
42192
  mv "$rsp.dedup" "$rsp"
42193
42193
  if [ "\${PEACH_DEFER_WASM_LINK:-}" = "1" ] && grep -q '"--start-lib"' "$rsp"; then
42194
42194
  cp "$rsp" ${JSON.stringify(import_node_path30.default.join(directory2, ".peach-link.rsp"))}
@@ -50168,9 +50168,12 @@ function guestSourceObjects(graph, buildDirectory, objects, generatedOwners) {
50168
50168
  (target) => target.sourceTarget === null ? [] : [target.sourceTarget]
50169
50169
  )
50170
50170
  );
50171
- const owners = new Map(
50172
- [...generatedOwners].map(([name3, owner]) => [swiftTargetModuleName(name3), owner])
50173
- );
50171
+ const owners = new Map([
50172
+ ...[...names].map((name3) => [swiftTargetModuleName(name3), name3]),
50173
+ ...[...generatedOwners].map(
50174
+ ([name3, owner]) => [swiftTargetModuleName(name3), owner]
50175
+ )
50176
+ ]);
50174
50177
  const libraries = new Map(
50175
50178
  graph.targets.flatMap(
50176
50179
  (target) => target.productType === "swiftpm.target.binary" && target.sourceTarget !== null ? [[target.productName, target.sourceTarget]] : []
@@ -56074,22 +56077,19 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
56074
56077
  allowExisting: true
56075
56078
  });
56076
56079
  if (modulemap.endsWith("/Modules/module.modulemap")) {
56077
- const headers = import_node_path51.default.posix.join(
56078
- import_node_path51.default.posix.dirname(import_node_path51.default.posix.dirname(modulemap)),
56079
- "Headers"
56080
- );
56081
- const mirrored = import_node_path51.default.posix.join(import_node_path51.default.posix.dirname(modulemap), "Headers");
56082
- for (const [, umbrella] of moduleContents.toString().matchAll(/\bumbrella\s+header\s+"([^"]+)"/g)) {
56083
- const source = settings.productHeaders[import_node_path51.default.posix.join(headers, umbrella)];
56084
- const contents = source === void 0 ? void 0 : input.files[source];
56085
- if (contents !== void 0)
56086
- stageTargetFile(
56087
- target.name,
56088
- import_node_path51.default.join(layout2.root, mirrored, umbrella),
56089
- contents,
56090
- { allowExisting: true }
56091
- );
56092
- }
56080
+ const framework = import_node_path51.default.posix.dirname(import_node_path51.default.posix.dirname(modulemap));
56081
+ for (const [, header] of moduleContents.toString().matchAll(/\bheader\s+"([^"]+)"/g))
56082
+ for (const folder of ["Headers", "PrivateHeaders"]) {
56083
+ const source = settings.productHeaders[import_node_path51.default.posix.join(framework, folder, header)];
56084
+ const contents = source === void 0 ? void 0 : input.files[source];
56085
+ if (contents !== void 0)
56086
+ stageTargetFile(
56087
+ target.name,
56088
+ import_node_path51.default.join(layout2.root, import_node_path51.default.posix.dirname(modulemap), folder, header),
56089
+ contents,
56090
+ { allowExisting: true }
56091
+ );
56092
+ }
56093
56093
  }
56094
56094
  if (nativeC && import_node_path51.default.posix.basename(modulemap) !== "module.modulemap") {
56095
56095
  stageTargetFile(
@@ -56441,7 +56441,13 @@ module ${moduleName2}.Swift {
56441
56441
  swiftModules.delete(name3);
56442
56442
  projectOverlayFrameworks.delete(name3);
56443
56443
  }
56444
+ const mixedModules = new Set(
56445
+ [...native].flatMap(
56446
+ ([name3, value]) => value.mixed ? [swiftTargetModuleName(name3)] : []
56447
+ )
56448
+ );
56444
56449
  for (const name3 of sourceModules) swiftModules.add(name3);
56450
+ for (const name3 of mixedModules) swiftModules.delete(name3);
56445
56451
  for (const [file, contents] of Object.entries(input.files))
56446
56452
  if (file.endsWith(".modulemap"))
56447
56453
  addSwiftOverlayFrameworks(contents, swiftModules, projectOverlayFrameworks);
@@ -58229,7 +58235,7 @@ var init_swift_compile = __esm({
58229
58235
  REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
58230
58236
  MULTI_MANIFEST_VERSION = 68;
58231
58237
  SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
58232
- compilerSourceDigest = true ? "08a3436f8de8fff57c3ffe7822dc37ac9addd391678cb64d73212534a6e94aa1" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
58238
+ compilerSourceDigest = true ? "2a1da81ab7798d1b1b2f07ce1f9d3314f5461acfea19548a6c5065edb1133762" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
58233
58239
  nativeCxxCompilerFlags = ["-fno-cxx-modules"];
58234
58240
  cFlagArray = (flags) => JSON.stringify(withoutGlogModuleMap(flags));
58235
58241
  cxxFlagArray = (flags) => JSON.stringify([...nativeCxxCompilerFlags, ...withoutGlogModuleMap(flags)]);
@@ -62572,7 +62578,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
62572
62578
  installName: settings2("LD_DYLIB_INSTALL_NAME") || null,
62573
62579
  buildVersion: {
62574
62580
  platform: settings2("PLATFORM_NAME") || null,
62575
- minimumOS: settings2("IPHONEOS_DEPLOYMENT_TARGET") || null,
62581
+ minimumOS: settings2("IPHONEOS_DEPLOYMENT_TARGET") || XCODE_DEFAULT_IOS_DEPLOYMENT_TARGET,
62576
62582
  sdk: settings2("SDK_VERSION") || null
62577
62583
  },
62578
62584
  machOType: settings2("MACH_O_TYPE") || null,
@@ -64796,7 +64802,7 @@ var init_swift_standin_digest = __esm({
64796
64802
  STANDIN_DIGEST_ENTRYPOINTS = ["swift-standins.ts", "swift-objc-compile.ts"];
64797
64803
  SPECIFIER = /from\s*['"]([^'"]+)['"]|import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
64798
64804
  standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
64799
- STANDIN_SOURCE_DIGEST = true ? "62c7fc880aa6efc985c4786587cb8441b81094e44c28f8d65e1d6dffda9c24f4" : standinSourceDigest();
64805
+ STANDIN_SOURCE_DIGEST = true ? "8357df1eb62bbe4eb3a2bc4588867a6b75d1052c41e274e31fec2fde3700676e" : standinSourceDigest();
64800
64806
  }
64801
64807
  });
64802
64808
 
@@ -65257,7 +65263,7 @@ var init_package_tree_digest = __esm({
65257
65263
 
65258
65264
  // src/expo-native-prebuilt.ts
65259
65265
  function expoNativeCompilerDigestValue() {
65260
- return true ? "713541e7c62170af6ddc3f724fb4a57492aa673e5a38ae5fb72fca9bc738f501" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
65266
+ return true ? "71d42de432341241c4ed964764fe540e192d2c68c59ab6123dd11f47da4fb36e" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
65261
65267
  }
65262
65268
  function readSources(value) {
65263
65269
  const sources = isRecord(value) ? value.sources : null;
@@ -85035,7 +85041,7 @@ var init_nitro_superset = __esm({
85035
85041
  init_nitroContract();
85036
85042
  init_swift_standin_digest();
85037
85043
  NITRO_SUPERSET_ENTRY_NAME = "superset";
85038
- NITRO_COMPILER_DIGEST = true ? "34df1d1abf432256c71fe1852a46602716a3c06f33ccabd96dc31e7249c723c5" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
85044
+ NITRO_COMPILER_DIGEST = true ? "e93e3676955536b40fb7d641f4fc1f923b11fdb88e6dace01f40c294b4bcde2e" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
85039
85045
  nitroSupersetLock = parseLock(nitro_superset_lock_default);
85040
85046
  nitroSupersetKey = (inputs) => nativeEntryKey({ ...inputs, compiler: NITRO_COMPILER_DIGEST });
85041
85047
  published2 = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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;
@@ -2975,7 +2975,7 @@ for arg in "$@"; do
2975
2975
  case $arg in
2976
2976
  @*)
2977
2977
  rsp=\${arg#@}
2978
- awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name2) => ` $0 == "\\"-l${name2}\\"" { next }`).join("")} { print }' "$rsp" > "$rsp.dedup"
2978
+ awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name2) => ` $0 == "\\"-l${name2}\\"" { next }`).join("")} $0 == "\\"-ObjC\\"" { next } { print }' "$rsp" > "$rsp.dedup"
2979
2979
  mv "$rsp.dedup" "$rsp"
2980
2980
  if [ "\${PEACH_DEFER_WASM_LINK:-}" = "1" ] && grep -q '"--start-lib"' "$rsp"; then
2981
2981
  cp "$rsp" ${JSON.stringify(import_node_path4.default.join(directory, ".peach-link.rsp"))}
@@ -8006,9 +8006,12 @@ function guestSourceObjects(graph, buildDirectory, objects, generatedOwners) {
8006
8006
  (target) => target.sourceTarget === null ? [] : [target.sourceTarget]
8007
8007
  )
8008
8008
  );
8009
- const owners = new Map(
8010
- [...generatedOwners].map(([name2, owner]) => [swiftTargetModuleName(name2), owner])
8011
- );
8009
+ const owners = new Map([
8010
+ ...[...names].map((name2) => [swiftTargetModuleName(name2), name2]),
8011
+ ...[...generatedOwners].map(
8012
+ ([name2, owner]) => [swiftTargetModuleName(name2), owner]
8013
+ )
8014
+ ]);
8012
8015
  const libraries = new Map(
8013
8016
  graph.targets.flatMap(
8014
8017
  (target) => target.productType === "swiftpm.target.binary" && target.sourceTarget !== null ? [[target.productName, target.sourceTarget]] : []
@@ -12474,7 +12477,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
12474
12477
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
12475
12478
  var MULTI_MANIFEST_VERSION = 68;
12476
12479
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
12477
- var compilerSourceDigest = true ? "08a3436f8de8fff57c3ffe7822dc37ac9addd391678cb64d73212534a6e94aa1" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
12480
+ var compilerSourceDigest = true ? "2a1da81ab7798d1b1b2f07ce1f9d3314f5461acfea19548a6c5065edb1133762" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
12478
12481
  function swiftArtifactHash(input, release, moduleRoot) {
12479
12482
  const hash = (0, import_node_crypto13.createHash)("sha256");
12480
12483
  hash.update(`swift-compile
@@ -14947,22 +14950,19 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
14947
14950
  allowExisting: true
14948
14951
  });
14949
14952
  if (modulemap.endsWith("/Modules/module.modulemap")) {
14950
- const headers = import_node_path27.default.posix.join(
14951
- import_node_path27.default.posix.dirname(import_node_path27.default.posix.dirname(modulemap)),
14952
- "Headers"
14953
- );
14954
- const mirrored = import_node_path27.default.posix.join(import_node_path27.default.posix.dirname(modulemap), "Headers");
14955
- for (const [, umbrella] of moduleContents.toString().matchAll(/\bumbrella\s+header\s+"([^"]+)"/g)) {
14956
- const source = settings.productHeaders[import_node_path27.default.posix.join(headers, umbrella)];
14957
- const contents = source === void 0 ? void 0 : input.files[source];
14958
- if (contents !== void 0)
14959
- stageTargetFile(
14960
- target.name,
14961
- import_node_path27.default.join(layout2.root, mirrored, umbrella),
14962
- contents,
14963
- { allowExisting: true }
14964
- );
14965
- }
14953
+ const framework = import_node_path27.default.posix.dirname(import_node_path27.default.posix.dirname(modulemap));
14954
+ for (const [, header] of moduleContents.toString().matchAll(/\bheader\s+"([^"]+)"/g))
14955
+ for (const folder of ["Headers", "PrivateHeaders"]) {
14956
+ const source = settings.productHeaders[import_node_path27.default.posix.join(framework, folder, header)];
14957
+ const contents = source === void 0 ? void 0 : input.files[source];
14958
+ if (contents !== void 0)
14959
+ stageTargetFile(
14960
+ target.name,
14961
+ import_node_path27.default.join(layout2.root, import_node_path27.default.posix.dirname(modulemap), folder, header),
14962
+ contents,
14963
+ { allowExisting: true }
14964
+ );
14965
+ }
14966
14966
  }
14967
14967
  if (nativeC && import_node_path27.default.posix.basename(modulemap) !== "module.modulemap") {
14968
14968
  stageTargetFile(
@@ -15314,7 +15314,13 @@ module ${moduleName}.Swift {
15314
15314
  swiftModules.delete(name2);
15315
15315
  projectOverlayFrameworks.delete(name2);
15316
15316
  }
15317
+ const mixedModules = new Set(
15318
+ [...native].flatMap(
15319
+ ([name2, value]) => value.mixed ? [swiftTargetModuleName(name2)] : []
15320
+ )
15321
+ );
15317
15322
  for (const name2 of sourceModules) swiftModules.add(name2);
15323
+ for (const name2 of mixedModules) swiftModules.delete(name2);
15318
15324
  for (const [file, contents] of Object.entries(input.files))
15319
15325
  if (file.endsWith(".modulemap"))
15320
15326
  addSwiftOverlayFrameworks(contents, swiftModules, projectOverlayFrameworks);
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/swift-compile.ts
4
4
  import {
@@ -2920,7 +2920,7 @@ for arg in "$@"; do
2920
2920
  case $arg in
2921
2921
  @*)
2922
2922
  rsp=\${arg#@}
2923
- awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name2) => ` $0 == "\\"-l${name2}\\"" { next }`).join("")} { print }' "$rsp" > "$rsp.dedup"
2923
+ awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name2) => ` $0 == "\\"-l${name2}\\"" { next }`).join("")} $0 == "\\"-ObjC\\"" { next } { print }' "$rsp" > "$rsp.dedup"
2924
2924
  mv "$rsp.dedup" "$rsp"
2925
2925
  if [ "\${PEACH_DEFER_WASM_LINK:-}" = "1" ] && grep -q '"--start-lib"' "$rsp"; then
2926
2926
  cp "$rsp" ${JSON.stringify(path4.join(directory, ".peach-link.rsp"))}
@@ -7953,9 +7953,12 @@ function guestSourceObjects(graph, buildDirectory, objects, generatedOwners) {
7953
7953
  (target) => target.sourceTarget === null ? [] : [target.sourceTarget]
7954
7954
  )
7955
7955
  );
7956
- const owners = new Map(
7957
- [...generatedOwners].map(([name2, owner]) => [swiftTargetModuleName(name2), owner])
7958
- );
7956
+ const owners = new Map([
7957
+ ...[...names].map((name2) => [swiftTargetModuleName(name2), name2]),
7958
+ ...[...generatedOwners].map(
7959
+ ([name2, owner]) => [swiftTargetModuleName(name2), owner]
7960
+ )
7961
+ ]);
7959
7962
  const libraries = new Map(
7960
7963
  graph.targets.flatMap(
7961
7964
  (target) => target.productType === "swiftpm.target.binary" && target.sourceTarget !== null ? [[target.productName, target.sourceTarget]] : []
@@ -12454,7 +12457,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
12454
12457
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
12455
12458
  var MULTI_MANIFEST_VERSION = 68;
12456
12459
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
12457
- var compilerSourceDigest = true ? "08a3436f8de8fff57c3ffe7822dc37ac9addd391678cb64d73212534a6e94aa1" : swiftCompilerSourceDigest(import.meta.dirname);
12460
+ var compilerSourceDigest = true ? "2a1da81ab7798d1b1b2f07ce1f9d3314f5461acfea19548a6c5065edb1133762" : swiftCompilerSourceDigest(import.meta.dirname);
12458
12461
  function swiftArtifactHash(input, release, moduleRoot) {
12459
12462
  const hash = createHash13("sha256");
12460
12463
  hash.update(`swift-compile
@@ -14927,22 +14930,19 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
14927
14930
  allowExisting: true
14928
14931
  });
14929
14932
  if (modulemap.endsWith("/Modules/module.modulemap")) {
14930
- const headers = path27.posix.join(
14931
- path27.posix.dirname(path27.posix.dirname(modulemap)),
14932
- "Headers"
14933
- );
14934
- const mirrored = path27.posix.join(path27.posix.dirname(modulemap), "Headers");
14935
- for (const [, umbrella] of moduleContents.toString().matchAll(/\bumbrella\s+header\s+"([^"]+)"/g)) {
14936
- const source = settings.productHeaders[path27.posix.join(headers, umbrella)];
14937
- const contents = source === void 0 ? void 0 : input.files[source];
14938
- if (contents !== void 0)
14939
- stageTargetFile(
14940
- target.name,
14941
- path27.join(layout2.root, mirrored, umbrella),
14942
- contents,
14943
- { allowExisting: true }
14944
- );
14945
- }
14933
+ const framework = path27.posix.dirname(path27.posix.dirname(modulemap));
14934
+ for (const [, header] of moduleContents.toString().matchAll(/\bheader\s+"([^"]+)"/g))
14935
+ for (const folder of ["Headers", "PrivateHeaders"]) {
14936
+ const source = settings.productHeaders[path27.posix.join(framework, folder, header)];
14937
+ const contents = source === void 0 ? void 0 : input.files[source];
14938
+ if (contents !== void 0)
14939
+ stageTargetFile(
14940
+ target.name,
14941
+ path27.join(layout2.root, path27.posix.dirname(modulemap), folder, header),
14942
+ contents,
14943
+ { allowExisting: true }
14944
+ );
14945
+ }
14946
14946
  }
14947
14947
  if (nativeC && path27.posix.basename(modulemap) !== "module.modulemap") {
14948
14948
  stageTargetFile(
@@ -15294,7 +15294,13 @@ module ${moduleName}.Swift {
15294
15294
  swiftModules.delete(name2);
15295
15295
  projectOverlayFrameworks.delete(name2);
15296
15296
  }
15297
+ const mixedModules = new Set(
15298
+ [...native].flatMap(
15299
+ ([name2, value]) => value.mixed ? [swiftTargetModuleName(name2)] : []
15300
+ )
15301
+ );
15297
15302
  for (const name2 of sourceModules) swiftModules.add(name2);
15303
+ for (const name2 of mixedModules) swiftModules.delete(name2);
15298
15304
  for (const [file, contents] of Object.entries(input.files))
15299
15305
  if (file.endsWith(".modulemap"))
15300
15306
  addSwiftOverlayFrameworks(contents, swiftModules, projectOverlayFrameworks);
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/swift-package.ts
4
4
  function swiftManifestSettings(target) {
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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
- /*! peach v0.1.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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;
@@ -41,6 +41,7 @@ __export(swift_toolchain_exports, {
41
41
  ensureSwiftLinuxRuntime: () => ensureSwiftLinuxRuntime,
42
42
  extractSwiftHostCompiler: () => extractSwiftHostCompiler,
43
43
  installSwiftWasmSdk: () => installSwiftWasmSdk,
44
+ peachHome: () => peachHome,
44
45
  peachsimPackageRoot: () => peachsimPackageRoot,
45
46
  privateSwiftCompilerRelease: () => privateSwiftCompilerRelease,
46
47
  privateSwiftDistributionRoot: () => privateSwiftDistributionRoot,
@@ -489,7 +490,7 @@ for arg in "$@"; do
489
490
  case $arg in
490
491
  @*)
491
492
  rsp=\${arg#@}
492
- awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name) => ` $0 == "\\"-l${name}\\"" { next }`).join("")} { print }' "$rsp" > "$rsp.dedup"
493
+ awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name) => ` $0 == "\\"-l${name}\\"" { next }`).join("")} $0 == "\\"-ObjC\\"" { next } { print }' "$rsp" > "$rsp.dedup"
493
494
  mv "$rsp.dedup" "$rsp"
494
495
  if [ "\${PEACH_DEFER_WASM_LINK:-}" = "1" ] && grep -q '"--start-lib"' "$rsp"; then
495
496
  cp "$rsp" ${JSON.stringify(import_node_path.default.join(directory, ".peach-link.rsp"))}
@@ -1019,6 +1020,7 @@ function swiftCompilerInstall(release) {
1019
1020
  ensureSwiftLinuxRuntime,
1020
1021
  extractSwiftHostCompiler,
1021
1022
  installSwiftWasmSdk,
1023
+ peachHome,
1022
1024
  peachsimPackageRoot,
1023
1025
  privateSwiftCompilerRelease,
1024
1026
  privateSwiftDistributionRoot,
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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": "65a0698bf022ace2f4254f3f891828dedf403d61c102238e242084a2279e04eb", "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
 
@@ -4757,7 +4757,7 @@ for arg in "$@"; do
4757
4757
  case $arg in
4758
4758
  @*)
4759
4759
  rsp=\${arg#@}
4760
- awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name3) => ` $0 == "\\"-l${name3}\\"" { next }`).join("")} { print }' "$rsp" > "$rsp.dedup"
4760
+ awk 'BEGIN { RS = " "; ORS = " " } /^"-l/ { if (seen[$0]++) next }${omitLibraries.map((name3) => ` $0 == "\\"-l${name3}\\"" { next }`).join("")} $0 == "\\"-ObjC\\"" { next } { print }' "$rsp" > "$rsp.dedup"
4761
4761
  mv "$rsp.dedup" "$rsp"
4762
4762
  if [ "\${PEACH_DEFER_WASM_LINK:-}" = "1" ] && grep -q '"--start-lib"' "$rsp"; then
4763
4763
  cp "$rsp" ${JSON.stringify(import_node_path4.default.join(directory, ".peach-link.rsp"))}
@@ -12922,9 +12922,12 @@ function guestSourceObjects(graph, buildDirectory, objects, generatedOwners) {
12922
12922
  (target) => target.sourceTarget === null ? [] : [target.sourceTarget]
12923
12923
  )
12924
12924
  );
12925
- const owners = new Map(
12926
- [...generatedOwners].map(([name3, owner]) => [swiftTargetModuleName(name3), owner])
12927
- );
12925
+ const owners = new Map([
12926
+ ...[...names].map((name3) => [swiftTargetModuleName(name3), name3]),
12927
+ ...[...generatedOwners].map(
12928
+ ([name3, owner]) => [swiftTargetModuleName(name3), owner]
12929
+ )
12930
+ ]);
12928
12931
  const libraries = new Map(
12929
12932
  graph.targets.flatMap(
12930
12933
  (target) => target.productType === "swiftpm.target.binary" && target.sourceTarget !== null ? [[target.productName, target.sourceTarget]] : []
@@ -17269,7 +17272,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
17269
17272
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
17270
17273
  var MULTI_MANIFEST_VERSION = 68;
17271
17274
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
17272
- var compilerSourceDigest = true ? "08a3436f8de8fff57c3ffe7822dc37ac9addd391678cb64d73212534a6e94aa1" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
17275
+ var compilerSourceDigest = true ? "2a1da81ab7798d1b1b2f07ce1f9d3314f5461acfea19548a6c5065edb1133762" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
17273
17276
  function swiftArtifactHash(input, release, moduleRoot) {
17274
17277
  const hash = (0, import_node_crypto13.createHash)("sha256");
17275
17278
  hash.update(`swift-compile
@@ -19649,22 +19652,19 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
19649
19652
  allowExisting: true
19650
19653
  });
19651
19654
  if (modulemap.endsWith("/Modules/module.modulemap")) {
19652
- const headers = import_node_path27.default.posix.join(
19653
- import_node_path27.default.posix.dirname(import_node_path27.default.posix.dirname(modulemap)),
19654
- "Headers"
19655
- );
19656
- const mirrored = import_node_path27.default.posix.join(import_node_path27.default.posix.dirname(modulemap), "Headers");
19657
- for (const [, umbrella] of moduleContents.toString().matchAll(/\bumbrella\s+header\s+"([^"]+)"/g)) {
19658
- const source = settings.productHeaders[import_node_path27.default.posix.join(headers, umbrella)];
19659
- const contents = source === void 0 ? void 0 : input.files[source];
19660
- if (contents !== void 0)
19661
- stageTargetFile(
19662
- target.name,
19663
- import_node_path27.default.join(layout2.root, mirrored, umbrella),
19664
- contents,
19665
- { allowExisting: true }
19666
- );
19667
- }
19655
+ const framework = import_node_path27.default.posix.dirname(import_node_path27.default.posix.dirname(modulemap));
19656
+ for (const [, header] of moduleContents.toString().matchAll(/\bheader\s+"([^"]+)"/g))
19657
+ for (const folder of ["Headers", "PrivateHeaders"]) {
19658
+ const source = settings.productHeaders[import_node_path27.default.posix.join(framework, folder, header)];
19659
+ const contents = source === void 0 ? void 0 : input.files[source];
19660
+ if (contents !== void 0)
19661
+ stageTargetFile(
19662
+ target.name,
19663
+ import_node_path27.default.join(layout2.root, import_node_path27.default.posix.dirname(modulemap), folder, header),
19664
+ contents,
19665
+ { allowExisting: true }
19666
+ );
19667
+ }
19668
19668
  }
19669
19669
  if (nativeC && import_node_path27.default.posix.basename(modulemap) !== "module.modulemap") {
19670
19670
  stageTargetFile(
@@ -20016,7 +20016,13 @@ module ${moduleName}.Swift {
20016
20016
  swiftModules.delete(name3);
20017
20017
  projectOverlayFrameworks.delete(name3);
20018
20018
  }
20019
+ const mixedModules = new Set(
20020
+ [...native].flatMap(
20021
+ ([name3, value]) => value.mixed ? [swiftTargetModuleName(name3)] : []
20022
+ )
20023
+ );
20019
20024
  for (const name3 of sourceModules) swiftModules.add(name3);
20025
+ for (const name3 of mixedModules) swiftModules.delete(name3);
20020
20026
  for (const [file, contents] of Object.entries(input.files))
20021
20027
  if (file.endsWith(".modulemap"))
20022
20028
  addSwiftOverlayFrameworks(contents, swiftModules, projectOverlayFrameworks);
@@ -29601,7 +29607,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
29601
29607
  installName: settings2("LD_DYLIB_INSTALL_NAME") || null,
29602
29608
  buildVersion: {
29603
29609
  platform: settings2("PLATFORM_NAME") || null,
29604
- minimumOS: settings2("IPHONEOS_DEPLOYMENT_TARGET") || null,
29610
+ minimumOS: settings2("IPHONEOS_DEPLOYMENT_TARGET") || XCODE_DEFAULT_IOS_DEPLOYMENT_TARGET,
29605
29611
  sdk: settings2("SDK_VERSION") || null
29606
29612
  },
29607
29613
  machOType: settings2("MACH_O_TYPE") || null,
@@ -30672,7 +30678,7 @@ function sourceClosureDigest(srcDir, entrypoints) {
30672
30678
  return hash.digest("hex");
30673
30679
  }
30674
30680
  var standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
30675
- var STANDIN_SOURCE_DIGEST = true ? "62c7fc880aa6efc985c4786587cb8441b81094e44c28f8d65e1d6dffda9c24f4" : standinSourceDigest();
30681
+ var STANDIN_SOURCE_DIGEST = true ? "8357df1eb62bbe4eb3a2bc4588867a6b75d1052c41e274e31fec2fde3700676e" : standinSourceDigest();
30676
30682
 
30677
30683
  // src/swift-standins.ts
30678
30684
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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": "65a0698bf022ace2f4254f3f891828dedf403d61c102238e242084a2279e04eb", "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
 
@@ -1909,7 +1909,7 @@ function readIosSdkTree(root) {
1909
1909
 
1910
1910
  // src/swift-standin-digest.ts
1911
1911
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
1912
- var STANDIN_SOURCE_DIGEST = true ? "62c7fc880aa6efc985c4786587cb8441b81094e44c28f8d65e1d6dffda9c24f4" : standinSourceDigest();
1912
+ var STANDIN_SOURCE_DIGEST = true ? "8357df1eb62bbe4eb3a2bc4588867a6b75d1052c41e274e31fec2fde3700676e" : standinSourceDigest();
1913
1913
 
1914
1914
  // src/expo-native-workspace.ts
1915
1915
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -5391,7 +5391,7 @@ var FOUNDATION_IMPLICIT_MODULES = [
5391
5391
  var FOUNDATION_IMPLICIT_FLAGS = FOUNDATION_IMPLICIT_MODULES.map(
5392
5392
  (module2) => `, "-Xfrontend", "-import-module", "-Xfrontend", "${module2}"`
5393
5393
  ).join("");
5394
- var compilerSourceDigest = true ? "08a3436f8de8fff57c3ffe7822dc37ac9addd391678cb64d73212534a6e94aa1" : swiftCompilerSourceDigest2(__sootsim_import_meta_dirname);
5394
+ var compilerSourceDigest = true ? "2a1da81ab7798d1b1b2f07ce1f9d3314f5461acfea19548a6c5065edb1133762" : swiftCompilerSourceDigest2(__sootsim_import_meta_dirname);
5395
5395
  var CORE_FOUNDATION_HANDLE_IMPORTS = [
5396
5396
  "CFAllocator",
5397
5397
  "CFArray",
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (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.2187 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2189 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/worklet-executable.ts
4
4
  import { parse } from "acorn";
@@ -70,7 +70,7 @@ export declare function setStyleChangeListener(listener: (node: SootSimNode) =>
70
70
  export declare function hasUnownedLiveAnimatedStyle(node: SootSimNode): boolean;
71
71
  export declare function refreshLiveAnimatedSceneGeometry(node: SootSimNode): void;
72
72
  export declare function propsPaintChange(previous: Record<string, unknown>, next: Record<string, unknown>): PaintChange;
73
- export declare function batchStyleWrites(node: object, write: () => void): void;
73
+ export declare function batchStyleWrites<T>(node: object, write: () => T): T;
74
74
  export declare function markWireStyleChanged(node: SootSimNode, paintChange?: PaintChange): void;
75
75
  export type SootSimChild = SootSimNode | SootSimTextNode;
76
76
  export interface LayoutHookPlacement {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peachsim",
3
- "version": "0.1.2187",
3
+ "version": "0.1.2189",
4
4
  "description": "Vite and Metro plugins, testing drivers, and SDK exports for peach.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "SEE LICENSE IN LICENSE",