peachsim 0.1.2220 → 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.
- package/cli/commands/compat.ts +4 -4
- package/cli/commands/inspect.ts +4 -4
- package/cli/commands/report-issue.ts +1 -1
- package/cli/runtime-compat.ts +7 -2
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/bundle-channel.cjs +475 -381
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud-test-args.cjs +1 -1
- package/dist-lib/cloud-test-args.mjs +1 -1
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/config.mjs +1 -1
- package/dist-lib/detox/index.cjs +3 -2
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +472 -379
- package/dist-lib/expo-swift-metadata.cjs +1 -1
- package/dist-lib/expo-swift-metadata.mjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +695 -574
- package/dist-lib/host/fetch-proxy-handler.cjs +10 -7
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +8232 -7815
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/kotlin-host.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +8146 -7737
- package/dist-lib/native-app-identity-project.cjs +331 -13
- package/dist-lib/native-app-identity-project.mjs +331 -13
- package/dist-lib/native-app-identity.cjs +16 -3
- package/dist-lib/native-app-identity.mjs +16 -3
- package/dist-lib/native-firebase-metadata.cjs +1 -1
- package/dist-lib/native-firebase-metadata.mjs +1 -1
- package/dist-lib/pdfium-raster.cjs +1 -1
- package/dist-lib/pdfium-raster.mjs +1 -1
- package/dist-lib/plist.cjs +1 -1
- package/dist-lib/plist.mjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/public-origins-lib-esm.json +25 -24
- package/dist-lib/public-origins-lib.json +99 -96
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/reap-browser.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +532 -420
- package/dist-lib/swift-compile.cjs +84 -49
- package/dist-lib/swift-compile.mjs +84 -49
- package/dist-lib/swift-package.cjs +1 -1
- package/dist-lib/swift-package.mjs +1 -1
- package/dist-lib/swift-submit.cjs +1 -1
- package/dist-lib/swift-submit.mjs +1 -1
- package/dist-lib/swift-toolchain.cjs +1 -1
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +158 -69
- package/dist-lib/vite.cjs +2930 -2800
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/dist-types/packages/peach-engine/src/cli-companion.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/cli-host-terser.d.ts +7 -0
- package/dist-types/packages/peach-engine/src/engine/glass-material.d.ts +1 -1
- package/dist-types/packages/peach-engine/src/engine/liquid-glass.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/engine/node.d.ts +5 -0
- package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +8 -1
- package/dist-types/packages/peach-engine/src/engine/types.d.ts +3 -0
- package/dist-types/packages/peach-engine/src/engine/yoga-layout.d.ts +1 -1
- package/dist-types/packages/peach-engine/src/remote-stream/cloud-display.d.ts +2 -2
- package/dist-types/packages/peach-engine/src/render-worker/compositor-protocol.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/render-worker/shell-tree-wire.d.ts +1 -2
- package/dist-types/packages/peach-kit/src/internal.d.ts +1 -0
- package/dist-types/packages/peach-kit/src/ios-tint.d.ts +1 -0
- package/dist-types/packages/peach-kit/src/transitions/screen-transition-math.d.ts +25 -0
- package/kotlin/sdk.tar.gz +0 -0
- package/package.json +1 -1
- package/runtime-companion.json +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNAnimation.h +4 -4
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNCameraController.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNConstraint.h +5 -5
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNGeometry.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNLevelOfDetail.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNParametricGeometry.h +9 -9
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNParticleSystem.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNPhysicsBehavior.h +7 -7
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNRenderer.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNShadable.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNTechnique.h +1 -1
- package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutConstraint.h +1 -8
- package/sdk/ios/System/Library/Frameworks/UIKit.framework/Modules/module.modulemap +1 -0
- package/sdk/ios/System/Library/Frameworks/UIKitTypes.framework/Headers/UIKitTypes.h +1 -0
- package/sdk/ios/System/Library/Frameworks/UIKitTypes.framework/Headers/UILayoutPriority.h +11 -0
- package/src/cli-runtime.ts +1 -0
- package/src/expo-native-workspace.ts +14 -10
- package/src/expo-workspace-exclusion.ts +10 -7
- package/src/react-native-autolinking.ts +2 -1
- package/src/runtime-delivery.ts +7 -0
- package/src/swift-compile.ts +90 -54
- package/src/swift-coverage/xcode-assets.ts +4 -2
- package/src/swift-host.ts +53 -14
- package/src/swift-objc-import.ts +4 -0
- package/src/wasm-optimize.ts +5 -1
- package/src/xcode-project.ts +26 -5
- package/src/xcode-target-members.ts +25 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
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;
|
|
@@ -10254,7 +10254,8 @@ var FEATURES = [
|
|
|
10254
10254
|
"reference-types",
|
|
10255
10255
|
"sign-ext"
|
|
10256
10256
|
];
|
|
10257
|
-
var
|
|
10257
|
+
var KEEP_WASM_NAMES = process.env.PEACH_SWIFT_NAMES === "1";
|
|
10258
|
+
var WASM_OPTIMIZE_IDENTITY = `wasm-opt ${import_wasm_opt.BINARYEN_VERSION} -Oz ${FEATURES.join(",")}${KEEP_WASM_NAMES ? " -g" : ""}`;
|
|
10258
10259
|
var PINNED_BINARYEN_VERSION = "132";
|
|
10259
10260
|
var BINARYEN_RELEASES = /* @__PURE__ */ new Map([
|
|
10260
10261
|
[
|
|
@@ -10290,6 +10291,7 @@ async function runWasmOpt(file, output, skipPasses, binary) {
|
|
|
10290
10291
|
const result = await (0, import_wasm_opt.wasmOpt)(
|
|
10291
10292
|
[
|
|
10292
10293
|
"-Oz",
|
|
10294
|
+
...KEEP_WASM_NAMES ? ["-g"] : [],
|
|
10293
10295
|
...skipPasses.flatMap((pass) => ["--skip-pass", pass]),
|
|
10294
10296
|
...FEATURES.map((feature) => `--enable-${feature}`),
|
|
10295
10297
|
file,
|
|
@@ -11061,7 +11063,7 @@ function swiftSubmoduleImports(sources) {
|
|
|
11061
11063
|
}
|
|
11062
11064
|
return imports;
|
|
11063
11065
|
}
|
|
11064
|
-
function swiftObjCModuleMap(module2, headers, submodules = /* @__PURE__ */ new Set()) {
|
|
11066
|
+
function swiftObjCModuleMap(module2, headers, submodules = /* @__PURE__ */ new Set(), swiftHeader) {
|
|
11065
11067
|
const header = (file) => `header ${JSON.stringify(file)}`;
|
|
11066
11068
|
const stem = (file) => file.slice(file.lastIndexOf("/") + 1).replace(/\.[^.]*$/, "");
|
|
11067
11069
|
return [
|
|
@@ -11069,6 +11071,7 @@ function swiftObjCModuleMap(module2, headers, submodules = /* @__PURE__ */ new S
|
|
|
11069
11071
|
...headers.map(
|
|
11070
11072
|
(file) => submodules.has(stem(file)) ? ` module ${stem(file)} { ${header(file)} export * }` : ` ${header(file)}`
|
|
11071
11073
|
),
|
|
11074
|
+
...swiftHeader ? [" module Swift {", ` ${header(swiftHeader)}`, " requires objc", " }"] : [],
|
|
11072
11075
|
" export *",
|
|
11073
11076
|
"}",
|
|
11074
11077
|
""
|
|
@@ -11767,7 +11770,10 @@ function swiftModuleInterface(moduleRoot, name2, interfaceRoot) {
|
|
|
11767
11770
|
if (declared.size === 0) return null;
|
|
11768
11771
|
return { declared, header: clangInterfaceHeader((0, import_node_fs25.readFileSync)(built, "utf8")) };
|
|
11769
11772
|
}
|
|
11770
|
-
var clangInterfaceHeader = (header) => header.replace(/^@import (?:UIKitCore|UIKitText);$/gm, "@import UIKit;").replace(
|
|
11773
|
+
var clangInterfaceHeader = (header) => header.replace(/^@import (?:UIKitCore|UIKitText);$/gm, "@import UIKit;").replace(
|
|
11774
|
+
/^@import (?:CoreFoundation|FoundationNetworking);$/gm,
|
|
11775
|
+
"@import Foundation;"
|
|
11776
|
+
).replace(/\b_TtC10Foundation\d+(NS\w+)\b/g, "$1").replace(/\b__attribute__\(\(objc_subclassing_restricted\)\)\s*/g, "");
|
|
11771
11777
|
var swiftInterfaceDeclarations = (header) => /* @__PURE__ */ new Set([
|
|
11772
11778
|
...[
|
|
11773
11779
|
...header.matchAll(
|
|
@@ -12064,7 +12070,8 @@ var OPTIONAL_FRAMEWORK_DEPENDENCIES = {
|
|
|
12064
12070
|
PeachCFNetwork: [],
|
|
12065
12071
|
JavaScriptCore: ["PeachJavaScriptCore"],
|
|
12066
12072
|
PeachJavaScriptCore: [],
|
|
12067
|
-
GameplayKit
|
|
12073
|
+
// GameplayKit names SpriteKit and SceneKit nodes, as on iOS
|
|
12074
|
+
GameplayKit: ["SpriteKit", "SceneKit", "PeachBox2D", "simd", "GLKit"],
|
|
12068
12075
|
simd: [],
|
|
12069
12076
|
ModelIO: ["simd"],
|
|
12070
12077
|
GLKit: ["ModelIO"],
|
|
@@ -12575,10 +12582,21 @@ function swiftTargetDependencies(files, targets, frameworks = OPTIONAL_FRAMEWORK
|
|
|
12575
12582
|
return siblings;
|
|
12576
12583
|
}
|
|
12577
12584
|
var ONE_PRODUCT = '.product(name: "One", package: "sootsim-swift")';
|
|
12578
|
-
var
|
|
12579
|
-
var
|
|
12580
|
-
|
|
12581
|
-
)
|
|
12585
|
+
var GAME_FAMILY = ["SpriteKit", "SceneKit"];
|
|
12586
|
+
var gameProducts = (files) => {
|
|
12587
|
+
const imported = new Set(
|
|
12588
|
+
Object.entries(files).flatMap(
|
|
12589
|
+
([file, contents]) => file.endsWith(".swift") ? swiftImportNames(contents) : []
|
|
12590
|
+
)
|
|
12591
|
+
);
|
|
12592
|
+
if (imported.has("SceneKit")) return [...GAME_FAMILY];
|
|
12593
|
+
return imported.has("SpriteKit") ? ["SpriteKit"] : [];
|
|
12594
|
+
};
|
|
12595
|
+
var gameProduct = (name2) => `.product(name: "${name2}", package: "sootsim-swift")`;
|
|
12596
|
+
var GAME_REACH = {
|
|
12597
|
+
SpriteKit: ["SpriteKit", "PeachBox2D", "simd", "GLKit"],
|
|
12598
|
+
SceneKit: ["SceneKit"]
|
|
12599
|
+
};
|
|
12582
12600
|
var FOUNDATION_IMPLICIT_MODULES = [
|
|
12583
12601
|
"PeachObjC",
|
|
12584
12602
|
"Dispatch",
|
|
@@ -12605,7 +12623,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
|
|
|
12605
12623
|
var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
12606
12624
|
var MULTI_MANIFEST_VERSION = 68;
|
|
12607
12625
|
var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
12608
|
-
var compilerSourceDigest = true ? "
|
|
12626
|
+
var compilerSourceDigest = true ? "eba60b7a2e9485f928a6ec2e544e10d84b2b33430be66b9e069c9797a927af86" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
|
|
12609
12627
|
function swiftArtifactHash(input, release, moduleRoot) {
|
|
12610
12628
|
const hash = (0, import_node_crypto13.createHash)("sha256");
|
|
12611
12629
|
hash.update(`swift-compile
|
|
@@ -12613,6 +12631,7 @@ ${release}
|
|
|
12613
12631
|
`);
|
|
12614
12632
|
hash.update(compilerSourceDigest);
|
|
12615
12633
|
if (input.oneModule) hash.update("one-module\n");
|
|
12634
|
+
if (KEEP_WASM_NAMES) hash.update("names\n");
|
|
12616
12635
|
hash.update(swiftModuleDigest(moduleRoot));
|
|
12617
12636
|
if (input.optimize) hash.update(`optimize
|
|
12618
12637
|
${WASM_OPTIMIZE_IDENTITY}
|
|
@@ -12727,7 +12746,14 @@ function toolsetOrdersLibcxxBeforeDarwinOverlay(options) {
|
|
|
12727
12746
|
return libcxx >= 0 && overlay > libcxx;
|
|
12728
12747
|
}
|
|
12729
12748
|
function emitSwiftPackageManifest(args) {
|
|
12730
|
-
const {
|
|
12749
|
+
const {
|
|
12750
|
+
targets,
|
|
12751
|
+
siblings,
|
|
12752
|
+
moduleRoot,
|
|
12753
|
+
oneModule,
|
|
12754
|
+
gameProducts: gameProducts2 = [],
|
|
12755
|
+
distribution
|
|
12756
|
+
} = args;
|
|
12731
12757
|
const prebuilt = args.prebuilt;
|
|
12732
12758
|
const linkedObjects = Boolean(distribution || prebuilt);
|
|
12733
12759
|
const cxxFlagsFor = (flags) => args.deferDarwinOverlay ? withoutWasmOverlayIsystem(flags) : flags;
|
|
@@ -12756,9 +12782,8 @@ function emitSwiftPackageManifest(args) {
|
|
|
12756
12782
|
for (const name2 of [...siblings.values()].flat())
|
|
12757
12783
|
if (OPTIONAL_FRAMEWORKS.has(name2) && !targets.some((target) => target.name === name2))
|
|
12758
12784
|
reach(name2);
|
|
12759
|
-
|
|
12760
|
-
for (const name2 of [
|
|
12761
|
-
}
|
|
12785
|
+
for (const product of gameProducts2)
|
|
12786
|
+
for (const name2 of GAME_REACH[product] ?? []) reach(name2);
|
|
12762
12787
|
let distributionLinkPath;
|
|
12763
12788
|
const distributionLink = args.distributionLink;
|
|
12764
12789
|
if (distribution && distributionLink) {
|
|
@@ -12781,7 +12806,7 @@ function emitSwiftPackageManifest(args) {
|
|
|
12781
12806
|
(object3) => !isProvider(object3) && !replacedObjects.has(object3)
|
|
12782
12807
|
);
|
|
12783
12808
|
const objects = available.filter(
|
|
12784
|
-
(object3) => !targets.some((target) => object3.startsWith(`lib/${target.name}-`)) && [...OPTIONAL_FRAMEWORKS,
|
|
12809
|
+
(object3) => !targets.some((target) => object3.startsWith(`lib/${target.name}-`)) && [...OPTIONAL_FRAMEWORKS, ...GAME_FAMILY, "PeachBox2D"].every(
|
|
12785
12810
|
(name2) => !object3.startsWith(`lib/${name2}-`) || reachedFrameworks.has(name2)
|
|
12786
12811
|
)
|
|
12787
12812
|
);
|
|
@@ -12898,6 +12923,10 @@ function emitSwiftPackageManifest(args) {
|
|
|
12898
12923
|
includeImportContext(dependency);
|
|
12899
12924
|
const importedNativeFlags = [
|
|
12900
12925
|
...args.nativeImportFlags?.get(target.name) ?? [],
|
|
12926
|
+
...[...importContext].flatMap((name2) => {
|
|
12927
|
+
const map = name2 === target.name ? void 0 : args.nativeSwiftHeaderMaps?.get(name2);
|
|
12928
|
+
return map ? ["-fmodule-map-file=" + map] : [];
|
|
12929
|
+
}),
|
|
12901
12930
|
...[...importContext].flatMap((name2) => args.native?.get(name2)?.importFlags ?? []),
|
|
12902
12931
|
...[...importContext].flatMap((name2) => {
|
|
12903
12932
|
const flags = targets.find((target2) => target2.name === name2)?.swiftFlags ?? [];
|
|
@@ -12940,7 +12969,7 @@ function emitSwiftPackageManifest(args) {
|
|
|
12940
12969
|
...linkedObjects || clang && !target.executable ? [] : [
|
|
12941
12970
|
'.product(name: "SwiftUI", package: "sootsim-swift")',
|
|
12942
12971
|
...oneModule ? [ONE_PRODUCT] : [],
|
|
12943
|
-
...
|
|
12972
|
+
...gameProducts2.map(gameProduct)
|
|
12944
12973
|
],
|
|
12945
12974
|
...(siblings.get(target.name) ?? []).flatMap(
|
|
12946
12975
|
(dependency) => clang && // textual native headers can include one another without imposing
|
|
@@ -12972,7 +13001,7 @@ function emitSwiftPackageManifest(args) {
|
|
|
12972
13001
|
.unsafeFlags(${flagArray(`[
|
|
12973
13002
|
${REACTOR_FLAG}${executableLinkFlags(args.root)} "-Xlinker", "--export-if-defined=__main_argc_argv"${library},
|
|
12974
13003
|
]`)}),
|
|
12975
|
-
.unsafeFlags(["-Xlinker", "--strip-all"], .when(configuration: .release)),
|
|
13004
|
+
${KEEP_WASM_NAMES ? "" : '.unsafeFlags(["-Xlinker", "--strip-all"], .when(configuration: .release)),'}
|
|
12976
13005
|
]` : librarySettings.length > 0 ? `,
|
|
12977
13006
|
linkerSettings: [${librarySettings.join(", ")}]` : "";
|
|
12978
13007
|
const cDefines = macroSettings(target.cDefines);
|
|
@@ -13577,8 +13606,6 @@ var FOUNDATION_OVERLAY_GLOBALS = /* @__PURE__ */ new Set([
|
|
|
13577
13606
|
"NSURLProtectionSpaceHTTPS",
|
|
13578
13607
|
"NSURLProtectionSpaceHTTPSProxy",
|
|
13579
13608
|
"NSURLProtectionSpaceSOCKSProxy",
|
|
13580
|
-
"NSURLSessionDownloadTaskResumeData",
|
|
13581
|
-
"NSURLSessionTransferSizeUnknown",
|
|
13582
13609
|
"NSURLSessionUploadTaskResumeData",
|
|
13583
13610
|
"NSUTF16BigEndianStringEncoding",
|
|
13584
13611
|
"NSUTF16LittleEndianStringEncoding",
|
|
@@ -14762,6 +14789,7 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
14762
14789
|
)
|
|
14763
14790
|
);
|
|
14764
14791
|
const importModuleMaps = /* @__PURE__ */ new Map();
|
|
14792
|
+
const sourceModuleMaps = /* @__PURE__ */ new Map();
|
|
14765
14793
|
const generatedModuleMaps = [];
|
|
14766
14794
|
for (const target of targets) {
|
|
14767
14795
|
const prefix = target.path === "." ? "" : `${target.path}/`;
|
|
@@ -14996,6 +15024,10 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
14996
15024
|
stageTargetFile(target.name, import_node_path27.default.join(layout2.root, modulemap), moduleContents, {
|
|
14997
15025
|
allowExisting: true
|
|
14998
15026
|
});
|
|
15027
|
+
sourceModuleMaps.set(swiftTargetModuleName(target.name), {
|
|
15028
|
+
path: import_node_path27.default.join(layout2.root, modulemap),
|
|
15029
|
+
contents: moduleContents.toString()
|
|
15030
|
+
});
|
|
14999
15031
|
if (modulemap.endsWith("/Modules/module.modulemap")) {
|
|
15000
15032
|
const framework = import_node_path27.default.posix.dirname(import_node_path27.default.posix.dirname(modulemap));
|
|
15001
15033
|
for (const [, header] of moduleContents.toString().matchAll(/\bheader\s+"([^"]+)"/g))
|
|
@@ -15270,6 +15302,7 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
15270
15302
|
if (native.size > 0) (0, import_node_fs25.mkdirSync)(headerDirectory, { recursive: true });
|
|
15271
15303
|
const headerAliasFlags = Object.keys(input.headerAliases ?? {}).length > 0 ? ["-ivfsoverlay", headerSearch.files[0]] : [];
|
|
15272
15304
|
const nativeHeaderFlags = [...headerAliasFlags];
|
|
15305
|
+
const nativeSwiftHeaderMaps = /* @__PURE__ */ new Map();
|
|
15273
15306
|
const originalMaps = /* @__PURE__ */ new Map();
|
|
15274
15307
|
for (const target of input.nativeTargets ?? []) {
|
|
15275
15308
|
for (const flag of [...target.flags, ...target.cxxFlags]) {
|
|
@@ -15300,30 +15333,33 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
15300
15333
|
);
|
|
15301
15334
|
const moduleName = swiftTargetModuleName(name2);
|
|
15302
15335
|
const originalMap = originalMaps.get(moduleName);
|
|
15303
|
-
const
|
|
15304
|
-
|
|
15336
|
+
const stagedMap = sourceModuleMaps.get(moduleName);
|
|
15337
|
+
const originalPath = originalMap ? import_node_path27.default.join(layout2.root, originalMap) : stagedMap?.path;
|
|
15338
|
+
const originalContents = originalMap ? input.files[originalMap] : stagedMap?.contents;
|
|
15339
|
+
const originalTokens = originalContents ? moduleMapTokens(originalContents) : [];
|
|
15340
|
+
if (originalPath && originalTokens.some(
|
|
15305
15341
|
(token, index) => token === "module" && (originalTokens[index + 1] === "Swift" || originalTokens[index + 1] === `${moduleName}.Swift`)
|
|
15306
15342
|
)) {
|
|
15307
|
-
nativeHeaderFlags.push("-fmodule-map-file=" +
|
|
15343
|
+
nativeHeaderFlags.push("-fmodule-map-file=" + originalPath);
|
|
15344
|
+
nativeSwiftHeaderMaps.set(name2, originalPath);
|
|
15308
15345
|
continue;
|
|
15309
15346
|
}
|
|
15310
15347
|
files.set(
|
|
15311
15348
|
modulemap,
|
|
15312
|
-
|
|
15349
|
+
originalPath ? `extern module ${moduleName} ${JSON.stringify(originalPath)}
|
|
15313
15350
|
module ${moduleName}.Swift {
|
|
15314
15351
|
header ${JSON.stringify(import_node_path27.default.join(headerDirectory, name2 + "-Swift.h"))}
|
|
15315
15352
|
requires objc
|
|
15316
15353
|
}
|
|
15317
15354
|
` : swiftObjCModuleMap(
|
|
15318
15355
|
moduleName,
|
|
15319
|
-
[
|
|
15320
|
-
|
|
15321
|
-
|
|
15322
|
-
],
|
|
15323
|
-
submoduleImports.get(moduleName)
|
|
15356
|
+
(input.nativeTargets?.find((target) => target.name === name2)?.publicHeaders ?? []).map((header) => import_node_path27.default.join(layout2.root, header)),
|
|
15357
|
+
submoduleImports.get(moduleName),
|
|
15358
|
+
import_node_path27.default.join(headerDirectory, name2 + "-Swift.h")
|
|
15324
15359
|
)
|
|
15325
15360
|
);
|
|
15326
15361
|
nativeHeaderFlags.push("-fmodule-map-file=" + modulemap);
|
|
15362
|
+
nativeSwiftHeaderMaps.set(name2, modulemap);
|
|
15327
15363
|
}
|
|
15328
15364
|
const modulePlan = (0, import_node_crypto13.createHash)("sha256").update(
|
|
15329
15365
|
swiftModuleInputFiles(moduleRoot).join("\n")
|
|
@@ -15574,14 +15610,17 @@ module ${moduleName}.Swift {
|
|
|
15574
15610
|
manifest = manifest.replace(product, `${product}
|
|
15575
15611
|
${ONE_PRODUCT},`).replace(flags, `${flags}${ONE_IMPLICIT_FLAGS}`);
|
|
15576
15612
|
}
|
|
15577
|
-
|
|
15613
|
+
const games = gameProducts(input.files);
|
|
15614
|
+
if (games.length > 0) {
|
|
15578
15615
|
const anchor = '.product(name: "CoreLocation", package: "sootsim-swift"),';
|
|
15579
15616
|
if (!manifest.includes(anchor))
|
|
15580
15617
|
throw new Error(
|
|
15581
|
-
"scripts/contrast-app-Package.swift lost the line the
|
|
15618
|
+
"scripts/contrast-app-Package.swift lost the line the game products link at"
|
|
15582
15619
|
);
|
|
15583
|
-
manifest = manifest.replace(
|
|
15584
|
-
|
|
15620
|
+
manifest = manifest.replace(
|
|
15621
|
+
anchor,
|
|
15622
|
+
[anchor, ...games.map((name2) => `${gameProduct(name2)},`)].join("\n ")
|
|
15623
|
+
);
|
|
15585
15624
|
}
|
|
15586
15625
|
files.set(import_node_path27.default.join(layout2.root, "Package.swift"), manifest + moduleFiles);
|
|
15587
15626
|
} else {
|
|
@@ -15680,6 +15719,7 @@ module ${moduleName}.Swift {
|
|
|
15680
15719
|
nativeFlags,
|
|
15681
15720
|
nativeImportFlags,
|
|
15682
15721
|
nativeHeaderFlags,
|
|
15722
|
+
nativeSwiftHeaderMaps,
|
|
15683
15723
|
nativeHeaderDeclarations,
|
|
15684
15724
|
objcImplementationModules: new Set(
|
|
15685
15725
|
targets.filter(
|
|
@@ -15695,7 +15735,7 @@ module ${moduleName}.Swift {
|
|
|
15695
15735
|
siblings: moduleSiblings,
|
|
15696
15736
|
moduleRoot,
|
|
15697
15737
|
oneModule: input.oneModule,
|
|
15698
|
-
|
|
15738
|
+
gameProducts: gameProducts(input.files),
|
|
15699
15739
|
distribution: distribution ?? void 0,
|
|
15700
15740
|
moduleExcludes,
|
|
15701
15741
|
deferDarwinOverlay: native.size > 0 && toolsetOrdersLibcxxBeforeDarwinOverlay(
|
|
@@ -15837,30 +15877,30 @@ module ${moduleName}.Swift {
|
|
|
15837
15877
|
)
|
|
15838
15878
|
])
|
|
15839
15879
|
);
|
|
15880
|
+
const producerSet = /* @__PURE__ */ new Set([...Object.keys(nativeHeaderDeclarations), ...producers]);
|
|
15881
|
+
const orderedProducers = [];
|
|
15840
15882
|
const included = /* @__PURE__ */ new Set();
|
|
15841
15883
|
const include = (name2) => {
|
|
15842
15884
|
if (included.has(name2)) return;
|
|
15843
15885
|
included.add(name2);
|
|
15844
15886
|
for (const dependency of dependencies.get(name2) ?? []) include(dependency);
|
|
15887
|
+
if (producerSet.has(name2)) orderedProducers.push(name2);
|
|
15845
15888
|
};
|
|
15846
|
-
for (const producer of
|
|
15889
|
+
for (const producer of producerSet)
|
|
15847
15890
|
for (const dependency of dependencies.get(producer) ?? []) include(dependency);
|
|
15891
|
+
const needsHeaderStages = [...producerSet].some((name2) => included.has(name2));
|
|
15892
|
+
for (const producer of producerSet) include(producer);
|
|
15848
15893
|
return {
|
|
15849
15894
|
nativeBuildTargets: [...native].flatMap(([name2, plan]) => [
|
|
15850
15895
|
...!plan.mixed && plan.sources.length > 0 ? [name2] : [],
|
|
15851
15896
|
...plan.groups?.map((group) => group.name) ?? (plan.late ? [plan.late.name] : [])
|
|
15852
15897
|
]),
|
|
15853
|
-
headerProducers:
|
|
15854
|
-
.../* @__PURE__ */ new Set([
|
|
15855
|
-
...Object.keys(nativeHeaderDeclarations),
|
|
15856
|
-
...producers.filter((name2) => !included.has(name2))
|
|
15857
|
-
])
|
|
15858
|
-
],
|
|
15898
|
+
headerProducers: orderedProducers,
|
|
15859
15899
|
emittedHeaderProducers: [
|
|
15860
15900
|
.../* @__PURE__ */ new Set([...Object.keys(nativeHeaderDeclarations), ...producers])
|
|
15861
15901
|
],
|
|
15862
15902
|
nativeHeaderDeclarations,
|
|
15863
|
-
headerProductTarget,
|
|
15903
|
+
headerProductTarget: needsHeaderStages ? void 0 : headerProductTarget,
|
|
15864
15904
|
targetFailures,
|
|
15865
15905
|
generatedOwners,
|
|
15866
15906
|
targetToolset
|
|
@@ -16102,14 +16142,9 @@ function linkedFrameworkTargets(moduleRoot, input) {
|
|
|
16102
16142
|
))
|
|
16103
16143
|
reach(match[1]);
|
|
16104
16144
|
}
|
|
16105
|
-
|
|
16106
|
-
|
|
16107
|
-
const wanted = [
|
|
16108
|
-
"PeachApp",
|
|
16109
|
-
...input.oneModule ? ["One"] : [],
|
|
16110
|
-
...importsSpriteKit(input.files) ? ["SpriteKit"] : [],
|
|
16111
|
-
...reached
|
|
16112
|
-
];
|
|
16145
|
+
const games = gameProducts(input.files);
|
|
16146
|
+
for (const product of games) for (const name2 of GAME_REACH[product] ?? []) reach(name2);
|
|
16147
|
+
const wanted = ["PeachApp", ...input.oneModule ? ["One"] : [], ...games, ...reached];
|
|
16113
16148
|
const linked = [...new Set(wanted)].filter((name2) => libraries.has(name2));
|
|
16114
16149
|
if (!linked.includes("PeachApp"))
|
|
16115
16150
|
throw new Error("swift-compile: the framework package declares no PeachApp library");
|