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
  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;
@@ -39,7 +39,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
39
39
  var define_SWIFT_COVERAGE_SOURCE_DIGESTS_default;
40
40
  var init_define_SWIFT_COVERAGE_SOURCE_DIGESTS = __esm({
41
41
  "<define:__SWIFT_COVERAGE_SOURCE_DIGESTS__>"() {
42
- 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" };
42
+ 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" };
43
43
  }
44
44
  });
45
45
 
@@ -1096,6 +1096,7 @@ function autolinkerJson(command, output2) {
1096
1096
  }
1097
1097
  }
1098
1098
  async function cliAdvertises(cli, args, token, appRoot, signal) {
1099
+ const started = Date.now();
1099
1100
  const { stdout, stderr } = await run3("node", [cli, ...args], {
1100
1101
  cwd: appRoot,
1101
1102
  signal,
@@ -1105,7 +1106,7 @@ async function cliAdvertises(cli, args, token, appRoot, signal) {
1105
1106
  });
1106
1107
  if (!stdout.trim())
1107
1108
  throw new Error(
1108
- `${cli} ${args.join(" ")} returned empty help output${stderr.trim() ? `: ${stderr.trim()}` : ""}`
1109
+ `${cli} ${args.join(" ")} exited 0 after ${Date.now() - started}ms with empty help output${stderr.trim() ? `: ${stderr.trim()}` : ""}`
1109
1110
  );
1110
1111
  return stdout.includes(token);
1111
1112
  }
@@ -3430,6 +3431,302 @@ var init_plist = __esm({
3430
3431
  }
3431
3432
  });
3432
3433
 
3434
+ // src/ios-sdk-frameworks.json
3435
+ var ios_sdk_frameworks_default;
3436
+ var init_ios_sdk_frameworks = __esm({
3437
+ "src/ios-sdk-frameworks.json"() {
3438
+ ios_sdk_frameworks_default = {
3439
+ sdk: "iphonesimulator27.1",
3440
+ frameworks: [
3441
+ "ARKit",
3442
+ "AVFAudio",
3443
+ "AVFoundation",
3444
+ "AVKit",
3445
+ "AVRouting",
3446
+ "Accelerate",
3447
+ "Accessibility",
3448
+ "AccessoryLiveActivities",
3449
+ "AccessoryNotifications",
3450
+ "AccessorySetupKit",
3451
+ "AccessoryTransportExtension",
3452
+ "Accounts",
3453
+ "ActivityKit",
3454
+ "AdAttributionKit",
3455
+ "AdServices",
3456
+ "AdSupport",
3457
+ "AddressBook",
3458
+ "AddressBookUI",
3459
+ "AlarmKit",
3460
+ "AppClip",
3461
+ "AppIntents",
3462
+ "AppIntentsTypeSupport",
3463
+ "AppMigrationKit",
3464
+ "AppTrackingTransparency",
3465
+ "AssetsLibrary",
3466
+ "AudioToolbox",
3467
+ "AudioUnit",
3468
+ "AuthenticationServices",
3469
+ "AutomatedDeviceEnrollment",
3470
+ "AutomaticAssessmentConfiguration",
3471
+ "BackgroundAssets",
3472
+ "BackgroundTasks",
3473
+ "BrowserEngineCore",
3474
+ "BrowserEngineKit",
3475
+ "BrowserKit",
3476
+ "BusinessChat",
3477
+ "CFNetwork",
3478
+ "CallKit",
3479
+ "CarKey",
3480
+ "CarPlay",
3481
+ "Charts",
3482
+ "ClassKit",
3483
+ "ClassKitUI",
3484
+ "ClockKit",
3485
+ "CloudKit",
3486
+ "ColorSync",
3487
+ "Combine",
3488
+ "ComputeGraph",
3489
+ "ContactProvider",
3490
+ "Contacts",
3491
+ "ContactsUI",
3492
+ "CoreAudio",
3493
+ "CoreAudioKit",
3494
+ "CoreAudioTypes",
3495
+ "CoreBluetooth",
3496
+ "CoreData",
3497
+ "CoreFoundation",
3498
+ "CoreGraphics",
3499
+ "CoreHaptics",
3500
+ "CoreImage",
3501
+ "CoreLocation",
3502
+ "CoreLocationUI",
3503
+ "CoreMIDI",
3504
+ "CoreML",
3505
+ "CoreMedia",
3506
+ "CoreMotion",
3507
+ "CoreNFC",
3508
+ "CoreServices",
3509
+ "CoreSpotlight",
3510
+ "CoreTelephony",
3511
+ "CoreText",
3512
+ "CoreTransferable",
3513
+ "CoreVideo",
3514
+ "CreateMLComponents",
3515
+ "CryptoKit",
3516
+ "CryptoTokenKit",
3517
+ "DataDetection",
3518
+ "DeclaredAgeRange",
3519
+ "DeveloperToolsSupport",
3520
+ "DeviceActivity",
3521
+ "DeviceCheck",
3522
+ "DeviceDiscoveryExtension",
3523
+ "DeviceDiscoveryUI",
3524
+ "EnergyKit",
3525
+ "EventKit",
3526
+ "EventKitUI",
3527
+ "ExposureNotification",
3528
+ "ExtensionFoundation",
3529
+ "ExtensionKit",
3530
+ "ExternalAccessory",
3531
+ "FamilyControls",
3532
+ "FileProvider",
3533
+ "FileProviderUI",
3534
+ "FinanceKit",
3535
+ "FinanceKitUI",
3536
+ "Foundation",
3537
+ "FoundationModels",
3538
+ "GLKit",
3539
+ "GSS",
3540
+ "GameController",
3541
+ "GameKit",
3542
+ "GameSave",
3543
+ "GameplayKit",
3544
+ "GeoToolbox",
3545
+ "GroupActivities",
3546
+ "HealthKit",
3547
+ "HealthKitUI",
3548
+ "HomeKit",
3549
+ "IOKit",
3550
+ "IOSurface",
3551
+ "IdentityDocumentServices",
3552
+ "IdentityDocumentServicesUI",
3553
+ "IdentityLookup",
3554
+ "IdentityLookupUI",
3555
+ "ImageCaptureCore",
3556
+ "ImageIO",
3557
+ "ImagePlayground",
3558
+ "ImmersiveMediaSupport",
3559
+ "Intents",
3560
+ "IntentsUI",
3561
+ "JavaScriptCore",
3562
+ "LinkPresentation",
3563
+ "LinkSecurity",
3564
+ "LiveCommunicationKit",
3565
+ "LocalAuthentication",
3566
+ "LocalAuthenticationEmbeddedUI",
3567
+ "LockedCameraCapture",
3568
+ "ManagedApp",
3569
+ "ManagedAppDistribution",
3570
+ "ManagedSettings",
3571
+ "ManagedSettingsUI",
3572
+ "MapKit",
3573
+ "MarketplaceKit",
3574
+ "Matter",
3575
+ "MatterSupport",
3576
+ "MediaAccessibility",
3577
+ "MediaIntelligence",
3578
+ "MediaIntents",
3579
+ "MediaPlayer",
3580
+ "MediaToolbox",
3581
+ "MessageUI",
3582
+ "Messages",
3583
+ "Metal",
3584
+ "MetalKit",
3585
+ "MetalPerformancePrimitives",
3586
+ "MetalPerformanceShaders",
3587
+ "MetalPerformanceShadersGraph",
3588
+ "MetricKit",
3589
+ "MobileCoreServices",
3590
+ "ModelIO",
3591
+ "MultipeerConnectivity",
3592
+ "MusicKit",
3593
+ "MusicUnderstanding",
3594
+ "NaturalLanguage",
3595
+ "NearbyInteraction",
3596
+ "Network",
3597
+ "NetworkExtension",
3598
+ "NotificationCenter",
3599
+ "NowPlaying",
3600
+ "OSLog",
3601
+ "OpenAL",
3602
+ "OpenGLES",
3603
+ "PDFKit",
3604
+ "PHASE",
3605
+ "PaperKit",
3606
+ "PassKit",
3607
+ "PencilKit",
3608
+ "PermissionKit",
3609
+ "Photos",
3610
+ "PhotosUI",
3611
+ "ProximityReader",
3612
+ "PushKit",
3613
+ "PushToTalk",
3614
+ "QuartzCore",
3615
+ "QuickLook",
3616
+ "QuickLookThumbnailing",
3617
+ "RealityFoundation",
3618
+ "RealityKit",
3619
+ "RelevanceKit",
3620
+ "ReplayKit",
3621
+ "RoomPlan",
3622
+ "SafariServices",
3623
+ "SafetyKit",
3624
+ "SceneKit",
3625
+ "ScreenTime",
3626
+ "SecureElementCredential",
3627
+ "Security",
3628
+ "SecurityUI",
3629
+ "SensitiveContentAnalysis",
3630
+ "SensorKit",
3631
+ "ServicesAccountLinking",
3632
+ "SharedWithYou",
3633
+ "SharedWithYouCore",
3634
+ "ShazamKit",
3635
+ "Social",
3636
+ "SoundAnalysis",
3637
+ "Speech",
3638
+ "SpriteKit",
3639
+ "StateReporting",
3640
+ "StoreKit",
3641
+ "SuggestedActions",
3642
+ "SwiftData",
3643
+ "SwiftUI",
3644
+ "SwiftUICore",
3645
+ "Symbols",
3646
+ "SystemConfiguration",
3647
+ "SystemExtensions",
3648
+ "TabularData",
3649
+ "TelephonyMessagingKit",
3650
+ "TipKit",
3651
+ "TouchController",
3652
+ "Translation",
3653
+ "TranslationUIProvider",
3654
+ "TrustInsights",
3655
+ "Twitter",
3656
+ "UIKit",
3657
+ "USDKit",
3658
+ "UniformTypeIdentifiers",
3659
+ "UserNotifications",
3660
+ "UserNotificationsUI",
3661
+ "VideoSubscriberAccount",
3662
+ "VideoToolbox",
3663
+ "Vision",
3664
+ "VisionKit",
3665
+ "WatchConnectivity",
3666
+ "WeatherKit",
3667
+ "WebKit",
3668
+ "WiFiAware",
3669
+ "WidgetKit",
3670
+ "WorkoutKit",
3671
+ "_AVKit_SwiftUI",
3672
+ "_AdAttributionKit_StoreKit",
3673
+ "_AppIntents_HealthKit",
3674
+ "_AppIntents_SwiftUI",
3675
+ "_AppIntents_UIKit",
3676
+ "_AuthenticationServices_SwiftUI",
3677
+ "_Contacts_AppIntents",
3678
+ "_CoreData_CloudKit",
3679
+ "_CoreLocationUI_SwiftUI",
3680
+ "_CoreNFC_UIKit",
3681
+ "_CoreSpotlight_FoundationModels",
3682
+ "_DataDetection_SwiftUI",
3683
+ "_DeviceActivity_SwiftUI",
3684
+ "_DeviceDiscoveryUI_SwiftUI",
3685
+ "_FinanceKit_AppIntents",
3686
+ "_FoundationModels_SwiftUI",
3687
+ "_FoundationModels_UIKit",
3688
+ "_GameController_SwiftUI",
3689
+ "_GeoToolbox_AppIntents",
3690
+ "_GroupActivities_UIKit",
3691
+ "_HomeKit_SwiftUI",
3692
+ "_Intents_TipKit",
3693
+ "_LinkPresentation_AppIntents",
3694
+ "_LocationEssentials",
3695
+ "_MapKit_SwiftUI",
3696
+ "_MarketplaceKit_UIKit",
3697
+ "_MediaIntents_AppIntents",
3698
+ "_MediaPlayer_AppIntents",
3699
+ "_MusicKit_SwiftUI",
3700
+ "_NowPlaying_AppIntents",
3701
+ "_PassKit_SwiftUI",
3702
+ "_PermissionKit_SwiftUI",
3703
+ "_PermissionKit_UIKit",
3704
+ "_PhotosUI_SwiftUI",
3705
+ "_PhotosUI_WidgetKit",
3706
+ "_Photos_AppIntents",
3707
+ "_QuickLook_SwiftUI",
3708
+ "_RealityKit_ComputeGraph",
3709
+ "_RealityKit_SwiftUI",
3710
+ "_RelevanceKit_MapKit",
3711
+ "_SceneKit_SwiftUI",
3712
+ "_SecureElementCredential_SwiftUI",
3713
+ "_SecureElementCredential_UIKit",
3714
+ "_SharedWithYou_AppIntents",
3715
+ "_SpriteKit_SwiftUI",
3716
+ "_StoreKit_SwiftUI",
3717
+ "_SwiftData_CoreData",
3718
+ "_SwiftData_SwiftUI",
3719
+ "_Translation_SwiftUI",
3720
+ "_USDKit_RealityKit",
3721
+ "_UserNotifications_AppIntents",
3722
+ "_WebKit_SwiftUI",
3723
+ "_WorkoutKit_SwiftUI",
3724
+ "iAd"
3725
+ ]
3726
+ };
3727
+ }
3728
+ });
3729
+
3433
3730
  // src/android-string-value.ts
3434
3731
  var init_android_string_value = __esm({
3435
3732
  "src/android-string-value.ts"() {
@@ -3735,8 +4032,20 @@ function xcodeTargetMemberVisitor(objects) {
3735
4032
  for (const id of refs) {
3736
4033
  const file = resolvePath(id);
3737
4034
  if (file === null) continue;
3738
- if (phase.isa === "PBXSourcesBuildPhase") visit3(file, "source");
3739
- else for (const inner of filesUnder(file)) visit3(inner, "resource");
4035
+ if (phase.isa === "PBXSourcesBuildPhase") {
4036
+ visit3(file, "source");
4037
+ continue;
4038
+ }
4039
+ const ref = objects[id];
4040
+ const type = isDict(ref) ? str(ref.lastKnownFileType) ?? str(ref.explicitFileType) ?? "" : "";
4041
+ const root = file.replace(/[\\/]+$/, "");
4042
+ const folder = FOLDER_REFERENCE.test(type) ? root.split(/[\\/]/).pop() : void 0;
4043
+ for (const inner of filesUnder(file))
4044
+ visit3(
4045
+ inner,
4046
+ "resource",
4047
+ folder && `${folder}/${inner.slice(root.length + 1).replaceAll("\\", "/")}`
4048
+ );
3740
4049
  }
3741
4050
  }
3742
4051
  }
@@ -3774,13 +4083,14 @@ function xcodeTargetMemberVisitor(objects) {
3774
4083
  }
3775
4084
  };
3776
4085
  }
3777
- var NEVER_MEMBER, BUNDLE_DIR;
4086
+ var NEVER_MEMBER, FOLDER_REFERENCE, BUNDLE_DIR;
3778
4087
  var init_xcode_target_members = __esm({
3779
4088
  "src/xcode-target-members.ts"() {
3780
4089
  "use strict";
3781
4090
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
3782
4091
  init_openstep_plist();
3783
4092
  NEVER_MEMBER = /(?:^|\/)(?:Info\.plist|[^/]+\.entitlements|[^/]+\.xcconfig|\.DS_Store)$/;
4093
+ FOLDER_REFERENCE = /^(?:folder|wrapper\.scnassets)$/;
3784
4094
  BUNDLE_DIR = /\.(xcassets|bundle|lproj|xcdatamodeld|scnassets|spriteatlas|rcproject|storyboardc|icon)$/;
3785
4095
  }
3786
4096
  });
@@ -5864,12 +6174,13 @@ function planAssetSymbols(resources, root, settings) {
5864
6174
  "2": ["ipad"],
5865
6175
  "1,2": ["iphone", "ipad"],
5866
6176
  "1,7": ["iphone"],
6177
+ "1,3,7": ["iphone"],
5867
6178
  "1,2,6": ["iphone", "ipad"],
5868
6179
  "1,2,7": ["iphone", "ipad"]
5869
6180
  }[families];
5870
6181
  if (!devices)
5871
6182
  return unknown2(
5872
- `Generated asset symbols are proven only for TARGETED_DEVICE_FAMILY 1, 2, 1,2, 1,7, 1,2,6 or 1,2,7; this target resolves to "${families}".`
6183
+ `Generated asset symbols are proven only for TARGETED_DEVICE_FAMILY 1, 2, 1,2, 1,7, 1,3,7, 1,2,6 or 1,2,7; this target resolves to "${families}".`
5873
6184
  );
5874
6185
  const plan = {
5875
6186
  catalogs: catalogs.map((path74) => ({
@@ -17827,6 +18138,7 @@ async function runWasmOpt(file, output2, skipPasses, binary2) {
17827
18138
  const result = await (0, import_wasm_opt.wasmOpt)(
17828
18139
  [
17829
18140
  "-Oz",
18141
+ ...KEEP_WASM_NAMES ? ["-g"] : [],
17830
18142
  ...skipPasses.flatMap((pass) => ["--skip-pass", pass]),
17831
18143
  ...FEATURES.map((feature) => `--enable-${feature}`),
17832
18144
  file,
@@ -17860,7 +18172,7 @@ async function installWasmOpt() {
17860
18172
  async function optimizeWasm(file, output2, skipPasses = []) {
17861
18173
  await runWasmOpt(file, output2, skipPasses, await installWasmOpt());
17862
18174
  }
17863
- var import_node_fs41, import_node_path38, import_wasm_opt, FEATURES, WASM_OPTIMIZE_IDENTITY, PINNED_BINARYEN_VERSION, BINARYEN_RELEASES;
18175
+ var import_node_fs41, import_node_path38, import_wasm_opt, FEATURES, KEEP_WASM_NAMES, WASM_OPTIMIZE_IDENTITY, PINNED_BINARYEN_VERSION, BINARYEN_RELEASES;
17864
18176
  var init_wasm_optimize = __esm({
17865
18177
  "src/wasm-optimize.ts"() {
17866
18178
  "use strict";
@@ -17883,7 +18195,8 @@ var init_wasm_optimize = __esm({
17883
18195
  "reference-types",
17884
18196
  "sign-ext"
17885
18197
  ];
17886
- WASM_OPTIMIZE_IDENTITY = `wasm-opt ${import_wasm_opt.BINARYEN_VERSION} -Oz ${FEATURES.join(",")}`;
18198
+ KEEP_WASM_NAMES = process.env.PEACH_SWIFT_NAMES === "1";
18199
+ WASM_OPTIMIZE_IDENTITY = `wasm-opt ${import_wasm_opt.BINARYEN_VERSION} -Oz ${FEATURES.join(",")}${KEEP_WASM_NAMES ? " -g" : ""}`;
17887
18200
  PINNED_BINARYEN_VERSION = "132";
17888
18201
  BINARYEN_RELEASES = /* @__PURE__ */ new Map([
17889
18202
  [
@@ -19935,6 +20248,7 @@ ${release}
19935
20248
  `);
19936
20249
  hash.update(compilerSourceDigest);
19937
20250
  if (input.oneModule) hash.update("one-module\n");
20251
+ if (KEEP_WASM_NAMES) hash.update("names\n");
19938
20252
  hash.update(swiftModuleDigest(moduleRoot));
19939
20253
  if (input.optimize) hash.update(`optimize
19940
20254
  ${WASM_OPTIMIZE_IDENTITY}
@@ -20046,7 +20360,14 @@ function toolsetOrdersLibcxxBeforeDarwinOverlay(options) {
20046
20360
  return libcxx >= 0 && overlay > libcxx;
20047
20361
  }
20048
20362
  function emitSwiftPackageManifest(args) {
20049
- const { targets, siblings, moduleRoot, oneModule, spriteKit, distribution } = args;
20363
+ const {
20364
+ targets,
20365
+ siblings,
20366
+ moduleRoot,
20367
+ oneModule,
20368
+ gameProducts: gameProducts2 = [],
20369
+ distribution
20370
+ } = args;
20050
20371
  const prebuilt = args.prebuilt;
20051
20372
  const linkedObjects = Boolean(distribution || prebuilt);
20052
20373
  const cxxFlagsFor = (flags) => args.deferDarwinOverlay ? withoutWasmOverlayIsystem(flags) : flags;
@@ -20075,9 +20396,8 @@ function emitSwiftPackageManifest(args) {
20075
20396
  for (const name3 of [...siblings.values()].flat())
20076
20397
  if (OPTIONAL_FRAMEWORKS.has(name3) && !targets.some((target) => target.name === name3))
20077
20398
  reach(name3);
20078
- if (spriteKit) {
20079
- for (const name3 of ["SpriteKit", "PeachBox2D", "simd", "GLKit"]) reach(name3);
20080
- }
20399
+ for (const product of gameProducts2)
20400
+ for (const name3 of GAME_REACH[product] ?? []) reach(name3);
20081
20401
  let distributionLinkPath;
20082
20402
  const distributionLink = args.distributionLink;
20083
20403
  if (distribution && distributionLink) {
@@ -20100,7 +20420,7 @@ function emitSwiftPackageManifest(args) {
20100
20420
  (object6) => !isProvider(object6) && !replacedObjects.has(object6)
20101
20421
  );
20102
20422
  const objects = available.filter(
20103
- (object6) => !targets.some((target) => object6.startsWith(`lib/${target.name}-`)) && [...OPTIONAL_FRAMEWORKS, "SpriteKit", "PeachBox2D"].every(
20423
+ (object6) => !targets.some((target) => object6.startsWith(`lib/${target.name}-`)) && [...OPTIONAL_FRAMEWORKS, ...GAME_FAMILY, "PeachBox2D"].every(
20104
20424
  (name3) => !object6.startsWith(`lib/${name3}-`) || reachedFrameworks.has(name3)
20105
20425
  )
20106
20426
  );
@@ -20263,7 +20583,7 @@ function emitSwiftPackageManifest(args) {
20263
20583
  ...linkedObjects || clang && !target.executable ? [] : [
20264
20584
  '.product(name: "SwiftUI", package: "sootsim-swift")',
20265
20585
  ...oneModule ? [ONE_PRODUCT] : [],
20266
- ...spriteKit ? [SPRITEKIT_PRODUCT] : []
20586
+ ...gameProducts2.map(gameProduct)
20267
20587
  ],
20268
20588
  ...(siblings.get(target.name) ?? []).flatMap(
20269
20589
  (dependency) => clang && // textual native headers can include one another without imposing
@@ -20295,7 +20615,7 @@ function emitSwiftPackageManifest(args) {
20295
20615
  .unsafeFlags(${flagArray(`[
20296
20616
  ${REACTOR_FLAG}${executableLinkFlags(args.root)} "-Xlinker", "--export-if-defined=__main_argc_argv"${library},
20297
20617
  ]`)}),
20298
- .unsafeFlags(["-Xlinker", "--strip-all"], .when(configuration: .release)),
20618
+ ${KEEP_WASM_NAMES ? "" : '.unsafeFlags(["-Xlinker", "--strip-all"], .when(configuration: .release)),'}
20299
20619
  ]` : librarySettings.length > 0 ? `,
20300
20620
  linkerSettings: [${librarySettings.join(", ")}]` : "";
20301
20621
  const cDefines = macroSettings(target.cDefines);
@@ -22304,14 +22624,17 @@ module ${moduleName}.Swift {
22304
22624
  manifest = manifest.replace(product, `${product}
22305
22625
  ${ONE_PRODUCT},`).replace(flags, `${flags}${ONE_IMPLICIT_FLAGS}`);
22306
22626
  }
22307
- if (importsSpriteKit(input.files)) {
22627
+ const games = gameProducts(input.files);
22628
+ if (games.length > 0) {
22308
22629
  const anchor = '.product(name: "CoreLocation", package: "sootsim-swift"),';
22309
22630
  if (!manifest.includes(anchor))
22310
22631
  throw new Error(
22311
- "scripts/contrast-app-Package.swift lost the line the SpriteKit product links at"
22632
+ "scripts/contrast-app-Package.swift lost the line the game products link at"
22312
22633
  );
22313
- manifest = manifest.replace(anchor, `${anchor}
22314
- ${SPRITEKIT_PRODUCT},`);
22634
+ manifest = manifest.replace(
22635
+ anchor,
22636
+ [anchor, ...games.map((name3) => `${gameProduct(name3)},`)].join("\n ")
22637
+ );
22315
22638
  }
22316
22639
  files2.set(import_node_path47.default.join(layout2.root, "Package.swift"), manifest + moduleFiles);
22317
22640
  } else {
@@ -22426,7 +22749,7 @@ module ${moduleName}.Swift {
22426
22749
  siblings: moduleSiblings,
22427
22750
  moduleRoot,
22428
22751
  oneModule: input.oneModule,
22429
- spriteKit: importsSpriteKit(input.files),
22752
+ gameProducts: gameProducts(input.files),
22430
22753
  distribution: distribution ?? void 0,
22431
22754
  moduleExcludes,
22432
22755
  deferDarwinOverlay: native.size > 0 && toolsetOrdersLibcxxBeforeDarwinOverlay(
@@ -22825,14 +23148,9 @@ function linkedFrameworkTargets(moduleRoot, input) {
22825
23148
  ))
22826
23149
  reach(match[1]);
22827
23150
  }
22828
- if (importsSpriteKit(input.files))
22829
- for (const name3 of ["SpriteKit", "PeachBox2D", "simd", "GLKit"]) reach(name3);
22830
- const wanted = [
22831
- "PeachApp",
22832
- ...input.oneModule ? ["One"] : [],
22833
- ...importsSpriteKit(input.files) ? ["SpriteKit"] : [],
22834
- ...reached
22835
- ];
23151
+ const games = gameProducts(input.files);
23152
+ for (const product of games) for (const name3 of GAME_REACH[product] ?? []) reach(name3);
23153
+ const wanted = ["PeachApp", ...input.oneModule ? ["One"] : [], ...games, ...reached];
22836
23154
  const linked = [...new Set(wanted)].filter((name3) => libraries.has(name3));
22837
23155
  if (!linked.includes("PeachApp"))
22838
23156
  throw new Error("swift-compile: the framework package declares no PeachApp library");
@@ -23735,7 +24053,7 @@ function compileSwiftProjectOnce(input, options) {
23735
24053
  options.signal
23736
24054
  );
23737
24055
  }
23738
- var import_node_child_process27, import_node_crypto21, import_node_fs50, import_node_os11, import_node_path47, v5, WASM_TRIPLE, SWIFTPM_PROGRESS, SWIFTPM_NOISE, SWIFT_BUILDER_TRANSPORT_MARGIN_MS, SWIFT_BUILDER_DEFAULT_COMPILE_MS, clangInterfaceHeader, swiftInterfaceDeclarations, linkedModuleDigests, SYSTEM_MODULE_LIBRARIES, SYSTEM_MODULE_IMPORT, OPTIONAL_FRAMEWORK_DEPENDENCIES, OPTIONAL_FRAMEWORKS, SWIFT_IMPORT, kleeneNot, kleeneAnd, kleeneOr, sdkPaths, availableModules, sdkOverlayFrameworks, DISTRIBUTION_CLANG_MODULES, ONE_PRODUCT, SPRITEKIT_PRODUCT, importsSpriteKit, FOUNDATION_IMPLICIT_MODULES, FOUNDATION_IMPLICIT_FLAGS, ONE_IMPLICIT_FLAGS, executableLinkFlags, darwinRecordsRegion, REACTOR_FLAG, MULTI_MANIFEST_VERSION, SWIFT_HEADER_PRODUCTS_TARGET, compilerSourceDigest, nativeCxxCompilerFlags, cFlagArray, cxxFlagArray, DIRECTIVE, OS_IOS, DELEGATE_CLASS, FOUNDATION_NETWORKING_TYPES, FOUNDATION_OVERLAY_TYPES, FOUNDATION_OVERLAY_GLOBALS, CORE_FOUNDATION_OVERLAY_GLOBALS, CORE_FOUNDATION_GEOMETRY_TYPES, CORE_FOUNDATION_GRAPHICS_TYPES, CORE_FOUNDATION_HANDLE_IMPORTS, emptyMacroEnvironment, wasmMacroEnvironment, HIDDEN_UNITS, LIBXML_REFERENCE, LIBXML_SOURCE, ROOT_LOCKS, host, rootLocks, SHARED_ARTIFACT_BUDGET_BYTES, SHARED_ARTIFACT_GRACE_MS, RETIRED_PREFIX, retainedArtifacts, FRAMEWORK_LINK_TARGET, SWIFT_LINK_STAMP, SWIFT_FRAMEWORK_SLOTS, SWIFT_FRAMEWORK_SLOT_KEY, SWIFT_FRAMEWORK_SLOT_ORIGIN;
24056
+ var import_node_child_process27, import_node_crypto21, import_node_fs50, import_node_os11, import_node_path47, v5, WASM_TRIPLE, SWIFTPM_PROGRESS, SWIFTPM_NOISE, SWIFT_BUILDER_TRANSPORT_MARGIN_MS, SWIFT_BUILDER_DEFAULT_COMPILE_MS, clangInterfaceHeader, swiftInterfaceDeclarations, linkedModuleDigests, SYSTEM_MODULE_LIBRARIES, SYSTEM_MODULE_IMPORT, OPTIONAL_FRAMEWORK_DEPENDENCIES, OPTIONAL_FRAMEWORKS, SWIFT_IMPORT, kleeneNot, kleeneAnd, kleeneOr, sdkPaths, availableModules, sdkOverlayFrameworks, DISTRIBUTION_CLANG_MODULES, ONE_PRODUCT, GAME_FAMILY, gameProducts, gameProduct, GAME_REACH, FOUNDATION_IMPLICIT_MODULES, FOUNDATION_IMPLICIT_FLAGS, ONE_IMPLICIT_FLAGS, executableLinkFlags, darwinRecordsRegion, REACTOR_FLAG, MULTI_MANIFEST_VERSION, SWIFT_HEADER_PRODUCTS_TARGET, compilerSourceDigest, nativeCxxCompilerFlags, cFlagArray, cxxFlagArray, DIRECTIVE, OS_IOS, DELEGATE_CLASS, FOUNDATION_NETWORKING_TYPES, FOUNDATION_OVERLAY_TYPES, FOUNDATION_OVERLAY_GLOBALS, CORE_FOUNDATION_OVERLAY_GLOBALS, CORE_FOUNDATION_GEOMETRY_TYPES, CORE_FOUNDATION_GRAPHICS_TYPES, CORE_FOUNDATION_HANDLE_IMPORTS, emptyMacroEnvironment, wasmMacroEnvironment, HIDDEN_UNITS, LIBXML_REFERENCE, LIBXML_SOURCE, ROOT_LOCKS, host, rootLocks, SHARED_ARTIFACT_BUDGET_BYTES, SHARED_ARTIFACT_GRACE_MS, RETIRED_PREFIX, retainedArtifacts, FRAMEWORK_LINK_TARGET, SWIFT_LINK_STAMP, SWIFT_FRAMEWORK_SLOTS, SWIFT_FRAMEWORK_SLOT_KEY, SWIFT_FRAMEWORK_SLOT_ORIGIN;
23739
24057
  var init_swift_compile = __esm({
23740
24058
  "src/swift-compile.ts"() {
23741
24059
  "use strict";
@@ -23809,7 +24127,8 @@ var init_swift_compile = __esm({
23809
24127
  PeachCFNetwork: [],
23810
24128
  JavaScriptCore: ["PeachJavaScriptCore"],
23811
24129
  PeachJavaScriptCore: [],
23812
- GameplayKit: [],
24130
+ // GameplayKit names SpriteKit and SceneKit nodes, as on iOS
24131
+ GameplayKit: ["SpriteKit", "SceneKit", "PeachBox2D", "simd", "GLKit"],
23813
24132
  simd: [],
23814
24133
  ModelIO: ["simd"],
23815
24134
  GLKit: ["ModelIO"],
@@ -23921,10 +24240,21 @@ int EXUpdatesApplyBSDiffPatch(const char * _Nonnull oldFilePath,
23921
24240
  }
23922
24241
  ];
23923
24242
  ONE_PRODUCT = '.product(name: "One", package: "sootsim-swift")';
23924
- SPRITEKIT_PRODUCT = '.product(name: "SpriteKit", package: "sootsim-swift")';
23925
- importsSpriteKit = (files2) => Object.entries(files2).some(
23926
- ([file, contents]) => file.endsWith(".swift") && swiftImportNames(contents).includes("SpriteKit")
23927
- );
24243
+ GAME_FAMILY = ["SpriteKit", "SceneKit"];
24244
+ gameProducts = (files2) => {
24245
+ const imported = new Set(
24246
+ Object.entries(files2).flatMap(
24247
+ ([file, contents]) => file.endsWith(".swift") ? swiftImportNames(contents) : []
24248
+ )
24249
+ );
24250
+ if (imported.has("SceneKit")) return [...GAME_FAMILY];
24251
+ return imported.has("SpriteKit") ? ["SpriteKit"] : [];
24252
+ };
24253
+ gameProduct = (name3) => `.product(name: "${name3}", package: "sootsim-swift")`;
24254
+ GAME_REACH = {
24255
+ SpriteKit: ["SpriteKit", "PeachBox2D", "simd", "GLKit"],
24256
+ SceneKit: ["SceneKit"]
24257
+ };
23928
24258
  FOUNDATION_IMPLICIT_MODULES = [
23929
24259
  "PeachObjC",
23930
24260
  "Dispatch",
@@ -23951,7 +24281,7 @@ int EXUpdatesApplyBSDiffPatch(const char * _Nonnull oldFilePath,
23951
24281
  REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
23952
24282
  MULTI_MANIFEST_VERSION = 68;
23953
24283
  SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
23954
- compilerSourceDigest = true ? "2e9f321a97a408a1b3b8b7d85bbcfb108f0761ed9726b832a3c6c2cc52102806" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
24284
+ compilerSourceDigest = true ? "eba60b7a2e9485f928a6ec2e544e10d84b2b33430be66b9e069c9797a927af86" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
23955
24285
  nativeCxxCompilerFlags = ["-fno-cxx-modules"];
23956
24286
  cFlagArray = (flags) => JSON.stringify(withoutGlogModuleMap(flags));
23957
24287
  cxxFlagArray = (flags) => JSON.stringify([...nativeCxxCompilerFlags, ...withoutGlogModuleMap(flags)]);
@@ -24282,8 +24612,6 @@ int EXUpdatesApplyBSDiffPatch(const char * _Nonnull oldFilePath,
24282
24612
  "NSURLProtectionSpaceHTTPS",
24283
24613
  "NSURLProtectionSpaceHTTPSProxy",
24284
24614
  "NSURLProtectionSpaceSOCKSProxy",
24285
- "NSURLSessionDownloadTaskResumeData",
24286
- "NSURLSessionTransferSizeUnknown",
24287
24615
  "NSURLSessionUploadTaskResumeData",
24288
24616
  "NSUTF16BigEndianStringEncoding",
24289
24617
  "NSUTF16LittleEndianStringEncoding",
@@ -26445,6 +26773,7 @@ function targetMembers(ref, settings, options, settingKeys, projectInputs) {
26445
26773
  const allSources = /* @__PURE__ */ new Set();
26446
26774
  const headers = /* @__PURE__ */ new Set();
26447
26775
  const resources = /* @__PURE__ */ new Set();
26776
+ const resourceNames = {};
26448
26777
  const scriptForOutput = /* @__PURE__ */ new Map();
26449
26778
  const copiedFiles = [];
26450
26779
  let generatedInfoPlist = false;
@@ -26614,13 +26943,14 @@ ${output2}`
26614
26943
  xcodePathResolver(project.objects, project.projectDir, import_node_path51.default.join, settings),
26615
26944
  (file) => isDirectory(file) ? walkFiles(file) : import_node_fs53.default.existsSync(file) ? [file] : [],
26616
26945
  import_node_path51.default.join,
26617
- (file, kind) => {
26946
+ (file, kind, bundleName) => {
26618
26947
  if (kind === "header") {
26619
26948
  headers.add(file);
26620
26949
  return;
26621
26950
  }
26622
26951
  if (kind === "resource") {
26623
26952
  resources.add(file);
26953
+ if (bundleName) resourceNames[file] = bundleName;
26624
26954
  return;
26625
26955
  }
26626
26956
  if (!import_node_fs53.default.existsSync(file)) {
@@ -26744,6 +27074,7 @@ ${output2}`
26744
27074
  return {
26745
27075
  sources: [...sources].sort(),
26746
27076
  resources: [...resources].sort(),
27077
+ resourceNames,
26747
27078
  copiedFiles,
26748
27079
  generatedInfoPlist,
26749
27080
  allSources: [...allSources].sort(),
@@ -27805,10 +28136,14 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
27805
28136
  byProduct.has(import_node_path51.default.basename(rawPath)))
27806
28137
  continue;
27807
28138
  const resolved = fileId ? project.resolvePath(fileId) : null;
27808
- if (fileId && resolved !== null && !import_node_fs53.default.existsSync(resolved))
27809
- throw new Error(
27810
- `${str(target.name) ?? "target"}: linked framework ${name3} (${fileId}) points at missing ${resolved} in ${project.projectFile}`
27811
- );
28139
+ if (fileId && resolved !== null && !import_node_fs53.default.existsSync(resolved)) {
28140
+ if (!ios_sdk_frameworks_default.frameworks.includes(name3))
28141
+ throw new Error(
28142
+ `${str(target.name) ?? "target"}: linked framework ${name3} (${fileId}) points at missing ${resolved} in ${project.projectFile}`
28143
+ );
28144
+ sdkFrameworks.add(name3);
28145
+ continue;
28146
+ }
27812
28147
  if (!binaryFrameworks.get(name3)) binaryFrameworks.set(name3, resolved);
27813
28148
  }
27814
28149
  }
@@ -27885,7 +28220,12 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
27885
28220
  ...linkedProducts.flatMap(
27886
28221
  ({ source }) => source.kind === "local" && import_node_fs53.default.existsSync(source.dir) ? [source.dir] : []
27887
28222
  ),
27888
- ...new Set(podSourceDirs)
28223
+ ...new Set(podSourceDirs),
28224
+ // a target's own files may sit beside the project, such as an asset
28225
+ // catalog one folder up, and xcode builds them from there
28226
+ ...new Set(
28227
+ [...module2.allSources, ...module2.resources].filter((file) => import_node_fs53.default.existsSync(file)).map((file) => import_node_path51.default.dirname(file))
28228
+ )
27889
28229
  ].map((dir) => import_node_fs53.default.realpathSync.native(dir))
27890
28230
  ),
27891
28231
  projectFiles: [
@@ -27930,6 +28270,7 @@ var init_xcode_project = __esm({
27930
28270
  import_node_fs53 = __toESM(require("node:fs"), 1);
27931
28271
  import_node_path51 = __toESM(require("node:path"), 1);
27932
28272
  import_plist2 = __toESM(require("plist"), 1);
28273
+ init_ios_sdk_frameworks();
27933
28274
  init_is_record();
27934
28275
  init_native_app_identity();
27935
28276
  init_prepared_xcode_phases();
@@ -28071,7 +28412,7 @@ var init_swift_standin_digest = __esm({
28071
28412
  STANDIN_DIGEST_ENTRYPOINTS = ["swift-standins.ts", "swift-objc-compile.ts"];
28072
28413
  SPECIFIER = /from\s*['"]([^'"]+)['"]|import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
28073
28414
  standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
28074
- STANDIN_SOURCE_DIGEST = true ? "70b9e9f32fde5739daaee933df31b2584f9ef3289c322a0f5b03f1eaac947880" : standinSourceDigest();
28415
+ STANDIN_SOURCE_DIGEST = true ? "1a62599378cd7cdf32385f588eb3f983f07ea222d145ec5b6dc34cce9104f46c" : standinSourceDigest();
28075
28416
  }
28076
28417
  });
28077
28418
 
@@ -35763,302 +36104,6 @@ var init_core_data_entity_classes = __esm({
35763
36104
  }
35764
36105
  });
35765
36106
 
35766
- // src/ios-sdk-frameworks.json
35767
- var ios_sdk_frameworks_default;
35768
- var init_ios_sdk_frameworks = __esm({
35769
- "src/ios-sdk-frameworks.json"() {
35770
- ios_sdk_frameworks_default = {
35771
- sdk: "iphonesimulator27.1",
35772
- frameworks: [
35773
- "ARKit",
35774
- "AVFAudio",
35775
- "AVFoundation",
35776
- "AVKit",
35777
- "AVRouting",
35778
- "Accelerate",
35779
- "Accessibility",
35780
- "AccessoryLiveActivities",
35781
- "AccessoryNotifications",
35782
- "AccessorySetupKit",
35783
- "AccessoryTransportExtension",
35784
- "Accounts",
35785
- "ActivityKit",
35786
- "AdAttributionKit",
35787
- "AdServices",
35788
- "AdSupport",
35789
- "AddressBook",
35790
- "AddressBookUI",
35791
- "AlarmKit",
35792
- "AppClip",
35793
- "AppIntents",
35794
- "AppIntentsTypeSupport",
35795
- "AppMigrationKit",
35796
- "AppTrackingTransparency",
35797
- "AssetsLibrary",
35798
- "AudioToolbox",
35799
- "AudioUnit",
35800
- "AuthenticationServices",
35801
- "AutomatedDeviceEnrollment",
35802
- "AutomaticAssessmentConfiguration",
35803
- "BackgroundAssets",
35804
- "BackgroundTasks",
35805
- "BrowserEngineCore",
35806
- "BrowserEngineKit",
35807
- "BrowserKit",
35808
- "BusinessChat",
35809
- "CFNetwork",
35810
- "CallKit",
35811
- "CarKey",
35812
- "CarPlay",
35813
- "Charts",
35814
- "ClassKit",
35815
- "ClassKitUI",
35816
- "ClockKit",
35817
- "CloudKit",
35818
- "ColorSync",
35819
- "Combine",
35820
- "ComputeGraph",
35821
- "ContactProvider",
35822
- "Contacts",
35823
- "ContactsUI",
35824
- "CoreAudio",
35825
- "CoreAudioKit",
35826
- "CoreAudioTypes",
35827
- "CoreBluetooth",
35828
- "CoreData",
35829
- "CoreFoundation",
35830
- "CoreGraphics",
35831
- "CoreHaptics",
35832
- "CoreImage",
35833
- "CoreLocation",
35834
- "CoreLocationUI",
35835
- "CoreMIDI",
35836
- "CoreML",
35837
- "CoreMedia",
35838
- "CoreMotion",
35839
- "CoreNFC",
35840
- "CoreServices",
35841
- "CoreSpotlight",
35842
- "CoreTelephony",
35843
- "CoreText",
35844
- "CoreTransferable",
35845
- "CoreVideo",
35846
- "CreateMLComponents",
35847
- "CryptoKit",
35848
- "CryptoTokenKit",
35849
- "DataDetection",
35850
- "DeclaredAgeRange",
35851
- "DeveloperToolsSupport",
35852
- "DeviceActivity",
35853
- "DeviceCheck",
35854
- "DeviceDiscoveryExtension",
35855
- "DeviceDiscoveryUI",
35856
- "EnergyKit",
35857
- "EventKit",
35858
- "EventKitUI",
35859
- "ExposureNotification",
35860
- "ExtensionFoundation",
35861
- "ExtensionKit",
35862
- "ExternalAccessory",
35863
- "FamilyControls",
35864
- "FileProvider",
35865
- "FileProviderUI",
35866
- "FinanceKit",
35867
- "FinanceKitUI",
35868
- "Foundation",
35869
- "FoundationModels",
35870
- "GLKit",
35871
- "GSS",
35872
- "GameController",
35873
- "GameKit",
35874
- "GameSave",
35875
- "GameplayKit",
35876
- "GeoToolbox",
35877
- "GroupActivities",
35878
- "HealthKit",
35879
- "HealthKitUI",
35880
- "HomeKit",
35881
- "IOKit",
35882
- "IOSurface",
35883
- "IdentityDocumentServices",
35884
- "IdentityDocumentServicesUI",
35885
- "IdentityLookup",
35886
- "IdentityLookupUI",
35887
- "ImageCaptureCore",
35888
- "ImageIO",
35889
- "ImagePlayground",
35890
- "ImmersiveMediaSupport",
35891
- "Intents",
35892
- "IntentsUI",
35893
- "JavaScriptCore",
35894
- "LinkPresentation",
35895
- "LinkSecurity",
35896
- "LiveCommunicationKit",
35897
- "LocalAuthentication",
35898
- "LocalAuthenticationEmbeddedUI",
35899
- "LockedCameraCapture",
35900
- "ManagedApp",
35901
- "ManagedAppDistribution",
35902
- "ManagedSettings",
35903
- "ManagedSettingsUI",
35904
- "MapKit",
35905
- "MarketplaceKit",
35906
- "Matter",
35907
- "MatterSupport",
35908
- "MediaAccessibility",
35909
- "MediaIntelligence",
35910
- "MediaIntents",
35911
- "MediaPlayer",
35912
- "MediaToolbox",
35913
- "MessageUI",
35914
- "Messages",
35915
- "Metal",
35916
- "MetalKit",
35917
- "MetalPerformancePrimitives",
35918
- "MetalPerformanceShaders",
35919
- "MetalPerformanceShadersGraph",
35920
- "MetricKit",
35921
- "MobileCoreServices",
35922
- "ModelIO",
35923
- "MultipeerConnectivity",
35924
- "MusicKit",
35925
- "MusicUnderstanding",
35926
- "NaturalLanguage",
35927
- "NearbyInteraction",
35928
- "Network",
35929
- "NetworkExtension",
35930
- "NotificationCenter",
35931
- "NowPlaying",
35932
- "OSLog",
35933
- "OpenAL",
35934
- "OpenGLES",
35935
- "PDFKit",
35936
- "PHASE",
35937
- "PaperKit",
35938
- "PassKit",
35939
- "PencilKit",
35940
- "PermissionKit",
35941
- "Photos",
35942
- "PhotosUI",
35943
- "ProximityReader",
35944
- "PushKit",
35945
- "PushToTalk",
35946
- "QuartzCore",
35947
- "QuickLook",
35948
- "QuickLookThumbnailing",
35949
- "RealityFoundation",
35950
- "RealityKit",
35951
- "RelevanceKit",
35952
- "ReplayKit",
35953
- "RoomPlan",
35954
- "SafariServices",
35955
- "SafetyKit",
35956
- "SceneKit",
35957
- "ScreenTime",
35958
- "SecureElementCredential",
35959
- "Security",
35960
- "SecurityUI",
35961
- "SensitiveContentAnalysis",
35962
- "SensorKit",
35963
- "ServicesAccountLinking",
35964
- "SharedWithYou",
35965
- "SharedWithYouCore",
35966
- "ShazamKit",
35967
- "Social",
35968
- "SoundAnalysis",
35969
- "Speech",
35970
- "SpriteKit",
35971
- "StateReporting",
35972
- "StoreKit",
35973
- "SuggestedActions",
35974
- "SwiftData",
35975
- "SwiftUI",
35976
- "SwiftUICore",
35977
- "Symbols",
35978
- "SystemConfiguration",
35979
- "SystemExtensions",
35980
- "TabularData",
35981
- "TelephonyMessagingKit",
35982
- "TipKit",
35983
- "TouchController",
35984
- "Translation",
35985
- "TranslationUIProvider",
35986
- "TrustInsights",
35987
- "Twitter",
35988
- "UIKit",
35989
- "USDKit",
35990
- "UniformTypeIdentifiers",
35991
- "UserNotifications",
35992
- "UserNotificationsUI",
35993
- "VideoSubscriberAccount",
35994
- "VideoToolbox",
35995
- "Vision",
35996
- "VisionKit",
35997
- "WatchConnectivity",
35998
- "WeatherKit",
35999
- "WebKit",
36000
- "WiFiAware",
36001
- "WidgetKit",
36002
- "WorkoutKit",
36003
- "_AVKit_SwiftUI",
36004
- "_AdAttributionKit_StoreKit",
36005
- "_AppIntents_HealthKit",
36006
- "_AppIntents_SwiftUI",
36007
- "_AppIntents_UIKit",
36008
- "_AuthenticationServices_SwiftUI",
36009
- "_Contacts_AppIntents",
36010
- "_CoreData_CloudKit",
36011
- "_CoreLocationUI_SwiftUI",
36012
- "_CoreNFC_UIKit",
36013
- "_CoreSpotlight_FoundationModels",
36014
- "_DataDetection_SwiftUI",
36015
- "_DeviceActivity_SwiftUI",
36016
- "_DeviceDiscoveryUI_SwiftUI",
36017
- "_FinanceKit_AppIntents",
36018
- "_FoundationModels_SwiftUI",
36019
- "_FoundationModels_UIKit",
36020
- "_GameController_SwiftUI",
36021
- "_GeoToolbox_AppIntents",
36022
- "_GroupActivities_UIKit",
36023
- "_HomeKit_SwiftUI",
36024
- "_Intents_TipKit",
36025
- "_LinkPresentation_AppIntents",
36026
- "_LocationEssentials",
36027
- "_MapKit_SwiftUI",
36028
- "_MarketplaceKit_UIKit",
36029
- "_MediaIntents_AppIntents",
36030
- "_MediaPlayer_AppIntents",
36031
- "_MusicKit_SwiftUI",
36032
- "_NowPlaying_AppIntents",
36033
- "_PassKit_SwiftUI",
36034
- "_PermissionKit_SwiftUI",
36035
- "_PermissionKit_UIKit",
36036
- "_PhotosUI_SwiftUI",
36037
- "_PhotosUI_WidgetKit",
36038
- "_Photos_AppIntents",
36039
- "_QuickLook_SwiftUI",
36040
- "_RealityKit_ComputeGraph",
36041
- "_RealityKit_SwiftUI",
36042
- "_RelevanceKit_MapKit",
36043
- "_SceneKit_SwiftUI",
36044
- "_SecureElementCredential_SwiftUI",
36045
- "_SecureElementCredential_UIKit",
36046
- "_SharedWithYou_AppIntents",
36047
- "_SpriteKit_SwiftUI",
36048
- "_StoreKit_SwiftUI",
36049
- "_SwiftData_CoreData",
36050
- "_SwiftData_SwiftUI",
36051
- "_Translation_SwiftUI",
36052
- "_USDKit_RealityKit",
36053
- "_UserNotifications_AppIntents",
36054
- "_WebKit_SwiftUI",
36055
- "_WorkoutKit_SwiftUI",
36056
- "iAd"
36057
- ]
36058
- };
36059
- }
36060
- });
36061
-
36062
36107
  // src/swift-cxx-reachable.ts
36063
36108
  function cxxTrace(stderr) {
36064
36109
  const files2 = [];
@@ -37578,6 +37623,17 @@ function isPackageSource(file) {
37578
37623
  function sourceFiles(root) {
37579
37624
  return packageFiles(root, false).filter(isPackageSource);
37580
37625
  }
37626
+ function xcodeFlatResources(app) {
37627
+ if (!app) return /* @__PURE__ */ new Set();
37628
+ return new Set(
37629
+ app.resources.filter(
37630
+ (file) => !Object.hasOwn(app.resourceNames, file) && !file.split(import_node_path77.default.sep).some((segment) => segment.endsWith(".xcassets"))
37631
+ )
37632
+ );
37633
+ }
37634
+ function bundleResourcePath(flatResources, disk, file) {
37635
+ return flatResources.has(disk) && !file.split("/").includes("Resources") ? `Resources/${file}` : file;
37636
+ }
37581
37637
  function resourceCandidateFiles(root) {
37582
37638
  return packageFiles(root, false).filter(
37583
37639
  (file) => !isPackageSource(file) && !file.endsWith(".xcconfig") && !["project.pbxproj", "project.xcproj", "Package.resolved"].includes(
@@ -37650,12 +37706,24 @@ function buildSwiftResourceTable(project, baseUrl, inputs) {
37650
37706
  const disk = byRelative.get(file);
37651
37707
  return !disk || !layout2?.targetDirs.get(disk)?.startsWith(`${XCODE_FRAMEWORKS_DIR}/`);
37652
37708
  });
37653
- const found = enumerateBundleImages(relative3, readContents2, (file) => {
37654
- const disk = byRelative.get(file);
37655
- if (!disk) throw new Error(`image source ${file} has no input file`);
37656
- const key2 = layout2 ? xcodeInputKey(layout2, disk, file) : file;
37657
- return swiftResourceBundleForFile(bundles, key2)?.path ?? ".";
37658
- });
37709
+ const flatResources = xcodeFlatResources(layout2?.app);
37710
+ const bundled = new Map(
37711
+ relative3.map((file) => [
37712
+ bundleResourcePath(flatResources, byRelative.get(file), file),
37713
+ file
37714
+ ])
37715
+ );
37716
+ const found = enumerateBundleImages(
37717
+ [...bundled.keys()],
37718
+ (file) => readContents2(bundled.get(file) ?? file),
37719
+ (marked) => {
37720
+ const file = bundled.get(marked) ?? marked;
37721
+ const disk = byRelative.get(file);
37722
+ if (!disk) throw new Error(`image source ${file} has no input file`);
37723
+ const key2 = layout2 ? xcodeInputKey(layout2, disk, file) : file;
37724
+ return swiftResourceBundleForFile(bundles, key2)?.path ?? ".";
37725
+ }
37726
+ ).map((image) => ({ ...image, file: bundled.get(image.file) ?? image.file }));
37659
37727
  const colors = enumerateBundleColors(catalogFiles, readContents2);
37660
37728
  const symbols = enumerateBundleSymbols(catalogFiles, readContents2, (file) => {
37661
37729
  const disk = byRelative.get(file);
@@ -37839,15 +37907,20 @@ function buildSwiftBundleFiles(packagePath, hosted, inputs, resourceBundles) {
37839
37907
  }
37840
37908
  }
37841
37909
  const groups = /* @__PURE__ */ new Map();
37842
- const appResources = new Set(xcode?.app.resources ?? []);
37910
+ const flatResources = xcodeFlatResources(xcode?.app);
37843
37911
  for (const file of relative3) {
37844
37912
  const disk = import_node_path77.default.join(packagePath, ...file.split("/"));
37913
+ const folderName = xcode?.app.resourceNames[disk];
37914
+ if (folderName) {
37915
+ watched.push(file);
37916
+ addFile(folderName, readPackageFile2(packagePath, disk, limits.resourceBytes));
37917
+ continue;
37918
+ }
37845
37919
  const key2 = xcode ? xcodeInputKey(xcode, disk, file) : file;
37846
37920
  const bundle = swiftResourceBundleForFile(bundles, key2);
37847
37921
  const bundlePath = bundle?.path ?? ".";
37848
37922
  const group = groups.get(bundlePath) ?? /* @__PURE__ */ new Map();
37849
- const resource = appResources.has(disk) && !file.split("/").includes("Resources") ? `Resources/${file}` : file;
37850
- group.set(resource, disk);
37923
+ group.set(bundleResourcePath(flatResources, disk, file), disk);
37851
37924
  groups.set(bundlePath, group);
37852
37925
  }
37853
37926
  for (const bundle of bundles) {
@@ -47197,7 +47270,7 @@ async function workspaceExclusion(root, portable = false, linkedPackages = []) {
47197
47270
  listed.stdout.split("\0").filter(Boolean).map((entry) => entry.replace(/\/$/, ""))
47198
47271
  );
47199
47272
  const ignoreFiles = /* @__PURE__ */ new Map();
47200
- return (relative3) => {
47273
+ return (relative3, knownDirectory) => {
47201
47274
  const parts = relative3.split(import_node_path14.default.sep);
47202
47275
  const linked = linkedPackages.some(
47203
47276
  (directory2) => relative3.startsWith(directory2 + import_node_path14.default.sep)
@@ -47209,16 +47282,16 @@ async function workspaceExclusion(root, portable = false, linkedPackages = []) {
47209
47282
  }
47210
47283
  if (portable && relative3) {
47211
47284
  let excluded = false;
47212
- const isDirectory3 = import_node_fs18.default.lstatSync(import_node_path14.default.join(root, relative3)).isDirectory();
47285
+ const isDirectory3 = knownDirectory ?? import_node_fs18.default.lstatSync(import_node_path14.default.join(root, relative3)).isDirectory();
47213
47286
  for (let index = 0; index < parts.length; index++) {
47214
47287
  const directory2 = parts.slice(0, index).join(import_node_path14.default.sep);
47215
47288
  let rules2 = ignoreFiles.get(directory2);
47216
- if (!rules2) {
47217
- rules2 = (0, import_ignore.default)();
47289
+ if (rules2 === void 0) {
47218
47290
  const file = import_node_path14.default.join(root, directory2, ".gitignore");
47219
- if (import_node_fs18.default.existsSync(file)) rules2.add(import_node_fs18.default.readFileSync(file, "utf8"));
47291
+ rules2 = import_node_fs18.default.existsSync(file) ? (0, import_ignore.default)().add(import_node_fs18.default.readFileSync(file, "utf8")) : null;
47220
47292
  ignoreFiles.set(directory2, rules2);
47221
47293
  }
47294
+ if (!rules2) continue;
47222
47295
  const item = parts.slice(index).join("/");
47223
47296
  const result = rules2.test(isDirectory3 ? `${item}/` : item);
47224
47297
  if (result.ignored) excluded = true;
@@ -47810,7 +47883,7 @@ async function hashWorkspaceInputs(app, everyByte, signal, sourceOnly = false, p
47810
47883
  signal?.throwIfAborted();
47811
47884
  const file = import_node_path57.default.join(directory2, entry.name);
47812
47885
  const relative3 = import_node_path57.default.relative(root, file);
47813
- if (excluded(relative3)) continue;
47886
+ if (excluded(relative3, entry.isDirectory())) continue;
47814
47887
  hash.update(`${relative3}\0`);
47815
47888
  if (entry.isSymbolicLink()) {
47816
47889
  const link = `link\0${await import_node_fs59.default.promises.readlink(file)}\0`;
@@ -47938,8 +48011,10 @@ function syncChangedFiles(root, work, appRelative, excluded, installed) {
47938
48011
  if (existing && (newerOnly ? existing.mtime.getTime() >= source.mtime.getTime() : existing.size === source.size && existing.mtime.getTime() === source.mtime.getTime()))
47939
48012
  return;
47940
48013
  import_node_fs59.default.mkdirSync(import_node_path57.default.dirname(target), { recursive: true });
47941
- import_node_fs59.default.copyFileSync(file, target);
47942
- import_node_fs59.default.utimesSync(target, source.atime, source.mtime);
48014
+ const staged = `${target}.${process.pid}.peach-sync`;
48015
+ import_node_fs59.default.copyFileSync(file, staged);
48016
+ import_node_fs59.default.utimesSync(staged, source.atime, source.mtime);
48017
+ import_node_fs59.default.renameSync(staged, target);
47943
48018
  };
47944
48019
  const walkInstalled = (directory2) => {
47945
48020
  for (const entry of import_node_fs59.default.readdirSync(directory2, { withFileTypes: true })) {
@@ -47957,7 +48032,7 @@ function syncChangedFiles(root, work, appRelative, excluded, installed) {
47957
48032
  walkInstalled(file);
47958
48033
  continue;
47959
48034
  }
47960
- if (excluded(relative3) || entry.isSymbolicLink() || !sourceIos && relative3 === import_node_path57.default.join(appRelative, "ios"))
48035
+ if (excluded(relative3, entry.isDirectory()) || entry.isSymbolicLink() || !sourceIos && relative3 === import_node_path57.default.join(appRelative, "ios"))
47961
48036
  continue;
47962
48037
  if (entry.isDirectory()) walk3(file);
47963
48038
  else if (entry.isFile()) {
@@ -48874,7 +48949,7 @@ init_swift_native_pin();
48874
48949
  init_xcode_project();
48875
48950
  var EXPO_NATIVE_ENTRY_NAME = "ios";
48876
48951
  function expoNativeCompilerDigestValue() {
48877
- return true ? "7667f1dce279c8074ed9dd97de1e3b293077ae012cacf08fd6572978f8ef7dc0" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
48952
+ return true ? "db679f96e034ef5a3e217e2553ec748fa11d5dd68cd9247dd7bcae61a03d42a1" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
48878
48953
  }
48879
48954
  var IDENTITY_SOURCE_SKIPS = 1 | 4 | 8 | 16 | 32 | 64 | 128 | 4096;
48880
48955
  function readSources(value) {