peachsim 0.1.2218 → 0.1.2220

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 (88) hide show
  1. package/cli/commands/flow.ts +4 -0
  2. package/cli/maestro-compare.ts +37 -26
  3. package/cli/outbound-endpoints.ts +2 -2
  4. package/dist-lib/agent-daemon-client.cjs +1 -1
  5. package/dist-lib/agent-events.cjs +1 -1
  6. package/dist-lib/attached-projects.cjs +1 -1
  7. package/dist-lib/auth/shared-session.cjs +1 -1
  8. package/dist-lib/backend-origin.cjs +1 -1
  9. package/dist-lib/beta.cjs +1 -1
  10. package/dist-lib/beta.mjs +1 -1
  11. package/dist-lib/bridge-constants.cjs +1 -1
  12. package/dist-lib/bridge-contract-input.cjs +1 -1
  13. package/dist-lib/bridge-contract-input.mjs +1 -1
  14. package/dist-lib/bridge-contract.cjs +1 -1
  15. package/dist-lib/bridge-contract.mjs +1 -1
  16. package/dist-lib/bundle-channel.cjs +92 -22
  17. package/dist-lib/capture-contract.cjs +1 -1
  18. package/dist-lib/capture-contract.mjs +1 -1
  19. package/dist-lib/cloud-contract.cjs +1 -1
  20. package/dist-lib/cloud-contract.mjs +1 -1
  21. package/dist-lib/cloud-test-args.cjs +1 -1
  22. package/dist-lib/cloud-test-args.mjs +1 -1
  23. package/dist-lib/cloud.cjs +1 -1
  24. package/dist-lib/cloud.mjs +1 -1
  25. package/dist-lib/config.cjs +1 -1
  26. package/dist-lib/config.mjs +1 -1
  27. package/dist-lib/detox/index.cjs +1 -1
  28. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  29. package/dist-lib/expo-swift-bundle.cjs +89 -19
  30. package/dist-lib/expo-swift-metadata.cjs +1 -1
  31. package/dist-lib/expo-swift-metadata.mjs +1 -1
  32. package/dist-lib/home-paths.cjs +1 -1
  33. package/dist-lib/host/bridge-host.cjs +90 -20
  34. package/dist-lib/host/fetch-proxy-handler.cjs +3 -3
  35. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  36. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  37. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  38. package/dist-lib/host/websocket-proxy.cjs +1 -1
  39. package/dist-lib/index.cjs +3 -3
  40. package/dist-lib/jump-to-source-babel.cjs +1 -1
  41. package/dist-lib/jump-to-source-native.cjs +1 -1
  42. package/dist-lib/kotlin-host.cjs +1 -1
  43. package/dist-lib/menu.cjs +1 -1
  44. package/dist-lib/menu.mjs +1 -1
  45. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  46. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  47. package/dist-lib/metro-production-bundle.cjs +1 -1
  48. package/dist-lib/metro-production-bundle.mjs +1 -1
  49. package/dist-lib/metro.cjs +3 -3
  50. package/dist-lib/native-app-identity-project.cjs +2 -2
  51. package/dist-lib/native-app-identity-project.mjs +2 -2
  52. package/dist-lib/native-app-identity.cjs +1 -1
  53. package/dist-lib/native-app-identity.mjs +1 -1
  54. package/dist-lib/native-firebase-metadata.cjs +1 -1
  55. package/dist-lib/native-firebase-metadata.mjs +1 -1
  56. package/dist-lib/pdfium-raster.cjs +1 -1
  57. package/dist-lib/pdfium-raster.mjs +1 -1
  58. package/dist-lib/plist.cjs +1 -1
  59. package/dist-lib/plist.mjs +1 -1
  60. package/dist-lib/profiles.cjs +1 -1
  61. package/dist-lib/public-brand.cjs +1 -1
  62. package/dist-lib/public-origins-lib-esm.json +24 -24
  63. package/dist-lib/public-origins-lib.json +53 -53
  64. package/dist-lib/react-native-host-modules.cjs +1 -1
  65. package/dist-lib/react-native-host-modules.mjs +1 -1
  66. package/dist-lib/reap-browser.cjs +1 -1
  67. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  68. package/dist-lib/sdk.cjs +1 -1
  69. package/dist-lib/sdk.mjs +1 -1
  70. package/dist-lib/skills.cjs +90 -20
  71. package/dist-lib/swift-compile.cjs +14 -7
  72. package/dist-lib/swift-compile.mjs +14 -7
  73. package/dist-lib/swift-package.cjs +1 -1
  74. package/dist-lib/swift-package.mjs +1 -1
  75. package/dist-lib/swift-submit.cjs +1 -1
  76. package/dist-lib/swift-submit.mjs +1 -1
  77. package/dist-lib/swift-toolchain.cjs +1 -1
  78. package/dist-lib/swift.cjs +1 -1
  79. package/dist-lib/vite-swift.cjs +87 -17
  80. package/dist-lib/vite.cjs +3 -3
  81. package/dist-lib/worklet-executable.cjs +1 -1
  82. package/dist-lib/worklet-executable.mjs +1 -1
  83. package/kotlin/sdk.tar.gz +0 -0
  84. package/package.json +1 -1
  85. package/src/swift-guest-runtime-plan.ts +13 -5
  86. package/src/swift-host.ts +84 -2
  87. package/src/swift-packages.ts +19 -10
  88. package/src/swift-standins.ts +1 -1
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2220 | (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;
@@ -50495,6 +50495,9 @@ var init_swift_runtime_products = __esm({
50495
50495
  });
50496
50496
 
50497
50497
  // src/swift-guest-runtime-plan.ts
50498
+ function canonicalArchivePath(file) {
50499
+ return import_node_path39.default.join((0, import_node_fs42.realpathSync)(import_node_path39.default.dirname(file)), import_node_path39.default.basename(file));
50500
+ }
50498
50501
  function sdkArtifactBytes(root, artifact) {
50499
50502
  const file = import_node_path39.default.resolve(root, artifact.path);
50500
50503
  const linked = (0, import_node_fs42.readFileSync)(file);
@@ -50600,7 +50603,7 @@ function guestRuntimeInputIdentities(options) {
50600
50603
  ];
50601
50604
  add2(file, JSON.stringify(identity2));
50602
50605
  if (artifact.kind !== "archive") continue;
50603
- for (const origin of origins.get(file) ?? [])
50606
+ for (const origin of origins.get(canonicalArchivePath(file)) ?? [])
50604
50607
  add2(
50605
50608
  import_node_path39.default.resolve(origin.original),
50606
50609
  JSON.stringify([...identity2, origin.member, origin.ordinal])
@@ -50673,7 +50676,8 @@ function guestRuntimeProductsForInputs(options) {
50673
50676
  for (const { product, root } of options.products) {
50674
50677
  byId.set(product.id, product);
50675
50678
  for (const artifact of product.artifacts) {
50676
- const file = import_node_path39.default.resolve(root, artifact.path);
50679
+ const absolute = import_node_path39.default.resolve(root, artifact.path);
50680
+ const file = artifact.kind === "archive" ? canonicalArchivePath(absolute) : absolute;
50677
50681
  const owners = byFile.get(file) ?? [];
50678
50682
  owners.push({ id: product.id, artifact });
50679
50683
  byFile.set(file, owners);
@@ -50705,7 +50709,9 @@ function guestRuntimeProductsForInputs(options) {
50705
50709
  const file = original.get(import_node_path39.default.resolve(selection.artifact)) ?? import_node_path39.default.resolve(selection.artifact);
50706
50710
  const origin = origins.get(file);
50707
50711
  const archive = origin ? import_node_path39.default.resolve(origin.archive) : file;
50708
- const records = byFile.get(archive);
50712
+ const records = byFile.get(
50713
+ origin || selection.member !== null ? canonicalArchivePath(archive) : archive
50714
+ );
50709
50715
  if (frameworkObjects.has(file)) {
50710
50716
  if (frameworkId === null || !byId.has(frameworkId))
50711
50717
  throw new Error(`framework runtime product has no producer record ${file}`);
@@ -50817,8 +50823,9 @@ function guestSdkProductLinkArtifacts(products, sdk, inputs, linkedArchives, rew
50817
50823
  for (const { product, root } of products) {
50818
50824
  for (const artifact of product.artifacts) {
50819
50825
  const file = import_node_path39.default.resolve(root, artifact.path);
50820
- const objects = artifact.kind === "archive" ? origins.filter(
50821
- (origin) => import_node_path39.default.resolve(origin.archive) === file && (!selectedObjects || selectedObjects.has(
50826
+ const archive = artifact.kind === "archive" ? canonicalArchivePath(file) : null;
50827
+ const objects = archive !== null ? origins.filter(
50828
+ (origin) => import_node_path39.default.resolve(origin.archive) === archive && (!selectedObjects || selectedObjects.has(
50822
50829
  import_node_path39.default.resolve(rewritten.get(origin.original) ?? origin.original)
50823
50830
  ))
50824
50831
  ) : [];
@@ -58517,7 +58524,7 @@ int EXUpdatesApplyBSDiffPatch(const char * _Nonnull oldFilePath,
58517
58524
  REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
58518
58525
  MULTI_MANIFEST_VERSION = 68;
58519
58526
  SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
58520
- compilerSourceDigest = true ? "94960e7e108c556e2184ef22baae1e061ca63c08c954c6ad0f677b524be5e117" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
58527
+ compilerSourceDigest = true ? "0a0bc1c871aee83ea273120655f55a43ddccde646478a452b4c73d2daefd58c3" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
58521
58528
  nativeCxxCompilerFlags = ["-fno-cxx-modules"];
58522
58529
  cFlagArray = (flags) => JSON.stringify(withoutGlogModuleMap(flags));
58523
58530
  cxxFlagArray = (flags) => JSON.stringify([...nativeCxxCompilerFlags, ...withoutGlogModuleMap(flags)]);
@@ -64984,7 +64991,7 @@ var init_swift_standin_digest = __esm({
64984
64991
  STANDIN_DIGEST_ENTRYPOINTS = ["swift-standins.ts", "swift-objc-compile.ts"];
64985
64992
  SPECIFIER = /from\s*['"]([^'"]+)['"]|import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
64986
64993
  standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
64987
- STANDIN_SOURCE_DIGEST = true ? "71bed308fc270bafd989236668c1e63cc7dd11ab7b6815686dd07fd9b846e738" : standinSourceDigest();
64994
+ STANDIN_SOURCE_DIGEST = true ? "c0f609da62368c513c186d23bc8aa8e450d27efae5b8c2e7cdf50d34fa734ff0" : standinSourceDigest();
64988
64995
  }
64989
64996
  });
64990
64997
 
@@ -65445,7 +65452,7 @@ var init_package_tree_digest = __esm({
65445
65452
 
65446
65453
  // src/expo-native-prebuilt.ts
65447
65454
  function expoNativeCompilerDigestValue() {
65448
- return true ? "f954fe4bf615d9d3eb0ee8bac458984949b8df39ee8fd6fc8dcfcd9f0cb4a7f1" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
65455
+ return true ? "8e765b5dfd0ec93d9027f9d10365ed11f7d85a195d0a888dd1fb76b99195ff2e" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
65449
65456
  }
65450
65457
  function readSources(value) {
65451
65458
  const sources = isRecord(value) ? value.sources : null;
@@ -66191,17 +66198,17 @@ function remoteSwiftCheckouts(root) {
66191
66198
  import_node_fs73.default.mkdirSync(cacheDir(), { recursive: true });
66192
66199
  return import_node_path71.default.join(import_node_fs73.default.realpathSync(cacheDir()), "swift-packages", key2, "checkouts");
66193
66200
  }
66194
- function unlowerableSources(files2, target) {
66201
+ function unlowerableSources(files2, target, portable) {
66195
66202
  if (target.declaresWasiNativeSettings) return [];
66196
66203
  return [
66197
- ...files2.filter((file) => UNSUPPORTED_NATIVE.test(file)),
66204
+ ...portable.has(target.name) ? [] : files2.filter((file) => UNSUPPORTED_NATIVE.test(file)),
66198
66205
  ...files2.filter(isSwiftNativeTranslationUnit).filter((file) => swiftCTakesReturnAddress(import_node_fs73.default.readFileSync(file, "utf8")))
66199
66206
  ];
66200
66207
  }
66201
- function unloweredSources(files2, target) {
66208
+ function unloweredSources(files2, target, portable) {
66202
66209
  if (target.type !== "regular") return null;
66203
66210
  if (!files2.some(isSwiftNativeTranslationUnit)) return null;
66204
- const unlowered = unlowerableSources(files2, target);
66211
+ const unlowered = unlowerableSources(files2, target, portable);
66205
66212
  if (unlowered.length === 0) return null;
66206
66213
  const headers = import_node_path71.default.resolve(target.dir, target.publicHeadersPath);
66207
66214
  if (!files2.some((file) => file.startsWith(`${headers}${import_node_path71.default.sep}`) && file.endsWith(".h")))
@@ -66405,6 +66412,7 @@ async function resolveSwiftPackagesAsync(options) {
66405
66412
  function resolveSwiftPackages(options) {
66406
66413
  const { rootDir, resolved, products, localDirs } = options;
66407
66414
  const providedTargets = new Set(options.provided ?? []);
66415
+ const portableAssembly = options.portableAssembly ?? /* @__PURE__ */ new Set();
66408
66416
  const providedProducts = new Set(options.provided ?? []);
66409
66417
  const result = {
66410
66418
  sourceLinks: { targets: [], owners: [] },
@@ -66502,7 +66510,7 @@ function resolveSwiftPackages(options) {
66502
66510
  if (target.type === "macro") return preservePackage(pkg, [name3], "host");
66503
66511
  const files2 = target.type === "regular" || target.type === "system" ? swiftTargetFiles(pkg.manifest, target) : [];
66504
66512
  const gap = options.binaryGaps?.get(name3);
66505
- const unlowerable = unlowerableSources(files2, target);
66513
+ const unlowerable = unlowerableSources(files2, target, portableAssembly);
66506
66514
  const placeholder = placeholderPackage(pkg);
66507
66515
  const ownReason = target.type === "binary" ? `${name3} ${BINARY}${gap ? `; ${gap}` : ""}` : placeholder && gap ? `${name3} stands in as a placeholder (${placeholder}), and ${gap}` : target.type !== "regular" && target.type !== "system" ? `${name3} is a ${target.type} target` : unlowerable.length > 0 ? `${name3} has native sources with no wasm32 lowering: ${unlowerable.map((file) => import_node_path71.default.relative(pkg.manifest.dir, file)).join(", ")}${gap ? `; ${gap}` : ""}` : null;
66508
66516
  const reasons = target.dependencies.map((dependency) => {
@@ -66583,7 +66591,7 @@ function resolveSwiftPackages(options) {
66583
66591
  (file) => file.endsWith(".swift") && import_node_fs73.default.readFileSync(file, "utf8").trim() === ""
66584
66592
  ))
66585
66593
  return false;
66586
- if (unloweredSources(files2, target)) return false;
66594
+ if (unloweredSources(files2, target, portableAssembly)) return false;
66587
66595
  claimed.add(key2);
66588
66596
  providedTargets.delete(name3);
66589
66597
  for (const dependency of target.dependencies) {
@@ -66631,7 +66639,7 @@ function resolveSwiftPackages(options) {
66631
66639
  if (target.type === "executable") continue;
66632
66640
  const files2 = target.type === "regular" || target.type === "system" ? swiftTargetFiles(pkg.manifest, target) : [];
66633
66641
  const objc = target.type === "regular" && files2.some((file) => /\.(m|mm)$/.test(file));
66634
- const unlowered = unloweredSources(files2, target);
66642
+ const unlowered = unloweredSources(files2, target, portableAssembly);
66635
66643
  const gap = placeholderPackage(pkg);
66636
66644
  const sources = files2.filter((file) => file.endsWith(".swift"));
66637
66645
  const release = (setting) => setting.configuration !== "debug";
@@ -68866,7 +68874,7 @@ function graphStandin(module2, graphs, values, wasm, binary2, toolchain, work, r
68866
68874
  }
68867
68875
  if (omit.size + plain.size + unobjc.size + trapped.size + unconformed.size + forced.size + nonfailable.size === before)
68868
68876
  throw new Error(
68869
- `its generated source does not typecheck: ${elsewhere.slice(0, 3).join("; ") || check2.stderr.trim().slice(0, 400)}`
68877
+ `its generated source does not typecheck: ${(elsewhere.length > 0 ? elsewhere : [...check2.stderr.matchAll(/^\S+?:\d+:\d+: error: .*$/gm)].map((line) => line[0].replace(/^[^:]*\//, ""))).slice(0, 3).join("; ") || check2.stderr.trim().slice(0, 400)}`
68870
68878
  );
68871
68879
  }
68872
68880
  }
@@ -74902,6 +74910,59 @@ function configureSwiftStandinBehavior(packagePath, config) {
74902
74910
  }
74903
74911
  entry.behavior = behavior;
74904
74912
  }
74913
+ async function wasmPortableAssembly(binaries, toolchainBin, moduleRoot) {
74914
+ const assembly = binaries.filter(
74915
+ (binary2) => binary2.unloweredSources?.length && binary2.unloweredSources.every((file) => /\.(s|S)$/.test(file)) && binary2.publicHeaders !== void 0
74916
+ );
74917
+ if (assembly.length === 0) return /* @__PURE__ */ new Set();
74918
+ const sdk = swiftSdkPaths(moduleRoot, toolchainBin);
74919
+ const clang = import_node_path83.default.join(toolchainBin, "clang");
74920
+ const empty = (binary2, file) => {
74921
+ const source = import_node_path83.default.join(binary2.dir, file);
74922
+ const key2 = (0, import_node_crypto45.createHash)("sha256").update(
74923
+ JSON.stringify([
74924
+ clang,
74925
+ sdk.sysroot,
74926
+ sdk.cFlags,
74927
+ binary2.dir,
74928
+ binary2.publicHeaders
74929
+ ])
74930
+ ).update(import_node_fs86.default.readFileSync(source)).digest("hex");
74931
+ const known = emptyWasmAssembly.get(key2);
74932
+ if (known) return known;
74933
+ const result = new Promise(
74934
+ (resolve13) => (0, import_node_child_process46.execFile)(
74935
+ clang,
74936
+ [
74937
+ "-target",
74938
+ "wasm32-unknown-wasip1",
74939
+ "--sysroot",
74940
+ sdk.sysroot,
74941
+ ...sdk.cFlags,
74942
+ "-I",
74943
+ import_node_path83.default.join(binary2.dir, binary2.publicHeaders),
74944
+ "-I",
74945
+ import_node_path83.default.dirname(source),
74946
+ "-E",
74947
+ "-P",
74948
+ "-x",
74949
+ "assembler-with-cpp",
74950
+ source
74951
+ ],
74952
+ { maxBuffer: 64 * 1024 * 1024 },
74953
+ (error, stdout) => resolve13(!error && stdout.trim() === "")
74954
+ )
74955
+ );
74956
+ emptyWasmAssembly.set(key2, result);
74957
+ return result;
74958
+ };
74959
+ const portable = await Promise.all(
74960
+ assembly.map(
74961
+ async (binary2) => (await Promise.all(binary2.unloweredSources.map((file) => empty(binary2, file)))).every(Boolean) ? [binary2.target] : []
74962
+ )
74963
+ );
74964
+ return new Set(portable.flat());
74965
+ }
74905
74966
  async function swiftPackages(entry, app) {
74906
74967
  const stamp = (file) => import_node_fs86.default.existsSync(file) ? (0, import_node_crypto45.createHash)("sha256").update(import_node_fs86.default.readFileSync(file)).digest("hex") : null;
74907
74968
  const owners = [...app.frameworks, app].map((target) => ({
@@ -74966,7 +75027,14 @@ async function swiftPackages(entry, app) {
74966
75027
  entry.moduleRoot,
74967
75028
  import_node_path83.default.join(resolved.toolchainBin, "clang++")
74968
75029
  );
74969
- const cxxArtifacts = reached.filter(standinArtifact);
75030
+ const portableAssembly = await wasmPortableAssembly(
75031
+ reached,
75032
+ resolved.toolchainBin,
75033
+ entry.moduleRoot
75034
+ );
75035
+ const cxxArtifacts = reached.filter(
75036
+ (binary2) => standinArtifact(binary2) && !portableAssembly.has(binary2.target)
75037
+ );
74970
75038
  const generation = standinGenerationInputs(cxxArtifacts, toolchain, entry.behavior);
74971
75039
  if (cached4.standinKey !== generation) {
74972
75040
  const replaced = new Set(
@@ -74993,6 +75061,7 @@ async function swiftPackages(entry, app) {
74993
75061
  [...replaced].filter((target) => !built2.gaps.has(target))
74994
75062
  ),
74995
75063
  binaryGaps: built2.gaps,
75064
+ portableAssembly,
74996
75065
  owners
74997
75066
  });
74998
75067
  for (const target of new Set(built2.standins.map((standin) => standin.target)))
@@ -76981,7 +77050,7 @@ function disposeSwiftProject(packagePath, signal) {
76981
77050
  xcodeProjects().delete(packagePath);
76982
77051
  sourceEntries().delete(packagePath);
76983
77052
  }
76984
- var import_node_async_hooks, import_node_child_process46, import_node_crypto45, import_node_fs86, import_node_os18, import_node_path83, ARTIFACT_PATH, RESOURCE_PATH, ICU_PATH, SKIP_ROOT_DIRS, NATIVE_DESCRIPTOR, NATIVE_GLUE, SwiftMissingModulesError, sharedProjects, projectScope, projects, sharedSourceEntries, sourceEntries, sharedXcodeProjects, xcodeProjects, preparedScriptInputs, XCODE_APP_DIR, XCODE_FRAMEWORKS_DIR, XCODE_PACKAGES_DIR, layoutScope, HOSTED_LIMITS, LOCAL_LIMITS, inputLimits, RESOURCE_CONTENT_TYPES, API_GAP_PATTERNS, IOS_SDK_FRAMEWORKS;
77053
+ var import_node_async_hooks, import_node_child_process46, import_node_crypto45, import_node_fs86, import_node_os18, import_node_path83, ARTIFACT_PATH, RESOURCE_PATH, ICU_PATH, SKIP_ROOT_DIRS, NATIVE_DESCRIPTOR, NATIVE_GLUE, SwiftMissingModulesError, sharedProjects, projectScope, projects, sharedSourceEntries, sourceEntries, sharedXcodeProjects, xcodeProjects, preparedScriptInputs, emptyWasmAssembly, XCODE_APP_DIR, XCODE_FRAMEWORKS_DIR, XCODE_PACKAGES_DIR, layoutScope, HOSTED_LIMITS, LOCAL_LIMITS, inputLimits, RESOURCE_CONTENT_TYPES, API_GAP_PATTERNS, IOS_SDK_FRAMEWORKS;
76985
77054
  var init_swift_host = __esm({
76986
77055
  "src/swift-host.ts"() {
76987
77056
  "use strict";
@@ -77035,6 +77104,7 @@ var init_swift_host = __esm({
77035
77104
  sharedXcodeProjects = /* @__PURE__ */ new Map();
77036
77105
  xcodeProjects = () => projectScope.getStore()?.xcodeProjects ?? sharedXcodeProjects;
77037
77106
  preparedScriptInputs = /* @__PURE__ */ new Set();
77107
+ emptyWasmAssembly = /* @__PURE__ */ new Map();
77038
77108
  XCODE_APP_DIR = "__app__";
77039
77109
  XCODE_FRAMEWORKS_DIR = "__frameworks__";
77040
77110
  XCODE_PACKAGES_DIR = SWIFT_REMOTE_PACKAGES_DIR;
@@ -86327,7 +86397,7 @@ var init_nitro_superset = __esm({
86327
86397
  init_nitroContract();
86328
86398
  init_swift_standin_digest();
86329
86399
  NITRO_SUPERSET_ENTRY_NAME = "superset";
86330
- NITRO_COMPILER_DIGEST = true ? "3fcb740b63ae9c9d23fbeade5a1c885e78eeb419a14cc70b6c3590bfcef9ed44" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
86400
+ NITRO_COMPILER_DIGEST = true ? "a16afc2e6e3c68812b9d48ad1c7be8c9d89cfebcf46e269779f2890053244d70" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
86331
86401
  nitroSupersetLock = parseLock(nitro_superset_lock_default);
86332
86402
  nitroSupersetKey = (inputs) => nativeEntryKey({ ...inputs, compiler: NITRO_COMPILER_DIGEST });
86333
86403
  published2 = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2220 | (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;
@@ -8194,6 +8194,9 @@ var packageSchema = v3.object({
8194
8194
 
8195
8195
  // src/swift-guest-runtime-plan.ts
8196
8196
  var SDK_CATALOG_DIRECTORY = "swift.xctoolchain/usr/lib/swift_static/wasi";
8197
+ function canonicalArchivePath(file) {
8198
+ return import_node_path13.default.join((0, import_node_fs12.realpathSync)(import_node_path13.default.dirname(file)), import_node_path13.default.basename(file));
8199
+ }
8197
8200
  function sdkArtifactBytes(root, artifact) {
8198
8201
  const file = import_node_path13.default.resolve(root, artifact.path);
8199
8202
  const linked = (0, import_node_fs12.readFileSync)(file);
@@ -8299,7 +8302,7 @@ function guestRuntimeInputIdentities(options) {
8299
8302
  ];
8300
8303
  add(file, JSON.stringify(identity));
8301
8304
  if (artifact.kind !== "archive") continue;
8302
- for (const origin of origins.get(file) ?? [])
8305
+ for (const origin of origins.get(canonicalArchivePath(file)) ?? [])
8303
8306
  add(
8304
8307
  import_node_path13.default.resolve(origin.original),
8305
8308
  JSON.stringify([...identity, origin.member, origin.ordinal])
@@ -8372,7 +8375,8 @@ function guestRuntimeProductsForInputs(options) {
8372
8375
  for (const { product, root } of options.products) {
8373
8376
  byId.set(product.id, product);
8374
8377
  for (const artifact of product.artifacts) {
8375
- const file = import_node_path13.default.resolve(root, artifact.path);
8378
+ const absolute = import_node_path13.default.resolve(root, artifact.path);
8379
+ const file = artifact.kind === "archive" ? canonicalArchivePath(absolute) : absolute;
8376
8380
  const owners = byFile.get(file) ?? [];
8377
8381
  owners.push({ id: product.id, artifact });
8378
8382
  byFile.set(file, owners);
@@ -8404,7 +8408,9 @@ function guestRuntimeProductsForInputs(options) {
8404
8408
  const file = original.get(import_node_path13.default.resolve(selection.artifact)) ?? import_node_path13.default.resolve(selection.artifact);
8405
8409
  const origin = origins.get(file);
8406
8410
  const archive = origin ? import_node_path13.default.resolve(origin.archive) : file;
8407
- const records = byFile.get(archive);
8411
+ const records = byFile.get(
8412
+ origin || selection.member !== null ? canonicalArchivePath(archive) : archive
8413
+ );
8408
8414
  if (frameworkObjects.has(file)) {
8409
8415
  if (frameworkId === null || !byId.has(frameworkId))
8410
8416
  throw new Error(`framework runtime product has no producer record ${file}`);
@@ -8516,8 +8522,9 @@ function guestSdkProductLinkArtifacts(products, sdk, inputs, linkedArchives, rew
8516
8522
  for (const { product, root } of products) {
8517
8523
  for (const artifact of product.artifacts) {
8518
8524
  const file = import_node_path13.default.resolve(root, artifact.path);
8519
- const objects = artifact.kind === "archive" ? origins.filter(
8520
- (origin) => import_node_path13.default.resolve(origin.archive) === file && (!selectedObjects || selectedObjects.has(
8525
+ const archive = artifact.kind === "archive" ? canonicalArchivePath(file) : null;
8526
+ const objects = archive !== null ? origins.filter(
8527
+ (origin) => import_node_path13.default.resolve(origin.archive) === archive && (!selectedObjects || selectedObjects.has(
8521
8528
  import_node_path13.default.resolve(rewritten.get(origin.original) ?? origin.original)
8522
8529
  ))
8523
8530
  ) : [];
@@ -12598,7 +12605,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
12598
12605
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
12599
12606
  var MULTI_MANIFEST_VERSION = 68;
12600
12607
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
12601
- var compilerSourceDigest = true ? "94960e7e108c556e2184ef22baae1e061ca63c08c954c6ad0f677b524be5e117" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
12608
+ var compilerSourceDigest = true ? "0a0bc1c871aee83ea273120655f55a43ddccde646478a452b4c73d2daefd58c3" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
12602
12609
  function swiftArtifactHash(input, release, moduleRoot) {
12603
12610
  const hash = (0, import_node_crypto13.createHash)("sha256");
12604
12611
  hash.update(`swift-compile
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2220 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/swift-compile.ts
4
4
  import {
@@ -8141,6 +8141,9 @@ var packageSchema = v3.object({
8141
8141
 
8142
8142
  // src/swift-guest-runtime-plan.ts
8143
8143
  var SDK_CATALOG_DIRECTORY = "swift.xctoolchain/usr/lib/swift_static/wasi";
8144
+ function canonicalArchivePath(file) {
8145
+ return path13.join(realpathSync(path13.dirname(file)), path13.basename(file));
8146
+ }
8144
8147
  function sdkArtifactBytes(root, artifact) {
8145
8148
  const file = path13.resolve(root, artifact.path);
8146
8149
  const linked = readFileSync9(file);
@@ -8246,7 +8249,7 @@ function guestRuntimeInputIdentities(options) {
8246
8249
  ];
8247
8250
  add(file, JSON.stringify(identity));
8248
8251
  if (artifact.kind !== "archive") continue;
8249
- for (const origin of origins.get(file) ?? [])
8252
+ for (const origin of origins.get(canonicalArchivePath(file)) ?? [])
8250
8253
  add(
8251
8254
  path13.resolve(origin.original),
8252
8255
  JSON.stringify([...identity, origin.member, origin.ordinal])
@@ -8319,7 +8322,8 @@ function guestRuntimeProductsForInputs(options) {
8319
8322
  for (const { product, root } of options.products) {
8320
8323
  byId.set(product.id, product);
8321
8324
  for (const artifact of product.artifacts) {
8322
- const file = path13.resolve(root, artifact.path);
8325
+ const absolute = path13.resolve(root, artifact.path);
8326
+ const file = artifact.kind === "archive" ? canonicalArchivePath(absolute) : absolute;
8323
8327
  const owners = byFile.get(file) ?? [];
8324
8328
  owners.push({ id: product.id, artifact });
8325
8329
  byFile.set(file, owners);
@@ -8351,7 +8355,9 @@ function guestRuntimeProductsForInputs(options) {
8351
8355
  const file = original.get(path13.resolve(selection.artifact)) ?? path13.resolve(selection.artifact);
8352
8356
  const origin = origins.get(file);
8353
8357
  const archive = origin ? path13.resolve(origin.archive) : file;
8354
- const records = byFile.get(archive);
8358
+ const records = byFile.get(
8359
+ origin || selection.member !== null ? canonicalArchivePath(archive) : archive
8360
+ );
8355
8361
  if (frameworkObjects.has(file)) {
8356
8362
  if (frameworkId === null || !byId.has(frameworkId))
8357
8363
  throw new Error(`framework runtime product has no producer record ${file}`);
@@ -8463,8 +8469,9 @@ function guestSdkProductLinkArtifacts(products, sdk, inputs, linkedArchives, rew
8463
8469
  for (const { product, root } of products) {
8464
8470
  for (const artifact of product.artifacts) {
8465
8471
  const file = path13.resolve(root, artifact.path);
8466
- const objects = artifact.kind === "archive" ? origins.filter(
8467
- (origin) => path13.resolve(origin.archive) === file && (!selectedObjects || selectedObjects.has(
8472
+ const archive = artifact.kind === "archive" ? canonicalArchivePath(file) : null;
8473
+ const objects = archive !== null ? origins.filter(
8474
+ (origin) => path13.resolve(origin.archive) === archive && (!selectedObjects || selectedObjects.has(
8468
8475
  path13.resolve(rewritten.get(origin.original) ?? origin.original)
8469
8476
  ))
8470
8477
  ) : [];
@@ -12577,7 +12584,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
12577
12584
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
12578
12585
  var MULTI_MANIFEST_VERSION = 68;
12579
12586
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
12580
- var compilerSourceDigest = true ? "94960e7e108c556e2184ef22baae1e061ca63c08c954c6ad0f677b524be5e117" : swiftCompilerSourceDigest(import.meta.dirname);
12587
+ var compilerSourceDigest = true ? "0a0bc1c871aee83ea273120655f55a43ddccde646478a452b4c73d2daefd58c3" : swiftCompilerSourceDigest(import.meta.dirname);
12581
12588
  function swiftArtifactHash(input, release, moduleRoot) {
12582
12589
  const hash = createHash13("sha256");
12583
12590
  hash.update(`swift-compile
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2220 | (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.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2220 | (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.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2220 | (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.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2220 | (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.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2220 | (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.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2220 | (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;