peachsim 0.1.2221 → 0.1.2222

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/cli/commands/compat.ts +4 -4
  2. package/cli/commands/report-issue.ts +1 -1
  3. package/cli/runtime-compat.ts +7 -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 +438 -362
  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 +3 -2
  28. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  29. package/dist-lib/expo-swift-bundle.cjs +435 -360
  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 +658 -555
  34. package/dist-lib/host/fetch-proxy-handler.cjs +10 -7
  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 +8232 -7815
  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 +8146 -7737
  50. package/dist-lib/native-app-identity-project.cjs +331 -13
  51. package/dist-lib/native-app-identity-project.mjs +331 -13
  52. package/dist-lib/native-app-identity.cjs +16 -3
  53. package/dist-lib/native-app-identity.mjs +16 -3
  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 +25 -24
  63. package/dist-lib/public-origins-lib.json +99 -96
  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 +495 -401
  71. package/dist-lib/swift-compile.cjs +47 -30
  72. package/dist-lib/swift-compile.mjs +47 -30
  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 +121 -50
  80. package/dist-lib/vite.cjs +2930 -2800
  81. package/dist-lib/worklet-executable.cjs +1 -1
  82. package/dist-lib/worklet-executable.mjs +1 -1
  83. package/dist-types/packages/peach-engine/src/cli-companion.d.ts +1 -0
  84. package/dist-types/packages/peach-engine/src/cli-host-terser.d.ts +7 -0
  85. package/dist-types/packages/peach-engine/src/engine/glass-material.d.ts +1 -1
  86. package/dist-types/packages/peach-engine/src/engine/liquid-glass.d.ts +1 -0
  87. package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +1 -0
  88. package/dist-types/packages/peach-engine/src/engine/node.d.ts +5 -0
  89. package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +8 -1
  90. package/dist-types/packages/peach-engine/src/engine/types.d.ts +3 -0
  91. package/dist-types/packages/peach-engine/src/engine/yoga-layout.d.ts +1 -1
  92. package/dist-types/packages/peach-engine/src/remote-stream/cloud-display.d.ts +2 -2
  93. package/dist-types/packages/peach-engine/src/render-worker/shell-tree-wire.d.ts +1 -2
  94. package/dist-types/packages/peach-kit/src/internal.d.ts +1 -0
  95. package/dist-types/packages/peach-kit/src/ios-tint.d.ts +1 -0
  96. package/dist-types/packages/peach-kit/src/transitions/screen-transition-math.d.ts +25 -0
  97. package/kotlin/sdk.tar.gz +0 -0
  98. package/package.json +1 -1
  99. package/runtime-companion.json +1 -1
  100. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNAnimation.h +4 -4
  101. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNCameraController.h +1 -1
  102. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNConstraint.h +5 -5
  103. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNGeometry.h +1 -1
  104. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNLevelOfDetail.h +1 -1
  105. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNParametricGeometry.h +9 -9
  106. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNParticleSystem.h +1 -1
  107. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNPhysicsBehavior.h +7 -7
  108. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNRenderer.h +1 -1
  109. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNShadable.h +1 -1
  110. package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNTechnique.h +1 -1
  111. package/src/cli-runtime.ts +1 -0
  112. package/src/expo-native-workspace.ts +14 -10
  113. package/src/expo-workspace-exclusion.ts +10 -7
  114. package/src/react-native-autolinking.ts +2 -1
  115. package/src/runtime-delivery.ts +7 -0
  116. package/src/swift-compile.ts +47 -31
  117. package/src/swift-coverage/xcode-assets.ts +4 -2
  118. package/src/swift-host.ts +53 -14
  119. package/src/wasm-optimize.ts +5 -1
  120. package/src/xcode-project.ts +26 -5
  121. package/src/xcode-target-members.ts +25 -3
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -32,7 +32,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
32
32
  var define_SWIFT_COVERAGE_SOURCE_DIGESTS_default;
33
33
  var init_define_SWIFT_COVERAGE_SOURCE_DIGESTS = __esm({
34
34
  "<define:__SWIFT_COVERAGE_SOURCE_DIGESTS__>"() {
35
- define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "99e03b74c961d2449afd58c2cbc415ba91d1d469a4f89e461c137fd6c305b27c", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "29c2661be4b952101c9b9b8fd861560e6ce63b25dd4464f47475aaf72024f4fe", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "25505683ca29a0b380413bf2a5026d4967eacf886e35bc11ece6e15317e5bb02", "home-paths.ts": "d1606390f0e8e50f0ff72544eadb3d49dfabf08e004c1218f2998c36fb8995dd", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "86f79e98323ec065e0e5195324c75ca608f490efbd95dcc25c53d5aa0b9aecc9", "xcode-target-members.ts": "ad7589132bffab265e8a10b64e24484fe88b4a2b1cc0ee19a97f151a002eca77", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
35
+ define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "d98d6294b359528f7733b26db6f80f554782354faa235605f9562be4ad98b8a3", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "29c2661be4b952101c9b9b8fd861560e6ce63b25dd4464f47475aaf72024f4fe", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "25505683ca29a0b380413bf2a5026d4967eacf886e35bc11ece6e15317e5bb02", "home-paths.ts": "d1606390f0e8e50f0ff72544eadb3d49dfabf08e004c1218f2998c36fb8995dd", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "b6e04100805ba81f14d751383416fd4aab46901a6f94f5b62f831e66c28001c1", "xcode-target-members.ts": "d49af77a690cff481b38333b5f63f6600123b1bb57f410b0adb298b010d2047b", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
36
36
  }
37
37
  });
38
38
 
@@ -1571,6 +1571,7 @@ function parseOpenStepPlist(text2) {
1571
1571
  // src/xcode-target-members.ts
1572
1572
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
1573
1573
  var NEVER_MEMBER = /(?:^|\/)(?:Info\.plist|[^/]+\.entitlements|[^/]+\.xcconfig|\.DS_Store)$/;
1574
+ var FOLDER_REFERENCE = /^(?:folder|wrapper\.scnassets)$/;
1574
1575
  var BUNDLE_DIR = /\.(xcassets|bundle|lproj|xcdatamodeld|scnassets|spriteatlas|rcproject|storyboardc|icon)$/;
1575
1576
  function xcodePathResolver(objects, projectDir, join8, sourceTreeRoot) {
1576
1577
  const parents = /* @__PURE__ */ new Map();
@@ -1637,8 +1638,20 @@ function xcodeTargetMemberVisitor(objects) {
1637
1638
  for (const id of refs) {
1638
1639
  const file = resolvePath(id);
1639
1640
  if (file === null) continue;
1640
- if (phase.isa === "PBXSourcesBuildPhase") visit(file, "source");
1641
- else for (const inner of filesUnder(file)) visit(inner, "resource");
1641
+ if (phase.isa === "PBXSourcesBuildPhase") {
1642
+ visit(file, "source");
1643
+ continue;
1644
+ }
1645
+ const ref = objects[id];
1646
+ const type = isDict(ref) ? str(ref.lastKnownFileType) ?? str(ref.explicitFileType) ?? "" : "";
1647
+ const root = file.replace(/[\\/]+$/, "");
1648
+ const folder = FOLDER_REFERENCE.test(type) ? root.split(/[\\/]/).pop() : void 0;
1649
+ for (const inner of filesUnder(file))
1650
+ visit(
1651
+ inner,
1652
+ "resource",
1653
+ folder && `${folder}/${inner.slice(root.length + 1).replaceAll("\\", "/")}`
1654
+ );
1642
1655
  }
1643
1656
  }
1644
1657
  }
@@ -2558,6 +2571,297 @@ import fs16 from "node:fs";
2558
2571
  import path35 from "node:path";
2559
2572
  import plist2 from "plist";
2560
2573
 
2574
+ // src/ios-sdk-frameworks.json
2575
+ var ios_sdk_frameworks_default = {
2576
+ sdk: "iphonesimulator27.1",
2577
+ frameworks: [
2578
+ "ARKit",
2579
+ "AVFAudio",
2580
+ "AVFoundation",
2581
+ "AVKit",
2582
+ "AVRouting",
2583
+ "Accelerate",
2584
+ "Accessibility",
2585
+ "AccessoryLiveActivities",
2586
+ "AccessoryNotifications",
2587
+ "AccessorySetupKit",
2588
+ "AccessoryTransportExtension",
2589
+ "Accounts",
2590
+ "ActivityKit",
2591
+ "AdAttributionKit",
2592
+ "AdServices",
2593
+ "AdSupport",
2594
+ "AddressBook",
2595
+ "AddressBookUI",
2596
+ "AlarmKit",
2597
+ "AppClip",
2598
+ "AppIntents",
2599
+ "AppIntentsTypeSupport",
2600
+ "AppMigrationKit",
2601
+ "AppTrackingTransparency",
2602
+ "AssetsLibrary",
2603
+ "AudioToolbox",
2604
+ "AudioUnit",
2605
+ "AuthenticationServices",
2606
+ "AutomatedDeviceEnrollment",
2607
+ "AutomaticAssessmentConfiguration",
2608
+ "BackgroundAssets",
2609
+ "BackgroundTasks",
2610
+ "BrowserEngineCore",
2611
+ "BrowserEngineKit",
2612
+ "BrowserKit",
2613
+ "BusinessChat",
2614
+ "CFNetwork",
2615
+ "CallKit",
2616
+ "CarKey",
2617
+ "CarPlay",
2618
+ "Charts",
2619
+ "ClassKit",
2620
+ "ClassKitUI",
2621
+ "ClockKit",
2622
+ "CloudKit",
2623
+ "ColorSync",
2624
+ "Combine",
2625
+ "ComputeGraph",
2626
+ "ContactProvider",
2627
+ "Contacts",
2628
+ "ContactsUI",
2629
+ "CoreAudio",
2630
+ "CoreAudioKit",
2631
+ "CoreAudioTypes",
2632
+ "CoreBluetooth",
2633
+ "CoreData",
2634
+ "CoreFoundation",
2635
+ "CoreGraphics",
2636
+ "CoreHaptics",
2637
+ "CoreImage",
2638
+ "CoreLocation",
2639
+ "CoreLocationUI",
2640
+ "CoreMIDI",
2641
+ "CoreML",
2642
+ "CoreMedia",
2643
+ "CoreMotion",
2644
+ "CoreNFC",
2645
+ "CoreServices",
2646
+ "CoreSpotlight",
2647
+ "CoreTelephony",
2648
+ "CoreText",
2649
+ "CoreTransferable",
2650
+ "CoreVideo",
2651
+ "CreateMLComponents",
2652
+ "CryptoKit",
2653
+ "CryptoTokenKit",
2654
+ "DataDetection",
2655
+ "DeclaredAgeRange",
2656
+ "DeveloperToolsSupport",
2657
+ "DeviceActivity",
2658
+ "DeviceCheck",
2659
+ "DeviceDiscoveryExtension",
2660
+ "DeviceDiscoveryUI",
2661
+ "EnergyKit",
2662
+ "EventKit",
2663
+ "EventKitUI",
2664
+ "ExposureNotification",
2665
+ "ExtensionFoundation",
2666
+ "ExtensionKit",
2667
+ "ExternalAccessory",
2668
+ "FamilyControls",
2669
+ "FileProvider",
2670
+ "FileProviderUI",
2671
+ "FinanceKit",
2672
+ "FinanceKitUI",
2673
+ "Foundation",
2674
+ "FoundationModels",
2675
+ "GLKit",
2676
+ "GSS",
2677
+ "GameController",
2678
+ "GameKit",
2679
+ "GameSave",
2680
+ "GameplayKit",
2681
+ "GeoToolbox",
2682
+ "GroupActivities",
2683
+ "HealthKit",
2684
+ "HealthKitUI",
2685
+ "HomeKit",
2686
+ "IOKit",
2687
+ "IOSurface",
2688
+ "IdentityDocumentServices",
2689
+ "IdentityDocumentServicesUI",
2690
+ "IdentityLookup",
2691
+ "IdentityLookupUI",
2692
+ "ImageCaptureCore",
2693
+ "ImageIO",
2694
+ "ImagePlayground",
2695
+ "ImmersiveMediaSupport",
2696
+ "Intents",
2697
+ "IntentsUI",
2698
+ "JavaScriptCore",
2699
+ "LinkPresentation",
2700
+ "LinkSecurity",
2701
+ "LiveCommunicationKit",
2702
+ "LocalAuthentication",
2703
+ "LocalAuthenticationEmbeddedUI",
2704
+ "LockedCameraCapture",
2705
+ "ManagedApp",
2706
+ "ManagedAppDistribution",
2707
+ "ManagedSettings",
2708
+ "ManagedSettingsUI",
2709
+ "MapKit",
2710
+ "MarketplaceKit",
2711
+ "Matter",
2712
+ "MatterSupport",
2713
+ "MediaAccessibility",
2714
+ "MediaIntelligence",
2715
+ "MediaIntents",
2716
+ "MediaPlayer",
2717
+ "MediaToolbox",
2718
+ "MessageUI",
2719
+ "Messages",
2720
+ "Metal",
2721
+ "MetalKit",
2722
+ "MetalPerformancePrimitives",
2723
+ "MetalPerformanceShaders",
2724
+ "MetalPerformanceShadersGraph",
2725
+ "MetricKit",
2726
+ "MobileCoreServices",
2727
+ "ModelIO",
2728
+ "MultipeerConnectivity",
2729
+ "MusicKit",
2730
+ "MusicUnderstanding",
2731
+ "NaturalLanguage",
2732
+ "NearbyInteraction",
2733
+ "Network",
2734
+ "NetworkExtension",
2735
+ "NotificationCenter",
2736
+ "NowPlaying",
2737
+ "OSLog",
2738
+ "OpenAL",
2739
+ "OpenGLES",
2740
+ "PDFKit",
2741
+ "PHASE",
2742
+ "PaperKit",
2743
+ "PassKit",
2744
+ "PencilKit",
2745
+ "PermissionKit",
2746
+ "Photos",
2747
+ "PhotosUI",
2748
+ "ProximityReader",
2749
+ "PushKit",
2750
+ "PushToTalk",
2751
+ "QuartzCore",
2752
+ "QuickLook",
2753
+ "QuickLookThumbnailing",
2754
+ "RealityFoundation",
2755
+ "RealityKit",
2756
+ "RelevanceKit",
2757
+ "ReplayKit",
2758
+ "RoomPlan",
2759
+ "SafariServices",
2760
+ "SafetyKit",
2761
+ "SceneKit",
2762
+ "ScreenTime",
2763
+ "SecureElementCredential",
2764
+ "Security",
2765
+ "SecurityUI",
2766
+ "SensitiveContentAnalysis",
2767
+ "SensorKit",
2768
+ "ServicesAccountLinking",
2769
+ "SharedWithYou",
2770
+ "SharedWithYouCore",
2771
+ "ShazamKit",
2772
+ "Social",
2773
+ "SoundAnalysis",
2774
+ "Speech",
2775
+ "SpriteKit",
2776
+ "StateReporting",
2777
+ "StoreKit",
2778
+ "SuggestedActions",
2779
+ "SwiftData",
2780
+ "SwiftUI",
2781
+ "SwiftUICore",
2782
+ "Symbols",
2783
+ "SystemConfiguration",
2784
+ "SystemExtensions",
2785
+ "TabularData",
2786
+ "TelephonyMessagingKit",
2787
+ "TipKit",
2788
+ "TouchController",
2789
+ "Translation",
2790
+ "TranslationUIProvider",
2791
+ "TrustInsights",
2792
+ "Twitter",
2793
+ "UIKit",
2794
+ "USDKit",
2795
+ "UniformTypeIdentifiers",
2796
+ "UserNotifications",
2797
+ "UserNotificationsUI",
2798
+ "VideoSubscriberAccount",
2799
+ "VideoToolbox",
2800
+ "Vision",
2801
+ "VisionKit",
2802
+ "WatchConnectivity",
2803
+ "WeatherKit",
2804
+ "WebKit",
2805
+ "WiFiAware",
2806
+ "WidgetKit",
2807
+ "WorkoutKit",
2808
+ "_AVKit_SwiftUI",
2809
+ "_AdAttributionKit_StoreKit",
2810
+ "_AppIntents_HealthKit",
2811
+ "_AppIntents_SwiftUI",
2812
+ "_AppIntents_UIKit",
2813
+ "_AuthenticationServices_SwiftUI",
2814
+ "_Contacts_AppIntents",
2815
+ "_CoreData_CloudKit",
2816
+ "_CoreLocationUI_SwiftUI",
2817
+ "_CoreNFC_UIKit",
2818
+ "_CoreSpotlight_FoundationModels",
2819
+ "_DataDetection_SwiftUI",
2820
+ "_DeviceActivity_SwiftUI",
2821
+ "_DeviceDiscoveryUI_SwiftUI",
2822
+ "_FinanceKit_AppIntents",
2823
+ "_FoundationModels_SwiftUI",
2824
+ "_FoundationModels_UIKit",
2825
+ "_GameController_SwiftUI",
2826
+ "_GeoToolbox_AppIntents",
2827
+ "_GroupActivities_UIKit",
2828
+ "_HomeKit_SwiftUI",
2829
+ "_Intents_TipKit",
2830
+ "_LinkPresentation_AppIntents",
2831
+ "_LocationEssentials",
2832
+ "_MapKit_SwiftUI",
2833
+ "_MarketplaceKit_UIKit",
2834
+ "_MediaIntents_AppIntents",
2835
+ "_MediaPlayer_AppIntents",
2836
+ "_MusicKit_SwiftUI",
2837
+ "_NowPlaying_AppIntents",
2838
+ "_PassKit_SwiftUI",
2839
+ "_PermissionKit_SwiftUI",
2840
+ "_PermissionKit_UIKit",
2841
+ "_PhotosUI_SwiftUI",
2842
+ "_PhotosUI_WidgetKit",
2843
+ "_Photos_AppIntents",
2844
+ "_QuickLook_SwiftUI",
2845
+ "_RealityKit_ComputeGraph",
2846
+ "_RealityKit_SwiftUI",
2847
+ "_RelevanceKit_MapKit",
2848
+ "_SceneKit_SwiftUI",
2849
+ "_SecureElementCredential_SwiftUI",
2850
+ "_SecureElementCredential_UIKit",
2851
+ "_SharedWithYou_AppIntents",
2852
+ "_SpriteKit_SwiftUI",
2853
+ "_StoreKit_SwiftUI",
2854
+ "_SwiftData_CoreData",
2855
+ "_SwiftData_SwiftUI",
2856
+ "_Translation_SwiftUI",
2857
+ "_USDKit_RealityKit",
2858
+ "_UserNotifications_AppIntents",
2859
+ "_WebKit_SwiftUI",
2860
+ "_WorkoutKit_SwiftUI",
2861
+ "iAd"
2862
+ ]
2863
+ };
2864
+
2561
2865
  // src/prepared-xcode-phases.ts
2562
2866
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
2563
2867
  import { createHash as createHash3 } from "node:crypto";
@@ -3320,7 +3624,8 @@ var FEATURES = [
3320
3624
  "reference-types",
3321
3625
  "sign-ext"
3322
3626
  ];
3323
- var WASM_OPTIMIZE_IDENTITY = `wasm-opt ${BINARYEN_VERSION} -Oz ${FEATURES.join(",")}`;
3627
+ var KEEP_WASM_NAMES = process.env.PEACH_SWIFT_NAMES === "1";
3628
+ var WASM_OPTIMIZE_IDENTITY = `wasm-opt ${BINARYEN_VERSION} -Oz ${FEATURES.join(",")}${KEEP_WASM_NAMES ? " -g" : ""}`;
3324
3629
 
3325
3630
  // src/swift-icu.ts
3326
3631
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -3426,7 +3731,8 @@ var OPTIONAL_FRAMEWORK_DEPENDENCIES = {
3426
3731
  PeachCFNetwork: [],
3427
3732
  JavaScriptCore: ["PeachJavaScriptCore"],
3428
3733
  PeachJavaScriptCore: [],
3429
- GameplayKit: [],
3734
+ // GameplayKit names SpriteKit and SceneKit nodes, as on iOS
3735
+ GameplayKit: ["SpriteKit", "SceneKit", "PeachBox2D", "simd", "GLKit"],
3430
3736
  simd: [],
3431
3737
  ModelIO: ["simd"],
3432
3738
  GLKit: ["ModelIO"],
@@ -3493,7 +3799,7 @@ var FOUNDATION_IMPLICIT_MODULES = [
3493
3799
  var FOUNDATION_IMPLICIT_FLAGS = FOUNDATION_IMPLICIT_MODULES.map(
3494
3800
  (module) => `, "-Xfrontend", "-import-module", "-Xfrontend", "${module}"`
3495
3801
  ).join("");
3496
- var compilerSourceDigest = true ? "2e9f321a97a408a1b3b8b7d85bbcfb108f0761ed9726b832a3c6c2cc52102806" : swiftCompilerSourceDigest(import.meta.dirname);
3802
+ var compilerSourceDigest = true ? "eba60b7a2e9485f928a6ec2e544e10d84b2b33430be66b9e069c9797a927af86" : swiftCompilerSourceDigest(import.meta.dirname);
3497
3803
  var CORE_FOUNDATION_HANDLE_IMPORTS = [
3498
3804
  "CFAllocator",
3499
3805
  "CFArray",
@@ -4444,6 +4750,7 @@ function targetMembers(ref, settings, options, settingKeys, projectInputs) {
4444
4750
  const allSources = /* @__PURE__ */ new Set();
4445
4751
  const headers = /* @__PURE__ */ new Set();
4446
4752
  const resources = /* @__PURE__ */ new Set();
4753
+ const resourceNames = {};
4447
4754
  const scriptForOutput = /* @__PURE__ */ new Map();
4448
4755
  const copiedFiles = [];
4449
4756
  let generatedInfoPlist = false;
@@ -4613,13 +4920,14 @@ ${output2}`
4613
4920
  xcodePathResolver(project.objects, project.projectDir, path35.join, settings),
4614
4921
  (file) => isDirectory(file) ? walkFiles(file) : fs16.existsSync(file) ? [file] : [],
4615
4922
  path35.join,
4616
- (file, kind) => {
4923
+ (file, kind, bundleName) => {
4617
4924
  if (kind === "header") {
4618
4925
  headers.add(file);
4619
4926
  return;
4620
4927
  }
4621
4928
  if (kind === "resource") {
4622
4929
  resources.add(file);
4930
+ if (bundleName) resourceNames[file] = bundleName;
4623
4931
  return;
4624
4932
  }
4625
4933
  if (!fs16.existsSync(file)) {
@@ -4743,6 +5051,7 @@ ${output2}`
4743
5051
  return {
4744
5052
  sources: [...sources].sort(),
4745
5053
  resources: [...resources].sort(),
5054
+ resourceNames,
4746
5055
  copiedFiles,
4747
5056
  generatedInfoPlist,
4748
5057
  allSources: [...allSources].sort(),
@@ -5949,10 +6258,14 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
5949
6258
  byProduct.has(path35.basename(rawPath)))
5950
6259
  continue;
5951
6260
  const resolved = fileId ? project.resolvePath(fileId) : null;
5952
- if (fileId && resolved !== null && !fs16.existsSync(resolved))
5953
- throw new Error(
5954
- `${str(target.name) ?? "target"}: linked framework ${name} (${fileId}) points at missing ${resolved} in ${project.projectFile}`
5955
- );
6261
+ if (fileId && resolved !== null && !fs16.existsSync(resolved)) {
6262
+ if (!ios_sdk_frameworks_default.frameworks.includes(name))
6263
+ throw new Error(
6264
+ `${str(target.name) ?? "target"}: linked framework ${name} (${fileId}) points at missing ${resolved} in ${project.projectFile}`
6265
+ );
6266
+ sdkFrameworks.add(name);
6267
+ continue;
6268
+ }
5956
6269
  if (!binaryFrameworks.get(name)) binaryFrameworks.set(name, resolved);
5957
6270
  }
5958
6271
  }
@@ -6029,7 +6342,12 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
6029
6342
  ...linkedProducts.flatMap(
6030
6343
  ({ source }) => source.kind === "local" && fs16.existsSync(source.dir) ? [source.dir] : []
6031
6344
  ),
6032
- ...new Set(podSourceDirs)
6345
+ ...new Set(podSourceDirs),
6346
+ // a target's own files may sit beside the project, such as an asset
6347
+ // catalog one folder up, and xcode builds them from there
6348
+ ...new Set(
6349
+ [...module.allSources, ...module.resources].filter((file) => fs16.existsSync(file)).map((file) => path35.dirname(file))
6350
+ )
6033
6351
  ].map((dir) => fs16.realpathSync.native(dir))
6034
6352
  ),
6035
6353
  projectFiles: [
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (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;
@@ -478,6 +478,7 @@ function parseOpenStepPlist(text) {
478
478
 
479
479
  // src/xcode-target-members.ts
480
480
  var NEVER_MEMBER = /(?:^|\/)(?:Info\.plist|[^/]+\.entitlements|[^/]+\.xcconfig|\.DS_Store)$/;
481
+ var FOLDER_REFERENCE = /^(?:folder|wrapper\.scnassets)$/;
481
482
  var BUNDLE_DIR = /\.(xcassets|bundle|lproj|xcdatamodeld|scnassets|spriteatlas|rcproject|storyboardc|icon)$/;
482
483
  function xcodePathResolver(objects, projectDir, join, sourceTreeRoot) {
483
484
  const parents = /* @__PURE__ */ new Map();
@@ -544,8 +545,20 @@ function xcodeTargetMemberVisitor(objects) {
544
545
  for (const id of refs) {
545
546
  const file = resolvePath(id);
546
547
  if (file === null) continue;
547
- if (phase.isa === "PBXSourcesBuildPhase") visit(file, "source");
548
- else for (const inner of filesUnder(file)) visit(inner, "resource");
548
+ if (phase.isa === "PBXSourcesBuildPhase") {
549
+ visit(file, "source");
550
+ continue;
551
+ }
552
+ const ref = objects[id];
553
+ const type = isDict(ref) ? str(ref.lastKnownFileType) ?? str(ref.explicitFileType) ?? "" : "";
554
+ const root = file.replace(/[\\/]+$/, "");
555
+ const folder = FOLDER_REFERENCE.test(type) ? root.split(/[\\/]/).pop() : void 0;
556
+ for (const inner of filesUnder(file))
557
+ visit(
558
+ inner,
559
+ "resource",
560
+ folder && `${folder}/${inner.slice(root.length + 1).replaceAll("\\", "/")}`
561
+ );
549
562
  }
550
563
  }
551
564
  }
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // ../peach-globals/src/bundle-global-footer.ts
4
4
  function findBundleFooter(source, prefix) {
@@ -433,6 +433,7 @@ function parseOpenStepPlist(text) {
433
433
 
434
434
  // src/xcode-target-members.ts
435
435
  var NEVER_MEMBER = /(?:^|\/)(?:Info\.plist|[^/]+\.entitlements|[^/]+\.xcconfig|\.DS_Store)$/;
436
+ var FOLDER_REFERENCE = /^(?:folder|wrapper\.scnassets)$/;
436
437
  var BUNDLE_DIR = /\.(xcassets|bundle|lproj|xcdatamodeld|scnassets|spriteatlas|rcproject|storyboardc|icon)$/;
437
438
  function xcodePathResolver(objects, projectDir, join, sourceTreeRoot) {
438
439
  const parents = /* @__PURE__ */ new Map();
@@ -499,8 +500,20 @@ function xcodeTargetMemberVisitor(objects) {
499
500
  for (const id of refs) {
500
501
  const file = resolvePath(id);
501
502
  if (file === null) continue;
502
- if (phase.isa === "PBXSourcesBuildPhase") visit(file, "source");
503
- else for (const inner of filesUnder(file)) visit(inner, "resource");
503
+ if (phase.isa === "PBXSourcesBuildPhase") {
504
+ visit(file, "source");
505
+ continue;
506
+ }
507
+ const ref = objects[id];
508
+ const type = isDict(ref) ? str(ref.lastKnownFileType) ?? str(ref.explicitFileType) ?? "" : "";
509
+ const root = file.replace(/[\\/]+$/, "");
510
+ const folder = FOLDER_REFERENCE.test(type) ? root.split(/[\\/]/).pop() : void 0;
511
+ for (const inner of filesUnder(file))
512
+ visit(
513
+ inner,
514
+ "resource",
515
+ folder && `${folder}/${inner.slice(root.length + 1).replaceAll("\\", "/")}`
516
+ );
504
517
  }
505
518
  }
506
519
  }
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (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.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // ../peach-globals/src/bundle-global-footer.ts
4
4
  function findBundleFooter(source, prefix) {
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (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.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/pdfium-raster.ts
4
4
  import { PDFiumLibrary } from "@hyzyla/pdfium/inline";
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (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.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/plist.ts
4
4
  import plist from "plist";
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (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.2221 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2222 | (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;