peachsim 0.1.2179 → 0.1.2182

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 (104) hide show
  1. package/cli/commands/package.ts +7 -2
  2. package/cli/commands/shell-url.ts +28 -22
  3. package/dist-lib/agent-daemon-client.cjs +1 -1
  4. package/dist-lib/agent-events.cjs +1 -1
  5. package/dist-lib/attached-projects.cjs +1 -1
  6. package/dist-lib/auth/shared-session.cjs +1 -1
  7. package/dist-lib/backend-origin.cjs +1 -1
  8. package/dist-lib/beta.cjs +1 -1
  9. package/dist-lib/beta.mjs +1 -1
  10. package/dist-lib/bridge-constants.cjs +1 -1
  11. package/dist-lib/bridge-contract-input.cjs +1 -1
  12. package/dist-lib/bridge-contract-input.mjs +1 -1
  13. package/dist-lib/bridge-contract.cjs +1 -1
  14. package/dist-lib/bridge-contract.mjs +1 -1
  15. package/dist-lib/bundle-channel.cjs +225 -85
  16. package/dist-lib/capture-contract.cjs +1 -1
  17. package/dist-lib/capture-contract.mjs +1 -1
  18. package/dist-lib/cloud-contract.cjs +1 -1
  19. package/dist-lib/cloud-contract.mjs +1 -1
  20. package/dist-lib/cloud-test-args.cjs +1 -1
  21. package/dist-lib/cloud-test-args.mjs +1 -1
  22. package/dist-lib/cloud.cjs +1 -1
  23. package/dist-lib/cloud.mjs +1 -1
  24. package/dist-lib/config.cjs +1 -1
  25. package/dist-lib/config.mjs +1 -1
  26. package/dist-lib/detox/index.cjs +2 -2
  27. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  28. package/dist-lib/expo-swift-bundle.cjs +140 -48
  29. package/dist-lib/expo-swift-metadata.cjs +1 -1
  30. package/dist-lib/expo-swift-metadata.mjs +1 -1
  31. package/dist-lib/home-paths.cjs +1 -1
  32. package/dist-lib/host/bridge-host.cjs +201 -82
  33. package/dist-lib/host/fetch-proxy-handler.cjs +4 -4
  34. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  35. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  36. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  37. package/dist-lib/host/websocket-proxy.cjs +1 -1
  38. package/dist-lib/index.cjs +4 -4
  39. package/dist-lib/jump-to-source-babel.cjs +1 -1
  40. package/dist-lib/jump-to-source-native.cjs +1 -1
  41. package/dist-lib/kotlin-host.cjs +11 -3
  42. package/dist-lib/menu.cjs +1 -1
  43. package/dist-lib/menu.mjs +1 -1
  44. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  45. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  46. package/dist-lib/metro-production-bundle.cjs +1 -1
  47. package/dist-lib/metro-production-bundle.mjs +1 -1
  48. package/dist-lib/metro.cjs +4 -4
  49. package/dist-lib/native-app-identity-project.cjs +2 -2
  50. package/dist-lib/native-app-identity-project.mjs +2 -2
  51. package/dist-lib/native-app-identity.cjs +1 -1
  52. package/dist-lib/native-app-identity.mjs +1 -1
  53. package/dist-lib/native-firebase-metadata.cjs +1 -1
  54. package/dist-lib/native-firebase-metadata.mjs +1 -1
  55. package/dist-lib/pdfium-raster.cjs +1 -1
  56. package/dist-lib/pdfium-raster.mjs +1 -1
  57. package/dist-lib/plist.cjs +1 -1
  58. package/dist-lib/plist.mjs +1 -1
  59. package/dist-lib/profiles.cjs +1 -1
  60. package/dist-lib/public-brand.cjs +1 -1
  61. package/dist-lib/public-origins-lib-esm.json +24 -24
  62. package/dist-lib/public-origins-lib.json +53 -53
  63. package/dist-lib/react-native-host-modules.cjs +1 -1
  64. package/dist-lib/react-native-host-modules.mjs +1 -1
  65. package/dist-lib/reap-browser.cjs +1 -1
  66. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  67. package/dist-lib/sdk.cjs +1 -1
  68. package/dist-lib/sdk.mjs +1 -1
  69. package/dist-lib/skills.cjs +239 -176
  70. package/dist-lib/swift-compile.cjs +85 -16
  71. package/dist-lib/swift-compile.mjs +85 -16
  72. package/dist-lib/swift-package.cjs +1 -1
  73. package/dist-lib/swift-package.mjs +1 -1
  74. package/dist-lib/swift-submit.cjs +2 -2
  75. package/dist-lib/swift-submit.mjs +2 -2
  76. package/dist-lib/swift-toolchain.cjs +1 -1
  77. package/dist-lib/swift.cjs +1 -1
  78. package/dist-lib/vite-swift.cjs +87 -18
  79. package/dist-lib/vite.cjs +4 -4
  80. package/dist-lib/worklet-executable.cjs +1 -1
  81. package/dist-lib/worklet-executable.mjs +1 -1
  82. package/dist-types/packages/peach-engine/src/cli-companion.d.ts +1 -0
  83. package/dist-types/packages/peach-engine/src/ios/frame-art.d.ts +41 -0
  84. package/dist-types/packages/peach-engine/src/ios/frame-paint.d.ts +43 -0
  85. package/dist-types/packages/peach-engine/src/ios/frame-svg.d.ts +4 -0
  86. package/dist-types/packages/peach-engine/src/render-worker/map-command-channel.d.ts +14 -0
  87. package/kotlin/sdk.tar.gz +0 -0
  88. package/package.json +1 -1
  89. package/runtime-companion.json +1 -1
  90. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UIScrollView.h +8 -25
  91. package/sdk/ios/System/Library/Frameworks/UIKitTypes.framework/Headers/UIKitTypes.h +26 -0
  92. package/src/expo-native-workspace.ts +17 -20
  93. package/src/expo-swift-bundle.ts +6 -1
  94. package/src/expo-swift-host.ts +35 -6
  95. package/src/expo-widgets-bundle.ts +12 -8
  96. package/src/expoSwiftContract.ts +3 -0
  97. package/src/kotlin-host.ts +10 -2
  98. package/src/native-bundles.ts +30 -10
  99. package/src/one-sdk/source.ts +10 -4
  100. package/src/one-sdk-bundle.ts +57 -24
  101. package/src/screenshots/frame-compose.ts +14 -109
  102. package/src/swift-compile.ts +105 -13
  103. package/src/swift-submit.ts +2 -1
  104. package/src/wasm-optimize.ts +13 -4
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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;
@@ -2512,7 +2512,7 @@ function isValidRuntimeVersion(value) {
2512
2512
  }
2513
2513
 
2514
2514
  // runtime-companion.json
2515
- var runtime_companion_default = { abi: 1, sha256: "c5311b24d34f15e1e93e1e7fc426600404705562e03ce05c7c359e341afc75cd", file: "node/cli-c5311b24d34f15e1e93e1e7fc426600404705562e03ce05c7c359e341afc75cd.cjs" };
2515
+ var runtime_companion_default = { abi: 1, sha256: "d1826a4d4d05c87a157d5b160177de9cd6f1fd10a3d142804a92a0d57ff3060f", file: "node/cli-d1826a4d4d05c87a157d5b160177de9cd6f1fd10a3d142804a92a0d57ff3060f.cjs" };
2516
2516
 
2517
2517
  // src/answeredNativePackages.ts
2518
2518
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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;
@@ -2036,7 +2036,7 @@ var MAX_SWIFT_COMPILE_METAL_TOTAL_BYTES = 8 * 1024 * 1024;
2036
2036
  var MAX_SWIFT_COMPILE_IMAGES = 256;
2037
2037
  var MAX_SWIFT_COMPILE_IMAGE_BYTES = 4 * 1024 * 1024;
2038
2038
  var MAX_SWIFT_COMPILE_IMAGE_TOTAL_BYTES = 16 * 1024 * 1024;
2039
- var SWIFT_HOST_ABI = 69;
2039
+ var SWIFT_HOST_ABI = 70;
2040
2040
  var POLL_INTERVAL_MS = 1500;
2041
2041
  function httpSwiftCompileSubmit(context) {
2042
2042
  const { assetReadToken, authorization, endpoint } = context;
@@ -20701,6 +20701,13 @@ var BINARYEN_RELEASES = /* @__PURE__ */ new Map([
20701
20701
  ]
20702
20702
  ]);
20703
20703
  async function runWasmOpt(file, output2, skipPasses, binary2) {
20704
+ const admittedCores = windowAdmission()?.cores ?? Number(process.env.TM_EXEC_CPU_CORES);
20705
+ const requestedCores = Number(process.env.BINARYEN_CORES);
20706
+ const environment = { ...process.env, WASM_OPT_PATH: binary2 };
20707
+ if (Number.isInteger(admittedCores) && admittedCores > 0)
20708
+ environment.BINARYEN_CORES = String(
20709
+ Number.isInteger(requestedCores) && requestedCores > 0 ? Math.min(admittedCores, requestedCores) : admittedCores
20710
+ );
20704
20711
  const result = await (0, import_wasm_opt.wasmOpt)(
20705
20712
  [
20706
20713
  "-Oz",
@@ -20710,7 +20717,7 @@ async function runWasmOpt(file, output2, skipPasses, binary2) {
20710
20717
  "-o",
20711
20718
  output2
20712
20719
  ],
20713
- { env: { ...process.env, WASM_OPT_PATH: binary2 } }
20720
+ { env: environment }
20714
20721
  );
20715
20722
  if (result.status !== 0)
20716
20723
  throw new Error(`wasm-opt exited ${result.status}: ${result.stderr}`);
@@ -22744,7 +22751,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
22744
22751
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
22745
22752
  var MULTI_MANIFEST_VERSION = 68;
22746
22753
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
22747
- var compilerSourceDigest = true ? "49b49a3b4f72b519cda4a1310d169f7d233d4f0249b0bcff228d2c316fafd9e1" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
22754
+ var compilerSourceDigest = true ? "73960368f0b83cf042511655d857d5f64204fa539e2c984423a12c08657b068e" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
22748
22755
  function swiftArtifactHash(input, release, moduleRoot) {
22749
22756
  const hash = (0, import_node_crypto19.createHash)("sha256");
22750
22757
  hash.update(`swift-compile
@@ -22870,6 +22877,20 @@ function emitSwiftPackageManifest(args) {
22870
22877
  const prebuilt = args.prebuilt;
22871
22878
  const linkedObjects = Boolean(distribution || prebuilt);
22872
22879
  const cxxFlagsFor = (flags) => args.deferDarwinOverlay ? withoutWasmOverlayIsystem(flags) : flags;
22880
+ const packageModules = new Set(
22881
+ targets.filter(({ name: name3 }) => !args.sourceSwiftTargets?.has(name3)).map(({ name: name3 }) => swiftTargetModuleName(name3))
22882
+ );
22883
+ const mapsPackageModule = (flag) => {
22884
+ if (!flag.startsWith("-fmodule-map-file=")) return false;
22885
+ const file = flag.slice("-fmodule-map-file=".length).replaceAll(SWIFT_NATIVE_INPUT_ROOT, args.root);
22886
+ if (!file.includes("/Pods/Headers/")) return false;
22887
+ const map2 = args.files.get(file) ?? ((0, import_node_fs47.existsSync)(file) ? (0, import_node_fs47.readFileSync)(file) : void 0);
22888
+ const name3 = map2 === void 0 ? void 0 : moduleMapName(map2.toString());
22889
+ return name3 !== void 0 && packageModules.has(name3);
22890
+ };
22891
+ const withoutPackageModuleMaps = (flags) => flags.filter((flag) => !mapsPackageModule(flag));
22892
+ const targetCFlags = (flags) => cFlagArray(withoutPackageModuleMaps(flags));
22893
+ const targetCxxFlags = (flags) => cxxFlagArray(withoutPackageModuleMaps(flags));
22873
22894
  const reachedFrameworks = /* @__PURE__ */ new Set();
22874
22895
  const reach = (name3) => {
22875
22896
  if (reachedFrameworks.has(name3) || targets.some((target) => swiftTargetModuleName(target.name) === name3))
@@ -22949,7 +22970,9 @@ function emitSwiftPackageManifest(args) {
22949
22970
  const macroSettings = (values) => (values ?? []).map((value) => ` ${clangMacroSetting(value)},`).join("");
22950
22971
  const flagArray = (literal2) => `peachCompilerArguments(${JSON.stringify(literal2.replace(/,\s*]$/, "]"))})`;
22951
22972
  const swiftFlagArray = (literal2) => {
22952
- const flags = JSON.parse(literal2.replace(/,\s*]$/, "]"));
22973
+ const flags = JSON.parse(literal2.replace(/,\s*]$/, "]")).filter(
22974
+ (flag, index, all) => !mapsPackageModule(flag) && !(flag === "-Xcc" && mapsPackageModule(all[index + 1] ?? ""))
22975
+ );
22953
22976
  const content = flags.map((flag) => JSON.stringify(flag)).join("\n") + "\n";
22954
22977
  const digest2 = (0, import_node_crypto19.createHash)("sha256").update(content).digest("hex");
22955
22978
  const file = import_node_path44.default.join(args.root, ".peach-swift-arguments", `${digest2}.rsp`);
@@ -23109,18 +23132,18 @@ function emitSwiftPackageManifest(args) {
23109
23132
  "c"
23110
23133
  ).map((entry) => ` ${entry},`).join(
23111
23134
  ""
23112
- )} .unsafeFlags(${flagArray(cFlagArray([...nativeFlags, ...native.clang.flags]))})]`,
23135
+ )} .unsafeFlags(${flagArray(targetCFlags([...nativeFlags, ...native.clang.flags]))})]`,
23113
23136
  ...nativeCxx ? [
23114
23137
  `cxxSettings: [${cxxDefines}${clangSettingEntries(
23115
23138
  frameworkSearchFlags(target, "cxx"),
23116
23139
  "cxx"
23117
23140
  ).map((entry) => ` ${entry},`).join(
23118
23141
  ""
23119
- )} .unsafeFlags(${flagArray(cxxFlagArray([...cxxFlagsFor(nativeFlags), ...native.clang.cxxFlags]))})]`
23142
+ )} .unsafeFlags(${flagArray(targetCxxFlags([...cxxFlagsFor(nativeFlags), ...native.clang.cxxFlags]))})]`
23120
23143
  ] : []
23121
23144
  ].join(", ") : [
23122
- `cSettings: [${cDefines}${declaredClangSettings(target, "c")} .unsafeFlags(${flagArray(cFlagArray([...nativeFlags, ...native?.flags ?? []]))})]`,
23123
- `cxxSettings: [${cxxDefines}${declaredClangSettings(target, "cxx")} .unsafeFlags(${flagArray(cxxFlagArray([...cxxFlagsFor(nativeFlags), ...native?.cxxFlags ?? []]))})]`
23145
+ `cSettings: [${cDefines}${declaredClangSettings(target, "c")} .unsafeFlags(${flagArray(targetCFlags([...nativeFlags, ...native?.flags ?? []]))})]`,
23146
+ `cxxSettings: [${cxxDefines}${declaredClangSettings(target, "cxx")} .unsafeFlags(${flagArray(targetCxxFlags([...cxxFlagsFor(nativeFlags), ...native?.cxxFlags ?? []]))})]`
23124
23147
  ].join(", ");
23125
23148
  const exclusions = native?.clang ? [] : [
23126
23149
  ...native ? native.exclude ?? native.lateSources : [],
@@ -23189,9 +23212,9 @@ function emitSwiftPackageManifest(args) {
23189
23212
  ` path: ${JSON.stringify(group.path)},`,
23190
23213
  ` sources: ${JSON.stringify(group.sources)},`,
23191
23214
  ` publicHeadersPath: ${JSON.stringify(native.groups ? "include" : "PeachSwiftImplementation")},`,
23192
- ` cSettings: [${macroSettings(owner?.cDefines)}${declaredClangSettings(owner, "c")} .unsafeFlags(${flagArray(cFlagArray([...nativeFlags, "-I", native.includeDirectory, ...args.headerDirectory ? ["-I", args.headerDirectory] : [], ...group.flags]))})],`,
23215
+ ` cSettings: [${macroSettings(owner?.cDefines)}${declaredClangSettings(owner, "c")} .unsafeFlags(${flagArray(targetCFlags([...nativeFlags, "-I", native.includeDirectory, ...args.headerDirectory ? ["-I", args.headerDirectory] : [], ...group.flags]))})],`,
23193
23216
  ...group.sources.some((source) => /\.(?:cc|cpp|cxx|mm)$/.test(source)) ? [
23194
- ` cxxSettings: [${macroSettings(owner?.cxxDefines)}${declaredClangSettings(owner, "cxx")} .unsafeFlags(${flagArray(cxxFlagArray([...cxxFlagsFor(nativeFlags), "-I", native.includeDirectory, ...group.cxxFlags]))})]),`
23217
+ ` cxxSettings: [${macroSettings(owner?.cxxDefines)}${declaredClangSettings(owner, "cxx")} .unsafeFlags(${flagArray(targetCxxFlags([...cxxFlagsFor(nativeFlags), "-I", native.includeDirectory, ...group.cxxFlags]))})]),`
23195
23218
  ] : [" ),"]
23196
23219
  ]) : [];
23197
23220
  }),
@@ -24718,7 +24741,10 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
24718
24741
  const target = bySourcePath.find(
24719
24742
  (candidate) => candidate.path === "." || file.startsWith(`${candidate.path}/`)
24720
24743
  );
24721
- if (target) swiftTargets.add(target.name);
24744
+ const excluded = target?.exclude?.some(
24745
+ (name3) => file === import_node_path44.default.posix.join(target.path, name3)
24746
+ );
24747
+ if (target && !excluded) swiftTargets.add(target.name);
24722
24748
  }
24723
24749
  const importedModules = /* @__PURE__ */ new Set();
24724
24750
  const swiftImportedModules = /* @__PURE__ */ new Set();
@@ -25764,6 +25790,9 @@ module ${moduleName}.Swift {
25764
25790
  frameworkLink,
25765
25791
  [
25766
25792
  ...prebuilt.objects.map(quote),
25793
+ "-Wl,--start-lib",
25794
+ ...prebuilt.lazyObjects.map(quote),
25795
+ "-Wl,--end-lib",
25767
25796
  ...darwinRecordsRegion(prebuilt.providers.map(quote))
25768
25797
  ].join("\n") + "\n"
25769
25798
  );
@@ -26049,7 +26078,7 @@ function readCompiledArtifact(directory, hash) {
26049
26078
  return null;
26050
26079
  const bytes = (0, import_node_fs47.readFileSync)(import_node_path44.default.join(directory, "app.wasm"));
26051
26080
  const gzip2 = (0, import_node_fs47.readFileSync)(import_node_path44.default.join(directory, "icu.gz"));
26052
- if ((0, import_node_crypto19.createHash)("sha256").update(bytes).digest("hex") !== receipt.wasm || (0, import_node_crypto19.createHash)("sha256").update(gzip2).digest("hex") !== receipt.icu || bytes.length < 8 || bytes.readUInt32LE(0) !== 1836278016 || bytes.readUInt32LE(4) !== 1)
26081
+ if ((0, import_node_crypto19.createHash)("sha256").update(bytes).digest("hex") !== receipt.wasm || (0, import_node_crypto19.createHash)("sha256").update(gzip2).digest("hex") !== receipt.icu || bytes.length <= 8 || bytes.readUInt32LE(0) !== 1836278016 || bytes.readUInt32LE(4) !== 1)
26053
26082
  return null;
26054
26083
  return { hash, bytes, icu: { sha256: receipt.icu, gzip: gzip2 } };
26055
26084
  } catch (error) {
@@ -26170,7 +26199,13 @@ function linkedFrameworkTargets(moduleRoot, input) {
26170
26199
  );
26171
26200
  const targets = compileTargets(input);
26172
26201
  const planning = targets.length > 0 ? targets : [{ name: "App", path: "." }];
26173
- const siblings = swiftTargetDependencies(input.files, planning, libraries.keys());
26202
+ const siblings = swiftTargetDependencies(
26203
+ input.files,
26204
+ planning.map(
26205
+ (target) => input.libraries?.[target.name] ? { ...target, exclude: [] } : target
26206
+ ),
26207
+ libraries.keys()
26208
+ );
26174
26209
  const reached = /* @__PURE__ */ new Set();
26175
26210
  const reach = (name3) => {
26176
26211
  if (name3 === "SwiftUI") return;
@@ -26472,9 +26507,31 @@ async function buildFrameworkProducts(scratch2, args) {
26472
26507
  }
26473
26508
  const providers = (0, import_node_fs47.readdirSync)(providerDir).filter((file) => file.endsWith(".o")).sort().map((file) => import_node_path44.default.join(providerDir, file));
26474
26509
  for (const provider of providers) linked.owners.set(provider, "DarwinRecords");
26510
+ const archive = import_node_path44.default.join(scratch2, "lib");
26511
+ (0, import_node_fs47.rmSync)(archive, { recursive: true, force: true });
26512
+ (0, import_node_fs47.mkdirSync)(archive);
26513
+ const archived = /* @__PURE__ */ new Map();
26514
+ for (const object5 of objects) {
26515
+ const target = linked.owners.get(object5);
26516
+ const dir = import_node_path44.default.join(release, `${target}.build`);
26517
+ if (!target || target === "Darwin" || !object5.startsWith(dir + import_node_path44.default.sep)) continue;
26518
+ const name3 = `${target}-${import_node_path44.default.relative(dir, object5).replaceAll(import_node_path44.default.sep, "-").replace(/\.swift\.o$/, ".o")}`;
26519
+ (0, import_node_fs47.symlinkSync)(object5, import_node_path44.default.join(archive, name3));
26520
+ archived.set(object5, `lib/${name3}`);
26521
+ }
26522
+ const roots = swiftObjcRootObjects(`${scratch2}
26523
+ ${args.frameworkKey}`, scratch2, [
26524
+ ...archived.values()
26525
+ ]);
26526
+ const linkedObjects = objects.map((object5) => {
26527
+ const name3 = archived.get(object5);
26528
+ return name3 ? { path: import_node_path44.default.join(scratch2, name3), lazy: !roots.has(name3) } : { path: object5, lazy: false };
26529
+ });
26475
26530
  return {
26531
+ root: scratch2,
26476
26532
  modules: import_node_path44.default.join(release, "Modules"),
26477
- objects,
26533
+ objects: linkedObjects.filter((object5) => !object5.lazy).map((object5) => object5.path),
26534
+ lazyObjects: linkedObjects.filter((object5) => object5.lazy).map((object5) => object5.path),
26478
26535
  owners: linked.owners,
26479
26536
  providers,
26480
26537
  link,
@@ -26628,6 +26685,10 @@ ${args.frameworkKey}
26628
26685
  for (const object5 of args.prebuilt.objects)
26629
26686
  hash.update(`object
26630
26687
  ${object5}
26688
+ ${statOf(object5)}`);
26689
+ for (const object5 of args.prebuilt.lazyObjects)
26690
+ hash.update(`lazy-object
26691
+ ${object5}
26631
26692
  ${statOf(object5)}`);
26632
26693
  for (const object5 of args.prebuilt.providers)
26633
26694
  hash.update(`provider
@@ -27044,7 +27105,7 @@ function compileSwiftProjectOnce(input, options) {
27044
27105
  pruneSwiftWasmLink(
27045
27106
  root,
27046
27107
  options.toolchainBin,
27047
- frameworkRoot,
27108
+ prebuilt?.root ?? frameworkRoot,
27048
27109
  input.staticClangTargets,
27049
27110
  options.project,
27050
27111
  void 0,
@@ -27068,11 +27129,19 @@ function compileSwiftProjectOnce(input, options) {
27068
27129
  optimized
27069
27130
  });
27070
27131
  else if (input.optimize) await optimizeWasm(output2, optimized);
27132
+ const executable = input.optimize ? optimized : output2;
27133
+ await runCompiler(
27134
+ import_node_path44.default.join(options.toolchainBin, "llvm-objcopy"),
27135
+ ["--remove-section=.swift1_autolink_entries", executable],
27136
+ buildOptions
27137
+ );
27071
27138
  const artifact = {
27072
27139
  hash,
27073
- bytes: (0, import_node_fs47.readFileSync)(input.optimize ? optimized : output2),
27140
+ bytes: (0, import_node_fs47.readFileSync)(executable),
27074
27141
  icu: await icu
27075
27142
  };
27143
+ if (artifact.bytes.length <= 8)
27144
+ throw new Error("swift-compile: deferred linker produced no executable");
27076
27145
  if (!options.project) saveCompiledArtifact(root, artifact);
27077
27146
  saveSharedArtifact(sharedRoot, artifact);
27078
27147
  report("compiled artifact verified");
@@ -31281,6 +31350,7 @@ async function prepareWorkspace(app, stage, key2, podsEnvironment) {
31281
31350
  const nodeVersion = typeof manifest.engines?.node === "string" && /^\d+(\.\d+){0,2}$/.test(manifest.engines.node) ? manifest.engines.node : null;
31282
31351
  const prefix = nodeVersion ? ["mise", "exec", `node@${nodeVersion}`, "--"] : [];
31283
31352
  const bunPrefix = import_node_path54.default.join(cacheDir(), "package-managers", manager);
31353
+ const bunExecutable = import_node_path54.default.join(bunPrefix, "node_modules/.bin/bun");
31284
31354
  const install = manager === "pnpm" || manager.startsWith("pnpm@") ? [
31285
31355
  "npx",
31286
31356
  "--yes",
@@ -31289,11 +31359,7 @@ async function prepareWorkspace(app, stage, key2, podsEnvironment) {
31289
31359
  "--frozen-lockfile",
31290
31360
  // the copied node_modules link into the store pnpm chose on the app's volume
31291
31361
  ...pnpmStoreArgs(root)
31292
- ] : manager === "yarn" || manager.startsWith("yarn@") ? ["corepack", "yarn", "install", "--immutable"] : manager === "bun" || manager.startsWith("bun@") ? manager === "bun" ? ["bun", "install", "--frozen-lockfile"] : [
31293
- import_node_path54.default.join(bunPrefix, "node_modules/.bin/bun"),
31294
- "install",
31295
- "--frozen-lockfile"
31296
- ] : (
31362
+ ] : manager === "yarn" || manager.startsWith("yarn@") ? ["corepack", "yarn", "install", "--immutable"] : manager === "bun" || manager.startsWith("bun@") ? manager === "bun" ? ["bun", "install", "--frozen-lockfile"] : [bunExecutable, "install", "--frozen-lockfile"] : (
31297
31363
  // npm ci would delete the cloned tree before installing it again
31298
31364
  ["npm", "install", "--no-audit", "--no-fund"]
31299
31365
  );
@@ -31302,22 +31368,22 @@ async function prepareWorkspace(app, stage, key2, podsEnvironment) {
31302
31368
  const command = [...prefix, ...args];
31303
31369
  await run8(command[0], command.slice(1), cwd, env);
31304
31370
  };
31371
+ if (manager.startsWith("bun@") && (!projectReady || !import_node_fs56.default.existsSync(bunExecutable)))
31372
+ await execute(
31373
+ [
31374
+ "npm",
31375
+ "install",
31376
+ "--prefix",
31377
+ bunPrefix,
31378
+ // the bun package ships a placeholder binary its postinstall replaces
31379
+ "--ignore-scripts=false",
31380
+ "--no-audit",
31381
+ "--no-fund",
31382
+ manager
31383
+ ],
31384
+ work
31385
+ );
31305
31386
  if (!projectReady) {
31306
- if (manager.startsWith("bun@"))
31307
- await execute(
31308
- [
31309
- "npm",
31310
- "install",
31311
- "--prefix",
31312
- bunPrefix,
31313
- // the bun package ships a placeholder binary its postinstall replaces
31314
- "--ignore-scripts=false",
31315
- "--no-audit",
31316
- "--no-fund",
31317
- manager
31318
- ],
31319
- work
31320
- );
31321
31387
  if (install[0] === "npm" && import_node_fs56.default.existsSync(import_node_path54.default.join(work, "package-lock.json"))) {
31322
31388
  await execute(
31323
31389
  ["npm", "ci", "--dry-run", "--ignore-scripts", "--no-audit", "--no-fund"],
@@ -31943,7 +32009,7 @@ function sourceClosureDigest(srcDir, entrypoints) {
31943
32009
  return hash.digest("hex");
31944
32010
  }
31945
32011
  var standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
31946
- var STANDIN_SOURCE_DIGEST = true ? "a3c0ce4a9bde10ffdfdde4f65019a9ffc1f75b1779312f1d5ed2a686a3f6e0c7" : standinSourceDigest();
32012
+ var STANDIN_SOURCE_DIGEST = true ? "cc396d180b261e922288f645807b4a704fa92410ffc902bfbaac72b81af6413a" : standinSourceDigest();
31947
32013
 
31948
32014
  // src/expoSwiftContract.ts
31949
32015
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -32209,7 +32275,7 @@ async function packageTreeDigest(root) {
32209
32275
  // src/expo-native-prebuilt.ts
32210
32276
  var EXPO_NATIVE_ENTRY_NAME = "ios";
32211
32277
  function expoNativeCompilerDigestValue() {
32212
- return true ? "ac42571af765c2d0124171549a0a6350da01f038cf184c0f638923a4932a5e8b" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
32278
+ return true ? "2799fbdcc514ac59227047679bf5780658834c45f46965b7b41455f6453d53e2" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
32213
32279
  }
32214
32280
  var IDENTITY_SOURCE_SKIPS = 1 | 4 | 8 | 16 | 32 | 64 | 128 | 4096;
32215
32281
  function readSources(value) {
@@ -44172,7 +44238,15 @@ function targetSettings2(units) {
44172
44238
  }
44173
44239
  return settings;
44174
44240
  }
44175
- function expoEntry(units) {
44241
+ function oneSDKStamp(oneSDK) {
44242
+ if (!oneSDK) return "";
44243
+ const hash = (0, import_node_crypto40.createHash)("sha256");
44244
+ for (const files2 of [oneSDK.targets, oneSDK.entry])
44245
+ for (const [name3, source] of [...files2].sort(([a], [b]) => a.localeCompare(b)))
44246
+ hash.update(`${name3}\0${source}\0`);
44247
+ return hash.digest("hex");
44248
+ }
44249
+ function expoEntry(units, oneSDK = false) {
44176
44250
  const namespaces = [...new Set(units.map((unit2) => unit2.namespace))].filter((namespace) => namespace !== "PeachExpoApp").filter(
44177
44251
  (namespace) => units.some(
44178
44252
  (unit2) => Object.keys(unit2.files).some((file) => file.startsWith(`Sources/${namespace}/`))
@@ -44182,13 +44256,14 @@ function expoEntry(units) {
44182
44256
  const subscribers = units.flatMap((unit2) => unit2.appDelegateSubscribers);
44183
44257
  const handlers = units.flatMap((unit2) => unit2.reactDelegateHandlers);
44184
44258
  const delegates = subscribers.length + handlers.length > 0 ? `; PeachExpoRuntime.registerDelegates(subscribers: [${subscribers.join(", ")}], handlers: [${handlers.join(", ")}])` : "";
44259
+ const view = oneSDK ? '@ViewBuilder func view(props: JSON) -> some View {\n if props["oneSDKHost"] != nil { OneSDKUIKitHost(props: props) } else { PeachExpoNativeView(props: props) }\n }' : "func view(props: JSON) -> PeachExpoNativeView { PeachExpoNativeView(props: props) }";
44185
44260
  return `import SwiftUI
44186
44261
  internal import ExpoModulesCore
44187
- ${bridgeModules.length ? "import React\n" : ""}${namespaces.map((namespace) => `import ${namespace}`).join("\n")}
44262
+ ${bridgeModules.length ? "import React\n" : ""}${oneSDK ? "import One\nimport OneSDKBindings\n" : ""}${namespaces.map((namespace) => `import ${namespace}`).join("\n")}
44188
44263
 
44189
44264
  @main struct PeachExpoApp: PeachPackage {
44190
44265
  init() { MainActor.assumeIsolated { PeachExpoRuntime.register([${units.flatMap((unit2) => unit2.classes).join(", ")}])${delegates}${bridgeModules.length ? `; RCTModuleHost.register([${bridgeModules.join(", ")}])` : ""} } }
44191
- func view(props: JSON) -> PeachExpoNativeView { PeachExpoNativeView(props: props) }
44266
+ ${view}
44192
44267
  }
44193
44268
 
44194
44269
  @_expose(wasm, "peach_expo_call")
@@ -44284,7 +44359,7 @@ async function compileExpoSwiftModules(root, base, publishArtifact, options = {}
44284
44359
  installSwiftInputTrace();
44285
44360
  let key2;
44286
44361
  try {
44287
- key2 = `${await discoveryKey(root, options.installedWorkspace, true, options.iosTarget, options.moduleRoot)}\0${options.only?.join(",") ?? ""}`;
44362
+ key2 = `${await discoveryKey(root, options.installedWorkspace, true, options.iosTarget, options.moduleRoot)}\0${options.only?.join(",") ?? ""}\0${oneSDKStamp(options.oneSDK)}`;
44288
44363
  } catch {
44289
44364
  return compileExpoSwiftModulesTraced(root, base, publishArtifact, options);
44290
44365
  }
@@ -44321,11 +44396,23 @@ async function compileExpoSwiftModulesTraced(root, base, publishArtifact, option
44321
44396
  throw new Error(`conflicting Expo Swift binary source ${name3}`);
44322
44397
  files2[name3] = source;
44323
44398
  }
44324
- files2[EXPO_SWIFT_ENTRY] = expoEntry(linked2);
44399
+ const settings = targetSettings2(linked2);
44400
+ if (options.oneSDK) {
44401
+ for (const [name3, source] of options.oneSDK.targets) files2[name3] = source;
44402
+ for (const [name3, source] of options.oneSDK.entry)
44403
+ files2[`Sources/PeachExpoApp/${name3}`] = source;
44404
+ settings.set("OneSDKBindings", {
44405
+ languageMode: 5,
44406
+ mainActorIsolation: false,
44407
+ swiftFlags: ["-suppress-warnings"],
44408
+ dependencies: [{ kind: "target", name: "One" }]
44409
+ });
44410
+ }
44411
+ files2[EXPO_SWIFT_ENTRY] = expoEntry(linked2, options.oneSDK !== void 0);
44325
44412
  files2["Package.swift"] = expoManifest(
44326
44413
  files2,
44327
44414
  linked2.map((unit2) => generations.get(unit2) ?? "").join(","),
44328
- targetSettings2(linked2)
44415
+ settings
44329
44416
  );
44330
44417
  const provider = linked2.some((unit2) => unit2.reactNativeProvider) ? reactProvider : void 0;
44331
44418
  if (provider) {
@@ -44686,7 +44773,11 @@ async function compileExpoSwiftModulesTraced(root, base, publishArtifact, option
44686
44773
  stamps.set(unit2, stamp);
44687
44774
  candidates.push(unit2);
44688
44775
  }
44689
- const preparedKey = expoSwiftPreparedKey(base, units, reactProviderStamp);
44776
+ const preparedKey = expoSwiftPreparedKey(
44777
+ base,
44778
+ units,
44779
+ reactProviderStamp + oneSDKStamp(options.oneSDK)
44780
+ );
44690
44781
  if (!publishArtifact) {
44691
44782
  const prepared = preparedExpoSwift.get(preparedKey);
44692
44783
  if (prepared) {
@@ -44878,7 +44969,7 @@ async function compileExpoSwiftModulesTraced(root, base, publishArtifact, option
44878
44969
  }
44879
44970
 
44880
44971
  // src/expo-swift-bundle.ts
44881
- async function buildExpoSwiftBundle(appRoot) {
44972
+ async function buildExpoSwiftBundle(appRoot, oneSDK) {
44882
44973
  const assets2 = [];
44883
44974
  const metadata = await compileExpoSwiftModules(
44884
44975
  appRoot,
@@ -44891,7 +44982,8 @@ async function buildExpoSwiftBundle(appRoot) {
44891
44982
  contentType: "application/wasm"
44892
44983
  });
44893
44984
  if ("gzip" in artifact.icu) assets2.push(await swiftIcuBundleAsset(artifact.icu));
44894
- }
44985
+ },
44986
+ { oneSDK }
44895
44987
  );
44896
44988
  if (!metadata) return null;
44897
44989
  return { metadata, assets: assets2 };
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // ../peach-globals/src/bundle-global-footer.ts
4
4
  function findBundleFooter(source, prefix) {
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2179 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2182 | (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;