peachsim 0.1.2198 → 0.1.2200

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 (135) hide show
  1. package/cli/commands/inspect/settling.ts +20 -20
  2. package/cli/outbound-endpoints.ts +12 -0
  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 +1532 -1170
  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 +22 -22
  27. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  28. package/dist-lib/expo-swift-bundle.cjs +45875 -39899
  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 +50942 -49780
  33. package/dist-lib/host/fetch-proxy-handler.cjs +16 -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 +36 -24
  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 +100 -10
  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 +16 -4
  49. package/dist-lib/native-app-identity-project.cjs +14 -2
  50. package/dist-lib/native-app-identity-project.mjs +14 -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 +302 -289
  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 +21 -21
  68. package/dist-lib/sdk.mjs +21 -21
  69. package/dist-lib/skills.cjs +3622 -2962
  70. package/dist-lib/swift-compile.cjs +34 -3
  71. package/dist-lib/swift-compile.mjs +34 -3
  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 +1 -1
  75. package/dist-lib/swift-submit.mjs +1 -1
  76. package/dist-lib/swift-toolchain.cjs +1 -1
  77. package/dist-lib/swift.cjs +1 -1
  78. package/dist-lib/vite-swift.cjs +129 -43
  79. package/dist-lib/vite.cjs +16 -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/engine/scene-table.d.ts +2 -0
  83. package/dist-types/packages/peach-engine/src/render-worker/app-prefetch-contract.d.ts +5 -0
  84. package/dist-types/packages/peach-engine/src/render-worker/protocol.d.ts +2 -0
  85. package/dist-types/packages/peach-engine/src/render-worker/tree-sync-port.d.ts +5 -0
  86. package/kotlin/sdk.tar.gz +0 -0
  87. package/package.json +1 -1
  88. package/runtime-companion.json +1 -1
  89. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h +2 -0
  90. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSBundle.h +1 -1
  91. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSByteCountFormatter.h +1 -1
  92. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSCharacterSet.h +1 -1
  93. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSCompoundPredicate.h +1 -1
  94. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSDateIntervalFormatter.h +1 -1
  95. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSDecimalNumber.h +1 -1
  96. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSEnergyFormatter.h +1 -1
  97. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSExpression.h +1 -1
  98. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSFileHandle.h +2 -2
  99. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h +1 -1
  100. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSIndexSet.h +1 -1
  101. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSLengthFormatter.h +1 -1
  102. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSLock.h +3 -3
  103. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSMassFormatter.h +1 -1
  104. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSMeasurementFormatter.h +1 -1
  105. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSNotification.h +1 -1
  106. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSNotificationQueue.h +1 -1
  107. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h +4 -0
  108. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSOrthography.h +1 -1
  109. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSScanner.h +1 -1
  110. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSThread.h +1 -1
  111. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSUnit.h +25 -25
  112. package/sdk/ios/System/Library/Frameworks/QuartzCore.framework/Headers/CAValueFunction.h +1 -1
  113. package/sdk/ios/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h +1 -0
  114. package/sdk/ios/System/Library/Frameworks/QuartzCore.framework/Modules/module.modulemap +1 -0
  115. package/sdk/ios/System/Library/Frameworks/UIKitText.framework/Headers/UIKitText.apinotes +14 -0
  116. package/src/android-layout-ids.ts +50 -0
  117. package/src/android-view-classes.ts +41 -0
  118. package/src/expo-native-workspace.ts +2 -3
  119. package/src/expo-swift-host.ts +6 -1
  120. package/src/java-module-abi.ts +2 -0
  121. package/src/javaAbiContract.ts +2 -0
  122. package/src/kotlin-app.ts +33 -7
  123. package/src/kotlin-host.ts +83 -6
  124. package/src/kotlin-maven-sources.ts +248 -0
  125. package/src/native-prebuilt.ts +36 -2
  126. package/src/native-swift-slices.ts +43 -2
  127. package/src/react-native-bridge-modules.ts +7 -1
  128. package/src/react-native-core-build.ts +176 -0
  129. package/src/react-native-core-digest.ts +1 -1
  130. package/src/react-native-core.ts +24 -7
  131. package/src/swift-packages.ts +3 -0
  132. package/src/swift-standin-emit.ts +9 -1
  133. package/src/swift-standins.ts +5 -2
  134. package/src/swift-wasm-prune.ts +41 -3
  135. package/src/turbo-compile.ts +2 -1
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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;
@@ -5720,6 +5720,25 @@ function getModulePrefix(file) {
5720
5720
  const dash = base.indexOf("-");
5721
5721
  return dash > 0 ? base.slice(0, dash) : base;
5722
5722
  }
5723
+ var SWIFTUI_WRAPPER_HOST_PROTOCOLS = new Set(
5724
+ [
5725
+ "View",
5726
+ "ViewModifier",
5727
+ "App",
5728
+ "Scene",
5729
+ "Gesture",
5730
+ "ToolbarContent",
5731
+ "Commands",
5732
+ "DynamicProperty"
5733
+ ].map((name2) => `$s7SwiftUI${name2.length}${name2}Mp`)
5734
+ );
5735
+ function keepsSwiftUIReflection(file, undefinedSymbols) {
5736
+ if (/^(SwiftUI|Combine|_[A-Za-z0-9]+_SwiftUI)-/.test(import_node_path10.default.basename(file))) return true;
5737
+ for (const name2 of undefinedSymbols) {
5738
+ if (SWIFTUI_WRAPPER_HOST_PROTOCOLS.has(name2)) return true;
5739
+ }
5740
+ return false;
5741
+ }
5723
5742
  function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTargets = [], owner, link, resourceReferences = []) {
5724
5743
  const rspPath = import_node_path10.default.join(directory, ".peach-link.rsp");
5725
5744
  if (!import_node_fs9.default.existsSync(rspPath)) return;
@@ -5750,7 +5769,19 @@ function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTarg
5750
5769
  throw new Error(`swift-wasm-prune: the build owns its sdk directory ${sdkWasiDir}`);
5751
5770
  const sdkObjsDir = ensureUnpackedSdkObjects(sdkWasiDir);
5752
5771
  const distDir = import_node_path10.default.join(moduleRoot, "lib");
5753
- const dropsReflection = (obj, name2) => !!name2 && !/^(SwiftUI|Combine|_[A-Za-z0-9]+_SwiftUI)-/.test(import_node_path10.default.basename(obj.file)) && (name2.startsWith("l__swift5_reflection_descriptor") || name2.startsWith("$s") && (name2.endsWith("CMF") || name2.endsWith("VMF")) && !(!obj.file.startsWith(distDir) && obj.file.endsWith(".swift.o")));
5772
+ const keepsReflection = /* @__PURE__ */ new Map();
5773
+ const declaresSwiftUIConformers = (obj) => {
5774
+ let keeps = keepsReflection.get(obj);
5775
+ if (keeps === void 0) {
5776
+ keeps = keepsSwiftUIReflection(
5777
+ obj.file,
5778
+ obj.symNames.filter((n, i) => n && (obj.symFlags[i] & 16) !== 0)
5779
+ );
5780
+ keepsReflection.set(obj, keeps);
5781
+ }
5782
+ return keeps;
5783
+ };
5784
+ const dropsReflection = (obj, name2) => !!name2 && !declaresSwiftUIConformers(obj) && (name2.startsWith("l__swift5_reflection_descriptor") || name2.startsWith("$s") && (name2.endsWith("CMF") || name2.endsWith("VMF")) && !(!obj.file.startsWith(distDir) && obj.file.endsWith(".swift.o")));
5754
5785
  const prunedObjsDir = import_node_path10.default.join(directory, ".peach-pruned-objs");
5755
5786
  import_node_fs9.default.rmSync(prunedObjsDir, { recursive: true, force: true });
5756
5787
  import_node_fs9.default.mkdirSync(prunedObjsDir, { recursive: true });
@@ -12468,7 +12499,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
12468
12499
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
12469
12500
  var MULTI_MANIFEST_VERSION = 68;
12470
12501
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
12471
- var compilerSourceDigest = true ? "45099ee041f3233f5f998f83729594ab81a38eac8fcf30e21c05ba133c5cb780" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
12502
+ var compilerSourceDigest = true ? "8004dbc307143f91fede23d329c01a8171056ea767fd3755b8ac7a39d59e25b3" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
12472
12503
  function swiftArtifactHash(input, release, moduleRoot) {
12473
12504
  const hash = (0, import_node_crypto13.createHash)("sha256");
12474
12505
  hash.update(`swift-compile
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/swift-compile.ts
4
4
  import {
@@ -5667,6 +5667,25 @@ function getModulePrefix(file) {
5667
5667
  const dash = base.indexOf("-");
5668
5668
  return dash > 0 ? base.slice(0, dash) : base;
5669
5669
  }
5670
+ var SWIFTUI_WRAPPER_HOST_PROTOCOLS = new Set(
5671
+ [
5672
+ "View",
5673
+ "ViewModifier",
5674
+ "App",
5675
+ "Scene",
5676
+ "Gesture",
5677
+ "ToolbarContent",
5678
+ "Commands",
5679
+ "DynamicProperty"
5680
+ ].map((name2) => `$s7SwiftUI${name2.length}${name2}Mp`)
5681
+ );
5682
+ function keepsSwiftUIReflection(file, undefinedSymbols) {
5683
+ if (/^(SwiftUI|Combine|_[A-Za-z0-9]+_SwiftUI)-/.test(path10.basename(file))) return true;
5684
+ for (const name2 of undefinedSymbols) {
5685
+ if (SWIFTUI_WRAPPER_HOST_PROTOCOLS.has(name2)) return true;
5686
+ }
5687
+ return false;
5688
+ }
5670
5689
  function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTargets = [], owner, link, resourceReferences = []) {
5671
5690
  const rspPath = path10.join(directory, ".peach-link.rsp");
5672
5691
  if (!fs4.existsSync(rspPath)) return;
@@ -5697,7 +5716,19 @@ function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTarg
5697
5716
  throw new Error(`swift-wasm-prune: the build owns its sdk directory ${sdkWasiDir}`);
5698
5717
  const sdkObjsDir = ensureUnpackedSdkObjects(sdkWasiDir);
5699
5718
  const distDir = path10.join(moduleRoot, "lib");
5700
- const dropsReflection = (obj, name2) => !!name2 && !/^(SwiftUI|Combine|_[A-Za-z0-9]+_SwiftUI)-/.test(path10.basename(obj.file)) && (name2.startsWith("l__swift5_reflection_descriptor") || name2.startsWith("$s") && (name2.endsWith("CMF") || name2.endsWith("VMF")) && !(!obj.file.startsWith(distDir) && obj.file.endsWith(".swift.o")));
5719
+ const keepsReflection = /* @__PURE__ */ new Map();
5720
+ const declaresSwiftUIConformers = (obj) => {
5721
+ let keeps = keepsReflection.get(obj);
5722
+ if (keeps === void 0) {
5723
+ keeps = keepsSwiftUIReflection(
5724
+ obj.file,
5725
+ obj.symNames.filter((n, i) => n && (obj.symFlags[i] & 16) !== 0)
5726
+ );
5727
+ keepsReflection.set(obj, keeps);
5728
+ }
5729
+ return keeps;
5730
+ };
5731
+ const dropsReflection = (obj, name2) => !!name2 && !declaresSwiftUIConformers(obj) && (name2.startsWith("l__swift5_reflection_descriptor") || name2.startsWith("$s") && (name2.endsWith("CMF") || name2.endsWith("VMF")) && !(!obj.file.startsWith(distDir) && obj.file.endsWith(".swift.o")));
5701
5732
  const prunedObjsDir = path10.join(directory, ".peach-pruned-objs");
5702
5733
  fs4.rmSync(prunedObjsDir, { recursive: true, force: true });
5703
5734
  fs4.mkdirSync(prunedObjsDir, { recursive: true });
@@ -12448,7 +12479,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
12448
12479
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
12449
12480
  var MULTI_MANIFEST_VERSION = 68;
12450
12481
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
12451
- var compilerSourceDigest = true ? "45099ee041f3233f5f998f83729594ab81a38eac8fcf30e21c05ba133c5cb780" : swiftCompilerSourceDigest(import.meta.dirname);
12482
+ var compilerSourceDigest = true ? "8004dbc307143f91fede23d329c01a8171056ea767fd3755b8ac7a39d59e25b3" : swiftCompilerSourceDigest(import.meta.dirname);
12452
12483
  function swiftArtifactHash(input, release, moduleRoot) {
12453
12484
  const hash = createHash13("sha256");
12454
12485
  hash.update(`swift-compile
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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;
@@ -6919,7 +6919,10 @@ function emitSwiftStandin(sourceGraphs, options) {
6919
6919
  const restatesRequired = context.inClass && path51.endsWith(".init()") && [...superChain(owner.get(member.identifier.precise) ?? "")].some(
6920
6920
  (at) => options.requiredInits?.has(`${pathOf(byId.get(at))}.init()`)
6921
6921
  );
6922
- const required = context.inClass && (flags.has("required") || requiredInit || restatesRequired);
6922
+ const protocolInit = member.kind.identifier === "swift.init" && /^c:objc\(pl\)\w+\(im\).*::SYNTHESIZED::c:objc\(cs\)/.test(
6923
+ member.identifier.precise
6924
+ );
6925
+ const required = context.inClass && (flags.has("required") || requiredInit || restatesRequired || protocolInit);
6923
6926
  const final = context.inClass && flags.has("final") ? "final " : "";
6924
6927
  const mutating = flags.has("mutating") ? "mutating " : flags.has("nonmutating") ? "nonmutating " : "";
6925
6928
  let core = `${flags.has("convenience") ? "convenience " : ""}${modifiers[2]}`;
@@ -10671,6 +10674,25 @@ function getModulePrefix(file) {
10671
10674
  const dash = base.indexOf("-");
10672
10675
  return dash > 0 ? base.slice(0, dash) : base;
10673
10676
  }
10677
+ var SWIFTUI_WRAPPER_HOST_PROTOCOLS = new Set(
10678
+ [
10679
+ "View",
10680
+ "ViewModifier",
10681
+ "App",
10682
+ "Scene",
10683
+ "Gesture",
10684
+ "ToolbarContent",
10685
+ "Commands",
10686
+ "DynamicProperty"
10687
+ ].map((name3) => `$s7SwiftUI${name3.length}${name3}Mp`)
10688
+ );
10689
+ function keepsSwiftUIReflection(file, undefinedSymbols) {
10690
+ if (/^(SwiftUI|Combine|_[A-Za-z0-9]+_SwiftUI)-/.test(import_node_path10.default.basename(file))) return true;
10691
+ for (const name3 of undefinedSymbols) {
10692
+ if (SWIFTUI_WRAPPER_HOST_PROTOCOLS.has(name3)) return true;
10693
+ }
10694
+ return false;
10695
+ }
10674
10696
  function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTargets = [], owner, link, resourceReferences = []) {
10675
10697
  const rspPath = import_node_path10.default.join(directory, ".peach-link.rsp");
10676
10698
  if (!import_node_fs10.default.existsSync(rspPath)) return;
@@ -10701,7 +10723,19 @@ function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTarg
10701
10723
  throw new Error(`swift-wasm-prune: the build owns its sdk directory ${sdkWasiDir}`);
10702
10724
  const sdkObjsDir = ensureUnpackedSdkObjects(sdkWasiDir);
10703
10725
  const distDir = import_node_path10.default.join(moduleRoot, "lib");
10704
- const dropsReflection = (obj, name3) => !!name3 && !/^(SwiftUI|Combine|_[A-Za-z0-9]+_SwiftUI)-/.test(import_node_path10.default.basename(obj.file)) && (name3.startsWith("l__swift5_reflection_descriptor") || name3.startsWith("$s") && (name3.endsWith("CMF") || name3.endsWith("VMF")) && !(!obj.file.startsWith(distDir) && obj.file.endsWith(".swift.o")));
10726
+ const keepsReflection = /* @__PURE__ */ new Map();
10727
+ const declaresSwiftUIConformers = (obj) => {
10728
+ let keeps = keepsReflection.get(obj);
10729
+ if (keeps === void 0) {
10730
+ keeps = keepsSwiftUIReflection(
10731
+ obj.file,
10732
+ obj.symNames.filter((n, i) => n && (obj.symFlags[i] & 16) !== 0)
10733
+ );
10734
+ keepsReflection.set(obj, keeps);
10735
+ }
10736
+ return keeps;
10737
+ };
10738
+ const dropsReflection = (obj, name3) => !!name3 && !declaresSwiftUIConformers(obj) && (name3.startsWith("l__swift5_reflection_descriptor") || name3.startsWith("$s") && (name3.endsWith("CMF") || name3.endsWith("VMF")) && !(!obj.file.startsWith(distDir) && obj.file.endsWith(".swift.o")));
10705
10739
  const prunedObjsDir = import_node_path10.default.join(directory, ".peach-pruned-objs");
10706
10740
  import_node_fs10.default.rmSync(prunedObjsDir, { recursive: true, force: true });
10707
10741
  import_node_fs10.default.mkdirSync(prunedObjsDir, { recursive: true });
@@ -17309,7 +17343,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
17309
17343
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
17310
17344
  var MULTI_MANIFEST_VERSION = 68;
17311
17345
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
17312
- var compilerSourceDigest = true ? "45099ee041f3233f5f998f83729594ab81a38eac8fcf30e21c05ba133c5cb780" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
17346
+ var compilerSourceDigest = true ? "8004dbc307143f91fede23d329c01a8171056ea767fd3755b8ac7a39d59e25b3" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
17313
17347
  function swiftArtifactHash(input, release, moduleRoot) {
17314
17348
  const hash = (0, import_node_crypto13.createHash)("sha256");
17315
17349
  hash.update(`swift-compile
@@ -21593,10 +21627,10 @@ function compileSwiftProjectOnce(input, options) {
21593
21627
  // src/swift-host.ts
21594
21628
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
21595
21629
  var import_node_async_hooks = require("node:async_hooks");
21596
- var import_node_child_process32 = require("node:child_process");
21630
+ var import_node_child_process33 = require("node:child_process");
21597
21631
  var import_node_crypto29 = require("node:crypto");
21598
21632
  var import_node_fs53 = __toESM(require("node:fs"), 1);
21599
- var import_node_os14 = __toESM(require("node:os"), 1);
21633
+ var import_node_os15 = __toESM(require("node:os"), 1);
21600
21634
  var import_node_path54 = __toESM(require("node:path"), 1);
21601
21635
 
21602
21636
  // ../sootsim-swift/src/stringCatalog.ts
@@ -29614,7 +29648,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
29614
29648
 
29615
29649
  // src/swift-cxx-reachable.ts
29616
29650
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
29617
- var import_node_child_process30 = require("node:child_process");
29651
+ var import_node_child_process31 = require("node:child_process");
29618
29652
  var import_node_crypto27 = require("node:crypto");
29619
29653
  var import_node_fs50 = __toESM(require("node:fs"), 1);
29620
29654
  var import_node_path51 = __toESM(require("node:path"), 1);
@@ -29665,7 +29699,7 @@ function cxxContextFlags(args) {
29665
29699
 
29666
29700
  // src/swift-objc-compile.ts
29667
29701
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
29668
- var import_node_child_process29 = require("node:child_process");
29702
+ var import_node_child_process30 = require("node:child_process");
29669
29703
  var import_node_crypto26 = require("node:crypto");
29670
29704
  var import_node_fs49 = __toESM(require("node:fs"), 1);
29671
29705
  var import_node_path50 = __toESM(require("node:path"), 1);
@@ -30275,6 +30309,7 @@ function resolveSwiftPackages(options) {
30275
30309
  (file) => file.endsWith(".swift") && import_node_fs40.default.readFileSync(file, "utf8").trim() === ""
30276
30310
  ))
30277
30311
  return false;
30312
+ if (providedTargets.has(name3) && assemblySources(files2, target)) return false;
30278
30313
  claimed.add(key2);
30279
30314
  providedTargets.delete(name3);
30280
30315
  for (const dependency of target.dependencies) {
@@ -30614,11 +30649,11 @@ function sourceClosureDigest(srcDir, entrypoints) {
30614
30649
  return hash.digest("hex");
30615
30650
  }
30616
30651
  var standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
30617
- var STANDIN_SOURCE_DIGEST = true ? "afff2f6ba145885813b507114e72f9218f9a815a257ab2e44f7da376b7bf5cd1" : standinSourceDigest();
30652
+ var STANDIN_SOURCE_DIGEST = true ? "f645af113ec0277d6f260442290621337b4c73e3c3429a24104d2ef41e42c414" : standinSourceDigest();
30618
30653
 
30619
30654
  // src/swift-standins.ts
30620
30655
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
30621
- var import_node_child_process28 = require("node:child_process");
30656
+ var import_node_child_process29 = require("node:child_process");
30622
30657
  var import_node_crypto25 = require("node:crypto");
30623
30658
  var import_node_fs48 = __toESM(require("node:fs"), 1);
30624
30659
  var import_node_path49 = __toESM(require("node:path"), 1);
@@ -30635,7 +30670,7 @@ function nativeEntryKey(inputs) {
30635
30670
  return (0, import_node_crypto22.createHash)("sha256").update(lines.join("\n")).digest("hex").slice(0, 32);
30636
30671
  }
30637
30672
  var nativeEntryPrefix = (kind, name3, key2) => `native/${kind}/${name3}/${key2}`;
30638
- var entryCache = (kind, name3, key2) => import_node_path43.default.join(cacheDir(), "native-prebuilt", kind, name3, key2);
30673
+ var nativeEntryCache = (kind, name3, key2) => import_node_path43.default.join(cacheDir(), "native-prebuilt", kind, name3, key2);
30639
30674
  function download(url, to) {
30640
30675
  try {
30641
30676
  (0, import_node_child_process26.execFileSync)("curl", ["-fsS", "--max-time", "120", url, "-o", to], {
@@ -30658,7 +30693,7 @@ function parseFiles(text5, kind, name3, key2) {
30658
30693
  return parsed.files;
30659
30694
  }
30660
30695
  function fetchNativeEntry(kind, name3, key2) {
30661
- const dir = entryCache(kind, name3, key2);
30696
+ const dir = nativeEntryCache(kind, name3, key2);
30662
30697
  const descriptorFile = import_node_path43.default.join(dir, "descriptor.json");
30663
30698
  if (import_node_fs42.default.existsSync(descriptorFile)) return dir;
30664
30699
  const base = `${NATIVE_PREBUILT_ORIGIN}/${nativeEntryPrefix(kind, name3, key2)}`;
@@ -30690,6 +30725,29 @@ function fetchNativeEntry(kind, name3, key2) {
30690
30725
  import_node_fs42.default.rmSync(staging, { recursive: true, force: true });
30691
30726
  }
30692
30727
  }
30728
+ function installNativeEntry(kind, name3, key2, source) {
30729
+ const files2 = parseFiles(
30730
+ import_node_fs42.default.readFileSync(import_node_path43.default.join(source, "descriptor.json"), "utf8"),
30731
+ kind,
30732
+ name3,
30733
+ key2
30734
+ );
30735
+ for (const file of files2) {
30736
+ const target = import_node_path43.default.join(source, file.path);
30737
+ if (import_node_fs42.default.statSync(target).size !== file.size || sha2562(target) !== file.sha256)
30738
+ throw new Error(
30739
+ `native prebuilt ${kind}/${name3}/${key2}: ${file.path} does not match its descriptor`
30740
+ );
30741
+ }
30742
+ const dir = entryCache(kind, name3, key2);
30743
+ import_node_fs42.default.mkdirSync(import_node_path43.default.dirname(dir), { recursive: true });
30744
+ const staging = `${dir}.${process.pid}.partial`;
30745
+ import_node_fs42.default.rmSync(staging, { recursive: true, force: true });
30746
+ import_node_fs42.default.cpSync(source, staging, { recursive: true });
30747
+ import_node_fs42.default.rmSync(dir, { recursive: true, force: true });
30748
+ import_node_fs42.default.renameSync(staging, dir);
30749
+ return dir;
30750
+ }
30693
30751
 
30694
30752
  // src/native-slices.ts
30695
30753
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -30979,8 +31037,10 @@ function nativeStaticLibrary(file, recipe, moduleRoot) {
30979
31037
 
30980
31038
  // src/native-swift-slices.ts
30981
31039
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
31040
+ var import_node_child_process27 = require("node:child_process");
30982
31041
  var import_node_crypto24 = require("node:crypto");
30983
31042
  var import_node_fs44 = __toESM(require("node:fs"), 1);
31043
+ var import_node_os13 = __toESM(require("node:os"), 1);
30984
31044
  var import_node_path46 = __toESM(require("node:path"), 1);
30985
31045
  var SENTRY_SWIFT_SLICE = {
30986
31046
  name: "Sentry",
@@ -31006,6 +31066,31 @@ function nativeSwiftSliceEntry(distribution, generator) {
31006
31066
  };
31007
31067
  return { name: SENTRY_SWIFT_SLICE.name, inputs, key: nativeEntryKey(inputs) };
31008
31068
  }
31069
+ function privateSentrySlice(entry, moduleRoot) {
31070
+ const privateRoot = privateSwiftDistributionRoot();
31071
+ if (!privateRoot || import_node_fs44.default.realpathSync(privateRoot) !== import_node_fs44.default.realpathSync(moduleRoot))
31072
+ return null;
31073
+ const script = import_node_path46.default.join(sourceSwiftCheckout(), "scripts/build-sentry-wasi.ts");
31074
+ if (!import_node_fs44.default.existsSync(script))
31075
+ throw new Error(
31076
+ "the Sentry slice for a private Swift distribution builds from a Contrast source checkout"
31077
+ );
31078
+ const staging = import_node_fs44.default.mkdtempSync(import_node_path46.default.join(import_node_fs44.default.realpathSync(import_node_os13.default.tmpdir()), "sentry-slice-"));
31079
+ try {
31080
+ process.stderr.write("peach: building the Sentry slice for a private distribution\u2026\n");
31081
+ (0, import_node_child_process27.execFileSync)("bun", [script, "--output", staging, "--module-root", moduleRoot], {
31082
+ stdio: ["ignore", 2, 2]
31083
+ });
31084
+ return installNativeEntry(
31085
+ "slice",
31086
+ entry.name,
31087
+ entry.key,
31088
+ import_node_path46.default.join(staging, nativeEntryPrefix("slice", entry.name, entry.key))
31089
+ );
31090
+ } finally {
31091
+ import_node_fs44.default.rmSync(staging, { recursive: true, force: true });
31092
+ }
31093
+ }
31009
31094
  function nativeSwiftSlice(standin, moduleRoot, generator, configured, artifact) {
31010
31095
  if (standin.module !== SENTRY_SWIFT_SLICE.name) return standin;
31011
31096
  const native = simulatorNativeLibrary(artifact());
@@ -31018,7 +31103,7 @@ function nativeSwiftSlice(standin, moduleRoot, generator, configured, artifact)
31018
31103
  const distribution = swiftDistributionAt(moduleRoot);
31019
31104
  if (!distribution) throw new Error("native Swift slices need a compiled distribution");
31020
31105
  const entry = nativeSwiftSliceEntry(distribution, generator);
31021
- const directory = fetchNativeEntry("slice", entry.name, entry.key);
31106
+ const directory = fetchNativeEntry("slice", entry.name, entry.key) ?? privateSentrySlice(entry, moduleRoot);
31022
31107
  if (!directory)
31023
31108
  throw new Error(
31024
31109
  `native Swift slice ${entry.name}/${entry.key} is not built for this compiler and SDK`
@@ -31094,7 +31179,7 @@ function outputLockStdio(standard, env = process.env) {
31094
31179
 
31095
31180
  // src/swift-cxx-standin.ts
31096
31181
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
31097
- var import_node_child_process27 = require("node:child_process");
31182
+ var import_node_child_process28 = require("node:child_process");
31098
31183
  var import_node_fs47 = __toESM(require("node:fs"), 1);
31099
31184
  var import_node_path48 = __toESM(require("node:path"), 1);
31100
31185
 
@@ -31285,7 +31370,7 @@ async function emitCxxStandin(input) {
31285
31370
  "-I",
31286
31371
  input.headers
31287
31372
  ];
31288
- const includes = (0, import_node_child_process27.spawnSync)(input.clang, [...flags, "-M", "-MT", "peach", probe], {
31373
+ const includes = (0, import_node_child_process28.spawnSync)(input.clang, [...flags, "-M", "-MT", "peach", probe], {
31289
31374
  encoding: "utf8",
31290
31375
  env: swiftEnvironment(),
31291
31376
  maxBuffer: 16 * 1024 * 1024
@@ -31305,7 +31390,7 @@ async function emitCxxStandin(input) {
31305
31390
  const output2 = import_node_fs47.default.openSync(ast, "w");
31306
31391
  let parsed;
31307
31392
  try {
31308
- parsed = (0, import_node_child_process27.spawnSync)(
31393
+ parsed = (0, import_node_child_process28.spawnSync)(
31309
31394
  input.clang,
31310
31395
  [...flags, "-fsyntax-only", "-Xclang", "-ast-dump=json", probe],
31311
31396
  { stdio: ["ignore", output2, "pipe"], encoding: "utf8", env: swiftEnvironment() }
@@ -31363,7 +31448,7 @@ async function emitCxxStandin(input) {
31363
31448
  sourceFile,
31364
31449
  [...prelude, ...live.map((item) => item.text)].join("\n") + "\n"
31365
31450
  );
31366
- const checked = (0, import_node_child_process27.spawnSync)(
31451
+ const checked = (0, import_node_child_process28.spawnSync)(
31367
31452
  input.clang,
31368
31453
  [
31369
31454
  ...flags,
@@ -31402,7 +31487,7 @@ async function emitCxxStandin(input) {
31402
31487
  var TRIPLE = "wasm32-unknown-wasip1";
31403
31488
  var cacheDir4 = import_node_path49.default.join(cacheDir(), "swift-standins");
31404
31489
  function exec(file, args, cwd) {
31405
- return (0, import_node_child_process28.execFileSync)(file, args, {
31490
+ return (0, import_node_child_process29.execFileSync)(file, args, {
31406
31491
  cwd,
31407
31492
  encoding: "utf8",
31408
31493
  env: swiftEnvironment(),
@@ -31777,7 +31862,8 @@ function cxxOnly(surface) {
31777
31862
  if (surface.kind !== "c" && surface.kind !== "objc") return false;
31778
31863
  return files(surface.headers, (name3) => name3.endsWith(".h")).some((file) => {
31779
31864
  const guards = [];
31780
- for (const line of import_node_fs48.default.readFileSync(import_node_path49.default.join(surface.headers, file), "utf8").split("\n")) {
31865
+ const code = import_node_fs48.default.readFileSync(import_node_path49.default.join(surface.headers, file), "utf8").replace(/\/\*[\s\S]*?\*\//g, "").replace(/\/\/.*$/gm, "");
31866
+ for (const line of code.split("\n")) {
31781
31867
  if (/^\s*#\s*if/.test(line))
31782
31868
  guards.push(/__cplusplus/.test(line) && !/!\s*defined|ifndef/.test(line));
31783
31869
  else if (/^\s*#\s*endif/.test(line)) guards.pop();
@@ -32095,7 +32181,7 @@ function placeholderStandin(surface, binary, toolchain, work, behavior, siblings
32095
32181
  const out = import_node_path49.default.join(work, "graphs");
32096
32182
  import_node_fs48.default.mkdirSync(import_node_path49.default.join(work, "interface"), { recursive: true });
32097
32183
  import_node_fs48.default.mkdirSync(out, { recursive: true });
32098
- const extracted = (0, import_node_child_process28.spawnSync)(
32184
+ const extracted = (0, import_node_child_process29.spawnSync)(
32099
32185
  import_node_path49.default.join(toolchain.toolchainBin, "swiftc"),
32100
32186
  [
32101
32187
  "-emit-module",
@@ -32469,7 +32555,7 @@ function graphStandin(module2, graphs, values, wasm, binary, toolchain, work, re
32469
32555
  );
32470
32556
  }
32471
32557
  import_node_fs48.default.writeFileSync(file, source);
32472
- const check2 = (0, import_node_child_process28.spawnSync)(
32558
+ const check2 = (0, import_node_child_process29.spawnSync)(
32473
32559
  import_node_path49.default.join(toolchain.toolchainBin, "swiftc"),
32474
32560
  // emitting the module runs the diagnostics a typecheck skips, such as
32475
32561
  // literal overflow, which the app's build of the stand-in reaches
@@ -32823,7 +32909,7 @@ async function cxxStandin(surface, binary, toolchain, work) {
32823
32909
  roots.map((root) => `#include ${JSON.stringify(root)}
32824
32910
  `).join("")
32825
32911
  );
32826
- const language = (0, import_node_child_process28.spawnSync)(
32912
+ const language = (0, import_node_child_process29.spawnSync)(
32827
32913
  import_node_path49.default.join(toolchain.toolchainBin, "clang"),
32828
32914
  [
32829
32915
  "-target",
@@ -33019,7 +33105,7 @@ function standinLibrary(binary, searchRoot, toolchain) {
33019
33105
  }
33020
33106
  function buildRustCrate(manifest, library, searchRoot) {
33021
33107
  const crate = import_node_path49.default.relative(searchRoot, import_node_path49.default.dirname(manifest));
33022
- const rustup = (0, import_node_child_process28.spawnSync)(
33108
+ const rustup = (0, import_node_child_process29.spawnSync)(
33023
33109
  // runner-toolchain-platform: darwin
33024
33110
  "rustup",
33025
33111
  [
@@ -33038,7 +33124,7 @@ function buildRustCrate(manifest, library, searchRoot) {
33038
33124
  throw new Error(
33039
33125
  `rustup could not install Rust ${RUST_TOOLCHAIN} with ${RUST_TARGET} for ${crate}: ${failure(rustup)}`
33040
33126
  );
33041
- const result = (0, import_node_child_process28.spawnSync)(
33127
+ const result = (0, import_node_child_process29.spawnSync)(
33042
33128
  // runner-toolchain-platform: darwin
33043
33129
  "cargo",
33044
33130
  [
@@ -33181,7 +33267,7 @@ async function sourceStandins(binaries, toolchain, provided, behavior) {
33181
33267
  })
33182
33268
  );
33183
33269
  const build = await new Promise((resolve2) => {
33184
- const child = (0, import_node_child_process28.spawn)(
33270
+ const child = (0, import_node_child_process29.spawn)(
33185
33271
  "bun",
33186
33272
  [
33187
33273
  import_node_path49.default.join(repo, "scripts/build/swift-standins-submit.ts"),
@@ -34385,7 +34471,7 @@ function prepareXcodeSwiftProducts(app, binaries, moduleRoot) {
34385
34471
  provided: [...providers.keys()]
34386
34472
  };
34387
34473
  try {
34388
- const lock = (0, import_node_child_process29.spawnSync)(
34474
+ const lock = (0, import_node_child_process30.spawnSync)(
34389
34475
  "perl",
34390
34476
  ["-e", 'open(my $f, ">&=", 3) or die $!; flock($f, 2) or die $!'],
34391
34477
  { stdio: ["ignore", "pipe", "pipe", descriptor], encoding: "utf8" }
@@ -34556,7 +34642,7 @@ function prepareXcodeSwiftProducts(app, binaries, moduleRoot) {
34556
34642
  import_node_path50.default.join(work, `${target.moduleName}.o`)
34557
34643
  ]
34558
34644
  ];
34559
- const result = (0, import_node_child_process29.spawnSync)(frontend, args, {
34645
+ const result = (0, import_node_child_process30.spawnSync)(frontend, args, {
34560
34646
  cwd: work,
34561
34647
  encoding: "utf8",
34562
34648
  env: swiftEnvironment(),
@@ -34676,7 +34762,7 @@ async function prepareXcodeObjCImplementations(app, binaries, moduleRoot) {
34676
34762
  const work = import_node_path50.default.join(parent, key2);
34677
34763
  const descriptor = import_node_fs49.default.openSync(`${work}.lock`, "a");
34678
34764
  try {
34679
- const locked = (0, import_node_child_process29.spawnSync)(
34765
+ const locked = (0, import_node_child_process30.spawnSync)(
34680
34766
  "perl",
34681
34767
  ["-e", 'open(my $f, ">&=", 3) or die $!; flock($f, 2) or die $!'],
34682
34768
  { stdio: ["ignore", "pipe", "pipe", descriptor], encoding: "utf8" }
@@ -34924,7 +35010,7 @@ async function prepareXcodeObjCImplementations(app, binaries, moduleRoot) {
34924
35010
  ...dependencies ? ["-MD", "-MF", dependencies, "-H"] : []
34925
35011
  ];
34926
35012
  const result = await new Promise((resolve2) => {
34927
- const child = (0, import_node_child_process29.spawn)(
35013
+ const child = (0, import_node_child_process30.spawn)(
34928
35014
  import_node_path50.default.join(toolchain.toolchainBin, cxx ? "clang++" : "clang"),
34929
35015
  args,
34930
35016
  {
@@ -35114,7 +35200,7 @@ async function xcodeCxxReachable(app, binaries, moduleRoot, clang) {
35114
35200
  failed = captured.failed;
35115
35201
  reached = captured.reached;
35116
35202
  } else {
35117
- const result2 = (0, import_node_child_process30.spawnSync)(clang, [...cleaned, "-M", "-MT", "peach", "-H"], {
35203
+ const result2 = (0, import_node_child_process31.spawnSync)(clang, [...cleaned, "-M", "-MT", "peach", "-H"], {
35118
35204
  cwd: work,
35119
35205
  encoding: "utf8",
35120
35206
  env: swiftEnvironment(),
@@ -35240,10 +35326,10 @@ async function xcodeCxxReachable(app, binaries, moduleRoot, clang) {
35240
35326
 
35241
35327
  // src/swift-pdf-raster.ts
35242
35328
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
35243
- var import_node_child_process31 = require("node:child_process");
35329
+ var import_node_child_process32 = require("node:child_process");
35244
35330
  var import_node_crypto28 = require("node:crypto");
35245
35331
  var import_node_fs52 = __toESM(require("node:fs"), 1);
35246
- var import_node_os13 = __toESM(require("node:os"), 1);
35332
+ var import_node_os14 = __toESM(require("node:os"), 1);
35247
35333
  var import_node_path53 = __toESM(require("node:path"), 1);
35248
35334
 
35249
35335
  // cli/internal-child-contract.ts
@@ -35345,12 +35431,12 @@ function rasterBinary() {
35345
35431
  try {
35346
35432
  import_node_fs52.default.mkdirSync(cacheDir(), { recursive: true });
35347
35433
  const source = import_node_path53.default.join(
35348
- import_node_fs52.default.mkdtempSync(import_node_path53.default.join(import_node_os13.default.tmpdir(), "swift-pdf-raster-")),
35434
+ import_node_fs52.default.mkdtempSync(import_node_path53.default.join(import_node_os14.default.tmpdir(), "swift-pdf-raster-")),
35349
35435
  "raster.swift"
35350
35436
  );
35351
35437
  import_node_fs52.default.writeFileSync(source, RASTER_SWIFT);
35352
35438
  try {
35353
- (0, import_node_child_process31.execFileSync)("xcrun", ["swiftc", "-o", binary, source], { stdio: "pipe" });
35439
+ (0, import_node_child_process32.execFileSync)("xcrun", ["swiftc", "-o", binary, source], { stdio: "pipe" });
35354
35440
  } finally {
35355
35441
  import_node_fs52.default.rmSync(import_node_path53.default.dirname(source), { recursive: true, force: true });
35356
35442
  }
@@ -35370,15 +35456,15 @@ function rasterizePdfFile(diskPath, pdfSha256) {
35370
35456
  } catch {
35371
35457
  }
35372
35458
  const out = import_node_path53.default.join(
35373
- import_node_fs52.default.mkdtempSync(import_node_path53.default.join(import_node_os13.default.tmpdir(), "swift-pdf-png-")),
35459
+ import_node_fs52.default.mkdtempSync(import_node_path53.default.join(import_node_os14.default.tmpdir(), "swift-pdf-png-")),
35374
35460
  "out.png"
35375
35461
  );
35376
35462
  try {
35377
35463
  if (process.platform === "darwin") {
35378
- (0, import_node_child_process31.execFileSync)(rasterBinary(), [diskPath, "3", out], { stdio: "pipe" });
35464
+ (0, import_node_child_process32.execFileSync)(rasterBinary(), [diskPath, "3", out], { stdio: "pipe" });
35379
35465
  } else {
35380
35466
  const { executable, prefixArgs } = rnxSelfInvocation();
35381
- (0, import_node_child_process31.execFileSync)(
35467
+ (0, import_node_child_process32.execFileSync)(
35382
35468
  executable,
35383
35469
  [
35384
35470
  ...prefixArgs,
@@ -36661,7 +36747,7 @@ function buildSwiftBundleFiles(packagePath, hosted, inputs, resourceBundles) {
36661
36747
  }
36662
36748
  }
36663
36749
  if (xcode?.app.postBundleScripts.length) {
36664
- const dir = import_node_fs53.default.mkdtempSync(import_node_path54.default.join(import_node_os14.default.tmpdir(), "peach-xcode-bundle-"));
36750
+ const dir = import_node_fs53.default.mkdtempSync(import_node_path54.default.join(import_node_os15.default.tmpdir(), "peach-xcode-bundle-"));
36665
36751
  const wrapper = import_node_path54.default.basename(xcode.app.settings("UNLOCALIZED_RESOURCES_FOLDER_PATH")) || `${xcode.app.name}.app`;
36666
36752
  const bundle = import_node_path54.default.join(dir, wrapper);
36667
36753
  try {
@@ -36688,7 +36774,7 @@ function buildSwiftBundleFiles(packagePath, hosted, inputs, resourceBundles) {
36688
36774
  };
36689
36775
  try {
36690
36776
  const [shell, ...args] = phase.command;
36691
- (0, import_node_child_process32.execFileSync)(shell, args, {
36777
+ (0, import_node_child_process33.execFileSync)(shell, args, {
36692
36778
  cwd: phase.directory,
36693
36779
  env,
36694
36780
  stdio: ["ignore", "pipe", "pipe"],
@@ -37583,12 +37669,12 @@ function swiftViteLifetime(server) {
37583
37669
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
37584
37670
  var import_node_crypto31 = require("node:crypto");
37585
37671
  var import_node_fs55 = __toESM(require("node:fs"), 1);
37586
- var import_node_os15 = __toESM(require("node:os"), 1);
37672
+ var import_node_os16 = __toESM(require("node:os"), 1);
37587
37673
  var import_node_path56 = __toESM(require("node:path"), 1);
37588
37674
 
37589
37675
  // src/one-widget-metadata.ts
37590
37676
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
37591
- var import_node_child_process33 = require("node:child_process");
37677
+ var import_node_child_process34 = require("node:child_process");
37592
37678
  var import_node_crypto30 = require("node:crypto");
37593
37679
  var import_node_fs54 = __toESM(require("node:fs"), 1);
37594
37680
  var import_node_module = require("node:module");
@@ -37621,7 +37707,7 @@ function isHomeWidgetFamily(value) {
37621
37707
  }
37622
37708
 
37623
37709
  // src/one-widget-metadata.ts
37624
- var run4 = (0, import_node_util7.promisify)(import_node_child_process33.execFile);
37710
+ var run4 = (0, import_node_util7.promisify)(import_node_child_process34.execFile);
37625
37711
  var ONE_WIDGET_PACKAGE = "OneWidgets";
37626
37712
  var configs = /* @__PURE__ */ new Map();
37627
37713
  var reads = /* @__PURE__ */ new Map();
@@ -37786,7 +37872,7 @@ async function oneWidgetPackage(appRoot) {
37786
37872
  ].join("\n")
37787
37873
  );
37788
37874
  const packagePath = import_node_path56.default.join(
37789
- import_node_os15.default.tmpdir(),
37875
+ import_node_os16.default.tmpdir(),
37790
37876
  "peach-one-widgets",
37791
37877
  (0, import_node_crypto31.createHash)("sha256").update(root).digest("hex"),
37792
37878
  ONE_WIDGET_PACKAGE