peachsim 0.1.2208 → 0.1.2209

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 (121) 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 +448 -22
  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 +2 -2
  25. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  26. package/dist-lib/expo-swift-bundle.cjs +436 -16
  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 +448 -22
  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 +4 -4
  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 +7 -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 +4 -4
  47. package/dist-lib/native-app-identity-project.cjs +2 -2
  48. package/dist-lib/native-app-identity-project.mjs +2 -2
  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 +59 -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 +5482 -381
  68. package/dist-lib/swift-compile.cjs +98 -6
  69. package/dist-lib/swift-compile.mjs +98 -6
  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 +1 -1
  75. package/dist-lib/swift.cjs +1 -1
  76. package/dist-lib/vite-swift.cjs +351 -13
  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/animated.d.ts +2 -1
  81. package/dist-types/packages/peach-engine/src/engine/animation-graph.d.ts +1 -0
  82. package/dist-types/packages/peach-engine/src/engine/liquid-glass.d.ts +6 -0
  83. package/dist-types/packages/peach-engine/src/engine/node.d.ts +1 -0
  84. package/dist-types/packages/peach-engine/src/engine/types.d.ts +1 -0
  85. package/dist-types/packages/peach-engine/src/render-worker/canvaskit-webgpu.d.ts +8 -0
  86. package/dist-types/packages/peach-engine/src/render-worker/compositor-gpu.d.ts +3 -0
  87. package/dist-types/packages/peach-engine/src/render-worker/compositor-protocol.d.ts +14 -0
  88. package/dist-types/packages/peach-engine/src/render-worker/compositor-runtime/render-tree.d.ts +18 -0
  89. package/kotlin/sdk.tar.gz +0 -0
  90. package/package.json +1 -1
  91. package/runtime-companion.json +1 -1
  92. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSCompoundPredicate.h +1 -1
  93. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSExpression.h +1 -1
  94. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h +1 -1
  95. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSMeasurementFormatter.h +1 -1
  96. package/sdk/ios/System/Library/Frameworks/Intents.framework/Headers/INObjectCollection.h +27 -0
  97. package/sdk/ios/System/Library/Frameworks/Intents.framework/Headers/INObjectSection.h +24 -0
  98. package/sdk/ios/System/Library/Frameworks/Intents.framework/Headers/Intents.h +9 -0
  99. package/sdk/ios/System/Library/Frameworks/Intents.framework/Modules/module.modulemap +5 -0
  100. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UIFeedbackGenerator.h +1 -1
  101. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UIImpactFeedbackGenerator.h +1 -1
  102. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UINibLoading.h +1 -1
  103. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UINotificationFeedbackGenerator.h +1 -1
  104. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UISelectionFeedbackGenerator.h +1 -1
  105. package/sdk/ios/usr/include/ObjectiveC.apinotes +7 -0
  106. package/src/android-theme.ts +136 -2
  107. package/src/expo-swift-host.ts +90 -1
  108. package/src/generated/android-framework-text.json +4566 -0
  109. package/src/generated/android-framework-themes.json +11 -0
  110. package/src/kotlin-app.ts +24 -4
  111. package/src/kotlin-host.ts +9 -0
  112. package/src/nitro-adapter.lock.json +246 -246
  113. package/src/nitro-superset.lock.json +4 -4
  114. package/src/swift-compile.ts +120 -2
  115. package/src/swift-distribution.lock.json +8 -8
  116. package/src/swift-objc-standin.ts +9 -2
  117. package/src/swift-shared-sdk.ts +2 -1
  118. package/src/swift-standin-builtin-behavior.ts +248 -0
  119. package/src/swift-standin-emit.ts +2 -0
  120. package/src/swift-standins.ts +17 -5
  121. package/src/turbo-runtime.lock.json +17 -17
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2208 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2209 | (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;
@@ -4147,7 +4147,7 @@ function swiftSharedSdkViewOptions(moduleRoot, distribution, toolchainBin, sdk)
4147
4147
  const overlay = import_node_path8.default.join(swiftSharedSdkRoot(moduleRoot, distribution), "wasm/include");
4148
4148
  const overlayFiles = (0, import_node_fs7.readdirSync)(overlay, { recursive: true, withFileTypes: true }).filter((entry) => entry.isFile()).map((entry) => import_node_path8.default.join(entry.parentPath, entry.name)).sort();
4149
4149
  const key = JSON.stringify([
4150
- "v22",
4150
+ "v23",
4151
4151
  toolchainBin,
4152
4152
  sdk,
4153
4153
  frameworks,
@@ -4204,6 +4204,7 @@ function swiftSharedSdkViewOptions(moduleRoot, distribution, toolchainBin, sdk)
4204
4204
  ...[
4205
4205
  "MacTypes.h",
4206
4206
  "objc/NSObject.h",
4207
+ "ObjectiveC.apinotes",
4207
4208
  "net/if.h",
4208
4209
  "notify.h",
4209
4210
  "notify.modulemap",
@@ -12406,6 +12407,88 @@ function swiftSystemLibraryExclusions(files, targets, distributionModules) {
12406
12407
  )
12407
12408
  );
12408
12409
  }
12410
+ var DISTRIBUTION_CLANG_MODULES = [
12411
+ {
12412
+ name: "EXStructuredHeaders",
12413
+ header: "EXStructuredHeaders/EXStructuredHeadersParser.h",
12414
+ source: `// Copyright \xA9 2021 650 Industries. All rights reserved.
12415
+
12416
+ #import <Foundation/Foundation.h>
12417
+
12418
+ NS_ASSUME_NONNULL_BEGIN
12419
+
12420
+ typedef NS_ENUM(NSInteger, EXStructuredHeadersParserFieldType) {
12421
+ EXStructuredHeadersParserFieldTypeDictionary,
12422
+ EXStructuredHeadersParserFieldTypeList,
12423
+ EXStructuredHeadersParserFieldTypeItem
12424
+ };
12425
+
12426
+ @interface EXStructuredHeadersParser : NSObject
12427
+
12428
+ - (instancetype)initWithRawInput:(NSString *)raw
12429
+ fieldType:(EXStructuredHeadersParserFieldType)fieldType;
12430
+
12431
+ - (instancetype)initWithRawInput:(NSString *)raw
12432
+ fieldType:(EXStructuredHeadersParserFieldType)fieldType
12433
+ ignoringParameters:(BOOL)shouldIgnoreParameters;
12434
+
12435
+ - (nullable id)parseStructuredFieldsWithError:(NSError ** _Nullable)error;
12436
+
12437
+ @end
12438
+
12439
+ NS_ASSUME_NONNULL_END
12440
+ `
12441
+ },
12442
+ {
12443
+ name: "EXUpdatesBSPatch",
12444
+ header: "EXUpdatesBSPatch.h",
12445
+ source: `// Copyright 2015-present 650 Industries. All rights reserved.
12446
+
12447
+ #pragma once
12448
+
12449
+ #import <Foundation/Foundation.h>
12450
+
12451
+ int EXUpdatesApplyBSDiffPatch(const char * _Nonnull oldFilePath,
12452
+ const char * _Nonnull newFilePath,
12453
+ const char * _Nonnull patchFilePath);
12454
+ `
12455
+ }
12456
+ ];
12457
+ function distributionClangModulePresent(modules, name2) {
12458
+ return (0, import_node_fs25.existsSync)(import_node_path27.default.join(modules, `${name2}.swiftmodule`)) || (0, import_node_fs25.existsSync)(import_node_path27.default.join(modules, name2, "module.modulemap"));
12459
+ }
12460
+ function distributionClangModuleMap(root, modules) {
12461
+ const missing = DISTRIBUTION_CLANG_MODULES.filter(
12462
+ (mod) => !distributionClangModulePresent(modules, mod.name)
12463
+ );
12464
+ if (missing.length === 0) return null;
12465
+ const key = (0, import_node_crypto13.createHash)("sha256").update(modules).update(missing.map((mod) => `${mod.name}\0${mod.source}`).join("\0")).digest("hex").slice(0, 16);
12466
+ const directory = import_node_path27.default.join(root, `.peach-clang-modules-${key}`);
12467
+ const mapPath = import_node_path27.default.join(directory, "module.modulemap");
12468
+ if (!(0, import_node_fs25.existsSync)(mapPath)) {
12469
+ (0, import_node_fs25.mkdirSync)(directory, { recursive: true });
12470
+ const parts = [];
12471
+ for (const mod of missing) {
12472
+ const destination = import_node_path27.default.join(directory, mod.header);
12473
+ (0, import_node_fs25.mkdirSync)(import_node_path27.default.dirname(destination), { recursive: true });
12474
+ (0, import_node_fs25.writeFileSync)(destination, mod.source);
12475
+ parts.push(
12476
+ `module ${mod.name} {
12477
+ requires objc
12478
+ header "${mod.header}"
12479
+ export *
12480
+ }
12481
+ `
12482
+ );
12483
+ }
12484
+ (0, import_node_fs25.writeFileSync)(mapPath, parts.join("\n"));
12485
+ }
12486
+ return mapPath;
12487
+ }
12488
+ function distributionClangModuleOptions(root, modules) {
12489
+ const map = distributionClangModuleMap(root, modules);
12490
+ return map === null ? [] : ["-Xcc", `-fmodule-map-file=${map}`];
12491
+ }
12409
12492
  function providedModulesPath(root, modules, excluded) {
12410
12493
  if (!excluded || excluded.size === 0) return modules;
12411
12494
  const entries = (0, import_node_fs25.readdirSync)(modules).filter((entry) => !excluded.has(entry.replace(/\..*$/, ""))).sort();
@@ -12499,7 +12582,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
12499
12582
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
12500
12583
  var MULTI_MANIFEST_VERSION = 68;
12501
12584
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
12502
- var compilerSourceDigest = true ? "be03c2edac4dfeffbfd874f5ea7a11c25067194164940d7e7c5fa34ead584e7a" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
12585
+ var compilerSourceDigest = true ? "f113c3b74986e3d582dde643cb5771f750e5c836703fb20a79a1d67a53884748" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
12503
12586
  function swiftArtifactHash(input, release, moduleRoot) {
12504
12587
  const hash = (0, import_node_crypto13.createHash)("sha256");
12505
12588
  hash.update(`swift-compile
@@ -12773,7 +12856,7 @@ function emitSwiftPackageManifest(args) {
12773
12856
  import_node_path27.default.join(moduleRoot, "modules"),
12774
12857
  args.moduleExcludes
12775
12858
  )
12776
- )}` : prebuilt ? `, "-Isystem", ${JSON.stringify(providedModulesPath(args.root, prebuilt.modules, args.moduleExcludes))}${prebuilt.moduleMaps.map((map) => `, "-Xcc", ${JSON.stringify(`-fmodule-map-file=${map}`)}`).join("")}` : "");
12859
+ )}${distributionClangModuleOptions(args.root, import_node_path27.default.join(moduleRoot, "modules")).map((flag) => `, ${JSON.stringify(flag)}`).join("")}` : prebuilt ? `, "-Isystem", ${JSON.stringify(providedModulesPath(args.root, prebuilt.modules, args.moduleExcludes))}${prebuilt.moduleMaps.map((map) => `, "-Xcc", ${JSON.stringify(`-fmodule-map-file=${map}`)}`).join("")}` : "");
12777
12860
  const nativeFlags = [
12778
12861
  ...args.nativeFlags?.get(target.name) ?? [],
12779
12862
  ...args.nativeHeaderFlags ?? []
@@ -12980,7 +13063,9 @@ function syncSwiftTree(base, files) {
12980
13063
  const walk = (dir) => {
12981
13064
  for (const entry of (0, import_node_fs25.readdirSync)(dir, { withFileTypes: true })) {
12982
13065
  const full = import_node_path27.default.join(dir, entry.name);
12983
- if (dir === base && (entry.name === ".build" || entry.name.startsWith(".peach-modules-") || entry.name === SWIFT_LINK_STAMP))
13066
+ if (dir === base && (entry.name === ".build" || entry.name.startsWith(".peach-modules-") || // distribution clang maps are written beside the project and named
13067
+ // from the compiler flags, so a sync must not remove them.
13068
+ entry.name.startsWith(".peach-clang-modules-") || entry.name === SWIFT_LINK_STAMP))
12984
13069
  continue;
12985
13070
  if (entry.isDirectory()) walk(full);
12986
13071
  else if (!files.has(full)) (0, import_node_fs25.rmSync)(full, { force: true });
@@ -15199,6 +15284,9 @@ module ${moduleName}.Swift {
15199
15284
  if (!distribution) {
15200
15285
  modulePlan.update((0, import_node_fs25.readFileSync)(import_node_path27.default.join(moduleRoot, "Package.swift")));
15201
15286
  }
15287
+ modulePlan.update(
15288
+ Object.keys(input.files).filter((file) => file.endsWith(".swift")).sort().join("\n")
15289
+ );
15202
15290
  const resourcePlan = (0, import_node_crypto13.createHash)("sha256").update(
15203
15291
  JSON.stringify(
15204
15292
  resourceTargets.filter((target) => target.resources).map((target) => [
@@ -15621,6 +15709,10 @@ module ${moduleName}.Swift {
15621
15709
  import_node_path27.default.join(moduleRoot, "modules"),
15622
15710
  moduleExcludes
15623
15711
  ) : prebuilt ? providedModulesPath(layout2.root, prebuilt.modules, moduleExcludes) : import_node_path27.default.join(layout2.root, ".build", WASM_TRIPLE, "release", "Modules"),
15712
+ ...distribution ? distributionClangModuleOptions(
15713
+ layout2.root,
15714
+ import_node_path27.default.join(moduleRoot, "modules")
15715
+ ) : [],
15624
15716
  ...prebuilt?.moduleMaps.flatMap((map) => [
15625
15717
  "-Xcc",
15626
15718
  `-fmodule-map-file=${map}`
@@ -16489,7 +16581,7 @@ function compileSwiftProjectOnce(input, options) {
16489
16581
  report("reusing verified disk artifact");
16490
16582
  return retain(root, previous);
16491
16583
  }
16492
- if (!options.intermediates && process.platform === "darwin" && process.env.TM_SESSION && !windowAdmission() && process.env.CI !== "true" && moduleRoot === sourceSwiftCheckout() && !swiftDistributionAt(moduleRoot)) {
16584
+ if (!options.intermediates && process.platform === "darwin" && !options.intermediates && process.env.TM_SESSION && !windowAdmission() && process.env.CI !== "true" && moduleRoot === sourceSwiftCheckout() && !swiftDistributionAt(moduleRoot)) {
16493
16585
  const requestRoot = (0, import_node_fs25.mkdtempSync)(`${root}.builder-request-`);
16494
16586
  const output = import_node_path27.default.join(requestRoot, "output");
16495
16587
  const request = import_node_path27.default.join(requestRoot, "request.json");
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2208 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2209 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/swift-compile.ts
4
4
  import {
@@ -4094,7 +4094,7 @@ function swiftSharedSdkViewOptions(moduleRoot, distribution, toolchainBin, sdk)
4094
4094
  const overlay = path8.join(swiftSharedSdkRoot(moduleRoot, distribution), "wasm/include");
4095
4095
  const overlayFiles = readdirSync4(overlay, { recursive: true, withFileTypes: true }).filter((entry) => entry.isFile()).map((entry) => path8.join(entry.parentPath, entry.name)).sort();
4096
4096
  const key = JSON.stringify([
4097
- "v22",
4097
+ "v23",
4098
4098
  toolchainBin,
4099
4099
  sdk,
4100
4100
  frameworks,
@@ -4151,6 +4151,7 @@ function swiftSharedSdkViewOptions(moduleRoot, distribution, toolchainBin, sdk)
4151
4151
  ...[
4152
4152
  "MacTypes.h",
4153
4153
  "objc/NSObject.h",
4154
+ "ObjectiveC.apinotes",
4154
4155
  "net/if.h",
4155
4156
  "notify.h",
4156
4157
  "notify.modulemap",
@@ -12386,6 +12387,88 @@ function swiftSystemLibraryExclusions(files, targets, distributionModules) {
12386
12387
  )
12387
12388
  );
12388
12389
  }
12390
+ var DISTRIBUTION_CLANG_MODULES = [
12391
+ {
12392
+ name: "EXStructuredHeaders",
12393
+ header: "EXStructuredHeaders/EXStructuredHeadersParser.h",
12394
+ source: `// Copyright \xA9 2021 650 Industries. All rights reserved.
12395
+
12396
+ #import <Foundation/Foundation.h>
12397
+
12398
+ NS_ASSUME_NONNULL_BEGIN
12399
+
12400
+ typedef NS_ENUM(NSInteger, EXStructuredHeadersParserFieldType) {
12401
+ EXStructuredHeadersParserFieldTypeDictionary,
12402
+ EXStructuredHeadersParserFieldTypeList,
12403
+ EXStructuredHeadersParserFieldTypeItem
12404
+ };
12405
+
12406
+ @interface EXStructuredHeadersParser : NSObject
12407
+
12408
+ - (instancetype)initWithRawInput:(NSString *)raw
12409
+ fieldType:(EXStructuredHeadersParserFieldType)fieldType;
12410
+
12411
+ - (instancetype)initWithRawInput:(NSString *)raw
12412
+ fieldType:(EXStructuredHeadersParserFieldType)fieldType
12413
+ ignoringParameters:(BOOL)shouldIgnoreParameters;
12414
+
12415
+ - (nullable id)parseStructuredFieldsWithError:(NSError ** _Nullable)error;
12416
+
12417
+ @end
12418
+
12419
+ NS_ASSUME_NONNULL_END
12420
+ `
12421
+ },
12422
+ {
12423
+ name: "EXUpdatesBSPatch",
12424
+ header: "EXUpdatesBSPatch.h",
12425
+ source: `// Copyright 2015-present 650 Industries. All rights reserved.
12426
+
12427
+ #pragma once
12428
+
12429
+ #import <Foundation/Foundation.h>
12430
+
12431
+ int EXUpdatesApplyBSDiffPatch(const char * _Nonnull oldFilePath,
12432
+ const char * _Nonnull newFilePath,
12433
+ const char * _Nonnull patchFilePath);
12434
+ `
12435
+ }
12436
+ ];
12437
+ function distributionClangModulePresent(modules, name2) {
12438
+ return existsSync5(path27.join(modules, `${name2}.swiftmodule`)) || existsSync5(path27.join(modules, name2, "module.modulemap"));
12439
+ }
12440
+ function distributionClangModuleMap(root, modules) {
12441
+ const missing = DISTRIBUTION_CLANG_MODULES.filter(
12442
+ (mod) => !distributionClangModulePresent(modules, mod.name)
12443
+ );
12444
+ if (missing.length === 0) return null;
12445
+ const key = createHash13("sha256").update(modules).update(missing.map((mod) => `${mod.name}\0${mod.source}`).join("\0")).digest("hex").slice(0, 16);
12446
+ const directory = path27.join(root, `.peach-clang-modules-${key}`);
12447
+ const mapPath = path27.join(directory, "module.modulemap");
12448
+ if (!existsSync5(mapPath)) {
12449
+ mkdirSync6(directory, { recursive: true });
12450
+ const parts = [];
12451
+ for (const mod of missing) {
12452
+ const destination = path27.join(directory, mod.header);
12453
+ mkdirSync6(path27.dirname(destination), { recursive: true });
12454
+ writeFileSync7(destination, mod.source);
12455
+ parts.push(
12456
+ `module ${mod.name} {
12457
+ requires objc
12458
+ header "${mod.header}"
12459
+ export *
12460
+ }
12461
+ `
12462
+ );
12463
+ }
12464
+ writeFileSync7(mapPath, parts.join("\n"));
12465
+ }
12466
+ return mapPath;
12467
+ }
12468
+ function distributionClangModuleOptions(root, modules) {
12469
+ const map = distributionClangModuleMap(root, modules);
12470
+ return map === null ? [] : ["-Xcc", `-fmodule-map-file=${map}`];
12471
+ }
12389
12472
  function providedModulesPath(root, modules, excluded) {
12390
12473
  if (!excluded || excluded.size === 0) return modules;
12391
12474
  const entries = readdirSync8(modules).filter((entry) => !excluded.has(entry.replace(/\..*$/, ""))).sort();
@@ -12479,7 +12562,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
12479
12562
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
12480
12563
  var MULTI_MANIFEST_VERSION = 68;
12481
12564
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
12482
- var compilerSourceDigest = true ? "be03c2edac4dfeffbfd874f5ea7a11c25067194164940d7e7c5fa34ead584e7a" : swiftCompilerSourceDigest(import.meta.dirname);
12565
+ var compilerSourceDigest = true ? "f113c3b74986e3d582dde643cb5771f750e5c836703fb20a79a1d67a53884748" : swiftCompilerSourceDigest(import.meta.dirname);
12483
12566
  function swiftArtifactHash(input, release, moduleRoot) {
12484
12567
  const hash = createHash13("sha256");
12485
12568
  hash.update(`swift-compile
@@ -12753,7 +12836,7 @@ function emitSwiftPackageManifest(args) {
12753
12836
  path27.join(moduleRoot, "modules"),
12754
12837
  args.moduleExcludes
12755
12838
  )
12756
- )}` : prebuilt ? `, "-Isystem", ${JSON.stringify(providedModulesPath(args.root, prebuilt.modules, args.moduleExcludes))}${prebuilt.moduleMaps.map((map) => `, "-Xcc", ${JSON.stringify(`-fmodule-map-file=${map}`)}`).join("")}` : "");
12839
+ )}${distributionClangModuleOptions(args.root, path27.join(moduleRoot, "modules")).map((flag) => `, ${JSON.stringify(flag)}`).join("")}` : prebuilt ? `, "-Isystem", ${JSON.stringify(providedModulesPath(args.root, prebuilt.modules, args.moduleExcludes))}${prebuilt.moduleMaps.map((map) => `, "-Xcc", ${JSON.stringify(`-fmodule-map-file=${map}`)}`).join("")}` : "");
12757
12840
  const nativeFlags = [
12758
12841
  ...args.nativeFlags?.get(target.name) ?? [],
12759
12842
  ...args.nativeHeaderFlags ?? []
@@ -12960,7 +13043,9 @@ function syncSwiftTree(base, files) {
12960
13043
  const walk = (dir) => {
12961
13044
  for (const entry of readdirSync8(dir, { withFileTypes: true })) {
12962
13045
  const full = path27.join(dir, entry.name);
12963
- if (dir === base && (entry.name === ".build" || entry.name.startsWith(".peach-modules-") || entry.name === SWIFT_LINK_STAMP))
13046
+ if (dir === base && (entry.name === ".build" || entry.name.startsWith(".peach-modules-") || // distribution clang maps are written beside the project and named
13047
+ // from the compiler flags, so a sync must not remove them.
13048
+ entry.name.startsWith(".peach-clang-modules-") || entry.name === SWIFT_LINK_STAMP))
12964
13049
  continue;
12965
13050
  if (entry.isDirectory()) walk(full);
12966
13051
  else if (!files.has(full)) rmSync6(full, { force: true });
@@ -15179,6 +15264,9 @@ module ${moduleName}.Swift {
15179
15264
  if (!distribution) {
15180
15265
  modulePlan.update(readFileSync16(path27.join(moduleRoot, "Package.swift")));
15181
15266
  }
15267
+ modulePlan.update(
15268
+ Object.keys(input.files).filter((file) => file.endsWith(".swift")).sort().join("\n")
15269
+ );
15182
15270
  const resourcePlan = createHash13("sha256").update(
15183
15271
  JSON.stringify(
15184
15272
  resourceTargets.filter((target) => target.resources).map((target) => [
@@ -15601,6 +15689,10 @@ module ${moduleName}.Swift {
15601
15689
  path27.join(moduleRoot, "modules"),
15602
15690
  moduleExcludes
15603
15691
  ) : prebuilt ? providedModulesPath(layout2.root, prebuilt.modules, moduleExcludes) : path27.join(layout2.root, ".build", WASM_TRIPLE, "release", "Modules"),
15692
+ ...distribution ? distributionClangModuleOptions(
15693
+ layout2.root,
15694
+ path27.join(moduleRoot, "modules")
15695
+ ) : [],
15604
15696
  ...prebuilt?.moduleMaps.flatMap((map) => [
15605
15697
  "-Xcc",
15606
15698
  `-fmodule-map-file=${map}`
@@ -16469,7 +16561,7 @@ function compileSwiftProjectOnce(input, options) {
16469
16561
  report("reusing verified disk artifact");
16470
16562
  return retain(root, previous);
16471
16563
  }
16472
- if (!options.intermediates && process.platform === "darwin" && process.env.TM_SESSION && !windowAdmission() && process.env.CI !== "true" && moduleRoot === sourceSwiftCheckout() && !swiftDistributionAt(moduleRoot)) {
16564
+ if (!options.intermediates && process.platform === "darwin" && !options.intermediates && process.env.TM_SESSION && !windowAdmission() && process.env.CI !== "true" && moduleRoot === sourceSwiftCheckout() && !swiftDistributionAt(moduleRoot)) {
16473
16565
  const requestRoot = mkdtempSync3(`${root}.builder-request-`);
16474
16566
  const output = path27.join(requestRoot, "output");
16475
16567
  const request = path27.join(requestRoot, "request.json");
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2208 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2209 | (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.2208 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2209 | (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.2208 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2209 | (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.2208 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2209 | (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.2208 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2209 | (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.2208 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2209 | (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;