peachsim 0.1.2209 → 0.1.2213

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 (141) hide show
  1. package/cli/command-registry.ts +1 -0
  2. package/cli/commands/inspect/settling.ts +1 -1
  3. package/cli/commands/map.ts +576 -0
  4. package/cli/commands/runtime.ts +1 -1
  5. package/cli/main.ts +6 -0
  6. package/cli/outbound-endpoints.ts +11 -0
  7. package/dist-lib/agent-daemon-client.cjs +1 -1
  8. package/dist-lib/agent-events.cjs +1 -1
  9. package/dist-lib/attached-projects.cjs +1 -1
  10. package/dist-lib/auth/shared-session.cjs +1 -1
  11. package/dist-lib/backend-origin.cjs +1 -1
  12. package/dist-lib/beta.cjs +1 -1
  13. package/dist-lib/beta.mjs +1 -1
  14. package/dist-lib/bridge-constants.cjs +1 -1
  15. package/dist-lib/bridge-contract-input.cjs +1 -1
  16. package/dist-lib/bridge-contract-input.mjs +1 -1
  17. package/dist-lib/bridge-contract.cjs +1 -1
  18. package/dist-lib/bridge-contract.mjs +1 -1
  19. package/dist-lib/bundle-channel.cjs +282 -53
  20. package/dist-lib/capture-contract.cjs +1 -1
  21. package/dist-lib/capture-contract.mjs +1 -1
  22. package/dist-lib/cloud-contract.cjs +1 -1
  23. package/dist-lib/cloud-contract.mjs +1 -1
  24. package/dist-lib/cloud-test-args.cjs +1 -1
  25. package/dist-lib/cloud-test-args.mjs +1 -1
  26. package/dist-lib/cloud.cjs +1 -1
  27. package/dist-lib/cloud.mjs +1 -1
  28. package/dist-lib/config.cjs +1 -1
  29. package/dist-lib/config.mjs +1 -1
  30. package/dist-lib/detox/index.cjs +6 -3
  31. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  32. package/dist-lib/expo-swift-bundle.cjs +280 -51
  33. package/dist-lib/expo-swift-metadata.cjs +1 -1
  34. package/dist-lib/expo-swift-metadata.mjs +1 -1
  35. package/dist-lib/home-paths.cjs +1 -1
  36. package/dist-lib/host/bridge-host.cjs +1264 -856
  37. package/dist-lib/host/fetch-proxy-handler.cjs +21 -5
  38. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  39. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  40. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  41. package/dist-lib/host/websocket-proxy.cjs +1 -1
  42. package/dist-lib/index.cjs +1966 -752
  43. package/dist-lib/jump-to-source-babel.cjs +1 -1
  44. package/dist-lib/jump-to-source-native.cjs +1 -1
  45. package/dist-lib/kotlin-host.cjs +1 -1
  46. package/dist-lib/menu.cjs +1 -1
  47. package/dist-lib/menu.mjs +1 -1
  48. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  49. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  50. package/dist-lib/metro-production-bundle.cjs +1 -1
  51. package/dist-lib/metro-production-bundle.mjs +1 -1
  52. package/dist-lib/metro.cjs +1806 -593
  53. package/dist-lib/native-app-identity-project.cjs +19 -3
  54. package/dist-lib/native-app-identity-project.mjs +19 -3
  55. package/dist-lib/native-app-identity.cjs +1 -1
  56. package/dist-lib/native-app-identity.mjs +1 -1
  57. package/dist-lib/native-firebase-metadata.cjs +1 -1
  58. package/dist-lib/native-firebase-metadata.mjs +1 -1
  59. package/dist-lib/pdfium-raster.cjs +1 -1
  60. package/dist-lib/pdfium-raster.mjs +1 -1
  61. package/dist-lib/plist.cjs +1 -1
  62. package/dist-lib/plist.mjs +1 -1
  63. package/dist-lib/profiles.cjs +1 -1
  64. package/dist-lib/public-brand.cjs +1 -1
  65. package/dist-lib/public-origins-lib-esm.json +25 -24
  66. package/dist-lib/public-origins-lib.json +83 -53
  67. package/dist-lib/react-native-host-modules.cjs +1 -1
  68. package/dist-lib/react-native-host-modules.mjs +1 -1
  69. package/dist-lib/reap-browser.cjs +1 -1
  70. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  71. package/dist-lib/sdk.cjs +2 -2
  72. package/dist-lib/sdk.mjs +2 -2
  73. package/dist-lib/skills.cjs +1800 -1334
  74. package/dist-lib/swift-compile.cjs +58 -12
  75. package/dist-lib/swift-compile.mjs +57 -12
  76. package/dist-lib/swift-package.cjs +1 -1
  77. package/dist-lib/swift-package.mjs +1 -1
  78. package/dist-lib/swift-submit.cjs +1 -1
  79. package/dist-lib/swift-submit.mjs +1 -1
  80. package/dist-lib/swift-toolchain.cjs +1 -1
  81. package/dist-lib/swift.cjs +1 -1
  82. package/dist-lib/vite-swift.cjs +257 -47
  83. package/dist-lib/vite.cjs +1530 -303
  84. package/dist-lib/worklet-executable.cjs +1 -1
  85. package/dist-lib/worklet-executable.mjs +1 -1
  86. package/dist-types/packages/peach-engine/src/engine/font-config.d.ts +1 -1
  87. package/dist-types/packages/peach-engine/src/engine/node.d.ts +1 -0
  88. package/kotlin/sdk.tar.gz +0 -0
  89. package/package.json +1 -1
  90. package/runtime-companion.json +1 -1
  91. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/CoreData.apinotes +35 -0
  92. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/CoreData.h +8 -0
  93. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSAttributeDescription.h +30 -0
  94. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSEntityDescription.h +14 -0
  95. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSExpressionDescription.h +10 -0
  96. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSFetchIndexDescription.h +13 -0
  97. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSFetchIndexElementDescription.h +18 -0
  98. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSManagedObject.h +11 -0
  99. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSManagedObjectContext.h +19 -0
  100. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSManagedObjectID.h +2 -0
  101. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSManagedObjectModel.h +3 -0
  102. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSMergePolicy.h +17 -0
  103. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSPersistentStore.h +8 -0
  104. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSPersistentStoreCoordinator.h +6 -0
  105. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSPropertyDescription.h +13 -0
  106. package/sdk/ios/System/Library/Frameworks/CoreData.framework/Headers/NSRelationshipDescription.h +21 -0
  107. package/sdk/ios/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h +2 -0
  108. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UIImage.h +1 -10
  109. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes +21 -0
  110. package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UINibLoading.h +1 -1
  111. package/sdk/ios/System/Library/Frameworks/UIKitTypes.framework/Headers/UIKitTypes.h +11 -0
  112. package/sdk/ios/usr/lib/swift/Combine.swiftmodule/arm64-apple-ios-simulator.swiftinterface +18 -0
  113. package/sdk/ios/usr/lib/swift/Foundation.swiftmodule/arm64-apple-ios-simulator.swiftinterface +1 -0
  114. package/sdk/ios/usr/lib/swift/SwiftUI.swiftmodule/arm64-apple-ios-simulator.swiftinterface +19 -0
  115. package/sdk/ios/usr/lib/swift/SwiftUICore.swiftmodule/arm64-apple-ios-simulator.swiftinterface +4 -0
  116. package/sdk/ios/usr/lib/swift/UIKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +4 -0
  117. package/sdk/ios/wasm/include/pthread.h +1 -0
  118. package/sdk/ios/wasm/include/signal.h +2 -2
  119. package/sdk/native-hashes.json +3 -3
  120. package/skills/contrast/SKILL.md +1 -0
  121. package/src/home-paths.ts +1 -1
  122. package/src/host/bridge-host.ts +101 -97
  123. package/src/metro-plugin.ts +4 -1
  124. package/src/native-static-libraries.ts +7 -0
  125. package/src/react-native-coverage/native-source-ranges-file.ts +1 -1
  126. package/src/runtime-assets.ts +0 -1
  127. package/src/runtime-delivery.ts +1 -1
  128. package/src/runtime-packs.ts +212 -0
  129. package/src/swift-compile.ts +48 -10
  130. package/src/swift-host.ts +22 -3
  131. package/src/swift-objc-compile.ts +1 -1
  132. package/src/swift-objc-import.ts +32 -2
  133. package/src/swift-objc-standin.ts +1 -1
  134. package/src/swift-packages.ts +53 -28
  135. package/src/swift-pdf-raster.ts +60 -4
  136. package/src/swift-shipped-archives.json +44 -0
  137. package/src/swift-shipped-binaries.ts +12 -0
  138. package/src/swift-standin-config.ts +4 -2
  139. package/src/swift-standin-emit.ts +9 -3
  140. package/src/swift-standins.ts +75 -8
  141. package/src/vite-plugin-one.ts +4 -1
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2209 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2213 | (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": "4b7d4a715cdaf57468ead23f2ff9dce76d02c6a888d73d144d4baa2ae571ba3c", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "25505683ca29a0b380413bf2a5026d4967eacf886e35bc11ece6e15317e5bb02", "home-paths.ts": "673205c02bbc8e342a9b43585a3a1b5f6b64eb5fb474e1a8647e9d2c2e62e67d", "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": "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": "4b7d4a715cdaf57468ead23f2ff9dce76d02c6a888d73d144d4baa2ae571ba3c", "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" };
43
43
  }
44
44
  });
45
45
 
@@ -7148,7 +7148,7 @@ function emitSwiftStandin(sourceGraphs, options) {
7148
7148
  const coder = members2.some((member) => leaf(member) === "init(coder:)");
7149
7149
  if (designated2 && !coder && externalRoot(id) !== "NSObject" && externalRoot(id) !== null)
7150
7150
  emit(
7151
- `${inner}public required init?(coder: NSCoder) { ${options.inert ? "return nil" : trap(`${path51}.init(coder:)`)} }`
7151
+ `${inner}public required init${options.coderNonfailable?.has(path51) ? "" : "?"}(coder: NSCoder) { ${options.inert && !options.coderNonfailable?.has(path51) ? "return nil" : trap(`${path51}.init(coder:)`)} }`
7152
7152
  );
7153
7153
  if (designated2 && !members2.some((member) => leaf(member) === "init()") && [...superChain(id)].some(
7154
7154
  (at) => options.requiredInits?.has(`${pathOf(byId.get(at))}.init()`)
@@ -7329,15 +7329,18 @@ function emitSwiftStandin(sourceGraphs, options) {
7329
7329
  const { 2: rest } = LEADING_ATTRS.exec(text(member));
7330
7330
  const decl = rest.replace(/^(?:weak |unowned )/, "").replace(/^((?:static )?)let /, "$1var ");
7331
7331
  const witness = `${owner2}.${leaf(member)}`;
7332
+ if (options.forcedOverride?.has(witness)) return;
7332
7333
  const body = options.inert ? inertBody(member) : trap(witness);
7333
7334
  if (member.kind.identifier === "swift.property" || member.kind.identifier === "swift.type.property") {
7334
7335
  const parsed = splitAccessors(decl);
7335
7336
  const setter = parsed.settable ? ` ${parsed.nonmutating ? "nonmutating " : ""}set { ${body} }` : "";
7336
- emit(
7337
+ emitAt(
7338
+ witness,
7337
7339
  `${indent2}${visibility} ${parsed.decl} { get${parsed.effects} { ${body} }${setter} }`
7338
7340
  );
7339
7341
  } else
7340
- emit(
7342
+ emitAt(
7343
+ witness,
7341
7344
  `${indent2}${member.kind.identifier === "swift.init" ? "public required " : visibility + " "}${stripDefaults(decl)} { ${body} }`
7342
7345
  );
7343
7346
  };
@@ -7773,7 +7776,7 @@ function iosDeploymentMinimum(version2) {
7773
7776
  if (!parts) return void 0;
7774
7777
  return Number(parts[1]) * 1e4 + Number(parts[2] ?? 0) * 100 + Number(parts[3] ?? 0);
7775
7778
  }
7776
- var headerFiles = (dir) => import_node_fs7.default.readdirSync(dir, { recursive: true, encoding: "utf8" }).filter((file) => file.endsWith(".h")).sort();
7779
+ var headerFiles = (dir) => import_node_fs7.default.readdirSync(dir, { recursive: true, encoding: "utf8" }).filter((file) => file.endsWith(".h") || file.endsWith(".hh")).sort();
7777
7780
  function moduleMapHeaders(modulemap, directoryHeaders = []) {
7778
7781
  const tokens2 = moduleMapTokens(import_node_fs7.default.readFileSync(modulemap, "utf8"));
7779
7782
  const open = [];
@@ -14998,6 +15001,9 @@ init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
14998
15001
  // ../contrast-runtime-delivery/src/version.ts
14999
15002
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
15000
15003
 
15004
+ // ../contrast-runtime-delivery/src/packs.ts
15005
+ init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
15006
+
15001
15007
  // ../contrast-runtime-delivery/src/index.ts
15002
15008
  async function installVerifiedTarball(tarball) {
15003
15009
  const { destDir, installedMarker, signal } = tarball;
@@ -16049,10 +16055,25 @@ function swiftClangImporterFlags(flags) {
16049
16055
  (flag) => flag !== "-fobjc-arc" && flag !== "-fno-objc-arc" && !/^-std=(?:c(?!\+\+)|gnu(?!\+\+)|iso9899:)/.test(flag)
16050
16056
  );
16051
16057
  }
16052
- function swiftObjCModuleMap(module2, headers) {
16058
+ var SWIFT_SUBMODULE_IMPORT = /^[ \t]*(?:@\w+(?:\([^)]*\))?[ \t]+)*import[ \t]+([A-Za-z_]\w*)\.([A-Za-z_]\w*)[ \t]*(?:\/\/.*)?$/gm;
16059
+ function swiftSubmoduleImports(sources) {
16060
+ const imports2 = /* @__PURE__ */ new Map();
16061
+ for (const source of sources)
16062
+ for (const [, module2, submodule] of source.matchAll(SWIFT_SUBMODULE_IMPORT)) {
16063
+ const names = imports2.get(module2) ?? /* @__PURE__ */ new Set();
16064
+ names.add(submodule);
16065
+ imports2.set(module2, names);
16066
+ }
16067
+ return imports2;
16068
+ }
16069
+ function swiftObjCModuleMap(module2, headers, submodules = /* @__PURE__ */ new Set()) {
16070
+ const header = (file) => `header ${JSON.stringify(file)}`;
16071
+ const stem = (file) => file.slice(file.lastIndexOf("/") + 1).replace(/\.[^.]*$/, "");
16053
16072
  return [
16054
16073
  `module ${module2} {`,
16055
- ...headers.map((header) => ` header ${JSON.stringify(header)}`),
16074
+ ...headers.map(
16075
+ (file) => submodules.has(stem(file)) ? ` module ${stem(file)} { ${header(file)} export * }` : ` ${header(file)}`
16076
+ ),
16056
16077
  " export *",
16057
16078
  "}",
16058
16079
  ""
@@ -17431,7 +17452,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
17431
17452
  var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
17432
17453
  var MULTI_MANIFEST_VERSION = 68;
17433
17454
  var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
17434
- var compilerSourceDigest = true ? "f113c3b74986e3d582dde643cb5771f750e5c836703fb20a79a1d67a53884748" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
17455
+ var compilerSourceDigest = true ? "4646bbe2e0cd2e48e498f51fd3d0d5ea29ecd5e6163fdf3afe8d64d4368022d7" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
17435
17456
  function swiftArtifactHash(input, release, moduleRoot) {
17436
17457
  const hash = (0, import_node_crypto13.createHash)("sha256");
17437
17458
  hash.update(`swift-compile
@@ -19020,6 +19041,20 @@ function stripCCode(source) {
19020
19041
  }
19021
19042
  return code;
19022
19043
  }
19044
+ var wasmMacroEnvironment = {
19045
+ ...emptyMacroEnvironment,
19046
+ defines: /* @__PURE__ */ new Map([
19047
+ ["__wasm__", "1"],
19048
+ ["__wasm32__", "1"],
19049
+ ["__wasi__", "1"]
19050
+ ])
19051
+ };
19052
+ function swiftCTakesReturnAddress(source) {
19053
+ if (!source.includes("__builtin_return_address")) return false;
19054
+ return /\b__builtin_return_address\s*\(/.test(
19055
+ cActiveCode(stripCCode(source), wasmMacroEnvironment)
19056
+ );
19057
+ }
19023
19058
  function swiftCDefinedNames(sources) {
19024
19059
  const names = /* @__PURE__ */ new Set();
19025
19060
  for (const source of sources)
@@ -19317,6 +19352,11 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
19317
19352
  clangImportedModules.add(name3);
19318
19353
  }
19319
19354
  }
19355
+ const submoduleImports = swiftSubmoduleImports(
19356
+ Object.entries(input.files).flatMap(
19357
+ ([file, contents]) => file.endsWith(".swift") ? [contents] : []
19358
+ )
19359
+ );
19320
19360
  const headerDirectory = import_node_path27.default.join(layout2.root, ".build", "peach-cxx-headers");
19321
19361
  const flattenedHeaders = /* @__PURE__ */ new Set();
19322
19362
  if ((0, import_node_fs27.existsSync)(headerDirectory)) {
@@ -19702,7 +19742,8 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
19702
19742
  );
19703
19743
  const moduleContents = originalModuleMap ? input.files[originalModuleMap[1]] : swiftpmModuleMap?.contents ?? packageModuleMap?.[1] ?? swiftObjCModuleMap(
19704
19744
  swiftTargetModuleName(target.name),
19705
- roots2.map((file) => import_node_path27.default.join(layout2.root, file))
19745
+ roots2.map((file) => import_node_path27.default.join(layout2.root, file)),
19746
+ submoduleImports.get(swiftTargetModuleName(target.name))
19706
19747
  );
19707
19748
  if (moduleContents === void 0)
19708
19749
  throw new Error("missing original module map " + modulemap);
@@ -20027,10 +20068,14 @@ module ${moduleName}.Swift {
20027
20068
  header ${JSON.stringify(import_node_path27.default.join(headerDirectory, name3 + "-Swift.h"))}
20028
20069
  requires objc
20029
20070
  }
20030
- ` : swiftObjCModuleMap(moduleName, [
20031
- ...(input.nativeTargets?.find((target) => target.name === name3)?.publicHeaders ?? []).map((header) => import_node_path27.default.join(layout2.root, header)),
20032
- import_node_path27.default.join(headerDirectory, name3 + "-Swift.h")
20033
- ])
20071
+ ` : swiftObjCModuleMap(
20072
+ moduleName,
20073
+ [
20074
+ ...(input.nativeTargets?.find((target) => target.name === name3)?.publicHeaders ?? []).map((header) => import_node_path27.default.join(layout2.root, header)),
20075
+ import_node_path27.default.join(headerDirectory, name3 + "-Swift.h")
20076
+ ],
20077
+ submoduleImports.get(moduleName)
20078
+ )
20034
20079
  );
20035
20080
  nativeHeaderFlags.push("-fmodule-map-file=" + modulemap);
20036
20081
  }
@@ -21021,8 +21066,12 @@ async function buildFrameworkProducts(scratch2, args) {
21021
21066
  const linked = frameworkLinkClosure(scratch2, linkedTargets.targets);
21022
21067
  const objects = linked.objects;
21023
21068
  if (linked.modules.has("UniformTypeIdentifiers")) {
21024
- const object4 = import_node_path27.default.join(scratch2, "UniformTypeIdentifiers-NativeConstants.o");
21025
- if (!(0, import_node_fs27.existsSync)(object4)) {
21069
+ const constantsDir = import_node_path27.default.join(scratch2, "uniform-type-constants");
21070
+ const constantsStamp = import_node_path27.default.join(constantsDir, ".complete");
21071
+ const object4 = import_node_path27.default.join(constantsDir, "UniformTypeIdentifiers-NativeConstants.o");
21072
+ if (!(0, import_node_fs27.existsSync)(constantsStamp) || (0, import_node_fs27.readFileSync)(constantsStamp, "utf8") !== args.frameworkKey) {
21073
+ (0, import_node_fs27.rmSync)(constantsDir, { recursive: true, force: true });
21074
+ (0, import_node_fs27.mkdirSync)(constantsDir);
21026
21075
  const sdkPaths2 = swiftSdkPaths(args.moduleRoot, args.toolchainBin);
21027
21076
  compileUniformTypeConstants({
21028
21077
  bin: args.toolchainBin,
@@ -21030,8 +21079,9 @@ async function buildFrameworkProducts(scratch2, args) {
21030
21079
  darwin: sdkPaths2.darwin,
21031
21080
  packageRoot: args.moduleRoot,
21032
21081
  minimum: darwinRecordsMinimum(),
21033
- out: scratch2
21082
+ out: constantsDir
21034
21083
  });
21084
+ (0, import_node_fs27.writeFileSync)(constantsStamp, args.frameworkKey);
21035
21085
  }
21036
21086
  objects.push(object4);
21037
21087
  linked.owners.set(object4, "UniformTypeIdentifiers");
@@ -30139,6 +30189,62 @@ init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
30139
30189
  // src/numbered-lock.ts
30140
30190
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
30141
30191
 
30192
+ // src/swift-shipped-binaries.ts
30193
+ init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
30194
+
30195
+ // src/swift-shipped-archives.json
30196
+ var swift_shipped_archives_default = {
30197
+ AppCheckCore: "a18d4e5aff27ff4b9bce8d6e73e55ccf1d11515311e219aa4473319cdff3187b",
30198
+ AppLovinSDK: "c00f052c4b15766a6a2734e2b3685234e6bd28dbc47fbe7cbc3edbf56f701d5c",
30199
+ AppsFlyerLib: "13bae495e63e22579dd9525a1c9e88d8eedc78b4586979b7e2d492cfd3efbe1f",
30200
+ FBAEMKit: "ceaf685683c6a23ae4893150d0d770aeeaec34811ac8c146b3aa351beade5fa0",
30201
+ FBAudienceNetwork: "4d84bf1e404a83852a93af2ae73e22e45bb2b11e0a9a445c3b461173a5d6aec3",
30202
+ FBLPromises: "3544fb457e7f60c69740cdd26617a75bdd613943e948becca643022c7edd76c0",
30203
+ FBSDKCoreKit: "1577edd62ec0c172928befed3b309dc59ae8915d2aaad091460d9d1be5ddc13d",
30204
+ FBSDKCoreKit_Basics: "c780833f204f9ec6eab70a3758a45c5c78bfb6f4e590289ccf395497f204cac1",
30205
+ FirebaseAnalytics: "e3253a494375c5174d20cb81925e20afa1ff6b1419125cb608d39b092b53ff2a",
30206
+ FirebaseAppCheck: "af82d72727d55d14f65eee96845d4d9495e4e603b4673709d6f3448b9595cc63",
30207
+ FirebaseAppCheckInterop: "7ffd54e6fe187bf8cd714e3d863e0095f7cbbb0fb802adb87a40c552de7cffcc",
30208
+ FirebaseAuth: "fcde09db8d45ffba67802e81c17b8046db6b56568226ace3fca898983b08c968",
30209
+ FirebaseAuthInterop: "e8e6f4fb42b3fa76c2bade7a522ab0f224558d27d2321175c791d307541787a8",
30210
+ FirebaseCore: "30e3505c715e17682c1dc20bb26ba475e99e6981a9a0dba3cf9352eea632fc1d",
30211
+ FirebaseCoreExtension: "e37ce2abcd4c218ab5426da78cbe7ab41f79ee7eba1d02dd4b0cde952ed2c4a0",
30212
+ FirebaseCoreInternal: "72a15c0c63585faf93e9ffa91e8a8c1c50b24749405804ffae19a29ec05b07ab",
30213
+ FirebaseCrashlytics: "e03c71913efd97678b895abb1e968c83e58b3fbd7955a81ec6e6581b95db16e3",
30214
+ FirebaseFirestore: "f7a1bb7fc4a2fb09298b514114d6aaca9a4f00fd8868667524a05bc4563bf1fd",
30215
+ FirebaseFirestoreInternal: "d9595a1784beaf5cd4a8e0dda0f4364ddfa6b536ad60f82746d81d14dce037a3",
30216
+ FirebaseInstallations: "141e313325bab001f2dbb79dc8a433f884f4c4a12a5feb665e6958098d637f7b",
30217
+ FirebaseRemoteConfig: "e0ae6d626a423d535bc67216f9f0cd66f98f1c0fb4b5bf88074d4496733e2db1",
30218
+ FirebaseRemoteConfigInterop: "794f599eb4232058715b606fa671639c8cc5d821655a0f739651d17c5ef65c37",
30219
+ FirebaseSessions: "1781d72e47dac0fc7a532412641021730bd5b659135633cd9ef7b97ccd31b0ce",
30220
+ FirebaseSharedSwift: "8d63b09a517733ef3a58390bf1e8cf054f058bdd618bb4f19a1f4b5a0b4f09e5",
30221
+ FirebaseStorage: "636b33180dd5ad60b4878357691fe6472cf3bd57ec691e9d661c5444f523df66",
30222
+ GTMSessionFetcher: "f58dc2bd9db39defd73f0f67e7a11893a0c6e6f0ba45cd83cf420b2b3c15f1bd",
30223
+ GoogleAdsOnDeviceConversion: "31a5a1f5204f4844a480d3889b6ebe2e69473ef32b868935c51812c0483cb08b",
30224
+ GoogleAppMeasurement: "5741e6334392e0345f1b5896111ffef4d5a78859970f5e197fa0b7d881165305",
30225
+ GoogleAppMeasurementIdentitySupport: "b70cb033eeb002ed1c5a8140953ccb3be0221ca754c05fe450ed9c9c6547f274",
30226
+ GoogleDataTransport: "7d08050419e0906f13039cc4d2dd69be075234c0bf5bbb34df9dd4891e48831d",
30227
+ GoogleMobileAds: "f2c09c60ee331ce029f563304ad73a481d57ace0d4bc11ce33a2bf59497c59bf",
30228
+ GoogleUtilities: "37a9d3d3810dad763a8a79bd4c7cc4c37b386240725aca07f45dba1826676c8c",
30229
+ Intercom: "fc8251f24b305b91f83304d4dffaf1a90c424a7bc37be8b595dd1fc5cff566ea",
30230
+ Promises: "6d8f1a4b3d561d67adfc2026834779b05685d1cdacea6e83c70d0641c39f24de",
30231
+ RecaptchaInterop: "cf5cc62ebc237b34d5267c1190d18f33b424dbc7f81713f127108d0ad8a592cf",
30232
+ RiveRuntime: "72b6ff5c5a1d153c9cdbea9a917c09be557cfcb1fafa02853fa06b0268551710",
30233
+ absl: "fff0388cf074c69a2da4bc197a005da0b8e5c23ebdcfa383600c540a342f9df1",
30234
+ grpc: "918737c9f8f93e14127b3894e31c7a0522475f2247b74f87d8166dff3a6bafb0",
30235
+ grpcpp: "b83f85e0256cf06df00cf0ed728b5c0d68373ca401742877935771447450b90a",
30236
+ leveldb: "5521a6e6e4cd01b2e31b099d4341f1bccae7e8ba43de648b028928573daf8bb4",
30237
+ nanopb: "a7fafe2e4e16d99de4c58f72e22dcc53221885aa6d678d1270123e4b01badfa3",
30238
+ openssl_grpc: "b2aaede82457cdd15915762a4f57b38e28ba0f47b9b48556a7e0c46881973096"
30239
+ };
30240
+
30241
+ // src/swift-shipped-binaries.ts
30242
+ var SHIPPED_ARCHIVES = new Map(Object.entries(swift_shipped_archives_default));
30243
+ function shippedBinaryDiffers(target, checksum) {
30244
+ const shipped = SHIPPED_ARCHIVES.get(target);
30245
+ return shipped !== void 0 && checksum !== null && checksum !== shipped;
30246
+ }
30247
+
30142
30248
  // src/swift-packages.ts
30143
30249
  var swiftBinaryOnDisk = (binary) => binary.url !== null || import_node_fs40.default.existsSync(binary.dir);
30144
30250
  var SWIFT_PLACEHOLDER_PACKAGES = /* @__PURE__ */ new Map();
@@ -30151,16 +30257,22 @@ function remoteSwiftCheckouts(root) {
30151
30257
  return import_node_path41.default.join(import_node_fs40.default.realpathSync(cacheDir()), "swift-packages", key2, "checkouts");
30152
30258
  }
30153
30259
  var UNSUPPORTED_NATIVE = /\.(s|S)$/;
30154
- function assemblySources(files2, target) {
30260
+ function unlowerableSources(files2, target) {
30261
+ if (target.declaresWasiNativeSettings) return [];
30262
+ return [
30263
+ ...files2.filter((file) => UNSUPPORTED_NATIVE.test(file)),
30264
+ ...files2.filter(isSwiftNativeTranslationUnit).filter((file) => swiftCTakesReturnAddress(import_node_fs40.default.readFileSync(file, "utf8")))
30265
+ ];
30266
+ }
30267
+ function unloweredSources(files2, target) {
30155
30268
  if (target.type !== "regular") return null;
30156
- if (target.declaresWasiNativeSettings) return null;
30157
- const assembly = files2.filter((file) => UNSUPPORTED_NATIVE.test(file));
30158
- if (assembly.length === 0) return null;
30159
30269
  if (!files2.some(isSwiftNativeTranslationUnit)) return null;
30270
+ const unlowered = unlowerableSources(files2, target);
30271
+ if (unlowered.length === 0) return null;
30160
30272
  const headers = import_node_path41.default.resolve(target.dir, target.publicHeadersPath);
30161
30273
  if (!files2.some((file) => file.startsWith(`${headers}${import_node_path41.default.sep}`) && file.endsWith(".h")))
30162
30274
  return null;
30163
- return assembly;
30275
+ return unlowered;
30164
30276
  }
30165
30277
  var BINARY = "is a binary framework";
30166
30278
  var blockers = (reasons) => [...new Set(reasons.flat())];
@@ -30325,9 +30437,9 @@ function resolveSwiftPackages(options) {
30325
30437
  if (target.type === "macro") return preservePackage(pkg, [name3], "host");
30326
30438
  const files2 = target.type === "regular" || target.type === "system" ? swiftTargetFiles(pkg.manifest, target) : [];
30327
30439
  const gap = options.binaryGaps?.get(name3);
30328
- const assembly = target.declaresWasiNativeSettings ? [] : files2.filter((file) => UNSUPPORTED_NATIVE.test(file));
30440
+ const unlowerable = unlowerableSources(files2, target);
30329
30441
  const placeholder = placeholderPackage(pkg);
30330
- const ownReason = target.type === "binary" ? `${name3} ${BINARY}${gap ? `; ${gap}` : ""}` : placeholder && gap ? `${name3} stands in as a placeholder (${placeholder}), and ${gap}` : target.type !== "regular" && target.type !== "system" ? `${name3} is a ${target.type} target` : assembly.length > 0 ? `${name3} is an assembly target with no wasm32 lowering: ${assembly.map((file) => import_node_path41.default.relative(pkg.manifest.dir, file)).join(", ")}${gap ? `; ${gap}` : ""}` : null;
30442
+ const ownReason = target.type === "binary" ? `${name3} ${BINARY}${gap ? `; ${gap}` : ""}` : placeholder && gap ? `${name3} stands in as a placeholder (${placeholder}), and ${gap}` : target.type !== "regular" && target.type !== "system" ? `${name3} is a ${target.type} target` : unlowerable.length > 0 ? `${name3} has native sources with no wasm32 lowering: ${unlowerable.map((file) => import_node_path41.default.relative(pkg.manifest.dir, file)).join(", ")}${gap ? `; ${gap}` : ""}` : null;
30331
30443
  const reasons = target.dependencies.map((dependency) => {
30332
30444
  if (dependency.kind === "target") return resolveTarget(pkg, dependency.name);
30333
30445
  const nested = resolveDependencyProduct(pkg, dependency);
@@ -30406,7 +30518,7 @@ function resolveSwiftPackages(options) {
30406
30518
  (file) => file.endsWith(".swift") && import_node_fs40.default.readFileSync(file, "utf8").trim() === ""
30407
30519
  ))
30408
30520
  return false;
30409
- if (providedTargets.has(name3) && assemblySources(files2, target)) return false;
30521
+ if (unloweredSources(files2, target)) return false;
30410
30522
  claimed.add(key2);
30411
30523
  providedTargets.delete(name3);
30412
30524
  for (const dependency of target.dependencies) {
@@ -30420,6 +30532,13 @@ function resolveSwiftPackages(options) {
30420
30532
  };
30421
30533
  const claimProduct = (pkg, product) => {
30422
30534
  const roots = pkg.manifest.products.get(product)?.targets ?? [];
30535
+ for (const root of roots) {
30536
+ const target = pkg.manifest.targets.get(root);
30537
+ if (target?.type === "binary" && !options.standinTargets?.has(root) && shippedBinaryDiffers(root, target.checksum)) {
30538
+ providedTargets.delete(root);
30539
+ providedProducts.delete(product);
30540
+ }
30541
+ }
30423
30542
  if (roots.map((name3) => claimTarget(pkg, name3)).some(Boolean))
30424
30543
  providedProducts.delete(product);
30425
30544
  };
@@ -30447,7 +30566,7 @@ function resolveSwiftPackages(options) {
30447
30566
  if (target.type === "executable") continue;
30448
30567
  const files2 = target.type === "regular" || target.type === "system" ? swiftTargetFiles(pkg.manifest, target) : [];
30449
30568
  const objc = target.type === "regular" && files2.some((file) => /\.(m|mm)$/.test(file));
30450
- const assembly = assemblySources(files2, target);
30569
+ const unlowered = unloweredSources(files2, target);
30451
30570
  const gap = placeholderPackage(pkg);
30452
30571
  const sources = files2.filter((file) => file.endsWith(".swift"));
30453
30572
  const release = (setting) => setting.configuration !== "debug";
@@ -30474,7 +30593,7 @@ function resolveSwiftPackages(options) {
30474
30593
  ]
30475
30594
  }
30476
30595
  });
30477
- else if (target.type === "binary" || objc || assembly)
30596
+ else if (target.type === "binary" || objc || unlowered)
30478
30597
  result.binaries.push({
30479
30598
  target: name3,
30480
30599
  source: pkg.source,
@@ -30488,8 +30607,8 @@ function resolveSwiftPackages(options) {
30488
30607
  import_node_path41.default.join(target.dir, target.publicHeadersPath)
30489
30608
  )
30490
30609
  },
30491
- ...assembly ? {
30492
- assemblySources: assembly.map(
30610
+ ...unlowered ? {
30611
+ unloweredSources: unlowered.map(
30493
30612
  (file) => import_node_path41.default.relative(pkg.manifest.dir, file)
30494
30613
  )
30495
30614
  } : {}
@@ -30746,7 +30865,7 @@ function sourceClosureDigest(srcDir, entrypoints) {
30746
30865
  return hash.digest("hex");
30747
30866
  }
30748
30867
  var standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
30749
- var STANDIN_SOURCE_DIGEST = true ? "30ee25efff915489853ffb5c34661d03b2ca480fc48fe80201fced1d4821577a" : standinSourceDigest();
30868
+ var STANDIN_SOURCE_DIGEST = true ? "f077081111b09ca27482cd53be422dae6cd1bd3a5fd2b2bdef48a83a9c0d6ca8" : standinSourceDigest();
30750
30869
 
30751
30870
  // src/swift-standins.ts
30752
30871
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -31094,6 +31213,13 @@ var NATIVE_STATIC_LIBRARY_RECIPES = [
31094
31213
  upstream: "b94213a11b3a2edadfae89f0c57a7f4ab72772c9",
31095
31214
  recipe: "a2642115a5eeb04559c9f1daaa4b4cbe4b1c211533b4cc80cb8339a4477af205",
31096
31215
  archive: "libsksg.a"
31216
+ },
31217
+ {
31218
+ name: "webgpu_dawn",
31219
+ nativeSha256: "95078993275bccc969b1dfa1ad0934cbacc05ae59e8aa2a6cc46ce93e97d4f69",
31220
+ upstream: "3d786993a7ded64c4ebb4884b9b079db9ad0e580",
31221
+ recipe: "c55468cc976e837ad894133f2231beb7d1ed64633af7b457b8a2610d7df45994",
31222
+ archive: "libwebgpu_dawn.a"
31097
31223
  }
31098
31224
  ];
31099
31225
  function nativeStaticLibraryEntry(recipe, compiler, sdk, distribution) {
@@ -32607,7 +32733,7 @@ function interfaceEnumValues(graphs, interfaceText) {
32607
32733
  const declarations = [
32608
32734
  ...interfaceText.matchAll(
32609
32735
  new RegExp(
32610
- `^([ \\t]*)(?:@[\\w.]+(?:\\([^)]*\\))?\\s+)*(?:nonisolated\\s+)?(?:public|open)\\s+enum\\s+${name3}\\s*:\\s*(?:Swift\\.)?U?Int(?:8|16|32|64)?\\b[^{]*\\{[ \\t]*$`,
32736
+ `^([ \\t]*)(?:@[\\w.]+(?:\\([^)]*\\))?\\s+)*(?:nonisolated\\s+)?(?:public|open)\\s+enum\\s+${name3}\\s*:\\s*(?:Swift\\.)?(?:U?Int(?:8|16|32|64)?|IntegerLiteralType)\\b[^{]*\\{[ \\t]*$`,
32611
32737
  "gm"
32612
32738
  )
32613
32739
  )
@@ -32706,9 +32832,26 @@ function mixedStandin(surface, binary, toolchain, work, behavior, frameworkDirs,
32706
32832
  view.protocolProperties ?? /* @__PURE__ */ new Map(),
32707
32833
  null,
32708
32834
  view.inheritedConformances,
32709
- interfaceProjections(view.graphs, interfaceText)
32835
+ interfaceProjections(view.graphs, interfaceText),
32836
+ [],
32837
+ externalConformances(surface.module, interfaceText)
32710
32838
  );
32711
32839
  }
32840
+ function externalConformances(module2, interfaceText) {
32841
+ const lines = /* @__PURE__ */ new Set();
32842
+ for (const match of interfaceText.matchAll(
32843
+ /^(?:@\w+\s+)*extension\s+([\w.]+)\s*:\s*([^{\n]+?)\s*\{/gm
32844
+ )) {
32845
+ const [, extended, conformances] = match;
32846
+ if (extended.startsWith(`${module2}.`) || /\bwhere\b/.test(conformances)) continue;
32847
+ const own = conformances.split(",").map((name3) => name3.trim()).filter((name3) => name3.startsWith(`${module2}.`));
32848
+ const type = extended.startsWith("Swift.") ? extended : extended.split(".").slice(1).join(".");
32849
+ if (own.length > 0 && type) lines.add(`extension ${type} : ${own.join(", ")} {}
32850
+ `);
32851
+ }
32852
+ return lines.size > 0 ? `
32853
+ ${[...lines].join("")}` : "";
32854
+ }
32712
32855
  var WASM_EH_FLAGS = ["-Xllvm", "-wasm-enable-eh"];
32713
32856
  function wasmFlags(toolchain, imports2) {
32714
32857
  const { sysroot, darwin, resources, cFlags } = swiftSdkPaths(
@@ -32804,7 +32947,7 @@ function objcStandin(surface, binary, toolchain, work, behavior, frameworks, sib
32804
32947
  }
32805
32948
  var OBJC_UNREPRESENTABLE = "cannot be marked '@objc' because its type cannot be represented in Objective-C";
32806
32949
  var INERT_VALUE = /missing argument|cannot be constructed|has no member 'init'|no exact matches in call to initializer|cannot convert return expression|does not conform to '|extra argument|takes no arguments|could not be inferred|cannot infer/;
32807
- function graphStandin(module2, graphs, values, wasm, binary, toolchain, work, requiredInits2, declared, imports2 = [], requireSwift = false, objcProperties = /* @__PURE__ */ new Map(), placeholder = null, inheritedConformances = /* @__PURE__ */ new Map(), projections = /* @__PURE__ */ new Map(), dependencyGraphs = []) {
32950
+ function graphStandin(module2, graphs, values, wasm, binary, toolchain, work, requiredInits2, declared, imports2 = [], requireSwift = false, objcProperties = /* @__PURE__ */ new Map(), placeholder = null, inheritedConformances = /* @__PURE__ */ new Map(), projections = /* @__PURE__ */ new Map(), dependencyGraphs = [], trailer = "") {
32808
32951
  const paths = new Set(
32809
32952
  graphs.flatMap(
32810
32953
  (graph) => graph.symbols.map((symbol2) => symbol2.pathComponents.join("."))
@@ -32845,6 +32988,8 @@ function graphStandin(module2, graphs, values, wasm, binary, toolchain, work, re
32845
32988
  const plain = /* @__PURE__ */ new Set();
32846
32989
  const unobjc = /* @__PURE__ */ new Set();
32847
32990
  const trapped = /* @__PURE__ */ new Set();
32991
+ const forced = /* @__PURE__ */ new Set();
32992
+ const nonfailable = /* @__PURE__ */ new Set();
32848
32993
  const unconformed = /* @__PURE__ */ new Map();
32849
32994
  const objcProtocols = new Set(
32850
32995
  graphs.flatMap(
@@ -32854,7 +32999,7 @@ function graphStandin(module2, graphs, values, wasm, binary, toolchain, work, re
32854
32999
  )
32855
33000
  );
32856
33001
  const file = import_node_path49.default.join(work, `${module2}.swift`);
32857
- const inert = binary.placeholder !== void 0 || binary.publicHeaders !== void 0 && binary.assemblySources === void 0;
33002
+ const inert = binary.placeholder !== void 0 || binary.publicHeaders !== void 0 && binary.unloweredSources === void 0;
32858
33003
  for (; ; ) {
32859
33004
  const { source, owners, skipped } = emitSwiftStandin(graphs, {
32860
33005
  module: module2,
@@ -32867,6 +33012,8 @@ function graphStandin(module2, graphs, values, wasm, binary, toolchain, work, re
32867
33012
  unobjc,
32868
33013
  unconformed,
32869
33014
  trapped,
33015
+ forcedOverride: forced,
33016
+ coderNonfailable: nonfailable,
32870
33017
  inert,
32871
33018
  imports: [...placeholder?.peachImports ?? [], ...imports2],
32872
33019
  family: [...imports2, ...placeholder?.peachImports ?? []],
@@ -32886,7 +33033,7 @@ function graphStandin(module2, graphs, values, wasm, binary, toolchain, work, re
32886
33033
  `Configured Swift behavior ${module2}.${entry.path} was not emitted: ${entry.reason}`
32887
33034
  );
32888
33035
  }
32889
- import_node_fs48.default.writeFileSync(file, source);
33036
+ import_node_fs48.default.writeFileSync(file, source + trailer);
32890
33037
  const check2 = (0, import_node_child_process29.spawnSync)(
32891
33038
  import_node_path49.default.join(toolchain.toolchainBin, "swiftc"),
32892
33039
  // emitting the module runs the diagnostics a typecheck skips, such as
@@ -32910,10 +33057,10 @@ function graphStandin(module2, graphs, values, wasm, binary, toolchain, work, re
32910
33057
  return {
32911
33058
  module: module2,
32912
33059
  target: binary.target,
32913
- files: { [`${module2}.swift`]: source },
33060
+ files: { [`${module2}.swift`]: source + trailer },
32914
33061
  ...imports2.length ? { dependencies: imports2 } : {}
32915
33062
  };
32916
- const before = omit.size + plain.size + unobjc.size + trapped.size + unconformed.size;
33063
+ const before = omit.size + plain.size + unobjc.size + trapped.size + unconformed.size + forced.size + nonfailable.size;
32917
33064
  const elsewhere = [];
32918
33065
  for (const match of check2.stderr.matchAll(/^(\S+?):(\d+):\d+: error: (.*)$/gm)) {
32919
33066
  const owner = match[1] === file ? owners[Number(match[2]) - 1] : void 0;
@@ -32936,14 +33083,22 @@ function graphStandin(module2, graphs, values, wasm, binary, toolchain, work, re
32936
33083
  throw new Error(
32937
33084
  `Configured Swift behavior ${module2}.${owner} does not typecheck: ${match[3]}`
32938
33085
  );
32939
- if (owner && /does not override any|overrides nothing/.test(match[3]))
33086
+ if (owner && /does not override any|overrides nothing|does not override a designated initializer/.test(
33087
+ match[3]
33088
+ ))
32940
33089
  plain.add(owner);
33090
+ else if (owner && /failable initializer 'init\(coder:\)' cannot override a non-failable/.test(
33091
+ match[3]
33092
+ ) && !nonfailable.has(owner))
33093
+ nonfailable.add(owner);
33094
+ else if (owner && /requires an 'override' keyword/.test(match[3]) && !forced.has(owner))
33095
+ forced.add(owner);
32941
33096
  else if (owner && inert && INERT_VALUE.test(match[3]) && !trapped.has(owner))
32942
33097
  trapped.add(owner);
32943
33098
  else if (owner) omit.set(owner, `rejected by swiftc: ${match[3]}`);
32944
33099
  else elsewhere.push(match[3]);
32945
33100
  }
32946
- if (omit.size + plain.size + unobjc.size + trapped.size + unconformed.size === before)
33101
+ if (omit.size + plain.size + unobjc.size + trapped.size + unconformed.size + forced.size + nonfailable.size === before)
32947
33102
  throw new Error(
32948
33103
  `its generated source does not typecheck: ${elsewhere.slice(0, 3).join("; ") || check2.stderr.trim().slice(0, 400)}`
32949
33104
  );
@@ -33757,7 +33912,7 @@ function standinGenerationInputs(binaries, toolchain, configuredBehavior = {}, s
33757
33912
  ...(binary.headerDependencies ?? []).map(
33758
33913
  (dependency) => `${swiftTargetModuleName(dependency.module)}\0${treeDigest(import_node_path49.default.join(binary.dir, dependency.path))}`
33759
33914
  ),
33760
- ...binary.assemblySources ?? []
33915
+ ...binary.unloweredSources ?? []
33761
33916
  ].join("\0") : swiftBinaryFramework(binary).digest
33762
33917
  );
33763
33918
  } catch {
@@ -34394,7 +34549,7 @@ function* xcodeObjCInputSteps(app, binaries, moduleRoot, products, sourceRoot =
34394
34549
  const binaryHeaders = binarySearch.flatMap((search) => search.headers);
34395
34550
  const configuration = app.configuration === "Debug" ? "debug" : "release";
34396
34551
  for (const binary of binaries) {
34397
- if (!binary.reached || binary.publicHeaders === void 0 || binary.assemblySources !== void 0)
34552
+ if (!binary.reached || binary.publicHeaders === void 0 || binary.unloweredSources !== void 0)
34398
34553
  continue;
34399
34554
  const manifest = swiftPackageManifest(binary.dir);
34400
34555
  const target = manifest.targets.get(binary.target);
@@ -35758,9 +35913,9 @@ guard let dest = CGImageDestinationCreateWithURL(output as CFURL, UTType.png.ide
35758
35913
  CGImageDestinationAddImage(dest, image, nil)
35759
35914
  guard CGImageDestinationFinalize(dest) else { exit(7) }
35760
35915
  `;
35761
- function rasterBinary() {
35762
- const tag = (0, import_node_crypto28.createHash)("sha256").update(RASTER_SWIFT).digest("hex").slice(0, 16);
35763
- const binary = import_node_path53.default.join(cacheDir(), `swift-pdf-raster-${tag}`);
35916
+ function rasterBinary(swift = RASTER_SWIFT, name3 = "swift-pdf-raster") {
35917
+ const tag = (0, import_node_crypto28.createHash)("sha256").update(swift).digest("hex").slice(0, 16);
35918
+ const binary = import_node_path53.default.join(cacheDir(), `${name3}-${tag}`);
35764
35919
  try {
35765
35920
  import_node_fs52.default.accessSync(binary, import_node_fs52.default.constants.X_OK);
35766
35921
  return binary;
@@ -35772,7 +35927,7 @@ function rasterBinary() {
35772
35927
  import_node_fs52.default.mkdtempSync(import_node_path53.default.join(import_node_os14.default.tmpdir(), "swift-pdf-raster-")),
35773
35928
  "raster.swift"
35774
35929
  );
35775
- import_node_fs52.default.writeFileSync(source, RASTER_SWIFT);
35930
+ import_node_fs52.default.writeFileSync(source, swift);
35776
35931
  try {
35777
35932
  (0, import_node_child_process32.execFileSync)("xcrun", ["swiftc", "-o", binary, source], { stdio: "pipe" });
35778
35933
  } finally {
@@ -35830,6 +35985,49 @@ function rasterizePdfFile(diskPath, pdfSha256) {
35830
35985
  import_node_fs52.default.rmSync(import_node_path53.default.dirname(out), { recursive: true, force: true });
35831
35986
  }
35832
35987
  }
35988
+ var RASTER_SVG_SWIFT = `import AppKit
35989
+ guard CommandLine.arguments.count == 4 else { exit(1) }
35990
+ let input = URL(fileURLWithPath: CommandLine.arguments[1])
35991
+ let scale = CGFloat(Double(CommandLine.arguments[2]) ?? 3.0)
35992
+ let output = URL(fileURLWithPath: CommandLine.arguments[3])
35993
+ guard let image = NSImage(contentsOf: input), image.size.width > 0, image.size.height > 0 else { exit(2) }
35994
+ let width = Int(ceil(image.size.width * scale))
35995
+ let height = Int(ceil(image.size.height * scale))
35996
+ if width > 12000 || height > 12000 { exit(3) }
35997
+ guard let rep = NSBitmapImageRep(bitmapDataPlanes: nil, pixelsWide: width, pixelsHigh: height, bitsPerSample: 8, samplesPerPixel: 4, hasAlpha: true, isPlanar: false, colorSpaceName: .deviceRGB, bytesPerRow: 0, bitsPerPixel: 0) else { exit(4) }
35998
+ guard let context = NSGraphicsContext(bitmapImageRep: rep) else { exit(5) }
35999
+ NSGraphicsContext.saveGraphicsState()
36000
+ NSGraphicsContext.current = context
36001
+ context.imageInterpolation = .high
36002
+ image.draw(in: NSRect(x: 0, y: 0, width: width, height: height), from: .zero, operation: .copy, fraction: 1)
36003
+ NSGraphicsContext.restoreGraphicsState()
36004
+ guard let data = rep.representation(using: .png, properties: [:]) else { exit(6) }
36005
+ do { try data.write(to: output) } catch { exit(7) }
36006
+ `;
36007
+ function rasterizeSvgFile(diskPath, svgSha256) {
36008
+ if (process.platform !== "darwin") return null;
36009
+ const binary = rasterBinary(RASTER_SVG_SWIFT, "swift-svg-raster");
36010
+ const tag = (0, import_node_crypto28.createHash)("sha256").update(RASTER_SVG_SWIFT).digest("hex").slice(0, 16);
36011
+ const cached = import_node_path53.default.join(cacheDir(), `swift-svg-png-${tag}-${svgSha256}.png`);
36012
+ if (import_node_fs52.default.existsSync(cached)) return { bytes: import_node_fs52.default.readFileSync(cached) };
36013
+ const out = import_node_path53.default.join(
36014
+ import_node_fs52.default.mkdtempSync(import_node_path53.default.join(import_node_os14.default.tmpdir(), "swift-svg-png-")),
36015
+ "out.png"
36016
+ );
36017
+ try {
36018
+ (0, import_node_child_process32.execFileSync)(binary, [diskPath, "3", out], { stdio: "pipe" });
36019
+ const bytes = import_node_fs52.default.readFileSync(out);
36020
+ import_node_fs52.default.mkdirSync(cacheDir(), { recursive: true });
36021
+ import_node_fs52.default.copyFileSync(out, cached);
36022
+ return { bytes: Buffer.from(bytes) };
36023
+ } catch (error) {
36024
+ throw new Error(
36025
+ `swift svg asset ${diskPath} did not rasterize: ${error instanceof Error ? error.message : String(error)}`
36026
+ );
36027
+ } finally {
36028
+ import_node_fs52.default.rmSync(import_node_path53.default.dirname(out), { recursive: true, force: true });
36029
+ }
36030
+ }
35833
36031
 
35834
36032
  // src/swift-standin-config.ts
35835
36033
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -35995,7 +36193,7 @@ async function swiftPackages(entry, app) {
35995
36193
  ] : []
35996
36194
  );
35997
36195
  let reached = [...cached.binaries.filter((binary) => binary.reached), ...vendored];
35998
- const standinArtifact = (binary) => binary.publicHeaders === void 0 || binary.assemblySources !== void 0;
36196
+ const standinArtifact = (binary) => binary.publicHeaders === void 0 || binary.unloweredSources !== void 0;
35999
36197
  const artifacts = reached.filter(standinArtifact);
36000
36198
  if (entry.moduleRoot && entry.provided && artifacts.length > 0) {
36001
36199
  const resolved = swiftModuleToolchain(entry.moduleRoot);
@@ -36014,10 +36212,13 @@ async function swiftPackages(entry, app) {
36014
36212
  const cxxArtifacts = reached.filter(standinArtifact);
36015
36213
  const generation = standinGenerationInputs(cxxArtifacts, toolchain, entry.behavior);
36016
36214
  if (cached.standinKey !== generation) {
36215
+ const replaced = new Set(
36216
+ cxxArtifacts.filter((binary) => shippedBinaryDiffers(binary.target, binary.checksum)).map((binary) => binary.target)
36217
+ );
36017
36218
  const built2 = await swiftStandins(
36018
36219
  cxxArtifacts,
36019
36220
  toolchain,
36020
- entry.provided,
36221
+ new Set([...entry.provided].filter((name3) => !replaced.has(name3))),
36021
36222
  entry.behavior
36022
36223
  );
36023
36224
  cached.packages = await resolveSwiftPackagesAsync({
@@ -36031,6 +36232,9 @@ async function swiftPackages(entry, app) {
36031
36232
  ...entry.provided,
36032
36233
  ...cxxArtifacts.map((binary) => binary.target).filter((target) => !built2.gaps.has(target))
36033
36234
  ]),
36235
+ standinTargets: new Set(
36236
+ [...replaced].filter((target) => !built2.gaps.has(target))
36237
+ ),
36034
36238
  binaryGaps: built2.gaps,
36035
36239
  owners
36036
36240
  });
@@ -36930,6 +37134,12 @@ function buildSwiftResourceTable(project, baseUrl, inputs) {
36930
37134
  throw new Error("swift image pack exceeds the compile service caps");
36931
37135
  }
36932
37136
  bytes = readPackageFile2(project.packagePath, disk, limits.imageBytes);
37137
+ const svg = ext === ".svg" ? rasterizeSvgFile(disk, (0, import_node_crypto29.createHash)("sha256").update(bytes).digest("hex")) : null;
37138
+ if (svg) {
37139
+ bytes = svg.bytes;
37140
+ ext = ".png";
37141
+ uploadName = `${import_node_path54.default.posix.basename(file, import_node_path54.default.posix.extname(file))}.png`;
37142
+ }
36933
37143
  }
36934
37144
  if (imageBytes + bytes.length > limits.imageTotalBytes) {
36935
37145
  throw new Error("swift image pack exceeds the compile service caps");